Skip to content

ATS-ACC-BKS-008Organize reporting by department and project: Capability Test Specification

Markdown

ATS-ACC-BKS-008

Organize reporting by department and project: 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 not-applicable
  • Validation covered
  • Permission covered
  • Edge gap: FND-ACC-BKS-069
  • Failure covered
  • Boundary covered
  • Concurrency covered
  • Invariant covered
  • Interaction covered

Test Scenarios

9 scenarios proving CAP-ACC-BKS-008; 5 bound to an existing test.

01 Keep independent dimension namespacesvalidationapitest
Proves
BR-CAP-ACC-BKS-008-01 INV-DOM-ACC-BKS-002-09
Preconditions
Two units exist.
Steps
Repeat a department code locally, use it in the other unit and create a project with the same code.
Expected
Normalization and derived identity apply; only the local department duplicate fails.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/e2e/departments.e2e.spec.js#answers 400 to a code the unit already has, under the id it derives
02 Keep dimension identities fixedinvariantapinegativetest
Proves
BR-CAP-ACC-BKS-008-02 INV-DOM-ACC-BKS-002-09
Preconditions
A department and project are saved.
Steps
Change their codes and units.
Expected
Each replacement identifies the immutable-field conflict.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/e2e/departments.e2e.spec.js#answers 409 to a change of code, naming the column
03 Recompute readable labelsruleapitest
Proves
BR-CAP-ACC-BKS-008-03 BR-CAP-ACC-BKS-008-04
Preconditions
A department and unnamed project exist.
Steps
Rename the department, read the project and create a nameless department.
Expected
Labels use the updated name or code alone, and the unnamed department is refused.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/e2e/departments.e2e.spec.js#answers the new name, and the display name recomputed from it
04 Protect a product’s reporting dimensionfailureapinegativetest
Proves
BR-CAP-ACC-BKS-008-05
Preconditions
A product setup references the department.
Steps
Delete the department’s business unit.
Expected
The product dependency blocks removal of the unit and dimension.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/integration/services/persistence/departments.integration.spec.js#refuses the delete 409, naming the unit’s products
05 Reject unsupported extensionsvalidationapinegativetest
Proves
BR-CAP-ACC-BKS-008-06
Preconditions
The unit is available.
Steps
Create a project with custom-field values.
Expected
The unsupported properties are refused.
Data
The setup needs no extra fixture records.
Bound to
Source
services-accounting:modules/books/tests/e2e/accounting-projects.e2e.spec.js#answers 400 to custom field values, which Accounting does not carry yet
06 Exercise the grants for organize reporting by department and projectpermissionapinegativeproposed
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 Collection identity boundariesboundaryapinegativeproposed
Proves
BR-CAP-ACC-BKS-008-01
Preconditions
An isolated workspace has records needed for both eligible and ineligible examples.
Steps
Use the same code in a second unit and in the other dimension collection, then repeat it within its original collection and unit.
Expected
Only the repeated identity in the original collection is refused.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
services-accounting:modules/books/tests/e2e/departments.e2e.spec.js#answers 400 to a code the unit already has, under the id it derives
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 Chart and dimensions share the selected unit contextinteractionapiproposed
Proves
BR-CAP-ACC-BKS-008-08 BR-CAP-ACC-BKS-005-07
Preconditions
Run-owned records satisfy the preconditions of the referenced capability proofs.
Steps
Switch the working unit and create one chart account, department and project through their editors; read each record and list.
Expected
Each editor and scoped list uses the selected unit while the independent code collections retain their own identities.
Data
Run-owned records for the stated setup; retain the initial values for comparison.
Source
services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#R16,services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#R15

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.