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
+
+ mockLivekitRoom({
+ localParticipant: mockLocalParticipant({ identity: "" }),
+ remoteParticipants: new Map(),
+ disconnect: async () => Promise.resolve(),
+ setE2EEEnabled: async () => Promise.resolve(),
+ }),
+ connectionState$: constant(ConnectionState.Connected),
...callViewModelOptions,
},
handRaisedSubject$,