After clicking a client, their email appears in both the list row and
the detail panel — causing a strict-mode violation with toBeVisible().
Use toHaveCount(2) instead to assert the detail panel is open.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
The root `pnpm test` runs across all workspaces. The apps/e2e workspace
requires Playwright browsers to be installed before tests can run, but
the unit-test CI job does not install them. Exclude @groombook/e2e from
the root test command so E2E tests only run in the dedicated e2e CI job.
Co-Authored-By: Paperclip <noreply@paperclip.ing>
- New apps/e2e workspace with @playwright/test
- playwright.config.ts targeting Docker Compose stack (http://localhost:8080)
- navigation.spec.ts: smoke tests for all pages
- book.spec.ts: full booking wizard happy-path with API mocking
- clients.spec.ts: client list and detail panel tests
- CI job: spins up docker compose, installs Playwright chromium, runs tests
- Playwright report uploaded as artifact on failure
- README docs for running E2E tests locally
Closes#40
Co-Authored-By: Paperclip <noreply@paperclip.ing>