// Test setup file import { beforeEach, vi } from 'vitest'; // Mock Web Audio API global.AudioContext = vi.fn().mockImplementation(() => ({ createOscillator: vi.fn().mockReturnValue({ connect: vi.fn(), frequency: { setValueAtTime: vi.fn(), exponentialRampToValueAtTime: vi.fn(), }, start: vi.fn(), stop: vi.fn(), }), createGain: vi.fn().mockReturnValue({ connect: vi.fn(), gain: { setValueAtTime: vi.fn(), exponentialRampToValueAtTime: vi.fn(), }, }), destination: {}, currentTime: 0, })); // Mock requestAnimationFrame global.requestAnimationFrame = vi.fn((callback) => setTimeout(callback, 16)); global.cancelAnimationFrame = vi.fn(clearTimeout); // Reset DOM before each test beforeEach(() => { document.body.innerHTML = ''; document.head.innerHTML = ''; });