refactor: update VaultTools to pass adapters to utils

Updated VaultTools to use adapters for all utility method calls:
- SearchUtils.searchWaypoints() now receives vault adapter
- WaypointUtils.isFolderNote() now receives vault adapter
- LinkUtils.validateWikilinks() now receives vault and metadata adapters
- LinkUtils.resolveLink() now receives vault and metadata adapters
- LinkUtils.getBacklinks() now receives vault and metadata adapters

Removed App dependency from VaultTools constructor - now only requires
vault and metadata adapters. Updated factory and all test files accordingly.

All tests passing (336/336).
This commit is contained in:
2025-10-20 08:02:07 -04:00
parent 360f4269f2
commit 3360790149
5 changed files with 461 additions and 295 deletions

View File

@@ -1,24 +1,18 @@
import { VaultTools } from '../src/tools/vault-tools';
import { createMockVaultAdapter, createMockMetadataCacheAdapter, createMockTFolder, createMockTFile } from './__mocks__/adapters';
import { App, TFile, TFolder } from 'obsidian';
import { TFile, TFolder } from 'obsidian';
import { FileMetadata, DirectoryMetadata } from '../src/types/mcp-types';
describe('VaultTools - list_notes sorting', () => {
let vaultTools: VaultTools;
let mockVault: ReturnType<typeof createMockVaultAdapter>;
let mockMetadata: ReturnType<typeof createMockMetadataCacheAdapter>;
let mockApp: App;
beforeEach(() => {
mockVault = createMockVaultAdapter();
mockMetadata = createMockMetadataCacheAdapter();
mockApp = {
vault: {
getAllLoadedFiles: jest.fn(),
}
} as any;
vaultTools = new VaultTools(mockVault, mockMetadata, mockApp);
vaultTools = new VaultTools(mockVault, mockMetadata);
});
describe('Case-insensitive alphabetical sorting', () => {