4.2 KiB
Task 5 Report: Fixture Coverage, Documentation, And Regression Tests
Result
Completed the fixture regression coverage and operational UX documentation. The fixture retains its explicit non-production command gate and the default 100-Agent/500-event/100-job shape. Its deterministic blocker count is now 51: 50 distinct open tenant/product pairs, including two open blocker rows for the same first product. Safe-blocked snapshot counts match the fixture's open product pairs. Failed jobs have duration timestamps, and linked events point to their job and, where present, the correct blocker/product and installation.
TDD evidence
- Added assertions for the additional same-product blocker, unique fingerprints, exact UUID5 installation identities, ownership, failed-job durations, and job/blocker/product event links. The first focused run was RED as expected: fixture returned 50 blockers while the requirement expected 51.
- After implementing the blocker/job/event fixtures, added an assertion that
each snapshot's
safe_blockedvalue matched its open product pairs. The focused run was RED as expected because the old sample formula reported blocked products for installations without an open blocker. - Updated the deterministic snapshot values to match the generated open product pairs. The focused test then passed.
Verification commands
- RED:
python -m pytest central/tests/test_control_panel_fixture.py -q— failed on the expected blocker count gap (50 != 51). - RED:
python -m pytest central/tests/test_control_panel_fixture.py -q— failed on the expected safe-blocked snapshot mismatch (1 != 0). - GREEN:
python -m pytest central/tests/test_control_panel_fixture.py -q— passed (1 passed). - Full central suite:
python -m pytest central/tests -q— passed (275 passed). Pytest emitted its existingpytest-asynciofixture-loop deprecation warning and one existingopenpyxlprint-area warning. git diff --cached --check— passed with no whitespace errors.
Documentation review
Updated docs/CONTROL_PANEL_V1.md to link to the new operational UX contract
and distinguish the installation-wide confirmation step from the validated
blocker context workflow. Added docs/CONTROL_PANEL_OPERATIONAL_UX_V1.md
covering the health invariant, technical/fiscal distinction, blocker/product
counts, dashboard attention and empty states, identity-first views, timestamp
and timezone presentation, blocker filters and summaries, operational-only
priority tiers, safe resolution/auth/CSRF/audit fields, reprocess confirmation,
password policy, performance limits, responsiveness, fixture command, and
write/deployment boundaries.
Commit
- Implementation and product documentation:
4ba0fa8(test: complete control panel fixture UX coverage)
Concerns
- Resolved in the timestamp tooltip follow-up below: templates now use raw ISO
UTC timestamps in
titleand retain localized human-readable visible text. - Full central tests retain the two pre-existing dependency warnings described above; they did not fail the suite.
Timestamp tooltip follow-up
Resolved the full technical timestamp concern: agent, job, blocker, and
populated dashboard failure timestamps now keep their localized human-readable
text visible and expose the complete ISO UTC timestamp (including seconds and
+00:00) in the title attribute. Blocker detail includes first- and
last-seen timestamps. The existing raw ISO serializer now explicitly normalizes
naive SQLite timestamps as UTC, matching the presentation layer's existing
interpretation without changing the view-model shape.
TDD and verification
- RED:
python -m pytest central/tests/test_control_panel_pages.py -q -k "localized_last_seen or localized_created or localized_seen_times or bounded_failed_job_rows"— 4 expected failures because the tooltips did not contain the required raw ISO values. - GREEN:
python -m pytest central/tests/test_control_panel_pages.py -q— passed (12 passed). - Full suite:
python -m pytest central/tests -q— passed (278 passed, one existingopenpyxlwarning; pytest-asyncio also emits its existing fixture-loop deprecation warning). git diff --check— passed.- Commit message:
fix: show technical timestamps in tooltips.