ATS-ACC-BKS-004 Maintain dated exchange rates for a unit: Capability Test Specification
Markdown Design / Accounting / Books, Business Units and Chart of Accounts / Business Units and Currency Policy / Capability Test Specification Maintain dated exchange rates for a unit: Capability Test Specification Coverage Store precise eligible rates. Preserve dated rate identity. Resolve quotes consistently. Correct provider quotes through replacement filling. Fill missing provider quotes. Leave configuration intact after fill refusal. Round conversion at currency precision. The structured coverage map distinguishes specified examples from remaining findings. Proposed examples require executable proof before qualification.
Unit replacement retains dated quote eligibility. 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 covered Transition covered Validation covered Permission covered Edge gap: FND-ACC-BKS-065 Failure covered Boundary covered Concurrency gap: FND-ACC-BKS-065 Invariant covered Interaction covered Test Scenarios 11 scenarios proving CAP-ACC-BKS-004 ; 6 bound to an existing test.
01 Store precise eligible rates validation api negative test
Proves BR-CAP-ACC-BKS-004-01 Preconditions CAD is supported by the unit. Steps Submit decimal text, numeric input, zero, eleven fractional places, a base-currency quote and an unsupported currency. Expected Only eligible positive decimal text is stored at the declared precision. Data The setup needs no extra fixture records. Bound to Source services-accounting:modules/books/tests/unit/rules/exchange-rate-rules.spec.js #refuses a number (digits would be lost), zero, a negative, more than ten places, nine integer digits and a word 04 Fill missing provider quotes rule api test
Proves BR-CAP-ACC-BKS-004-05 Preconditions Provider currencies include an existing quote and a stubbed partially available response. Steps Request filling for the date. Expected One provider call saves only missing quotes on provider dates and reports skipped and unpriced currencies. Data Isolated fixture records matching this scenario’s setup. Bound to Source services-accounting:modules/books/tests/integration/services/persistence/exchange-rates.integration.spec.js #asks the provider once for every provider-sourced currency, with the unit, its base and the day, and writes provider rows with the platform’s ids 06 Round conversion at currency precision boundary unit test
Proves BR-CAP-ACC-BKS-004-07 Preconditions Quotes cover yen conversion and a credit amount. Steps Convert amounts and compute a reciprocal. Expected Minor-unit results use half-away-from-zero rounding; the reciprocal uses half-up ten-place rounding. Data The setup needs no extra fixture records. Bound to Source services-accounting:modules/books/tests/unit/rules/exchange-rate-rules.spec.js #applies the target currency’s exponent exactly: 100.00 USD at 149.37 is 14937 yen 08 Exercise the grants for maintain dated exchange rates for a 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 09 Quote precision endpoints boundary api negative proposed
Proves BR-CAP-ACC-BKS-004-01 Preconditions An isolated workspace has records needed for both eligible and ineligible examples. Steps Create quotes with eight integer and ten fractional digits, then increase each length by one. Expected Only the eligible precision saves and reads back without losing a digit. Data Run-owned records for the stated setup; retain the initial values for comparison. Source services-accounting:modules/books/tests/unit/rules/exchange-rate-rules.spec.js #refuses a number (digits would be lost), zero, a negative, more than ten places, nine integer digits and a word 10 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 11 Unit replacement retains dated quote eligibility interaction api proposed
Proves BR-CAP-ACC-BKS-001-05 BR-CAP-ACC-BKS-004-03 Preconditions Run-owned records satisfy the preconditions of the referenced capability proofs. Steps Save a quote and edit the unit description while omitting its supported-set extension, then resolve the quote. Expected The stored quote and currency settings still resolve after the ordinary edit. 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/integration/services/persistence/exchange-rates.queries.integration.spec.js#answers the latest rate on or before the day with the currency’s settings ← Previous Capability Test Specification ATS-ACC-BKS-003 · Set a unit’s accounting and tender-fee policies: Capability Test Specification Next Capability Test Specification → ATS-ACC-BKS-005 · Maintain a business unit’s chart: Capability Test Specification