---
id: TST-COM-ORD-154
title: The manifest’s pricing policy per product type
kind: unit
product_area: commerce
module: orders
revision: 1
status: draft
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
repository: services-commerce
files:
  - modules/participants/tests/unit/registry/manifest-pricing-policy.spec.js
implements:
  - ATS-COM-ORD-012-12
environment: mock
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: 'The suite owns its in-memory inputs, scripted responses and rendered component state.'
evidence:
  - provenance: test
    source: 'services-commerce:modules/participants/tests/unit/registry/manifest-pricing-policy.spec.js'
    test_cases:
      - >-
        is what the contract’s own schema refuses (premise: contracts 0.3.0 carries the policy on the item
        result, not on the product type, so the widening stays)
      - >-
        parses a policy with the contract’s defaults filled: the switch off and no audience when nothing is
        said
      - >-
        keeps the contract’s strictness: a key the contract refuses on the type, and a key outside the
        policy’s shape, are refused by path
      - >-
        keeps the contract’s rules on the manifest itself: no product type at all is refused by path, as the
        contract refuses it
      - refuses an empty audience id and more than twenty audiences
      - >-
        answers what a line grants: the audiences once each when the switch is on, nothing when off,
        undeclared, on with no audience, or not a policy
      - >-
        reads a policy loosely from a result or a payload that carries one as an object, and nothing from one
        that does not
scenario_coverage:
  - scenario: ATS-COM-ORD-012-12
    test_cases:
      - refuses an empty audience id and more than twenty audiences
      - >-
        answers what a line grants: the audiences once each when the switch is on, nothing when off,
        undeclared, on with no audience, or not a policy
    scope: >-
      The cited cases exercise the scenario’s listed fixture outcomes; this register makes no verified
      conformance claim.
dependency_evidence:
  provenance: test
  source: 'services-commerce:modules/participants/tests/unit/registry/manifest-pricing-policy.spec.js'
  declared_by_test: 'the schema and the function. Doubled: nothing.'
---

# The manifest’s pricing policy per product type

## Verification Boundary

The unit suite checks the named contract or helper with controlled inputs.

## What This Suite Proves

The registered cases check the manifest’s pricing policy per product type with their fixture records and assertions. Scenario bindings name only the examples those cases exercise.

## What It Does Not Prove

A registered file supplies no run result or verified conformance by itself. Local fixtures do not establish deployed cross-service behavior or complete browser journeys.

## Real Dependencies and Test Doubles

Inputs and external responses are controlled in process; this suite establishes no deployed service behavior.

## Must Not Be Doubled

The named contract validation or component behavior under assertion must use its actual implementation.
