import { describe, expect, test } from 'vitest'; import { resolveMiniGameGenerationViewBusy, resolveMiniGameGenerationProgressTickState, } from './PlatformEntryFlowShellImpl'; import { createMiniGameDraftGenerationState } from '../../services/miniGameDraftGenerationProgress'; import { resolveFinishedMiniGameDraftGenerationState } from './platformMiniGameDraftGenerationStateModel'; describe('resolveMiniGameGenerationProgressTickState', () => { test('returns jump hop and wooden fish generation states for progress ticking', () => { const jumpHopState = createMiniGameDraftGenerationState('jump-hop'); const woodenFishState = createMiniGameDraftGenerationState('wooden-fish'); expect( resolveMiniGameGenerationProgressTickState('jump-hop-generating', { 'jump-hop': jumpHopState, }), ).toBe(jumpHopState); expect( resolveMiniGameGenerationProgressTickState('wooden-fish-generating', { 'wooden-fish': woodenFishState, }), ).toBe(woodenFishState); }); test('returns null when the stage does not need generation ticking', () => { expect( resolveMiniGameGenerationProgressTickState('platform', { 'jump-hop': createMiniGameDraftGenerationState('jump-hop'), }), ).toBeNull(); }); }); describe('resolveMiniGameGenerationViewBusy', () => { test('敲木鱼恢复生成中草稿时继续隐藏重新生成按钮', () => { const woodenFishGeneratingState = createMiniGameDraftGenerationState('wooden-fish'); expect( resolveMiniGameGenerationViewBusy(false, woodenFishGeneratingState), ).toBe(true); }); test('生成态结束后只保留真实 busy', () => { const woodenFishReadyState = resolveFinishedMiniGameDraftGenerationState( createMiniGameDraftGenerationState('wooden-fish'), 'ready', ); expect(resolveMiniGameGenerationViewBusy(false, woodenFishReadyState)).toBe( false, ); expect(resolveMiniGameGenerationViewBusy(true, woodenFishReadyState)).toBe( true, ); }); });