7.2 KiB
ComponentsPanel Rename Testing Plan
Overview
This document outlines the testing plan to verify that the rename functionality works correctly after integrating the useEventListener hook from TASK-008.
Bug Being Fixed: Component/folder renames not updating in the UI despite successful backend operation.
Root Cause: EventDispatcher events weren't reaching React hooks due to closure incompatibility.
Solution: Integrated useEventListener hook which bridges EventDispatcher and React lifecycle.
Test Environment Setup
Prerequisites
# Ensure editor is built and running
npm run dev
Test Project Requirements
- Project with at least 3-5 components
- At least one folder with components inside
- Mix of root-level and nested components
Test Cases
1. Component Rename (Basic)
Objective: Verify component name updates in tree immediately after rename
Steps:
- Open the editor with a test project
- In Components panel, right-click a component
- Select "Rename" from context menu
- Enter a new name (e.g., "MyComponent" → "RenamedComponent")
- Press Enter or click outside to confirm
Expected Result:
- ✅ Component name updates immediately in the tree
- ✅ Component icon/status indicators remain correct
- ✅ No console errors
- ✅ Undo/redo works correctly
Actual Result:
- Pass / [ ] Fail
- Notes:
2. Component Rename (Double-Click)
Objective: Verify double-click rename flow works
Steps:
- Double-click a component name in the tree
- Enter a new name
- Press Enter to confirm
Expected Result:
- ✅ Rename input appears on double-click
- ✅ Name updates immediately after Enter
- ✅ UI remains responsive
Actual Result:
- Pass / [ ] Fail
- Notes:
3. Component Rename (Cancel)
Objective: Verify canceling rename doesn't cause issues
Steps:
- Start renaming a component
- Press Escape or click outside without changing name
- Start rename again and change name
- Press Escape to cancel
Expected Result:
- ✅ First cancel exits rename mode cleanly
- ✅ Second cancel discards changes
- ✅ Original name remains
- ✅ UI remains stable
Actual Result:
- Pass / [ ] Fail
- Notes:
4. Component Rename (Conflict Detection)
Objective: Verify duplicate name validation works
Steps:
- Start renaming "ComponentA"
- Try to rename it to "ComponentB" (which already exists)
- Press Enter
Expected Result:
- ✅ Error toast appears: "Component name already exists"
- ✅ Rename mode stays active (user can fix the name)
- ✅ Original name unchanged
- ✅ No console errors
Actual Result:
- Pass / [ ] Fail
- Notes:
5. Folder Rename (Basic)
Objective: Verify folder rename updates all child components
Steps:
- Create a folder with 2-3 components inside
- Right-click the folder
- Select "Rename"
- Enter new folder name (e.g., "OldFolder" → "NewFolder")
- Press Enter
Expected Result:
- ✅ Folder name updates immediately in tree
- ✅ All child component paths update (e.g., "OldFolder/Comp1" → "NewFolder/Comp1")
- ✅ Child components remain accessible
- ✅ Undo/redo works for entire folder rename
Actual Result:
- Pass / [ ] Fail
- Notes:
6. Nested Component Rename
Objective: Verify nested component paths update correctly
Steps:
- Rename a component inside a folder
- Verify path updates (e.g., "Folder/OldName" → "Folder/NewName")
- Verify parent folder still shows correctly
Expected Result:
- ✅ Nested component name updates
- ✅ Path shows correct folder
- ✅ Parent folder structure unchanged
- ✅ Component still opens correctly
Actual Result:
- Pass / [ ] Fail
- Notes:
7. Rapid Renames
Objective: Verify multiple rapid renames don't cause issues
Steps:
- Rename a component
- Immediately after, rename another component
- Rename a third component
- Verify all names updated correctly
Expected Result:
- ✅ All three renames succeed
- ✅ No race conditions or stale data
- ✅ UI updates consistently
- ✅ Undo/redo stack correct
Actual Result:
- Pass / [ ] Fail
- Notes:
8. Rename While Component Open
Objective: Verify rename works when component is currently being edited
Steps:
- Open a component in the node graph editor
- In Components panel, rename that component
- Verify editor tab/title updates
Expected Result:
- ✅ Component name updates in tree
- ✅ Editor tab title updates (if applicable)
- ✅ Component remains open and editable
- ✅ No editor state lost
Actual Result:
- Pass / [ ] Fail
- Notes:
9. Undo/Redo Rename
Objective: Verify undo/redo works correctly
Steps:
- Rename a component (e.g., "Comp1" → "Comp2")
- Press Cmd+Z (Mac) or Ctrl+Z (Windows) to undo
- Press Cmd+Shift+Z / Ctrl+Y to redo
Expected Result:
- ✅ Undo reverts name back to "Comp1"
- ✅ Tree updates immediately after undo
- ✅ Redo changes name to "Comp2"
- ✅ Tree updates immediately after redo
- ✅ Multiple undo/redo cycles work correctly
Actual Result:
- Pass / [ ] Fail
- Notes:
10. Special Characters in Names
Objective: Verify name validation handles special characters
Steps:
- Try renaming with special characters:
@#$%^&*() - Try renaming with spaces: "My Component Name"
- Try renaming with only spaces: " "
Expected Result:
- ✅ Invalid characters rejected with appropriate message
- ✅ Spaces may or may not be allowed (based on validation rules)
- ✅ Empty/whitespace-only names rejected
- ✅ Rename mode stays active for correction
Actual Result:
- Pass / [ ] Fail
- Notes:
Console Monitoring
While testing, monitor the browser console for:
Expected Logs (OK to see):
🚀 React ComponentsPanel RENDERED🔍 handleRenameConfirm CALLED✅ Calling performRename...✅ Rename successful - canceling rename mode
Problematic Logs (Investigate if seen):
- ❌ Any errors related to EventDispatcher
- ❌ "performRename failed"
- ❌ Warnings about stale closures
- ❌ React errors or warnings
- ❌ "forceRefresh is not a function" (should never appear)
Performance Check
Memory Leak Test
Steps:
- Perform 20-30 rapid renames
- Open browser DevTools → Performance/Memory tab
- Check for memory growth
Expected Result:
- ✅ No significant memory leaks
- ✅ Event listeners properly cleaned up
- ✅ UI remains responsive
Regression Checks
Verify these existing features still work:
- Creating new components
- Deleting components
- Duplicating components
- Drag & drop to move components
- Setting component as home
- Opening components in editor
- Folder expand/collapse
- Context menu on components
- Context menu on folders
Known Issues / Limitations
Document any known issues discovered during testing:
Test Results Summary
Date Tested: ___
Tester: ___
Overall Result: [ ] All Pass [ ] Some Failures [ ] Critical Issues
Critical Issues Found:
Minor Issues Found:
Recommendations:
Sign-Off
Ready for Production: [ ] Yes [ ] No [ ] With Reservations
Notes: