diff --git a/src/state/CallViewModel/localMember/LocalMembership.test.ts b/src/state/CallViewModel/localMember/LocalMembership.test.ts index 763946d4..f16119e4 100644 --- a/src/state/CallViewModel/localMember/LocalMembership.test.ts +++ b/src/state/CallViewModel/localMember/LocalMembership.test.ts @@ -5,39 +5,21 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE in the repository root for full details. */ -import { - type LivekitTransport, - type MatrixRTCSession, -} from "matrix-js-sdk/lib/matrixrtc"; +import { type MatrixRTCSession } from "matrix-js-sdk/lib/matrixrtc"; import { expect, test, vi } from "vitest"; import { AutoDiscovery } from "matrix-js-sdk/lib/autodiscovery"; import EventEmitter from "events"; import { MatrixRTCMode } from "../../../settings/settings"; import { mockConfig } from "../../../utils/test"; -import * as LocalMembership from "./LocalMembership"; - -// Read private function so we do not have to make it public -const enterRTCSession = ( - LocalMembership as unknown as { - enterRTCSession: ( - rtcSession: MatrixRTCSession, - transport: LivekitTransport, - { - encryptMedia, - matrixRTCMode, - }: { encryptMedia: boolean; matrixRTCMode: MatrixRTCMode }, - ) => Promise; - } -).enterRTCSession; +import { enterRTCSession } from "./LocalMembership"; const MATRIX_RTC_MODE = MatrixRTCMode.Legacy; const getUrlParams = vi.hoisted(() => vi.fn(() => ({}))); -vi.mock("./UrlParams", () => ({ getUrlParams })); +vi.mock("../../../UrlParams", () => ({ getUrlParams })); -const actualWidget = await vi.hoisted(async () => vi.importActual("./widget")); -vi.mock("./widget", () => ({ - ...actualWidget, +vi.mock("../../../widget", async (importOriginal) => ({ + ...(await importOriginal()), widget: { api: { setAlwaysOnScreen: (): void => {}, diff --git a/src/state/CallViewModel/localMember/LocalMembership.ts b/src/state/CallViewModel/localMember/LocalMembership.ts index 1a789ee8..ae6c1c7c 100644 --- a/src/state/CallViewModel/localMember/LocalMembership.ts +++ b/src/state/CallViewModel/localMember/LocalMembership.ts @@ -22,7 +22,6 @@ import { ClientEvent, SyncState, type Room as MatrixRoom } from "matrix-js-sdk"; import { BehaviorSubject, combineLatest, - distinctUntilChanged, fromEvent, map, type Observable, @@ -553,7 +552,8 @@ interface EnterRTCSessionOptions { * @param options * @throws If the widget could not send ElementWidgetActions.JoinCall action. */ -async function enterRTCSession( +// Exported for unit testing +export async function enterRTCSession( rtcSession: MatrixRTCSession, transport: LivekitTransport, { encryptMedia, matrixRTCMode }: EnterRTCSessionOptions,