diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index ef4786ce..104152ee 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -225,7 +225,7 @@ Plans: - [x] 17-07: Menus & Notifications (ConnectionDropMenu, Toast, CostIndicator) - [x] 17-08: Core Modals (ModelSearchDialog, ProjectSetupModal, CostDialog) - [x] 17-09: Editor Modals (PromptEditorModal, SplitGridSettingsModal, AnnotationModal) -- [ ] 17-10: Quickstart (WelcomeModal, QuickstartInitialView, QuickstartTemplatesView, PromptWorkflowView, QuickstartBackButton) +- [x] 17-10: Quickstart (WelcomeModal, QuickstartInitialView, QuickstartTemplatesView, PromptWorkflowView, QuickstartBackButton) - [ ] 17-11: Utilities (GlobalImageHistory, GroupsOverlay, ModelParameters) #### Phase 18: API Route Tests @@ -297,7 +297,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 | 9/11 | In progress | - | +| 17. Component Tests | v1.2 | 10/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 f5ed45b9..2497538a 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 21 (Component Tests) -Plan: 9 of 11 in current phase +Plan: 10 of 11 in current phase Status: In progress -Last activity: 2026-01-13 - Completed 17-09-PLAN.md +Last activity: 2026-01-13 - Completed 17-10-PLAN.md -Progress: █████████░ 89% +Progress: █████████░ 90% ## Performance Metrics @@ -127,6 +127,6 @@ Recent decisions affecting current work: ## Session Continuity Last session: 2026-01-13 -Stopped at: Completed 17-09-PLAN.md +Stopped at: Completed 17-10-PLAN.md Resume file: None -Next action: Execute Phase 17 Plan 10 (run /gsd:execute-plan .planning/phases/17-component-tests/17-10-PLAN.md) +Next action: Execute Phase 17 Plan 11 (run /gsd:execute-plan .planning/phases/17-component-tests/17-11-PLAN.md) diff --git a/.planning/phases/17-component-tests/17-10-SUMMARY.md b/.planning/phases/17-component-tests/17-10-SUMMARY.md new file mode 100644 index 00000000..9e45af27 --- /dev/null +++ b/.planning/phases/17-component-tests/17-10-SUMMARY.md @@ -0,0 +1,85 @@ +--- +phase: 17-component-tests +plan: 10 +type: summary +status: completed +--- + +# Summary: Quickstart Component Tests + +## Outcome +Successfully added comprehensive test coverage for all quickstart components including WelcomeModal, QuickstartInitialView, QuickstartTemplatesView, PromptWorkflowView, and QuickstartBackButton. + +## Tasks Completed + +### Task 1: Add WelcomeModal and QuickstartInitialView tests +- Created WelcomeModal.test.tsx with 15 tests covering: + - Basic rendering with initial view + - Navigation to templates and prompt views + - View transitions and back navigation + - File loading for workflow JSON files + - Invalid file format and parsing error handling +- Created QuickstartInitialView.test.tsx with 14 tests covering: + - Rendering of all option buttons (Blank canvas, Load workflow, Templates, Prompt a workflow) + - Click handlers for each option + - External links (Discord, Twitter) + - Beta badge on prompt option + - Accessibility with button elements + +### Task 2: Add remaining quickstart component tests +- Created QuickstartTemplatesView.test.tsx with 20 tests covering: + - Rendering of preset templates + - Loading states during template selection + - API calls for template loading + - Community workflows fetching and display + - Error handling with dismiss functionality + - Back button disabled state during loading +- Created PromptWorkflowView.test.tsx with 23 tests covering: + - Textarea input and validation + - Generate button enable/disable based on input length + - Loading states during generation + - API calls for workflow generation + - Error handling for failed generation + - Back button disabled state during generation +- Created QuickstartBackButton.test.tsx with 11 tests covering: + - Basic rendering with back text and arrow icon + - Click behavior + - Disabled state styling and behavior + - Accessibility (focusable when not disabled) + +## Files Created + +| File | Tests | +|------|-------| +| `src/components/__tests__/WelcomeModal.test.tsx` | 15 | +| `src/components/__tests__/QuickstartInitialView.test.tsx` | 14 | +| `src/components/__tests__/QuickstartTemplatesView.test.tsx` | 20 | +| `src/components/__tests__/PromptWorkflowView.test.tsx` | 23 | +| `src/components/__tests__/QuickstartBackButton.test.tsx` | 11 | + +**Total new tests: 83** + +## Commits + +| Hash | Description | +|------|-------------| +| `731a983` | test(17-10): add WelcomeModal and QuickstartInitialView tests | +| `6ee07ed` | test(17-10): add remaining quickstart component tests | + +## Verification + +- [x] `npm test -- --run` passes all tests (913 total) +- [x] `npm run build` succeeds without errors +- [x] Template selection flow tested +- [x] Prompt-to-workflow generation flow tested + +## Deviations + +- Removed one test case from plan: "should show error when description is too short on submit" - The generate button is disabled when input is less than 3 characters, so the error path through handleGenerate cannot be triggered by clicking the disabled button. The validation is implicitly tested through the button disable state tests. + +## Notes + +- Used `vi.stubGlobal("FileReader")` pattern for mocking FileReader in file loading tests +- Mocked `getAllPresets` from templates module to provide consistent test data +- Mocked fetch for `/api/community-workflows`, `/api/quickstart`, and individual community workflow endpoints +- Some tests show React act() warnings in stderr but all tests pass - these are informational warnings about async state updates