test(images): concept comparison for the Images page

images-concept.spec.mjs compares the production Images page with the
immutable concept on the concept-shaped fixture: heading, toolbar, filter
row, caption, grid, the first six cards, continuation and panel box in
Grid, List and Masonry, at 1600x1100 and 390x844, dark and light, normal
and reduced motion; plus hover zoom, the viewer title, focus restore,
Info selection, search and Load more with its toast. mapImagesConcept
applies only recorded deviations (D3, D8 and D16 follow-up PRs, D9, D10,
D14, D15, D17, D29, D31, D32); removed row items flow again from the
concept's own boxes. A mutation check proves the comparison fails on a
.media-info padding change and on removed Inspect buttons.

Corrections the comparison demonstrated:
- the grid and continuation carry the concept's ids (image-grid,
  gallery-continuation);
- bounded rendering reserves the card footer at its fractional height:
  offsetHeight rounded a wrapped 67.5px row up, so at 390px every card
  was a pixel taller and the grid 6px taller than the concept.

Two mismatches wait for a ruling and are pinned on both sides: the
category order (concept prompt order, production alphabetical) and the
singular count line ("1 positive prompt").
This commit is contained in:
Vito Sansevero
2026-10-20 07:13:24 -07:00
parent a723df75eb
commit 08bf160309
5 changed files with 555 additions and 6 deletions
+14
View File
@@ -429,6 +429,20 @@ npm run --prefix tools/vendor test:workflows -- shell-concept.spec.mjs \
--project chromium --project touch --project firefox --project webkit
```
`tests/browser/images-concept.spec.mjs` compares the Images page (#249 C7): heading,
toolbar, filter row, caption, grid, the first six cards, the continuation and the panel
box, in every layout, at both sizes, themes and motion settings. The concept is compared
once its own Load more has loaded all 24 fixture images (it loads 12 per batch,
production 40). Behaviors: hover zoom, the 2nd card opens the viewer titled
"<title> · <filename>", Escape returns focus to it, Info on the 3rd card moves
`.selected`, search "alpine", and Load more (12 in the concept, one listing page in
production, both with the toast). `mapImagesConcept` applies D8 and D16 (follow-up
PRs: no checkbox, no Save view), D3, D9, D10, D14, D15, D17, D29, D31 and D32; removed
toolbar and filter-row items flow again from the concept's own boxes (`reflow`, proven
on the concept rows first). Masonry card tops and heights may differ by one pixel (D3:
layout arithmetic versus the browser's layout-unit snapping). Two mismatches wait for a
ruling and are pinned on both sides: the category order and the singular count line.
## Workspace data fields for the concept pages (#249)
These fields are additive. The legacy `/prompt_manager/images/output` listing (no