diff --git a/src/CallHandler.tsx b/src/CallHandler.tsx index 5d4973798d..f4bf86c6b2 100644 --- a/src/CallHandler.tsx +++ b/src/CallHandler.tsx @@ -809,12 +809,13 @@ export default class CallHandler extends EventEmitter { // We leave the check for whether there's already a call in this room until later, // otherwise it can race. - const members = room.getJoinedMembers(); - if (members.length <= 1) { + const joinedMemberCount = room.getJoinedMemberCount(); + const invitedAndJoinedMemberCount = room.getInvitedAndJoinedMemberCount(); + if (joinedMemberCount <= 1) { Modal.createTrackedDialog('Call Handler', 'Cannot place call with self', ErrorDialog, { description: _t('You cannot place a call with yourself.'), }); - } else if (members.length === 2) { + } else if (invitedAndJoinedMemberCount === 2) { logger.info(`Place ${type} call in ${roomId}`); this.placeMatrixCall(roomId, type, transferee); diff --git a/test/CallHandler-test.ts b/test/CallHandler-test.ts index 6aaf8cbe1b..e9515e0db5 100644 --- a/test/CallHandler-test.ts +++ b/test/CallHandler-test.ts @@ -54,6 +54,8 @@ function mkStubDM(roomId, userId) { getMxcAvatarUrl: () => 'mxc://avatar.url/image.png', }, ]); + room.getJoinedMemberCount = jest.fn().mockReturnValue(room.getJoinedMembers().length); + room.getInvitedAndJoinedMemberCount = jest.fn().mockReturnValue(room.getJoinedMembers().length); room.currentState.getMembers = room.getJoinedMembers; return room;