You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.0 KiB
3.0 KiB
| phase | plan | status |
|---|---|---|
| 17-component-tests | 7 | complete |
Summary: Menu and Notification Component Tests
Completed Tasks
Task 1: Add ConnectionDropMenu component tests
Commit: 109cd3f
Created comprehensive tests for the ConnectionDropMenu component covering:
- Basic rendering (position, header with handle type, keyboard shortcuts hint)
- Not rendering when handleType is null
- Node type filtering for source connections:
- Image output shows: Annotate, Generate Image, Generate Video, Split Grid Node, Split Grid Now, Output
- Text output shows: Generate Image, Generate Video, LLM Generate
- Video output shows: Generate Video, Output
- Node type filtering for target connections:
- Image input shows: Image Input, Annotate, Generate Image
- Text input shows: Prompt, LLM Generate
- Video input shows: Generate Video
- Menu item click behavior (onSelect with type and isAction flag)
- Escape key closing menu
- Click outside closing menu
- Keyboard navigation (ArrowUp, ArrowDown, Enter, wrap-around)
- Mouse hover highlighting
Tests: 22
Task 2: Add Toast and CostIndicator tests
Commit: 6c7e141
Toast.test.tsx:
- Basic rendering (not rendered when null, renders with message, close button)
- Type styling (info, success, warning, error with appropriate bg colors)
- Type icons displayed for each type
- Close button click calls hide()
- Auto-hide after 4 seconds when not persistent
- Persistent toast stays visible (no auto-hide)
- Details section collapsed by default
- "Show details" button expands details
- "Hide details" button collapses details
- Details reset when message changes
- useToast store tests (show sets message/type/persistent/details, hide clears state)
Tests: 31
CostIndicator.test.tsx:
- Not rendered when no nodes and incurredCost is 0
- Renders when generation nodes exist
- Renders when incurredCost > 0
- Zero cost display ($0.00)
- Non-zero cost formatted correctly (nano-banana, nano-banana-pro, 4K resolution)
- Sum costs for multiple generation nodes
- Click opens CostDialog
- Close button closes CostDialog
- Passes correct predictedCost and incurredCost to CostDialog
- Cost updates when nodes change
- SplitGrid configured nodes included in cost calculation
- Unconfigured SplitGrid nodes not included
Tests: 16
Files Created/Modified
/src/components/__tests__/ConnectionDropMenu.test.tsx(253 lines) - NEW (previously existed but uncommitted)/src/components/__tests__/Toast.test.tsx(293 lines) - NEW/src/components/__tests__/CostIndicator.test.tsx(320 lines) - NEW
Verification Results
npm test -- --runpasses all tests (643 tests)npm run buildsucceeds without errors- ConnectionDropMenu node filtering logic tested
- Toast auto-hide and persistent modes tested
Test Count
- New tests added: 69 (22 + 31 + 16)
- Total project tests: 643
Deviations
None. All tasks completed as planned.
Commit History
109cd3f- test(17-07): add ConnectionDropMenu component tests6c7e141- test(17-07): add Toast and CostIndicator component tests