Skip to content

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_* and ADMIN_PASSWORD repository secrets; without them the PR gate degrades to a site check.

Trace spec

AGENTS.md in reservation-browser-tests (repo rules + link back here).