Skip to content

ATS-ACC-PRD-001Understand the available product kinds: Capability Test Specification

Markdown

ATS-ACC-PRD-001

Understand the available product kinds: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaAccountingModuleProductsRevision3

Read atservices-accounting f47cb263react-console baf6dae3

Coverage

  • Rule covered
  • Transition not-applicable
  • Validation gap: FND-ACC-PRD-071
  • Permission covered
  • Edge gap: FND-ACC-PRD-071
  • Failure gap: FND-ACC-PRD-071
  • Boundary covered
  • Concurrency not-applicable
  • Invariant covered
  • Interaction covered

Test Scenarios

6 scenarios proving CAP-ACC-PRD-001; 4 bound to an existing test.

01 Release control protects product kindsinvariantunitnegativetest
Proves
BR-CAP-ACC-PRD-001-01
Preconditions
The seeded kind register exists.
Steps
Attempt insertion, update and deletion as the application role.
Expected
Every attempted mutation fails and seeded kinds remain intact.
Data
The seeded kind register exists.
Bound to
Source
services-accounting:modules/products/tests/integration/db/products.table.integration.spec.js#refuses the application role an INSERT
02 The shared register retains ordering and ownershipruleapitest
Proves
BR-CAP-ACC-PRD-001-02 BR-CAP-ACC-PRD-001-03
Preconditions
A caller can read the global register.
Steps
Read it from ordinary workspace and no-workspace contexts.
Expected
Accounting’s three kinds lead the domain kinds; owners and extensions are present and inactive kinds remain identified.
Data
A caller can read the global register.
Bound to
services-accounting:modules/products/tests/e2e/products.e2e.spec.js#answers the three Accounting types first, in display order, with their labels and legacy types
services-accounting:modules/products/tests/e2e/products.e2e.spec.js#answers the domains’ types after them, each with its owning service and extension table, the Events ones inactive
services-accounting:modules/products/tests/integration/services/persistence/product-types.queries.integration.spec.js#answers the same types to a transaction with no tenant, the registry being global
Source
services-accounting:modules/products/tests/e2e/products.e2e.spec.js#answers the three Accounting types first, in display order, with their labels and legacy types
03 Authorized callers can read product kindspermissionapinegativetest
Proves
BR-CAP-ACC-PRD-001-06
Preconditions
A caller has product read authority.
Steps
Request the product-kind register.
Expected
The register read succeeds.
Data
One caller has read authority and another lacks Accounting access.
Bound to
Source
services-accounting:modules/products/tests/e2e/products-security.e2e.spec.js#reads the product type registry
04 Accounting tabs exclude domain kindsrulebrowsertest
Proves
BR-CAP-ACC-PRD-001-07
Preconditions
The register contains active Membership and Commerce kinds.
Steps
Visit Accounting Products.
Expected
Only Accounting, Donation and Legacy product tabs appear.
Data
The register contains active Membership and Commerce kinds.
Bound to
Source
react-console:e2e/mock/accounting-products-list.mock.spec.ts#shows each type on its own tab
05 Register size reaches its response ceilingboundaryapinegativeproposed
Proves
BR-CAP-ACC-PRD-001-05
Preconditions
An isolated register contains exactly two hundred kinds, then one additional kind.
Steps
Read the register at each size, restoring its seed after the check.
Expected
The first read returns the complete ordered register and count; the second fails without returning a truncated register.
Data
An isolated register contains exactly two hundred kinds, then one additional kind.
Source
services-accounting:modules/products/services/persistence/product-types.ts:listProductTypes
06 Kind selection governs creation and domain ownershipinteractionapinegativeproposed
Proves
BR-CAP-ACC-PRD-001-03 BR-CAP-ACC-PRD-002-04 BR-CAP-ACC-PRD-007-01
Preconditions
The register contains active Accounting and Membership kinds and an inactive Events kind.
Steps
Read the kinds, create suitable products through their owning callers, and try the inactive and cross-owner choices.
Expected
Successful records match the selected kind; inactive and cross-owner choices leave no new product.
Data
The register contains active Accounting and Membership kinds and an inactive Events kind.
Source
services-accounting:modules/products/tests/e2e/products.e2e.spec.js#answers the domains’ types after them, each with its owning service and extension table, the Events ones inactive; services-accounting:modules/products/tests/e2e/products-shared-base.e2e.spec.js#refuses a type registered inactive (an Events type), 400 with its sentence; services-accounting:modules/products/tests/integration/services/persistence/products.shared-base.integration.spec.js#refuses Commerce creating a membership package, naming the owner, the type and the caller

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.