Files
KGStudio/src/test/mocks/audio-interface.ts
T
2025-12-08 17:56:58 -08:00

40 lines
1.4 KiB
TypeScript

/**
* Mock implementation of KGAudioInterface for integration tests
* Provides interface compatibility while avoiding actual audio operations
*/
import { vi } from 'vitest'
export const mockAudioInterface = {
// Audio context management
startAudioContext: vi.fn().mockResolvedValue(true),
isAudioContextStarted: vi.fn().mockReturnValue(true),
// Track management
createTrackBus: vi.fn().mockResolvedValue(undefined),
setTrackInstrument: vi.fn().mockResolvedValue(undefined),
setTrackVolume: vi.fn().mockReturnValue(undefined),
setTrackMuted: vi.fn().mockReturnValue(undefined),
setTrackSoloed: vi.fn().mockReturnValue(undefined),
removeTrackBus: vi.fn().mockReturnValue(undefined),
// Playback control
startPlayback: vi.fn().mockReturnValue(undefined),
stopPlayback: vi.fn().mockReturnValue(undefined),
pausePlayback: vi.fn().mockReturnValue(undefined),
setPlaybackPosition: vi.fn().mockReturnValue(undefined),
// Note scheduling
scheduleNote: vi.fn().mockReturnValue(undefined),
scheduleNotes: vi.fn().mockReturnValue(undefined),
clearScheduledNotes: vi.fn().mockReturnValue(undefined),
// Transport
getCurrentBeat: vi.fn().mockReturnValue(0),
setBpm: vi.fn().mockReturnValue(undefined),
// Singleton pattern
getInstance: vi.fn().mockReturnThis(),
}
// Mock the class constructor
export const mockKGAudioInterfaceClass = vi.fn(() => mockAudioInterface)