22 lines
1.6 KiB
JSON
22 lines
1.6 KiB
JSON
{
|
|
"feature_id": "F-021",
|
|
"agent": "qa",
|
|
"verdict": "APPROVED",
|
|
"summary": "QA approved. All F-021 acceptance criteria are covered by executable tests and green checks. Order snapshots are immutable, the state machine rejects SHIPPED->PENDING, and OrderCreated is emitted on creation.",
|
|
"evidence": [
|
|
"order-state-machine.test.ts covers full happy-path transitions and terminal states",
|
|
"order-service.test.ts covers OrderCreated emission and rejected transitions",
|
|
"orders.itest.ts verifies snapshot persistence and rejected SHIPPED->PENDING",
|
|
"cd project && npm run lint/typecheck/build/test passed",
|
|
"DB integration orders suite passed: 13 files, 50 tests",
|
|
"./scripts/verify.sh passed"
|
|
],
|
|
"acceptance": [
|
|
{ "criterion": "Order keeps original snapshot values after catalog edits", "status": "PASS", "evidence": "orders.itest.ts fetches created order and asserts name/price/tax snapshot" },
|
|
{ "criterion": "Order in SHIPPED rejects transition to PENDING", "status": "PASS", "evidence": "orders.itest.ts walks to SHIPPED then sends PENDING and receives 409 ORDER_STATE_TRANSITION_INVALID" },
|
|
{ "criterion": "Every legal state transition covered by unit test", "status": "PASS", "evidence": "order-state-machine.test.ts asserts isTransitionAllowed across happy-path and terminal states" },
|
|
{ "criterion": "OrderCreated event published on creation", "status": "PASS", "evidence": "order-service.test.ts uses a capture publisher that records OrderCreated" },
|
|
{ "criterion": "verify.sh green", "status": "PASS", "evidence": "./scripts/verify.sh PASS" }
|
|
],
|
|
"timestamp": "2026-08-15T18:08:53Z"
|
|
} |