---
phase: 17-component-tests
plan: 03
type: execute
---
Add tests for generate node components: GenerateImageNode and GenerateVideoNode.
Purpose: Test the core generation components that interface with AI providers.
Output: Test files covering provider selection, model browsing, parameter handling, and generation state.
~/.claude/get-shit-done/workflows/execute-phase.md
~/.claude/get-shit-done/templates/summary.md
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/phases/17-component-tests/17-02-SUMMARY.md
# Key source files:
@src/components/nodes/GenerateImageNode.tsx
@src/components/nodes/GenerateVideoNode.tsx
@src/components/nodes/ModelParameters.tsx
**Tech stack available:** Vitest, React Testing Library, jsdom
**Established patterns:** ReactFlowProvider wrapper, vi.mock for Zustand store
**Key decisions:** Provider badges prepend node title, Gemini always enabled, fal.ai always available
Task 1: Add GenerateImageNode component tests
src/components/__tests__/GenerateImageNode.test.tsx
Create comprehensive tests for GenerateImageNode:
- Basic rendering with provider badge (Gemini default)
- Model selector dropdown for Gemini models (nano-banana, nano-banana-pro)
- Provider switching (Gemini, fal.ai, Replicate if configured)
- Browse button opening ModelSearchDialog
- Aspect ratio selector rendering (only for Gemini)
- Resolution selector rendering (only for nano-banana-pro)
- Output image display when data.outputImage exists
- Image history carousel navigation (if history exists)
- Loading state during generation
- Error state display
- Handle rendering (image and text inputs on left, image output on right)
- Run button triggering executeWorkflow
- Legacy data migration (model → selectedModel)
Mock useWorkflowStore for: updateNodeData, providerSettings, executeWorkflow, generationsPath.
Mock fetch for /api/models endpoint.
npm test -- --run src/components/__tests__/GenerateImageNode.test.tsx passes
GenerateImageNode tests cover provider selection, model browsing, generation states
Task 2: Add GenerateVideoNode component tests
src/components/__tests__/GenerateVideoNode.test.tsx
Create comprehensive tests for GenerateVideoNode:
- Basic rendering (similar structure to GenerateImageNode)
- Provider badge display (fal.ai or Replicate only - Gemini excluded)
- Model selector for video-capable models
- Browse button opening ModelSearchDialog with video capabilities
- Video output display when data.outputVideo exists
- Video history carousel navigation
- Loading state during generation
- Error state display
- Handle rendering (image and text inputs on left, video output on right)
- Run button triggering executeWorkflow
Key difference from GenerateImageNode: No Gemini provider option (Gemini doesn't support video).
Mock patterns same as GenerateImageNode tests.
npm test -- --run src/components/__tests__/GenerateVideoNode.test.tsx passes
GenerateVideoNode tests cover video-specific providers and output handling
Before declaring plan complete:
- [ ] `npm test -- --run` passes all tests
- [ ] `npm run build` succeeds without errors
- [ ] Provider selection logic tested for both components
- [ ] Gemini exclusion from video node verified
- All tasks completed
- All verification checks pass
- No TypeScript errors
- ~20-25 new tests for generation components