等待后端更新接口

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
+62
View File
@@ -0,0 +1,62 @@
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');
const test = require('node:test');
const ArticlePages = require('../public/js/article-pages.js');
const AlbumPages = require('../public/js/album-pages.js');
const CeremonyPages = require('../public/js/ceremony-admin-pages.js');
const FeedPages = require('../public/js/feed-pages.js');
const GenerationPages = require('../public/js/generation-pages.js');
const GrowthPages = require('../public/js/growth-pages.js');
const LineagePages = require('../public/js/lineage-pages.js');
const MemoPages = require('../public/js/memo-pages.js');
const MeritPages = require('../public/js/merit-pages.js');
const RelativePages = require('../public/js/relative-pages.js');
const VideoPages = require('../public/js/video-pages.js');
const contentCapabilities = [
['谱文', ArticlePages.canEditArticles],
['相册', AlbumPages.canEditAlbums],
['仪式', CeremonyPages.canEditCeremonies],
['动态', FeedPages.canEditFeeds],
['字辈', GenerationPages.canEditGenerations],
['成长记录', GrowthPages.canEditRecords],
['备忘录', MemoPages.canEditRecords],
['功德簿', MeritPages.canEditRecords],
['亲属记录', RelativePages.canEditRecords],
['视频', VideoPages.canEditVideos]
];
test('内容模块只信任家谱详情返回的严格编辑能力', () => {
contentCapabilities.forEach(function (entry) {
const label = entry[0];
const canEdit = entry[1];
assert.equal(typeof canEdit, 'function', label + '缺少编辑能力判断');
assert.equal(canEdit({ canEditContent: true }), true, label + '应允许内容编辑者写入');
assert.equal(canEdit({ canManage: true }), true, label + '应允许家谱管理者写入');
assert.equal(canEdit({ canEditContent: 'true' }), false, label + '不能把字符串权限当作授权');
assert.equal(canEdit({ canManage: 1 }), false, label + '不能把数值权限当作授权');
assert.equal(canEdit({ canEditContent: false, canManage: false }), false, label + '不能向无权限成员开放写入');
});
});
test('世系编辑与成员、入谱审核分别收紧到正式能力字段', () => {
assert.deepEqual(LineagePages.normalizeLineageAccess({ canEditContent: true, canManage: false }), {
canEditContent: true
});
assert.deepEqual(LineagePages.normalizeLineageAccess({ canEditContent: false, canManage: true }), {
canEditContent: false
});
assert.deepEqual(LineagePages.normalizeLineageAccess({ canEditContent: 'true' }), {
canEditContent: false
});
const memberScript = fs.readFileSync(path.join(__dirname, '..', 'public', 'js', 'member-admin-pages.js'), 'utf8');
const reviewScript = fs.readFileSync(path.join(__dirname, '..', 'public', 'js', 'join-review-pages.js'), 'utf8');
assert.match(memberScript, /managementAccess = detail\.canManage === true;/);
assert.match(memberScript, /function canTransferOwner\(role, canManage\)[\s\S]+?role === 'owner' && canManage === true/);
assert.match(reviewScript, /canManage = detail && detail\.canManage === true;/);
});