Skip to content

ATS-COM-ORD-005Create one order at the reviewed price: Capability Test Specification

Markdown

ATS-COM-ORD-005

Create one order at the reviewed price: 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 gap: FND-COM-ORD-062
  • Transition gap: FND-COM-ORD-062
  • Validation covered
  • Permission gap: FND-COM-ORD-062
  • Edge covered
  • Failure covered
  • Boundary covered
  • Concurrency covered
  • Invariant gap: FND-COM-ORD-062
  • Interaction covered

Test Scenarios

19 scenarios proving CAP-COM-ORD-005; 14 bound to an existing test.

01 Placement retry identifies the original saleinvariantapitest
Proves
BR-CAP-COM-ORD-005-01
Preconditions
An editable cart is ready for placement.
Steps
[ { "do": "Submit without a key, submit with a key, retry it and then use a different key.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers the same order to a retry under the same key, replayed from the idempotency ledger, writing nothing (08 row 9; D11)" } ]
Expected
The missing-key request fails, one sale is created, its response replays and the changed-key request is refused.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers the same order to a retry under the same key, replayed from the idempotency ledger, writing nothing (08 row 9; D11)
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#refuses a placement of the placed checkout under another key, 409 idempotency_key_mismatch
services-commerce:modules/checkout/tests/e2e/idempotency.e2e.spec.js#refuses a required route without an Idempotency-Key, 400 idempotency_key_required, before the handler runs
services-commerce:modules/checkout/tests/e2e/idempotency.e2e.spec.js#answers the stored status and body, marked Idempotent-Replayed, and runs the placement once: one order row
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers the same order to a retry under the same key, replayed from the idempotency ledger, writing nothing (08 row 9; D11)
02 Concurrent requests produce one saleconcurrencyapitest
Proves
BR-CAP-COM-ORD-005-02
Preconditions
Two requests target the same open cart and placement key.
Steps
[ { "do": "Submit them concurrently and retry any in-progress result.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#one places the order; the other is told the request is in progress (409) or answered the one order; exactly one order row exists" } ]
Expected
The order count remains one and successful responses identify that order.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#one places the order; the other is told the request is in progress (409) or answered the one order; exactly one order row exists
services-commerce:modules/checkout/tests/e2e/idempotency.e2e.spec.js#is told the request is in progress, 409 request_in_progress with Retry-After: 2, and places nothing
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#one places the order; the other is told the request is in progress (409) or answered the one order; exactly one order row exists
03 A reviewed price change requires another previewboundaryapinegativetest
Proves
BR-CAP-COM-ORD-005-03
Preconditions
A previewed product price is changed upward or downward.
Steps
[ { "do": "Attempt placement, request a fresh preview and place again.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#refuses PRICE_CHANGED with both prices when the price rose since a preview of a moment ago, the checkout left open" } ]
Expected
The first attempt reports both prices and leaves the cart open; the confirmed retry uses the new price.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#refuses PRICE_CHANGED with both prices when the price rose since a preview of a moment ago, the checkout left open
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#refuses a price that fell the same way: the amount shown never changes silently
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#binds the new price once the customer previews again, with no price_tolerance adjustment
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#binds a never-previewed checkout at the price of the moment, even one that moved since the checkout opened
services-commerce:modules/orders/tests/unit/placement/price-binding.spec.js#never honours a line whose qualified audiences changed since the preview, at the same amount too (member pricing 05 §4)
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#refuses PRICE_CHANGED with both prices when the price rose since a preview of a moment ago, the checkout left open
04 Audience lapse does not silently change the saleedgeapinegativetest
Proves
BR-CAP-COM-ORD-005-04
Preconditions
A member preview has qualified pricing before the qualification lapses.
Steps
[ { "do": "Attempt placement and inspect the cart and earlier orders.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/member-pricing-placement.e2e.spec.js#refuses the placement 409 placement_refused with audience_lapsed and the decision’s sentence, never repricing silently" } ]
Expected
The request reports audience_lapsed and retains an open cart while earlier purchases remain unchanged.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/member-pricing-placement.e2e.spec.js#refuses the placement 409 placement_refused with audience_lapsed and the decision’s sentence, never repricing silently
services-commerce:modules/checkout/tests/e2e/member-pricing-placement.e2e.spec.js#leaves the checkout open with the refusal on its trail, and placed no order
services-commerce:modules/checkout/tests/e2e/member-pricing-placement.e2e.spec.js#14. leaves the order placed before the lapse as it was: no retroactive repricing
Source
services-commerce:modules/checkout/tests/e2e/member-pricing-placement.e2e.spec.js#refuses the placement 409 placement_refused with audience_lapsed and the decision’s sentence, never repricing silently
05 Failed preparation leaves no purchase recordfailureapinegativetest
Proves
BR-CAP-COM-ORD-005-05
Preconditions
Application fixtures refuse preparation or report unavailable items.
Steps
[ { "do": "Submit the carts for placement.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 409 placement_refused with the participant’s problem naming the item" } ]
Expected
The response identifies the rejected item, creates no order and preserves unfrozen cart items with refusal history.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 409 placement_refused with the participant’s problem naming the item
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#placed nothing: no order, the checkout still open with its items unfrozen, the refusal on its trail
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#refuses an item the stub answers unavailable the same way (sold out)
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 409 placement_refused with the participant’s problem naming the item
06 Competing resource claims commit or roll back togetherconcurrencyapinegativetest
Proves
BR-CAP-COM-ORD-005-06
Preconditions
Two buyers compete for the final unit and another cart includes one unavailable claim.
Steps
[ { "do": "Place the competing carts and the multi-claim cart.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#lets exactly one placement win and refuses the other 409 claim_conflict naming the item and the resource" } ]
Expected
One final-unit purchase wins; failed placement rolls back the other claims and preserves held retry resources.
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#lets exactly one placement win and refuses the other 409 claim_conflict naming the item and the resource
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#placed nothing for the loser: the checkout open, the refusal on its trail; one claim on the resource
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#rolled the first seat claim back with the transaction, and left the booth held for the buyer to retry with
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#places the checkout: the hold re-affirmed and converted in TX-P, the ledger committed on the line, the claim frozen on the purchase
Source
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#lets exactly one placement win and refuses the other 409 claim_conflict naming the item and the resource
07 Purchasing eligibility is rechecked at commitmentpermissionapinegativetest
Proves
BR-CAP-COM-ORD-005-07
Preconditions
The product requires eligibility with ineligible and indeterminate fixture verdicts.
Steps
[ { "do": "Attempt placement under each verdict.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/product-purchase-eligibility.e2e.spec.js#refuses the placement 409 product_not_eligible naming the product (id and name) and the reason" } ]
Expected
The refusal identifies the product and reason and creates no order.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/product-purchase-eligibility.e2e.spec.js#refuses the placement 409 product_not_eligible naming the product (id and name) and the reason
services-commerce:modules/checkout/tests/e2e/product-purchase-eligibility.e2e.spec.js#refuses the placement 409 product_not_eligible, indeterminate, closed
Source
services-commerce:modules/checkout/tests/e2e/product-purchase-eligibility.e2e.spec.js#refuses the placement 409 product_not_eligible naming the product (id and name) and the reason
08 Promotion commitment rejects a changed verdictfailureapinegativetest
Proves
BR-CAP-COM-ORD-005-08
Preconditions
An applied offer qualified at preview but not at placement.
Steps
[ { "do": "Submit placement after the eligibility change.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/promotion-eligibility.e2e.spec.js#refuses the placement 409 promotion_refused, purchaser_not_eligible" } ]
Expected
The response reports promotion_refused with no order or redemption retained.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/promotion-eligibility.e2e.spec.js#refuses the placement 409 promotion_refused, purchaser_not_eligible
services-commerce:modules/checkout/tests/e2e/promotion-eligibility.e2e.spec.js#rolls everything back: no order, no use, the checkout open
Source
services-commerce:modules/checkout/tests/e2e/promotion-eligibility.e2e.spec.js#refuses the placement 409 promotion_refused, purchaser_not_eligible
09 Placement stamps the sale consistentlytransitionapitest
Proves
BR-CAP-COM-ORD-005-09
Preconditions
A simple cart is created with a configured number seed.
Steps
[ { "do": "Place it and inspect the header, lines and address snapshot.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 200 with the order: numbered 10000, placed, pending billing, pay now with a thirty-minute tender window, created" } ]
Expected
The fixture number is assigned, billing starts pending, line pricing uses the placement instant and an absent address stays absent.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 200 with the order: numbered 10000, placed, pending billing, pay now with a thirty-minute tender window, created
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#stamps every item line’s price_as_of with the order’s placed_at, one instant (COMM-M2 R2-2)
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#freezes no billing address when CRM holds none for the bill-to party (COMM-M2 R2-2)
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 200 with the order: numbered 10000, placed, pending billing, pay now with a thirty-minute tender window, created
10 Frozen purchases retain the bundle connectioninvariantapitest
Proves
BR-CAP-COM-ORD-005-10
Preconditions
A shirt is the parent of a bundled pin.
Steps
[ { "do": "Place and read the resulting order and cart.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#writes one line per item with its frozen purchase: the canonical payload, the stub’s attestation, the plan, no claim" } ]
Expected
Both lines retain their attested purchase details, the child points to its parent line and the placed cart names the order.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#writes one line per item with its frozen purchase: the canonical payload, the stub’s attestation, the plan, no claim
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#places the pin under the shirt with its parent_line_id naming the shirt’s line
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#reads the order whole: lines, purchases, tenders (none), invoices (none), the two pending obligations, the placed event
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#leaves the checkout placed, naming the order, its items frozen with what prepare attested, and its trail telling the story
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#writes one line per item with its frozen purchase: the canonical payload, the stub’s attestation, the plan, no claim
11 Shipping configuration gaps stop placementvalidationapinegativetest
Proves
BR-CAP-COM-ORD-005-11
Preconditions
Express shipping is selected under a policy without a shipping product.
Steps
[ { "do": "Submit the cart for placement.", "provenance": "test", "source": "services-commerce:modules/shipping/tests/e2e/shipping.e2e.spec.js#refuses the placement 409 placement_refused with the problem shipping_product_required, naming the profile" } ]
Expected
The response contains shipping_product_required and retains an open cart.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/shipping/tests/e2e/shipping.e2e.spec.js#refuses the placement 409 placement_refused with the problem shipping_product_required, naming the profile
Source
services-commerce:modules/shipping/tests/e2e/shipping.e2e.spec.js#refuses the placement 409 placement_refused with the problem shipping_product_required, naming the profile
12 Cart editing authority cannot place an orderpermissionapinegativetest
Proves
BR-CAP-COM-ORD-005-12
Preconditions
The clerk has checkout editing permission without order creation permission.
Steps
[ { "do": "Add an item and then attempt placement.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/checkout-security.e2e.spec.js#a clerk without commerce.orders.create changes a checkout but is refused the placement" } ]
Expected
The item change succeeds and placement returns 403.
Data
Use the controlled records and transports established by the cited tests.
Bound to
services-commerce:modules/checkout/tests/e2e/checkout-security.e2e.spec.js#a clerk without commerce.orders.create changes a checkout but is refused the placement
Source
services-commerce:modules/checkout/tests/e2e/checkout-security.e2e.spec.js#a clerk without commerce.orders.create changes a checkout but is refused the placement
13 Deferred lease confirmation resumes on the next passtransitionapitest
Proves
BR-CAP-COM-ORD-005-13
Preconditions
A placed purchase has an unconfirmed lease.
Steps
[ { "do": "Run the reservation pass after the owner can confirm.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#confirms it on the sweep: the ledger committed, the participant’s claim committed, claim_confirmed on the order" } ]
Expected
The lease and resource are committed and the sale history contains confirmation.
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#confirms it on the sweep: the ledger committed, the participant’s claim committed, claim_confirmed on the order
Source
services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#confirms it on the sweep: the ledger committed, the participant’s claim committed, claim_confirmed on the order
14 Database placement uniqueness survives two waiting writersconcurrencyapitest
Proves
BR-CAP-COM-ORD-005-02 INV-DOM-COM-ORD-002-02
Preconditions
Two database connections insert an order for the same cart.
Steps
[ { "do": "Hold the first transaction, observe the second waiting, then commit the first.", "provenance": "test", "source": "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#one places the order; the other is told the request is in progress (409) or answered the one order; exactly one order row exists" } ]
Expected
One order remains and the second insert is refused.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Bound to
services-commerce:modules/orders/tests/integration/services/persistence/orders.integration.spec.js#refuses the second 409 once the first committed, by the checkout’s uniqueness
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#one places the order; the other is told the request is in progress (409) or answered the one order; exactly one order row exists
15 The sale preserves the policy selected during shoppinginteractionapiproposed
Proves
BR-CAP-COM-ORD-002-08 BR-CAP-COM-ORD-005-09
Preconditions
A cart uses an explicit policy with a known version.
Steps
[ { "do": "Place it, change the policy and read the order.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/ordering-profile-resolution.e2e.spec.js#keeps a placed order’s snapshot when the profile is edited afterwards: the profile moves to version 2, the order stays at 1 with its rules (D24)", "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 200 with the order: numbered 10000, placed, pending billing, pay now with a thirty-minute tender window, created" ] } ]
Expected
The sale retains the original version and selected settlement settings.
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#keeps a placed order’s snapshot when the profile is edited afterwards: the profile moves to version 2, the order stays at 1 with its rules (D24),services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 200 with the order: numbered 10000, placed, pending billing, pay now with a thirty-minute tender window, created
16 A changed promotion verdict rolls back purchase commitmentinteractionapiproposed
Proves
BR-CAP-COM-ORD-004-06 BR-CAP-COM-ORD-005-08
Preconditions
A reviewed code is eligible but its subject becomes ineligible before placement.
Steps
[ { "do": "Place the cart and inspect order and redemption records.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/promotions.e2e.spec.js#takes one use of the code and of the promotion", "services-commerce:modules/checkout/tests/e2e/promotion-eligibility.e2e.spec.js#refuses the placement 409 promotion_refused, purchaser_not_eligible" ] } ]
Expected
The request refuses the promotion and retains neither an order nor a redemption.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/promotions.e2e.spec.js#takes one use of the code and of the promotion,services-commerce:modules/checkout/tests/e2e/promotion-eligibility.e2e.spec.js#refuses the placement 409 promotion_refused, purchaser_not_eligible
17 Committed placement can wait for its invoiceinteractionapiproposed
Proves
BR-CAP-COM-ORD-005-09 BR-CAP-COM-ORD-006-01
Preconditions
The fixture Accounting port gives no answer at placement.
Steps
[ { "do": "Place the cart, inspect the sale and retry billing with the original key.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 200 with the order: numbered 10000, placed, pending billing, pay now with a thirty-minute tender window, created", "services-commerce:modules/orders/tests/e2e/billing-and-tender.e2e.spec.js#billed the order at placement: billed, placed, one pro forma sale invoice linked under the first bill key, the line carrying its invoice line" ] } ]
Expected
One sale stands pending billing and the recovered invoice belongs to that sale.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers 200 with the order: numbered 10000, placed, pending billing, pay now with a thirty-minute tender window, created,services-commerce:modules/orders/tests/e2e/billing-and-tender.e2e.spec.js#billed the order at placement: billed, placed, one pro forma sale invoice linked under the first bill key, the line carrying its invoice line
18 A declined card preserves the one created saleinteractionapiproposed
Proves
BR-CAP-COM-ORD-005-01 BR-CAP-COM-ORD-007-05
Preconditions
A cart is ready to place and its first card is declined.
Steps
[ { "do": "Place, submit the declined card and then an approved card.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers the same order to a retry under the same key, replayed from the idempotency ledger, writing nothing (08 row 9; D11)", "services-commerce:modules/orders/tests/e2e/billing-and-tender.e2e.spec.js#answers 200 declined with the processor’s code, the order still placed with its pro forma, the attempt declined" ] } ]
Expected
Both attempts identify the original sale and only the approved attempt accepts it.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js#answers the same order to a retry under the same key, replayed from the idempotency ledger, writing nothing (08 row 9; D11),services-commerce:modules/orders/tests/e2e/billing-and-tender.e2e.spec.js#answers 200 declined with the processor’s code, the order still placed with its pro forma, the attempt declined
19 Purchase preparation commits before billing is attemptedinteractionapiproposed
Proves
BR-CAP-COM-ORD-005-01 BR-CAP-COM-ORD-002-01 BR-CAP-COM-ORD-004-01 BR-CAP-COM-ORD-012-01 BR-CAP-COM-ORD-006-01
Preconditions
The cart has a selected policy, an eligible offer and an application-owned item.
Steps
[ { "do": "Preview, place, inspect frozen claims and redemption, then inspect the billing request.", "provenance": "proposed", "source": [ "services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js", "services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#refuses a placement made after the T-shirt was gone with the same 409 claim_conflict, never a preparation refusal", "services-commerce:modules/checkout/tests/e2e/engine-pricing.e2e.spec.js", "services-commerce:modules/checkout/tests/e2e/accounting-tax.e2e.spec.js#is a tax_quote_refused problem on the preview and refuses the placement, placing nothing", "services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#rolled the first seat claim back with the transaction, and left the booth held for the buyer to retry with", "services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#confirms it on the sweep: the ledger committed, the participant’s claim committed, claim_confirmed on the order", "services-commerce:modules/orders/tests/e2e/billing-and-tender.e2e.spec.js#leaves the order placed and pending with one attempt; the buyer’s tender bills it first and proceeds" ] } ]
Expected
One sale retains the reviewed policy and application details before its keyed invoice request.
Data
Use an isolated workspace with the records and responses named in the preconditions.
Source
services-commerce:modules/checkout/tests/e2e/placement.e2e.spec.js,services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#refuses a placement made after the T-shirt was gone with the same 409 claim_conflict, never a preparation refusal,services-commerce:modules/checkout/tests/e2e/engine-pricing.e2e.spec.js,services-commerce:modules/checkout/tests/e2e/accounting-tax.e2e.spec.js#is a tax_quote_refused problem on the preview and refuses the placement, placing nothing,services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#rolled the first seat claim back with the transaction, and left the booth held for the buyer to retry with,services-commerce:modules/checkout/tests/e2e/holds-and-claims.e2e.spec.js#confirms it on the sweep: the ledger committed, the participant’s claim committed, claim_confirmed on the order,services-commerce:modules/orders/tests/e2e/billing-and-tender.e2e.spec.js#leaves the order placed and pending with one attempt; the buyer’s tender bills it first and proceeds

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.