@@ -16,7 +16,7 @@ limitations under the License.
16
16
17
17
import { encodeBase64 , EventType , MatrixClient , type MatrixError , type MatrixEvent , type Room } from "../../../src" ;
18
18
import { KnownMembership } from "../../../src/@types/membership" ;
19
- import { DEFAULT_EXPIRE_DURATION , type SessionMembershipData } from "../../../src/matrixrtc/CallMembership" ;
19
+ import { type SessionMembershipData } from "../../../src/matrixrtc/CallMembership" ;
20
20
import { MatrixRTCSession , MatrixRTCSessionEvent } from "../../../src/matrixrtc/MatrixRTCSession" ;
21
21
import { type EncryptionKeysEventContent } from "../../../src/matrixrtc/types" ;
22
22
import { secureRandomString } from "../../../src/randomstring" ;
@@ -201,58 +201,6 @@ describe("MatrixRTCSession", () => {
201
201
} ) ;
202
202
} ) ;
203
203
204
- describe ( "updateCallMembershipEvent" , ( ) => {
205
- const mockFocus = { type : "livekit" , livekit_service_url : "https://test.org" } ;
206
- const joinSessionConfig = { } ;
207
-
208
- const sessionMembershipData : SessionMembershipData = {
209
- call_id : "" ,
210
- scope : "m.room" ,
211
- application : "m.call" ,
212
- device_id : "AAAAAAA_session" ,
213
- focus_active : mockFocus ,
214
- foci_preferred : [ mockFocus ] ,
215
- } ;
216
-
217
- let sendStateEventMock : jest . Mock ;
218
- let sendDelayedStateMock : jest . Mock ;
219
-
220
- let sentStateEvent : Promise < void > ;
221
- let sentDelayedState : Promise < void > ;
222
-
223
- beforeEach ( ( ) => {
224
- sentStateEvent = new Promise ( ( resolve ) => {
225
- sendStateEventMock = jest . fn ( resolve ) ;
226
- } ) ;
227
- sentDelayedState = new Promise ( ( resolve ) => {
228
- sendDelayedStateMock = jest . fn ( ( ) => {
229
- resolve ( ) ;
230
- return {
231
- delay_id : "id" ,
232
- } ;
233
- } ) ;
234
- } ) ;
235
- client . sendStateEvent = sendStateEventMock ;
236
- client . _unstable_sendDelayedStateEvent = sendDelayedStateMock ;
237
- } ) ;
238
-
239
- async function testSession ( membershipData : SessionMembershipData ) : Promise < void > {
240
- sess = MatrixRTCSession . roomSessionForRoom ( client , makeMockRoom ( membershipData ) ) ;
241
-
242
- sess . joinRoomSession ( [ mockFocus ] , mockFocus , joinSessionConfig ) ;
243
- await Promise . race ( [ sentStateEvent , new Promise ( ( resolve ) => setTimeout ( resolve , 500 ) ) ] ) ;
244
-
245
- expect ( sendStateEventMock ) . toHaveBeenCalledTimes ( 1 ) ;
246
-
247
- await Promise . race ( [ sentDelayedState , new Promise ( ( resolve ) => setTimeout ( resolve , 500 ) ) ] ) ;
248
- expect ( sendDelayedStateMock ) . toHaveBeenCalledTimes ( 1 ) ;
249
- }
250
-
251
- it ( "sends events" , async ( ) => {
252
- await testSession ( sessionMembershipData ) ;
253
- } ) ;
254
- } ) ;
255
-
256
204
describe ( "getOldestMembership" , ( ) => {
257
205
it ( "returns the oldest membership event" , ( ) => {
258
206
jest . useFakeTimers ( ) ;
@@ -320,28 +268,10 @@ describe("MatrixRTCSession", () => {
320
268
321
269
describe ( "joining" , ( ) => {
322
270
let mockRoom : Room ;
323
- let sendStateEventMock : jest . Mock ;
324
- let sendDelayedStateMock : jest . Mock ;
325
271
let sendEventMock : jest . Mock ;
326
272
327
- let sentStateEvent : Promise < void > ;
328
- let sentDelayedState : Promise < void > ;
329
-
330
273
beforeEach ( ( ) => {
331
- sentStateEvent = new Promise ( ( resolve ) => {
332
- sendStateEventMock = jest . fn ( resolve ) ;
333
- } ) ;
334
- sentDelayedState = new Promise ( ( resolve ) => {
335
- sendDelayedStateMock = jest . fn ( ( ) => {
336
- resolve ( ) ;
337
- return {
338
- delay_id : "id" ,
339
- } ;
340
- } ) ;
341
- } ) ;
342
274
sendEventMock = jest . fn ( ) ;
343
- client . sendStateEvent = sendStateEventMock ;
344
- client . _unstable_sendDelayedStateEvent = sendDelayedStateMock ;
345
275
client . sendEvent = sendEventMock ;
346
276
347
277
client . _unstable_updateDelayedEvent = jest . fn ( ) ;
@@ -367,67 +297,6 @@ describe("MatrixRTCSession", () => {
367
297
sess ! . joinRoomSession ( [ mockFocus ] , mockFocus ) ;
368
298
expect ( sess ! . isJoined ( ) ) . toEqual ( true ) ;
369
299
} ) ;
370
-
371
- it ( "sends a membership event when joining a call" , async ( ) => {
372
- const realSetTimeout = setTimeout ;
373
- jest . useFakeTimers ( ) ;
374
- sess ! . joinRoomSession ( [ mockFocus ] , mockFocus ) ;
375
- await Promise . race ( [ sentStateEvent , new Promise ( ( resolve ) => realSetTimeout ( resolve , 500 ) ) ] ) ;
376
- expect ( client . sendStateEvent ) . toHaveBeenCalledWith (
377
- mockRoom ! . roomId ,
378
- EventType . GroupCallMemberPrefix ,
379
- {
380
- application : "m.call" ,
381
- scope : "m.room" ,
382
- call_id : "" ,
383
- device_id : "AAAAAAA" ,
384
- expires : DEFAULT_EXPIRE_DURATION ,
385
- foci_preferred : [ mockFocus ] ,
386
- focus_active : {
387
- focus_selection : "oldest_membership" ,
388
- type : "livekit" ,
389
- } ,
390
- } ,
391
- "_@alice:example.org_AAAAAAA" ,
392
- ) ;
393
- await Promise . race ( [ sentDelayedState , new Promise ( ( resolve ) => realSetTimeout ( resolve , 500 ) ) ] ) ;
394
- // Because we actually want to send the state
395
- expect ( client . sendStateEvent ) . toHaveBeenCalledTimes ( 1 ) ;
396
- // For checking if the delayed event is still there or got removed while sending the state.
397
- expect ( client . _unstable_updateDelayedEvent ) . toHaveBeenCalledTimes ( 1 ) ;
398
- // For scheduling the delayed event
399
- expect ( client . _unstable_sendDelayedStateEvent ) . toHaveBeenCalledTimes ( 1 ) ;
400
- // This returns no error so we do not check if we reschedule the event again. this is done in another test.
401
-
402
- jest . useRealTimers ( ) ;
403
- } ) ;
404
-
405
- it ( "uses membershipEventExpiryMs from join config" , async ( ) => {
406
- const realSetTimeout = setTimeout ;
407
- jest . useFakeTimers ( ) ;
408
- sess ! . joinRoomSession ( [ mockFocus ] , mockFocus , { membershipEventExpiryMs : 60000 } ) ;
409
- await Promise . race ( [ sentStateEvent , new Promise ( ( resolve ) => realSetTimeout ( resolve , 500 ) ) ] ) ;
410
- expect ( client . sendStateEvent ) . toHaveBeenCalledWith (
411
- mockRoom ! . roomId ,
412
- EventType . GroupCallMemberPrefix ,
413
- {
414
- application : "m.call" ,
415
- scope : "m.room" ,
416
- call_id : "" ,
417
- device_id : "AAAAAAA" ,
418
- expires : 60000 ,
419
- foci_preferred : [ mockFocus ] ,
420
- focus_active : {
421
- focus_selection : "oldest_membership" ,
422
- type : "livekit" ,
423
- } ,
424
- } ,
425
- "_@alice:example.org_AAAAAAA" ,
426
- ) ;
427
- await Promise . race ( [ sentDelayedState , new Promise ( ( resolve ) => realSetTimeout ( resolve , 500 ) ) ] ) ;
428
- expect ( client . _unstable_sendDelayedStateEvent ) . toHaveBeenCalledTimes ( 1 ) ;
429
- jest . useRealTimers ( ) ;
430
- } ) ;
431
300
} ) ;
432
301
433
302
describe ( "onMembershipsChanged" , ( ) => {
@@ -489,9 +358,9 @@ describe("MatrixRTCSession", () => {
489
358
let sendToDeviceMock : jest . Mock ;
490
359
491
360
beforeEach ( ( ) => {
492
- sendStateEventMock = jest . fn ( ) ;
493
- sendDelayedStateMock = jest . fn ( ) ;
494
- sendEventMock = jest . fn ( ) ;
361
+ sendStateEventMock = jest . fn ( ) . mockResolvedValue ( { event_id : "id" } ) ;
362
+ sendDelayedStateMock = jest . fn ( ) . mockResolvedValue ( { event_id : "id" } ) ;
363
+ sendEventMock = jest . fn ( ) . mockResolvedValue ( { event_id : "id" } ) ;
495
364
sendToDeviceMock = jest . fn ( ) ;
496
365
client . sendStateEvent = sendStateEventMock ;
497
366
client . _unstable_sendDelayedStateEvent = sendDelayedStateMock ;
@@ -569,24 +438,22 @@ describe("MatrixRTCSession", () => {
569
438
let firstEventSent = false ;
570
439
571
440
try {
572
- const eventSentPromise = new Promise < void > ( ( resolve ) => {
441
+ const eventSentPromise = new Promise < { event_id : string } > ( ( resolve ) => {
573
442
sendEventMock . mockImplementation ( ( ) => {
574
443
if ( ! firstEventSent ) {
575
- jest . advanceTimersByTime ( 10000 ) ;
576
-
577
444
firstEventSent = true ;
578
445
const e = new Error ( ) as MatrixError ;
579
446
e . data = { } ;
580
447
throw e ;
581
448
} else {
582
- resolve ( ) ;
449
+ resolve ( { event_id : "id" } ) ;
583
450
}
584
451
} ) ;
585
452
} ) ;
586
453
587
454
sess ! . joinRoomSession ( [ mockFocus ] , mockFocus , { manageMediaKeys : true } ) ;
588
- await jest . runAllTimersAsync ( ) ;
589
-
455
+ // wait for the encryption event to get sent
456
+ await jest . advanceTimersByTimeAsync ( 5000 ) ;
590
457
await eventSentPromise ;
591
458
592
459
expect ( sendEventMock ) . toHaveBeenCalledTimes ( 2 ) ;
@@ -993,7 +860,6 @@ describe("MatrixRTCSession", () => {
993
860
994
861
sess ! . joinRoomSession ( [ mockFocus ] , mockFocus , {
995
862
manageMediaKeys : true ,
996
- useNewMembershipManager : true ,
997
863
useExperimentalToDeviceTransport : true ,
998
864
} ) ;
999
865
0 commit comments