Test cases

Every documented test case in the registry, in one shape, generated from the entries on each build. It is the raw material for a test pack: pick the rows that touch what is changing, and hand them over.

The shape

Column Is
Case ID Permanent, and unique across the registry. <entry prefix>-TC-<case>
Layer What is being exercised — the script, the saved search, the storefront, a named stage of a flow
Preconditions The state the system has to be in before the case means anything
Input What arrives, or what happens, against that state
Expected output What the registry says should come back. Not what production was observed doing, unless the entry says so
Rule ref The rule the case exercises, and the defect it pins down where one is named

What is deliberately not here

No result columns. Assistant verified, dev result, pass or fail — those describe one run of a pack, not the case. A column in the registry recording the outcome of a run nobody repeats is the version field over again: it reads as more authority than it has earned within a month. Add them to the pack when you issue it.

Nothing is inferred. A case whose entry never recorded which rule it exercises shows needs confirming rather than a guess. Where an entry warns that its cases are derived from documentation rather than from a passing run — because the flow has no automated coverage, or because the calculation has not been read — that warning is on the entry, above its table, and it is the first thing to read before trusting a row.

How to read a pack out of this

  1. Start from the rule, not the entry: find the rule in the search box, then take every case whose Rule ref names it.
  2. Add the cases for whatever that rule's entry says it depends_on — a rule reading yesterday's answer fails in ways its own cases will not show.
  3. Check DEFECTS.md for open defects on the same rules. A case that passes against a known defect is testing the defect, not the rule.

156 cases across 9 entries. 55 name no rule and 74 name no layer — neither is inferred here. 1 entry has no test cases at all: Transfer Order Automation — Daily Overflow → Sydney Replenishment.

Courier Tracking Status Update 22

Open the entry · draft

Case IDLayerPreconditionsInputExpected outputRule ref
CT-TC-T1 The run groups rows Row with consignmentNumber empty, Ship Via AU WIDE - Hunter Express — Row is skipped, logged [SKIP] … empty consignment number; no carrier call LI-BL-FUL-018
CT-TC-T2 Carrier matching Ship Via AU&nbsp;WIDE&amp;nbsp;- Hunter&nbsp;Express (entity-encoded) — Resolves to Hunter Express — entities decoded, whitespace collapsed, lowercased before matching LI-BL-FUL-019
CT-TC-T3 Carrier matching Ship Via METRO - Designer Transport - Standard NEW (not in the exact list) — Resolves to Designer Transport on the name pattern LI-BL-FUL-019
CT-TC-T4 Carrier matching Ship Via AU WIDE - Direct Freight — No carrier; [SKIP]; the ship method appears in the run's unmatched count LI-BL-FUL-019
CT-TC-T5 Current-event selection Events In transit 20/07/2026 09:00 and Out for delivery 25/07/2026 06:00, run on 21/07/2026 — Picks In transit — the 25/07 event has not happened yet LI-BL-FUL-020
CT-TC-T6 Current-event selection Events started 17/07/2026 07:22 then delivered 17/07/2026 07:22 — Picks delivered LI-BL-FUL-020
CT-TC-T7 Translation Event text Onboard for delivery, AusPost — Status id 6 (Out for delivery) from the AusPost exact table LI-BL-FUL-021
CT-TC-T8 Translation Event text Staged for Delivery, Designer Transport — Status id 5 (Ready for delivery) from Designer's own table — no generic pattern matches this wording LI-BL-FUL-021
CT-TC-T9 Translation Event text Consignment repacked at hub — No status; row logged [NO-MAP]; nothing written LI-BL-FUL-021
CT-TC-T10 Decision Carrier throws HTTP 503; NetSuite holds Out for delivery — Kept; reason carrier error; [PRESERVE] line carries the driver error LI-BL-FUL-022
CT-TC-T11 Decision Carrier answers but the page cannot be parsed; NetSuite holds Out for delivery — Kept; logged [ERROR] … parse failure, not [PRESERVE]; carrier's [ALERT] line raised LI-BL-FUL-022
CT-TC-T12 Decision NetSuite comment … Updated At 21/04/2026 09:00; carrier's latest event In transit 20/04/2026 14:00 — Kept; reason NS has newer comment LI-BL-FUL-023
CT-TC-T13 Decision Same as T12, but the carrier's event is Delivered 20/04/2026 and NetSuite's status is not Delivered — Written — terminal progression overrides the newer note LI-BL-FUL-023
CT-TC-T14 Decision Carrier repeats yesterday's event, with today's scrape time in the comment — No change — the Updated At tail is stripped before comparison LI-BL-FUL-024
CT-TC-T15 Write payload Status becomes Delivered; event 21/04/2026 14:32 — custbody_actual_delivery_date = 2026-04-21; status 7; tracking link present LI-BL-FUL-024
CT-TC-T16 Write payload Status becomes Delivered; event time unparseable — Status 7 written; custbody_actual_delivery_date absent from the payload LI-BL-FUL-024
CT-TC-T17 Write payload Carrier returns carton count 0 — custbody_courier_carton_received absent — zero is not written LI-BL-FUL-024
CT-TC-T18 Full run 400 Designer Transport rows at 5/min, 15-minute invocation — Rows tracked until the reserve is reached, those written back, the remainder logged [DEFER]; run reports deferredRows > 0 LI-BL-FUL-025
CT-TC-T19 Full run Hunter Express throws while Air Road is mid-run — Air Road completes and writes back; the run logs [ERROR] Hunter Express: carrier run failed LI-BL-FUL-025
CT-TC-T20 Canary Designer Transport's page markup changes — [CANARY-FAIL] Designer Transport … could not parse the carrier's response LI-BL-FUL-026
CT-TC-T21 Canary AusPost driver, whose health-check consignment is unset — [CANARY-SKIP] AusPost | no canary consignment declared on the driver — today's behaviour, and a defect (CT-3). Intended: a real settled AusPost consignment is checked and passes LI-BL-FUL-026CT-3
CT-TC-T22 Decision NetSuite holds Delivery attempt failed; carrier unreadable — Today: logged [NO-DATA]/[NO-MAP], not counted as preserved (defect CT-2). Intended: [PRESERVE], reason carrier error. Nothing is written either way LI-BL-FUL-022CT-2

