From 2e83feac015380e33694be535c724a85f6ee1e32 Mon Sep 17 00:00:00 2001 From: Florian Duros Date: Thu, 6 Feb 2025 15:54:19 +0100 Subject: [PATCH] test(call): add test when crypto is enabled --- spec/unit/webrtc/call.spec.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/spec/unit/webrtc/call.spec.ts b/spec/unit/webrtc/call.spec.ts index 4157b146e4..982432fcdc 100644 --- a/spec/unit/webrtc/call.spec.ts +++ b/spec/unit/webrtc/call.spec.ts @@ -48,6 +48,8 @@ import { import { CallFeed } from "../../../src/webrtc/callFeed"; import { EventType, type IContent, type ISendEventResponse, type MatrixEvent, type Room } from "../../../src"; import { emitPromise } from "../../test-utils/test-utils"; +import type { CryptoApi } from "../../../src/crypto-api"; +import { GroupCallUnknownDeviceError } from "../../../src/webrtc/groupCall"; const FAKE_ROOM_ID = "!foo:bar"; const CALL_LIFETIME = 60000; @@ -1839,4 +1841,31 @@ describe("Call", function () { const err = await prom; expect(err.code).toBe(CallErrorCode.IceFailed); }); + + it("should throw an error when trying to call 'placeCallWithCallFeeds' when crypto is enabled", async () => { + jest.spyOn(client.client, "getCrypto").mockReturnValue({} as unknown as CryptoApi); + call = new MatrixCall({ + client: client.client, + roomId: FAKE_ROOM_ID, + opponentDeviceId: "opponent_device_id", + invitee: "invitee", + }); + call.on(CallEvent.Error, jest.fn()); + + await expect( + call.placeCallWithCallFeeds([ + new CallFeed({ + client: client.client, + stream: new MockMediaStream("local_stream1", [ + new MockMediaStreamTrack("track_id", "audio"), + ]) as unknown as MediaStream, + userId: client.getUserId(), + deviceId: undefined, + purpose: SDPStreamMetadataPurpose.Usermedia, + audioMuted: false, + videoMuted: false, + }), + ]), + ).rejects.toThrow(new GroupCallUnknownDeviceError("invitee")); + }); });