Test Plan — Order → Transport operational flow
227 cases1 · Intake — import / API / manual create
Orders enter the system: xlsx import (preview, geocode, commit), Open-API intake, manual Create Order, drafts
2 · Order lifecycle & statuses
Confirm, derived-status tab groups, hold/unhold, cancel rules, order detail surfaces
| Case | Title | Priority | Module | Status | Last Tested | By |
|---|---|---|---|---|---|---|
| QA-ORD-001 | Confirm draft → To Plan (derived READY)⚙ Auto | P1 | order | Never run | — | — |
| QA-ORD-002 | Status tabs map derived-status groups⚙ Auto | P1 | order | Never run | — | — |
| QA-ORD-003 | Hold / unhold with reason⚙ Auto | P2 | order | Never run | — | — |
| QA-ORD-004 | Cancel rules — Draft/Confirmed only⚙ Auto | P2 | order | Never run | — | — |
| QA-ORD-005 | Order detail renders all sections with live data⚙ Auto | P2 | order | Never run | — | — |
| QA-ORD-006 | Item list — status column, totals, serial rows⚙ Auto | P3 | order | Never run | — | — |
| QA-ORD-007 | History log is humanized and complete⚙ Auto | P3 | order | Never run | — | — |
| QA-ORD-A01 | AT_HUB onward-leg status regression (TC90-92)⚙ Auto | P1 | order | Never run | — | — |
3 · Planning → job creation
To-Plan gate, order picker, points, fleet assignment, 3PL, wallet gate, job edit
4 · Job execution
Start/dispatch, per-stop activity checklist, evidence capture, problems
5 · Delivery & completion
Stop completion, partial delivery, multi-order isolation, ePOD, locks
| Case | Title | Priority | Module | Status | Last Tested | By |
|---|---|---|---|---|---|---|
| QA-DLV-001 | Full delivery — job Completed, order Delivered⚙ Auto | P1 | transport | Never run | — | — |
| QA-DLV-002 | Split order across jobs → Partial Delivered⚙ Auto | P1 | order | Never run | — | — |
| QA-DLV-003 | Multi-order job — timeline isolation (TUR-042)⚙ Auto | P1 | order | Never run | — | — |
| QA-DLV-004 | ePOD — curate, save, approve, lock⚙ Auto | P2 | order | Never run | — | — |
| QA-DLV-005 | Progress ring parity list vs detail⚙ Auto | P3 | transport | Never run | — | — |
| QA-DLV-006 | Delivered job locks edits⚙ Auto | P2 | transport | Never run | — | — |
| QA-DLV-A01 | Short pickup — Option B ไปก่อน (TC60-63)⚙ Auto | P1 | transport | Never run | — | — |
| QA-DLV-A02 | Post-completion item-check re-sync (TC50-55, mig 049)⚙ Auto | P2 | order | Never run | — | — |
| QA-DLV-A03 | Qty-invariant regression suite (TC70-75)⚙ Auto | P1 | order | Never run | — | — |
| QA-DLV-A04 | Deliver 0-of-N display (TC98)⚙ Auto | P2 | order | Never run | — | — |
6 · Module settings
Custom attributes, view configs/columns, activity templates, master data, wallet
7 · Event consistency (order ↔ job)
Redis stream events drive order derivation — the TUR-042 class of staleness
| Case | Title | Priority | Module | Status | Last Tested | By |
|---|---|---|---|---|---|---|
| QA-EVT-001 | transport.job.in_progress emitted and consumed⚙ Auto | P1 | events | Never run | — | — |
| QA-EVT-002 | transport.job.completed recomputes orders⚙ Auto | P1 | events | Never run | — | — |
| QA-EVT-003 | transport.job.cancelled releases resources⚙ Auto | P2 | events | Never run | — | — |
| QA-EVT-004 | transport.stop.completed stamps the order stop⚙ Auto | P2 | events | Never run | — | — |
| QA-EVT-005 | order_jobs snapshot matches job status end-to-end⚙ Auto | P2 | events | Never run | — | — |
| QA-EVT-A01 | MASTER order↔transport suite (TC1-19)⚙ Auto | P1 | events | Never run | — | — |
| QA-EVT-A02 | Outbound webhooks (svc-notification mig 002)⚙ Auto | P2 | events | Never run | — | — |
| QA-EVT-A03 | svc-order unit tests (vitest)⚙ Auto | P2 | events | Never run | — | — |
| QA-EVT-A04 | Mobile push — device tokens + fan-out (mig 003)⚙ Auto | P2 | events | Never run | — | — |
| QA-EVT-A05 | svc-notification unit tests (vitest)⚙ Auto | P2 | events | Never run | — | — |
8 · Fleet module v2 (Fleets · /gps-monitoring)
Fleets cutover (07-30): Monitor · Calendar · Fleet settings in the new shell. Manual smoke on real data. Runs against Devtest; no destructive deletes on non-TEST records.
9 · Order module v2 (list · detail · ePOD · create)
Order module v2 (design package order_detail_create): list tabs/filters/frozen columns/saved views, detail hero + stage honesty, ePOD review (mig 052), job tracking, create/edit. Create-flow cases run against Devtest only (submit bills usage).
| Case | Title | Priority | Module | Status | Last Tested | By |
|---|---|---|---|---|---|---|
| QA-ORD-010 | Order list v2 — tab order + counts⚙ Auto | P1 | order | Never run | — | — |
| QA-ORD-011 | Order list v2 — ePOD status filter⚙ Auto | P2 | order | Never run | — | — |
| QA-ORD-012 | Order list v2 — frozen columns under horizontal scroll⚙ Auto | P2 | order | Never run | — | — |
| QA-ORD-013 | Order list v2 — saved views (column config)⚙ Auto | P2 | order | Never run | — | — |
| QA-ORD-014 | Order detail v2 — hero label + stage bar honesty⚙ Auto | P1 | order | Never run | — | — |
| QA-ORD-015 | Order detail v2 — item list serials expand⚙ Auto | P2 | order | Never run | — | — |
| QA-ORD-016 | Order detail v2 — FILE attributes + history⚙ Auto | P3 | order | Never run | — | — |
| QA-ORD-017 | ePOD — job pane cards + POD modal Save / Save & Approve⚙ Auto | P1 | order | Never run | — | — |
| QA-ORD-018 | ePOD — Reject flow + mig-052 guards⚙ Auto | P1 | order | Never run | — | — |
| QA-ORD-019 | Job tracking — delivered vs pre-transit honesty⚙ Auto | P2 | order | Never run | — | — |
| QA-ORD-020 | Create order v2 — pane flow + province gate (smoke, NO submit)⚙ Auto | P1 | order | Never run | — | — |
| QA-ORD-021 | Edit order — DRAFT-only gate⚙ Auto | P1 | order | Never run | — | — |
10 · Auth module (login · register · recovery · invites)
Auth redesign v2: dark photographic shell, underline inputs, real flows end-to-end. Error paths safe on any org; registration happy-path and invite consumption ONLY under owner supervision (creates orgs/accounts).
| Case | Title | Priority | Module | Status | Last Tested | By |
|---|---|---|---|---|---|---|
| QA-AUTH-001 | Login — email+password mode⚙ Auto | P1 | identity | Never run | — | — |
| QA-AUTH-002 | Login — phone-OTP mode⚙ Auto | P1 | identity | Never run | — | — |
| QA-AUTH-003 | Register — org + admin signup⚙ Auto | P1 | tenant | Never run | — | — |
| QA-AUTH-004 | Forgot + reset password⚙ Auto | P2 | identity | Never run | — | — |
| QA-AUTH-005 | Invite flows — setup-password + setup-phone⚙ Auto | P2 | tenant | Never run | — | — |
| QA-AUTH-006 | Verify-email (add-email flow) + shell regression | P3 | tenant | Never run | — | — |
11 · LINE Driver Chat (OA gateway · console · invites · briefs)
Driver chats on LINE; CS works the job-detail overlay in Turboo. AI suggests, human confirms (L1). Local runs use signed fake webhooks + DRIVER_LINE_REPLIES_PAUSED; live runs use the real OA.
12 · Public tracking (portal · track links)
Public Tracking rebuild (px-island #9, design_handoff_tracking v3.1): /tracking-portal/[slug] portal + /track token pages. Rulings .claude/rulings/public-tracking.md PT-1..15 are law — PT-9: no login/sign-out chrome ever (access = possession of the link); PT-7: org-wide portals search exact order/system numbers only, single-customer fuzzy + order-less jobs; PT-1: ratified 4-segment status mapping (DISPATCHED lights PLANNED). All cases read-only on live data — nothing created.
| Case | Title | Priority | Module | Status | Last Tested | By |
|---|---|---|---|---|---|---|
| QA-TRK-A01 | Tracking portal core flow: org-wide home → exact/multi search → transit·cancelled·delivered details (PT-1..15)⚙ Auto | P1 | frontend | Never run | — | — |
13 · Ask AI / DATA Hub (chat · widgets · Excel reports)
Ask AI module (px-island #7, svc-ai :3012): catalog-bounded LLM chat, live widget aggregates, Excel report engine. Automated cases hit svc-ai's non-LLM endpoints (widgets/data, reports/preview, reports/run) against Devtest and recompute expectations from the same upstream lists — no Anthropic credits spent. LLM turns stay manual-by-design (metered).