22 lines
1.4 KiB
JSON
22 lines
1.4 KiB
JSON
{
|
|
"feature_id": "F-019",
|
|
"agent": "qa",
|
|
"verdict": "APPROVED",
|
|
"summary": "QA approved. All F-019 acceptance criteria are covered by executable tests and green checks: valid promo discount recalculation, expired/exhausted 422 responses, and ignored client discount fields.",
|
|
"evidence": [
|
|
"promotions.itest.ts covers valid promo code with recalculated discount",
|
|
"promotions.itest.ts covers expired and exhausted promo codes returning HTTP 422",
|
|
"promotions.itest.ts sends client discountCents in cart payload and server ignores it",
|
|
"cd project && npm run lint/typecheck/build/test passed",
|
|
"DB integration promotions/migrations suite passed: 11 files, 44 tests",
|
|
"./scripts/verify.sh passed"
|
|
],
|
|
"acceptance": [
|
|
{ "criterion": "Given valid promo code When applied Then discount recalculated server-side", "status": "PASS", "evidence": "SAVE10 applied to current cart total returns server-calculated discount" },
|
|
{ "criterion": "Given expired or exhausted code When applied Then HTTP 422 with reason", "status": "PASS", "evidence": "Expired OLD and exhausted USED both return 422" },
|
|
{ "criterion": "Given client-supplied discount amount Then discount ignored", "status": "PASS", "evidence": "Client discountCents is stripped/ignored; cart discount comes from PromotionService" },
|
|
{ "criterion": "verify.sh green", "status": "PASS", "evidence": "./scripts/verify.sh PASS" }
|
|
],
|
|
"timestamp": "2026-08-15T17:44:09Z"
|
|
}
|