import React from 'react'; jest.mock('./api', () => ({ api: { get: jest.fn(), post: jest.fn(() => Promise.resolve({ data: {} })), put: jest.fn(() => Promise.resolve({ data: {} })), patch: jest.fn(() => Promise.resolve({ data: {} })), delete: jest.fn(() => Promise.resolve({ data: {} })), interceptors: { request: { use: jest.fn() }, response: { use: jest.fn() } }, }, getApiErrorMessage: jest.fn((error: any, fallback?: string) => { if (typeof error?.response?.data === 'string' && error.response.data.trim()) return error.response.data; if (typeof error?.message === 'string' && error.message.trim()) return error.message; return fallback || 'Request failed.'; }), })); jest.mock('./components/GoogleAuthCard', () => () => null); beforeEach(() => { const { api } = require('./api'); api.get.mockImplementation((url: string) => { if (url === '/auth/config') { return Promise.resolve({ data: { requireAuth: false, googleEnabled: false, localEnabled: true, allowRegistration: false } }); } if (url === '/auth/me') { return Promise.resolve({ data: { roles: [], email: 'demo@example.com', userName: 'demo' } }); } if (url === '/jobapplications/reminders') { return Promise.resolve({ data: [] }); } if (url === '/companies') { return Promise.resolve({ data: [] }); } if (url === '/jobapplications') { return Promise.resolve({ data: { items: [], total: 0, page: 1, pageSize: 15 } }); } if (url === '/jobapplications/stats') { return Promise.resolve({ data: { total: 0, active: 0, deleted: 0, byStatus: {}, appliedLast30Days: 0, averageDaysSinceApplied: 0 } }); } if (url === '/jobapplications/analytics-overview') { return Promise.resolve({ data: { funnel: [], responseRateBySource: [], topCompanies: [], totalResponses: 0, totalActive: 0 } }); } if (url === '/jobapplications/analytics' || url === '/jobapplications/tags') { return Promise.resolve({ data: [] }); } if (url === '/jobapplications/tag-trends') { return Promise.resolve({ data: { months: [], series: [] } }); } return Promise.resolve({ data: [] }); }); });