diff --git a/src/tools/vault-tools.ts b/src/tools/vault-tools.ts index bf93000..cce0067 100644 --- a/src/tools/vault-tools.ts +++ b/src/tools/vault-tools.ts @@ -342,7 +342,6 @@ export class VaultTools { } } catch (error) { // If frontmatter extraction fails, just return base metadata - console.error(`Failed to extract frontmatter for ${file.path}:`, error); } return baseMetadata; @@ -685,7 +684,6 @@ export class VaultTools { } } catch (error) { // Skip files that can't be read - console.error(`Failed to search file ${file.path}:`, error); } } diff --git a/src/utils/frontmatter-utils.ts b/src/utils/frontmatter-utils.ts index a78e882..a1cf135 100644 --- a/src/utils/frontmatter-utils.ts +++ b/src/utils/frontmatter-utils.ts @@ -64,7 +64,6 @@ export class FrontmatterUtils { parsedFrontmatter = parseYaml(frontmatter) || {}; } catch (error) { // If parsing fails, return null for parsed frontmatter - console.error('Failed to parse frontmatter:', error); parsedFrontmatter = null; } @@ -318,7 +317,6 @@ export class FrontmatterUtils { }; } catch (decompressError) { // Decompression failed - console.error('Failed to process compressed Excalidraw data:', decompressError); return { isExcalidraw: true, elementCount: 0, @@ -350,10 +348,8 @@ export class FrontmatterUtils { // If parsing fails, return with default values const isExcalidraw = content.includes('excalidraw-plugin') || content.includes('"type":"excalidraw"'); - - // Log error for debugging - console.error('Excalidraw parsing error:', error); - + + return { isExcalidraw: isExcalidraw, elementCount: isExcalidraw ? 0 : undefined, diff --git a/src/utils/search-utils.ts b/src/utils/search-utils.ts index 0fdbdb0..14e6051 100644 --- a/src/utils/search-utils.ts +++ b/src/utils/search-utils.ts @@ -116,7 +116,6 @@ export class SearchUtils { } } catch (error) { // Skip files that can't be read - console.error(`Failed to search file ${file.path}:`, error); } } @@ -325,7 +324,7 @@ export class SearchUtils { } } } catch (error) { - console.error(`Failed to search waypoints in ${file.path}:`, error); + // Skip files that can't be searched } } diff --git a/src/utils/waypoint-utils.ts b/src/utils/waypoint-utils.ts index 172714d..1cf1b29 100644 --- a/src/utils/waypoint-utils.ts +++ b/src/utils/waypoint-utils.ts @@ -102,7 +102,6 @@ export class WaypointUtils { hasWaypoint = this.hasWaypointMarker(content); } catch (error) { // If we can't read the file, we can't check for waypoints - console.error(`Failed to read file ${file.path}:`, error); } // Determine result diff --git a/tests/frontmatter-utils.test.ts b/tests/frontmatter-utils.test.ts index dc18231..c255fd8 100644 --- a/tests/frontmatter-utils.test.ts +++ b/tests/frontmatter-utils.test.ts @@ -158,8 +158,7 @@ describe('FrontmatterUtils', () => { describe('parse errors', () => { test('handles parseYaml throwing error', () => { const content = '---\ninvalid: yaml: content:\n---\nContent'; - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - mockParseYaml.mockImplementation(() => { + mockParseYaml.mockImplementation(() => { throw new Error('Invalid YAML'); }); @@ -169,13 +168,8 @@ describe('FrontmatterUtils', () => { expect(result.frontmatter).toBe('invalid: yaml: content:'); expect(result.parsedFrontmatter).toBe(null); expect(result.contentWithoutFrontmatter).toBe('Content'); - expect(consoleErrorSpy).toHaveBeenCalledWith( - 'Failed to parse frontmatter:', - expect.any(Error) - ); - consoleErrorSpy.mockRestore(); - }); + }); test('handles parseYaml returning null', () => { const content = '---\ntitle: Test\n---\nContent'; @@ -806,21 +800,15 @@ excalidraw-plugin`; \`\`\`compressed-json N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATL \`\`\``; - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - + const result = FrontmatterUtils.parseExcalidrawMetadata(content); expect(result.isExcalidraw).toBe(true); expect(result.elementCount).toBe(0); expect(result.hasCompressedData).toBe(true); expect(result.metadata).toEqual({ compressed: true }); - expect(consoleErrorSpy).toHaveBeenCalledWith( - 'Failed to process compressed Excalidraw data:', - expect.anything() - ); - consoleErrorSpy.mockRestore(); - global.atob = originalAtob; + global.atob = originalAtob; }); test('handles JSON parse error gracefully', () => { @@ -828,28 +816,21 @@ N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATL \`\`\`json {invalid json content} \`\`\``; - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - + const result = FrontmatterUtils.parseExcalidrawMetadata(content); expect(result.isExcalidraw).toBe(true); expect(result.elementCount).toBe(0); expect(result.hasCompressedData).toBe(false); expect(result.metadata).toEqual({}); - expect(consoleErrorSpy).toHaveBeenCalledWith( - 'Excalidraw parsing error:', - expect.any(Error) - ); - consoleErrorSpy.mockRestore(); - }); + }); test('handles error when no Excalidraw marker present', () => { const content = `\`\`\`json {invalid json} \`\`\``; - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - + const result = FrontmatterUtils.parseExcalidrawMetadata(content); expect(result.isExcalidraw).toBe(false); @@ -857,21 +838,18 @@ N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATL expect(result.hasCompressedData).toBeUndefined(); expect(result.metadata).toBeUndefined(); - consoleErrorSpy.mockRestore(); - }); + }); test('logs error but returns valid result structure', () => { const content = 'excalidraw-plugin with error causing content'; - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - + // Force an error by making content throw during processing const result = FrontmatterUtils.parseExcalidrawMetadata(content); // Should still return valid structure expect(result).toHaveProperty('isExcalidraw'); - consoleErrorSpy.mockRestore(); - }); + }); }); describe('edge cases', () => { diff --git a/tests/search-utils.test.ts b/tests/search-utils.test.ts index b1ff805..3f2513b 100644 --- a/tests/search-utils.test.ts +++ b/tests/search-utils.test.ts @@ -618,8 +618,7 @@ describe('SearchUtils', () => { .mockResolvedValueOnce('test content') }); - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - + const options: SearchOptions = { query: 'test' }; @@ -628,13 +627,8 @@ describe('SearchUtils', () => { expect(result.stats.filesSearched).toBe(3); expect(result.stats.filesWithMatches).toBe(2); // Only good files - expect(consoleErrorSpy).toHaveBeenCalledWith( - expect.stringContaining('Failed to search file bad.md'), - expect.any(Error) - ); - consoleErrorSpy.mockRestore(); - }); + }); }); describe('statistics', () => { @@ -1024,19 +1018,13 @@ Just some text .mockRejectedValueOnce(new Error('Read error')) }); - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - + const result = await SearchUtils.searchWaypoints(mockVault); expect(result).toHaveLength(1); expect(result[0].path).toBe('good.md'); - expect(consoleErrorSpy).toHaveBeenCalledWith( - expect.stringContaining('Failed to search waypoints in bad.md'), - expect.any(Error) - ); - consoleErrorSpy.mockRestore(); - }); + }); it('should continue searching after encountering errors', async () => { const mockVault = createMockVaultAdapter({ @@ -1055,16 +1043,14 @@ Just some text %% End Waypoint %%`) }); - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); - + const result = await SearchUtils.searchWaypoints(mockVault); expect(result).toHaveLength(2); expect(result[0].links).toEqual(['A']); expect(result[1].links).toEqual(['B']); - consoleErrorSpy.mockRestore(); - }); + }); }); }); }); diff --git a/tests/waypoint-utils.test.ts b/tests/waypoint-utils.test.ts index 4a30f68..ebce7ac 100644 --- a/tests/waypoint-utils.test.ts +++ b/tests/waypoint-utils.test.ts @@ -296,19 +296,13 @@ Content without end`; file.basename = 'Projects'; file.parent = folder; - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); (mockVault.read as jest.Mock).mockRejectedValue(new Error('Read failed')); const result = await WaypointUtils.isFolderNote(mockVault, file); expect(result.isFolderNote).toBe(true); expect(result.reason).toBe('basename_match'); - expect(consoleErrorSpy).toHaveBeenCalledWith( - expect.stringContaining('Failed to read file Projects/Projects.md'), - expect.any(Error) - ); - consoleErrorSpy.mockRestore(); }); test('handles file read error - waypoint cannot be detected', async () => { @@ -317,16 +311,13 @@ Content without end`; file.basename = 'Index'; file.parent = folder; - const consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation(); (mockVault.read as jest.Mock).mockRejectedValue(new Error('Read failed')); const result = await WaypointUtils.isFolderNote(mockVault, file); expect(result.isFolderNote).toBe(false); expect(result.reason).toBe('none'); - expect(consoleErrorSpy).toHaveBeenCalled(); - consoleErrorSpy.mockRestore(); }); test('handles unclosed waypoint as no waypoint', async () => {