diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 4e8fdf8c..3032724b 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -221,7 +221,7 @@ Plans: - [x] 17-03: Generate Nodes (GenerateImageNode, GenerateVideoNode) - [x] 17-04: Processing Nodes (LLMGenerateNode, AnnotationNode) - [x] 17-05: Toolbars (Header, FloatingActionBar, MultiSelectToolbar) -- [ ] 17-06: Canvas & Edges (WorkflowCanvas, EditableEdge, ReferenceEdge, EdgeToolbar) +- [x] 17-06: Canvas & Edges (WorkflowCanvas, EditableEdge, ReferenceEdge, EdgeToolbar) - [ ] 17-07: Menus & Notifications (ConnectionDropMenu, Toast, CostIndicator) - [ ] 17-08: Core Modals (ModelSearchDialog, ProjectSetupModal, CostDialog) - [ ] 17-09: Editor Modals (PromptEditorModal, SplitGridSettingsModal, AnnotationModal) @@ -281,7 +281,7 @@ Phases execute in numeric order: 1 → 2 → ... → 14 → 15 → 16 → 17 → | 14. Fix Drag-Connect Node Creation Bugs | v1.1 | 1/1 | Complete | 2026-01-12 | | 15. Test Infrastructure | v1.2 | 1/1 | Complete | 2026-01-12 | | 16. Store Modularization | v1.2 | 1/1 | Complete | 2026-01-12 | -| 17. Component Tests | v1.2 | 5/11 | In progress | - | +| 17. Component Tests | v1.2 | 6/11 | In progress | - | | 18. API Route Tests | v1.2 | 0/? | Not started | - | | 19. Type Refactoring | v1.2 | 0/? | Not started | - | | 20. Integration Tests | v1.2 | 0/? | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md index e4d17dad..274ccb66 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -10,11 +10,11 @@ See: .planning/PROJECT.md (updated 2026-01-09) ## Current Position Phase: 17 of 20 (Component Tests) -Plan: 5 of 11 in current phase +Plan: 6 of 11 in current phase Status: In progress -Last activity: 2026-01-13 - Completed 17-05-PLAN.md +Last activity: 2026-01-13 - Completed 17-06-PLAN.md -Progress: █████████░ 85% +Progress: █████████░ 86% ## Performance Metrics @@ -126,6 +126,6 @@ Recent decisions affecting current work: ## Session Continuity Last session: 2026-01-13 -Stopped at: Completed 17-05-PLAN.md +Stopped at: Completed 17-06-PLAN.md Resume file: None -Next action: Execute Phase 17 Plan 06 (run /gsd:execute-plan .planning/phases/17-component-tests/17-06-PLAN.md) +Next action: Execute Phase 17 Plan 07 (run /gsd:execute-plan .planning/phases/17-component-tests/17-07-PLAN.md) diff --git a/.planning/phases/17-component-tests/17-06-SUMMARY.md b/.planning/phases/17-component-tests/17-06-SUMMARY.md new file mode 100644 index 00000000..501e16c5 --- /dev/null +++ b/.planning/phases/17-component-tests/17-06-SUMMARY.md @@ -0,0 +1,95 @@ +--- +phase: 17-component-tests +plan: 06 +status: complete +--- + +# Summary: Canvas and Edge Component Tests + +## Completed Tasks + +### Task 1: Add WorkflowCanvas component tests +**Commit:** `99ef3b3` + +Created comprehensive tests for the WorkflowCanvas component covering: +- Basic rendering (ReactFlow, Background, Controls, MiniMap) +- Welcome modal visibility based on canvas state and showQuickstart flag +- Node and edge type registration +- Drag and drop for nodes, images, and workflows + - Drop overlay visibility for different drag types + - Node creation on drop +- Keyboard shortcuts + - Ctrl/Cmd+Enter for workflow execution + - Ctrl/Cmd+C for copy + - Shift+key for node creation (P, I, G, L, A) +- Canvas configuration (zoom constraints, delete keys, multi-selection) +- Group handling support +- Default edge type configuration + +**Tests:** 31 + +Also updated test setup: +- Added ResizeObserver mock for React Flow compatibility +- Added DOMMatrixReadOnly mock for React Flow transforms + +### Task 2: Add edge component tests +**Commit:** `049faac` + +**EditableEdge.test.tsx:** +- Basic rendering with path and interaction layer +- Smooth step path for angular mode, bezier for curved mode +- Edge colors based on handle type (green for image, blue for prompt) +- Orange color when edge is paused +- Pause indicator visibility and rendering +- Draggable handles when selected in angular mode +- Selection state opacity (brighter when connected to selected node) +- Loading animation when target node is loading + +**Tests:** 17 + +**ReferenceEdge.test.tsx:** +- Basic rendering with dashed stroke pattern +- Always uses bezier (curved) path style +- Gray color gradient +- No interactive elements (read-only - no handles, no pause indicator) +- Selection state opacity +- Connection highlighting for source and target nodes + +**Tests:** 13 + +**EdgeToolbar.test.tsx:** +- Visibility based on edge selection and click position +- Pause toggle button with correct icons (pause/play) +- Delete button functionality +- Toolbar positioning above click position +- Toolbar horizontal centering +- Click position reset on edge deselection +- Button styling based on pause state (amber when paused) + +**Tests:** 13 + +## Files Created/Modified +- `/src/components/__tests__/WorkflowCanvas.test.tsx` (644 lines) - NEW +- `/src/components/__tests__/EditableEdge.test.tsx` (329 lines) - NEW +- `/src/components/__tests__/ReferenceEdge.test.tsx` (225 lines) - NEW +- `/src/components/__tests__/EdgeToolbar.test.tsx` (309 lines) - NEW +- `/src/test/setup.ts` - MODIFIED (added ResizeObserver and DOMMatrixReadOnly mocks) + +## Verification Results +- [x] `npm test -- --run` passes all tests (574 tests) +- [x] `npm run build` succeeds without errors +- [x] Connection validation logic tested (via canvas configuration tests) +- [x] Edge pause toggle tested + +## Test Count +- New tests added: 74 (31 + 17 + 13 + 13) +- Total project tests: 574 + +## Deviations +1. **WorkflowCanvas node rendering tests simplified**: The original plan called for testing that all 8 node types render correctly. However, rendering actual nodes requires extensive store mocking (providerSettings, etc.) that made tests fragile and complex. Instead, tests verify that node types are registered and the canvas can render. + +2. **Connection validation tested at configuration level**: Instead of testing actual connections being made, tests verify the canvas is configured with the isValidConnection callback. The actual validation logic is internal to the component. + +## Commit History +1. `99ef3b3` - test(17-06): add WorkflowCanvas component tests +2. `049faac` - test(17-06): add edge component tests