From 96382cad18caece4ae01fb608879ffc8f37b547c Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 9 Apr 2025 11:21:55 +0200 Subject: [PATCH] test: add test for join config `useExperimentalToDeviceTransport` --- spec/unit/matrixrtc/MatrixRTCSession.spec.ts | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/spec/unit/matrixrtc/MatrixRTCSession.spec.ts b/spec/unit/matrixrtc/MatrixRTCSession.spec.ts index 9f66bdee6..4a418644c 100644 --- a/spec/unit/matrixrtc/MatrixRTCSession.spec.ts +++ b/spec/unit/matrixrtc/MatrixRTCSession.spec.ts @@ -486,14 +486,17 @@ describe("MatrixRTCSession", () => { let sendStateEventMock: jest.Mock; let sendDelayedStateMock: jest.Mock; let sendEventMock: jest.Mock; + let sendToDeviceMock: jest.Mock; beforeEach(() => { sendStateEventMock = jest.fn(); sendDelayedStateMock = jest.fn(); sendEventMock = jest.fn(); + sendToDeviceMock = jest.fn(); client.sendStateEvent = sendStateEventMock; client._unstable_sendDelayedStateEvent = sendDelayedStateMock; client.sendEvent = sendEventMock; + client.encryptAndSendToDevice = sendToDeviceMock; mockRoom = makeMockRoom([]); sess = MatrixRTCSession.roomSessionForRoom(client, mockRoom); @@ -965,6 +968,29 @@ describe("MatrixRTCSession", () => { jest.useRealTimers(); } }); + + it("send key as to device", async () => { + jest.useFakeTimers(); + try { + const keySentPromise = new Promise((resolve) => { + sendToDeviceMock.mockImplementation(resolve); + }); + + const mockRoom = makeMockRoom([membershipTemplate]); + sess = MatrixRTCSession.roomSessionForRoom(client, mockRoom); + + sess!.joinRoomSession([mockFocus], mockFocus, { + manageMediaKeys: true, + useExperimentalToDeviceTransport: true, + }); + + await keySentPromise; + + expect(sendToDeviceMock).toHaveBeenCalled(); + } finally { + jest.useRealTimers(); + } + }); }); describe("receiving", () => {