Delay Comms — Stage 2: the delay call request 12

Open the entry · draft

Case IDLayerPreconditionsInputExpected outputRule ref
DN-TC-T1 Feed and formatting The feed search returns three rows for one sales order — two different items, and one item repeated with different casing. One run of the Lambda. One call request is raised for the order, listing two items. The repeated item appears once. LI-BL-CMS-006
DN-TC-T2 Feed and formatting The feed search returns rows for four different sales orders. One run of the Lambda. Four separate call requests, one per order, each naming only its own items. LI-BL-CMS-006
DN-TC-T3 Team routing The order's Kustomer customer carries the type value trade. One run of the Lambda. The conversation is assigned to Trade Enquiries. LI-BL-CMS-007
DN-TC-T4 Team routing The order's Kustomer customer carries no type value, or a value other than trade. One run of the Lambda. The conversation is assigned to Account Management. LI-BL-CMS-007
DN-TC-T5 Team routing The order's Kustomer customer carries trade, but the read of that customer fails. One run of the Lambda. Deployed behaviour is that the conversation is assigned to Account Management and the run reports success. This is defect DN-D5; the intended outcome is Trade Enquiries. LI-BL-CMS-007
DN-TC-T6 Kustomer The customer-resolution service returns no customer id for the order. One run of the Lambda. No conversation, no note, no audit log and no line-item write for that order. An error email names the order. Other orders in the same run are unaffected. LI-BL-CMS-009
DN-TC-T7 NetSuite write An order with one delayed line, Delay Comms blank or Stage 1, Expected Ship Date later than Delay Ship Date. One run of the Lambda that completes every step. That line's Delay Comms reads Stage 2: Delay Call Scheduled, and its Delay Ship Date now equals the Expected Ship Date that was read. LI-BL-CMS-008
DN-TC-T8 NetSuite write A row whose Line ID matches no line on the sales order — for example a line since removed. One run of the Lambda. No line is stamped and the order is saved unchanged, but the run reports the line items as updated. This is defect DN-D1. LI-BL-CMS-008
DN-TC-T9 Ordering An order that reaches the audit-log step, with the user note RESTlet failing. One run of the Lambda. Deployed behaviour is that the line items are still stamped Stage 2 and the order carries no user note. This is defect DN-D3. LI-BL-CMS-009
DN-TC-T10 Feed and formatting The feed search returns ten rows, one of which is missing the Product column. One run of the Lambda. Deployed behaviour is that no order at all is processed and an error email is sent. This is defect DN-D4. LI-BL-CMS-005
DN-TC-T11 Idempotency An order that already has a Stage 2 conversation raised earlier the same day, with its line still selected by the feed search. A second run of the Lambda on the same day. Deployed behaviour is that a second conversation and a second note are raised. This is defect DN-D6. LI-BL-CMS-008
DN-TC-T12 Reporting A run in which every order succeeds at every step. One run of the Lambda. One success email listing each order and each step against it. No error email. LI-BL-CMS-009

