22 lines
1.1 KiB
JavaScript
22 lines
1.1 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
|
|
const panel = readFileSync("src/features/approvals/ApprovalTemplatesPanel.tsx", "utf8");
|
|
const approvalsPage = readFileSync("src/features/approvals/ApprovalsPage.tsx", "utf8");
|
|
const api = readFileSync("src/api/approvals.ts", "utf8");
|
|
const moduleSource = readFileSync("src/module.ts", "utf8");
|
|
|
|
assert.match(panel, /Approval templates/);
|
|
assert.match(panel, /approvalTemplateHistory/);
|
|
assert.match(panel, /compareApprovalTemplateRevisions/);
|
|
assert.match(panel, /publishApprovalTemplate/);
|
|
assert.match(panel, /<ConfirmDialog[\s\S]*Publish approval template/);
|
|
assert.match(approvalsPage, /escalateApproval/);
|
|
assert.match(approvalsPage, /!escalationDue/);
|
|
assert.match(api, /templates\/\$\{encodeURIComponent\(templateId\)\}\/history/);
|
|
assert.match(api, /templates\/\$\{encodeURIComponent\(templateId\)\}\/compare/);
|
|
assert.match(moduleSource, /approvals\.admin\.templates/);
|
|
assert.doesNotMatch(`${panel}\n${approvalsPage}`, /window\.(?:alert|confirm|prompt)\(/);
|
|
|
|
console.log("Approval template administration UI structural contract passed.");
|