1
This commit is contained in:
66
src/services/miniGameDraftGenerationProgress.test.ts
Normal file
66
src/services/miniGameDraftGenerationProgress.test.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import {
|
||||
buildMiniGameDraftGenerationProgress,
|
||||
type MiniGameDraftGenerationState,
|
||||
} from './miniGameDraftGenerationProgress';
|
||||
|
||||
describe('miniGameDraftGenerationProgress', () => {
|
||||
test('big fish draft generation exposes multiple draft steps', () => {
|
||||
const state: MiniGameDraftGenerationState = {
|
||||
kind: 'big-fish',
|
||||
phase: 'big-fish-draft',
|
||||
startedAtMs: 1000,
|
||||
completedAssetCount: 0,
|
||||
totalAssetCount: 0,
|
||||
error: null,
|
||||
};
|
||||
|
||||
const progress = buildMiniGameDraftGenerationProgress(state, 1500);
|
||||
|
||||
expect(progress).not.toBeNull();
|
||||
expect(progress?.steps).toHaveLength(3);
|
||||
expect(progress?.steps.map((step) => step.id)).toEqual([
|
||||
'big-fish-draft',
|
||||
'big-fish-levels',
|
||||
'big-fish-runtime',
|
||||
]);
|
||||
expect(progress?.steps[0]?.label).toBe('整理玩法骨架');
|
||||
});
|
||||
|
||||
test('big fish generation progresses to level and runtime phases over time', () => {
|
||||
const state: MiniGameDraftGenerationState = {
|
||||
kind: 'big-fish',
|
||||
phase: 'big-fish-draft',
|
||||
startedAtMs: 1000,
|
||||
completedAssetCount: 0,
|
||||
totalAssetCount: 0,
|
||||
error: null,
|
||||
};
|
||||
|
||||
const levelProgress = buildMiniGameDraftGenerationProgress(state, 3200);
|
||||
const runtimeProgress = buildMiniGameDraftGenerationProgress(state, 6200);
|
||||
|
||||
expect(levelProgress?.phaseId).toBe('big-fish-levels');
|
||||
expect(levelProgress?.phaseLabel).toBe('编译等级蓝图');
|
||||
expect(runtimeProgress?.phaseId).toBe('big-fish-runtime');
|
||||
expect(runtimeProgress?.phaseLabel).toBe('校准场地与参数');
|
||||
});
|
||||
|
||||
test('big fish ready copy directs user to continue generating assets on result page', () => {
|
||||
const state: MiniGameDraftGenerationState = {
|
||||
kind: 'big-fish',
|
||||
phase: 'ready',
|
||||
startedAtMs: 1000,
|
||||
completedAssetCount: 0,
|
||||
totalAssetCount: 0,
|
||||
error: null,
|
||||
};
|
||||
|
||||
const progress = buildMiniGameDraftGenerationProgress(state, 2000);
|
||||
|
||||
expect(progress?.phaseDetail).toBe(
|
||||
'玩法草稿已准备完成,可进入结果页继续生成主图、动作和背景。',
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user