Turboo QA — Test Siteport 3020 · additive extension app

Test Plan — Order → Transport operational flow

227 cases

1 · Intake — import / API / manual create

Orders enter the system: xlsx import (preview, geocode, commit), Open-API intake, manual Create Order, drafts

CaseTitlePriorityModuleStatusLast TestedBy
QA-INT-001Import xlsx — happy path preview → commit⚙ AutoP1orderNever run
QA-INT-002Import auto-geocode fills coordinates⚙ AutoP1orderNever run
QA-INT-003Re-import same file — update path keeps data⚙ AutoP2orderNever run
QA-INT-004Import validation rejects bad rows with reasons⚙ AutoP2orderNever run
QA-INT-005Open-API intake creates an order⚙ AutoP2orderNever run
QA-INT-006Manual Create Order — full flow to Confirmed⚙ AutoP1orderNever run
QA-INT-007Save draft with API minimums⚙ AutoP2orderNever run
QA-INT-008FILE attribute upload during create⚙ AutoP3orderNever run
QA-INT-009Edit order via the Create surface (/orders/[id]/edit)⚙ AutoP1OrderNever run
QA-INT-A01Order import geocode (TC-GEO)⚙ AutoP1orderNever run
QA-INT-010Create Order page renders fully in Thai⚙ AutoP2OrderNever run
QA-INT-A02Import Save-Consignee gate (TC-CONS)⚙ AutoP2orderNever run
QA-INT-A04Edit-order module unit — seed mapping + diff-apply sequence⚙ AutoP1OrderNever run
QA-INT-A05ordersCreate i18n parity unit — EN⇄TH key sets, kinds, arity, non-empty⚙ AutoP2OrderNever run
QA-INT-A03Open API order-number upsert (TC-OPENAPI-UPSERT)⚙ AutoP2orderNever run
QA-INT-A06POST /v1/orders geocodes coord-less stops⚙ AutoP1orderNever run
QA-INT-011Order Import — Access & templateP2orderNever run
QA-INT-012Order Import — Upload file validationP2orderNever run
QA-INT-013Order Import — Preview parsing & row groupingP2orderNever run
QA-INT-014Order Import — Required-field validationP1orderNever run
QA-INT-015Order Import — Address Book code resolutionP1orderNever run
QA-INT-016Order Import — Customer auto-createP2orderNever run
QA-INT-017Order Import — COD & currency validationP3orderNever run
QA-INT-018Order Import — Item / Cargo Type validationP2orderNever run
QA-INT-019Order Import — Date & time warningsP2orderNever run
QA-INT-020Order Import — Save Consignee gateP2orderNever run
QA-INT-021Order Import — Dedup NEW/UPDATE/REJECTEDP1orderNever run
QA-INT-022Order Import — Preview UI renderingP3orderNever run
QA-INT-023Order Import — Geocode opt-in at commitP2orderNever run
QA-INT-024Order Import — Commit, audit & idempotencyP1orderNever run
QA-INT-025Order Import — Regression / edgeP2orderNever run
QA-INT-026Create Order (manual) — Access & layout⚙ AutoP2orderNever run
QA-INT-027Create Order (manual) — Customer selection⚙ AutoP1orderNever run
QA-INT-028Create Order (manual) — References pane (all optional)⚙ AutoP3orderNever run
QA-INT-029Create Order (manual) — Options pane (all optional)⚙ AutoP3orderNever run
QA-INT-030Create Order (manual) — Custom fields pane⚙ AutoP2orderNever run
QA-INT-031Create Order (manual) — Address search (pickup/delivery)⚙ AutoP2orderNever run
QA-INT-032Create Order (manual) — Point required-field validation vs backend schema ⭐P1orderNever run
QA-INT-033Create Order (manual) — Contact / consignee⚙ AutoP3orderNever run
QA-INT-034Create Order (manual) — Time windowP2orderNever run
QA-INT-035Create Order (manual) — Item add/edit modalP1orderNever run
QA-INT-036Create Order (manual) — Items pane / totalsP3orderNever run
QA-INT-037Create Order (manual) — Save draft vs Create order gates differ ⭐P1orderNever run
QA-INT-038Create Order (manual) — Confirm & submit⚙ AutoP1orderNever run
QA-INT-039Create Order (manual) — Post-create actions⚙ AutoP3orderNever run
QA-INT-040Create Order (manual) — Edit mode⚙ AutoP1orderNever run
QA-INT-041Create Order (manual) — Regression / edgeP2orderNever run

2 · Order lifecycle & statuses

Confirm, derived-status tab groups, hold/unhold, cancel rules, order detail surfaces