Life Truck Delivery Date Confirmation 17

Open the entry · active

Case IDLayerPreconditionsInputExpected outputRule ref
DC-TC-T1 needs confirming CDC empty, Life truck, date set Outbound runs Confirmation SMS sent, CDC := 2 LI-BL-FUL-005 LI-BL-FUL-007
DC-TC-T2 needs confirming CDC = "Manual - Exclude from automation" Outbound runs No SMS, no field written LI-BL-FUL-005
DC-TC-T3 needs confirming Three orders, same phone and date, ATL matching Outbound runs Exactly one SMS; CDC written on all three LI-BL-FUL-006
DC-TC-T4 needs confirming Two orders, same phone and date, ATL differs Outbound runs Two SMS, two conversations LI-BL-FUL-006
DC-TC-T5 needs confirming ATL on, all orders standard courier Outbound runs Informational SMS, CDC := 7, no reply expected LI-BL-FUL-008
DC-TC-T6 needs confirming ATL on, one order is two-man Outbound runs Normal confirm-or-decline SMS, CDC := 2 LI-BL-FUL-008
DC-TC-T7 needs confirming CDC = 3 Outbound runs Reschedule SMS; all five fields cleared LI-BL-FUL-009
DC-TC-T8 needs confirming Open conversation Reply "Y" CDC := 1 LI-BL-FUL-010 LI-BL-FUL-011
DC-TC-T9 needs confirming Open conversation Reply "yes but can we make it earlier" CDC := 1 — contains-matching wins LI-BL-FUL-010
DC-TC-T10 needs confirming Open conversation Reply "no" Up to 3 dates offered, CDC unchanged LI-BL-FUL-012
DC-TC-T11 needs confirming Options already offered Reply "no" again CDC := 6, no second list LI-BL-FUL-010 LI-BL-FUL-014
DC-TC-T12 needs confirming Options 1–3 offered Reply "9" CDC := 6, nothing booked LI-BL-FUL-010 LI-BL-FUL-014
DC-TC-T13 needs confirming Options 1–3 offered Reply "2" Date, ship date, truck, linehaul written; CDC := 1 LI-BL-FUL-013
DC-TC-T14 needs confirming Record has no CBM or address Reply "no" No options offered; CDC := 6 LI-BL-FUL-012
DC-TC-T15 needs confirming Closed conversation Any reply DynamoDB updated, Kustomer note raised, no NetSuite write LI-BL-FUL-015
DC-TC-T16 needs confirming Reminder already sent today Reminder runs again No second SMS LI-BL-FUL-016
DC-TC-T17 needs confirming Date changed 3 times Escalation sweep runs Kustomer conversation in Logistics & Fulfilment LI-BL-FUL-017

Lead Time flow 2 — Inventory item lead time, and the Shopify push 14

Open the entry · active

