KB-2B1A
11 — Test & Acceptance Harness
2 min read Revision 1
architecturetestsacceptanceno-hardcodeparitypivot-onlydrilldown2026-05-30
title: 11 — Test & Acceptance Harness date: 2026-05-30
11 — Test & Acceptance Harness
Test suite
- T1 No-hardcode scan (grep): no count literals, no category/species/layer arrays, no phantom rows.
- T2 Count parity: each displayed number == pivot_count(code) (or shown drift).
- T3 Pivot-only / no Nuxt math: API only SELECT FROM v_/pivot_; no aggregation outside PG.
- T4 Living-list: INSERT a test pivot_definitions row (gated, rollback) → appears with no deploy.
- T5 Drill-down depth: count>1 node exposes a child layer; depth varies; reaches singular → substrate.
- T6 Leaf substrate: singular node shows db_table/pk/registry/birth/IU/KG/DOT/events/owner.
- T7 Child-summary: registry layer shows count/species/status/drift/orphan/missing-*/warnings/next-action, all PG.
- T8 Drift display: known drift (DOT 307 vs 309; pages 37 vs 52) → red badge + evidence.
- T9 Stale display: needs_refresh pivot (MTX-L1-OVERVIEW) → amber badge + refreshed_at.
- T10 Route smoke: new route 200; legacy redirect after parity.
- T11 PIVOT_MISSING honesty: IU/KG/drift/grand-total shown as PIVOT_MISSING/"—", never Nuxt-computed.
Acceptance gates before implementation (Điều 26/28/32)
1 contract approved · 2 pivot-only plan + PIVOT_MISSING ratified (owners/priority) · 3 no-hardcode passes (T1/T3) · 4 count-integrity reconcile done/accepted · 5 drill-down(T5)+leaf substrate(T6)+child-summary(T7) present (a flat summary fails) · 6 route redirect strategy ratified · 7 GPT/User approval.
Updated PASS (user addendum §7)
NOT acceptable if only a flat pivot summary. PASS requires: dynamic drill-down · count>1→child-layer · leaf/final-DB-substrate · child-summary fields · no fixed frontend layer hardcode · no frontend count/grouping · old-registries thinking explicitly reused (doc 03).