Skip to content

ATS-ACC-REC-013Reverse an approved explanation and prepare its replacement: Capability Test Specification

Markdown

ATS-ACC-REC-013

Reverse an approved explanation and prepare its replacement: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaAccountingModuleReconciliationRevision3

Read atservices-accounting f47cb263react-console baf6dae3

Coverage

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

Test Scenarios

11 scenarios proving CAP-ACC-REC-013; 9 bound to an existing test.

01 Finalized records cannot reopentransitionapinegativetest
Proves
BR-CAP-ACC-REC-013-01
Preconditions
A reconciliation is finalized.
Steps
Attempt to move it back to open.
Expected
Reopening is refused as an unsupported correction path.
Data
No additional fixture beyond the case setup.
Bound to
Source
services-accounting:modules/reconciliation/tests/unit/rules/transitions.spec.js#refuses open as batch-reopen-not-offered
02 Reversal keys and eligible statevalidationapinegativetest
Proves
BR-CAP-ACC-REC-013-02
Preconditions
Open and already reversed examples are available.
Steps
Reverse without a key, reverse open state and submit a fresh-key repeat reversal.
Expected
Every invalid reversal fails, with auditable state refusals where applicable.
Data
No additional fixture beyond the case setup.
Bound to
services-accounting:modules/reconciliation/tests/e2e/batch-lifecycle.e2e.spec.js#refuses a reversal without an Idempotency-Key with 400
Source
services-accounting:modules/reconciliation/tests/e2e/batch-lifecycle.e2e.spec.js#refuses a reversal without an Idempotency-Key with 400
03 Immediate open-period reversaltransitionapitest
Proves
BR-CAP-ACC-REC-013-03 BR-CAP-ACC-REC-013-08
Preconditions
A finalized reconciliation’s original period is open.
Steps
Reverse with a reason and inspect the record, requests and holdings.
Expected
Mirrors swap posting sides, the record becomes reversed and released holdings and reversal identities remain visible.
Data
No additional fixture beyond the case setup.
Bound to
services-accounting:modules/reconciliation/tests/integration/services/batch-lifecycle/reverse-batch.integration.spec.js#asks for the mirrors of the transfer and the fee, debits and credits swapped, in the unit’s batch on its date
services-accounting:modules/reconciliation/tests/integration/services/batch-lifecycle/reverse-batch.integration.spec.js#reads the reversal on the reversed batch itself: reason, requester, approver and time (DEF-ACT-0594)
services-accounting:modules/reconciliation/tests/unit/rules/posting-plans.spec.js#swaps every line’s debit and credit under the transfer’s reverse key
services-accounting:modules/reconciliation/tests/e2e/reconciliation-scenario.e2e.spec.js#step 13: mirrors every posting of the finalize, debits and credits swapped
Source
services-accounting:modules/reconciliation/tests/integration/services/batch-lifecycle/reverse-batch.integration.spec.js#answers the reversed batch whole
04 Closed-period independent approvalpermissionapinegativetest
Proves
BR-CAP-ACC-REC-013-04 BR-CAP-ACC-REC-013-05 BR-CAP-ACC-REC-013-06
Preconditions
A finalized reconciliation belongs to closed October.
Steps
Request twice and approve as requester, at stale version and with a closed selected batch before using a second person and open November batch.
Expected
The request waits without mirrors; invalid approvals fail and valid approval dates mirrors in November.
Data
Provide closed period and a later batch for this case.
Bound to
services-accounting:modules/reconciliation/tests/integration/services/batch-lifecycle/reverse-batch.integration.spec.js#refuses the approval: the batch its mirrors would ride in is in a closed period
services-accounting:modules/reconciliation/tests/integration/services/batch-lifecycle/reverse-batch.integration.spec.js#dates the mirrors on the November batch’s date, the original date their document date
Source
services-accounting:modules/reconciliation/tests/integration/services/batch-lifecycle/reverse-batch.integration.spec.js#records the request and leaves the batch finalized, awaiting a second approval
05 Recognition after reversalinteractionapitest
Proves
BR-CAP-ACC-REC-013-07
Preconditions
A reversed reconciliation retains its manual fee.
Steps
Reconcile the released payout with that fee and finalize again.
Expected
The fee’s subsequent recognition receives its next numbered key.
Data
No additional fixture beyond the case setup.
Bound to
services-accounting:modules/reconciliation/tests/e2e/reconciliation-scenario.e2e.spec.js#step 13: releases the claims, so batch 1042’s captures are outstanding again
Source
services-accounting:modules/reconciliation/tests/integration/services/batch-lifecycle/reverse-batch.integration.spec.js#recognises the fee under its second key when a new batch reconciles it again
06 Missing reversal batch rolls backfailureapinegativetest
Proves
BR-CAP-ACC-REC-013-09
Preconditions
No open operational batch can carry mirrors.
Steps
Attempt reversal.
Expected
State, version and holdings remain finalized, with no mirror or event.
Data
No additional fixture beyond the case setup.
Bound to
services-accounting:modules/reconciliation/tests/integration/services/batch-lifecycle/reverse-batch.integration.spec.js#writes nothing: the batch finalized at its version, its claims held, no mirror, no event
Source
services-accounting:modules/reconciliation/tests/integration/services/batch-lifecycle/reverse-batch.integration.spec.js#refuses the reversal: no open batch takes its mirrors
07 Reverse requires its sensitive grantpermissionapinegativetest
Proves
BR-CAP-ACC-REC-013-10
Preconditions
A caller lacks reverse permission.
Steps
Submit a reversal as that caller.
Expected
The command is forbidden.
Data
No additional fixture beyond the case setup.
Bound to
services-accounting:modules/reconciliation/tests/e2e/batch-lifecycle.e2e.spec.js#refuses a principal without accounting.reconciliation-batches.reverse with 403
services-accounting:modules/reconciliation/tests/e2e/reconciliation-scenario.e2e.spec.js#step 13: refuses the reverse to a user without accounting.reconciliation-batches.reverse with 403
Source
services-accounting:modules/reconciliation/tests/e2e/batch-lifecycle.e2e.spec.js#refuses a principal without accounting.reconciliation-batches.reverse with 403
08 Corrected reconciliation journeyinteractionapitest
Proves
AS-JNY-ACC-REC-003-01 AS-JNY-ACC-REC-003-02
Preconditions
A finalized record includes a wrong fee.
Steps
Reverse it, prepare the correct explanation and inspect readiness.
Expected
Mirrors and renewed recognitions accompany the replacement, with no pending approval and one current payout reconciliation.
Data
Use the isolated reconciliation fixture unit.
Bound to
Source
react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0600.spec.ts#ACT-ACC-0600
09 Late effect and closed-period reversalinteractionapinegativetest
Proves
AS-JNY-ACC-REC-003-03
Preconditions
A closed month is followed by an open month with an accepting batch.
Steps
Finalize the old deposit and request reversal with independent approval.
Expected
Forward posting is marked late and the reversal requester cannot approve their own request.
Data
Provide closed month for this case.
Bound to
Source
react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0601.spec.ts#ACT-ACC-0601
10 Replacement reuses released evidenceinteractionapiproposed
Proves
BR-CAP-ACC-REC-013-07 BR-CAP-ACC-REC-008-04
Preconditions
Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
Steps
[ { "do": "Reverse an explanation, reopen its payout and select released matched and manual effects.", "expect": "The replacement has a new identity and reuses eligible evidence without changing reversed history.", "provenance": "proposed", "source": [ "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-013-correct-a-finalized-reconciliation-by-reversing-it-and.md", "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-008-open-a-reconciliation-over-a-deposit-and-see-what-explains.md" ] } ]
Expected
The replacement has a new identity and reuses eligible evidence without changing reversed history.
Data
Local merchant and bank accounts, an open operational batch and distinct preparation and approval callers.
Source
specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-013-correct-a-finalized-reconciliation-by-reversing-it-and.md,specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-008-open-a-reconciliation-over-a-deposit-and-see-what-explains.md
11 Pending reversal appears in assessmentinteractionapiproposed
Proves
BR-CAP-ACC-REC-013-04 BR-CAP-ACC-REC-013-05 BR-CAP-ACC-REC-013-06 BR-CAP-ACC-REC-018-05 BR-CAP-ACC-REC-018-06
Preconditions
Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
Steps
[ { "do": "Request reversal in a closed period, assess, approve using an open-period batch and assess again.", "expect": "Pending approval disappears after completion while unposted mirrors remain a separate concern.", "provenance": "proposed", "source": [ "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-013-correct-a-finalized-reconciliation-by-reversing-it-and.md", "specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-018-tell-month-end-close-what-stops-a-period-from-closing.md" ] } ]
Expected
Pending approval disappears after completion while unposted mirrors remain a separate concern.
Data
Local merchant and bank accounts, an open operational batch and distinct preparation and approval callers.
Source
specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-013-correct-a-finalized-reconciliation-by-reversing-it-and.md,specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-018-tell-month-end-close-what-stops-a-period-from-closing.md

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.