显示精选审核提交失败原因

统一素材精选审核提交资格判断

在素材菜单显示不可提交和后端拒绝原因

将编辑器业务拒绝映射为 400 并保留中文原因

补充精选审核原因展示测试和文档口径
This commit is contained in:
2026-07-06 21:35:10 +08:00
parent be7f0375e5
commit 2d631becc7
10 changed files with 281 additions and 24 deletions
@@ -21,6 +21,7 @@ import {
renameAssetFolderById,
replaceLocalAssetFolder,
resolveAllAssetSelection,
resolveAssetShowcaseSubmissionState,
resolveAssetFolderIdFromPoint,
resolveDefaultAssetFolder,
resolvePreferredAssetUploadFolder,
@@ -89,6 +90,58 @@ describe('ImageCanvasAssetLibraryModel', () => {
]);
});
it('explains why assets cannot be submitted to showcase review', () => {
expect(
resolveAssetShowcaseSubmissionState(createAsset()).reason,
).toBe('只有生成素材可以提交精选审核');
expect(
resolveAssetShowcaseSubmissionState(
createAsset({ sourceType: 'generated', persisted: false }),
).reason,
).toBe('素材保存完成后才能提交精选审核');
expect(
resolveAssetShowcaseSubmissionState(
createAsset({ sourceType: 'generated', src: '' }),
).reason,
).toBe('没有媒体内容的素材不能提交精选审核');
expect(
resolveAssetShowcaseSubmissionState(
createAsset({
sourceType: 'generated',
showcaseReviewStatus: 'rejected',
}),
),
).toMatchObject({
canSubmit: false,
label: '精选未通过',
reason: '该素材审核未通过,不能重复提交',
});
});
it('allows persisted generated assets to be submitted and keeps prior backend errors visible', () => {
expect(
resolveAssetShowcaseSubmissionState(
createAsset({ sourceType: 'generated' }),
),
).toMatchObject({
canSubmit: true,
label: '提交精选审核',
reason: null,
});
expect(
resolveAssetShowcaseSubmissionState(
createAsset({
sourceType: 'generated',
showcaseSubmitError: '只有生成素材可以提交精选审核',
}),
),
).toMatchObject({
canSubmit: true,
label: '提交精选审核',
reason: '只有生成素材可以提交精选审核',
});
});
it('filters grouped assets by folder and asset search text', () => {
const groupedAssets = groupAssetsByFolder(
[