49 lines
2.6 KiB
JSON
49 lines
2.6 KiB
JSON
{
|
|
"feature_id": "F-017",
|
|
"agent": "qa",
|
|
"verdict": "APPROVED",
|
|
"summary": "QA approved. All F-017 acceptance criteria are traced to implementation and executable evidence. The PostgreSQL integration suite passed with TEST_DATABASE_URL, including server-side VAT calculation, ignored client price fields, and append-only price history.",
|
|
"evidence": [
|
|
"PricingService.calculate AC covered by project/src/modules/pricing/tests/pricing-service.test.ts and project/src/app/tests/pricing.itest.ts",
|
|
"Client-supplied price ignored AC covered by pricing.itest.ts payload with bogus netUnitAmountCents/totalCents/vatAmountCents",
|
|
"Price history AC covered by pricing.itest.ts querying pricing_price_history after create and update",
|
|
"cd project && TEST_DATABASE_URL='postgres://mdv:mdv_dev_only@localhost:5432/mdv_test' npm run test:integration -- pricing.itest migrations.itest passed: 9 integration files, 39 tests",
|
|
"cd project && npm run lint passed",
|
|
"cd project && npm run typecheck passed",
|
|
"cd project && npm run build passed",
|
|
"cd project && npm test passed: 21 passed, 9 skipped without TEST_DATABASE_URL",
|
|
"./scripts/verify.sh passed"
|
|
],
|
|
"acceptance": [
|
|
{
|
|
"criterion": "Given variant and quantity When PricingService.calculate Then total with VAT returned",
|
|
"status": "PASS",
|
|
"evidence": "Pricing unit/integration tests calculate 1000 cents x2 with 21% VAT as totalCents=2420"
|
|
},
|
|
{
|
|
"criterion": "Given client-supplied price in any request Then price ignored and recalculated",
|
|
"status": "PASS",
|
|
"evidence": "pricing.itest.ts sends bogus client price fields to /pricing/calculate and response uses persisted server price 500 cents with reduced VAT"
|
|
},
|
|
{
|
|
"criterion": "Price change writes history row, never silent update",
|
|
"status": "PASS",
|
|
"evidence": "pricing.itest.ts verifies pricing_price_history has one row for initial create and one row for update with previous/new values"
|
|
},
|
|
{
|
|
"criterion": "verify.sh green",
|
|
"status": "PASS",
|
|
"evidence": "./scripts/verify.sh PASS"
|
|
}
|
|
],
|
|
"commands": [
|
|
"cd project && npm run lint: PASS",
|
|
"cd project && npm run typecheck: PASS",
|
|
"cd project && npm run build: PASS",
|
|
"cd project && npm test: PASS; 21 passed, 9 skipped when TEST_DATABASE_URL absent",
|
|
"cd project && TEST_DATABASE_URL='postgres://mdv:mdv_dev_only@localhost:5432/mdv_test' npm run test:integration -- pricing.itest migrations.itest: PASS; 9 files, 39 tests",
|
|
"./scripts/verify.sh: PASS"
|
|
],
|
|
"timestamp": "2026-08-15T16:24:50Z"
|
|
}
|