35 lines
837 B
JavaScript
35 lines
837 B
JavaScript
|
|
// 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 = '';
|
||
|
|
});
|