mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-09-24 23:05:49 +00:00
test(recording): cover paused recorder flush order
This commit is contained in:
@@ -347,6 +347,24 @@ describe("useScreenRecorder state machine", () => {
|
||||
expect(callOrder).toEqual(["requestData", "stop"]);
|
||||
});
|
||||
|
||||
it("resumes, flushes, then stops from paused state", () => {
|
||||
recorder.pause();
|
||||
const callOrder: string[] = [];
|
||||
recorder.resume.mockImplementation(() => {
|
||||
callOrder.push("resume");
|
||||
});
|
||||
recorder.requestData.mockImplementation(() => {
|
||||
callOrder.push("requestData");
|
||||
});
|
||||
recorder.stop.mockImplementation(() => {
|
||||
callOrder.push("stop");
|
||||
});
|
||||
|
||||
stopRecording(recorder, false);
|
||||
|
||||
expect(callOrder).toEqual(["resume", "requestData", "stop"]);
|
||||
});
|
||||
|
||||
it("still stops when the explicit data flush fails", () => {
|
||||
recorder.requestData.mockImplementation(() => {
|
||||
throw new Error("flush failed");
|
||||
@@ -358,6 +376,26 @@ describe("useScreenRecorder state machine", () => {
|
||||
expect(recorder.stop).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("still stops from paused state when the explicit data flush fails", () => {
|
||||
recorder.pause();
|
||||
const callOrder: string[] = [];
|
||||
recorder.resume.mockImplementation(() => {
|
||||
callOrder.push("resume");
|
||||
});
|
||||
recorder.requestData.mockImplementation(() => {
|
||||
callOrder.push("requestData");
|
||||
throw new Error("flush failed");
|
||||
});
|
||||
recorder.stop.mockImplementation(() => {
|
||||
callOrder.push("stop");
|
||||
});
|
||||
|
||||
const result = stopRecording(recorder, false);
|
||||
|
||||
expect(result.stopped).toBe(true);
|
||||
expect(callOrder).toEqual(["resume", "requestData", "stop"]);
|
||||
});
|
||||
|
||||
it("still stops when resume throws from paused state", () => {
|
||||
recorder.pause();
|
||||
recorder.resume.mockImplementation(() => {
|
||||
|
||||
Reference in New Issue
Block a user