![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/local/lib/node_modules/mediasoup/test/ |
Upload File : |
const { toBeType } = require('jest-tobetype'); const mediasoup = require('../'); const { createWorker } = mediasoup; expect.extend({ toBeType }); let worker; let router; let audioLevelObserver; const mediaCodecs = [ { kind : 'audio', mimeType : 'audio/opus', clockRate : 48000, channels : 2, parameters : { useinbandfec : 1, foo : 'bar' } } ]; beforeAll(async () => { worker = await createWorker(); router = await worker.createRouter({ mediaCodecs }); }); afterAll(() => worker.close()); test('router.createAudioLevelObserver() succeeds', async () => { const onObserverNewRtpObserver = jest.fn(); router.observer.once('newrtpobserver', onObserverNewRtpObserver); audioLevelObserver = await router.createAudioLevelObserver(); expect(onObserverNewRtpObserver).toHaveBeenCalledTimes(1); expect(onObserverNewRtpObserver).toHaveBeenCalledWith(audioLevelObserver); expect(audioLevelObserver.id).toBeType('string'); expect(audioLevelObserver.closed).toBe(false); expect(audioLevelObserver.paused).toBe(false); expect(audioLevelObserver.appData).toEqual({}); await expect(router.dump()) .resolves .toMatchObject( { rtpObserverIds : [ audioLevelObserver.id ] }); }, 2000); test('router.createAudioLevelObserver() with wrong arguments rejects with TypeError', async () => { await expect(router.createAudioLevelObserver({ maxEntries: 0 })) .rejects .toThrow(TypeError); await expect(router.createAudioLevelObserver({ maxEntries: -10 })) .rejects .toThrow(TypeError); await expect(router.createAudioLevelObserver({ threshold: 'foo' })) .rejects .toThrow(TypeError); await expect(router.createAudioLevelObserver({ interval: false })) .rejects .toThrow(TypeError); await expect(router.createAudioLevelObserver({ appData: 'NOT-AN-OBJECT' })) .rejects .toThrow(TypeError); }, 2000); test('audioLevelObserver.pause() and resume() succeed', async () => { await audioLevelObserver.pause(); expect(audioLevelObserver.paused).toBe(true); await audioLevelObserver.resume(); expect(audioLevelObserver.paused).toBe(false); }, 2000); test('audioLevelObserver.close() succeeds', async () => { // We need different a AudioLevelObserver instance here. const audioLevelObserver2 = await router.createAudioLevelObserver({ maxEntries: 8 }); let dump = await router.dump(); expect(dump.rtpObserverIds.length).toBe(2); audioLevelObserver2.close(); expect(audioLevelObserver2.closed).toBe(true); dump = await router.dump(); expect(dump.rtpObserverIds.length).toBe(1); }, 2000); test('AudioLevelObserver emits "routerclose" if Router is closed', async () => { // We need different Router and AudioLevelObserver instances here. const router2 = await worker.createRouter({ mediaCodecs }); const audioLevelObserver2 = await router2.createAudioLevelObserver(); await new Promise((resolve) => { audioLevelObserver2.on('routerclose', resolve); router2.close(); }); expect(audioLevelObserver2.closed).toBe(true); }, 2000); test('AudioLevelObserver emits "routerclose" if Worker is closed', async () => { await new Promise((resolve) => { audioLevelObserver.on('routerclose', resolve); worker.close(); }); expect(audioLevelObserver.closed).toBe(true); }, 2000);