This project is maintained as a learning-focused Playwright repository, so the way of working favors clarity, small improvements, and repeatable patterns over large rewrites.

Working Style

  • Keep tests readable and maintainable.

  • Prefer incremental changes over broad refactors.

  • Reuse existing helpers and page objects before adding new abstractions.

  • Keep test logic separate from test data where practical.

  • Treat documentation as part of the project, not an afterthought.

Test Practices

  • Use Playwright locators such as getByRole() and getByLabel() where possible.

  • Avoid brittle selectors unless there is no practical alternative.

  • Avoid hard waits and prefer assertion-based or event-based synchronization.

  • Use Page Objects for UI interactions.

  • Add meaningful assertions rather than broad smoke-only checks.

Local Workflow

The repo is pnpm-first and exposes simple scripts for common tasks.

Local setup and GitHub Actions are intended to use the same pinned pnpm version so dependency installation behavior stays consistent between machines and CI.

corepack enable
corepack prepare pnpm@10.9.0 --activate
corepack pnpm run test:dev
corepack pnpm run test:ui:dev
corepack pnpm run docs:build
corepack pnpm run docs:preview

CI and Publishing

GitHub Actions is used to:

  • install dependencies

  • run the @sanity subset first

  • run the full Playwright e2e suite only if sanity passes

  • capture and publish Playwright report history

  • build and publish AsciiDoc documentation to GitHub Pages

The workflow now activates the repo’s pinned pnpm@10.9.0 instead of using latest, which reduces drift between local development and CI.

The reporting flow still publishes one report entry per workflow run:

  • if sanity fails, the published report is the sanity-stage report

  • if sanity passes, the published report is the full-suite report

This keeps the report history readable while still making failures visible at the workflow level.