Skip to content

test: add Firefox E2E project to Playwright config for cross-browser coverage #1075

@sw-factory-automations

Description

@sw-factory-automations

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.ts adds a firefox project using devices["Desktop Firefox"] for the main (non-visual-regression) test suite
  • Firefox project runs the same test suite as the Chromium project (same testIgnore pattern)
  • CI workflow updated to run both Chromium and Firefox projects (can run in parallel)
  • Any Firefox-specific test failures are fixed (CSS, focus, keyboard differences)
  • Visual regression tests remain Chromium-only (baseline screenshots are browser-specific)
  • pnpm lint && pnpm typecheck && pnpm test pass
  • pnpm test:e2e passes on both Chromium and Firefox

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-humanNeeds human input — automation will re-queue when user respondspriority:3

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions