Test cases: Vendor POS workspace (UI)
Document control
Section titled “Document control”| Version | Date (UTC) | Summary |
|---|---|---|
| 1.0.0 | 2026-05-13 | Deep UI sheet for /point-of-sale and high-risk POS paths |
- Routes:
/point-of-sale/*— primary implementation insale-page.tsx, draft orders panel, shared helpers (pos-orders-shared.ts, etc.). - Related: POS (Vendor), Point of Sale v2 shell (HTTP bootstrap), POS & payments (checkout completion).
Scenario catalogue
Section titled “Scenario catalogue”Store, lane, session
Section titled “Store, lane, session”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-VPW-001 | Happy | Select store; bootstrap data loads registers and lanes | E2E* |
| TC-VPW-002 | Unhappy | Multi-lane store: lane required banner until lane chosen; tender disabled | E2E* |
| TC-VPW-003 | Happy | Switch lane mid-session rules match dashboard POS (POS guide) | E2E* |
| TC-VPW-004 | Unhappy | Shift closed: start sale blocked with actionable CTA | E2E* |
Catalog search & cart
Section titled “Catalog search & cart”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-VPW-010 | Happy | Scan / search item; add to cart; quantity increment/decrement | E2E* |
| TC-VPW-011 | Unhappy | Add discontinued / wrong-store item → error | E2E* |
| TC-VPW-012 | Happy | Apply coupon / discount; totals recalc matches server | E2E* |
| TC-VPW-013 | Unhappy | Invalid discount stack rejected | Unit + E2E* |
| TC-VPW-014 | Happy | Clear cart / hold sale preserves policy | E2E* |
Draft orders panel
Section titled “Draft orders panel”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-VPW-020 | Happy | List draft orders; resume loads lines and customer | E2E* |
| TC-VPW-021 | Happy | Discard draft with confirm | E2E* |
| TC-VPW-022 | Unhappy | Resume draft when underlying price changed → warn or refresh | E2E* |
| TC-VPW-023 | Unhappy | Draft limit / server error surfaces without losing other drafts | E2E* |
Tender & payment
Section titled “Tender & payment”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-VPW-030 | Happy | Cash tender exact change; place order success | E2E✓ (shared contract specs) |
| TC-VPW-031 | Happy | Card tender: relay initiated; spinner until terminal result | Manual + E2E* (mock bridge) |
| TC-VPW-032 | Unhappy | Declined card → operator message; cart state defined | Manual |
| TC-VPW-033 | Unhappy | Bridge disconnect mid-tender → recoverable error | Manual |
| TC-VPW-034 | Happy | Split tender (if product) allocates amounts correctly | E2E* |
Post-checkout
Section titled “Post-checkout”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-VPW-040 | Happy | Receipt print / preview; silent print fallback | Unit + E2E* |
| TC-VPW-041 | Unhappy | Receipt finalize API fail → user sees retry without duplicate charge | Unit |
Membership / CRM gates (UI)
Section titled “Membership / CRM gates (UI)”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-VPW-050 | Unhappy | Membership SKU in cart without CRM customer → block checkout with copy | Unit + E2E* |
| TC-VPW-051 | Happy | Walk-in CRM customer attach resolves gate | E2E* |
Coverage checklist (this sheet)
Section titled “Coverage checklist (this sheet)”- Each new
pos-*UI file adds or updates rows here (not only vendor-web generic sheet) - Desktop-only paths cross-link Shared packages & desktop
- Visual regression for lane banner and draft panel on small viewports
Parent index: System test cases (index) · Orders API: Vendor orders & checkout