/
stop.spec.ts
32 lines (25 loc) · 931 Bytes
/
stop.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { verifyAllOptions } from '../../src/validators';
import {mockSpawnProcess, URI, DESTINATION} from '../test.helpers';
import Recorder, { RecorderEvents } from '../../src/recorder';
jest.mock('../../src/validators');
let onStop: () => void;
let onStopped: () => void;
beforeEach(() => {
jest.mocked(verifyAllOptions).mockReturnValue([]);
mockSpawnProcess();
onStop = jest.fn().mockName('onStop');
onStopped = jest.fn().mockName('onStopped');
});
test('should return "programmatically" if .stop() executed', async () => {
new Recorder(URI, DESTINATION)
.on(RecorderEvents.STOP, onStop)
.on(RecorderEvents.STOPPED, onStopped)
.start()
.stop();
// We have to wait next tick
await Promise.resolve(true);
expect(onStop).toBeCalledTimes(1);
expect(onStop).toBeCalledWith('programmatically');
expect(onStopped).toBeCalledTimes(1);
expect(onStopped).toBeCalledWith(expect.any(Number), 'ffmpeg_exited');
});