test: expand assembled-desktop E2E coverage across native boundaries - #183
Merged
Conversation
The manifest records each temporary fixture's expected and actual hash, size, and modification time. Nothing else preserves that state: the failure artifacts capture the window, not the filesystem, and cleanup removes the temporary root moments later. Teardown drops the whole E2E identifier directory so window state does not outlive a run either.
Azganoth
enabled auto-merge (squash)
August 9, 2026 17:22
Azganoth
disabled auto-merge
August 9, 2026 17:22
Azganoth
enabled auto-merge (squash)
August 9, 2026 17:24
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expands the Windows-local assembled-desktop E2E suite from its single diagnostics smoke test to seven scenarios, each in its own application session.
e2e/desktop/run.ts, a Node runner that owns temporary fixtures, isolated-store seeding, scenario sequencing, and cleanup. Each scenario is a separate WDIO invocation against a fresh binary, so no scenario inherits another's application state.fixture-manifest.jsonwith each temporary fixture's expected and actual hash, size, and modification time, captured before cleanup removes the temporary root..env.example, which documented one optional desktop E2E debug flag now shown inline inCONTRIBUTING.md.Related Issue
Closes #181
Verification
pnpm test:e2e:desktoppasses from a clean baseline: the diagnostics smoke path plus the six added scenarios, each in its own application session.pnpm check:frontendpasses.Manually verified in Windows 11:
LEAFDOWN_E2E_FORCE_FAILURE=1, the suite exits nonzero and retains the screenshot, semantic UI snapshot, diagnostics summary, test error, correlated frontend and backend logs, and the fixture manifest, then cleans the same state as a passing run.Not verified:
pnpm check:backend; no Rust sources changed.Notes
The persistence scenario does not assert a new application run ID, which #181 lists as a step. Checking it required handing the first run's ID to the second spec through a file, and the runner already starts a separate worker and application process per scenario, so a repeated run ID is not a state the harness can produce. The scenario still spans two genuine launches and asserts both the restored setting and the sanitized persisted file.