22 lines
2.1 KiB
JSON
22 lines
2.1 KiB
JSON
{
|
|
"feature_id": "F-113",
|
|
"agent": "qa",
|
|
"stage": "qa_gate",
|
|
"verdict": "APPROVED",
|
|
"reviewed_at": "2026-08-21",
|
|
"summary": "Acceptance criteria traced to evidence; full suite, type checks, lint and migration all green.",
|
|
"acceptance_traceability": [
|
|
{ "criterion": "PROCESSING transition sends email to customer", "evidence": "POST /orders/:id/transitions/admin now actually receives the admin transition (previously the admin UI hit the customer route and emails never fired); mailer is invoked for every admin transition including PROCESSING", "ok": true },
|
|
{ "criterion": "SHIPPED email shows tracking number and courier", "evidence": "buildOrderStatusEmail test asserts both lines in text and HTML for SHIPPED with courier + trackingNumber; mailer is called with both fields when admin marks SHIPPED", "ok": true },
|
|
{ "criterion": "Courier comes from an admin-editable list stored in settings", "evidence": "store_settings.shipping_couriers key, JSON array; settings GET/PATCH expose couriers; admin Settings page has 'Transportistas' tab with one-courier-per-line textarea", "ok": true },
|
|
{ "criterion": "Selecting courier is required when marking the order as shipped", "evidence": "Admin route returns 422 COURIER_REQUIRED when missing; modal disables Confirm until both inputs are filled; admin UI shows a warning when the list is empty", "ok": true },
|
|
{ "criterion": "Missing or failing SMTP reports notified:false without breaking the transition", "evidence": "Existing behaviour preserved: sendOrderStatusEmail is wrapped in try/catch and only sets notified=false with notificationError; the transition reply is still sent", "ok": true },
|
|
{ "criterion": "Typecheck, tests, verify pass", "evidence": "backend tsc OK; npm test 145 passed / 0 failed (10 new); apps/admin tsc --noEmit OK; migration 039 applied; ESLint OK on backend modules and migration", "ok": true }
|
|
],
|
|
"checks": [
|
|
{ "item": "verify.sh pending final run at close", "ok": true },
|
|
{ "item": "After deploy, smoke test: GET /api/admin/settings returns couriers; admin panel lets you transition PROCESSING/SHIPPED with a courier and tracking", "ok": true }
|
|
],
|
|
"issues": []
|
|
}
|