import { vi } from "vitest"; const mockStorage: Record = {}; vi.stubGlobal("chrome", { runtime: { id: "test-extension-id", onInstalled: { addListener: vi.fn(), }, onMessage: { addListener: vi.fn(), }, sendMessage: vi.fn(), openOptionsPage: vi.fn(), }, storage: { sync: { get: vi.fn((keys: string | string[] | Record) => { if (typeof keys === "string") { return Promise.resolve({ [keys]: mockStorage[keys] ?? null }); } if (Array.isArray(keys)) { const result: Record = {}; for (const key of keys) result[key] = mockStorage[key] ?? null; return Promise.resolve(result); } return Promise.resolve({}); }), set: vi.fn((items: Record) => { Object.assign(mockStorage, items); return Promise.resolve(); }), }, local: { get: vi.fn(), set: vi.fn(), }, }, });