等待后端更新接口

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
+53 -1
View File
@@ -242,6 +242,13 @@ test('家谱能力和当前用户决定编辑、管理与本人删除上下文',
);
});
test('家族圈编辑能力只接受真实布尔权限,并允许管理者维护内容', () => {
assert.equal(FeedPages.canEditFeeds({ canEditContent: true }), true);
assert.equal(FeedPages.canEditFeeds({ canManage: true }), true);
assert.equal(FeedPages.canEditFeeds({ canEditContent: 'true', canManage: false }), false);
assert.equal(FeedPages.canEditFeeds({ canEditContent: false, canManage: 'true' }), false);
});
test('家族圈页面提供真实详情、分页和上传控件,不暴露 OSS ID 或草稿伪语义', () => {
const listPage = read('profile-feed.html');
const editPage = read('profile-feed-edit.html');
@@ -250,10 +257,13 @@ test('家族圈页面提供真实详情、分页和上传控件,不暴露 OSS
assert.match(listPage, /data-feed-page-prev/);
assert.match(listPage, /data-feed-page-next/);
assert.match(listPage, /data-feed-create-link[^>]+data-genealogy-context-link|data-genealogy-context-link[^>]+data-feed-create-link/);
assert.match(listPage, /data-feed-create-link[^>]+data-genealogy-context-link[^>]+hidden|data-feed-create-link[^>]+hidden[^>]+data-genealogy-context-link/);
assert.match(detailPage, /data-feed-detail-page/);
assert.match(detailPage, /data-feed-detail/);
assert.match(detailPage, /data-feed-detail-comments/);
assert.match(detailPage, /data-feed-comment-form novalidate/);
assert.match(detailPage, /name="commentContent"[^>]+required/);
assert.match(detailPage, /data-feed-comment-form-status/);
assert.match(detailPage, /data-feed-list-link[^>]+data-genealogy-context-link|data-genealogy-context-link[^>]+data-feed-list-link/);
assert.doesNotMatch(editPage, /type="text"[^>]+name="mediaOssIds"|name="mediaOssIds"[^>]+type="text"/);
assert.match(editPage, /name="mediaOssIds"[^>]+type="hidden"|type="hidden"[^>]+name="mediaOssIds"/);
@@ -267,3 +277,45 @@ test('家族圈页面提供真实详情、分页和上传控件,不暴露 OSS
assert.match(script, /genealogyDetail/);
assert.match(script, /field\.disabled/);
});
test('评论和回复使用详情页表单与统一状态,不再使用浏览器提示框', () => {
const detailPage = read('profile-feed-detail.html');
const script = read('public/js/feed-pages.js');
assert.match(detailPage, /data-feed-comment-form-target/);
assert.match(detailPage, /data-feed-comment-cancel/);
assert.match(detailPage, /data-feed-detail[^>]*>[\s\S]*data-api-state="loading"/);
assert.match(detailPage, /data-feed-detail-comments[^>]*>[\s\S]*data-api-state="loading"/);
assert.match(script, /function openFeedCommentForm\(feedId, parentCommentId\)/);
assert.match(script, /function submitComment\(form\)/);
assert.match(script, /function renderFeedState\(type, message\)/);
assert.match(script, /function setReplyState\(parentCommentId, type, message\)/);
assert.match(script, /setFeedCommentFormStatus\('正在发布评论…', 'loading'\)/);
assert.match(script, /setFeedCommentFormEnabled\(false\)/);
assert.match(script, /setFeedContainerState\('\[data-feed-detail-comments\]', 'loading', '正在加载评论…'\)/);
assert.match(script, /setReplyState\(commentId, 'loading', '正在加载回复…'\)/);
assert.match(script, /当前账号无权查看回复。/);
assert.doesNotMatch(script, /api-empty/);
assert.doesNotMatch(script, /root\.prompt/);
});
test('动态发布表单明确必填项,并以真实家谱能力控制加载、无权限和保存失败反馈', () => {
const editPage = read('profile-feed-edit.html');
const script = read('public/js/feed-pages.js');
assert.match(editPage, /data-feed-form novalidate/);
assert.match(editPage, /class="field-required"/);
assert.match(editPage, /data-feed-form-status/);
assert.match(script, /root\.ProfileUI && root\.ProfileUI\.setApiState/);
assert.match(script, /setFeedContainerState\('\[data-feed-list\]', 'loading'/);
assert.match(script, /setFeedContainerState\('\[data-feed-detail\]', 'loading'/);
assert.match(script, /'暂无家族动态'/);
assert.match(script, /!viewerContext\.canEditContent/);
assert.match(script, /setFeedFormEnabled\(false\)/);
assert.match(script, /setFeedSubmitPending\(true\)/);
assert.match(script, /正在保存…/);
assert.match(script, /function canEditFeeds\(genealogy\)/);
assert.match(script, /setFeedContentEditingEnabled\(viewerContext\.canEditContent\)/);
assert.match(script, /if \(!viewerContext\.canEditContent\) \{\s*setFeedFormStatus\('当前账号无权发布或编辑该家谱的动态。', 'forbidden'\)/);
assert.match(editPage, /data-feed-editor-action hidden disabled/);
});