// Test setup file // Configure jsdom and global test utilities import 'jest-environment-jsdom'; // Mock localStorage const localStorageMock = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), clear: jest.fn(), length: 0, key: jest.fn(), } as Storage; Object.defineProperty(window, 'localStorage', { value: localStorageMock, }); // Mock fetch global.fetch = jest.fn(); // Mock import.meta for Jest Object.defineProperty(globalThis, 'import', { value: { meta: { env: { NODE_ENV: 'test', VITE_COUCHDB_URL: 'http://localhost:5984', VITE_COUCHDB_USERNAME: 'admin', VITE_COUCHDB_PASSWORD: 'password', VITE_MAILGUN_API_KEY: 'test-key', VITE_MAILGUN_DOMAIN: 'test.mailgun.org', VITE_MAILGUN_BASE_URL: 'https://api.mailgun.net', VITE_MAILGUN_FROM_NAME: 'Test App', VITE_MAILGUN_FROM_EMAIL: 'test@example.com', }, }, }, }); // Setup console to avoid noise in tests const originalError = console.error; beforeAll(() => { console.error = (...args: unknown[]) => { if ( typeof args[0] === 'string' && args[0].includes('Warning: ReactDOM.render is deprecated') ) { return; } originalError.call(console, ...args); }; }); afterAll(() => { console.error = originalError; });