---
id: TST-ACC-PRD-044
title: Product lock input mapping
kind: unit
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/unit/api/products-api-mapper.spec.js
implements:
  - ATS-ACC-PRD-004-05
  - ATS-ACC-PRD-015-09
environment: mock
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
estimation_note: Planning estimate; no runtime measurement is claimed.
isolation: In-memory fixture inputs; no external records.
evidence:
  - 'services-accounting:modules/products/tests/unit/api/products-api-mapper.spec.js'
assertion_bindings:
  - scenario: ATS-ACC-PRD-004-05
    assertions:
      - >-
        services-accounting:modules/products/tests/unit/api/products-api-mapper.spec.js#keeps an explicit null
        on a product replacement
    provenance: test
    source: 'services-accounting:modules/products/tests/unit/api/products-api-mapper.spec.js'
  - scenario: ATS-ACC-PRD-015-09
    assertions:
      - >-
        services-accounting:modules/products/tests/unit/api/products-api-mapper.spec.js#keeps an explicit null
        on an accounting setup replacement
    provenance: test
    source: 'services-accounting:modules/products/tests/unit/api/products-api-mapper.spec.js'
coverage_note: Scenario references name existing assertion evidence; broader unexecuted variants remain findings.
---

# Product lock input mapping

## Verification Boundary

The assertions call deterministic mapping and rule functions with supplied inputs. No live persistence or HTTP boundary is exercised.

## What This Suite Proves

Mapper assertions distinguish absent, empty and supplied protection values in create and replacement bodies.

## What It Does Not Prove

These assertions do not prove workspace enforcement, transactional rollback, concurrent writes or deployed behavior.

## Real Dependencies and Test Doubles

The functions under test are real JavaScript or compiled service code. Inputs and surrounding contexts are fixtures; PostgreSQL and external applications are absent.

## Must Not Be Doubled

Keep the function under test and its actual return or refusal behavior real. Do not treat a fixture assertion as database, permission or lifecycle proof.
