Files
voice-duplex/validate.mjs
T

25 lines
886 B
JavaScript

import { readFileSync } from "node:fs";
import assert from "node:assert/strict";
const html = readFileSync(new URL("./index.html", import.meta.url), "utf8");
const ids = [...html.matchAll(/\bid="([^"]+)"/g)].map((match) => match[1]);
assert.equal(new Set(ids).size, ids.length, "HTML IDs must be unique");
for (const match of html.matchAll(/href="#([^"]+)"/g)) {
assert.ok(ids.includes(match[1]), `Missing anchor ${match[1]}`);
}
for (const pattern of [
/\/Users\//,
/git\.n\.xiaomi/,
/100\.94\./,
/human-authorization/,
/Bearer\s+[A-Za-z0-9]/,
]) {
assert.ok(!pattern.test(html), `Private content matched ${pattern}`);
}
assert.ok(html.includes("说明性模型"));
assert.ok(html.includes("来源报告值"));
assert.ok(html.includes("2026 年 11 月 9 日"));
console.log(
`Validated ${ids.length} unique anchors, public-content boundaries and evidence labels.`,
);