Skip to content

page.transportation.booking-workspace — Acceptance Specification And RTM

  • Page contract version: 1
  • Current developer contract: Transportation
  • Current source review: 0393adae1eb9e43eb32f0b736120119b46e056cb, 2026-09-12
  • Historical runtime below: authenticated local runtime against the 2026-08-15 MySQL/Legacy APIs, not current native UI acceptance

Current native coverage and execution boundaries

Existing scenario Current source/test entry Proof boundary
SCN-010, SCN-057, SCN-058 tests/contract/booking-workspace-core.test.ts; apps/web/tests/booking-workspace-defaults.test.ts parser/route and defaults; not actual create navigation
SCN-058 save/recovery apps/web/tests/booking-workspace-recovery.test.ts; packages/db-mysql/src/company-booking-create.test.ts helper/model and simulated transaction; actual mounted hook/network and MySQL remain separate
SCN-050, SCN-058 Clone tests/contract/semantic-booking-clone.test.ts; packages/db-mysql/src/company-booking-clone.test.ts dispatch, atomic batch/receipt/unknown tests with injected dependencies; not real DB concurrency
SCN-030, SCN-100 Packing/Confirmation tests/contract/semantic-booking-packing.test.ts; apps/web/tests/booking-packing-state.test.ts; packages/db-mysql/src/packing.test.ts contracts and source/preview state; browser print and physical output are separate
SCN-055, SCN-056 instruction/file tests/contract/booking-instruction-reader.test.ts; tests/contract/booking-files.test.ts typed suggestions/file fixture; not live AI provider acceptance
SCN-040 historical Photos current BookingWorkspace has no Photos tab old scenario retained for provenance, not a new requirement to restore Photos

For actual DB work, tests/integration/uuid-dual-key-company-booking.test.ts and tests/integration/booking-recovery.mysql.test.ts require their explicit environment/fixture admission. Read the test's opt-in conditions first; a skipped live selector is not a PASS. Use the commands in tests/README.md and record each run in the selected Task, not by changing a global "last run" date for all scenarios.

Later evidence is owned by NS3-105, the actual Booking/Clone/Packing slices of NS3-112, and NS3-127 for Wiki. Each result retains its original revision/role/fixture. NS4-017 owns the current developer-document review and newly executed focused tests. Do not promote these historical results merely because the linked Task is CLOSED. New manual/Wiki acceptance is Client ID 2 only; Client ID 1 is undecided.

Traditional requirements traceability and test specification

Requirement names below match the SRS. Existing process/command/query/data/SCN IDs are reused; no parallel ID registry is introduced. Paths below are relative to new-system/. Execution receipts belong to NS4-017; these are expected outcomes, not blanket PASS assertions. Source tests cannot close a C1 Legacy or C2 reference runtime case.

Requirement / existing trace Test input / condition Expected result Existing proof / remaining acceptance
Identify reservation/carrier; command.transportation.create-ocean-booking-draft; SCN-057/058 native blank number/type/SSL, unknown key, missing nested sibling; compare C1 required Shipper and C2 reference form native rejects invalid before write; C1/reference requirements remain separately documented tests/contract/booking-workspace-core.test.ts; reference/C1 runtime NOT_RUN
Same-tenant record; query.read-models.get-ocean-booking-workspace; SCN-010 absent/foreign UUID, unavailable Company, absent session/permission no cross-tenant record/write; distinct missing/denied response core route tests + company-booking-create.test.ts simulated SQL; actual role/DB isolation NOT_RUN
Schedule/equipment intent; data.mysql.t-booking; SCN-020 null dates, timezone-less input, fractional/negative/>999 quantity; planned vs used values date precision follows mapping; invalid quantity rejected; usage never replaces intent parser/adapter tests; historical DATE/enum/length mapping differences require live metadata
Safe save; command.transportation.update-ocean-booking-details; SCN-058 matching and stale expectedVersion; flag transition; second member batch fault CAS advances once, stale update rejected, batch rollback; event insertion is not billing consumption create/clone SQL fixtures and core contracts; real concurrent transaction NOT_RUN
Unknown result; same create/update IDs; SCN-058 lost response, matching/mismatching readback, missing create, edit made after submission compare UUID/fields/version; only confirmed missing create permits same UUID replay; unresolved disables submit; later edits retained apps/web/tests/booking-workspace-recovery.test.ts; mounted hook/network failure injection NOT_RUN
Clone; command.transportation.clone-ocean-booking; SCN-050/058 count0/10, duplicate child IDs, identical/changed receipt replay, batch fault/lost commit reject invalid; matching receipt replays batch without duplicates; no downstream copy tests/contract/semantic-booking-clone.test.ts, company-booking-clone.test.ts; Legacy empty response/link retention consumer test NOT_RUN
Company/execution meaning; process.fulfillment.booking-linkage C2 reference Supplier/Shipper columns; several native T_LOAD executions for one Booking no accidental role remap or native one-to-one assertion; header save does not relink named reference/Legacy/native source comparison; migration row mapping/cardinality acceptance NOT_RUN
Document states; process.transport.ocean-booking; SCN-100 reference AR then BL then SI date precedence, stored STATUS differing from list derived status follows stated precedence; native booleans not promoted to same lifecycle reference Ajax/DDL source; state mapping remains an explicit decision, runtime NOT_RUN
Packing source/restore; SCN-030/100 different source-selection/layout policy, stale fingerprint/version, second batch fault, save then Restore policy chooses correct source; all-or-nothing batch; Restore increments version and keeps direct metadata packages/db-mysql/src/packing.test.ts, apps/web/tests/booking-packing-state.test.ts; real DB source/readback NOT_RUN
Invoice-rate boundary; SCN-030/100 selected execution-item UUID group, changed source/order snapshot, rate denied, lost response only intended rates change; conflict/denied prevents write; amount recalculation is not accounting posting Packing DB fixture + tests/contract/semantic-booking-packing.test.ts; physical rates/amounts NOT_RUN
Preview; SCN-030/100 row selection/unit/display options and render failure PREVIEW/RENDER_ONLY; failure422 does not roll back Booking; no email/issuance Packing route/state contracts; browser Print/layout/provider NOT_RUN
File consistency; SCN-055/058 unsafe upload, attach failure, uncertain relation outcome, shared object deletion reject unsafe; do not delete an object whose relation result is unknown; preserve cleanup state tests/contract/booking-files.test.ts local-object fixture covers basic lifecycle/rejection; full uncertain/shared provider case NOT_RUN
AI suggestion; SCN-055/056 local PDF, invalid type/unknown suggested field; apply to unsaved draft validated provenance/allowlist, no implicit Booking Save tests/contract/booking-instruction-reader.test.ts; actual provider/mounted Apply+Save NOT_RUN
Accessibility/role and close behavior; SCN-020/100 keyboard-only open/edit/close, narrow viewport, dirty related panels, effective C2 role navigable usable controls, explicit discard, no unauthorized action shared UI/source review only; current rendered acceptance NOT_RUN