Case IDLayerPreconditionsInputExpected outputRule ref
LT2-TC-T1 needs confirming A product with Sydney stock and also a supplier lead time The flow runs Rung 1 wins — "2 - 3 days". The supplier rung is never reached LI-BL-INV-006
LT2-TC-T2 needs confirming A product with a computed wait beyond 48 weeks The flow runs "Please contact showroom for lead time", not a band LI-BL-INV-006
LT2-TC-T3 needs confirming Our arrival date and the supplier's, five days apart The flow runs Ours is used LI-BL-INV-006
LT2-TC-T4 needs confirming Our arrival date and the supplier's, three weeks apart The flow runs The earlier is used LI-BL-INV-006
LT2-TC-T5 needs confirming An arrival date sixteen days in the past The flow runs Discarded, as though it never existed LI-BL-INV-006
LT2-TC-T6 needs confirming An Ellison Studios drop-ship product The flow runs Wording says "our warehouse", not "our partners warehouse" LI-BL-INV-006
LT2-TC-T7 needs confirming An Imported item with bonded stock exceeding the Sydney backorder The flow runs The spare drives both the published quantity and the arrival date LI-BL-INV-011
LT2-TC-T8 needs confirming Sydney oversold by more than bonded can cover The flow runs Quantities publish as zero. Today the residual is discarded — LT2-D11 says it should be surfaced needs confirmingLT2-D11
LT2-TC-T9 needs confirming A product where only the arrival date changed The flow runs Today: no update is triggered (LT2-D8). Once fixed: the item updates needs confirmingLT2-D8
LT2-TC-T10 needs confirming One item with an empty supply type The flow runs Today: the whole run stops (LT2-D7). Once fixed: that item is skipped and the rest complete needs confirmingLT2-D7
LT2-TC-T11 needs confirming A product with no Shopify product id The flow runs NetSuite updates; the item is dropped before Shopify. Intended needs confirming
LT2-TC-T12 needs confirming An In-Store Only product with showroom stock The flow runs "Available for in-store purchase in our … showroom" — not a lead time LI-BL-INV-006
LT2-TC-T13 needs confirming A product where nothing changed The flow runs twice The second run writes nothing and pushes nothing LI-BL-INV-006
LT2-TC-T14 needs confirming Shopify rejects the metafield write The flow runs Nothing detects it. Recording this as a test is the point — there is no assertion to make today needs confirming

Lead Time flow 3 — Kit item lead time, rolled up from members 19

Open the entry · active

Case IDLayerPreconditionsInputExpected outputRule ref
LT3-TC-T1 needs confirming A kit whose members have different lead times The flow runs The kit takes the slowest member's promise LI-BL-INV-007
LT3-TC-T2 needs confirming A kit with members at quantities 3, 0 and 5 The flow runs Available quantity is 0 LI-BL-INV-010
LT3-TC-T3 needs confirming A member with a negative quantity The flow runs Treated as zero, but its backorder is captured first so bonded can cover it needs confirming
LT3-TC-T4 needs confirming A member with a blank quantity The flow runs Treated as zero — note this can silently make the kit look unavailable needs confirming
LT3-TC-T5 needs confirming One member whose promise is unknown The flow runs The whole kit says "please contact showroom" LI-BL-INV-007
LT3-TC-T6 needs confirming One member whose promise is unknown, in the mixed quantity case The flow runs Today the unknown is ignored and a date is used anyway — inconsistent with T5, and unresolved needs confirming
LT3-TC-T7 needs confirming A kit whose only inbound stock is bonded The flow runs A Vietnam date is calculated. Today it is never written — LT3-D7 LI-BL-INV-012LT3-D7
LT3-TC-T8 needs confirming A kit where nothing at all has changed, and whose components hold equal stock The flow runs twice Skipped on the second run. Was rewritten before 2026-08-28 needs confirmingLT3-D1
LT3-TC-T8a needs confirming A kit where nothing has changed, but whose components hold uneven stock The flow runs twice Today: rewritten and re-pushed anyway (LT3-D8). Once fixed: skipped needs confirmingLT3-D8
LT3-TC-T9 needs confirming A component updated by flow 2 five minutes ago The storefront is read Today: the kit is stale for up to twelve hours (LT3-D2) needs confirmingLT3-D2
LT3-TC-T10 needs confirming Gold Coast stock changes on a member The flow runs The lowest figure across members is written to custitem_qty_available_gc needs confirmingLT3-D5
LT3-TC-T11 needs confirming A kit's members are changed in NetSuite The flow runs The new membership is used — members are re-read every run needs confirming
LT3-TC-T12 needs confirming A kit with no Shopify id The flow runs NetSuite updates; the kit is dropped before Shopify. Intended needs confirming
LT3-TC-T13 needs confirming A kit showing "please contact showroom" Someone asks which member caused it Nothing records it — LT3-D6. Diagnosis is by hand needs confirmingLT3-D6
LT3-TC-T14 needs confirming A kit whose components all allow backorder, on a kit supply type that does not The flow runs The checkbox is turned off — gate 2 LI-BL-INV-013
LT3-TC-T15 needs confirming A kit on a permissive supply type with one component that refuses backorder The flow runs The checkbox is turned off — gate 1 LI-BL-INV-013
LT3-TC-T16 needs confirming A kit whose scarcest component holds second-warehouse stock, on In-Store Only The flow runs Allowed — physical stock overrides the supply type LI-BL-INV-013
LT3-TC-T17 needs confirming A McMullin & Co. kit whose slowest component's supplier date is 200 days out The flow runs Not allowed. The latest component date is used, not the earliest LI-BL-INV-013
LT3-TC-T18 needs confirming A kit refused backorder by gate 2 that currently shows an arrival date The flow runs The date is unchanged — the arrival-date gate keeps the looser gate-1 answer LI-BL-INV-012 LI-BL-INV-013

