Skip to content

ATS-ACC-BKS-005Maintain a business unit’s chart: Capability Test Specification

Markdown

ATS-ACC-BKS-005

Maintain a business unit’s chart: 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 covered
  • Transition gap: FND-ACC-BKS-066
  • Validation covered
  • Permission covered
  • Edge gap: FND-ACC-BKS-066
  • Failure covered
  • Boundary covered
  • Concurrency covered
  • Invariant gap: FND-ACC-BKS-081
  • Interaction covered

Test Scenarios

11 scenarios proving CAP-ACC-BKS-005; 7 bound to an existing test.

01 Normalize codes within each unitvalidationapitest
Proves
BR-CAP-ACC-BKS-005-01 INV-DOM-ACC-BKS-002-01
Preconditions
Two separate units exist.
Steps
Create a lower-case code, repeat its upper-case form locally, then use it in the other unit.
Expected
The code is stored upper-case with a derived identity, the local repeat is refused and the other-unit code succeeds.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/e2e/gl-accounts.e2e.spec.js#stores the code trimmed and upper-cased, under the id from the lower-cased code
02 Keep account identity stableinvariantapinegativeproposed
Proves
BR-CAP-ACC-BKS-005-02
Preconditions
A saved USD account has a unit and code.
Steps
Change code, unit and currency in separate replacements.
Expected
Each receives a field-specific conflict.
Data
The setup needs no extra fixture records.
Source
FND-ACC-BKS-081
03 Present default and invalid account typesruleapitest
Proves
BR-CAP-ACC-BKS-005-03
Preconditions
A unit is ready for account setup.
Steps
Create a nameless account with no type and another with an unknown type.
Expected
The first defaults to income and displays its code; the other is refused.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/e2e/gl-accounts.e2e.spec.js#defaults the account type to income
04 Retain referenced accountsfailureapinegativetest
Proves
BR-CAP-ACC-BKS-005-04 INV-DOM-ACC-BKS-002-05
Preconditions
Each restricting kind references the account in turn.
Steps
Attempt account removal for each reference.
Expected
The conflict identifies the dependency and retains the account.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/integration/services/persistence/gl-accounts.integration.spec.js#translates the refusal of each restrict foreign key to a GL account into a 409 naming it
05 Protect default destinationsinvariantapinegativetest
Proves
BR-CAP-ACC-BKS-005-05 INV-DOM-ACC-BKS-002-04
Preconditions
The account supplies receivable and deferral purposes.
Steps
Try deactivation and deletion.
Expected
Both are refused with purposes listed in their display order.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/integration/services/persistence/gl-accounts.integration.spec.js#refuses deactivating the unit’s Accounts Receivable default, naming the purpose
06 Exercise the grants for maintain a business unit’s chartpermissionapinegativeproposed
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
07 Chart page-size endpointsboundaryapinegativeproposed
Proves
BR-CAP-ACC-BKS-005-06
Preconditions
An isolated workspace has records needed for both eligible and ineligible examples.
Steps
Read a populated chart with page sizes one and five hundred, then request five hundred and one.
Expected
Eligible page sizes return bounded pages; the excessive request is refused.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
services-accounting:modules/books/tests/e2e/gl-accounts.e2e.spec.js#answers every account by business unit, then code
08 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
09 Released default frees its chart destinationinteractionbrowsertest
Proves
BR-CAP-ACC-BKS-005-05 BR-CAP-ACC-BKS-006-04
Preconditions
Run-owned records satisfy the preconditions of the referenced capability proofs.
Steps
Assign an account as a default, try deactivation, clear the assignment twice and deactivate the account.
Expected
Only the released destination can become inactive.
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/gl-accounts.integration.spec.js#refuses deactivating the unit’s Accounts Receivable default, naming the purpose,services-accounting:modules/books/tests/integration/services/persistence/default-gl-accounts.integration.spec.js#answers the purpose with no account when clearing a purpose the unit has no default for
10 A receiving account prevents chart removalinteractionbrowsertest
Proves
BR-CAP-ACC-BKS-005-04 BR-CAP-ACC-BKS-007-01
Preconditions
Run-owned records satisfy the preconditions of the referenced capability proofs.
Steps
Create a receiving destination on a local chart account, try removing the chart account, remove the destination and retry.
Expected
The dependency blocks the first removal and its release permits the later removal.
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/gl-accounts.integration.spec.js#translates the refusal of each restrict foreign key to a GL account into a 409 naming it,services-accounting:modules/books/tests/e2e/bank-accounts.e2e.spec.js#answers 400 to another unit’s GL account, naming both units
11 A tax destination prevents chart removalinteractionbrowsertest
Proves
BR-CAP-ACC-BKS-005-04 BR-CAP-ACC-BKS-013-02
Preconditions
Run-owned records satisfy the preconditions of the referenced capability proofs.
Steps
Map a tax rate to the unit account, try deleting that account, remove the mapping and retry.
Expected
The mapped destination remains protected until the tax reference is released.
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/gl-accounts.integration.spec.js#translates the refusal of each restrict foreign key to a GL account into a 409 naming it,react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0022.spec.ts#ACT-ACC-0022

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.