Acceptance execution must identify revision, effective profile, role, target environment, fixture, exact action/readback and cleanup. Unresolved C2 field/state mappings remain open decisions; they are not failed requirements silently replaced by native behavior. C1 technical reconstruction remains in scope; only new C1 manual/Wiki production is deferred.

Historical runtime observations — 2026-08-15

The PASS values below are preserved as originally recorded for the KJ editor. Their broad "current" or "all" wording refers to that historical observation, not today's native implementation.

Scenario ID Runtime behavior/readback Result
SCN-010 direct real Booking detail opens through /bookings/{id} PASS
SCN-020 all source-backed sections and 39 controls render PASS
SCN-030 Packing List action opens its existing document surface PASS
SCN-040 Manage Photos opens linked containers and upload controls PASS
SCN-050 Clone, Edit All Containers, Create Empty and EIR actions are present PASS — Client 1 clone/container actions, Empty EIR and Return EIR ZIP downloads, and Create Empty dispatch/readback were exercised; modern Edit 4 Selected Containers rendered Equipment/Timeline/Booking-Load/Photos sections with master options loaded, bulk Remark update/readback passed, and the original values were restored; disposable Equipment/Load rows were soft-deleted through the Logistics Workspace YMS adapter
SCN-055 AI instruction upload, Analyze Booking and Edit Prompt are present PASS — Client 1 PDF fixture analyzed successfully; Review AI Results showed Booking #/SSL/ETD, Apply Results populated the editor, and the test was cancelled before save
SCN-056 AI failure keeps the editor recoverable PASS — Client 1 invalid PDF returned HTTP 400 and the live editor displayed retry/manual-entry guidance without writing the Booking
SCN-057 /bookings/new opens the same reused create editor PASS — authenticated Client 1 opened the CTC create editor and ignored an MK-only Sales Order seed; authenticated Client 2 opened the MK create editor with Execution SO 152057 selected.
SCN-058 create/update/clone/container/photo authoritative write/readback PASS for non-AI operations — Client 1 create/update, clone, cancel/reopen, non-trivial container update with restore, container detail/multi-detail, and photo upload/register/read/delete readback PASS; provider cleanup remains queued by contract
SCN-090 editor contains no Help action; App Shell exposes User Wiki PASS
SCN-100 Client 1/2 composition and tenant-specific document actions PASS — Client 1 shared editor/options, Packing List, photo/document, AI-instruction and tenant-branded Booking Confirmation paths are wired; Client 2 MK list composition, Execution SO seed, outbound-container editor wiring and MK Booking Confirmation rendered.

No mocked form or in-memory Booking fixture is accepted as operational evidence.

---

Source: new-system/docs/pages/transportation/booking-workspace/TEST_MATRIX.md — ctc repository · This page is an English translation of the source document. Identifiers, file paths and code symbols are unchanged.