Run the e2e suites locally in a Linux container #246
No reviewers
Labels
No labels
area:docs
area:identity
area:ops
area:plugin
area:server
channel:community
channel:direct
channel:owned
channel:press
channel:social
e2ee-constrained
gate:at-ga
gate:pre-ga
marketing
parity
relay:absent
relay:planned
relay:requested
relay:supported
risk:additive
risk:contract
risk:none
usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Nectenda/nectenda!246
Loading…
Reference in a new issue
No description provided.
Delete branch "worktree-e2e-container"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Run natively, each Obsidian window the multi-vault suite opens takes the Mac's keyboard focus, so the machine cannot be used during a run. Electron has no headless mode. This adds
packages/e2e/run-in-container.sh(pnpm e2e), which runs the same suite in Debian under Xvfb. That is CI's setup, so the UI is still rendered and driven for real.packages/e2e/container/Dockerfile: Node 26 (pinned by digest), pnpm 12.5.1, and CI's apt list plus what the slim image lacks.node_modulesare never touched. Uncommitted edits are included.test:e2e:multiis unchanged: it still runs natively, and CI calls it directly.Verified locally:
two-vaults.test.tspassed 10/10 in the container with no test Obsidian processes on the host. Breaking one assertion made the script exit 1, which also shows uncommitted edits reach the container. A second run from the same checkout was refused. The full suite passed in 370 s (147 passed, 2 skipped, the opt-inPROBE=1probe), including first-run setup.pnpm test,pnpm -r typecheckandpnpm lintare green.Not covered in the container, and stated in the README: the macOS keychain path in
secret-storage.test.ts, which degrades exactly as on CI.Task: NEC-192
Changelog
NONE
🤖 Generated with Claude Code
https://claude.ai/code/session_01NnpsVLx9NmMG2N2nJnA8mR
72fa406a035f9981081d