@@ -486,14 +486,17 @@ describe("MatrixRTCSession", () => {
486486 let sendStateEventMock : jest . Mock ;
487487 let sendDelayedStateMock : jest . Mock ;
488488 let sendEventMock : jest . Mock ;
489+ let sendToDeviceMock : jest . Mock ;
489490
490491 beforeEach ( ( ) => {
491492 sendStateEventMock = jest . fn ( ) ;
492493 sendDelayedStateMock = jest . fn ( ) ;
493494 sendEventMock = jest . fn ( ) ;
495+ sendToDeviceMock = jest . fn ( ) ;
494496 client . sendStateEvent = sendStateEventMock ;
495497 client . _unstable_sendDelayedStateEvent = sendDelayedStateMock ;
496498 client . sendEvent = sendEventMock ;
499+ client . encryptAndSendToDevice = sendToDeviceMock ;
497500
498501 mockRoom = makeMockRoom ( [ ] ) ;
499502 sess = MatrixRTCSession . roomSessionForRoom ( client , mockRoom ) ;
@@ -965,6 +968,29 @@ describe("MatrixRTCSession", () => {
965968 jest . useRealTimers ( ) ;
966969 }
967970 } ) ;
971+
972+ it ( "send key as to device" , async ( ) => {
973+ jest . useFakeTimers ( ) ;
974+ try {
975+ const keySentPromise = new Promise ( ( resolve ) => {
976+ sendToDeviceMock . mockImplementation ( resolve ) ;
977+ } ) ;
978+
979+ const mockRoom = makeMockRoom ( [ membershipTemplate ] ) ;
980+ sess = MatrixRTCSession . roomSessionForRoom ( client , mockRoom ) ;
981+
982+ sess ! . joinRoomSession ( [ mockFocus ] , mockFocus , {
983+ manageMediaKeys : true ,
984+ useExperimentalToDeviceTransport : true ,
985+ } ) ;
986+
987+ await keySentPromise ;
988+
989+ expect ( sendToDeviceMock ) . toHaveBeenCalled ( ) ;
990+ } finally {
991+ jest . useRealTimers ( ) ;
992+ }
993+ } ) ;
968994 } ) ;
969995
970996 describe ( "receiving" , ( ) => {
0 commit comments