CaseTitlePriorityModuleStatusLast TestedBy
QA-ORD-001Confirm draft → To Plan (derived READY)⚙ AutoP1orderNever run
QA-ORD-002Status tabs map derived-status groups⚙ AutoP1orderNever run
QA-ORD-003Hold / unhold with reason⚙ AutoP2orderNever run
QA-ORD-004Cancel rules — Draft/Confirmed only⚙ AutoP2orderNever run
QA-ORD-005Order detail renders all sections with live data⚙ AutoP2orderNever run
QA-ORD-006Item list — status column, totals, serial rows⚙ AutoP3orderNever run
QA-ORD-007History log is humanized and complete⚙ AutoP3orderNever run
QA-ORD-A01AT_HUB onward-leg status regression (TC90-92)⚙ AutoP1orderNever run

3 · Planning → job creation

To-Plan gate, order picker, points, fleet assignment, 3PL, wallet gate, job edit

CaseTitlePriorityModuleStatusLast TestedBy
QA-PLN-010AI Planning list — 3-tab design with Trips strip⚙ AutoP1PlanningNever run
QA-PLN-011New Plan builder — Manual + AI modes, SKU-level picking⚙ AutoP1PlanningNever run
QA-PLN-012Plan detail — rail/stop/map anatomy with live mutations⚙ AutoP1PlanningNever run
QA-PLN-A11Planning display contract unit — thresholds, tour colors, pill hues, load format⚙ AutoP1PlanningNever run
QA-PLN-A12aiPlanning i18n parity unit — EN⇄TH keys/kinds/arity + nested maps⚙ AutoP2PlanningNever run
QA-PLN-001Create Job gate — To-Plan orders only⚙ AutoP1transportNever run
QA-PLN-002Add-orders picker shares the order-list contract⚙ AutoP2transportNever run
QA-PLN-003Point labels per kind everywhere⚙ AutoP2transportNever run
QA-PLN-004Fleet assign — type → registered plates → driver⚙ AutoP1transportNever run
QA-PLN-005Draft job retains vehicle and driver⚙ AutoP2transportNever run
QA-PLN-0063PL — partner vehicle-type catalog⚙ AutoP3transportNever run
QA-PLN-007Wallet gate — ฿30 debit per job⚙ AutoP1transportNever run
QA-PLN-008Edit job — lossless round-trip⚙ AutoP2transportNever run
QA-PLN-009Multi-order job creation⚙ AutoP2transportNever run
QA-PLN-A01Job import P1 — ad-hoc jobs (TC-JOBIMP)⚙ AutoP2transportNever run
QA-PLN-A02Job import P2 — vehicle/driver/3PL assign (TC-JOBIMP-ASSIGN)⚙ AutoP2transportNever run
QA-PLN-A03Job import P3a — LINK existing orders (TC-JOBIMP-LINK)⚙ AutoP2transportNever run
QA-PLN-A04Job import P3c — NEW order + linked job (TC-JOBIMP-NEW)⚙ AutoP2transportNever run
QA-PLN-A05Job import unified order upsert (TC-JOBIMP-UPSERT)⚙ AutoP2transportNever run
QA-PLN-A06Job import SYSTEM suite — 17 cases (TC-JOBIMP-SYS)⚙ AutoP1transportNever run
QA-PLN-A07Job import bulk performance (TC-JOBIMP-PERF)⚙ AutoP3transportNever run
QA-PLN-A08Open API job import (TC-OPENAPI-JOBS, mig 070)⚙ AutoP1transportNever run
QA-PLN-A09Job editable until delivered (TC95-97)⚙ AutoP2transportNever run
QA-PLN-A10svc-transport unit tests (vitest)⚙ AutoP2transportNever run
QA-PLN-U01Create-Job UI ⭐ Plate availability + date-aware busy (F3–F8, O1–O2)⚙ AutoP1transportNever run
QA-PLN-U02Create-Job UI ⭐ Same-location stop grouping create+edit (J11, M5, O3)⚙ AutoP1transportNever run
QA-PLN-U03Create-Job UI ⭐ Validation gate (L1–L5, I2)⚙ AutoP1transportNever run
QA-PLN-U04Create-Job UI ⭐ Route fixes — drag/delete, offset, autofill, coords (J4, J6, J7, K5)⚙ AutoP1transportNever run
QA-PLN-UACreate-Job UI · A Page load & layout⚙ AutoP2transportNever run
QA-PLN-UBCreate-Job UI · B Order attach⚙ AutoP2transportNever run
QA-PLN-UCCreate-Job UI · C Customer⚙ AutoP2transportNever run
QA-PLN-UDCreate-Job UI · D Shipment type⚙ AutoP3transportNever run
QA-PLN-UECreate-Job UI · E Job type⚙ AutoP2transportNever run
QA-PLN-UFCreate-Job UI · F Trucks + Select plate (ส่วน manual)⚙ AutoP2transportNever run
QA-PLN-UGCreate-Job UI · G Driver⚙ AutoP2transportNever run
QA-PLN-UHCreate-Job UI · H Additional services⚙ AutoP3transportNever run
QA-PLN-UICreate-Job UI · I Job attribute (ส่วน manual)⚙ AutoP2transportNever run
QA-PLN-UJCreate-Job UI · J Transportation route (ส่วน manual)⚙ AutoP2transportNever run
QA-PLN-UKCreate-Job UI · K Map (ส่วน manual)⚙ AutoP2transportNever run
QA-PLN-UMCreate-Job UI · M Save draft / Create now / Cancel (ส่วน manual)⚙ AutoP2transportNever run
QA-PLN-UNCreate-Job UI · N Use template⚙ AutoP2transportNever run
QA-PLN-UOCreate-Job UI · O Regression edge (ส่วน manual)⚙ AutoP2transportNever run
QA-PLN-A13Import/API job build groups stops like manual create⚙ AutoP1transportNever run
QA-PLN-A14Job confirm gate — REQUIRED custom fields (Kitnu #5)⚙ AutoP1transportNever run
QA-PLN-A15Per-org import mutex (TC-JOBIMP-LOCK)⚙ AutoP2transportNever run
QA-PLN-A16Bulk-import completion notification (TC-JOBIMP-NOTIFY)⚙ AutoP2transportNever run
QA-PLN-A17Order-upsert bulk import throughput (TC-JOBIMP-UPSERT-PERF)⚙ AutoP3transportNever run
QA-PLN-A18Job template / duplicate stop-type fidelity (Kitnu #6)⚙ AutoP2transportNever run
QA-PLN-A19Container stops: Import/Export gate + real stop types (รับตู้/บรรจุสินค้า/คืนตู้)⚙ AutoP2transportNever run

4 · Job execution

Start/dispatch, per-stop activity checklist, evidence capture, problems

CaseTitlePriorityModuleStatusLast TestedBy
QA-EXE-001Start job → In Progress; orders flip In Transit⚙ AutoP1transportNever run
QA-EXE-002Checklist shows backend template only⚙ AutoP1transportNever run
QA-EXE-003Sequence lock walks visible activities⚙ AutoP2transportNever run
QA-EXE-004Check-in prefills and saves classic payload⚙ AutoP2transportNever run
QA-EXE-005Item check — short qty reason + serials⚙ AutoP2transportNever run
QA-EXE-006Photo evidence uploads under the owning stop⚙ AutoP2transportNever run
QA-EXE-007Signature completes a delivery stop⚙ AutoP1transportNever run
QA-EXE-008Problem report create and resolve⚙ AutoP2transportNever run
QA-EXE-009Partner job guard on Start/Pause⚙ AutoP3transportNever run
QA-EXE-A01Driver-app ownership contract (TC30-33)⚙ AutoP1transportNever run
QA-EXE-A02One-active-job / pause rules (mig 069)⚙ AutoP2transportNever run
QA-EXE-A03Merged-stop ITEM_CHECK behavior⚙ AutoP2transportNever run
QA-EXE-A043PL Org-to-Org handover suite (TC24-29)⚙ AutoP1transportNever run
QA-EXE-A05Load — 1 job × 100 orders, merged stops⚙ AutoP3transportNever run
QA-EXE-A06Activities locked on pre-dispatch jobs (Kitnu 07-21)⚙ AutoP1transportNever run
QA-EXE-A07Driver app never sees un-dispatched jobs (Kitnu #10)⚙ AutoP1transportNever run
QA-EXE-A08Interleaved pickup not gated by earlier delivery (Kitnu)⚙ AutoP1transportNever run
QA-EXE-010Job Import — Access & templateP2transportNever run
QA-EXE-011Job Import — Upload file validationP2transportNever run
QA-EXE-012Job Import — Preview parsing & row groupingP1transportNever run
QA-EXE-013Job Import — Ad-hoc mode required-field validationP1transportNever run
QA-EXE-014Job Import — Address Book code resolution (ad-hoc stops)P2transportNever run
QA-EXE-015Job Import — Customer auto-create (ad-hoc)P2transportNever run
QA-EXE-016Job Import — LINK mode (claim an existing order)P1transportNever run
QA-EXE-017Job Import — NEW mode (create an order via job import)P1transportNever run
QA-EXE-018Job Import — Mixed job (LINK + NEW orders together)P1transportNever run
QA-EXE-019Job Import — Optional assignment (vehicle/driver/3PL)P1transportNever run
QA-EXE-020Job Import — Wallet / billing (฿30/job)P2transportNever run
QA-EXE-021Job Import — Concurrency lock (per-org mutex)P2transportNever run
QA-EXE-022Job Import — Geocoding (ad-hoc only, automatic)P2transportNever run
QA-EXE-023Job Import — Preview UI renderingP3transportNever run
QA-EXE-024Job Import — Commit & notificationP1transportNever run
QA-EXE-025Job Import — Regression / edgeP2transportNever run

5 · Delivery & completion

Stop completion, partial delivery, multi-order isolation, ePOD, locks

CaseTitlePriorityModuleStatusLast TestedBy
QA-DLV-001Full delivery — job Completed, order Delivered⚙ AutoP1transportNever run
QA-DLV-002Split order across jobs → Partial Delivered⚙ AutoP1orderNever run
QA-DLV-003Multi-order job — timeline isolation (TUR-042)⚙ AutoP1orderNever run
QA-DLV-004ePOD — curate, save, approve, lock⚙ AutoP2orderNever run
QA-DLV-005Progress ring parity list vs detail⚙ AutoP3transportNever run
QA-DLV-006Delivered job locks edits⚙ AutoP2transportNever run
QA-DLV-A01Short pickup — Option B ไปก่อน (TC60-63)⚙ AutoP1transportNever run
QA-DLV-A02Post-completion item-check re-sync (TC50-55, mig 049)⚙ AutoP2orderNever run
QA-DLV-A03Qty-invariant regression suite (TC70-75)⚙ AutoP1orderNever run
QA-DLV-A04Deliver 0-of-N display (TC98)⚙ AutoP2orderNever 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

CaseTitlePriorityModuleStatusLast TestedBy
QA-EVT-001transport.job.in_progress emitted and consumed⚙ AutoP1eventsNever run
QA-EVT-002transport.job.completed recomputes orders⚙ AutoP1eventsNever run
QA-EVT-003transport.job.cancelled releases resources⚙ AutoP2eventsNever run
QA-EVT-004transport.stop.completed stamps the order stop⚙ AutoP2eventsNever run
QA-EVT-005order_jobs snapshot matches job status end-to-end⚙ AutoP2eventsNever run
QA-EVT-A01MASTER order↔transport suite (TC1-19)⚙ AutoP1eventsNever run
QA-EVT-A02Outbound webhooks (svc-notification mig 002)⚙ AutoP2eventsNever run
QA-EVT-A03svc-order unit tests (vitest)⚙ AutoP2eventsNever run
QA-EVT-A04Mobile push — device tokens + fan-out (mig 003)⚙ AutoP2eventsNever run
QA-EVT-A05svc-notification unit tests (vitest)⚙ AutoP2eventsNever 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.

CaseTitlePriorityModuleStatusLast TestedBy
QA-FLT-001Fleets v2 — entry, sidebar tile & legacy redirect⚙ AutoP1transportNever run
QA-FLT-002Monitor — live vehicle rail + map render⚙ AutoP1transportNever run
QA-FLT-003Monitor — vehicle select opens detail panel⚙ AutoP1transportNever run
QA-FLT-004Monitor — replay open + scrubber⚙ AutoP1transportNever run
QA-FLT-005Monitor — speed chart⚙ AutoP2transportNever run
QA-FLT-006Monitor — fuel panel⚙ AutoP2transportNever run
QA-FLT-007Monitor — geofence panel⚙ AutoP2transportNever run
QA-FLT-008Monitor — alerts rail⚙ AutoP2transportNever run
QA-FLT-009Monitor — video panel⚙ AutoP2transportNever run
QA-FLT-010Calendar tab — vehicle-type lanes + views⚙ AutoP2transportNever run
QA-FLT-011Fleet settings — vehicle registry + profile modal⚙ AutoP1transportNever run
QA-FLT-012Fleet settings — Groups CRUD + member picker⚙ AutoP1transportNever run
QA-FLT-013Reports tab — 5-report catalog, scopes, generate → download → recent exports⚙ AutoP1transportNever run
QA-FLT-014Monitor — quick reports on the vehicle detail rail⚙ AutoP1transportNever run
QA-FLT-015Monitor — geofence edit + location search⚙ AutoP1transportNever run

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).

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).

CaseTitlePriorityModuleStatusLast TestedBy
QA-AUTH-001Login — email+password mode⚙ AutoP1identityNever run
QA-AUTH-002Login — phone-OTP mode⚙ AutoP1identityNever run
QA-AUTH-003Register — org + admin signup⚙ AutoP1tenantNever run
QA-AUTH-004Forgot + reset password⚙ AutoP2identityNever run
QA-AUTH-005Invite flows — setup-password + setup-phone⚙ AutoP2tenantNever run
QA-AUTH-006Verify-email (add-email flow) + shell regressionP3tenantNever 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.

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).