45 lines
1.5 KiB
JSON
45 lines
1.5 KiB
JSON
{
|
|
"feature_id": "F-082",
|
|
"verdict": "APPROVED",
|
|
"checks": [
|
|
{
|
|
"name": "Stock cell is click-to-edit (no pencil)",
|
|
"result": "PASS",
|
|
"notes": "Both /inventory page and InventorySection: cell <button> value -> <input autoFocus>; no ✏️ anywhere."
|
|
},
|
|
{
|
|
"name": "All editable cells save on blur or Enter",
|
|
"result": "PASS",
|
|
"notes": "SKU, EAN, Stock, Precio neto all use onBlur + Enter (Escape cancels) via dedicated save handlers."
|
|
},
|
|
{
|
|
"name": "Persisted via existing PATCH /variants/:id and pricing endpoints",
|
|
"result": "PASS",
|
|
"notes": "productsApi.updateVariant for sku/ean; pricingApi.setVariantPrice for price; inventoryApi.setStock for stock."
|
|
},
|
|
{
|
|
"name": "Failed save restores previous value",
|
|
"result": "PASS",
|
|
"notes": "catch blocks in saveStock/savePrice/saveSku/saveEan reset the edit field from r.variant/r.price and set saveMsg = 'Error'."
|
|
},
|
|
{
|
|
"name": "Visual feedback on success",
|
|
"result": "PASS",
|
|
"notes": "saveMsg shows '✓ Guardado' for 3s after success."
|
|
},
|
|
{
|
|
"name": "No regressions",
|
|
"result": "PASS",
|
|
"notes": "PricingSection.tsx untouched; only inventory files changed."
|
|
}
|
|
],
|
|
"lint": {
|
|
"errors_introduced": 0
|
|
},
|
|
"typecheck": "PASS",
|
|
"verdict_reason": "Standardised click-to-edit UX across both inventory surfaces; same pattern in three places (stock, price, sku/ean).",
|
|
"reviewer": "reviewer",
|
|
"reviewed_at": "2026-08-20T04:05:00Z",
|
|
"agent": "reviewer"
|
|
}
|