16 lines
1.2 KiB
JSON
16 lines
1.2 KiB
JSON
{
|
|
"feature_id": "F-058",
|
|
"agent": "qa",
|
|
"verdict": "APPROVED",
|
|
"summary": "End-to-end trace for every acceptance criterion. The leaf emoji fallback is gone for products that have an image. /uploads/40/<file> resolves on the admin host. Regression checks pass: existing products without images still render the leaf, products with images render the 40px thumbnail.",
|
|
"evidence": [
|
|
"AC1 'GET /api/catalog/products returns images[] for products with attached images' — verified: Proteina Guisante Ecologica returns images=1 with the expected url",
|
|
"AC2 'GET /api/products/search returns images[] for products with attached images' — same: target product returns images=1",
|
|
"AC3 'Admin /products table shows 40px thumbnail (not leaf) for products with images' — frontend now reads images[0].url with /uploads/40/ replacement; URL serves 200 with 568 bytes",
|
|
"AC4 'No regression in uploads pipeline' — typecheck, tests, build all green; /uploads/[...path] handler untouched",
|
|
"AC5 'verify.sh is green' — exit 0",
|
|
"Regression: products without images (11 of 12 in the seed) still return images=[] and render the leaf",
|
|
"Regression: backend tests pass (124 passed, 56 skipped)"
|
|
],
|
|
"timestamp": "2026-08-19T13:50:00Z"
|
|
} |