Separate out SDKContext (#34053)

* Separate out SDKContext

...from SDKContextClass, as the comments hopefully explain.

Also make the captitalisation consistent.

* Adding the new file usually helps too

* Fix import

* More comment

* Update the various imports of SDKContextClass

* Also fix case of TestSDKContext

* Update the mock
This commit is contained in:
David Baker
2026-07-01 12:49:18 +00:00
committed by GitHub
parent 1c1bda9cab
commit 54d27fd59c
89 changed files with 493 additions and 458 deletions
@@ -30,7 +30,7 @@ import DMRoomMap from "../../../../../src/utils/DMRoomMap";
import SdkConfig from "../../../../../src/SdkConfig";
import { type ValidatedServerConfig } from "../../../../../src/utils/ValidatedServerConfig";
import { type IConfigOptions } from "../../../../../src/IConfigOptions";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
import { type IProfileInfo } from "../../../../../src/hooks/useProfileInfo";
import { DirectoryMember, startDmOnFirstMessage } from "../../../../../src/utils/direct-messages";
@@ -178,13 +178,13 @@ describe("InviteDialog", () => {
mockClient.getRooms.mockReturnValue([room]);
mockClient.getRoom.mockReturnValue(room);
SdkContextClass.instance.client = mockClient;
SDKContextClass.instance.client = mockClient;
});
afterEach(async () => {
await clearAllModals();
SdkContextClass.instance.onLoggedOut();
SdkContextClass.instance.client = undefined;
SDKContextClass.instance.onLoggedOut();
SDKContextClass.instance.client = undefined;
});
afterAll(() => {
@@ -13,12 +13,13 @@ import { EventType, MatrixEvent } from "matrix-js-sdk/src/matrix";
import type { MatrixClient } from "matrix-js-sdk/src/matrix";
import { flushPromises, mkMessage, stubClient } from "../../../../test-utils";
import MessageEditHistoryDialog from "../../../../../src/components/views/dialogs/MessageEditHistoryDialog";
import { SDKContext, SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContext } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
describe("<MessageEditHistory />", () => {
const roomId = "!aroom:example.com";
let client: jest.Mocked<MatrixClient>;
let sdkContext: SdkContextClass;
let sdkContext: SDKContextClass;
let event: MatrixEvent;
beforeEach(() => {
@@ -29,7 +30,7 @@ describe("<MessageEditHistory />", () => {
room: "!room:example.com",
msg: "My Great Message",
});
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
});
async function renderComponent(): Promise<RenderResult> {
@@ -24,7 +24,7 @@ import MatrixClientContext from "../../../../../src/contexts/MatrixClientContext
import SettingsStore from "../../../../../src/settings/SettingsStore";
import { UIFeature } from "../../../../../src/settings/UIFeature";
import DMRoomMap from "../../../../../src/utils/DMRoomMap";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
describe("<RoomSettingsDialog />", () => {
const userId = "@alice:server.org";
@@ -44,7 +44,7 @@ describe("<RoomSettingsDialog />", () => {
const room2 = new Room("!room2:server.org", mockClient, userId);
room2.name = "Another Room";
let sdkContext: SdkContextClass;
let sdkContext: SDKContextClass;
jest.spyOn(SettingsStore, "getValue");
@@ -57,7 +57,7 @@ describe("<RoomSettingsDialog />", () => {
return null;
});
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
sdkContext.client = mockClient;
jest.spyOn(SettingsStore, "getValue").mockReset().mockReturnValue(false);
@@ -26,7 +26,7 @@ import {
} from "../../../../test-utils";
import { UIFeature } from "../../../../../src/settings/UIFeature";
import { SettingLevel } from "../../../../../src/settings/SettingLevel";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
import { type FeatureSettingKey } from "../../../../../src/settings/Settings.tsx";
import { mockOpenIdConfiguration } from "../../../../test-utils/oidc.ts";
@@ -57,7 +57,7 @@ describe("<UserSettingsDialog />", () => {
const mockSettingsStore = mocked(SettingsStore);
let mockClient!: MockedObject<MatrixClient>;
let sdkContext: SdkContextClass;
let sdkContext: SDKContextClass;
const defaultProps = { onFinished: jest.fn() };
const getComponent = (
props: Partial<typeof defaultProps & { initialTabId?: UserTab; props: Record<string, any> }> = {},
@@ -76,7 +76,7 @@ describe("<UserSettingsDialog />", () => {
getMediaConfig: jest.fn(),
getAuthMetadata: jest.fn().mockResolvedValue(mockOpenIdConfiguration()),
});
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
sdkContext.client = mockClient;
mockSettingsStore.getValue.mockReturnValue(false);
mockSettingsStore.getValueAt.mockReturnValue(false);
@@ -39,7 +39,7 @@ import { WidgetMessagingStore } from "../../../../../src/stores/widgets/WidgetMe
import { ModuleRunner } from "../../../../../src/modules/ModuleRunner";
import { ModuleApi } from "../../../../../src/modules/Api";
import { RoomPermalinkCreator } from "../../../../../src/utils/permalinks/Permalinks";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
jest.mock("../../../../../src/stores/OwnProfileStore", () => ({
OwnProfileStore: {
@@ -56,7 +56,7 @@ const realGetValue = SettingsStore.getValue;
describe("AppTile", () => {
let cli: MatrixClient;
let sdkContext: SdkContextClass;
let sdkContext: SDKContextClass;
let r1: Room;
let r2: Room;
const resizeNotifier = new ResizeNotifier();
@@ -118,7 +118,7 @@ describe("AppTile", () => {
beforeEach(async () => {
// Do not carry across settings from previous tests
SettingsStore.reset();
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
// @ts-ignore
await WidgetMessagingStore.instance.onReady();
@@ -27,9 +27,10 @@ import {
import DMRoomMap from "../../../../../src/utils/DMRoomMap";
import { Action } from "../../../../../src/dispatcher/actions";
import { type ButtonEvent } from "../../../../../src/components/views/elements/AccessibleButton";
import { SDKContext, SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContext } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
import { MatrixClientPeg } from "../../../../../src/MatrixClientPeg.ts";
import { TestSdkContext } from "../../../TestSdkContext.ts";
import { TestSDKContext } from "../../../TestSDKContext.ts";
describe("<Pill>", () => {
let client: Mocked<MatrixClient>;
@@ -50,7 +51,7 @@ describe("<Pill>", () => {
const renderPill = (props: PillProps): void => {
const cli = MatrixClientPeg.safeGet();
const mockSdkContext = new TestSdkContext();
const mockSdkContext = new TestSDKContext();
mockSdkContext.client = cli;
const withDefault = {
@@ -78,7 +79,7 @@ describe("<Pill>", () => {
beforeEach(() => {
client = mocked(stubClient());
SdkContextClass.instance.client = client;
SDKContextClass.instance.client = client;
DMRoomMap.makeShared(client);
room1 = new Room(room1Id, client, user1Id);
room1.name = "Room 1";
@@ -16,7 +16,7 @@ import type { MediaEventHelper } from "../../../../../src/utils/MediaEventHelper
import MVoiceMessageBody from "../../../../../src/components/views/messages/MVoiceMessageBody";
import { PlaybackQueue } from "../../../../../src/audio/PlaybackQueue";
import { createTestClient } from "../../../../test-utils";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
describe("<MVvoiceMessageBody />", () => {
let event: MatrixEvent;
@@ -26,7 +26,7 @@ describe("<MVvoiceMessageBody />", () => {
const matrixClient = createTestClient();
const room = new Room("!TESTROOM", matrixClient, "@alice:example.org");
const playbackQueue = new PlaybackQueue(room, SdkContextClass.instance.roomViewStore);
const playbackQueue = new PlaybackQueue(room, SDKContextClass.instance.roomViewStore);
jest.spyOn(PlaybackQueue, "forRoom").mockReturnValue(playbackQueue);
jest.spyOn(playbackQueue, "unsortedEnqueue").mockReturnValue(undefined);
@@ -15,21 +15,22 @@ import AppsDrawer from "../../../../../src/components/views/rooms/AppsDrawer";
import SdkConfig from "../../../../../src/SdkConfig";
import { WidgetLayoutStore } from "../../../../../src/stores/widgets/WidgetLayoutStore";
import MatrixClientContext from "../../../../../src/contexts/MatrixClientContext";
import { SDKContext, SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContext } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
const ROOM_ID = "!room:id";
describe("AppsDrawer", () => {
let client: MatrixClient;
let room: Room;
let sdkContext: SdkContextClass;
let sdkContext: SDKContextClass;
beforeEach(async () => {
client = stubClient();
room = new Room(ROOM_ID, client, client.getUserId()!, {
pendingEventOrdering: PendingEventOrdering.Detached,
});
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
});
afterEach(() => {
@@ -18,7 +18,7 @@ import EditorModel from "../../../../../src/editor/model";
import { createPartCreator, createRenderer } from "../../../editor/mock";
import { CommandPartCreator } from "../../../../../src/editor/parts";
import DocumentOffset from "../../../../../src/editor/offset";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
import SettingsStore from "../../../../../src/settings/SettingsStore";
describe("BasicMessageComposer", () => {
@@ -114,7 +114,7 @@ describe("BasicMessageComposer", () => {
const model = new EditorModel([commandPart], commandPc, renderer);
// spy on typingStore.setSelfTyping
const spy = jest.spyOn(SdkContextClass.instance.typingStore, "setSelfTyping");
const spy = jest.spyOn(SDKContextClass.instance.typingStore, "setSelfTyping");
render(<BasicMessageComposer model={model} room={room} />);
@@ -20,7 +20,7 @@ import RightPanelStore from "../../../../../src/stores/right-panel/RightPanelSto
import { RightPanelPhases } from "../../../../../src/stores/right-panel/RightPanelStorePhases";
import { UPDATE_EVENT } from "../../../../../src/stores/AsyncStore";
import { Action } from "../../../../../src/dispatcher/actions";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext.ts";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
describe("<PinnedMessageBanner />", () => {
const userId = "@alice:server.org";
@@ -29,12 +29,12 @@ describe("<PinnedMessageBanner />", () => {
let mockClient: MatrixClient;
let room: Room;
let permalinkCreator: RoomPermalinkCreator;
let sdkContext: SdkContextClass;
let sdkContext: SDKContextClass;
beforeEach(() => {
mockClient = stubClient();
room = new Room(roomId, mockClient, userId);
permalinkCreator = new RoomPermalinkCreator(room);
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
jest.spyOn(dis, "dispatch").mockReturnValue(undefined);
});
@@ -11,7 +11,8 @@ import { fireEvent, getByLabelText, getByText, render, screen, waitFor } from "j
import { type EventTimeline, JoinRule, Room } from "matrix-js-sdk/src/matrix";
import { KnownMembership } from "matrix-js-sdk/src/types";
import { SDKContext, SdkContextClass } from "../../../../../../src/contexts/SDKContext";
import { SDKContext } from "../../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../../src/contexts/SDKContextClass";
import { getMockClientWithEventEmitter, mockClientMethodsUser } from "../../../../../test-utils";
import {
CallGuestLinkButton,
@@ -25,7 +26,7 @@ import SettingsStore from "../../../../../../src/settings/SettingsStore";
describe("<CallGuestLinkButton />", () => {
const roomId = "!room:server.org";
let sdkContext!: SdkContextClass;
let sdkContext!: SDKContextClass;
let modalSpy: jest.SpyInstance;
let modalResolve: (value: unknown[] | PromiseLike<unknown[]>) => void;
let room: Room;
@@ -77,7 +78,7 @@ describe("<CallGuestLinkButton />", () => {
...mockClientMethodsUser(),
sendStateEvent: jest.fn(),
});
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
sdkContext.client = client;
const modalPromise = new Promise<unknown[]>((resolve) => {
modalResolve = resolve;
@@ -93,7 +94,7 @@ describe("<CallGuestLinkButton />", () => {
return oldGet(key);
});
jest.spyOn(room, "hasEncryptionStateEvent").mockReturnValue(true);
jest.spyOn(SdkContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
jest.spyOn(SDKContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
});
afterEach(() => {
jest.restoreAllMocks();
@@ -151,7 +152,7 @@ describe("<CallGuestLinkButton />", () => {
it("don't show external conference button if now guest spa link is configured", () => {
jest.spyOn(room, "getJoinRule").mockReturnValue(JoinRule.Public);
jest.spyOn(SdkContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
jest.spyOn(SDKContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
jest.spyOn(SdkConfig, "get").mockImplementation((key) => {
if (key === "element_call") {
@@ -178,7 +179,7 @@ describe("<CallGuestLinkButton />", () => {
it("opens the share dialog with the correct share link in an encrypted room", () => {
jest.spyOn(room, "getJoinRule").mockReturnValue(JoinRule.Public);
jest.spyOn(SdkContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
jest.spyOn(SDKContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
getComponent(room);
const modalSpy = jest.spyOn(Modal, "createDialog");
@@ -200,7 +201,7 @@ describe("<CallGuestLinkButton />", () => {
it("share dialog has correct link in an unencrypted room", () => {
jest.spyOn(room, "getJoinRule").mockReturnValue(JoinRule.Public);
jest.spyOn(room, "hasEncryptionStateEvent").mockReturnValue(false);
jest.spyOn(SdkContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
jest.spyOn(SDKContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
getComponent(room);
const modalSpy = jest.spyOn(Modal, "createDialog");
@@ -12,7 +12,8 @@ import { Room } from "matrix-js-sdk/src/matrix";
import { fireEvent, render, screen, waitFor } from "jest-matrix-react";
import { VideoRoomChatButton } from "../../../../../../src/components/views/rooms/RoomHeader/VideoRoomChatButton";
import { SDKContext, SdkContextClass } from "../../../../../../src/contexts/SDKContext";
import { SDKContext } from "../../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../../src/contexts/SDKContextClass";
import type RightPanelStore from "../../../../../../src/stores/right-panel/RightPanelStore";
import { getMockClientWithEventEmitter, mockClientMethodsUser } from "../../../../../test-utils";
import { RoomNotificationState } from "../../../../../../src/stores/notifications/RoomNotificationState";
@@ -22,7 +23,7 @@ import { RightPanelPhases } from "../../../../../../src/stores/right-panel/Right
describe("<VideoRoomChatButton />", () => {
const roomId = "!room:server.org";
let sdkContext!: SdkContextClass;
let sdkContext!: SDKContextClass;
let rightPanelStore!: MockedObject<RightPanelStore>;
/**
@@ -58,7 +59,7 @@ describe("<VideoRoomChatButton />", () => {
rightPanelStore = {
showOrHidePhase: jest.fn(),
} as unknown as MockedObject<RightPanelStore>;
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
sdkContext.client = client;
jest.spyOn(sdkContext, "rightPanelStore", "get").mockReturnValue(rightPanelStore);
});
@@ -38,7 +38,7 @@ import DMRoomMap from "../../../../../src/utils/DMRoomMap";
import PlatformPeg from "../../../../../src/PlatformPeg";
import type BasePlatform from "../../../../../src/BasePlatform";
import { WidgetMessagingStore } from "../../../../../src/stores/widgets/WidgetMessagingStore";
import { TestSdkContext } from "../../../TestSdkContext";
import { TestSDKContext } from "../../../TestSDKContext";
import { SDKContext } from "../../../../../src/contexts/SDKContext";
import { shouldShowComponent } from "../../../../../src/customisations/helpers/UIComponents";
import { UIComponent } from "../../../../../src/settings/UIFeature";
@@ -73,7 +73,7 @@ describe("RoomTile", () => {
let client: Mocked<MatrixClient>;
let room: Room;
let sdkContext: TestSdkContext;
let sdkContext: TestSDKContext;
let showMessagePreview = false;
filterConsole(
@@ -114,7 +114,7 @@ describe("RoomTile", () => {
beforeEach(() => {
useMockMediaDevices();
sdkContext = new TestSdkContext();
sdkContext = new TestSDKContext();
client = mocked(stubClient());
sdkContext.client = client;
@@ -30,7 +30,7 @@ import { mockPlatformPeg } from "../../../../test-utils/platform";
import { doMaybeLocalRoomAction } from "../../../../../src/utils/local-room";
import { addTextToComposer } from "../../../../test-utils/composer";
import { ScopedRoomContextProvider } from "../../../../../src/contexts/ScopedRoomContext.tsx";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext.ts";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
import { RoomUploadContextProvider } from "../../../../../src/viewmodels/room/RoomUploadViewModel.tsx";
jest.mock("../../../../../src/utils/local-room", () => ({
@@ -39,7 +39,7 @@ jest.mock("../../../../../src/utils/local-room", () => ({
describe("<SendMessageComposer/>", () => {
const defaultRoomContext: RoomContextType = {
roomViewStore: SdkContextClass.instance.roomViewStore,
roomViewStore: SDKContextClass.instance.roomViewStore,
roomLoading: true,
peekLoading: false,
shouldPeek: true,
@@ -26,7 +26,7 @@ import { KnownMembership } from "matrix-js-sdk/src/types";
import { MatrixClientPeg } from "../../../../../../src/MatrixClientPeg";
import * as TestUtils from "../../../../../test-utils";
import { SDKContext } from "../../../../../../src/contexts/SDKContext";
import { TestSdkContext } from "../../../../TestSdkContext";
import { TestSDKContext } from "../../../../TestSDKContext";
import MemberListView from "../../../../../../src/components/views/rooms/MemberList/MemberListView";
import MatrixClientContext from "../../../../../../src/contexts/MatrixClientContext";
@@ -121,7 +121,7 @@ export async function renderMemberList(
memberListRoom.currentState.members[member.userId] = member;
}
const context = new TestSdkContext();
const context = new TestSDKContext();
context.client = client;
context.memberListStore.isPresenceEnabled = jest.fn().mockReturnValue(enablePresence);
const root = render(
@@ -15,7 +15,8 @@ import { type MockedObject } from "jest-mock-vitest-adapter";
import { ToastContext, ToastRack } from "@element-hq/web-shared-components";
import AccountUserSettingsTab from "../../../../../../../src/components/views/settings/tabs/user/AccountUserSettingsTab";
import { SdkContextClass, SDKContext } from "../../../../../../../src/contexts/SDKContext";
import { SDKContext } from "../../../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../../../src/contexts/SDKContextClass";
import SettingsStore from "../../../../../../../src/settings/SettingsStore";
import {
getMockClientWithEventEmitter,
@@ -50,7 +51,7 @@ describe("<AccountUserSettingsTab />", () => {
const userId = "@alice:server.org";
let mockClient: MockedObject<MatrixClient>;
let stores: SdkContextClass;
let stores: SDKContextClass;
const getComponent = () => (
<MatrixClientContext.Provider value={mockClient}>
@@ -86,7 +87,7 @@ describe("<AccountUserSettingsTab />", () => {
id_server_unbind_result: "success",
});
stores = new SdkContextClass();
stores = new SDKContextClass();
stores.client = mockClient;
// stub out this store completely to avoid mocking initialisation
const mockOidcClientStore = {} as unknown as OidcClientStore;
@@ -19,7 +19,8 @@ import {
mockClientMethodsDevice,
mockPlatformPeg,
} from "../../../../../../test-utils";
import { SDKContext, SdkContextClass } from "../../../../../../../src/contexts/SDKContext";
import { SDKContext } from "../../../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../../../src/contexts/SDKContextClass";
import defaultDispatcher from "../../../../../../../src/dispatcher/dispatcher";
import { UIFeature } from "../../../../../../../src/settings/UIFeature";
import SettingsStore from "../../../../../../../src/settings/SettingsStore";
@@ -41,7 +42,7 @@ describe("<SecurityUserSettingsTab />", () => {
setIgnoredUsers,
});
const sdkContext = new SdkContextClass();
const sdkContext = new SDKContextClass();
sdkContext.client = mockClient;
const getComponent = () => (
@@ -56,7 +56,8 @@ import {
import { INACTIVE_DEVICE_AGE_MS } from "../../../../../../../src/components/views/settings/devices/filter";
import SettingsStore from "../../../../../../../src/settings/SettingsStore";
import { getClientInformationEventType } from "../../../../../../../src/utils/device/clientInformation";
import { SDKContext, SdkContextClass } from "../../../../../../../src/contexts/SDKContext";
import { SDKContext } from "../../../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../../../src/contexts/SDKContextClass";
import { type OidcClientStore } from "../../../../../../../src/stores/oidc/OidcClientStore";
import { makeDelegatedAuthConfig } from "../../../../../../test-utils/oidc";
import MatrixClientContext from "../../../../../../../src/contexts/MatrixClientContext";
@@ -133,7 +134,7 @@ describe("<SessionManagerTab />", () => {
} as unknown as CryptoApi);
let mockClient!: MockedObject<MatrixClient>;
let sdkContext: SdkContextClass;
let sdkContext: SDKContextClass;
const defaultProps = {};
const getComponent = (props = {}): React.ReactElement => (
@@ -249,7 +250,7 @@ describe("<SessionManagerTab />", () => {
}
});
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
sdkContext.client = mockClient;
// @ts-ignore allow delete of non-optional prop
@@ -13,7 +13,7 @@ import { mocked } from "jest-mock";
import QuickSettingsButton from "../../../../../src/components/views/spaces/QuickSettingsButton";
import SettingsStore from "../../../../../src/settings/SettingsStore";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
describe("QuickSettingsButton", () => {
const roomId = "!room:example.com";
@@ -72,11 +72,11 @@ describe("QuickSettingsButton", () => {
describe("and a room is viewed", () => {
beforeEach(() => {
jest.spyOn(SdkContextClass.instance.roomViewStore, "getRoomId").mockReturnValue(roomId);
jest.spyOn(SDKContextClass.instance.roomViewStore, "getRoomId").mockReturnValue(roomId);
});
afterEach(() => {
mocked(SdkContextClass.instance.roomViewStore.getRoomId).mockRestore();
mocked(SDKContextClass.instance.roomViewStore.getRoomId).mockRestore();
});
describe("and the quick settings are open", () => {
@@ -17,7 +17,7 @@ import { MetaSpace, type SpaceKey } from "../../../../../src/stores/spaces";
import { shouldShowComponent } from "../../../../../src/customisations/helpers/UIComponents";
import { UIComponent } from "../../../../../src/settings/UIFeature";
import { mkStubRoom, wrapInMatrixClientContext, wrapInSdkContext } from "../../../../test-utils";
import { SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
import SpaceStore from "../../../../../src/stores/spaces/SpaceStore";
import DMRoomMap from "../../../../../src/utils/DMRoomMap";
import { type SpaceNotificationState } from "../../../../../src/stores/notifications/SpaceNotificationState";
@@ -124,12 +124,12 @@ describe("<SpacePanel />", () => {
isVersionSupported: jest.fn().mockResolvedValue(true),
doesServerSupportUnstableFeature: jest.fn().mockResolvedValue(false),
} as unknown as MatrixClient;
const SpacePanel = wrapInSdkContext(wrapInMatrixClientContext(UnwrappedSpacePanel), SdkContextClass.instance);
const SpacePanel = wrapInSdkContext(wrapInMatrixClientContext(UnwrappedSpacePanel), SDKContextClass.instance);
beforeAll(() => {
jest.spyOn(MatrixClientPeg, "get").mockReturnValue(mockClient);
jest.spyOn(MatrixClientPeg, "safeGet").mockReturnValue(mockClient);
SdkContextClass.instance.client = mockClient;
SDKContextClass.instance.client = mockClient;
});
beforeEach(() => {
@@ -16,17 +16,18 @@ import { mkStubRoom, stubClient } from "../../../../test-utils";
import DMRoomMap from "../../../../../src/utils/DMRoomMap";
import { MatrixClientPeg } from "../../../../../src/MatrixClientPeg";
import LegacyCallHandler from "../../../../../src/LegacyCallHandler";
import { SDKContext, SdkContextClass } from "../../../../../src/contexts/SDKContext";
import { SDKContext } from "../../../../../src/contexts/SDKContext";
import { SDKContextClass } from "../../../../../src/contexts/SDKContextClass";
jest.mock("../../../../../src/components/views/voip/LegacyCallView", () => jest.fn(() => "LegacyCallView"));
describe("LegacyCallViewForRoom", () => {
const LegacyCallViewMock = LegacyCallView as unknown as jest.Mock;
let sdkContext: SdkContextClass;
let sdkContext: SDKContextClass;
beforeEach(() => {
stubClient();
sdkContext = new SdkContextClass();
sdkContext = new SDKContextClass();
LegacyCallViewMock.mockClear();
});