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.
4.8 KiB
4.8 KiB
| phase | plan | status |
|---|---|---|
| 17-component-tests | 9 | complete |
Summary: Editor Modal Component Tests
Completed Tasks
Task 1: Add PromptEditorModal component tests
Commit: 8b26f04
Created comprehensive tests for the PromptEditorModal component covering:
- Visibility tests (not rendered when closed, renders with title when open)
- Textarea functionality:
- Displays initial prompt value
- Updates on typing
- Updates when initialPrompt prop changes
- Submit button:
- Renders Submit button
- Calls onSubmit with updated prompt
- Calls onSubmit with unchanged prompt if no edits
- Cancel button:
- Renders Cancel button
- Closes without saving when no changes
- Shows confirmation dialog with unsaved changes
- Unsaved changes confirmation dialog:
- Shows Discard and Submit buttons
- Discard closes without saving
- Submit in dialog saves and closes
- Close button dismisses confirmation
- Clicking outside dismisses confirmation
- Escape key behavior:
- Closes modal without saving when no changes
- Shows confirmation dialog with unsaved changes
- Backdrop click behavior:
- Closes modal when no changes
- Shows confirmation with unsaved changes
- Does not close when clicking inside dialog
- Font size functionality:
- Renders font size dropdown with default 14px
- Loads saved font size from localStorage
- Updates font size on selection change
- Saves font size to localStorage
- Renders all font size options (10-24px)
- Applies font size to textarea
- Falls back to default for invalid localStorage values
Tests: 30
Task 2: Add SplitGridSettingsModal and AnnotationModal tests
Commit: 8e0bdc2
SplitGridSettingsModal.test.tsx:
- Visibility and title rendering
- Number of images selection:
- Renders target count options (4, 6, 8, 9, 10)
- Highlights selected target count
- Updates when option clicked
- Displays grid dimensions description
- Default prompt:
- Renders textarea
- Displays initial value
- Updates on typing
- Shows helper text about individual editing
- Generate settings:
- Model select with options
- Aspect ratio select
- Model selection changes
- Shows resolution and Google Search for nano-banana-pro
- Hides resolution and Google Search for nano-banana
- Aspect ratio updates
- Google Search checkbox toggle
- Cancel button closes modal
- Create button:
- Shows target count in button text
- Updates text when target count changes
- Creates nodes and edges on click
- Does not create if node not found
- Keyboard shortcuts (Escape closes)
- Grid preview rendering
- Initial values from node data
Tests: 25
AnnotationModal.test.tsx:
- Visibility tests (not rendered when closed, renders when open)
- Tool buttons:
- Renders all tools (Select, Rect, Circle, Arrow, Draw, Text)
- Calls setCurrentTool on click
- Highlights current tool
- Correct tool type for each button
- Undo/Redo buttons:
- Renders Undo and Redo
- Calls undo/redo on click
- Clear button:
- Renders Clear button
- Calls clearAnnotations on click
- Cancel and Done buttons:
- Renders Cancel and Done
- Cancel calls closeModal
- Done saves and closes
- Color picker:
- Renders color label
- Renders 8 color buttons
- Calls setToolOptions on color click
- Highlights selected color
- Stroke width:
- Renders Size label
- Renders 3 width options
- Calls setToolOptions on width click
- Fill toggle:
- Renders Fill button
- Toggles fill color
- Sets fill to null when already filled
- Zoom controls (percentage display, +/- buttons)
- Canvas element (Stage and Layer components)
- Keyboard shortcuts:
- Escape closes modal
- Ctrl+Z / Cmd+Z calls undo
- Ctrl+Shift+Z / Cmd+Shift+Z calls redo
- Delete/Backspace deletes selected shape
- No delete when no shape selected
- Modal layout structure (top bar, canvas, bottom bar)
Tests: 44
Files Created/Modified
/src/components/__tests__/PromptEditorModal.test.tsx(596 lines) - NEW/src/components/__tests__/SplitGridSettingsModal.test.tsx(353 lines) - NEW/src/components/__tests__/AnnotationModal.test.tsx(429 lines) - NEW
Verification Results
npm test -- --runpasses all tests (830 tests)npm run buildsucceeds without errors- PromptEditorModal save/cancel flow tested
- Modal tool buttons render correctly
Test Count
- New tests added: 99 (30 + 25 + 44)
- Total project tests: 830
Deviations
None. All tasks completed as planned.
Note: AnnotationModal tests mock Konva canvas internals since jsdom cannot render actual canvas elements. Tests focus on UI shell, tool buttons, and callbacks rather than drawing functionality.
Commit History
8b26f04- test(17-09): add PromptEditorModal component tests8e0bdc2- test(17-09): add SplitGridSettingsModal and AnnotationModal tests