T-VEK2-backup-checklist-e2e-suite
State: planning/proposed · Impact: high · Complexity: medium
Turn the manual Determined Backup checklist into a Playwright suite that runs on the web build against the real backend, in a scratch root, so a backup regression is caught without a person clicking through the app.
| Location | Role today |
|---|---|
solutions/determined/tests/ui/backup/backup.e2e.ts | One end-to-end test, launched by serve-backup.ts |
solutions/determined/tests/ui/serve-backup.ts | A serveScratchApp(scratchPlatform(...)) launcher on e2e-backup (15109). The checklist cases are not written yet |
solutions/determined/tests/ui/backup/harness.ts | The spec’s scratch fixture, from @sksizer/app-harness/playwright |
solutions/determined/moon.yml | test-ui-backup task exists, runInCI: false |
solutions/determined/tests/fixtures/obsidian-vault | Fixture vault |
Proposed
Section titled “Proposed”The backup project runs through scratchPlatform and covers the checklist:
| Case | Asserts |
|---|---|
| First-run gate | Vault chosen via the typed path field on web |
| Back up | A snapshot appears |
| Restore and Undo | File content returns, then Undo reverts it |
| Deleted-file restore | A deleted file comes back |
| Store path, Finder hidden on web | The store path shows; the Finder reveal button is absent on web |
| Schedule | A 1-minute schedule produces a snapshot; tagged slow |
| Restart persistence | After restart(), settings and snapshots remain |
serve-backup.ts is deleted.
Approach
Section titled “Approach”- Pass
scheduletoscratchPlatformfor the schedule case. - Add the missing cases to the existing spec.
- Tag the schedule case slow so default runs skip it.
- Delete
serve-backup.ts, so noserve-*.tslauncher remains for backup, in the same shapeT-GXNHuses for the other suites.
| Area | Note |
|---|---|
solutions/determined/tests/ui/backup/ | Suite |
solutions/determined/playwright.config.ts | Backup project |
solutions/determined/tests/ui/serve-backup.ts | Deleted |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1:
moon run determined-root:test-ui-backuppasses three runs in a row locally. - AC-2: The harness’s post-boot isolation check passes on every run. With a marker file
touched before the run,
find <real suite durable home> -newer <marker>lists nothing after it. Note: backup state stayed in the scratch root on every run; the listed writes came from concurrent polish e2e (serve-polish-lint.ts) and the installed Fitness app, so a clean back-to-back run needs those quiet. - AC-3: Every case in the table above has a test; the schedule case runs only when slow tests are enabled.
- AC-4:
serve-backup.tsno longer exists.
Out of scope
Section titled “Out of scope”- CI wiring (
T-CAWD). - Other platform-server suites (
T-GXNH).
Dependencies
Section titled “Dependencies”T-BDRYfor--backup-schedule.T-4HBCfor the harness and adapter.
Discovery context
Section titled “Discovery context”- Manual testing of Determined Backup.app showed most of the checklist can run on the web build.
Depends on
Section titled “Depends on”T-BDRY, T-4HBC