import { describe, expect, it } from 'vitest'; import { isPuzzleCompileActionReady } from './puzzleDraftGenerationState'; import type { PuzzleAgentSessionSnapshot } from '../../../packages/shared/src/contracts/puzzleAgentSession'; describe('isPuzzleCompileActionReady', () => { it('keeps compile action generating until the draft has a cover image', () => { const session = { sessionId: 'puzzle-session-1', draft: { coverImageSrc: null, levels: [ { generationStatus: 'generating', coverImageSrc: null, }, ], }, } as PuzzleAgentSessionSnapshot; expect(isPuzzleCompileActionReady(session)).toBe(false); }); it('treats compile action as ready after the selected cover exists', () => { const session = { sessionId: 'puzzle-session-1', draft: { coverImageSrc: '/generated-puzzle-assets/session/cover.png', levels: [ { generationStatus: 'ready', coverImageSrc: '/generated-puzzle-assets/session/cover.png', }, ], }, } as PuzzleAgentSessionSnapshot; expect(isPuzzleCompileActionReady(session)).toBe(true); }); });