From 6addc7dd3dc49150fa77cd6c84baf04717df7278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Brandner?= Date: Thu, 5 Aug 2021 17:28:12 +0200 Subject: [PATCH] Add MockMediaStream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Šimon Brandner --- spec/unit/webrtc/call.spec.ts | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/spec/unit/webrtc/call.spec.ts b/spec/unit/webrtc/call.spec.ts index 400c5ecb3..00ca14892 100644 --- a/spec/unit/webrtc/call.spec.ts +++ b/spec/unit/webrtc/call.spec.ts @@ -83,6 +83,17 @@ class MockRTCPeerConnection { getStats() { return []; } } +class MockMediaStream { + constructor( + public id, + ) {} + + getTracks() { return []; } + getAudioTracks() { return [{ enabled: true }]; } + getVideoTracks() { return [{ enabled: true }]; } + addEventListener() {} +} + describe('Call', function() { let client; let call; @@ -98,13 +109,7 @@ describe('Call', function() { global.navigator = { mediaDevices: { // @ts-ignore Mock - getUserMedia: () => { - return { - getTracks: () => [], - getAudioTracks: () => [], - getVideoTracks: () => [], - }; - }, + getUserMedia: () => new MockMediaStream("local_stream"), }, }; @@ -115,7 +120,7 @@ describe('Call', function() { RTCSessionDescription: {}, // @ts-ignore Mock RTCIceCandidate: {}, - getUserMedia: {}, + getUserMedia: () => new MockMediaStream("local_stream"), }; // @ts-ignore Mock global.document = {}; @@ -319,7 +324,7 @@ describe('Call', function() { sdp: DUMMY_SDP, }, [SDPStreamMetadataKey]: { - "stream_id": { + "remote_stream": { purpose: SDPStreamMetadataPurpose.Usermedia, audio_muted: true, video_muted: false, @@ -329,8 +334,8 @@ describe('Call', function() { }, }); - call.pushRemoteFeed({ id: "stream_id", getAudioTracks: () => ["track1"], getVideoTracks: () => ["track1"] }); - const feed = call.getFeeds().find((feed) => feed.stream.id === "stream_id"); + call.pushRemoteFeed(new MockMediaStream("remote_stream")); + const feed = call.getFeeds().find((feed) => feed.stream.id === "remote_stream"); expect(feed?.purpose).toBe(SDPStreamMetadataPurpose.Usermedia); expect(feed?.isAudioMuted()).toBeTruthy(); expect(feed?.isVideoMuted()).not.toBeTruthy();