Skip to content

ATS-ACC-PRD-009Preserve migrated special prices for Commerce: Capability Test Specification

Markdown

ATS-ACC-PRD-009

Preserve migrated special prices for Commerce: Capability Test Specification

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-ACC-PRD-009

Design

Executed by
TST-ACC-PRD-027, TST-ACC-PRD-033

KindAcceptance test setProduct areaAccountingModuleProductsRevision3

Read atservices-accounting f47cb263react-console baf6dae3

Coverage

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

Test Scenarios

4 scenarios proving CAP-ACC-PRD-009; 2 bound to an existing test.

01 Migration retains every special-price handovertransitionunittest
Proves
BR-CAP-ACC-PRD-009-01
Preconditions
Two products have former special-price fixtures.
Steps
Run the migration’s backfill.
Expected
Prices and handovers retain source values and ordering and the retired collection is emptied.
Data
Two products have former special-price fixtures.
Bound to
services-accounting:modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js#hands each special price over as a product-local audience: minted id, product, name, criteria, amount in the base currency, formula, rank
services-accounting:modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js#mints one always price row per special price under its audience, after the product’s existing prices, in 1.0 order
services-accounting:modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js#leaves the retired table empty, which is the condition the migration drops it under
Source
services-accounting:modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js#hands each special price over as a product-local audience: minted id, product, name, criteria, amount in the base currency, formula, rank
02 The retired wire accepts only empty special pricingvalidationapinegativetest
Proves
BR-CAP-ACC-PRD-009-02
Preconditions
An existing product is available.
Steps
Send the old special-price field empty and then as a list.
Expected
Empty compatibility input succeeds and the list fails with migration guidance.
Data
An existing product is available.
Bound to
services-accounting:modules/products/tests/e2e/product-features.e2e.spec.js#refuses a list of special prices, naming where the feature went (A12)
services-accounting:modules/products/tests/e2e/product-features.e2e.spec.js#accepts special_prices as null (the old wire’s switched-off), which the record no longer answers
Source
services-accounting:modules/products/tests/e2e/product-features.e2e.spec.js#refuses a list of special prices, naming where the feature went (A12)
03 An unrealized audience can block correctioninteractionapinegativeproposed
Proves
BR-CAP-ACC-PRD-009-05
Preconditions
Commerce vocabulary exists but lacks a migrated audience still held by a product.
Steps
Replace the product description while resubmitting its price grid.
Expected
The proposed proof should demonstrate the current refusal; intended admission remains a product question.
Data
Commerce vocabulary exists but lacks a migrated audience still held by a product.
Source
FND-ACC-PRD-026
04 Deleting a migrated product removes its handoverinteractionapinegativeproposed
Proves
BR-CAP-ACC-PRD-009-01 BR-CAP-ACC-PRD-006-03 INV-DOM-ACC-PRD-002-10
Preconditions
A migrated product has a local-audience price and a handover with a controlled realization timestamp.
Steps
Delete products with unstamped and stamped handovers, after satisfying ordinary deletion guards.
Expected
Both local handovers disappear with their owning products; Commerce audience deletion is outside this proof.
Data
A migrated product has a local-audience price and a handover with a controlled realization timestamp.
Source
services-accounting:modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js#hands each special price over as a product-local audience: minted id, product, name, criteria, amount in the base currency, formula, rank; services-accounting:modules/products/tests/integration/services/persistence/products.integration.spec.js#takes its prices, components, accounting setup and the setup’s collections with it

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.