Browse Source
Tasks completed: 2/2 - Add ModelSearchDialog component tests (31 tests) - Add ProjectSetupModal and CostDialog tests (57 tests) SUMMARY: .planning/phases/17-component-tests/17-08-SUMMARY.mdhandoff-20260429-1057
3 changed files with 133 additions and 10 deletions
@ -0,0 +1,105 @@ |
|||
--- |
|||
phase: 17-component-tests |
|||
plan: 08 |
|||
status: complete |
|||
--- |
|||
|
|||
# Summary: Core Modal Component Tests |
|||
|
|||
## Completed Tasks |
|||
|
|||
### Task 1: Add ModelSearchDialog component tests |
|||
**Commit:** `2cac199` |
|||
|
|||
Created comprehensive tests for the ModelSearchDialog component covering: |
|||
- Visibility tests (not rendered when closed, renders when open, modal count registration) |
|||
- Search functionality (search input rendering, debounced search, auto-focus) |
|||
- Provider filter (dropdown, API filtering by provider, initialProvider prop) |
|||
- Capability filter (dropdown, image vs video filtering, initialCapabilityFilter prop) |
|||
- Model card rendering (name, description, provider badges, capability badges, model count) |
|||
- Model selection behavior: |
|||
- Callback mode calls onModelSelected |
|||
- Create node mode calls addNode with correct node type |
|||
- Video models create generateVideo nodes |
|||
- Close behavior (close button, Escape key, backdrop click, click inside doesn't close) |
|||
- Loading state (spinner, loading text) |
|||
- Error state (error message, Try Again button, refetch on retry) |
|||
- Empty state (no models message) |
|||
- API headers (includes provider API keys) |
|||
|
|||
**Tests:** 31 |
|||
|
|||
### Task 2: Add ProjectSetupModal and CostDialog tests |
|||
**Commit:** `c5c2171` |
|||
|
|||
**ProjectSetupModal.test.tsx:** |
|||
- Visibility tests (not rendered when closed, renders with correct title for mode) |
|||
- Tab navigation (Project/Providers tabs, starts on Project tab) |
|||
- New Project mode (empty form, Create button) |
|||
- Settings mode (pre-filled form, Save button) |
|||
- Form validation: |
|||
- Project name required error |
|||
- Project directory required error |
|||
- Directory does not exist error |
|||
- Path is not a directory error |
|||
- Save behavior: |
|||
- Calls onSave with project details when valid |
|||
- Shows "Validating..." during directory validation |
|||
- Updates external storage setting |
|||
- Browse button functionality: |
|||
- Calls browse-directory API |
|||
- Updates directory input on selection |
|||
- Shows "..." while browsing |
|||
- Handles cancelled dialog |
|||
- Keyboard shortcuts (Escape closes, Enter submits) |
|||
- Providers tab: |
|||
- Renders all provider sections (Gemini, OpenAI, Replicate, fal.ai) |
|||
- Shows API key inputs with placeholders |
|||
- Shows "Configured via .env" for env-configured providers |
|||
- Shows Override button for env-configured providers |
|||
- Toggle Show/Hide for API key visibility |
|||
- Save closes modal |
|||
|
|||
**Tests:** 33 |
|||
|
|||
**CostDialog.test.tsx:** |
|||
- Basic rendering (title, close button, sections) |
|||
- Predicted Cost and Incurred Cost sections |
|||
- Pricing Reference section |
|||
- Cost display formatting ($0.00, formatted values) |
|||
- Per-model cost breakdown rows |
|||
- Resolution display for Nano Banana Pro |
|||
- Subtotal display for each model type |
|||
- Empty state (no generation nodes message) |
|||
- Reset costs button: |
|||
- Not shown when incurredCost is 0 |
|||
- Shown when incurredCost > 0 |
|||
- Shows confirmation dialog |
|||
- Calls resetIncurredCost when confirmed |
|||
- Doesn't call when cancelled |
|||
- Close behavior (button click, Escape key) |
|||
- Pricing reference display (all tiers, currency note) |
|||
|
|||
**Tests:** 24 |
|||
|
|||
## Files Created/Modified |
|||
- `/src/components/__tests__/ModelSearchDialog.test.tsx` (704 lines) - NEW |
|||
- `/src/components/__tests__/ProjectSetupModal.test.tsx` (929 lines) - NEW |
|||
- `/src/components/__tests__/CostDialog.test.tsx` (347 lines) - NEW |
|||
|
|||
## Verification Results |
|||
- [x] `npm test -- --run` passes all tests (731 tests) |
|||
- [x] `npm run build` succeeds without errors |
|||
- [x] ModelSearchDialog search and filter logic tested |
|||
- [x] ProjectSetupModal form validation tested |
|||
|
|||
## Test Count |
|||
- New tests added: 88 (31 + 33 + 24) |
|||
- Total project tests: 731 |
|||
|
|||
## Deviations |
|||
None. All tasks completed as planned. |
|||
|
|||
## Commit History |
|||
1. `2cac199` - test(17-08): add ModelSearchDialog component tests |
|||
2. `c5c2171` - test(17-08): add ProjectSetupModal and CostDialog tests |
|||
Loading…
Reference in new issue