Make mediaDevices less confusing

This commit is contained in:
Timo K
2026-04-15 14:03:49 +02:00
parent 32823aef92
commit e46be38869
3 changed files with 10 additions and 6 deletions

View File

@@ -101,6 +101,7 @@ interface CreateInCallViewArgs {
function createInCallView(args: CreateInCallViewArgs = {}): RenderResult & {
rtcSession: MockRTCSession;
} {
const mediaDevices = args.mediaDevices ?? mockMediaDevices({});
const muteState = mockMuteStates();
const livekitRoom = mockLivekitRoom(
{
@@ -113,7 +114,11 @@ function createInCallView(args: CreateInCallViewArgs = {}): RenderResult & {
const { vm, rtcSession } = getBasicCallViewModelEnvironment(
[local, alice],
undefined,
{ mediaDeviceOverride: args.mediaDevices },
mediaDevices,
{
toggleScreensharing: () => {},
...args.callViewModelOptions,
},
);
rtcSession.joined = true;
@@ -121,7 +126,7 @@ function createInCallView(args: CreateInCallViewArgs = {}): RenderResult & {
const client = room.client;
const renderResult = render(
<BrowserRouter>
<MediaDevicesContext value={args.mediaDevices ?? mockMediaDevices({})}>
<MediaDevicesContext value={mediaDevices}>
<ReactionsSenderProvider
vm={vm}
rtcSession={rtcSession.asMockedSession()}

View File

@@ -172,7 +172,6 @@ export interface CallViewModelOptions {
windowSize$?: Behavior<{ width: number; height: number }>;
/** The version & compatibility mode of MatrixRTC that we should use. */
matrixRTCMode$?: Behavior<MatrixRTCMode>;
mediaDeviceOverride?: MediaDevices;
}
// Do not play any sounds if the participant count has exceeded this

View File

@@ -34,6 +34,7 @@ import {
MockRTCSession,
testScope,
} from "./test";
import { type MediaDevices } from "../state/MediaDevices";
import { aliceRtcMember, localRtcMember } from "./test-fixtures";
import { type RaisedHandInfo, type ReactionInfo } from "../reactions";
import { constant } from "../state/Behavior";
@@ -131,6 +132,7 @@ export function getBasicRTCSession(
export function getBasicCallViewModelEnvironment(
members: RoomMember[],
initialRtcMemberships: CallMembership[] = [localRtcMember, aliceRtcMember],
mediaDevicesOverride?: MediaDevices,
callViewModelOptions: Partial<CallViewModelOptions> = {},
): {
vm: CallViewModel;
@@ -146,13 +148,11 @@ export function getBasicCallViewModelEnvironment(
const handRaisedSubject$ = new BehaviorSubject({});
const reactionsSubject$ = new BehaviorSubject({});
// const remoteParticipants$ = of([aliceParticipant]);
const vm = createCallViewModel$(
testScope(),
rtcSession.asMockedSession(),
matrixRoom,
callViewModelOptions.mediaDeviceOverride ?? mockMediaDevices({}),
mediaDevicesOverride ?? mockMediaDevices({}),
mockMuteStates(),
{
encryptionSystem: { kind: E2eeType.PER_PARTICIPANT },