Skip to content

fix(e2e): repair settings-scroll script (url assets + dev-surface gating) - #1353

Closed
muzimu217 wants to merge 1 commit into
vastsa:mainfrom
muzimu217:fix/e2e-settings-scroll-clean
Closed

muzimu217 wants to merge 1 commit into
vastsa:mainfrom
muzimu217:fix/e2e-settings-scroll-clean

Conversation

@muzimu217

Copy link
Copy Markdown
Contributor

Summary

The settings-scroll E2E has been unrunnable on main since 2026-09-28, due to two independent breakages stacked on top of each other (invisible to CI because E2E scripts are not in the gate set):

  1. Build failure since ef9aae83a (live voice sessions): live-call-controller.ts imports ./pcm-worklet.js?url, which the script's bare-esbuild bundle cannot resolve — No matching export in "…/pcm-worklet.js?url" for import "default". This adds the same local-url-assets plugin that e2e-composer-paste.mjs, e2e-transcript-render.mjs and friends already use.

  2. Assertion failure since 07bc80261 (expose Live Voice to regular users): the developmentOnly nav gating (settings-search.ts) hides the sync (Cloud sync) destination even with developer mode on, because the fixture defines import.meta.env.DEV: "false" (packaged semantics) — so includeDevelopmentOnly=false (SettingsPage.tsx:94) and the "Cloud sync must appear in settings search with developer mode" check can never pass. The fixture now runs with DEV semantics, matching how those surfaces are gated in a dev build; the developerOnly gate (absent without developer mode) is unchanged and still asserted.

Verification

  • Before: build fails with the ?url error (exit 1).
  • Plugin only: build passes, then the Cloud-sync assertion fails.
  • Both fixes: SETTINGS_SCROLL {"ok":true, …} — light/dark themes, update preference, and pt-BR locale checks all pass, against a real host binary (PI_DESKTOP_HOST_BIN injected release build).

…ing)

The settings-scroll E2E has been unrunnable since the live-voice worklet
landed: its bare-esbuild bundle chokes on the ?url import in
live-call-controller.ts. Add the same local-url-assets plugin the other
E2E bundles (composer-paste, transcript-render) already use.

After unblocking the build, the fixture's import.meta.env.DEV=false
define hides developmentOnly settings surfaces (Cloud sync) even with
developer mode on, failing the must-appear assertion. Run the fixture
with DEV semantics, matching how those surfaces are gated; the
developer-only gate (absent without developer mode) is unchanged and
still asserted.

Verified locally: SETTINGS_SCROLL ok:true with light/dark themes,
update preference, and pt-BR locale checks passing.
@vastsa

vastsa commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Thanks for finding both breakages in the settings-scroll fixture and documenting the failure sequence. Your ?url asset handling and DEV-surface test setup are preserved in #1354. Running the complete fixture on the refreshed candidate exposed one more blocker: the i18n alias pointed at src/index.ts, so package subpaths resolved as invalid paths such as index.ts/locale-info. I updated the alias to the source directory; the isolated Electron E2E now passes all theme, update-preference, and pt-BR checks. #1354 includes your original commit, passed all CI gates, and is merged. Closing this PR as superseded.

@vastsa

vastsa commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Superseded by merged PR #1354.

@vastsa vastsa closed this Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants