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", () => {