SYS-005 — Repo Impact: reservation-browser-tests¶
See parent:
../spec.md
Decision¶
reservation-browser-tests is the canonical Playwright home for the
browser-level SYS-005 journeys of the ATP / VenuPlus surfaces — the
venuplus-app PWA and admin-web-app. Those two application repos stay
informational: they ship no Playwright suites of their own and must not
duplicate these journeys. customer-web-app (multi-tenant white-label) keeps
its own Phase 2 Playwright gate — see
customer-web-app.md.
Summary of Changes¶
| Area | Change | Tracking |
|---|---|---|
| CI | PR workflow: platform-context branch-name guard, tsc --noEmit, playwright test --list, @smoke run (falls back to a site check without card secrets) |
reservation-browser-tests#12 |
| Fixtures | No PAN / CVV in the repo; TEST_CARD_* are runtime env / CI secrets only (FR-006) |
#12 |
| State assertions | Pay Later, slot-full and PWA charge assert BZBooking (booking_status, paid_amount, payment_status) and BZBookingAvailability lock rows via API (FR-003) |
#12 |
| Determinism | Slot-full fills the slot until the backend rejects, then cleans up; Pay Later / Buyout bookings are cancelled (refund-all for card-paid) in afterEach |
#12 |
| Classification | Every test is @smoke or @nightly; nightly cron runs @nightly, PR runs @smoke |
#12 |
| P0 journeys | pwa-p0-journeys.spec.ts: lock-after-abandon (cart.check_expiry / get_cart_items, slot re-offered), payment idempotency (create_booking replay with the same idempotency_key returns is_duplicate), guest IDOR (fresh guest session probes booking read paths) |
#12 follow-up PR |
P0 journey coverage (FR-002)¶
| Journey | Spec | Class |
|---|---|---|
| RC Plan / package booking + charge | venuplus-booking-flow.spec.ts |
@smoke |
| No timeslots / slot full | admin-slot-full.spec.ts |
@nightly |
| Lock-after-abandon | pwa-p0-journeys.spec.ts |
@nightly |
| Payment idempotency | pwa-p0-journeys.spec.ts |
@nightly |
| Guest IDOR | pwa-p0-journeys.spec.ts |
@nightly |
| Admin create / move lock / cancel + refund | admin-web-app-flow.spec.ts |
@nightly |
| CE product booking | — | not covered here (CenterEdge outlets are customer-web-app) |
Gaps¶
- PICT pairwise: no model in this repo. Pairwise generation belongs to the
backend oracle (
reservation-api-server, Phase 3); the browser suite covers one golden outlet (ATP) and should stay small. - Payment tests need
TEST_CARD_*andADMIN_PASSWORDrepository secrets; without them the PR gate degrades to a site check.
Trace spec¶
AGENTS.md in reservation-browser-tests (repo rules + link back here).