test(29): complete UAT - 2 passed, 4 issues

This commit is contained in:
2026-04-12 21:41:24 +02:00
parent 094301cc92
commit 84205563a7

View File

@@ -0,0 +1,115 @@
---
status: complete
phase: 29-image-presentation
source: [29-01-SUMMARY.md, 29-02-SUMMARY.md, 29-03-SUMMARY.md, 29-04-SUMMARY.md]
started: 2026-04-12T19:10:00Z
updated: 2026-04-12T19:20:00Z
---
## Current Test
[testing complete]
## Tests
### 1. Images use fit-within instead of crop
expected: Browse any page with item/catalog cards. Images should fit inside the frame without cropping — full image visible, no parts cut off.
result: issue
reported: "Fit-within works on detail pages but collection view cards don't render images at all."
severity: major
### 2. Dominant color background fill
expected: Where an image doesn't fill the entire frame, the empty space is filled with a color extracted from the image (not white or gray).
result: issue
reported: "Background is just plain gray. Even newly uploaded images don't get a dominant color — extraction not working or color not passed to frontend."
severity: major
### 3. Crop editor on item detail
expected: Open an item that has an image. You should see an "Adjust framing" button. Clicking it opens a crop editor with zoom slider.
result: issue
reported: "'Adjust framing' text doesn't feel like an action. Should be an icon button, only visible in edit mode, positioned below the X icon. X icon should be a trash icon to symbolize removal."
severity: minor
### 4. Crop editor on image upload
expected: Upload a new image to an item. After the upload completes, a crop editor should appear.
result: issue
reported: "Crop editor doesn't open when adding an image to an existing item. Can only be edited afterward."
severity: major
### 5. Crop settings persist
expected: Adjust the crop on an item image, save it. Navigate away and come back — image displays with saved crop settings.
result: issue
reported: "Framing adjustment doesn't save. No error message, no console log — silently fails."
severity: blocker
### 6. Consistency across surfaces
expected: All image surfaces use the same fit-within + dominant color treatment.
result: pass
reported: "Consistent across all surfaces where images render (detail pages). Collection cards don't render images (see test 1)."
## Summary
total: 6
passed: 2
issues: 4
pending: 0
skipped: 0
## Gaps
- truth: "Collection view cards should render images using GearImage component"
status: failed
reason: "User reported: images not rendering on collection view cards, only on detail pages"
severity: major
test: 1
artifacts:
- src/client/components/ItemCard.tsx
- src/client/components/GearImage.tsx
missing:
- GearImage integration in collection card view
- truth: "Dominant color should be extracted on upload and used as background fill"
status: failed
reason: "User reported: background is plain gray even for newly uploaded images — extraction not working or color not reaching frontend"
severity: major
test: 2
artifacts:
- src/server/services/image.service.ts
- src/client/components/GearImage.tsx
missing:
- Debug extractDominantColor pipeline
- Verify color is returned from upload API and stored in DB
- Verify frontend reads and applies dominantColor
- truth: "Crop editor should be an icon button visible only in edit mode, with trash icon for image removal"
status: failed
reason: "User reported: 'Adjust framing' text doesn't feel like an action. Should be icon, edit-mode only. X should be trash icon."
severity: minor
test: 3
artifacts:
- src/client/routes/items/$itemId.tsx
- src/client/components/ImageCropEditor.tsx
missing:
- Redesign crop trigger as icon button in edit mode
- Replace X with trash icon for image removal
- truth: "Crop editor should open automatically when uploading a new image"
status: failed
reason: "User reported: crop editor doesn't open when adding image to existing item"
severity: major
test: 4
artifacts:
- src/client/components/ImageUpload.tsx
missing:
- Trigger crop editor after upload in ImageUpload component
- truth: "Crop settings (zoom, x, y) should persist to DB and render on subsequent views"
status: failed
reason: "User reported: framing adjustment doesn't save, no error, no log — silent failure"
severity: blocker
test: 5
artifacts:
- src/client/routes/items/$itemId.tsx
- src/server/routes/items.ts
missing:
- Debug crop save pipeline (client mutation → API → DB)