You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-08-06 10:22:45 +03:00
@@ -156,7 +156,7 @@ describe("<MatrixChat />", () => {
|
||||
realQueryParams: {},
|
||||
};
|
||||
const getComponent = (props: Partial<ComponentProps<typeof MatrixChat>> = {}) =>
|
||||
render(<MatrixChat {...defaultProps} {...props} />);
|
||||
render(<MatrixChat {...defaultProps} {...props} />, { legacyRoot: true });
|
||||
|
||||
// make test results readable
|
||||
filterConsole(
|
||||
@@ -1380,7 +1380,6 @@ describe("<MatrixChat />", () => {
|
||||
|
||||
it("while we are checking the sync store", async () => {
|
||||
const rendered = getComponent({});
|
||||
await flushPromises();
|
||||
expect(rendered.getByTestId("spinner")).toBeInTheDocument();
|
||||
|
||||
// now a third session starts
|
||||
|
@@ -102,6 +102,7 @@ describe("<ForgotPassword>", () => {
|
||||
beforeEach(() => {
|
||||
renderResult = render(
|
||||
<ForgotPassword serverConfig={serverConfig} onComplete={onComplete} onLoginClick={onLoginClick} />,
|
||||
{ legacyRoot: true },
|
||||
);
|
||||
});
|
||||
|
||||
|
@@ -73,6 +73,7 @@ exports[`LogoutDialog Prompts user to connect backup if there is a backup on the
|
||||
</details>
|
||||
</div>
|
||||
<div
|
||||
aria-describedby=":rm:"
|
||||
aria-label="Close dialog"
|
||||
class="mx_AccessibleButton mx_Dialog_cancelButton"
|
||||
role="button"
|
||||
@@ -160,6 +161,7 @@ exports[`LogoutDialog Prompts user to set up backup if there is no backup on the
|
||||
</details>
|
||||
</div>
|
||||
<div
|
||||
aria-describedby=":rs:"
|
||||
aria-label="Close dialog"
|
||||
class="mx_AccessibleButton mx_Dialog_cancelButton"
|
||||
role="button"
|
||||
|
@@ -23,7 +23,9 @@ import SyntaxHighlight from "../../../../src/components/views/elements/SyntaxHig
|
||||
|
||||
describe("<SyntaxHighlight />", () => {
|
||||
it("renders", async () => {
|
||||
const { container } = render(<SyntaxHighlight>console.log("Hello, World!");</SyntaxHighlight>);
|
||||
const { container } = render(<SyntaxHighlight>console.log("Hello, World!");</SyntaxHighlight>, {
|
||||
legacyRoot: true,
|
||||
});
|
||||
await waitFor(() => expect(container.querySelector(".language-arcade")).toBeTruthy());
|
||||
expect(container).toMatchSnapshot();
|
||||
});
|
||||
@@ -31,7 +33,9 @@ describe("<SyntaxHighlight />", () => {
|
||||
it.each(["json", "javascript", "css"])("uses the provided language", async (lang) => {
|
||||
const mock = jest.spyOn(hljs, "highlight");
|
||||
|
||||
const { container } = render(<SyntaxHighlight language={lang}>// Hello, World</SyntaxHighlight>);
|
||||
const { container } = render(<SyntaxHighlight language={lang}>// Hello, World</SyntaxHighlight>, {
|
||||
legacyRoot: true,
|
||||
});
|
||||
await waitFor(() => expect(container.querySelector(`.language-${lang}`)).toBeTruthy());
|
||||
|
||||
const [_lang, opts] = mock.mock.lastCall!;
|
||||
|
@@ -70,6 +70,7 @@ describe("<PollHistory />", () => {
|
||||
wrapper: ({ children }) => (
|
||||
<MatrixClientContext.Provider value={mockClient}>{children}</MatrixClientContext.Provider>
|
||||
),
|
||||
legacyRoot: true,
|
||||
});
|
||||
|
||||
beforeAll(() => {
|
||||
|
@@ -206,6 +206,7 @@ describe("<UserInfo />", () => {
|
||||
|
||||
return render(<UserInfo {...defaultProps} {...props} />, {
|
||||
wrapper: Wrapper,
|
||||
legacyRoot: true,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -324,6 +325,9 @@ describe("<UserInfo />", () => {
|
||||
<MatrixClientContext.Provider value={mockClient}>
|
||||
<UserInfo {...defaultProps} />
|
||||
</MatrixClientContext.Provider>,
|
||||
{
|
||||
legacyRoot: true,
|
||||
},
|
||||
);
|
||||
|
||||
screen.getByRole("button", { name: "Send message" });
|
||||
@@ -339,6 +343,9 @@ describe("<UserInfo />", () => {
|
||||
<MatrixClientContext.Provider value={mockClient}>
|
||||
<UserInfo {...defaultProps} />
|
||||
</MatrixClientContext.Provider>,
|
||||
{
|
||||
legacyRoot: true,
|
||||
},
|
||||
);
|
||||
|
||||
expect(screen.queryByRole("button", { name: "Message" })).toBeNull();
|
||||
@@ -689,6 +696,7 @@ describe("<UserInfoHeader />", () => {
|
||||
|
||||
return render(<UserInfoHeader {...defaultProps} {...props} />, {
|
||||
wrapper: Wrapper,
|
||||
legacyRoot: true,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -728,6 +736,7 @@ describe("<DeviceItem />", () => {
|
||||
|
||||
return render(<DeviceItem {...defaultProps} {...props} />, {
|
||||
wrapper: Wrapper,
|
||||
legacyRoot: true,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -871,6 +880,7 @@ describe("<UserOptionsSection />", () => {
|
||||
|
||||
return render(<UserOptionsSection {...defaultProps} {...props} />, {
|
||||
wrapper: Wrapper,
|
||||
legacyRoot: true,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1097,6 +1107,7 @@ describe("<PowerLevelEditor />", () => {
|
||||
|
||||
return render(<PowerLevelEditor {...defaultProps} {...props} />, {
|
||||
wrapper: Wrapper,
|
||||
legacyRoot: true,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1156,6 +1167,7 @@ describe("<RoomKickButton />", () => {
|
||||
|
||||
return render(<RoomKickButton {...defaultProps} {...props} />, {
|
||||
wrapper: Wrapper,
|
||||
legacyRoot: true,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1263,6 +1275,7 @@ describe("<BanToggleButton />", () => {
|
||||
|
||||
return render(<BanToggleButton {...defaultProps} {...props} />, {
|
||||
wrapper: Wrapper,
|
||||
legacyRoot: true,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1395,6 +1408,7 @@ describe("<RoomAdminToolsContainer />", () => {
|
||||
|
||||
return render(<RoomAdminToolsContainer {...defaultProps} {...props} />, {
|
||||
wrapper: Wrapper,
|
||||
legacyRoot: true,
|
||||
});
|
||||
};
|
||||
|
||||
|
@@ -16,7 +16,15 @@ limitations under the License.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
import { act, fireEvent, render, RenderResult, screen } from "@testing-library/react";
|
||||
import {
|
||||
act,
|
||||
fireEvent,
|
||||
render,
|
||||
RenderResult,
|
||||
screen,
|
||||
waitFor,
|
||||
waitForElementToBeRemoved,
|
||||
} from "@testing-library/react";
|
||||
import { Room, MatrixClient, RoomState, RoomMember, User, MatrixEvent } from "matrix-js-sdk/src/matrix";
|
||||
import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||
import { mocked, MockedObject } from "jest-mock";
|
||||
@@ -374,7 +382,7 @@ describe("MemberList", () => {
|
||||
const renderComponent = () => {
|
||||
const context = new TestSdkContext();
|
||||
context.client = client;
|
||||
render(
|
||||
return render(
|
||||
<SDKContext.Provider value={context}>
|
||||
<MemberList
|
||||
searchQuery=""
|
||||
@@ -383,6 +391,9 @@ describe("MemberList", () => {
|
||||
roomId={room.roomId}
|
||||
/>
|
||||
</SDKContext.Provider>,
|
||||
{
|
||||
// legacyRoot: true,
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
@@ -409,7 +420,10 @@ describe("MemberList", () => {
|
||||
await flushPromises();
|
||||
|
||||
// button rendered but disabled
|
||||
expect(screen.getByText("Invite to this room")).toHaveAttribute("aria-disabled", "true");
|
||||
expect(screen.getByRole("button", { name: "Invite to this room" })).toHaveAttribute(
|
||||
"aria-disabled",
|
||||
"true",
|
||||
);
|
||||
});
|
||||
|
||||
it("renders enabled invite button when current user is a member and has rights to invite", async () => {
|
||||
@@ -427,10 +441,17 @@ describe("MemberList", () => {
|
||||
jest.spyOn(room, "getMyMembership").mockReturnValue(KnownMembership.Join);
|
||||
jest.spyOn(room, "canInvite").mockReturnValue(true);
|
||||
|
||||
renderComponent();
|
||||
await flushPromises();
|
||||
const { getByRole, getAllByRole } = renderComponent();
|
||||
await waitForElementToBeRemoved(() => screen.queryAllByRole("progressbar"));
|
||||
|
||||
fireEvent.click(screen.getByText("Invite to this room"));
|
||||
await waitFor(() =>
|
||||
expect(getAllByRole("button", { name: "Invite to this room" })).not.toHaveAttribute(
|
||||
"aria-disabled",
|
||||
"true",
|
||||
),
|
||||
);
|
||||
|
||||
fireEvent.click(getByRole("button", { name: "Invite to this room" }));
|
||||
|
||||
expect(defaultDispatcher.dispatch).toHaveBeenCalledWith({
|
||||
action: "view_invite",
|
||||
|
@@ -85,6 +85,9 @@ describe("SendWysiwygComposer", () => {
|
||||
/>
|
||||
</RoomContext.Provider>
|
||||
</MatrixClientContext.Provider>,
|
||||
{
|
||||
legacyRoot: true,
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
|
@@ -118,7 +118,9 @@ describe("<LoginWithQR />", () => {
|
||||
test("no homeserver support", async () => {
|
||||
// simulate no support
|
||||
jest.spyOn(MSC3906Rendezvous.prototype, "generateCode").mockRejectedValue("");
|
||||
render(getComponent({ client }));
|
||||
render(getComponent({ client }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
await waitFor(() =>
|
||||
expect(mockedFlow).toHaveBeenLastCalledWith({
|
||||
phase: Phase.Error,
|
||||
@@ -132,7 +134,9 @@ describe("<LoginWithQR />", () => {
|
||||
|
||||
test("failed to connect", async () => {
|
||||
jest.spyOn(MSC3906Rendezvous.prototype, "startAfterShowingCode").mockRejectedValue("");
|
||||
render(getComponent({ client }));
|
||||
render(getComponent({ client }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
await waitFor(() =>
|
||||
expect(mockedFlow).toHaveBeenLastCalledWith({
|
||||
phase: Phase.Error,
|
||||
@@ -148,7 +152,9 @@ describe("<LoginWithQR />", () => {
|
||||
test("render QR then back", async () => {
|
||||
const onFinished = jest.fn();
|
||||
jest.spyOn(MSC3906Rendezvous.prototype, "startAfterShowingCode").mockReturnValue(unresolvedPromise());
|
||||
render(getComponent({ client, onFinished }));
|
||||
render(getComponent({ client, onFinished }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
const rendezvous = mocked(MSC3906Rendezvous).mock.instances[0];
|
||||
|
||||
await waitFor(() =>
|
||||
@@ -176,7 +182,9 @@ describe("<LoginWithQR />", () => {
|
||||
|
||||
test("render QR then decline", async () => {
|
||||
const onFinished = jest.fn();
|
||||
render(getComponent({ client, onFinished }));
|
||||
render(getComponent({ client, onFinished }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
const rendezvous = mocked(MSC3906Rendezvous).mock.instances[0];
|
||||
|
||||
await waitFor(() =>
|
||||
@@ -206,7 +214,9 @@ describe("<LoginWithQR />", () => {
|
||||
(client as any).crypto = undefined;
|
||||
(client as any).getCrypto = () => undefined;
|
||||
const onFinished = jest.fn();
|
||||
render(getComponent({ client, onFinished }));
|
||||
render(getComponent({ client, onFinished }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
const rendezvous = mocked(MSC3906Rendezvous).mock.instances[0];
|
||||
|
||||
await waitFor(() =>
|
||||
@@ -246,7 +256,9 @@ describe("<LoginWithQR />", () => {
|
||||
jest.spyOn(MSC3906Rendezvous.prototype, "verifyNewDeviceOnExistingDevice").mockImplementation(() =>
|
||||
unresolvedPromise(),
|
||||
);
|
||||
render(getComponent({ client, onFinished }));
|
||||
render(getComponent({ client, onFinished }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
const rendezvous = mocked(MSC3906Rendezvous).mock.instances[0];
|
||||
|
||||
await waitFor(() =>
|
||||
@@ -283,7 +295,9 @@ describe("<LoginWithQR />", () => {
|
||||
|
||||
test("approve + verify", async () => {
|
||||
const onFinished = jest.fn();
|
||||
render(getComponent({ client, onFinished }));
|
||||
render(getComponent({ client, onFinished }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
const rendezvous = mocked(MSC3906Rendezvous).mock.instances[0];
|
||||
|
||||
await waitFor(() =>
|
||||
@@ -313,7 +327,9 @@ describe("<LoginWithQR />", () => {
|
||||
test("approve - rate limited", async () => {
|
||||
mocked(client.requestLoginToken).mockRejectedValue(new HTTPError("rate limit reached", 429));
|
||||
const onFinished = jest.fn();
|
||||
render(getComponent({ client, onFinished }));
|
||||
render(getComponent({ client, onFinished }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
const rendezvous = mocked(MSC3906Rendezvous).mock.instances[0];
|
||||
|
||||
await waitFor(() =>
|
||||
@@ -357,7 +373,9 @@ describe("<LoginWithQR />", () => {
|
||||
test("render QR then back", async () => {
|
||||
const onFinished = jest.fn();
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "negotiateProtocols").mockReturnValue(unresolvedPromise());
|
||||
render(getComponent({ client, onFinished }));
|
||||
render(getComponent({ client, onFinished }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
|
||||
await waitFor(() =>
|
||||
expect(mockedFlow).toHaveBeenLastCalledWith({
|
||||
@@ -378,7 +396,9 @@ describe("<LoginWithQR />", () => {
|
||||
});
|
||||
|
||||
test("failed to connect", async () => {
|
||||
render(getComponent({ client }));
|
||||
render(getComponent({ client }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "negotiateProtocols").mockResolvedValue({});
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "deviceAuthorizationGrant").mockRejectedValue(
|
||||
new HTTPError("Internal Server Error", 500),
|
||||
@@ -390,7 +410,9 @@ describe("<LoginWithQR />", () => {
|
||||
test("reciprocates login", async () => {
|
||||
jest.spyOn(global.window, "open");
|
||||
|
||||
render(getComponent({ client }));
|
||||
render(getComponent({ client }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "negotiateProtocols").mockResolvedValue({});
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "deviceAuthorizationGrant").mockResolvedValue({
|
||||
verificationUri: "mock-verification-uri",
|
||||
@@ -416,7 +438,9 @@ describe("<LoginWithQR />", () => {
|
||||
});
|
||||
|
||||
test("handles errors during reciprocation", async () => {
|
||||
render(getComponent({ client }));
|
||||
render(getComponent({ client }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "negotiateProtocols").mockResolvedValue({});
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "deviceAuthorizationGrant").mockResolvedValue({});
|
||||
await waitFor(() =>
|
||||
@@ -443,7 +467,9 @@ describe("<LoginWithQR />", () => {
|
||||
});
|
||||
|
||||
test("handles user cancelling during reciprocation", async () => {
|
||||
render(getComponent({ client }));
|
||||
render(getComponent({ client }), {
|
||||
legacyRoot: true,
|
||||
});
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "negotiateProtocols").mockResolvedValue({});
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "deviceAuthorizationGrant").mockResolvedValue({});
|
||||
jest.spyOn(MSC4108SignInWithQR.prototype, "deviceAuthorizationGrant").mockResolvedValue({});
|
||||
|
Reference in New Issue
Block a user