Why hotels care
Self-hosted hotels are told to walk ops/harden manually before go-live. Real GMs will not re-click twenty desk stories after every upgrade. The harden pack itself lists this as a non-goal for v1:
Automated full-SPA Playwright campaigns (use surface smoke + vignettes manually in v1)
We want contributors to graduate the highest-BLOCKER vignettes into CI-able Playwright so regressions that break check-in / checkout money / night audit get caught before a Friday cutover.
Current state (code anchors)
ops/harden/vignettes/ — 20 desk stories; README ranks severity
ops/harden/SURFACE_SMOKE.md — full SPA walk
ops/harden/README.md — explicitly manual today
- Dashboard: Vite React app; API + Keycloak in compose / Cloud VM host services
What we need (phased)
Phase A — three BLOCKER vignettes only
base-01 multi-room walk-in
base-07 checkout blocked on balance
base-15 night audit + due-out balance
Each test:
- Seeds via API (prefer public test helpers / seed endpoints already used in Vitest)
- Drives dashboard as
front_desk / night_auditor
- Asserts delight path OR documents known FRICTION without flaking
Phase B (later): wire pnpm test:e2e:harden into CI on a schedule or labeled PR
Open questions
Acceptance criteria (Phase A)
How to contribute
Playwright + hospitality QA people are the target geniuses. If you have run Opera/Mews UAT scripts, translate that discipline here.
Comment to claim one vignette so we don’t collide.
Search keywords: Playwright, e2e, front desk, night audit, harden pack, hotel UAT, walk-in, checkout balance
Why hotels care
Self-hosted hotels are told to walk
ops/hardenmanually before go-live. Real GMs will not re-click twenty desk stories after every upgrade. The harden pack itself lists this as a non-goal for v1:We want contributors to graduate the highest-BLOCKER vignettes into CI-able Playwright so regressions that break check-in / checkout money / night audit get caught before a Friday cutover.
Current state (code anchors)
ops/harden/vignettes/— 20 desk stories; README ranks severityops/harden/SURFACE_SMOKE.md— full SPA walkops/harden/README.md— explicitly manual todayWhat we need (phased)
Phase A — three BLOCKER vignettes only
base-01multi-room walk-inbase-07checkout blocked on balancebase-15night audit + due-out balanceEach test:
front_desk/night_auditorPhase B (later): wire
pnpm test:e2e:hardeninto CI on a schedule or labeled PROpen questions
AUTH_ENABLED=falsedesk-only mode for e2e?e2eproperty UUID vs ephemeral property per run?Acceptance criteria (Phase A)
ops/harden/README.mddocuments how to run themHow to contribute
Playwright + hospitality QA people are the target geniuses. If you have run Opera/Mews UAT scripts, translate that discipline here.
Comment to claim one vignette so we don’t collide.
Search keywords: Playwright, e2e, front desk, night audit, harden pack, hotel UAT, walk-in, checkout balance