Skip to content

ATS-COM-ORD-001Build a buyer’s cart: Capability Test Specification

Markdown

ATS-COM-ORD-001

Build a buyer’s cart: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaCommerceModuleCustomer purchases, purchased benefits and vendor stockRevision2

Read atservices-commerce c8b66a98macroservice-libraries 54536a44react-console baf6dae3

Coverage

  • Rule covered
  • Transition gap: FND-COM-ORD-058
  • Validation covered
  • Permission gap: FND-COM-ORD-058
  • Edge covered
  • Failure gap: FND-COM-ORD-058
  • Boundary covered
  • Concurrency gap: FND-COM-ORD-058
  • Invariant gap: FND-COM-ORD-058
  • Interaction covered

Test Scenarios

20 scenarios proving CAP-COM-ORD-001; 13 bound to an existing test.

01 Portal purchase cannot name another contactpermissionapinegativetest
Proves
BR-CAP-COM-ORD-001-01
Preconditions
The signed-in member and a different contact share a workspace.
Steps
[ { "do": "Attempt creation with the different contact as buyer.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a member opening a checkout for another contact, 403" } ]
Expected
The response is 403 and creation does not proceed.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a member opening a checkout for another contact, 403
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a member opening a checkout for another contact, 403
02 Invalid items leave the cart unchangedvalidationapinegativetest
Proves
BR-CAP-COM-ORD-001-02
Preconditions
The fixtures include retired and unsellable products, a two-unit limit, a required payload and USD-only support.
Steps
[ { "do": "Submit the invalid product, excessive quantity, malformed details and unsupported currency cases.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a product the tenant does not have: product_not_sellable" } ]
Expected
Each request returns 400 with the relevant item or currency problem and no accepted item write.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a product the tenant does not have: product_not_sellable
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a retired product and an unsellable product type: product_not_sellable
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a quantity past the product’s purchase limit: quantity_out_of_limits
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a payload that does not parse as the participant’s schema: payload_does_not_parse
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a currency the business unit does not support: currency_not_supported
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a product the tenant does not have: product_not_sellable
03 Party references require record identitiesboundaryapinegativetest
Proves
BR-CAP-COM-ORD-001-03
Preconditions
Contact records have both internal identities and alternative text labels.
Steps
[ { "do": "Use alternative labels for the buyer, acting contact, bill-to and recipient.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkout-record-ids.e2e.spec.js#refuses a buyer that is a slug when the checkout is opened, 400 naming buyer_id, and writes nothing" } ]
Expected
Validation returns 400 identifying the offending field before saving.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkout-record-ids.e2e.spec.js#refuses a buyer that is a slug when the checkout is opened, 400 naming buyer_id, and writes nothing
services-commerce:modules/checkout/tests/e2e/checkout-record-ids.e2e.spec.js#refuses an acting contact, a bill-to and a recipient that are slugs, each naming its field
Source
services-commerce:modules/checkout/tests/e2e/checkout-record-ids.e2e.spec.js#refuses a buyer that is a slug when the checkout is opened, 400 naming buyer_id, and writes nothing
04 Organization authority can be overridden by permitted staffpermissionapitest
Proves
BR-CAP-COM-ORD-001-04
Preconditions
A contact lacks the organization’s required role; two staff contexts differ in placement authority.
Steps
[ { "do": "Attempt the organization purchase as the member and each staff context.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#accepts a member who holds the store’s purchasing role at the organization" } ]
Expected
The authorized staff case records an override; the other cases return buyer_may_not_act.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#accepts a member who holds the store’s purchasing role at the organization
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a member affiliated without the role: buyer_may_not_act, NOT_AUTHORIZED_FOR_ORGANIZATION
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#lets a console user with commerce.orders.create buy for the organization naming any acting contact, and audits the override
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a console clerk without commerce.orders.create the same purchase, 400 buyer_may_not_act
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#accepts a member who holds the store’s purchasing role at the organization
05 Public assortment checks permit staff exceptionspermissionapitest
Proves
BR-CAP-COM-ORD-001-05
Preconditions
One fixture product is unpublished and another falls outside the selected assortment.
Steps
[ { "do": "Try both products as a portal buyer and as authorized console staff.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkout-public-sale.e2e.spec.js#refuses a portal member opening a checkout with a draft product: 400 product_not_published, naming the store, nothing written" } ]
Expected
Portal requests return publication or assortment problems; staff can retain both items.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkout-public-sale.e2e.spec.js#refuses a portal member opening a checkout with a draft product: 400 product_not_published, naming the store, nothing written
services-commerce:modules/checkout/tests/e2e/checkout-public-sale.e2e.spec.js#refuses a portal member a published product the store does not admit: 400 product_not_in_store_assortment
services-commerce:modules/checkout/tests/e2e/checkout-public-sale.e2e.spec.js#lets a console user holding commerce.orders.create open a checkout with the draft product and add the one outside the assortment
Source
services-commerce:modules/checkout/tests/e2e/checkout-public-sale.e2e.spec.js#refuses a portal member opening a checkout with a draft product: 400 product_not_published, naming the store, nothing written
06 Cart changes retain version and actor evidenceinvariantapitest
Proves
BR-CAP-COM-ORD-001-06
Preconditions
An open cart and a stand-in support identity are available.
Steps
[ { "do": "Add, replace and remove items, then inspect version and event data.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#adds after the last, changes the intent and clears what was advised, removes, each bumping the version" } ]
Expected
Versions advance and the event helper records the supplied support actor.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#adds after the last, changes the intent and clears what was advised, removes, each bumping the version
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#adds after the last, changes the intent and clears what was advised, removes, each bumping the version
07 Expiry processing respects limits and workspace ownershiptransitionapitest
Proves
BR-CAP-COM-ORD-001-07
Preconditions
Expired carts span two workspaces alongside live and placed records.
Steps
[ { "do": "Run expiry selection and abandonment with a bounded limit, then run again.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/integration/services/checkout/checkout-sweeper.integration.spec.js#abandoned each expired open checkout in its own tenant, with the system as the actor and expired as the reason" } ]
Expected
Expired records are processed in expiry order within their workspace; other states remain untouched.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/integration/services/checkout/checkout-sweeper.integration.spec.js#abandoned each expired open checkout in its own tenant, with the system as the actor and expired as the reason
services-commerce:modules/checkout/tests/integration/services/checkout/checkout-sweeper.integration.spec.js#takes at most the limit, oldest expiry first, and leaves the rest to the next run; a cancelled checkout is not found
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#expires seven days out, and the first item carries the participant’s current schema version, unvalidated
Source
services-commerce:modules/checkout/tests/integration/services/checkout/checkout-sweeper.integration.spec.js#abandoned each expired open checkout in its own tenant, with the system as the actor and expired as the reason
08 Abandonment releases the held itemtransitionapinegativetest
Proves
BR-CAP-COM-ORD-001-08
Preconditions
A cart has an application-held scarce resource.
Steps
[ { "do": "Abandon it and attempt a later item addition.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#moves an open checkout to abandoned, after which it no longer changes (409 checkout_not_open)" } ]
Expected
The hold is released with history and the later addition returns checkout_not_open.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#moves an open checkout to abandoned, after which it no longer changes (409 checkout_not_open)
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#releases every hold when the checkout is abandoned
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#moves an open checkout to abandoned, after which it no longer changes (409 checkout_not_open)
09 Scarce holds reject competing or excessive requestsedgeapinegativetest
Proves
BR-CAP-COM-ORD-001-09
Preconditions
The last booth is reserved for one buyer.
Steps
[ { "do": "Request it as a second buyer, extend beyond the allowed ceiling and remove the held item.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#acquires the hold: 200 with the reservation held, the item prepared with it, the participant’s row held, hold_acquired on the trail" } ]
Expected
The competing and excessive requests return hold_unavailable and hold_not_extendable; removal releases the resource.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#acquires the hold: 200 with the reservation held, the item prepared with it, the participant’s row held, hold_acquired on the trail
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#refuses another buyer the booth: 409 hold_unavailable with the participant’s reason, and their preview marks the item unavailable
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#refuses an extension past the policy’s ceiling, 409 hold_not_extendable with the participant’s problem
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#releases an item’s hold through the participant when the item is removed, with holds_released on the trail
Source
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#acquires the hold: 200 with the reservation held, the item prepared with it, the participant’s row held, hold_acquired on the trail
10 Cart transitions reject skipped and terminal movestransitionapinegativetest
Proves
BR-CAP-COM-ORD-001-14
Preconditions
An open cart exists and a separate cart has completed placement.
Steps
[ { "do": "Attempt direct placement without preparation, place without an order link and transition the placed cart; also exercise permitted preparation and cancellation transitions.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/integration/services/persistence/checkouts.integration.spec.js#refuses open to placed (preparing comes first), and lets open go abandoned or cancelled" } ]
Expected
Invalid moves are refused and allowed moves preserve their required order linkage.
Data
Use the isolated checkout records prepared by the persistence suite.
Bound to
services-commerce:modules/checkout/tests/integration/services/persistence/checkouts.integration.spec.js#refuses open to placed (preparing comes first), and lets open go abandoned or cancelled
Source
services-commerce:modules/checkout/tests/integration/services/persistence/checkouts.integration.spec.js#refuses open to placed (preparing comes first), and lets open go abandoned or cancelled
11 An elapsed booth hold becomes staletransitionapitest
Proves
BR-CAP-COM-ORD-001-10
Preconditions
A booth has an elapsed unplaced hold.
Steps
[ { "do": "Run the reservation pass, inspect the cart and let the next buyer reserve it.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#expires the ledger’s row, marks the item stale with hold_expired on the trail, and counts it" } ]
Expected
The first selection is stale and the next buyer can hold the booth.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Bound to
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#expires the ledger’s row, marks the item stale with hold_expired on the trail, and counts it
Source
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#expires the ledger’s row, marks the item stale with hold_expired on the trail, and counts it
12 A bundle cannot refer to a missing parentvalidationapinegativetest
Proves
BR-CAP-COM-ORD-001-11
Preconditions
The cart contains a main item.
Steps
[ { "do": "Add a child with an absent parent, then one naming the main item.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkout-record-ids.e2e.spec.js#refuses an item whose parent_item_id names no item of the checkout, 400 envelope_invalid, and takes one that does (COM-ACC-0025)" } ]
Expected
The first request returns 400; the second retains the parent connection.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Bound to
services-commerce:modules/checkout/tests/e2e/checkout-record-ids.e2e.spec.js#refuses an item whose parent_item_id names no item of the checkout, 400 envelope_invalid, and takes one that does (COM-ACC-0025)
Source
services-commerce:modules/checkout/tests/e2e/checkout-record-ids.e2e.spec.js#refuses an item whose parent_item_id names no item of the checkout, 400 envelope_invalid, and takes one that does (COM-ACC-0025)
13 Long process references stay on the cart without crossing the application contractboundaryapinegativeproposed
Proves
BR-CAP-COM-ORD-001-12
Preconditions
Create carts with references of 128, 129, 500 and 501 characters.
Steps
[ { "do": "Preview valid carts and capture the application envelopes.", "provenance": "proposed", "source": "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a process_ref of 501 characters on create, 400" } ]
Expected
The 128-character reference crosses the envelope; longer accepted references stay on the cart, and the 501-character request writes nothing.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a process_ref of 501 characters on create, 400
14 Clearing a shipping choice writes an explicit empty selectionruleunittest
Proves
BR-CAP-COM-ORD-001-13
Preconditions
An open cart carries a selected shipping strategy.
Steps
[ { "do": "Clear the choice and inspect the persistence update.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/unit/checkout/shipping-choice.spec.js#writes null for a cleared choice, the property present so the update clears the column" } ]
Expected
The update contains an explicit empty strategy value.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Bound to
services-commerce:modules/checkout/tests/unit/checkout/shipping-choice.spec.js#writes null for a cleared choice, the property present so the update clears the column
Source
services-commerce:modules/checkout/tests/unit/checkout/shipping-choice.spec.js#writes null for a cleared choice, the property present so the update clears the column
15 A conflicting item leaves the selected cart policy intactinteractionapinegativeproposed
Proves
BR-CAP-COM-ORD-001-02 BR-CAP-COM-ORD-002-02
Preconditions
A cart already resolves one policy.
Steps
[ { "do": "Add a main item that resolves a different policy, then read the cart.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a quantity past the product’s purchase limit: quantity_out_of_limits", "services-commerce:modules/checkout/tests/e2e/ordering-profile-resolution.e2e.spec.js#refuses a later main item whose context resolves another profile, 409 ordering_profile_conflict naming both, nothing added" ] } ]
Expected
The addition is refused and the original items and policy remain.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a quantity past the product’s purchase limit: quantity_out_of_limits,services-commerce:modules/checkout/tests/e2e/ordering-profile-resolution.e2e.spec.js#refuses a later main item whose context resolves another profile, 409 ordering_profile_conflict naming both, nothing added
16 An edited item receives a fresh previewinteractionapiproposed
Proves
BR-CAP-COM-ORD-001-06 BR-CAP-COM-ORD-003-01
Preconditions
An open cart has an advised item and saved preview.
Steps
[ { "do": "Change its quantity and request another preview.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#adds after the last, changes the intent and clears what was advised, removes, each bumping the version", "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#stores the price snapshot on the checkout, with the totals, and leaves a previewed event" ] } ]
Expected
The old advice is cleared and the saved result prices the new quantity.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#adds after the last, changes the intent and clears what was advised, removes, each bumping the version,services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#stores the price snapshot on the checkout, with the totals, and leaves a previewed event
17 Abandoned shopping cannot create a purchaseinteractionapiproposed
Proves
BR-CAP-COM-ORD-001-08 BR-CAP-COM-ORD-005-05
Preconditions
A cart with a reserved item is abandoned.
Steps
[ { "do": "Attempt placement and inspect the reservation and order list.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#moves an open checkout to abandoned, after which it no longer changes (409 checkout_not_open)", "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 409 placement_refused with the participant’s problem naming the item" ] } ]
Expected
Placement is refused, the hold is released and no order exists for the cart.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#moves an open checkout to abandoned, after which it no longer changes (409 checkout_not_open),services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 409 placement_refused with the participant’s problem naming the item
18 A reader cannot change another authorized cartinteractionapiproposed
Proves
BR-CAP-COM-ORD-001-01 BR-CAP-COM-ORD-011-02
Preconditions
A workspace reader can read a staff-created cart.
Steps
[ { "do": "Read the cart, attempt an item addition and read its version again.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a member opening a checkout for another contact, 403", "services-commerce:modules/checkout/tests/e2e/checkout-security.e2e.spec.js#a reader is refused every write, 403 permission_missing, leaving the checkout as it was" ] } ]
Expected
The read succeeds, the write is refused and the version stays unchanged.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js#refuses a member opening a checkout for another contact, 403,services-commerce:modules/checkout/tests/e2e/checkout-security.e2e.spec.js#a reader is refused every write, 403 permission_missing, leaving the checkout as it was
19 A deposit cart reaches a priced review within its buyer scopeinteractionapiproposed
Proves
BR-CAP-COM-ORD-001-01 BR-CAP-COM-ORD-002-01 BR-CAP-COM-ORD-003-01 BR-CAP-COM-ORD-004-01 BR-CAP-COM-ORD-009-01 BR-CAP-COM-ORD-011-01
Preconditions
A member owns an open cart with an active deposit policy and a qualifying code.
Steps
[ { "do": "Add its main item, select the offered plan, apply the code and preview as the owner; repeat the preview as another member.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/ordering-profile-resolution.e2e.spec.js", "services-commerce:modules/checkout/services/checkout/purchasing-roles.ts", "services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#refuses another buyer the booth: 409 hold_unavailable with the participant’s reason, and their preview marks the item unavailable", "services-commerce:modules/checkout/tests/e2e/checkout-preprocessing.e2e.spec.js", "services-commerce:modules/checkout/tests/e2e/participant-unavailable.e2e.spec.js", "services-commerce:modules/checkout/tests/e2e/product-purchase-eligibility.e2e.spec.js", "services-commerce:modules/checkout/tests/e2e/accounting-tax.e2e.spec.js", "services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js", "services-commerce:modules/checkout/aws/lambda/SWEEPER.ts:handler" ] } ]
Expected
The owner sees the discounted deposit quotation and the other member is refused.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/ordering-profile-resolution.e2e.spec.js,services-commerce:modules/checkout/services/checkout/purchasing-roles.ts,services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#refuses another buyer the booth: 409 hold_unavailable with the participant’s reason, and their preview marks the item unavailable,services-commerce:modules/checkout/tests/e2e/checkout-preprocessing.e2e.spec.js,services-commerce:modules/checkout/tests/e2e/participant-unavailable.e2e.spec.js,services-commerce:modules/checkout/tests/e2e/product-purchase-eligibility.e2e.spec.js,services-commerce:modules/checkout/tests/e2e/accounting-tax.e2e.spec.js,services-commerce:modules/checkout/tests/e2e/checkouts.e2e.spec.js,services-commerce:modules/checkout/aws/lambda/SWEEPER.ts:handler
20 An interrupted minute pass leaves later work visibleinteractionapiproposed
Proves
BR-CAP-COM-ORD-001-01 BR-CAP-COM-ORD-005-01 BR-CAP-COM-ORD-006-01 BR-CAP-COM-ORD-007-01 BR-CAP-COM-ORD-008-01 BR-CAP-COM-ORD-009-01 BR-CAP-COM-ORD-010-01 BR-CAP-COM-ORD-011-01 BR-CAP-COM-ORD-013-01
Preconditions
An expired cart, elapsed hold, unbilled sale and expired grant are candidates in an isolated workspace.
Steps
[ { "do": "Fail the cart-release application during the shared pass, inspect later candidates, restore it and run again.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/aws/lambda/SWEEPER.ts:handler", "services-commerce:modules/orders/services/reservations/reservation-sweeper.ts:sweepReservations", "services-commerce:modules/orders/services/orders/tender-window-sweeper.ts:sweepTenderWindows", "services-commerce:modules/checkout/aws/lambda/SWEEPER.ts:handler", "services-commerce:modules/orders/services/orders/financial-sweeps.ts:sweepFinancials", "services-commerce:modules/entitlements/services/register/entitlement-sweeper.ts:sweepEntitlements", "services-commerce:modules/checkout/aws/lambda/SWEEPER.ts:handler" ] } ]
Expected
Later work remains pending after the interruption and eligible candidates are processed by the recovered pass.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/aws/lambda/SWEEPER.ts:handler,services-commerce:modules/orders/services/reservations/reservation-sweeper.ts:sweepReservations,services-commerce:modules/orders/services/orders/tender-window-sweeper.ts:sweepTenderWindows,services-commerce:modules/checkout/aws/lambda/SWEEPER.ts:handler,services-commerce:modules/orders/services/orders/financial-sweeps.ts:sweepFinancials,services-commerce:modules/entitlements/services/register/entitlement-sweeper.ts:sweepEntitlements,services-commerce:modules/checkout/aws/lambda/SWEEPER.ts:handler

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.