@@ -16,7 +16,8 @@ limitations under the License.
1616
1717import { encodeBase64 , EventType , MatrixClient , MatrixError , MatrixEvent , Room } from "../../../src" ;
1818import { KnownMembership } from "../../../src/@types/membership" ;
19- import { SessionMembershipData , DEFAULT_EXPIRE_DURATION } from "../../../src/matrixrtc/CallMembership" ;
19+ import { DEFAULT_EXPIRE_DURATION , SessionMembershipData } from "../../../src/matrixrtc/CallMembership" ;
20+ import { MyMembershipManager } from "../../../src/matrixrtc/MatrixRTCMyMembershipManager" ;
2021import { MatrixRTCSession , MatrixRTCSessionEvent } from "../../../src/matrixrtc/MatrixRTCSession" ;
2122import { EncryptionKeysEventContent } from "../../../src/matrixrtc/types" ;
2223import { randomString } from "../../../src/randomstring" ;
@@ -235,14 +236,13 @@ describe("MatrixRTCSession", () => {
235236 } ) ;
236237
237238 async function testSession ( membershipData : SessionMembershipData ) : Promise < void > {
239+ const makeNewMembershipSpy = jest . spyOn ( MyMembershipManager . prototype as any , "makeNewMembership" ) ;
238240 sess = MatrixRTCSession . roomSessionForRoom ( client , makeMockRoom ( membershipData ) ) ;
239241
240- const makeNewMembershipMock = jest . spyOn ( sess as any , "makeNewMembership" ) ;
241-
242242 sess . joinRoomSession ( [ mockFocus ] , mockFocus , joinSessionConfig ) ;
243243 await Promise . race ( [ sentStateEvent , new Promise ( ( resolve ) => setTimeout ( resolve , 500 ) ) ] ) ;
244244
245- expect ( makeNewMembershipMock ) . toHaveBeenCalledTimes ( 1 ) ;
245+ expect ( makeNewMembershipSpy ) . toHaveBeenCalledTimes ( 1 ) ;
246246
247247 await Promise . race ( [ sentDelayedState , new Promise ( ( resolve ) => setTimeout ( resolve , 500 ) ) ] ) ;
248248 expect ( client . _unstable_sendDelayedStateEvent ) . toHaveBeenCalledTimes ( 1 ) ;
@@ -477,23 +477,25 @@ describe("MatrixRTCSession", () => {
477477 return Promise . reject ( error ) ;
478478 } ) ;
479479 } ) ;
480+ // needed to join so that myMembershipManager gets created
481+ sess ! . joinRoomSession ( [ activeFocusConfig ] , activeFocus , {
482+ membershipServerSideExpiryTimeout : 9000 ,
483+ } ) ;
480484
481485 // needed to advance the mock timers properly
486+ // depends on myMembershipManager being created
482487 const scheduledDelayDisconnection = new Promise < void > ( ( resolve ) => {
483- const originalFn : ( ) => void = ( sess as any ) . scheduleDelayDisconnection ;
484- ( sess as any ) . scheduleDelayDisconnection = jest . fn ( ( ) => {
485- originalFn . call ( sess ) ;
488+ const myMemManager = ( sess as any ) . myMembershipManager ;
489+ const originalFn : ( ) => void = myMemManager . scheduleDelayDisconnection ;
490+ myMemManager . scheduleDelayDisconnection = jest . fn ( ( ) => {
491+ originalFn . call ( myMemManager ) ;
486492 resolve ( ) ;
487493 } ) ;
488494 } ) ;
489495
490- sess ! . joinRoomSession ( [ activeFocusConfig ] , activeFocus , {
491- membershipServerSideExpiryTimeout : 9000 ,
492- } ) ;
493-
494- expect ( sess ) . toHaveProperty ( "membershipServerSideExpiryTimeout" , 9000 ) ;
496+ expect ( ( sess as any ) . myMembershipManager ) . toHaveProperty ( "membershipServerSideExpiryTimeout" , 9000 ) ;
495497 await sendDelayedStateExceedAttempt . then ( ) ; // needed to resolve after the send attempt catches
496- expect ( sess ) . toHaveProperty ( "membershipServerSideExpiryTimeout" , 7500 ) ;
498+ expect ( ( sess as any ) . myMembershipManager ) . toHaveProperty ( "membershipServerSideExpiryTimeout" , 7500 ) ;
497499
498500 await sendDelayedStateAttempt ;
499501 jest . advanceTimersByTime ( 5000 ) ;
0 commit comments