@@ -554,15 +554,19 @@ describe("RoomHeader", () => {
554554 } ) ;
555555
556556 it ( "join button is shown if there is an ongoing call" , async ( ) => {
557- mockRoomMembers ( room , 3 ) ;
557+ const members = mockRoomMembers ( room , 3 ) ;
558+ const participants = mockParticipants ( members ) ;
559+ jest . spyOn ( UseCall , "useParticipants" ) . mockReturnValue ( participants ) ;
558560 jest . spyOn ( UseCall , "useParticipantCount" ) . mockReturnValue ( 3 ) ;
559561 render ( < RoomHeader room = { room } /> , getWrapper ( ) ) ;
560562 const joinButton = getByLabelText ( document . body , "Join" ) ;
561563 expect ( joinButton ) . not . toHaveAttribute ( "aria-disabled" , "true" ) ;
562564 } ) ;
563565
564566 it ( "join button is disabled if there is an other ongoing call" , async ( ) => {
565- mockRoomMembers ( room , 3 ) ;
567+ const members = mockRoomMembers ( room , 3 ) ;
568+ const participants = mockParticipants ( members ) ;
569+ jest . spyOn ( UseCall , "useParticipants" ) . mockReturnValue ( participants ) ;
566570 jest . spyOn ( UseCall , "useParticipantCount" ) . mockReturnValue ( 3 ) ;
567571 jest . spyOn ( CallStore . prototype , "connectedCalls" , "get" ) . mockReturnValue (
568572 new Set ( [ { roomId : "some_other_room" } as Call ] ) ,
@@ -582,7 +586,9 @@ describe("RoomHeader", () => {
582586 } ) ;
583587
584588 it ( "close lobby button is shown if there is an ongoing call but we are viewing the lobby" , async ( ) => {
585- mockRoomMembers ( room , 3 ) ;
589+ const members = mockRoomMembers ( room , 3 ) ;
590+ const participants = mockParticipants ( members ) ;
591+ jest . spyOn ( UseCall , "useParticipants" ) . mockReturnValue ( participants ) ;
586592 jest . spyOn ( UseCall , "useParticipantCount" ) . mockReturnValue ( 3 ) ;
587593 jest . spyOn ( SdkContextClass . instance . roomViewStore , "isViewingCall" ) . mockReturnValue ( true ) ;
588594
@@ -792,20 +798,32 @@ describe("RoomHeader", () => {
792798/**
793799 *
794800 * @param count the number of users to create
801+ * @returns the created members
795802 */
796803function mockRoomMembers ( room : Room , count : number ) {
797804 const members = Array ( count )
798805 . fill ( 0 )
799- . map ( ( _ , index ) => ( {
800- userId : `@user-${ index } :example.org` ,
801- name : `Member ${ index } ` ,
802- rawDisplayName : `Member ${ index } ` ,
803- roomId : room . roomId ,
804- membership : KnownMembership . Join ,
805- getAvatarUrl : ( ) => `mxc://avatar.url/user-${ index } .png` ,
806- getMxcAvatarUrl : ( ) => `mxc://avatar.url/user-${ index } .png` ,
807- } ) ) ;
806+ . map ( ( _ , index ) => {
807+ const userId = `@user-${ index } :example.org` ;
808+ const member = new RoomMember ( room . roomId , userId ) ;
809+ member . name = `Member ${ index } ` ;
810+ member . rawDisplayName = `Member ${ index } ` ;
811+ member . membership = KnownMembership . Join ;
812+ member . getAvatarUrl = ( ) => `mxc://avatar.url/user-${ index } .png` ;
813+ member . getMxcAvatarUrl = ( ) => `mxc://avatar.url/user-${ index } .png` ;
814+ return member ;
815+ } ) ;
808816
809817 room . currentState . setJoinedMemberCount ( members . length ) ;
810818 room . getJoinedMembers = jest . fn ( ) . mockReturnValue ( members ) ;
819+ return members ;
820+ }
821+
822+ /**
823+ * Creates a participants map from room members
824+ * @param members the room members to convert to participants
825+ * @returns Map of participants with device sets
826+ */
827+ function mockParticipants ( members : RoomMember [ ] ) : Map < RoomMember , Set < string > > {
828+ return new Map ( members . map ( ( member , index ) => [ member , new Set ( [ `device${ index + 1 } ` ] ) ] ) ) ;
811829}
0 commit comments