mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-01-12 15:22:55 +01:00
4.2 KiB
4.2 KiB
TASK-006 Checklist
Prerequisites
- Read README.md completely
- Understand the scope and success criteria
- Create branch:
git checkout -b fix/preview-font-loading - Verify build works:
npm run build:editor
Phase 1: Research & Investigation
- Locate where
localhost:8574development server is configured - Identify if it's webpack-dev-server, Electron static server, or custom
- Review
packages/noodl-editor/webpackconfigs/webpack.renderer.dev.js - Review
packages/noodl-editor/src/main/for Electron main process setup - Find where current project path is stored (likely
ProjectModel) - Test console to confirm 404 errors on font requests
- Document findings in NOTES.md
Phase 2: Architecture Planning
- Decide on implementation approach (A, B, or C from README)
- Map out where code changes are needed
- Identify if IPC communication is needed (renderer ↔ main)
- Plan security measures (path sanitization)
- Plan MIME type configuration for fonts
- Update NOTES.md with architectural decisions
Phase 3: Implementation - Dev Server Configuration
- Add middleware or protocol handler for project assets
- Implement path resolution (project directory + requested file)
- Add path sanitization (prevent directory traversal)
- Configure MIME types for fonts:
.ttf→font/ttf.otf→font/otf.woff→font/woff.woff2→font/woff2
- Handle project switching (update served directory)
- Add error handling for missing files
- Document changes in CHANGELOG.md
Phase 4: Testing - Basic Font Loading
- Create test project with custom
.ttffont - Add font via Assets panel
- Assign font to Text node
- Open preview
- Verify font loads without 404
- Verify font renders correctly
- Check console for errors
- Document test results in NOTES.md
Phase 5: Testing - Multiple Formats
- Test with
.otffont - Test with
.wofffont - Test with
.woff2font - Test project with multiple fonts simultaneously
- Verify all formats load correctly
- Document any format-specific issues in NOTES.md
Phase 6: Testing - Project Switching
- Create Project A with Font X
- Open Project A, verify Font X loads
- Close Project A
- Create Project B with Font Y
- Open Project B, verify Font Y loads (not Font X)
- Switch back to Project A, verify Font X still works
- Document results in NOTES.md
Phase 7: Testing - Edge Cases
- Test missing font file (reference exists but file deleted)
- Verify graceful fallback behavior
- Test with special characters in filename
- Test with deeply nested font paths
- Test security: attempt directory traversal attack (should fail)
- Document edge case results in NOTES.md
Phase 8: Testing - Other Assets
- Verify PNG images also load in preview
- Verify SVG images also load in preview
- Test any other asset types stored in project directory
- Document findings in NOTES.md
Phase 9: Regression Testing
- Build and deploy test project
- Verify fonts work in deployed version (shouldn't change)
- Test editor performance (no noticeable slowdown)
- Measure project load time (should be similar)
- Test on multiple platforms if possible:
- macOS
- Windows
- Linux
- Document regression test results in NOTES.md
Phase 10: Documentation
- Add code comments explaining asset serving mechanism
- Update any relevant README files
- Document project path → server path mapping
- Add JSDoc to any new functions
- Complete CHANGELOG.md with summary
Phase 11: Code Quality
- Remove any debug console.log statements
- Ensure TypeScript types are correct
- Run
npx tsc --noEmit(type check) - Run
npm run build:editor(ensure builds) - Self-review all changes
- Check for potential security issues
Phase 12: Completion
- Verify all success criteria from README.md are met
- Update CHANGELOG.md with final summary
- Commit changes with descriptive message
- Push branch:
git push origin fix/preview-font-loading - Create pull request
- Mark task as complete