---
id: TST-COM-ORD-105
title: Reservations persistence
kind: integration
product_area: commerce
module: orders
revision: 1
status: draft
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
repository: services-commerce
files:
  - modules/orders/tests/integration/services/persistence/reservations.integration.spec.js
implements: []
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 2
isolation: The suite creates its own test workspace records and removes them using the fixture cleanup.
evidence:
  - provenance: test
    source: 'services-commerce:modules/orders/tests/integration/services/persistence/reservations.integration.spec.js'
    test_cases:
      - 'answers the hold held, with its expiry and extension limit and system properties'
      - 'answers the claim committed, stamped committed_at'
      - 'refuses a reservation naming neither an item nor a line, naming the rule'
      - 'refuses an item the tenant does not have, naming the property'
      - converts a hold to committed for the line at placement
      - 'releases a committed claim with its reason, and refuses a release without one'
      - 'expires a hold, stamping the expiry as its reason, and refuses every move after'
      - 'consumes a committed claim at fulfilment, and refuses consuming a hold'
      - 'records a mismatch the reconciler found, from either live state'
      - answers 404 for another tenant’s reservation
      - 'moves a hold’s expiry up to its limit, and refuses past it'
      - refuses extending anything but a hold
      - stamps when the reconciler verified the row
scenario_coverage: []
dependency_evidence:
  provenance: test
  source: 'services-commerce:modules/orders/tests/integration/services/persistence/reservations.integration.spec.js'
  declared_by_test: 'PostgreSQL, the persistence services, the execution context under `rhythm_commerce_app`. Doubled: nothing.'
---

# Reservations persistence

## Verification Boundary

The suite exercises persistence or workflow operations against the local integration database.

## What This Suite Proves

The registered cases check reservations persistence 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

PostgreSQL and the exercised Commerce persistence or workflow code are real. Remote service records, clocks and transports follow the suite’s fixtures.

## Must Not Be Doubled

The database constraints, role restrictions, locks and transactions exercised by this suite must use PostgreSQL.
