--- phase: 17-component-tests plan: 11 type: execute --- Add tests for utility components: GlobalImageHistory, GroupsOverlay, and ModelParameters. Purpose: Test supporting UI components for history browsing, group visualization, and parameter editing. Output: Test files covering component rendering, data display, and interactions. ~/.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-10-SUMMARY.md # Key source files: @src/components/GlobalImageHistory.tsx @src/components/GroupsOverlay.tsx @src/components/nodes/ModelParameters.tsx **Tech stack available:** Vitest, React Testing Library, jsdom **Established patterns:** ReactFlowProvider wrapper, vi.mock for Zustand store Task 1: Add GlobalImageHistory component tests src/components/__tests__/GlobalImageHistory.test.tsx Create comprehensive tests for GlobalImageHistory: - Not rendered when closed/hidden - Rendered when opened (panel visible) - Toggle button to open/close - Image grid rendering with thumbnails - Empty state when no history - Image click selecting/previewing image - Delete image from history - Pagination or infinite scroll (if applicable) - Filter by type (image vs video) if applicable - Date grouping or sorting Mock useWorkflowStore for: imageHistory, loadImageHistory, deleteFromHistory. Mock fetch for /api/load-generation endpoint. npm test -- --run src/components/__tests__/GlobalImageHistory.test.tsx passes GlobalImageHistory tests cover rendering, navigation, and deletion Task 2: Add GroupsOverlay and ModelParameters tests src/components/__tests__/GroupsOverlay.test.tsx, src/components/__tests__/ModelParameters.test.tsx **Create GroupsOverlay.test.tsx:** - Renders group backgrounds for each group in groups object - Group color applied to background - Group position and size from group data - No rendering when no groups exist - Group selection highlighting - Z-index layering correct (below nodes) **Create ModelParameters.test.tsx:** - Basic rendering with parameter list - Different input types based on parameter schema: - Number input for numeric params - Text input for string params - Select for enum params - Checkbox for boolean params - Slider for range params (min/max) - Collapsed state (parameters hidden) - Expanded state (parameters visible) - Toggle collapse/expand - Parameter value change calls onParameterChange - Default values displayed - Parameter descriptions/tooltips Mock useWorkflowStore if needed. Pass props: parameters (schema), values, onChange, collapsed, onToggleCollapse. npm test -- --run src/components/__tests__/ passes utility component tests GroupsOverlay and ModelParameters have comprehensive test coverage Before declaring plan complete: - [ ] `npm test -- --run` passes all tests - [ ] `npm run build` succeeds without errors - [ ] Image history navigation tested - [ ] ModelParameters input types tested - All tasks completed - All verification checks pass - No TypeScript errors - ~15-20 new tests for utility components - Phase 17 complete: all 34 components have test coverage After completion, create `.planning/phases/17-component-tests/17-11-SUMMARY.md` with: - Total test count increase - Component coverage summary - Any patterns established - Ready for Phase 18 (API Route Tests)