/** * Vitest setup file for Vue component tests. * * Provides global mocks for: * - ECharts (avoid canvas rendering in jsdom) * - ResizeObserver (not available in jsdom) * - Vue Router (for components that use router-link) */ import { vi } from 'vitest'; // Mock ECharts to avoid canvas/WebGL errors in jsdom vi.mock('echarts/core', () => ({ use: vi.fn(), init: vi.fn(() => ({ setOption: vi.fn(), resize: vi.fn(), dispose: vi.fn(), on: vi.fn(), off: vi.fn(), getWidth: vi.fn(() => 800), getHeight: vi.fn(() => 400), })), })); vi.mock('echarts/charts', () => ({ BarChart: {}, LineChart: {}, PieChart: {}, RadarChart: {}, HeatmapChart: {}, CustomChart: {}, })); vi.mock('echarts/components', () => ({ GridComponent: {}, TooltipComponent: {}, LegendComponent: {}, TitleComponent: {}, DataZoomComponent: {}, ToolboxComponent: {}, VisualMapComponent: {}, CalendarComponent: {}, })); vi.mock('echarts/renderers', () => ({ CanvasRenderer: {}, })); // Mock ResizeObserver global.ResizeObserver = vi.fn().mockImplementation(() => ({ observe: vi.fn(), unobserve: vi.fn(), disconnect: vi.fn(), }));