fix: failed tests

This commit is contained in:
Xiaohan-Tian
2026-05-09 17:12:21 -07:00
parent 894c3b116f
commit 4f4511edf4
2 changed files with 34 additions and 32 deletions
@@ -24,6 +24,23 @@ import { ConfigManager } from '../config/ConfigManager';
import { KGAudioInterface } from './KGAudioInterface';
import { MIDI_PITCH_BEND_CENTER, midiPitchBendToNormalized } from '../../util/midiUtil';
function createMockAudioBus() {
return {
resetLiveMidiPitchBend: vi.fn(),
setLiveMidiPitchBend: vi.fn(),
scheduleLiveMidiPitchBend: vi.fn(),
setLiveMidiExpression: vi.fn(),
scheduleLiveMidiExpression: vi.fn(),
setLiveMidiSustain: vi.fn(),
setAutomationVolume: vi.fn(),
setAutomationPan: vi.fn(),
scheduleAutomationPan: vi.fn(),
applyEffectiveVolume: vi.fn(),
getSolo: vi.fn().mockReturnValue(false),
shouldPlayWithSolo: vi.fn().mockReturnValue(true),
};
}
describe('KGAudioInterface preroll playback', () => {
beforeEach(() => {
vi.useFakeTimers();
@@ -125,14 +142,7 @@ describe('KGAudioInterface preroll playback', () => {
const track = createMockMidiTrack({ id: 1, regions: [region] });
const project = createMockProject({ tracks: [track] });
const audio = KGAudioInterface.instance();
const audioBus = {
resetLiveMidiPitchBend: vi.fn(),
setLiveMidiPitchBend: vi.fn(),
scheduleLiveMidiPitchBend: vi.fn(),
setLiveMidiExpression: vi.fn(),
setLiveMidiSustain: vi.fn(),
shouldPlayWithSolo: vi.fn().mockReturnValue(true),
};
const audioBus = createMockAudioBus();
;(audio as unknown as { trackAudioBuses: Map<string, unknown> }).trackAudioBuses.set('1', audioBus);
audio.preparePlayback(project, 0);
@@ -152,14 +162,7 @@ describe('KGAudioInterface preroll playback', () => {
const track = createMockMidiTrack({ id: 1, regions: [region] });
const project = createMockProject({ tracks: [track] });
const audio = KGAudioInterface.instance();
const audioBus = {
resetLiveMidiPitchBend: vi.fn(),
setLiveMidiPitchBend: vi.fn(),
scheduleLiveMidiPitchBend: vi.fn(),
setLiveMidiExpression: vi.fn(),
setLiveMidiSustain: vi.fn(),
shouldPlayWithSolo: vi.fn().mockReturnValue(true),
};
const audioBus = createMockAudioBus();
;(audio as unknown as { trackAudioBuses: Map<string, unknown> }).trackAudioBuses.set('1', audioBus);
audio.preparePlayback(project, 0);
@@ -178,14 +181,7 @@ describe('KGAudioInterface preroll playback', () => {
const track = createMockMidiTrack({ id: 1, regions: [region] });
const project = createMockProject({ tracks: [track] });
const audio = KGAudioInterface.instance();
const audioBus = {
resetLiveMidiPitchBend: vi.fn(),
setLiveMidiPitchBend: vi.fn(),
scheduleLiveMidiPitchBend: vi.fn(),
setLiveMidiExpression: vi.fn(),
setLiveMidiSustain: vi.fn(),
shouldPlayWithSolo: vi.fn().mockReturnValue(true),
};
const audioBus = createMockAudioBus();
;(audio as unknown as { trackAudioBuses: Map<string, unknown> }).trackAudioBuses.set('1', audioBus);
audio.preparePlayback(project, 2);
@@ -206,14 +202,7 @@ describe('KGAudioInterface preroll playback', () => {
project.setLoopingRange([1, 1]);
const audio = KGAudioInterface.instance();
const audioBus = {
resetLiveMidiPitchBend: vi.fn(),
setLiveMidiPitchBend: vi.fn(),
scheduleLiveMidiPitchBend: vi.fn(),
setLiveMidiExpression: vi.fn(),
setLiveMidiSustain: vi.fn(),
shouldPlayWithSolo: vi.fn().mockReturnValue(true),
};
const audioBus = createMockAudioBus();
;(audio as unknown as { trackAudioBuses: Map<string, unknown> }).trackAudioBuses.set('1', audioBus);
audio.preparePlayback(project, 5);
+13
View File
@@ -102,6 +102,18 @@ export const MockGain = vi.fn().mockImplementation((initialValue: number = 1) =>
dispose: vi.fn()
}));
// Mock Panner node
export const MockPanner = vi.fn().mockImplementation((initialValue: number = 0) => ({
pan: {
value: initialValue,
setValueAtTime: vi.fn(),
},
connect: vi.fn(),
disconnect: vi.fn(),
dispose: vi.fn(),
toDestination: vi.fn(),
}));
// Mock Meter
export const MockMeter = vi.fn().mockImplementation(() => ({
getValue: vi.fn().mockReturnValue(-Infinity),
@@ -120,6 +132,7 @@ export const ToneMock = {
Destination: MockDestination,
ToneAudioBuffer: MockToneAudioBuffer,
Gain: MockGain,
Panner: MockPanner,
Meter: MockMeter,
// Context management