---
id: TST-COM-ORD-142
title: The return policy (11 §2.1)
kind: unit
product_area: commerce
module: orders
revision: 1
status: draft
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
repository: services-commerce
files:
  - modules/orders/tests/unit/returns/return-policy.spec.js
implements:
  - ATS-COM-ORD-016-02
  - ATS-COM-ORD-016-08
  - ATS-COM-ORD-016-11
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/orders/tests/unit/returns/return-policy.spec.js'
    test_cases:
      - >-
        defaults to 30 days from delivery, approval outside the window, refund on receipt, no fee, restock,
        quarantine and scrap
      - >-
        picks the most specific configured policy, else the built-in default, and loosens it by the frozen
        terms
      - allows 2 of 4 within the window (B11) and denies more than the line has left
      - >-
        sends a self-service request outside the window to a person (B12) and lets staff through with a
        warning, or denies it when the policy never approves
      - >-
        denies a final-sale product unless an administrator overrides (B13), and caps a self-service request
        at the fraction
      - >-
        charges the restocking fee as an amount per unit or a percent of the units’ share (B17), and asks a
        person on condition or amount
      - >-
        deducts the label’s cost when the customer pays it, and nothing when the tenant pays, no label was
        bought or it cost nothing (D-P7-32)
      - 'never deducts more than the refund has left after the other fees: the refund’s floor is zero (D-P7-32)'
      - keeps a label the frozen terms promised at the tenant’s cost from being charged to the customer later
scenario_coverage:
  - scenario: ATS-COM-ORD-016-02
    test_cases:
      - >-
        defaults to 30 days from delivery, approval outside the window, refund on receipt, no fee, restock,
        quarantine and scrap
      - >-
        picks the most specific configured policy, else the built-in default, and loosens it by the frozen
        terms
    scope: >-
      The cited cases exercise the scenario’s listed fixture outcomes; this register makes no verified
      conformance claim.
  - scenario: ATS-COM-ORD-016-08
    test_cases:
      - 'never deducts more than the refund has left after the other fees: the refund’s floor is zero (D-P7-32)'
    scope: >-
      The cited cases exercise the scenario’s listed fixture outcomes; this register makes no verified
      conformance claim.
  - scenario: ATS-COM-ORD-016-11
    test_cases:
      - keeps a label the frozen terms promised at the tenant’s cost from being charged to the customer later
    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/orders/tests/unit/returns/return-policy.spec.js'
  declared_by_test: 'the policy and the evaluation. Doubled: nothing (the inputs are literals).'
---

# The return policy (11 §2.1)

## Verification Boundary

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

## What This Suite Proves

The registered cases check the return policy (11 §2.1) 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.
