1
Some checks failed
CI / verify (push) Has been cancelled
CI / verify (pull_request) Has been cancelled

This commit is contained in:
2026-05-13 03:11:00 +08:00
parent e4a8bd42bb
commit b13870f71b
8 changed files with 273 additions and 55 deletions

View File

@@ -349,6 +349,39 @@ describe('Match3DResultView', () => {
expect(match3dWorksService.publishMatch3DWork).not.toHaveBeenCalled();
});
test('发布要求当前难度素材都具备五个视角', () => {
const generatedItemAssets = [
createReadyGeneratedItemAsset(1),
createReadyGeneratedItemAsset(2),
{
...createReadyGeneratedItemAsset(3),
imageViews: createReadyGeneratedItemAsset(3).imageViews?.slice(0, 4),
},
];
render(
<Match3DResultView
profile={createProfile({
summary: '轻松消除水果',
coverImageSrc: 'data:image/png;base64,cover',
clearCount: 8,
difficulty: 2,
generatedItemAssets,
})}
onBack={() => {}}
onStartTestRun={() => {}}
/>,
);
const publishButton = screen.getByRole('button', { name: '发布' });
expect(publishButton).toHaveProperty('disabled', true);
fireEvent.click(publishButton);
expect(match3dWorksService.publishMatch3DWork).not.toHaveBeenCalled();
fireEvent.click(screen.getByRole('button', { name: '难度配置' }));
expect(screen.getByText('已生成物品种类')).toBeTruthy();
expect(screen.getAllByText('2 种').length).toBeGreaterThan(0);
});
test('发布前会先把当前 2D 多视角素材写回 profile', async () => {
const generatedItemAssets = [
createReadyGeneratedItemAsset(1),
@@ -776,6 +809,45 @@ describe('Match3DResultView', () => {
).toBe(true);
});
test('物品详情五视角预览不混入兼容首图', () => {
const generatedAsset = createReadyGeneratedItemAsset(1);
render(
<Match3DResultView
profile={createProfile({
clearCount: 3,
generatedItemAssets: [
{
...generatedAsset,
imageSrc:
'/generated-match3d-assets/session/profile/items/item-1/legacy-primary.png',
imageObjectKey:
'generated-match3d-assets/session/profile/items/item-1/legacy-primary.png',
},
],
})}
onBack={() => {}}
onStartTestRun={() => {}}
/>,
);
fireEvent.click(screen.getByRole('button', { name: '素材配置' }));
fireEvent.click(
screen.getByRole('button', { name: '打开物品1物品素材' }),
);
const imageSources = [...document.querySelectorAll('img')].map((image) =>
image.getAttribute('src') ?? '',
);
expect(
imageSources.some((source) => source.includes('legacy-primary.png')),
).toBe(false);
expect(
imageSources.some((source) => source.includes('views/view-05.png')),
).toBe(true);
expect(screen.getAllByText('5 视角').length).toBeGreaterThan(0);
});
test('草稿阶段仅有切割图片时展示 2D 素材', () => {
render(
<Match3DResultView