Lead Time flow 1 — First and second arrival into Sydney 12

Open the entry · active

Case IDLayerPreconditionsInputExpected outputRule ref
LT1-TC-F1-01 Script One Sydney purchase order, nothing allocated remaining 40, allocated 0, 4/11 First arrival 4/11 qty 40 LI-BL-INV-005
LT1-TC-F1-02 Script One Sydney purchase order, partly allocated remaining 8, allocated 5 First arrival qty 3 LI-BL-INV-005
LT1-TC-F1-03 Script Bonded purchase order only Vietnam date 30/9 First arrival 4/11 LI-BL-INV-005
LT1-TC-F1-04 Script Transfer order and bonded order, same date both 4/11 Two entries, transfer order first LI-BL-INV-014
LT1-TC-F1-05 Script Two Sydney orders, same date, different quantities 15 and 10 on 3/11 One entry, qty 25, stage from the 15 LI-BL-INV-014
LT1-TC-F1-06 Script Source 20 days overdue plus a later one — The overdue one is dropped; the later takes the slot LI-BL-INV-014
LT1-TC-F1-07 Script Every line fully allocated remaining 34, allocated 34 Both arrivals blank LI-BL-INV-005
LT1-TC-F1-08 Script Bonded line fully allocated to a transfer order — Excluded from the arrivals, included in the raw bonded date LI-BL-INV-005
LT1-TC-F1-09 Integration Nothing has moved A product matching on all six Not written; counted as ignored LI-BL-INV-014
LT1-TC-F1-10 Integration A source has disappeared Second arrival no longer exists Blank written, field cleared LI-BL-INV-014
LT1-TC-F1-11 Integration A column removed from the search — Flow stops with a fatal error; nothing written LI-BL-INV-005
LT1-TC-F1-12 Regression Overflow transfer order into Sydney — Must not count as incoming — currently fails, LT1-D3 LI-BL-INV-005LT1-D3

Lead Time flow 4 — Original Lead Time on the sales order line 6

Open the entry · draft

Case IDLayerPreconditionsInputExpected outputRule ref
OL-TC-T1 needs confirming A sales order line with no Original Lead Time The flow runs The line is stamped with a value LI-BL-ORD-001
OL-TC-T2 needs confirming A sales order line that already carries an Original Lead Time The flow runs Unknown — this is open question 2. The test exists to force the answer: re-read the line and record whether the value moved needs confirming
OL-TC-T3 needs confirming The same order line, read from search 5948 The search is run Today three rows come back for S319344 line 1. Expected: one needs confirming
OL-TC-T4 needs confirming An order for a kit item The flow runs Unknown — kits carry lead times differently. Open question 5 needs confirming
OL-TC-T5 needs confirming An order placed while flow 1 or flow 2 had failed The flow runs The stamp records whatever the item's lead time said at that moment — including if it was wrong needs confirming
OL-TC-T6 needs confirming The value calculated for a line The line is compared to what the customer saw at checkout They match. This is the test that actually matters, and it cannot be written until the calculation is documented LI-BL-ORD-001

Shipping Automation — Module 5: Courier Approval & Set Ship Date 36

Open the entry · active

