From 3fdb8a0924870efe734036976f56f4b9e5d7ed66 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 4 Sep 2026 07:03:44 +0000 Subject: [PATCH] test: add loadExtensionScripts unit tests Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com> --- src/storage.test.ts | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/storage.test.ts b/src/storage.test.ts index fe20c03..abaef4f 100644 --- a/src/storage.test.ts +++ b/src/storage.test.ts @@ -1,6 +1,6 @@ import { logger } from "./logger"; import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'; -import { isTauri, loadSettings, saveSettings, defaultSettingsData, loadAppData, saveAppData, flushAppData, setDataDir, runBackups, backupDeletedSheet, openBackupsFolder, chooseFolder, dataDirHasDocuments, migrateDataDir, fetchRates, fetchHistoricalRates } from './storage'; +import { isTauri, loadSettings, saveSettings, defaultSettingsData, loadAppData, saveAppData, flushAppData, setDataDir, runBackups, backupDeletedSheet, openBackupsFolder, chooseFolder, dataDirHasDocuments, migrateDataDir, fetchRates, fetchHistoricalRates, loadExtensionScripts } from './storage'; import { invoke } from '@tauri-apps/api/core'; vi.mock('@tauri-apps/api/core', () => ({ @@ -416,4 +416,35 @@ describe('storage', () => { expect(result).toBeNull(); }); }); + + describe('loadExtensionScripts', () => { + afterEach(() => { + vi.unstubAllGlobals(); + }); + + it('returns empty array when not in Tauri', async () => { + const result = await loadExtensionScripts(); + expect(result).toEqual([]); + expect(invoke).not.toHaveBeenCalled(); + }); + + it('uses invoke when in Tauri', async () => { + vi.stubGlobal('window', { __TAURI_INTERNALS__: {} }); + const mockExtensions = [{ name: 'test.js', code: 'console.log("test")' }]; + vi.mocked(invoke).mockResolvedValue(mockExtensions); + + const result = await loadExtensionScripts(); + expect(invoke).toHaveBeenCalledWith('load_extensions', undefined); + expect(result).toEqual(mockExtensions); + }); + + it('returns empty array if invoke fails', async () => { + vi.stubGlobal('window', { __TAURI_INTERNALS__: {} }); + vi.mocked(invoke).mockRejectedValue(new Error('invoke error')); + + const result = await loadExtensionScripts(); + expect(logger.warn).toHaveBeenCalledWith('loadExtensions failed', expect.any(Error)); + expect(result).toEqual([]); + }); + }); });