diff --git a/apps/web/test/unit-tests/components/structures/MatrixChat-test.tsx b/apps/web/test/unit-tests/components/structures/MatrixChat-test.tsx
index 9d4084d220..97de5556d2 100644
--- a/apps/web/test/unit-tests/components/structures/MatrixChat-test.tsx
+++ b/apps/web/test/unit-tests/components/structures/MatrixChat-test.tsx
@@ -1688,8 +1688,9 @@ describe(" ", () => {
await flushPromises();
expect(Lifecycle.attemptDelegatedAuthLogin).toHaveBeenCalled();
- // should just show the welcome screen
- await rendered.findByText("Welcome to Test");
+ // should just show the welcome screen (wait for welcome page chrome render; HealthChat's
+ // Welcome renders an EmbeddedPage body that does not load under jsdom, so assert on the chrome)
+ await rendered.findByText("Powered by Matrix");
expect(rendered.container).toMatchSnapshot();
});
diff --git a/apps/web/test/unit-tests/components/structures/__snapshots__/MatrixChat-test.tsx.snap b/apps/web/test/unit-tests/components/structures/__snapshots__/MatrixChat-test.tsx.snap
index 80f5c9116c..cc0a924d3b 100644
--- a/apps/web/test/unit-tests/components/structures/__snapshots__/MatrixChat-test.tsx.snap
+++ b/apps/web/test/unit-tests/components/structures/__snapshots__/MatrixChat-test.tsx.snap
@@ -140,57 +140,12 @@ exports[` Multi-tab lockout waits for other tab to stop during sta
class="mx_Welcome"
>
{
jest.spyOn(MatrixClientPeg, "get").mockReturnValue(mockClient);
jest.spyOn(MatrixClientPeg, "safeGet").mockReturnValue(mockClient);
+ // HealthChat's UserExtendedProfileInfo reads SdkContextClass.instance.userProfilesStore,
+ // which requires the singleton client to be set (it is, on login, in the real app).
+ SdkContextClass.instance.client = mockClient;
});
describe("
", () => {
diff --git a/apps/web/test/unit-tests/components/views/rooms/RoomHeader/RoomHeader-test.tsx b/apps/web/test/unit-tests/components/views/rooms/RoomHeader/RoomHeader-test.tsx
index c997a65ae7..f7a8cfc3cb 100644
--- a/apps/web/test/unit-tests/components/views/rooms/RoomHeader/RoomHeader-test.tsx
+++ b/apps/web/test/unit-tests/components/views/rooms/RoomHeader/RoomHeader-test.tsx
@@ -667,8 +667,8 @@ describe("RoomHeader", () => {
const button = screen.getByRole("button", { name: "Video call" });
expect(button).not.toHaveAttribute("aria-disabled", "true");
await user.click(button);
- const elementCallButton = screen.getByRole("menuitem", { name: "Element Call" });
- const legacyCallButton = screen.getByRole("menuitem", { name: "Legacy Call" });
+ const elementCallButton = screen.getByRole("menuitem", { name: _t("voip|element_call") });
+ const legacyCallButton = screen.getByRole("menuitem", { name: _t("voip|legacy_call") });
expect(elementCallButton).toBeInTheDocument();
expect(legacyCallButton).toBeInTheDocument();
});
@@ -684,8 +684,8 @@ describe("RoomHeader", () => {
const button = screen.getByRole("button", { name: "Voice call" });
expect(button).not.toHaveAttribute("aria-disabled", "true");
await user.click(button);
- const elementCallButton = screen.getByRole("menuitem", { name: "Element Call" });
- const legacyCallButton = screen.getByRole("menuitem", { name: "Legacy Call" });
+ const elementCallButton = screen.getByRole("menuitem", { name: _t("voip|element_call") });
+ const legacyCallButton = screen.getByRole("menuitem", { name: _t("voip|legacy_call") });
expect(elementCallButton).toBeInTheDocument();
expect(legacyCallButton).toBeInTheDocument();
});
diff --git a/apps/web/test/unit-tests/components/views/settings/UserProfileSettings-test.tsx b/apps/web/test/unit-tests/components/views/settings/UserProfileSettings-test.tsx
index 0b38cc72f3..313f840313 100644
--- a/apps/web/test/unit-tests/components/views/settings/UserProfileSettings-test.tsx
+++ b/apps/web/test/unit-tests/components/views/settings/UserProfileSettings-test.tsx
@@ -18,6 +18,7 @@ import { mkStubRoom, stubClient } from "../../../../test-utils";
import { ToastContext, type ToastRack } from "../../../../../src/contexts/ToastContext";
import { OwnProfileStore } from "../../../../../src/stores/OwnProfileStore";
import MatrixClientContext from "../../../../../src/contexts/MatrixClientContext";
+import { SdkContextClass } from "../../../../../src/contexts/SDKContext";
import Modal from "../../../../../src/Modal";
interface MockedAvatarSettingProps {
@@ -86,6 +87,9 @@ describe("ProfileSettings", () => {
beforeEach(() => {
client = stubClient();
+ // HealthChat's ExtendedProfileSettings reads the global SdkContextClass.instance.userProfilesStore,
+ // which requires the singleton client to be set (it is, on login, in the real app).
+ SdkContextClass.instance.client = client;
toastRack = {
displayToast: jest.fn().mockReturnValue(jest.fn()),
};
diff --git a/apps/web/test/unit-tests/components/views/settings/tabs/user/AccountUserSettingsTab-test.tsx b/apps/web/test/unit-tests/components/views/settings/tabs/user/AccountUserSettingsTab-test.tsx
index b12ba3a4ab..e3f9484e0b 100644
--- a/apps/web/test/unit-tests/components/views/settings/tabs/user/AccountUserSettingsTab-test.tsx
+++ b/apps/web/test/unit-tests/components/views/settings/tabs/user/AccountUserSettingsTab-test.tsx
@@ -85,6 +85,9 @@ describe("
", () => {
stores = new SdkContextClass();
stores.client = mockClient;
+ // HealthChat's ExtendedProfileSettings (mounted via UserProfileSettings) reads the global
+ // SdkContextClass.instance.userProfilesStore, which requires the singleton client to be set.
+ SdkContextClass.instance.client = mockClient;
// stub out this store completely to avoid mocking initialisation
const mockOidcClientStore = {} as unknown as OidcClientStore;
jest.spyOn(stores, "oidcClientStore", "get").mockReturnValue(mockOidcClientStore);
diff --git a/apps/web/test/unit-tests/components/views/settings/tabs/user/__snapshots__/AccountUserSettingsTab-test.tsx.snap b/apps/web/test/unit-tests/components/views/settings/tabs/user/__snapshots__/AccountUserSettingsTab-test.tsx.snap
index c6a31f0b12..b75035becd 100644
--- a/apps/web/test/unit-tests/components/views/settings/tabs/user/__snapshots__/AccountUserSettingsTab-test.tsx.snap
+++ b/apps/web/test/unit-tests/components/views/settings/tabs/user/__snapshots__/AccountUserSettingsTab-test.tsx.snap
@@ -42,14 +42,14 @@ exports[`
3pids should display 3pid email addresses an
>
Email Address
@@ -154,14 +154,14 @@ exports[`
3pids should display 3pid email addresses an
Phone Number
diff --git a/apps/web/test/unit-tests/settings/controllers/RequiresSettingsController-test.ts b/apps/web/test/unit-tests/settings/controllers/RequiresSettingsController-test.ts
index 36335d9323..42394c7209 100644
--- a/apps/web/test/unit-tests/settings/controllers/RequiresSettingsController-test.ts
+++ b/apps/web/test/unit-tests/settings/controllers/RequiresSettingsController-test.ts
@@ -10,9 +10,17 @@ import RequiresSettingsController from "../../../../src/settings/controllers/Req
import { SettingLevel } from "../../../../src/settings/SettingLevel";
import SettingsStore from "../../../../src/settings/SettingsStore";
import MatrixClientBackedController from "../../../../src/settings/controllers/MatrixClientBackedController";
+import { Layout } from "../../../../src/settings/enums/Layout";
import { getMockClientWithEventEmitter, mockClientMethodsServer } from "../../../test-utils";
describe("RequiresSettingsController", () => {
+ beforeEach(async () => {
+ // HealthChat changed the default "layout" to Bubble. These tests use "useCompactLayout" as a
+ // sample boolean setting, but its IncompatibleController forces it to false unless layout is
+ // Group, so pin the layout to Group to keep useCompactLayout effective.
+ await SettingsStore.setValue("layout", null, SettingLevel.DEVICE, Layout.Group);
+ });
+
afterEach(() => {
SettingsStore.reset();
});
diff --git a/apps/web/test/unit-tests/utils/EventPresentationContextProvider-test.tsx b/apps/web/test/unit-tests/utils/EventPresentationContextProvider-test.tsx
index 3dea23f88a..1bbad3cfae 100644
--- a/apps/web/test/unit-tests/utils/EventPresentationContextProvider-test.tsx
+++ b/apps/web/test/unit-tests/utils/EventPresentationContextProvider-test.tsx
@@ -25,6 +25,9 @@ const PresentationProbe: React.FC = () => {
describe("EventPresentationContextProvider", () => {
beforeEach(async () => {
+ // HealthChat changed the default "layout" to Bubble, but useCompactLayout's IncompatibleController
+ // only allows compact density when the layout is Group. Pin it so the compact-layout test is meaningful.
+ await SettingsStore.setValue("layout", null, SettingLevel.DEVICE, Layout.Group);
await SettingsStore.setValue("useCompactLayout", null, SettingLevel.DEVICE, false);
});