Case IDLayerPreconditionsInputExpected outputRule ref
SA-TC-E1 Entry & eligibility (saved-search gating) SO balance owing > 0 — Not selected by the saved search — never processed needs confirming
SA-TC-E2 Entry & eligibility (saved-search gating) "Hold Order" = true — Excluded — not processed needs confirming
SA-TC-E3 Entry & eligibility (saved-search gating) "Courier Approval" already true, or order/items closed — Excluded — not reprocessed needs confirming
SA-TC-E4 Entry & eligibility (saved-search gating) All items have a Drop Ship PO — Excluded (drop-ship items dropped; empty order skipped) needs confirming
SA-TC-E5 Entry & eligibility (saved-search gating) Ship Date on/before today with a reason for service change present — Excluded — not re-dated needs confirming
SA-TC-F1 Flow routing (ship complete & grouping) Ship Complete = No, not linked to another SO — Flow 1 (nswo, 7132) → proceeds to courier selection needs confirming
SA-TC-F2 Flow routing (ship complete & grouping) Ship Complete = No, ships together with another SO — Flagged Ship Complete = Yes → picked up by Flow 2 next run needs confirming
SA-TC-F3 Flow routing (ship complete & grouping) Ship Complete = Yes, every item across the group committed — Flow 2 (swo, 7136) → proceeds; group updated together needs confirming
SA-TC-F4 Flow routing (ship complete & grouping) Ship Complete = Yes, one item 0/1 committed (e.g. S301287 + S306157) — Waiting — whole group skipped this run, no NetSuite update; retries next run needs confirming
SA-TC-F5 Flow routing (ship complete & grouping) Merged group where a related SO isn't in the search results — Related SO fetched (SuiteQL); group assembled; maxCxRequestedDate & total CBM across all items needs confirming
SA-TC-C1 Courier selection by service level Full Service, Life postcode valid (e.g. S308550)Reason code 15 — Courier = Life Full; approved needs confirming
SA-TC-C2 Courier selection by service level Full Service, Life invalid, DT validReason code 15 — Courier = DT Full; approved needs confirming
SA-TC-C3 Courier selection by service level 2 Man, Life items, Life postcode valid (e.g. S315316)Reason code 15 — Courier = Life 2 Man; approved needs confirming
SA-TC-C4 Courier selection by service level 2 Man, Life invalidReason code 15 — Falls through in order: DT 2 Man → Pedemont → TT needs confirming
SA-TC-C5 Courier selection by service level Standard, ≥1 Life item, Life postcode validReason code 15 — Ship Via → Life Standard; approved needs confirming
SA-TC-C6 Courier selection by service level Standard, Life invalid, DT ATL validReason code 15 — Ship Via → DT ATL; approved needs confirming
SA-TC-C7 Courier selection by service level Standard, all items AusPostReason code 15 — Ship Via → AusPost; approved needs confirming
SA-TC-C8 Courier selection by service level Standard, all / ≥1 Standard (non-AusPost, non-Life)Reason code 15 — Ship Via → Allied; approved needs confirming
SA-TC-C9 Courier selection by service level Paid Standard, but ≥1 item needs 2 ManReason code 21 — Upgraded to Two Man hierarchy; approved as premium-item upgrade needs confirming
SA-TC-P1 Postcode validation & front-end fallback No courier covers the postcode; front-end pick is a real courierReason code 14 — Approve the front-end rate-card courier needs confirming
SA-TC-P2 Postcode validation & front-end fallback No courier covers the postcode; front-end pick = TBCReason code 5 — Disapprove — postcode not covered needs confirming
SA-TC-P3 Postcode validation & front-end fallback TT courier (no postcode CSV) — Its postcode check always fails → next step needs confirming
SA-TC-S1 Scheduling, CBM & buffer Life truck, CBM fits, no CX date (e.g. S308550, Syd R4) — First available Syd R4 truck day on/after the 3-day buffer (Fri 7 Aug 2026 in sample data) needs confirming
SA-TC-S2 Scheduling, CBM & buffer Life truck, order CBM exceeds remaining capacity that day — Skips that day → next available date that fits needs confirming
SA-TC-S3 Scheduling, CBM & buffer No available date fits — Order ignored + error email raised needs confirming
SA-TC-S4 Scheduling, CBM & buffer CX requested date later than the buffer (e.g. S315316, CX 30/10) — First truck day on/after the CX requested date needs confirming
SA-TC-S5 Scheduling, CBM & buffer Life truck with a weekend day marked available — Buffer counts that weekend day; otherwise weekends excluded needs confirming
SA-TC-S6 Scheduling, CBM & buffer Two trucks/dates both qualify — Lower-CBM truck chosen first needs confirming
SA-TC-L1 Linehaul (Life couriers) Life courier, ship state NSW or ACT — Ship Date = Scheduled Delivery Date (local, same day) needs confirming
SA-TC-L2 Linehaul (Life couriers) Life courier, QLD (e.g. S310492 + S310562, Bris R3) — Deliver Tue 18 Aug; Ship Date = Tue 11 Aug; Route SYD → BRIS; applied to both linked SOs needs confirming
SA-TC-L3 Linehaul (Life couriers) Life courier, VIC — Ship Date = Thursday before delivery; Route SYD → MEL needs confirming
SA-TC-L4 Linehaul (Life couriers) Life courier, state not NSW/VIC/QLD (WA/SA/TAS) — Rejected — no partial update needs confirming
SA-TC-X1 Edge cases & resilience 2 Man order where every committed item is Standard_Auspost — Sent to manual review (not auto-processed) needs confirming
SA-TC-X2 Edge cases & resilience Any approval/disapproval — Correct RFSC reason code written (15 / 21 / 14 / 5) — confirm against config needs confirming
SA-TC-X3 Edge cases & resilience Run approaches the ~14-min Lambda limit — Self-reinvokes async (retryAttempt+1, max 3); remaining orders processed next invocation; no duplicate updates needs confirming
SA-TC-X4 Edge cases & resilience Courier Schedule service unavailable — Falls back to cached schedule; if none, terminates gracefully with an error email (no bad dates written) needs confirming

