Summary
MarkdownEditorComponent has a spec.md (added in #68) but no unit test file. The component wraps CodeMirror 6 with non-trivial lifecycle management including a suppressUpdate feedback-loop prevention mechanism that should be verified.
Recommended test cases
| Scenario |
Description |
| Initial render |
Component creates, CodeMirror EditorView is instantiated |
| Content change emission |
User typing emits contentChange with full document text |
| External content sync |
Changing the content input dispatches a transaction to update the editor |
| Identical content no-op |
Setting same content value does not dispatch a transaction |
| Suppress flag |
After user edit, the next effect run skips dispatch (prevents feedback loop) |
| Destroy cleanup |
ngOnDestroy calls view.destroy() |
Notes
- CodeMirror requires a DOM host element; tests will need careful setup with jsdom
- May need to spy on
EditorView constructor and dispatch method
- Consider whether
fake-indexeddb (already in devDependencies) is relevant here
Files
- Source:
src/app/components/markdown-editor/markdown-editor.ts
- Spec:
specs/components/markdown-editor.spec.md
- Test (to create):
src/app/components/markdown-editor/markdown-editor.spec.ts