Fix a number of remaining test failures

This commit is contained in:
Robin
2025-10-22 22:57:29 -04:00
parent a1c7255cc6
commit 58cd12b9b8
7 changed files with 63 additions and 20 deletions

View File

@@ -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(<CallEventAudioRenderer vm={vm} />);
@@ -84,6 +94,7 @@ test("plays a sound when a user joins", () => {
const { vm, rtcMemberships$ } = getBasicCallViewModelEnvironment([
local,
alice,
bob,
]);
render(<CallEventAudioRenderer vm={vm} />);
@@ -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(<CallEventAudioRenderer vm={vm} />);

View File

@@ -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", () => ({

View File

@@ -45,6 +45,7 @@ function TestComponent({ vm }: { vm: CallViewModel }): ReactNode {
);
}
vitest.mock("livekit-client/e2ee-worker?worker");
vitest.mock("../useAudioContext");
vitest.mock("../soundUtils");

View File

@@ -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);
});

View File

@@ -83,20 +83,32 @@ exports[`InCallView > rendering > renders 1`] = `
class="nav rightNav"
/>
</header>
<div>
mocked: MatrixAudioRenderer
</div>
<div
class="scrollingGrid grid"
>
<div
class="scrolling"
style="--gap: 20px; --width: NaNpx; --height: NaNpx;"
/>
class="layer"
>
<div
class="container slot"
data-id="1"
>
<div
class="slot local slot"
data-block-alignment="start"
data-id="0"
data-inline-alignment="end"
/>
</div>
</div>
</div>
<div
class="fixedGrid grid"
>
<div
class="fixed"
/>
<div />
</div>
<div
class="bg animate"