Skip to content

ATS-ACC-TRX-018Preserve and read monthly receivables aging: Capability Test Specification

Markdown

ATS-ACC-TRX-018

Preserve and read monthly receivables aging: Capability Test Specification

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-ACC-TRX-018

Design

Executed by
TST-ACC-TRX-001, TST-ACC-TRX-119, TST-ACC-TRX-120

KindAcceptance test setProduct areaAccountingModuleTransactionsRevision2

Read atservices-accounting f47cb263

Coverage

  • Rule gap: FND-ACC-TRX-083
  • Transition gap: FND-ACC-TRX-083
  • Validation gap: FND-ACC-TRX-083
  • Permission covered
  • Edge covered
  • Failure covered
  • Boundary covered
  • Concurrency covered
  • Invariant covered
  • Interaction covered

Test Scenarios

8 scenarios proving CAP-ACC-TRX-018; 7 bound to an existing test.

01 Monthly planning is repeat-safeconcurrencyapitest
Proves
BR-CAP-ACC-TRX-018-01
Preconditions
Two eligible workspaces have passed September cutoff.
Steps
[ { "do": "Run planning twice.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it plans nothing twice: a second pass creates no run, and the ledger holds one run per tenant" } ]
Expected
Each obtains one first-version scheduled run and the second pass adds none.
Data
A snapshot-run ledger.
Bound to
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it plans version 1 of September for each eligible tenant, captured and scheduled, known at September’s end
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it plans nothing twice: a second pass creates no run, and the ledger holds one run per tenant
Source
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it plans nothing twice: a second pass creates no run, and the ledger holds one run per tenant
02 Capture excludes information learned after cutoffboundaryapitest
Proves
BR-CAP-ACC-TRX-018-02 INV-DOM-ACC-TRX-005-09
Preconditions
Open debt, void debt, available receipt value and later-recorded backdated money exist.
Steps
[ { "do": "Capture September’s position.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it captures the open items as known at September’s end: the back-dated check recorded on 5 October is not in it" } ]
Expected
Eligible balances remain and void or later-known items are omitted.
Data
Known-time receivable fixtures.
Bound to
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it captures the open items as known at September’s end: the back-dated check recorded on 5 October is not in it
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-credit-application.integration.spec.js#it holds a check with nothing allocated as the customer’s unapplied money, from its date on
Source
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it captures the open items as known at September’s end: the back-dated check recorded on 5 October is not in it
03 Published items reconcile with grouped totalsinvariantapitest
Proves
BR-CAP-ACC-TRX-018-03
Preconditions
September has a published capture.
Steps
[ { "do": "Inspect item labels, categories and totals.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it copies each item’s number, its business unit and currency, and the customer’s name from CRM" } ]
Expected
Identity context remains captured and unit, currency and bucket totals equal their items.
Data
A published snapshot run.
Bound to
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it copies each item’s number, its business unit and currency, and the customer’s name from CRM
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it totals the items per business unit, currency and bucket, and the totals reconcile to 210.00
services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it answers every item once, in kind and id order, each with its bucket and balance
Source
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it copies each item’s number, its business unit and currency, and the customer’s name from CRM
04 Validation failure rolls back one capturefailureapinegativetest
Proves
BR-CAP-ACC-TRX-018-04 INV-DOM-ACC-TRX-005-10
Preconditions
One workspace has an intentionally misclassified item.
Steps
[ { "do": "Execute monthly captures.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it leaves none of the failed run’s rows behind: its transaction rolled back" } ]
Expected
That run records validation failure, retains no captured rows and retries while another publishes.
Data
An invalid aging fixture.
Bound to
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it leaves none of the failed run’s rows behind: its transaction rolled back
Source
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it leaves none of the failed run’s rows behind: its transaction rolled back
05 New publication preserves the earlier versiontransitionapitest
Proves
BR-CAP-ACC-TRX-018-05 INV-DOM-ACC-TRX-005-11
Preconditions
The month has a first published version.
Steps
[ { "do": "Request and publish a rerun.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it keeps version 1’s rows as they were captured, readable by its run" } ]
Expected
Version two becomes current, names its predecessor and retains version-one rows.
Data
A previously published month.
Bound to
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it publishes version 2 as the current version and keeps version 1, no longer current
Source
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it keeps version 1’s rows as they were captured, readable by its run
06 Pagination cannot mix publicationsedgeapitest
Proves
BR-CAP-ACC-TRX-018-06 INV-DOM-ACC-TRX-005-12
Preconditions
A first publication has a pending successor and another month has no data.
Steps
[ { "do": "Read, publish the successor, reuse the old cursor and request the empty month.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it refuses the first version’s cursor with 409 version_changed, rather than continuing in the second version" } ]
Expected
Original read succeeds, obsolete paging fails and absent data reports availability status.
Data
Snapshot run and publication records.
Bound to
services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it still answers the published version 1 while version 2 waits to be admitted
services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it refuses the first version’s cursor with 409 version_changed, rather than continuing in the second version
services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it answers 404 not_available naming not_planned for a month with no run
Source
services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it refuses the first version’s cursor with 409 version_changed, rather than continuing in the second version
07 Aging access also isolates workspacespermissionapinegativetest
Proves
BR-CAP-ACC-TRX-018-07
Preconditions
An application-only identity and two workspaces exist.
Steps
[ { "do": "Read through the API and through each published view.", "provenance": "test", "source": "services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it refuses a principal holding only the application’s access with 403 permission_missing" } ]
Expected
Insufficient authority fails and views expose only their workspace.
Data
Aging-reader and application-only personas.
Bound to
services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it refuses a principal holding only the application’s access with 403 permission_missing
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it reads none of another tenant’s items even when the statement names it
Source
services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it refuses a principal holding only the application’s access with 403 permission_missing
08 Historical publication does not rewrite current standinginteractionapiproposed
Proves
BR-CAP-ACC-TRX-018-02 BR-CAP-ACC-TRX-018-05 BR-CAP-ACC-TRX-018-06 BR-CAP-ACC-TRX-017-01
Preconditions
An isolated workspace has eligible customers, products, matching accounts, an open period and two open batches. Each branch owns separate financial records.
Steps
[ { "do": "Capture an 80.00 month-end balance, record a later-known backdated 20.00 memo and inspect current standing. Publish a new eligible capture version and reread the earlier run.", "provenance": "proposed", "source": "services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it captures the open items as known at September’s end: the back-dated check recorded on 5 October is not in it; services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it keeps version 1’s rows as they were captured, readable by its run; services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it refuses the first version’s cursor with 409 version_changed, rather than continuing in the second version; rhythm-v2-docs:specs/accounting/transactions/design/workflows/WF-ACC-TRX-015-capture-and-publish-the-month-end-aging-snapshot.md#WF-ACC-TRX-015; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-05; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-06; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-01" } ]
Expected
Today reflects the 20.00 reduction; each capture uses its own cutoff and the earlier run retains its 80.00 rows after replacement.
Data
Separate command keys, two customers, invoice lines, receipts and credit; controlled processor outcomes and a fixed calendar where the branch requires them.
Source
services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it captures the open items as known at September’s end: the back-dated check recorded on 5 October is not in it; services-accounting:modules/transactions/tests/integration/services/runs/ar-aging-pipeline.integration.spec.js#it keeps version 1’s rows as they were captured, readable by its run; services-accounting:modules/transactions/tests/e2e/ar-aging.e2e.spec.js#it refuses the first version’s cursor with 409 version_changed, rather than continuing in the second version; rhythm-v2-docs:specs/accounting/transactions/design/workflows/WF-ACC-TRX-015-capture-and-publish-the-month-end-aging-snapshot.md#WF-ACC-TRX-015; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-02; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-05; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-018-report-receivables-at-a-past-month-end.md#BR-CAP-ACC-TRX-018-06; rhythm-v2-docs:specs/accounting/transactions/planning/capabilities/CAP-ACC-TRX-017-know-where-a-customer-stands.md#BR-CAP-ACC-TRX-017-01

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.