Commit Graph

4 Commits

Author SHA1 Message Date
7f49eff6e8 test: add note-tools Excalidraw and frontmatter tests
Add test for read_excalidraw with includeCompressed option to cover
line 647. Add test for update_frontmatter on files without existing
frontmatter to cover line 771.

Coverage for note-tools.ts now at 100% line coverage (99.6% statement,
92.82% branch, 90.9% function).
2025-10-25 22:14:29 -04:00
5f36c22e48 test: add note-tools folder-not-file error tests
Add 5 tests for folder-not-file error cases:
- read_note when path is a folder (line 61-66 in source)
- rename_file when source path is a folder (line 377)
- rename_file when destination path is a folder (line 408)
- read_excalidraw when path is a folder (line 590)
- update_frontmatter when path is a folder (line 710)
- update_sections when path is a folder (line 836)

All tests verify error message uses ErrorMessages.notAFile()
Coverage for note-tools.ts increased to 98%
2025-10-25 22:14:29 -04:00
3082a6d23a test: add note-tools conflict resolution test
Add test case for conflict resolution loop in createNote when multiple
numbered file variants exist. Test verifies the loop correctly increments
counter (lines 238-239) by creating file 3.md when file.md, file 1.md,
and file 2.md already exist.

Coverage improvement: note-tools.ts 96.01% -> 96.81%
Lines 238-239 now covered.
2025-10-25 22:14:29 -04:00
2e30b81f01 test: comprehensive coverage for NoteTools
Add extensive test suite for note-tools.ts covering all major operations
and error paths. Improves statement coverage from 13.94% to 96.01%.

Tests added:
- readNote: success, errors, frontmatter parsing
- createNote: success, conflict strategies (error/overwrite/rename), parent folder creation
- updateNote: success, errors, waypoint protection
- deleteNote: soft/permanent delete, dry run, version checking
- renameFile: success, errors, version checking, parent folder creation
- readExcalidraw: success, non-Excalidraw files, errors
- updateFrontmatter: success, field removal, version checking
- updateSections: success, invalid ranges, version checking
- Path validation for all methods
- Empty path validation for all methods

Mock enhancements:
- Added modify, delete, trash methods to VaultAdapter mock
- Added parseYaml function to Obsidian mock for frontmatter testing

Coverage improvements for note-tools.ts:
- Statements: 13.94% -> 96.01% (+82.07%)
- Branches: 5.1% -> 88.44% (+83.34%)
- Functions: 27.27% -> 90.9% (+63.63%)
- Lines: 13.94% -> 96.4% (+82.46%)
2025-10-20 00:13:03 -04:00