---
id: TST-ACC-PRD-033
title: Special-price migration and handover preservation
kind: integration
product_area: accounting
module: products
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
repository: services-accounting
files:
  - modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js
implements:
  - ATS-ACC-PRD-009-01
  - FAS-ACC-PRD-02-03
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 3
estimation_note: Planning estimate; no runtime measurement is claimed.
isolation: 'Suite-named local workspaces, isolated fixture records and explicit cleanup or rollback.'
evidence:
  - 'services-accounting:modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js'
assertion_bindings:
  - scenario: ATS-ACC-PRD-009-01
    assertions:
      - >-
        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
    provenance: test
    source: >-
      services-accounting:modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js
coverage_note: Scenario references name existing assertion evidence; broader unexecuted variants remain findings.
---

# Special-price migration and handover preservation

## Verification Boundary

The suite exercises real PostgreSQL and Accounting persistence or database functions with isolated local workspace fixtures.

## What This Suite Proves

The migration runs against recreated former price rows inside a rolled-back transaction and checks audience cells, criteria, ordering and retained values.

## What It Does Not Prove

Local execution does not prove deployed infrastructure, downstream purchase behavior, real domain extension completion or atomic remote-template recovery.

## Real Dependencies and Test Doubles

PostgreSQL, transaction context, constraints, foreign keys and Accounting persistence are real. The test owns its workspace fixtures and clock.

## Must Not Be Doubled

Do not double PostgreSQL, row-level security, transaction boundaries, constraints or the persistence implementation when claiming these local guarantees.
