Document reporting interface patterns

This commit is contained in:
2026-08-04 01:50:14 +02:00
parent 0abcc2455e
commit a81151391b
7 changed files with 81 additions and 2 deletions
+17
View File
@@ -0,0 +1,17 @@
import assert from "node:assert/strict";
import fs from "node:fs";
const page = fs.readFileSync("src/features/reporting/ReportingPage.tsx", "utf8");
const provider = fs.readFileSync("src/features/reporting/ProviderReportWorkspace.tsx", "utf8");
const styles = fs.readFileSync("src/styles/reporting.css", "utf8");
assert.ok(page.includes("DocumentationHelpLink"), "Reporting exposes configured-system help");
assert.ok(page.includes("PageScrollViewport"), "Reporting owns bounded catalogue and inspector scrolling");
assert.ok(page.includes("DataGrid"), "Tabular report results use the shared grid");
assert.ok(page.includes("<Dialog"), "Save and schedule operations use shared dialogs");
assert.ok(provider.includes("disabledReason={runDisabledReason}"), "Governed report blockers remain keyboard-explainable");
assert.ok(provider.includes("DismissibleAlert"), "Provider failures and unavailable states use shared alerts");
assert.ok(!page.includes("window.alert("), "Reporting must not use browser alerts");
assert.ok(styles.includes("@media (max-width: 760px)"), "Reporting retains a narrow-viewport task order");
console.log("Reporting interface pattern contract passed.");