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()andgetByLabel()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
@sanitysubset first -
run the full Playwright
e2esuite 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.