Supply Chain — Item Stage: the message on every open order line 18

Open the entry · draft

Case IDLayerPreconditionsInputExpected outputRule ref
IS-TC-T1 needs confirming Line closed, 5 committed, reserved 5 The run executes Message is Cancelled; no lookup performed LI-BL-CMS-001
IS-TC-T2 needs confirming Ordered 3, fulfilled 3 The run executes Message is Item shipped LI-BL-CMS-001
IS-TC-T3 needs confirming Ordered 3, committed 3, fulfilled 0 The run executes Message is Ready to be shipped; no lookup performed LI-BL-CMS-001
IS-TC-T4 needs confirming Ordered 4, fulfilled 1, reserved 0, brand Weave The run executes Message is Remaining items incoming from our Weave partner LI-BL-CMS-001
IS-TC-T5 needs confirming Ordered 2, reserved 0, drop ship, brand Kave Home The run executes Message is Item is on order with Kave Home/ our partner LI-BL-CMS-001
IS-TC-T6 needs confirming Ordered 2, reserved 0, not drop ship, imported The run executes Message is Item is on order with Life Interiors LI-BL-CMS-001
IS-TC-T7 needs confirming Reserved 36, committed 0, ship date 4/11/2026; candidate PO landing 4/11/2026, on order 37, allocated 36, stage 22 The run executes PO accepted; message is On its way to our warehouse; Allocated PO# written LI-BL-CMS-002 LI-BL-CMS-003
IS-TC-T8 needs confirming Same as T7 but the candidate's landing date is 5/11/2026 The run executes PO rejected; message is Please contact us for more details LI-BL-CMS-002
IS-TC-T9 needs confirming Same as T7 but the candidate's allocated demand is 20 The run executes PO rejected on quantity; message is Please contact us for more details LI-BL-CMS-002
IS-TC-T10 needs confirming Two candidates, both acceptable, landing dates identical The run executes The first returned is written; the second never evaluated LI-BL-CMS-002
IS-TC-T11 needs confirming Reserved 5, PO stage 3, delay comms Stage 1: Delay Email Sent The run executes Message is Delayed - Item is in transit to warehouse LI-BL-CMS-003
IS-TC-T12 needs confirming Reserved 5, PO stage 3, delay comms blank The run executes Message is On its way to our warehouse — not Delayed…, regardless of how overdue the line is LI-BL-CMS-003
IS-TC-T13 needs confirming Ordered 10, fulfilled 4, reserved 6, PO stage 2 The run executes Message is Partially Shipped - Remaining item is in production LI-BL-CMS-003
IS-TC-T14 needs confirming Reserved 5, PO stage 1 (Working on Buy, inactive) The run executes Message unchanged from whatever the line already said; nothing blanked LI-BL-CMS-003
IS-TC-T15 needs confirming Message unchanged, drop-ship date - None - → blank, PO unchanged The run executes Nothing written to NetSuite for that line LI-BL-CMS-004
IS-TC-T16 needs confirming Line drop-ship date 8/12/2025, new value 08/12/2025, message unchanged The run executes Nothing written — the two normalise to the same day LI-BL-CMS-004
IS-TC-T17 needs confirming Message unchanged, new drop-ship date blank, existing date 4/11/2026 The run executes The existing date is left in place, not cleared LI-BL-CMS-004
IS-TC-T18 needs confirming Reserved 5, brand blank, nothing reserved path The run executes Today: Item is on order with - None -/ our partner. Intended: the brand, or wording that omits it LI-BL-CMS-001IS-D1