Move ToastContext and utilities to shared components (#33949)
* Move ToastContext and utilities to shared components * lint * fix type * cleanup * fix broken test * fix lint * Add more tests for ToastContext * Potential fix for pull request finding 'Unused variable, import, function or class' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
parent
6ce24e2668
commit
0ddc418cf9
@@ -12,10 +12,10 @@ import { type MatrixClient, type UploadResponse } from "matrix-js-sdk/src/matrix
|
||||
import { mocked } from "jest-mock";
|
||||
import userEvent from "@testing-library/user-event";
|
||||
import { TooltipProvider } from "@vector-im/compound-web";
|
||||
import { ToastContext, type ToastRack } from "@element-hq/web-shared-components";
|
||||
|
||||
import UserProfileSettings from "../../../../../src/components/views/settings/UserProfileSettings";
|
||||
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 Modal from "../../../../../src/Modal";
|
||||
@@ -72,7 +72,7 @@ const renderProfileSettings = (toastRack: Partial<ToastRack>, client: MatrixClie
|
||||
return render(
|
||||
<TooltipProvider>
|
||||
<MatrixClientContext.Provider value={client}>
|
||||
<ToastContext.Provider value={toastRack}>
|
||||
<ToastContext.Provider value={toastRack as ToastRack}>
|
||||
<UserProfileSettings canSetAvatar={true} canSetDisplayName={true} />
|
||||
</ToastContext.Provider>
|
||||
</MatrixClientContext.Provider>
|
||||
|
||||
+4
-1
@@ -12,6 +12,7 @@ import { type MatrixClient, ThreepidMedium } from "matrix-js-sdk/src/matrix";
|
||||
import { logger } from "matrix-js-sdk/src/logger";
|
||||
import userEvent from "@testing-library/user-event";
|
||||
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";
|
||||
@@ -54,7 +55,9 @@ describe("<AccountUserSettingsTab />", () => {
|
||||
const getComponent = () => (
|
||||
<MatrixClientContext.Provider value={mockClient}>
|
||||
<SDKContext.Provider value={stores}>
|
||||
<AccountUserSettingsTab {...defaultProps} />
|
||||
<ToastContext.Provider value={new ToastRack()}>
|
||||
<AccountUserSettingsTab {...defaultProps} />
|
||||
</ToastContext.Provider>
|
||||
</SDKContext.Provider>
|
||||
</MatrixClientContext.Provider>
|
||||
);
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
/*
|
||||
Copyright 2024 New Vector Ltd.
|
||||
Copyright 2024 The Matrix.org Foundation C.I.C.
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
|
||||
Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
import { ToastRack } from "../../../src/contexts/ToastContext";
|
||||
|
||||
describe("ToastRack", () => {
|
||||
it("should return a toast once one is displayed", () => {
|
||||
const toastRack = new ToastRack();
|
||||
toastRack.displayToast("Hello, world!");
|
||||
|
||||
expect(toastRack.getActiveToast()).toBe("Hello, world!");
|
||||
});
|
||||
|
||||
it("calls update callback when a toast is added", () => {
|
||||
const toastRack = new ToastRack();
|
||||
const updateCallbackFn = jest.fn();
|
||||
toastRack.setCallback(updateCallbackFn);
|
||||
toastRack.displayToast("Hello, world!");
|
||||
|
||||
expect(updateCallbackFn).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("removes toast when remove function is called", () => {
|
||||
const toastRack = new ToastRack();
|
||||
const removeFn = toastRack.displayToast("Hello, world!");
|
||||
expect(toastRack.getActiveToast()).toBe("Hello, world!");
|
||||
removeFn();
|
||||
expect(toastRack.getActiveToast()).toBeUndefined();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user