Files
jiapu/tests/auth-page-structure.test.js
T

39 lines
1.7 KiB
JavaScript

const assert = require('assert');
const fs = require('fs');
const path = require('path');
const pages = [
'login.html',
'register.html',
'forgot-password.html'
];
function readPage(fileName) {
return fs.readFileSync(path.join(__dirname, '..', fileName), 'utf8');
}
function run() {
pages.forEach((fileName) => {
const html = readPage(fileName);
const formCaptchaBox = /<form[\s\S]*?data-captcha-box[\s\S]*?<\/form>/i.test(html);
const pageCaptchaBox = /data-captcha-box/.test(html);
const hasLayuiCss = html.includes('href="public/layui/css/layui.css"');
const hasTacCss = html.includes('href="public/tac/css/tac.css"');
const hasCaptchaModalCss = html.includes('href="public/css/captcha-modal.css"');
const layuiScriptIndex = html.indexOf('src="public/layui/layui.js"');
const authScriptIndex = html.indexOf('src="public/js/auth-pages.js"');
assert.strictEqual(formCaptchaBox, false, `${fileName} 不应把 TAC 挂载点放在表单内部`);
assert.strictEqual(pageCaptchaBox, false, `${fileName} 不应保留会将 TAC 渲染到页面底部的静态挂载点`);
assert.strictEqual(hasLayuiCss, true, `${fileName} 应加载 layui.css 作为 layer 提示样式依赖`);
assert.strictEqual(hasTacCss, true, `${fileName} 应加载 TAC 自带样式`);
assert.strictEqual(hasCaptchaModalCss, false, `${fileName} 不应加载自定义验证码样式`);
assert.notStrictEqual(layuiScriptIndex, -1, `${fileName} 应加载 layui.js 使用 layer.msg`);
assert.ok(layuiScriptIndex < authScriptIndex, `${fileName} 应在 auth-pages.js 之前加载 layui.js`);
});
console.log('auth-page-structure tests passed');
}
run();