Skip to content

ATS-COM-FUL-019Reconcile shelf counts and stock findings: Acceptance Test Set

Markdown

ATS-COM-FUL-019

Reconcile shelf counts and stock findings: Acceptance Test Set

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-COM-FUL-019

KindAcceptance test setProduct areaCommerceModuleFulfillment, Shipping and InventoryRevision1

Read atservices-commerce c8b66a98

Test Scenarios

6 scenarios proving CAP-COM-FUL-019; 6 bound to an existing test.

01 Completed counts retain corrections and refuse reopeningapinegativetest
Proves
BR-CAP-COM-FUL-019-01 BR-CAP-COM-FUL-019-02
Preconditions
Two count items include one discrepancy.
Steps
Record and complete a count, then edit or complete again and cancel another count.
Expected
One correction and count timestamps remain, repeated changes fail and cancellation adds no correction.
Data
Fixtures for completed counts retain corrections and refuse reopening.
Bound to
services-commerce:modules/inventory/tests/integration/services/stock/staff-movements.integration.spec.js#opens the count open with no lines, records the lines with what the shelf expected, and completes it with one correction for the variance
services-commerce:modules/inventory/tests/integration/services/stock/staff-movements.integration.spec.js#refuses lines on a completed count and a second completion (409), and the cancelled count wrote nothing
services-commerce:modules/inventory/tests/e2e/inventory.e2e.spec.js#opens a count, records what was counted, completes it with one correction, and cancels another; lines on a completed count 409
Source
services-commerce:modules/inventory/tests/integration/services/stock/staff-movements.integration.spec.js#opens the count open with no lines, records the lines with what the shelf expected, and completes it with one correction for the variance
02 Finding resolution requires a result and allows later recurrenceapinegativetest
Proves
BR-CAP-COM-FUL-019-03
Preconditions
A stock finding is open.
Steps
Acknowledge, try reasonless result, resolve properly, repeat and raise again.
Expected
Missing resolution and repeated closure fail, while later recurrence opens a fresh finding.
Data
Fixtures for finding resolution requires a result and allows later recurrence.
Bound to
services-commerce:modules/inventory/tests/integration/services/stock/staff-movements.integration.spec.js#is raised open, acknowledged, resolved with its resolution, and raised again as a new row once resolved
services-commerce:modules/inventory/tests/e2e/inventory.e2e.spec.js#is listed and read, acknowledged, then resolved with its resolution (a second resolve 409; a resolution missing 400)
services-commerce:modules/inventory/tests/integration/db/inventory-tables.table.integration.spec.js#refuses two open findings of one kind about one subject, by inventory_exceptions_open_uidx, and a kind outside the six
Source
services-commerce:modules/inventory/tests/integration/services/stock/staff-movements.integration.spec.js#is raised open, acknowledged, resolved with its resolution, and raised again as a new row once resolved
03 Nightly reconciliation reports discrepancies and expires holdsapitest
Proves
BR-CAP-COM-FUL-019-04 BR-CAP-COM-FUL-019-05 BR-CAP-COM-FUL-019-06 BR-CAP-COM-FUL-019-07 BR-CAP-COM-FUL-019-10
Preconditions
Fixtures include expired hold, balance mismatch, terminal allocation and low stock.
Steps
Run reconciliation twice.
Expected
Only expiry releases stock automatically and repeated discrepancies increment their open findings.
Data
Fixtures for nightly reconciliation reports discrepancies and expires holds.
Bound to
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#counts what it did: the tenant, one hold expired, three items checked, one mismatch, one stale unit, one low-stock SKU of two with a point, and the cost pass: three items whose stock no layer costs (the fixture’s bare receipts), no handoff without a relief
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#releases the expired hold (reason expiry) and raises expired_hold on it, giving the unit back
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#raises balance_mismatch on the item knocked out of line, with what was kept and what the ledgers say, and corrects nothing
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#raises low_stock on shirt L at its own reorder point with the product’s reorder quantity, and nothing on the cap above its point
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#finds the same on a second run and adds an occurrence to each open finding rather than another row
Source
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#counts what it did: the tenant, one hold expired, three items checked, one mismatch, one stale unit, one low-stock SKU of two with a point, and the cost pass: three items whose stock no layer costs (the fixture’s bare receipts), no handoff without a relief
04 Paged reconciliation reports a time-limited run honestlyapitest
Proves
BR-CAP-COM-FUL-019-08
Preconditions
Items and tracked products exceed one page.
Steps
Run with sufficient time and then with an exhausted time budget.
Expected
The full scan reaches later pages and the exhausted scan stops with incomplete coverage.
Data
Fixtures for paged reconciliation reports a time-limited run honestly.
Bound to
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory-paging.integration.spec.js#checks every tracked SKU with a reorder point and raises each one at or below it, the last page’s included
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory-paging.integration.spec.js#stops before it reads anything when the run has no time left, and answers that it is incomplete
Source
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory-paging.integration.spec.js#checks every tracked SKU with a reorder point and raises each one at or below it, the last page’s included
05 Stock discovery rejects an existing transactionapinegativetest
Proves
BR-CAP-COM-FUL-019-11
Preconditions
A caller owns an open transaction.
Steps
Discover workspaces with stock within that transaction.
Expected
The sweep read fails rather than joining the caller's transaction.
Data
Fixtures for stock discovery rejects an existing transaction.
Bound to
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#finds the tenants that hold stock across tenants, under the sweep policy, this one among them, and refuses that read inside another transaction
Source
services-commerce:modules/inventory/tests/integration/services/reconciliation/nightly-inventory.integration.spec.js#finds the tenants that hold stock across tenants, under the sweep policy, this one among them, and refuses that read inside another transaction
06 Counts and findings require mutation authorityapinegativetest
Proves
BR-CAP-COM-FUL-019-12
Preconditions
A read-only inventory identity is available.
Steps
Try count creation and finding resolution, then read the records.
Expected
Mutations fail while authorized inspection succeeds.
Data
Fixtures for counts and findings require mutation authority.
Bound to
services-commerce:modules/inventory/tests/e2e/inventory.e2e.spec.js#lets a reader list and read everything, and refuses it every write 403 permission_missing
Source
services-commerce:modules/inventory/tests/e2e/inventory.e2e.spec.js#lets a reader list and read everything, and refuses it every write 403 permission_missing

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.