等待后端更新接口

This commit is contained in:
2026-08-03 16:49:26 +08:00
parent ac5823547a
commit 5b79893650
131 changed files with 5324 additions and 1392 deletions
+16 -1
View File
@@ -23,7 +23,7 @@ test('世系管理页和家谱主页复用同一棵安全树的 HTML', () => {
assert.match(html, /<始祖>/);
assert.match(html, /data-lineage-person="2062179707935264770"/);
assert.doesNotMatch(html, /2062179707935264769/);
assert.match(LineagePages.renderLineageTreeHtml([]), /暂无世系树/);
assert.equal(LineagePages.renderLineageTreeHtml([]), '');
});
test('世系人物表单只构造 Apifox LineagePersonBody 字段', () => {
@@ -301,6 +301,7 @@ test('世系页按 Apifox 关键词范围搜索并提供分页入口', () => {
pageSize: 20
});
assert.match(page, /placeholder="输入姓名、别名或人物编号搜索"/);
assert.match(page, /data-lineage-keyword[^>]+aria-label="按姓名、别名或人物编号搜索成员"/);
assert.match(page, /data-lineage-generation-filter/);
assert.match(page, /data-lineage-status-filter/);
assert.match(page, /data-lineage-pagination/);
@@ -311,6 +312,7 @@ test('世系页按 Apifox 关键词范围搜索并提供分页入口', () => {
test('世系表单为全部 LineagePersonBody 字段提供真实来源且不允许手填业务 ID', () => {
const page = fs.readFileSync(path.join(__dirname, '..', 'profile-tree.html'), 'utf8');
const styles = fs.readFileSync(path.join(__dirname, '..', 'public', 'css', 'profile-module.css'), 'utf8');
const script = fs.readFileSync(path.join(__dirname, '..', 'public', 'js', 'lineage-pages.js'), 'utf8');
[
'bindingMode', 'appUserId', 'avatarOssId', 'personNo', 'name', 'aliasName', 'sex',
@@ -319,20 +321,33 @@ test('世系表单为全部 LineagePersonBody 字段提供真实来源且不允
'biography', 'sortOrder', 'remark', 'relationName'
].forEach((name) => assert.match(page, new RegExp('name="' + name + '"')));
assert.match(page, /value="SPECIFIED"(?![^>]+disabled)/);
assert.match(page, /data-lineage-specified-member hidden/);
assert.match(page, /<label for="lineage-specified-member">指定账号<\/label>/);
assert.match(page, /select[^>]+name="appUserId"[^>]+data-lineage-member-options|select[^>]+data-lineage-member-options[^>]+name="appUserId"/);
assert.doesNotMatch(page, /name="appUserId"[^>]+type="(?:text|number)"|type="(?:text|number)"[^>]+name="appUserId"/);
assert.doesNotMatch(page, /name="appUserId"[^>]+type="hidden"|type="hidden"[^>]+name="appUserId"/);
assert.match(page, /name="avatarOssId"[^>]+type="hidden"|type="hidden"[^>]+name="avatarOssId"/);
assert.match(page, /data-upload-target="#lineage-avatar-oss-id"/);
assert.match(script, /specifiedMember\.hidden = !specified/);
assert.match(page, /name="generation"[^>]*data-lineage-generation/);
assert.match(page, /name="generationName"[^>]+readonly|readonly[^>]+name="generationName"/);
assert.match(page, /name="fatherId"[^>]*data-lineage-parent-option/);
assert.match(page, /name="motherId"[^>]*data-lineage-parent-option/);
assert.match(page, /data-lineage-management[^>]+hidden/);
assert.match(page, /data-lineage-form novalidate/);
assert.match(page, /data-lineage-submit/);
assert.match(page, /data-lineage-form-status/);
assert.match(page, /data-lineage-action-status/);
assert.match(page, /public\/js\/upload-pages\.js/);
assert.match(styles, /\[data-lineage-management\]\[hidden\]\s*\{[^}]*display:\s*none\s*!important/s);
assert.match(styles, /\[data-lineage-spouse-field\]\[hidden\][^{]*\{[^}]*display:\s*none\s*!important/s);
assert.match(styles, /\[data-lineage-pagination\]\[hidden\][^{]*\{[^}]*display:\s*none\s*!important/s);
assert.match(script, /function setLineageState\(selector, type, message\)/);
assert.match(script, /root\.ProfileUI && root\.ProfileUI\.setApiState/);
assert.match(script, /setLineageState\('\[data-lineage-list\]', 'loading', '正在加载世系人物…'\)/);
assert.match(script, /setFormStatus\('正在保存成员…', 'loading'\)/);
assert.match(script, /setActionStatus\('正在停用成员…', 'loading'\)/);
assert.match(script, /function setLineageSubmitLabel\(label\)/);
});
test('世系管理的 403 不会被当作登录失效', () => {