Skip to content

ci: run the browser e2e suite on every PR#71

Merged
paperhurts merged 1 commit into
mainfrom
ci/browser-e2e
Jul 3, 2026
Merged

ci: run the browser e2e suite on every PR#71
paperhurts merged 1 commit into
mainfrom
ci/browser-e2e

Conversation

@paperhurts

Copy link
Copy Markdown
Owner

Summary

Wires the Playwright browser e2e suite into CI as a second job, so a service worker that dies on load (or any other builds-clean-but-dead-in-browser regression) blocks the merge instead of shipping. This is the meta-fix for the #57 / #64 / #68 bug class — CI was unit tests + build only, which is exactly how those merged green.

What the job does

  • Same setup as the unit job (pnpm, Node 20, core build), then playwright install --with-deps chromium.
  • Runs pnpm --filter @gitmarks/extension-chrome e2e under xvfb-run — the extension fixtures launch Chromium headed (extensions don't load in classic headless), so CI needs a virtual display.
  • Expected result in CI: 6 passed, 3 skipped — the two long-skipped mvp specs plus the live-GitHub round-trip, which self-skips without e2e/.env.e2e (the config already handles this: env file absent → test.skip).

The e2e suite covers: SW registers and creates the poll alarm (sw-health), tabs not granted at install (optional-permission audit), popup/options flows against mocked GitHub, and both native-tree sync directions.

Verification

The e2e job run on this very PR is the verification — it exercises the new job end-to-end on a clean Linux runner.

Part of #61 (item 3 of the store-readiness follow-ups).

🤖 Generated with Claude Code

Adds an e2e job to CI that loads the built extension into a real headed
Chromium (under xvfb) and runs the Playwright suite: SW health (the SW
boots and creates the poll alarm, tabs stays un-granted at install),
mocked popup/options/native-sync flows. The live-GitHub round-trip spec
self-skips without e2e/.env.e2e credentials.

This is the meta-fix for the #57/#64/#68 class of bug: CI was unit tests
plus build only, so an extension that built clean but was dead in a real
browser merged green. Now a dead service worker blocks the merge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@paperhurts paperhurts merged commit 3591f46 into main Jul 3, 2026
2 checks passed
@paperhurts paperhurts deleted the ci/browser-e2e branch July 3, 2026 19:49
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.

1 participant