start fixing CallViewModel tests.

Signed-off-by: Timo K <toger5@hotmail.de>
This commit is contained in:
Timo K
2025-09-19 18:01:45 +02:00
parent 41e152f420
commit d9fe31039f
4 changed files with 15 additions and 19 deletions

View File

@@ -210,6 +210,7 @@ export const InCallView: FC<InCallViewProps> = ({
// annoyingly we don't get the disconnection reason this way,
// only by listening for the emitted event
// This needs to be done differential. with the vm connection state we start with Disconnected.
// TODO-MULTI-SFU decide how to handle this properly
// if (connectionState === ConnectionState.Disconnected)
// throw new ConnectionLostError();

View File

@@ -9,15 +9,8 @@ import { expect, describe, it, vi, beforeAll } from "vitest";
import { render } from "@testing-library/react";
import { type MatrixInfo, VideoPreview } from "./VideoPreview";
import { type MuteStates } from "./MuteStates";
import { E2eeType } from "../e2ee/e2eeType";
function mockMuteStates({ audio = true, video = true } = {}): MuteStates {
return {
audio: { enabled: audio, setEnabled: vi.fn() },
video: { enabled: video, setEnabled: vi.fn() },
};
}
import { mockMuteStates } from "../utils/test";
describe("VideoPreview", () => {
const matrixInfo: MatrixInfo = {
@@ -49,7 +42,7 @@ describe("VideoPreview", () => {
const { queryByRole } = render(
<VideoPreview
matrixInfo={matrixInfo}
muteStates={mockMuteStates({ video: false })}
muteStates={mockMuteStates()}
videoTrack={null}
children={<></>}
/>,
@@ -61,7 +54,7 @@ describe("VideoPreview", () => {
const { queryByRole } = render(
<VideoPreview
matrixInfo={matrixInfo}
muteStates={mockMuteStates({ video: true })}
muteStates={mockMuteStates()}
videoTrack={null}
children={<></>}
/>,

View File

@@ -53,7 +53,6 @@ import {
type Layout,
} from "./CallViewModel";
import {
mockLivekitRoom,
mockLocalParticipant,
mockMatrixRoom,
mockMatrixRoomMember,
@@ -62,6 +61,7 @@ import {
mockRtcMembership,
MockRTCSession,
mockMediaDevices,
mockMuteStates,
} from "../utils/test";
import {
ECAddonConnectionState,
@@ -340,21 +340,15 @@ function withCallViewModel(
const roomEventSelectorSpy = vi
.spyOn(ComponentsCore, "roomEventSelector")
.mockImplementation((_room, _eventType) => of());
const livekitRoom = mockLivekitRoom(
{ localParticipant },
{ remoteParticipants$ },
);
const muteStates = mockMuteStates();
const raisedHands$ = new BehaviorSubject<Record<string, RaisedHandInfo>>({});
const vm = new CallViewModel(
rtcSession as unknown as MatrixRTCSession,
room,
livekitRoom,
mediaDevices,
muteStates,
options,
connectionState$,
raisedHands$,
new BehaviorSubject({}),
);

View File

@@ -53,6 +53,7 @@ import { Config } from "../config/Config";
import { type MediaDevices } from "../state/MediaDevices";
import { type Behavior, constant } from "../state/Behavior";
import { ObservableScope } from "../state/ObservableScope";
import { Handler, MuteStates } from "../state/MuteStates";
export function withFakeTimers(continuation: () => void): void {
vi.useFakeTimers();
@@ -417,3 +418,10 @@ export function mockMediaDevices(data: Partial<MediaDevices>): MediaDevices {
...data,
} as MediaDevices;
}
export function mockMuteStates(
joined$: Observable<boolean> = of(true),
): MuteStates {
const observableScope = new ObservableScope();
return new MuteStates(observableScope, mockMediaDevices({}), joined$);
}