18 lines
1.1 KiB
JavaScript
18 lines
1.1 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import fs from "node:fs";
|
|
|
|
const page = fs.readFileSync("src/features/helpdesk/HelpdeskProfilesPage.tsx", "utf8");
|
|
const styles = fs.readFileSync("src/styles/helpdesk.css", "utf8");
|
|
|
|
assert.ok(page.includes("WorkspaceActionBar"), "Helpdesk uses the semantic shared action bar");
|
|
assert.ok(page.includes("refreshable"), "The Helpdesk profile page exposes Reload");
|
|
assert.ok(page.includes("DocumentationHelpLink"), "Helpdesk exposes contextual documentation");
|
|
assert.ok(page.includes("PageScrollViewport"), "Helpdesk owns bounded profile and detail scrolling");
|
|
assert.ok(page.includes("<Dialog"), "Helpdesk profile edits use the shared dialog");
|
|
assert.ok(page.includes("FieldLabel"), "Helpdesk profile fields use shared labels and help");
|
|
assert.ok(page.includes("StatusBadge"), "Profile activation is not conveyed by color alone");
|
|
assert.ok(!page.includes("window.alert("), "Helpdesk must not use browser alerts");
|
|
assert.ok(styles.includes("@media (max-width: 760px)"), "Helpdesk retains a responsive profile layout");
|
|
|
|
console.log("Helpdesk interface pattern contract passed.");
|