Fix tests

This commit is contained in:
Borislav Pantaleev 2025-01-30 09:43:30 +02:00 committed by Borislav Pantaleev
parent 62017d4f4e
commit 45c7027d3c
4 changed files with 1506 additions and 1434 deletions

View File

@ -68,8 +68,6 @@
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
"react-hook-form": "^7.54.2", "react-hook-form": "^7.54.2",
"react-is": "^18.3.1", "react-is": "^18.3.1",
"react-router": "^6.28.2",
"react-router-dom": "^6.28.2",
"ts-jest-mock-import-meta": "^1.2.1" "ts-jest-mock-import-meta": "^1.2.1"
}, },
"scripts": { "scripts": {

View File

@ -1,12 +1,32 @@
import { render, screen } from "@testing-library/react"; import { render, screen } from "@testing-library/react";
import { BrowserRouter } from "react-router-dom";
import fetchMock from "jest-fetch-mock"; import fetchMock from "jest-fetch-mock";
fetchMock.enableMocks(); fetchMock.enableMocks();
jest.mock("./synapse/authProvider", () => ({
__esModule: true,
default: {
logout: jest.fn().mockResolvedValue(undefined),
},
}));
import App from "./App"; import App from "./App";
describe("App", () => { describe("App", () => {
beforeEach(() => {
// Reset all mocks before each test
fetchMock.resetMocks();
// Mock any fetch call to return empty JSON immediately
fetchMock.mockResponseOnce(JSON.stringify({}));
});
it("renders", async () => { it("renders", async () => {
render(<App />); render(
<BrowserRouter>
<App />
</BrowserRouter>
);
await screen.findAllByText("Welcome to Synapse Admin"); await screen.findAllByText("Welcome to Synapse Admin");
}); });
}); });

View File

@ -2,6 +2,7 @@ import polyglotI18nProvider from "ra-i18n-polyglot";
import { render, screen } from "@testing-library/react"; import { render, screen } from "@testing-library/react";
import { AdminContext } from "react-admin"; import { AdminContext } from "react-admin";
import { BrowserRouter } from "react-router-dom";
import LoginPage from "./LoginPage"; import LoginPage from "./LoginPage";
import { AppContext } from "../Context"; import { AppContext } from "../Context";
@ -14,9 +15,11 @@ describe("LoginForm", () => {
it("renders with no restriction to homeserver", async () => { it("renders with no restriction to homeserver", async () => {
await act(async () => { await act(async () => {
render( render(
<AdminContext i18nProvider={i18nProvider}> <BrowserRouter>
<LoginPage /> <AdminContext i18nProvider={i18nProvider}>
</AdminContext> <LoginPage />
</AdminContext>
</BrowserRouter>
); );
}); });
@ -33,13 +36,15 @@ describe("LoginForm", () => {
it("renders with single restricted homeserver", () => { it("renders with single restricted homeserver", () => {
render( render(
<AppContext.Provider <BrowserRouter>
value={{ restrictBaseUrl: "https://matrix.example.com", asManagedUsers: [], menu: [] }} <AppContext.Provider
> value={{ restrictBaseUrl: "https://matrix.example.com", asManagedUsers: [], menu: [] }}
>
<AdminContext i18nProvider={i18nProvider}> <AdminContext i18nProvider={i18nProvider}>
<LoginPage /> <LoginPage />
</AdminContext> </AdminContext>
</AppContext.Provider> </AppContext.Provider>
</BrowserRouter>
); );
screen.getByText(englishMessages.synapseadmin.auth.welcome); screen.getByText(englishMessages.synapseadmin.auth.welcome);
@ -56,14 +61,16 @@ describe("LoginForm", () => {
it("renders with multiple restricted homeservers", async () => { it("renders with multiple restricted homeservers", async () => {
render( render(
<AppContext.Provider <AppContext.Provider
value={{ value={{
restrictBaseUrl: ["https://matrix.example.com", "https://matrix.example.org"], restrictBaseUrl: ["https://matrix.example.com", "https://matrix.example.org"],
asManagedUsers: [], asManagedUsers: [],
menu: [], menu: [],
}} }}
> >
<AdminContext i18nProvider={i18nProvider}> <AdminContext i18nProvider={i18nProvider}>
<LoginPage /> <BrowserRouter>
<LoginPage />
</BrowserRouter>
</AdminContext> </AdminContext>
</AppContext.Provider> </AppContext.Provider>
); );

2885
yarn.lock

File diff suppressed because it is too large Load Diff