ATS-ACC-BKS-001 Establish a separate set of books for each business unit: Capability Test Specification
Markdown Design / Accounting / Books, Business Units and Chart of Accounts / Business Units and Currency Policy / Capability Test Specification Establish a separate set of books for each business unit: Capability Test Specification Coverage Create with a generated identity. Keep founding choices fixed. Create the unit and calendar atomically. Apply creation defaults. Preserve omitted extension settings. Protect units with dependent configuration. Initialize a current working context. The structured coverage map distinguishes specified examples from remaining findings. Proposed examples require executable proof before qualification.
Open a chapter’s complete books. Currency setup commits with the new unit. Policy survives a unit availability change. Calendar failure rolls back a new unit. A stale unit edit preserves its established books. Template validation rolls back the full unit replacement. Related-capability and workflow references identify the seams each scenario exercises. The lifecycle coverage record retains transitions that still need individual proof.
Binding Review The pinned service and browser assertions support the registered bindings. Original test references remain beside each scenario so partial evidence and unresolved conformance remain reviewable.
Show evidence (sources, provenance, origins, pinned commits)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 identity validation api test
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 fixed invariant api negative test
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 06 Protect units with dependent configuration transition api negative test
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 context rule browser test
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 10 Exercise the grants for establish a separate set of books for each business unit permission api negative proposed
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 unit transition api proposed
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 endpoints boundary api negative proposed
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 version concurrency api negative proposed
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 unit interaction api proposed
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 change interaction browser test
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 unit interaction api test
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 books interaction api proposed
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 replacement interaction api proposed
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 navigation edge browser test
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 Next Capability Test Specification → ATS-ACC-BKS-002 · Enable supported foreign currencies for a business unit: Capability Test Specification