aaronsb_obsidian-mcp-plugin/tests
Aaron Bockelie b5b1ebdfd2 fix(dataview): serialize Luxon dates and propagate Dataview-internal errors
Closes #115. Closes #123.

The Dataview API returns Luxon DateTime objects (which expose toISO(), not
toISOString()) for file.ctime/mtime, so listPages() and getPageMetadata()
crashed with "toISOString is not a function" the moment any real Dataview
result reached them. The existing tests passed only because the mocks used
native Date, which exposes toISOString().

The query path had a separate envelope bug: executeQuery() hard-coded
success: true whenever dataviewAPI.query() didn't throw, while Dataview
itself returns { successful: false, error: "..." } for malformed queries
without throwing. The formatter then read response.successful (undefined),
hit the failure branch, and rendered every result as " Query failed:
Unknown error" — even when the query had succeeded.

- Add toIsoOptional() that prefers Luxon's toISO() and falls back to
  Date.toISOString(); apply at every page.file.ctime/mtime serialization
  site and inside convertDataviewValue().
- Propagate result.successful and result.error from the inner Dataview
  response to the outer tool envelope.
- Add a dataview.query normalizer case in the formatter dispatcher that
  flattens result.{type,values,headers} to the top level and maps
  success → successful, matching the formatter's contract.
- Regression tests for both bugs, including a Luxon-shaped mock distinct
  from the existing Date-shaped one.
2026-05-15 15:00:11 -05:00
..
__mocks__ fix(vault): Recurse listFiles into subfolders (#154) 2026-05-15 13:16:45 -05:00
security feat: Implement comprehensive security architecture 2025-07-16 09:16:24 -05:00
validation test: Add comprehensive unit tests for input validation 2025-12-03 12:55:01 -06:00
dataview-integration.test.ts fix(dataview): serialize Luxon dates and propagate Dataview-internal errors 2026-05-15 15:00:11 -05:00
graph-search-traversal.test.ts fix: Fix test failures by properly mocking TFile class 2025-07-05 10:37:24 -05:00
list-files-recursive.test.ts fix(vault.list): Align paginated recursive sort with flat listFiles 2026-05-15 13:40:35 -05:00
mcp-server.test.ts fix: Mock fs module in tests to prevent certificate directory creation (v0.9.0a) 2025-08-12 10:52:39 -05:00
patch-operations.test.ts feat: Implement structured patch targeting for headings, blocks, and frontmatter 2025-07-06 22:47:02 -05:00
read-only-mode.test.ts refactor: Remove concurrent mode toggle, simplify connection setup (ADR-100) 2026-03-14 23:13:35 -05:00
recursive-copy.test.ts fix: Eliminate all eslint any-type violations for Obsidian plugin review 2026-02-03 21:51:55 -06:00
search-tag-operator.test.ts feat: add tests for searches with the tag operator 2025-08-16 15:46:55 +01:00
setup.ts feat: Add linting, testing, and development documentation 2025-06-27 11:18:36 -05:00