import '@testing-library/jest-dom/vitest'; // jsdom не умеет играть звук: play/pause только переключают флаг и шлют события, как браузер. Object.defineProperty(HTMLMediaElement.prototype, 'play', { configurable: true, value(this: HTMLMediaElement) { Object.defineProperty(this, 'paused', { configurable: true, value: false }); this.dispatchEvent(new Event('playing')); return Promise.resolve(); }, }); Object.defineProperty(HTMLMediaElement.prototype, 'pause', { configurable: true, value(this: HTMLMediaElement) { Object.defineProperty(this, 'paused', { configurable: true, value: true }); this.dispatchEvent(new Event('pause')); }, }); Object.defineProperty(HTMLMediaElement.prototype, 'load', { configurable: true, value() {} }); // Canvas в jsdom нет: кнопка волны без контекста просто не рисует (как в старых браузерах). Object.defineProperty(HTMLCanvasElement.prototype, 'getContext', { configurable: true, value: () => null });