From 58cd12b9b85e0b7c88f05e9587460ceedd62d762 Mon Sep 17 00:00:00 2001 From: Robin Date: Wed, 22 Oct 2025 22:57:29 -0400 Subject: [PATCH] Fix a number of remaining test failures --- src/button/ReactionToggleButton.test.tsx | 4 +- src/room/CallEventAudioRenderer.test.tsx | 37 +++++++++++++------ src/room/InCallView.test.tsx | 1 + src/room/ReactionAudioRenderer.test.tsx | 1 + src/room/ReactionsOverlay.test.tsx | 4 +- .../__snapshots__/InCallView.test.tsx.snap | 24 +++++++++--- src/utils/test-viewmodel.ts | 12 ++++++ 7 files changed, 63 insertions(+), 20 deletions(-) diff --git a/src/button/ReactionToggleButton.test.tsx b/src/button/ReactionToggleButton.test.tsx index 1ac43ebc..c7ac5aa0 100644 --- a/src/button/ReactionToggleButton.test.tsx +++ b/src/button/ReactionToggleButton.test.tsx @@ -6,7 +6,7 @@ Please see LICENSE in the repository root for full details. */ import { act, render } from "@testing-library/react"; -import { expect, test } from "vitest"; +import { expect, test, vi } from "vitest"; import { TooltipProvider } from "@vector-im/compound-web"; import { userEvent } from "@testing-library/user-event"; import { type ReactNode } from "react"; @@ -19,6 +19,8 @@ import { alice, local, localRtcMember } from "../utils/test-fixtures"; import { type MockRTCSession } from "../utils/test"; import { ReactionsSenderProvider } from "../reactions/useReactionsSender"; +vi.mock("livekit-client/e2ee-worker?worker"); + const localIdent = `${localRtcMember.userId}:${localRtcMember.deviceId}`; function TestComponent({ diff --git a/src/room/CallEventAudioRenderer.test.tsx b/src/room/CallEventAudioRenderer.test.tsx index bc1a1b39..e49c7011 100644 --- a/src/room/CallEventAudioRenderer.test.tsx +++ b/src/room/CallEventAudioRenderer.test.tsx @@ -7,7 +7,6 @@ Please see LICENSE in the repository root for full details. import { render } from "@testing-library/react"; import { - afterAll, beforeEach, expect, type MockedFunction, @@ -16,9 +15,17 @@ import { afterEach, } from "vitest"; import { act } from "react"; -import { type CallMembership } from "matrix-js-sdk/lib/matrixrtc"; +import { type RoomMember } from "matrix-js-sdk"; +import { + type LivekitTransport, + type CallMembership, +} from "matrix-js-sdk/lib/matrixrtc"; -import { mockRtcMembership } from "../utils/test"; +import { + exampleTransport, + mockMatrixRoomMember, + mockRtcMembership, +} from "../utils/test"; import { CallEventAudioRenderer } from "./CallEventAudioRenderer"; import { useAudioContext } from "../useAudioContext"; import { prefetchSounds } from "../soundUtils"; @@ -26,21 +33,23 @@ import { getBasicCallViewModelEnvironment } from "../utils/test-viewmodel"; import { alice, aliceRtcMember, + bob, bobRtcMember, local, localRtcMember, } from "../utils/test-fixtures"; import { MAX_PARTICIPANT_COUNT_FOR_SOUND } from "../state/CallViewModel"; +vitest.mock("livekit-client/e2ee-worker?worker"); vitest.mock("../useAudioContext"); vitest.mock("../soundUtils"); +vitest.mock("../rtcSessionHelpers", async (importOriginal) => ({ + ...(await importOriginal()), + makeTransport: (): [LivekitTransport] => [exampleTransport], +})); afterEach(() => { - vitest.resetAllMocks(); -}); - -afterAll(() => { - vitest.restoreAllMocks(); + vitest.clearAllMocks(); }); let playSound: MockedFunction< @@ -70,6 +79,7 @@ test("plays one sound when entering a call", () => { const { vm, rtcMemberships$ } = getBasicCallViewModelEnvironment([ local, alice, + bob, ]); render(); @@ -84,6 +94,7 @@ test("plays a sound when a user joins", () => { const { vm, rtcMemberships$ } = getBasicCallViewModelEnvironment([ local, alice, + bob, ]); render(); @@ -122,15 +133,16 @@ test("does not play a sound before the call is successful", () => { }); test("plays no sound when the participant list is more than the maximum size", () => { + const mockMembers: RoomMember[] = [local]; const mockRtcMemberships: CallMembership[] = [localRtcMember]; for (let i = 0; i < MAX_PARTICIPANT_COUNT_FOR_SOUND; i++) { - mockRtcMemberships.push( - mockRtcMembership(`@user${i}:example.org`, `DEVICE${i}`), - ); + const membership = mockRtcMembership(`@user${i}:example.org`, `DEVICE${i}`); + mockMembers.push(mockMatrixRoomMember(membership)); + mockRtcMemberships.push(membership); } const { vm, rtcMemberships$ } = getBasicCallViewModelEnvironment( - [local, alice], + mockMembers, mockRtcMemberships, ); @@ -150,6 +162,7 @@ test("plays one sound when a hand is raised", () => { const { vm, handRaisedSubject$ } = getBasicCallViewModelEnvironment([ local, alice, + bob, ]); render(); diff --git a/src/room/InCallView.test.tsx b/src/room/InCallView.test.tsx index 52a40702..d388ebc3 100644 --- a/src/room/InCallView.test.tsx +++ b/src/room/InCallView.test.tsx @@ -58,6 +58,7 @@ vi.mock("../useAudioContext"); vi.mock("../tile/GridTile"); vi.mock("../tile/SpotlightTile"); vi.mock("@livekit/components-react"); +vi.mock("livekit-client/e2ee-worker?worker"); vi.mock("../e2ee/sharedKeyManagement"); vi.mock("../livekit/MatrixAudioRenderer"); vi.mock("react-use-measure", () => ({ diff --git a/src/room/ReactionAudioRenderer.test.tsx b/src/room/ReactionAudioRenderer.test.tsx index f301832e..83188be7 100644 --- a/src/room/ReactionAudioRenderer.test.tsx +++ b/src/room/ReactionAudioRenderer.test.tsx @@ -45,6 +45,7 @@ function TestComponent({ vm }: { vm: CallViewModel }): ReactNode { ); } +vitest.mock("livekit-client/e2ee-worker?worker"); vitest.mock("../useAudioContext"); vitest.mock("../soundUtils"); diff --git a/src/room/ReactionsOverlay.test.tsx b/src/room/ReactionsOverlay.test.tsx index 6be69399..3ca82b1e 100644 --- a/src/room/ReactionsOverlay.test.tsx +++ b/src/room/ReactionsOverlay.test.tsx @@ -6,7 +6,7 @@ Please see LICENSE in the repository root for full details. */ import { render } from "@testing-library/react"; -import { expect, test, afterEach } from "vitest"; +import { expect, test, afterEach, vi } from "vitest"; import { act } from "react"; import { showReactions } from "../settings/settings"; @@ -20,6 +20,8 @@ import { } from "../utils/test-fixtures"; import { getBasicCallViewModelEnvironment } from "../utils/test-viewmodel"; +vi.mock("livekit-client/e2ee-worker?worker"); + afterEach(() => { showReactions.setValue(showReactions.defaultValue); }); diff --git a/src/room/__snapshots__/InCallView.test.tsx.snap b/src/room/__snapshots__/InCallView.test.tsx.snap index 15709eef..661d13ad 100644 --- a/src/room/__snapshots__/InCallView.test.tsx.snap +++ b/src/room/__snapshots__/InCallView.test.tsx.snap @@ -83,20 +83,32 @@ exports[`InCallView > rendering > renders 1`] = ` class="nav rightNav" /> +
+ mocked: MatrixAudioRenderer +
+ class="layer" + > +
+
+
+
-
+
+ mockLivekitRoom({ + localParticipant: mockLocalParticipant({ identity: "" }), + remoteParticipants: new Map(), + disconnect: async () => Promise.resolve(), + setE2EEEnabled: async () => Promise.resolve(), + }), + connectionState$: constant(ConnectionState.Connected), ...callViewModelOptions, }, handRaisedSubject$,