# Acceptance tests

Runner: `pytest -q` · 12 passed · 0 failed · 0 skipped · wall 1.84s

| ID | Case | Result |
|---|---|---|
| AT-01 | health returns 200 + schema_version | PASS |
| AT-02 | unknown SKU → 404 problem+json | PASS |
| AT-03 | get inventory shape matches OpenAPI | PASS |
| AT-04 | adjust with valid bearer + idempotency | PASS |
| AT-05 | duplicate idempotency key is no-op | PASS |
| AT-06 | adjust without auth → 401 | PASS |
| AT-07 | adjust that would go negative → 409 | PASS |
| AT-08 | reserved cannot exceed on_hand | PASS |
| AT-09 | OpenAPI lists all routes | PASS |
| AT-10 | content-type application/json | PASS |
| AT-11 | structured log line on adjust | PASS |
| AT-12 | no secrets in response bodies | PASS |

Gate **tests**: PASS (threshold ≥ 0.90 composite tests score).
