Skip to content

Automated Frontend Testing #72

Description

@jbouder

Summary

Establish an automated frontend testing setup using Playwright for end-to-end testing as the primary strategy, with Vitest reserved for minimal unit-level
coverage. Playwright will also run automated accessibility checks via @axe-core/playwright. This covers test tooling, configuration, npm scripts, and CI
integration for the frontend.

Motivation

  • E2E tests exercise the app as users actually experience it, catching integration issues unit tests miss
  • Prefer high-confidence e2e coverage over brittle, low-value unit tests — keep Vitest for pure logic/utilities only
  • Playwright runs across Chromium, Firefox, and WebKit from a single test suite
  • Automated accessibility checks (WCAG via axe-core) catch a11y regressions as part of the normal test run, not as a manual afterthought
  • A consistent, scripted setup lets contributors and CI run the full suite with a single command

Acceptance Criteria

  • vitest installed and configured (vitest.config.ts) for minimal unit testing of pure functions/utilities
  • @playwright/test installed and configured (playwright.config.ts) with Chromium, Firefox, and WebKit projects
  • npx playwright install documented in the README/contributing guide for first-time setup
  • At least one representative e2e flow covered by a Playwright spec (e.g. critical user journey)
  • @axe-core/playwright integrated so e2e tests assert no critical/serious accessibility violations on key pages
  • package.json scripts added: test (Vitest), test:e2e (Playwright), and test:a11y (or accessibility assertions folded into test:e2e)
  • Playwright HTML report generated and accessible after a run
  • CI workflow runs Vitest and Playwright (including a11y checks); the build fails on test or accessibility-violation failures

Out of Scope

  • Comprehensive unit-test coverage of components — intentionally minimal; e2e is the preferred layer
  • Visual regression / screenshot-diff testing (could be a follow-up issue)
  • Backend or API testing (handled by the backend test suite)
  • Manual accessibility audits and screen-reader testing (automated axe-core checks do not replace these)

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciItems related to ci/cddeveloper experienceSupports developer experience improvements

    Type

    Fields

    Priority

    Medium

    Start date

    None yet

    Target date

    None yet

    Size

    None yet

    Projects

    Status
    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions