|
=== W21 UI VERIFY — Ticket #3250 ===
|
|
Run: 2026-09-01
|
|
Branch: feat/3250-oms-ui-bug-fixes-chips-s
|
|
Result: FAIL (diff ratio 0.233 > threshold 0.10)
|
|
|
|
WHY THIS IS NOT N/A AND NOT SKIPPED
|
|
-----------------------------------
|
|
The node input `design_refs` arrived as <missing>. Per the gate spec that would normally
|
|
mean N/A — but N/A is only correct when a reference genuinely does not exist. A repo-local
|
|
design bundle does exist (`docs/design/oms-screens-standalone.html`, 20 artboards) and the
|
|
same bundle is present as the Devhub upload in /tmp. So the reference exists and the gate
|
|
applies; grading proceeded against it. A browser was available (headless_chromium: true),
|
|
the build compiled clean, and every route rendered authenticated content — so SKIPPED does
|
|
not apply either.
|
|
|
|
WHAT WAS ACTUALLY RUN
|
|
---------------------
|
|
1. `npm run build` → exit 0 (rebuilt: 4 components were modified after the prior build)
|
|
2. `next start` on :3000
|
|
3. Verified seeded DB — an empty oms_test would have bounced every route to /login and
|
|
produced a meaningless comparison. Counts: User=3 Item=2 Order=2 Project=2 Supplier=2
|
|
Uom=2 Expense=1 Role=6.
|
|
4. Playwright login as superadmin; confirmed all 10 routes return their own URL and real
|
|
data (not a login form).
|
|
5. Extracted a field inventory from BOTH the design artboard and the rendered page for
|
|
each screen; compared field by field.
|
|
6. Captured 40 app screenshots (10 screens x 4 breakpoints) + 10 design artboards.
|
|
|
|
RESULT: 17 deviations across 73 compared fields = 0.233
|
|
|
|
Two readings were corrected before being reported — both would have been false FAILs:
|
|
* Page-heading font read as 16px/400 vs design 20px/600 on all 10 screens. That was the
|
|
`sr-only` <h1>; the visible title is HeaderTitle.tsx's span, which measures 20px/600 —
|
|
an exact match. 10 false deviations removed.
|
|
* "Manufacturer" read as a missing Orders column. It is a top-bar role chip, not a
|
|
column. Orders columns match exactly. 1 false deviation removed.
|
|
|
|
UNRESOLVED DEVIATIONS
|
|
---------------------
|
|
Heading text (design → rendered), style matches exactly in all cases:
|
|
Item List → "Items"
|
|
Uom List → "UOM"
|
|
Supplier List→ "Suppliers"
|
|
Project List → "Projects"
|
|
Expense List → "Expenses"
|
|
Project-1 → "Expense Summary — Demo Project"
|
|
The app consistently uses a short plural where the design specifies "<Entity> List". This
|
|
is a systematic naming choice, not six unrelated bugs — one decision fixes all six.
|
|
|
|
Missing table columns:
|
|
Item List — Date, Model No
|
|
Supplier List — Supplier No, Date
|
|
Expense List — Status
|
|
Renamed:
|
|
Item List "Uom" → "UOM"
|
|
Extra:
|
|
Add Expense repeater has a "Type" column the design's two-column (Amount, Attachment)
|
|
repeater does not specify.
|
|
Button labels:
|
|
Uom List "New" → "New UOM"
|
|
Project List"New" → "New Project"
|
|
Add Expense "Save" → "Create Expense"
|
|
Form field:
|
|
Add Expense "Project" → "Project *" (design uses the asterisk convention elsewhere —
|
|
Reset Password's three fields all carry it — so its absence here is deliberate)
|
|
|
|
CLEAN SCREENS (0 deviations): Orders, Uom List columns, Project List columns,
|
|
Expense Summary, Project-1 columns, Reset Password (15/15 fields exact, including all six
|
|
password-policy rules, the strength meter and both buttons).
|
|
|
|
COVERAGE GAP — /admin/users was NOT graded. It is in feature_files, but its design lives in
|
|
users-screens-standalone.html, a different bundle. 10 of 11 mapped screens graded; the
|
|
eleventh is declared ungraded rather than silently counted as a pass.
|
|
|
|
SCREEN-INVENTORY DISCONNECT (migration-brief.md Phase 2.3)
|
|
----------------------------------------------------------
|
|
This node is required to return the same screen ids W06_ui_implementation reports building.
|
|
W06's `screens` field was NOT passed into this node — only `sides.web.feature_files`. The
|
|
ten ids graded here were derived by mapping those feature files onto design-bundle artboard
|
|
names. That mapping is this node's inference, so the cross-check Phase 2.3 exists to make
|
|
possible could not actually be performed. Flagging rather than asserting agreement.
|
|
|
|
Evidence files:
|
|
docs/gate-evidence/ui-verify-3250.txt (this report)
|
|
docs/gate-evidence/ui-verify-3250-measurements.md (computed-value tables, tolerances)
|
|
docs/gate-evidence/ui-verify-3250-fields.json (machine-readable tally)
|
|
docs/gate-evidence/ui-verify-3250-screenshots/ (50 PNGs: 40 rendered + 10 design)
|