import { vi, beforeAll, afterAll } from "vitest"; import "@testing-library/jest-dom/vitest"; // Mock Tauri core API vi.mock("@tauri-apps/api/core", () => ({ invoke: vi.fn(), })); // Mock Tauri event API vi.mock("@tauri-apps/api/event", () => ({ listen: vi.fn(() => Promise.resolve(() => {})), emit: vi.fn(() => Promise.resolve()), once: vi.fn(() => Promise.resolve(() => {})), })); // Mock Tauri dialog plugin vi.mock("@tauri-apps/plugin-dialog", () => ({ open: vi.fn(() => Promise.resolve(null)), save: vi.fn(() => Promise.resolve(null)), message: vi.fn(() => Promise.resolve()), ask: vi.fn(() => Promise.resolve(false)), confirm: vi.fn(() => Promise.resolve(false)), })); // Mock Tauri fs plugin vi.mock("@tauri-apps/plugin-fs", () => ({ readTextFile: vi.fn(() => Promise.resolve("")), writeTextFile: vi.fn(() => Promise.resolve()), readFile: vi.fn(() => Promise.resolve(new Uint8Array())), writeFile: vi.fn(() => Promise.resolve()), mkdir: vi.fn(() => Promise.resolve()), exists: vi.fn(() => Promise.resolve(false)), })); // Mock console.error to suppress React warnings const originalError = console.error; beforeAll(() => { console.error = (...args: unknown[]) => { if (typeof args[0] === "string" && args[0].includes("Warning:")) return; originalError(...args); }; }); afterAll(() => { console.error = originalError; });