Review: westside-admin#28 (board 1145) — Input components — 2026-05-04 (v1, NEEDS_REFINEMENT)

review-1145-2026-05-04 Doc

review needs-refinement

Scope Review: westside-admin#28 (board item 1145) — Players edit form input components

Verdict

NEEDS_REFINEMENT (refinements applied in body v2 on 2026-05-04; re-review pending). Forgejo comment issue #28 comment 16227 is the canonical record.

Three blocking refinements

  • Test infrastructure gap (the dominant scope risk). Repo's vitest stack today is node env only (vitest.config.ts: environment: 'node'); no @testing-library/svelte, no jsdom/happy-dom in package.json. The component-render ACs (EnumSelect renders all options, JsonbEditor parses on blur, DatePicker accepts ISO) all require component-mounting tests, which the current setup cannot run.
    Resolution applied: refactored AC to extract pure helpers (parseJsonOnBlur, isoToDateInput, dateInputToIso) and test those logic-only via vitest in node env. Visual rendering verified manually when #29 wires components into the edit page.
  • Lineage overstates dep on #1. The leaf input components reference no Drizzle types. Drizzle-metadata-to-component dispatcher lives in #29's +page.svelte, not here.
    Resolution applied: downgraded #1 from hard-dep to soft-dep. #28 can ship before or independently of #1.
  • Self-contradicting checklist. Body said "Do NOT create routes" but Checklist asked for a /dev/inputs dev route.
    Resolution applied: dropped the dev route; visual sanity moves to a temp scratch page in PR description (not committed).

Soft notes

  • Story/arch backing notes verified after pal-e-docs recovery (story present in project-westside-admin; arch-svelte-components not present — shared gap, see #29 review).
  • Label-vs-slug nit (story:admin-row-crud vs story-westside-admin-admin-row-crud) — not a refinement, both forms valid per feedback_traceability_triangle.

Decomposition

5-min envelope passes with the helper-extraction approach: 3 components + 1 helpers.ts + 1 helpers.test.ts = 5 files in one repo, ~9-12 unit tests, all under src/lib/components/inputs/.

Outage Note

Original review agent flagged pal-e-docs outage in real-time; that's where the postgres NP gap was first identified.

Re-review

Body v2 edits are material; will dispatch a fresh review-ticket agent. Once APPROVED, file review-1145-2026-05-04-v2 note.
  • Forgejo issue: forgejo_admin/westside-admin#28
  • Board item: 1145 on board-westside-admin