From e456782efd5ea860cb6679be3adf440788fe40a4 Mon Sep 17 00:00:00 2001 From: David Langley Date: Wed, 27 Aug 2025 16:40:12 +0100 Subject: [PATCH] Revert "try fix RoomHeader tests again by also mocking useParticipants" This reverts commit f83093cc44586b881d0918e4e4dee60d3263d44b. --- src/hooks/useCall.ts | 3 +- .../rooms/RoomHeader/RoomHeader-test.tsx | 42 ++++++------------- 2 files changed, 14 insertions(+), 31 deletions(-) diff --git a/src/hooks/useCall.ts b/src/hooks/useCall.ts index cc32b46bc8..9f1fb010cb 100644 --- a/src/hooks/useCall.ts +++ b/src/hooks/useCall.ts @@ -42,10 +42,11 @@ export const useConnectionState = (call: Call | null): ConnectionState => ); export const useParticipants = (call: Call | null): Map> => { + const participants = call?.participants; return useTypedEventEmitterState( call ?? undefined, CallEvent.Participants, - useCallback((state) => state ?? call?.participants ?? new Map(), [call]), + useCallback((state) => state ?? participants ?? new Map(), [participants]), ); }; diff --git a/test/unit-tests/components/views/rooms/RoomHeader/RoomHeader-test.tsx b/test/unit-tests/components/views/rooms/RoomHeader/RoomHeader-test.tsx index da9add1b54..a9f02532c8 100644 --- a/test/unit-tests/components/views/rooms/RoomHeader/RoomHeader-test.tsx +++ b/test/unit-tests/components/views/rooms/RoomHeader/RoomHeader-test.tsx @@ -554,9 +554,7 @@ describe("RoomHeader", () => { }); it("join button is shown if there is an ongoing call", async () => { - const members = mockRoomMembers(room, 3); - const participants = mockParticipants(members); - jest.spyOn(UseCall, "useParticipants").mockReturnValue(participants); + mockRoomMembers(room, 3); jest.spyOn(UseCall, "useParticipantCount").mockReturnValue(3); render(, getWrapper()); const joinButton = getByLabelText(document.body, "Join"); @@ -564,9 +562,7 @@ describe("RoomHeader", () => { }); it("join button is disabled if there is an other ongoing call", async () => { - const members = mockRoomMembers(room, 3); - const participants = mockParticipants(members); - jest.spyOn(UseCall, "useParticipants").mockReturnValue(participants); + mockRoomMembers(room, 3); jest.spyOn(UseCall, "useParticipantCount").mockReturnValue(3); jest.spyOn(CallStore.prototype, "connectedCalls", "get").mockReturnValue( new Set([{ roomId: "some_other_room" } as Call]), @@ -586,9 +582,7 @@ describe("RoomHeader", () => { }); it("close lobby button is shown if there is an ongoing call but we are viewing the lobby", async () => { - const members = mockRoomMembers(room, 3); - const participants = mockParticipants(members); - jest.spyOn(UseCall, "useParticipants").mockReturnValue(participants); + mockRoomMembers(room, 3); jest.spyOn(UseCall, "useParticipantCount").mockReturnValue(3); jest.spyOn(SdkContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true); @@ -798,32 +792,20 @@ describe("RoomHeader", () => { /** * * @param count the number of users to create - * @returns the created members */ function mockRoomMembers(room: Room, count: number) { const members = Array(count) .fill(0) - .map((_, index) => { - const userId = `@user-${index}:example.org`; - const member = new RoomMember(room.roomId, userId); - member.name = `Member ${index}`; - member.rawDisplayName = `Member ${index}`; - member.membership = KnownMembership.Join; - member.getAvatarUrl = () => `mxc://avatar.url/user-${index}.png`; - member.getMxcAvatarUrl = () => `mxc://avatar.url/user-${index}.png`; - return member; - }); + .map((_, index) => ({ + userId: `@user-${index}:example.org`, + name: `Member ${index}`, + rawDisplayName: `Member ${index}`, + roomId: room.roomId, + membership: KnownMembership.Join, + getAvatarUrl: () => `mxc://avatar.url/user-${index}.png`, + getMxcAvatarUrl: () => `mxc://avatar.url/user-${index}.png`, + })); room.currentState.setJoinedMemberCount(members.length); room.getJoinedMembers = jest.fn().mockReturnValue(members); - return members; -} - -/** - * Creates a participants map from room members - * @param members the room members to convert to participants - * @returns Map of participants with device sets - */ -function mockParticipants(members: RoomMember[]): Map> { - return new Map(members.map((member, index) => [member, new Set([`device${index + 1}`])])); }