Skip to content

ATS-ACC-BKS-001Establish a separate set of books for each business unit: Capability Test Specification

Markdown

ATS-ACC-BKS-001

Establish a separate set of books for each business unit: Capability Test Specification

Markdown
  • DocumentProposed
  • Product intentProposed

KindAcceptance test setProduct areaAccountingModuleBooks, Business Units and Chart of AccountsRevision2

Read atservices-accounting f47cb263react-console baf6dae3

Coverage

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

Test Scenarios

19 scenarios proving CAP-ACC-BKS-001; 11 bound to an existing test.

01 Create with a generated identityvalidationapitest
Proves
BR-CAP-ACC-BKS-001-01
Preconditions
The proposed name is unused.
Steps
Submit a minimal valid unit and another with a blank name.
Expected
The valid unit receives a name-derived identifier; the blank-name request identifies the name error and writes nothing.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/e2e/business-units.e2e.spec.js#creates it under the id its name suggests, in the tenant of the path
02 Keep founding choices fixedinvariantapinegativetest
Proves
BR-CAP-ACC-BKS-001-02 INV-DOM-ACC-BKS-001-01
Preconditions
An existing unit uses USD and a January start.
Steps
Submit replacements choosing CAD and then a July start.
Expected
Both return a field-specific conflict and preserve the unit.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/e2e/business-units.e2e.spec.js#answers 409 to a change of the base currency, naming the column
03 Create the unit and calendar atomicallyfailureapitest
Proves
BR-CAP-ACC-BKS-001-03 INV-DOM-ACC-BKS-001-02
Preconditions
No unit exists for the request.
Steps
Create it normally, then repeat with an induced failure in the second generated year.
Expected
Success includes two twelve-period open years; failure leaves no unit, currency row or first year.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/integration/services/persistence/fiscal-years.integration.spec.js#gives the new unit exactly its two years, the one containing today and the next
04 Apply creation defaultsruleapitest
Proves
BR-CAP-ACC-BKS-001-04
Preconditions
The unit has not been created.
Steps
Supply only required founding values.
Expected
All unspecified settings return their creation defaults.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/e2e/business-units.e2e.spec.js#gives every setting the request left out its default
05 Preserve omitted extension settingsedgeapitest
Proves
BR-CAP-ACC-BKS-001-05
Preconditions
A unit has foreign currencies, tender fees and revenue-reversal treatment.
Steps
Replace it using an editor body omitting those settings.
Expected
The saved unit retains all omitted extension settings.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#keeps the supported currencies when the replacement does not state them
06 Protect units with dependent configurationtransitionapinegativetest
Proves
BR-CAP-ACC-BKS-001-06 INV-DOM-ACC-BKS-001-08
Preconditions
Units have receiving accounts, projects, or only calendars and departments, including a product-used department.
Steps
Request deletion in each dependency state.
Expected
Accounts and projects block deletion with their kinds named; a free unit cascades to owned setup, while product usage blocks the cascading removal.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#refuses a unit with GL, bank and merchant accounts, naming all three
07 Initialize a current working contextrulebrowsertest
Proves
BR-CAP-ACC-BKS-001-08
Preconditions
The user has selected another active unit.
Steps
Create a unit in the console, visit invoice entry and inspect the remembered working context and offered unit choices.
Expected
The remembered active choice remains available and the new unit appears among the selectable choices without reload.
Data
Isolated fixture records matching this scenario’s setup.
Bound to
Source
react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0001.spec.ts#ACT-ACC-0001
08 Open a chapter’s complete booksinteractionbrowserproposed
Proves
AS-JNY-ACC-BKS-001-01 AS-JNY-ACC-BKS-001-02 AS-JNY-ACC-BKS-001-03
Preconditions
An administrator has isolated journey data.
Steps
Follow chapter setup across unit, calendar, account, default, bank and term screens.
Expected
Read-back confirms the entered configuration and calendar.
Data
The setup needs no extra fixture records.
Source
react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0001.spec.ts#ACT-ACC-0001
09 Replace a wrongly denominated unittransitionbrowsernegativetest
Proves
AS-JNY-ACC-BKS-002-01 AS-JNY-ACC-BKS-002-02 AS-JNY-ACC-BKS-002-03
Preconditions
A USD unit has an account and project.
Steps
Attempt currency correction and deletion, remove the blockers, then recreate in CAD.
Expected
Correction and dependent deletion are refused first; the freed unit is replaced with a CAD unit and fresh calendar.
Data
The setup needs no extra fixture records.
Bound to
Source
react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0004.spec.ts#ACT-ACC-0004
10 Exercise the grants for establish a separate set of books for each business unitpermissionapinegativeproposed
Proves
BR-CAP-ACC-BKS-016-01
Preconditions
An application-authorized reader and administrator share the run-owned setup. A third principal lacks the relevant resource grant.
Steps
Read the relevant configuration as the reader, attempt each supported mutation, then repeat with the matching administrator grants. Repeat the reads without their resource grants.
Expected
The permission outcomes match the cited authorization rule, and refused mutations leave every configured value unchanged.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
services-accounting:modules/books/tests/e2e/configuration-security.e2e.spec.js#is refused the create 403 permission_missing
11 Create, hide, restore and remove an inactive unittransitionapiproposed
Proves
BR-CAP-ACC-BKS-001-03 BR-CAP-ACC-BKS-001-06 BR-CAP-ACC-BKS-016-05 INV-DOM-ACC-BKS-001-02
Preconditions
Two unused unit identities and an administrator are available.
Steps
Create one inactive unit and one active unit. Deactivate and reactivate the active unit at its read version. Compare active-only and inclusive lists. Remove each unused unit and read its owned setup.
Expected
Each state transition matches the referenced lifecycle, and successful removal leaves no owned configuration.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
specs/accounting/books/design/state-models/STATE-ACC-BKS-001-business-unit-lifecycle.md:transitions
12 Founding month endpointsboundaryapinegativeproposed
Proves
BR-CAP-ACC-BKS-001-01
Preconditions
An isolated workspace has records needed for both eligible and ineligible examples.
Steps
Create otherwise identical units with months zero, one, twelve and thirteen.
Expected
The valid endpoints commit their calendars; refused inputs leave no setup.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
services-accounting:modules/books/tests/e2e/business-units.e2e.spec.js#creates it under the id its name suggests, in the tenant of the path
13 Refuse the second replacement of a shared read versionconcurrencyapinegativeproposed
Proves
BR-CAP-ACC-BKS-016-05
Preconditions
Two administrators read the same version of the relevant mutable record. Each prepares a different otherwise valid replacement.
Steps
Release both replacement requests from a barrier. Read the record again and retry the losing payload at its original version.
Expected
One replacement commits, the other is stale, and repeating the stale request preserves the winning values.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
services-accounting:modules/books/tests/e2e/payment-terms.e2e.spec.js#answers 400 naming is_active to a replacement that leaves it out
14 Currency setup commits with the new unitinteractionapiproposed
Proves
BR-CAP-ACC-BKS-001-03 BR-CAP-ACC-BKS-002-04
Preconditions
Run-owned records satisfy the preconditions of the referenced capability proofs.
Steps
Create a unit with supported currencies and inspect its currency settings and both initial years.
Expected
The read-back joins the selected currencies to the unit and complete calendar.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
services-accounting:modules/books/tests/integration/services/persistence/fiscal-years.integration.spec.js#gives the new unit exactly its two years, the one containing today and the next,services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#answers each supported currency with its settings, the defaults for one that stated none, and the codes beside them
15 Policy survives a unit availability changeinteractionbrowsertest
Proves
BR-CAP-ACC-BKS-001-05 BR-CAP-ACC-BKS-003-02
Preconditions
Run-owned records satisfy the preconditions of the referenced capability proofs.
Steps
Set write-off treatment, change description and cycle the unit through inactive and active, then read the saved policy.
Expected
The unit changes availability while its omitted policy remains intact.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Bound to
Source
services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#keeps the supported currencies when the replacement does not state them,services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#takes bad_debt_expense on a create that leaves the treatment out
16 Calendar failure rolls back a new unitinteractionapitest
Proves
BR-CAP-ACC-BKS-001-03 BR-CAP-ACC-BKS-009-04
Preconditions
Run-owned records satisfy the preconditions of the referenced capability proofs.
Steps
Induce a failure while writing the second initial year, then read the unit, currency rows and calendar.
Expected
No part of the attempted setup remains.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Bound to
Source
services-accounting:modules/books/tests/integration/services/persistence/fiscal-years.integration.spec.js#gives the new unit exactly its two years, the one containing today and the next,services-accounting:modules/books/tests/integration/db/fiscal-years.table.integration.spec.js#refuses a year leaving a gap after the latest, in Rhythm 1.0’s sentence
17 A stale unit edit preserves its established booksinteractionapiproposed
Proves
BR-CAP-ACC-BKS-001-02 BR-CAP-ACC-BKS-016-05
Preconditions
Run-owned records satisfy the preconditions of the referenced capability proofs.
Steps
Save a description change, then submit an earlier-version replacement and read the unit and calendar.
Expected
The stale request preserves the accepted change and founding setup.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
services-accounting:modules/books/tests/e2e/business-units.e2e.spec.js#answers 409 to a change of the base currency, naming the column,services-accounting:modules/books/tests/e2e/payment-terms.e2e.spec.js#answers 400 naming is_active to a replacement that leaves it out
18 Template validation rolls back the full unit replacementinteractionapiproposed
Proves
BR-CAP-ACC-BKS-001-05 BR-CAP-ACC-BKS-015-04
Preconditions
Run-owned records satisfy the preconditions of the referenced capability proofs.
Steps
Submit a new description, changed currency settings and an inactive document choice in one replacement; read the unit and currency rows.
Expected
The rejected document choice prevents every attempted replacement change.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#keeps the supported currencies when the replacement does not state them,services-accounting:modules/books/tests/e2e/document-templates.e2e.spec.js#answers 400 to a business unit naming an inactive template
19 Keep the selected working unit across page navigationedgebrowsertest
Proves
BR-CAP-ACC-BKS-001-08
Preconditions
The mock workspace has two active units and invoice entry contains typed charges.
Steps
Switch to the other unit, confirm discarding the previous charges, select a product of the new unit and navigate to the invoice list. Inspect the remembered context and offered currencies.
Expected
The selected unit remains the working context across navigation and its offered currency choices match the new unit setup.
Data
The suite’s isolated mock records for two active units, their products and currencies.
Bound to
Source
react-console:e2e/mock/accounting-invoice-context.mock.spec.ts#a business unit change starts the charges over in that unit and is remembered

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.