14 lines
1.0 KiB
JavaScript
14 lines
1.0 KiB
JavaScript
const fs=require("fs"),assert=require("assert");
|
|
const page=fs.readFileSync("src/app/resetdata/page.tsx","utf8");
|
|
const nav=fs.readFileSync("src/components/xingbang/AgentNav.tsx","utf8");
|
|
const layout=fs.readFileSync("src/app/resetdata/layout.tsx","utf8");
|
|
assert(page.includes('/demo/reset'),"reset page must call the scoped demo reset API");
|
|
assert(page.includes('RESET-DEMO-A-B-C'),"reset confirmation must remain explicit");
|
|
assert(page.includes('window.confirm'),"reset must have a human confirmation step");
|
|
assert(page.includes('window.alert'),"reset result must be visible without adding page controls");
|
|
assert((page.match(/<button/g)||[]).length===1,"reset page must contain exactly one button");
|
|
assert(!page.includes('AgentNav'),"reset page must not expose application navigation");
|
|
assert(!nav.includes('/resetdata')&&!nav.includes('演示复位'),"navigation must not expose reset page");
|
|
assert(layout.includes('index:false')&&layout.includes('follow:false'),"reset page must opt out of search indexing");
|
|
console.log("resetdata UI checks passed");
|