Test cases: Point of Sale v2 shell
Nội dung này hiện chưa có sẵn bằng ngôn ngữ của bạn.
Document control
Section titled “Document control”| Version | Date (UTC) | Summary |
|---|---|---|
| 1.0.0 | 2026-05-13 | Initial shell scenarios |
| 1.1.0 | 2026-05-13 | Bootstrap fields, cache keys, error paths expanded |
- HTTP:
vendor/point-of-sale/*(Backend modules). - UI:
/point-of-sale/*— full UX in Vendor POS workspace.
Scenario catalogue
Section titled “Scenario catalogue”Bootstrap
Section titled “Bootstrap”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-PS2-001 | Happy | GET …/bootstrap with valid store_id returns registers, lanes, prefs, tax defaults | Unit + E2E* |
| TC-PS2-002 | Unhappy | Missing store_id → 400 | Unit |
| TC-PS2-003 | Unhappy | Store not in vendor tenancy → 403 | Unit |
| TC-PS2-004 | Unhappy | Malformed store_id (non-numeric) → 400 | Unit |
| TC-PS2-005 | Happy | Bootstrap cached per storeId query key; switch store refetches | E2E* |
Lanes & registers
Section titled “Lanes & registers”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-PS2-010 | Happy | Single-lane store: default lane implicit; no blocking banner | E2E* |
| TC-PS2-011 | Unhappy | Multi-lane: no lane selected → sale actions disabled + pos.laneRequiredBanner | E2E* |
| TC-PS2-012 | Happy | Register selection persists for session | E2E* |
| TC-PS2-013 | Unhappy | Register closed server-side → UI refresh shows lock | E2E* |
Session & auth
Section titled “Session & auth”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-PS2-020 | Happy | Workspace mirrors dashboard POS shift open/close rules | E2E* |
| TC-PS2-021 | Unhappy | Session expired mid-sale → redirect to login with return URL | E2E* |
| TC-PS2-022 | Unhappy | Refresh token rotation failure → hard logout path | Unit + E2E* |
Data parity
Section titled “Data parity”| ID | Class | Scenario | Automation |
|---|---|---|---|
| TC-PS2-030 | Happy | Item catalog subset matches dashboard POS for same store | E2E* |
| TC-PS2-031 | Unhappy | Catalog version bump mid-sale → refetch or merge policy | E2E* |
Coverage checklist (this sheet)
Section titled “Coverage checklist (this sheet)”- Bootstrap DTO fields documented next to TypeScript types in backend PRs
- TanStack
queryKeyincludesstoreIdfor all POS workspace queries - Cross-link POS & payments for submit
Parent index: System test cases (index)