Build the admin History tab: filters, day-grouped rows, stats, footer

Task 9b9188b8. Adds a typed client for GET /api/v1/admin/history and the
History screen (ADMIN-SPEC §5): All events / Reversals / Missed chips that
re-query the API, per-period On time / Completed / Missed stats, rows
grouped by local day with event type, actor and on-time flag, the
append-only footer strip, an inert CSV button (TODO e5133d0f) and the
92px scroll-column padding. Wires the tab into the shell.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-23 23:20:45 -04:00
co-authored by Claude Opus 5.5
parent cc970bb646
commit 77a87c47df
10 changed files with 952 additions and 23 deletions
+2 -3
View File
@@ -29,9 +29,8 @@ describe("NestQuest Admin shell", () => {
fireEvent.click(screen.getByRole("tab", { name: "History" }));
expect(screen.getByRole("tabpanel").textContent).toContain(
"History placeholder",
);
expect(screen.getByRole("heading", { name: "History" })).toBeTruthy();
expect(screen.getByRole("tabpanel").textContent).not.toContain("placeholder");
expect(screen.getByRole("tab", { name: "History" }).getAttribute("aria-selected")).toBe(
"true",
);