等待后端更新接口
This commit is contained in:
@@ -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;/);
|
||||
});
|
||||
Reference in New Issue
Block a user