|
|
|
|
|
|
|
|
|
|
|
import { afterEach, vi } from 'vitest'; |
|
|
import { cleanup } from '@testing-library/react'; |
|
|
import '@testing-library/jest-dom'; |
|
|
|
|
|
|
|
|
afterEach(() => { |
|
|
cleanup(); |
|
|
}); |
|
|
|
|
|
|
|
|
vi.mock('vexflow', () => { |
|
|
|
|
|
const Renderer = vi.fn(() => ({ |
|
|
resize: vi.fn(), |
|
|
getContext: vi.fn(() => ({ |
|
|
clear: vi.fn(), |
|
|
})), |
|
|
})); |
|
|
|
|
|
const Stave = vi.fn(() => ({ |
|
|
addClef: vi.fn().mockReturnThis(), |
|
|
addTimeSignature: vi.fn().mockReturnThis(), |
|
|
addKeySignature: vi.fn().mockReturnThis(), |
|
|
setContext: vi.fn().mockReturnThis(), |
|
|
draw: vi.fn(), |
|
|
getWidth: vi.fn(() => 200), |
|
|
})); |
|
|
|
|
|
const StaveNote = vi.fn(() => ({ |
|
|
addModifier: vi.fn(), |
|
|
})); |
|
|
|
|
|
const Voice = vi.fn(() => ({ |
|
|
addTickables: vi.fn(), |
|
|
setMode: vi.fn(), |
|
|
draw: vi.fn(), |
|
|
})); |
|
|
(Voice as any).Mode = { SOFT: 0 }; |
|
|
|
|
|
const Formatter = vi.fn(() => ({ |
|
|
joinVoices: vi.fn().mockReturnThis(), |
|
|
format: vi.fn(), |
|
|
})); |
|
|
|
|
|
const Accidental = vi.fn(); |
|
|
|
|
|
const StaveConnector = vi.fn(() => ({ |
|
|
setType: vi.fn().mockReturnThis(), |
|
|
setContext: vi.fn().mockReturnThis(), |
|
|
draw: vi.fn(), |
|
|
})); |
|
|
(StaveConnector as any).type = { BRACE: 'brace', SINGLE_LEFT: 'singleleft' }; |
|
|
|
|
|
return { |
|
|
Renderer, |
|
|
Stave, |
|
|
StaveNote, |
|
|
Voice, |
|
|
Formatter, |
|
|
Accidental, |
|
|
StaveConnector, |
|
|
}; |
|
|
}); |
|
|
|
|
|
|
|
|
vi.mock('tone', () => ({ |
|
|
Sampler: vi.fn(() => ({ |
|
|
toDestination: vi.fn().mockReturnThis(), |
|
|
triggerAttackRelease: vi.fn(), |
|
|
loaded: true, |
|
|
})), |
|
|
Transport: { |
|
|
start: vi.fn(), |
|
|
stop: vi.fn(), |
|
|
pause: vi.fn(), |
|
|
position: 0, |
|
|
bpm: { value: 120 }, |
|
|
}, |
|
|
context: { |
|
|
resume: vi.fn(), |
|
|
}, |
|
|
})); |
|
|
|
|
|
|
|
|
global.WebSocket = vi.fn(() => ({ |
|
|
send: vi.fn(), |
|
|
close: vi.fn(), |
|
|
addEventListener: vi.fn(), |
|
|
removeEventListener: vi.fn(), |
|
|
readyState: WebSocket.OPEN, |
|
|
})) as any; |
|
|
|
|
|
|
|
|
global.IntersectionObserver = vi.fn(() => ({ |
|
|
observe: vi.fn(), |
|
|
unobserve: vi.fn(), |
|
|
disconnect: vi.fn(), |
|
|
})) as any; |
|
|
|
|
|
|
|
|
global.ResizeObserver = vi.fn(() => ({ |
|
|
observe: vi.fn(), |
|
|
unobserve: vi.fn(), |
|
|
disconnect: vi.fn(), |
|
|
})) as any; |
|
|
|