1
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user