import '@testing-library/jest-dom'; import { vi } from 'vitest'; // Mock URL.createObjectURL and URL.revokeObjectURL for jsdom URL.createObjectURL = vi.fn(() => 'blob:mock-url'); URL.revokeObjectURL = vi.fn(); // Always provide a working localStorage mock — jsdom/node may have a broken one // that causes `localStorage.getItem is not a function` in Vitest 4.x const _store: Record = {}; const mockStorage = { getItem: (key: string) => _store[key] ?? null, setItem: (key: string, value: string) => { _store[key] = String(value); }, removeItem: (key: string) => { delete _store[key]; }, clear: () => { Object.keys(_store).forEach(k => delete _store[k]); }, get length() { return Object.keys(_store).length; }, key: (i: number) => Object.keys(_store)[i] ?? null, }; Object.defineProperty(globalThis, 'localStorage', { value: mockStorage, writable: true, configurable: true }); Object.defineProperty(window, 'localStorage', { value: mockStorage, writable: true, configurable: true });