feat: add e2e testing with Playwright and mock OIDC server#12
Merged
16 commits merged intoMay 11, 2026
Merged
Conversation
… endpoints Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rinfo requests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…files Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace __dirname with import.meta.dirname (ESM modules) - Use spawnSync with process.execPath instead of execSync - Fix relative paths from e2e/tests/ and e2e/fixtures/ (need ../../) - Move build step to CI (Playwright workers can't spawn node) - Simplify firefox-build test to verify output only (no in-test builds) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ests from Chrome run - Remove spawnSync build from extension fixture (CI builds before e2e) - Exclude "firefox build" tests from Chrome e2e run (they need Firefox build first) - Run firefox-build tests after the Firefox build step Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… dir - Share browser context across tests in same worker (avoid re-launching) - Use mkdtempSync for user data dir instead of empty string - Add --no-first-run and --disable-default-apps flags - Set workers: 1 to serialize Chrome tests - Remove unused launchOptions from playwright config (fixture handles launch) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add CLAUDE.md with agent skills config (issue tracker, triage labels, domain docs) - Add docs/agents/ with GitHub issue tracker, triage labels, and domain doc conventions - Add mattpocock/skills (.agents/skills/) for diagnose, tdd, triage, etc. - Add .claude/skills/ symlinks for Claude Code skill discovery - Ignore .claude/settings.local.json (machine-specific permissions) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ght builtin collision Playwright registers 'context' as a built-in test-scoped fixture. Renaming to 'extensionContext' avoids the conflict and uses a module-level singleton to share the browser instance across tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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
e2e/package with Playwright for browser integration tests/.well-known/openid-configuration,/authorize,/token, and/userinfoendpointsTests
extension-loads.test.tsnetwork-capture.test.tspanel-renders-events.test.tsfirefox-build.test.tsmock-oidc-server/server.test.tsCI
xvfb-run(headed mode required for extensions)Test plan
🤖 Generated with Claude Code