Description
E2E tests currently run only on Chromium. CSS rendering differences, keyboard event handling, and focus behavior vary across browsers. Adding a Firefox project to the Playwright config catches browser-specific regressions before users encounter them.
The recent bug history shows 14 E2E-related bugs in the past analysis period. While most were selector fragility (now fixed via testid migration), browser-specific issues would only surface through user reports today.
Acceptance Criteria
Dependencies
None
Technical Notes
- Add to the
projects array in playwright.config.ts: { name: "firefox", testIgnore: /visual-regression/, use: { ...devices["Desktop Firefox"] } }
- Common Firefox differences to watch for:
focus-visible behavior, scrollIntoView timing, drag-and-drop event sequence, contenteditable caret positioning
- If specific tests are flaky on Firefox due to known Playwright/Firefox issues, use
test.skip with a comment linking to the upstream issue — don't disable the entire Firefox project
- CI may need increased timeout or parallelism adjustment since test count doubles
- Consider running Firefox only on the main branch or PR merge (not on every push) if CI time is a concern
Description
E2E tests currently run only on Chromium. CSS rendering differences, keyboard event handling, and focus behavior vary across browsers. Adding a Firefox project to the Playwright config catches browser-specific regressions before users encounter them.
The recent bug history shows 14 E2E-related bugs in the past analysis period. While most were selector fragility (now fixed via testid migration), browser-specific issues would only surface through user reports today.
Acceptance Criteria
playwright.config.tsadds afirefoxproject usingdevices["Desktop Firefox"]for the main (non-visual-regression) test suitetestIgnorepattern)pnpm lint && pnpm typecheck && pnpm testpasspnpm test:e2epasses on both Chromium and FirefoxDependencies
None
Technical Notes
projectsarray inplaywright.config.ts:{ name: "firefox", testIgnore: /visual-regression/, use: { ...devices["Desktop Firefox"] } }focus-visiblebehavior,scrollIntoViewtiming, drag-and-drop event sequence,contenteditablecaret positioningtest.skipwith a comment linking to the upstream issue — don't disable the entire Firefox project