
* WIP: add scheduler commands * refactor scheduler commands page * WIP on CRUD for ScheduledCommands * more refactoring, finish CRUD On scheduled pages * Add info text about Scheduler service * Finish recurring commands add/edit * add more texts * fix server status behavior on not-loaded-yet state; adjust texts; lint fixes * add link to the help pages in the commands palette * Move Commands Panel to ServerSchedulesPage * Rename Server Schedules to Server Actions * more texts, a bit changed visual of the actions page, lint fix * add docs * fix tests * Add UTC label to scheduled command create/edit
93 lines
3.2 KiB
TypeScript
93 lines
3.2 KiB
TypeScript
import { render, screen } from "@testing-library/react";
|
|
import polyglotI18nProvider from "ra-i18n-polyglot";
|
|
import { AdminContext } from "react-admin";
|
|
import { BrowserRouter } from "react-router-dom";
|
|
|
|
import LoginPage from "./LoginPage";
|
|
import { AppContext } from "../Context";
|
|
import englishMessages from "../i18n/en";
|
|
|
|
const i18nProvider = polyglotI18nProvider(() => englishMessages, "en", [{ locale: "en", name: "English" }]);
|
|
import { act } from "@testing-library/react";
|
|
|
|
describe("LoginForm", () => {
|
|
it("renders with no restriction to homeserver", async () => {
|
|
await act(async () => {
|
|
render(
|
|
<BrowserRouter>
|
|
<AdminContext i18nProvider={i18nProvider}>
|
|
<LoginPage />
|
|
</AdminContext>
|
|
</BrowserRouter>
|
|
);
|
|
});
|
|
|
|
screen.getByText(englishMessages.synapseadmin.auth.welcome);
|
|
screen.getByRole("combobox", { name: "" });
|
|
screen.getByRole("textbox", { name: englishMessages.ra.auth.username });
|
|
screen.getByText(englishMessages.ra.auth.password);
|
|
const baseUrlInput = screen.getByRole("textbox", {
|
|
name: englishMessages.synapseadmin.auth.base_url,
|
|
});
|
|
expect(baseUrlInput.className.split(" ")).not.toContain("Mui-readOnly");
|
|
screen.getByRole("button", { name: englishMessages.ra.auth.sign_in });
|
|
});
|
|
|
|
it("renders with single restricted homeserver", () => {
|
|
render(
|
|
<BrowserRouter>
|
|
<AppContext.Provider
|
|
value={{
|
|
restrictBaseUrl: "https://matrix.example.com",
|
|
asManagedUsers: [],
|
|
menu: [],
|
|
corsCredentials: "include",
|
|
}}
|
|
>
|
|
<AdminContext i18nProvider={i18nProvider}>
|
|
<LoginPage />
|
|
</AdminContext>
|
|
</AppContext.Provider>
|
|
</BrowserRouter>
|
|
);
|
|
|
|
screen.getByText(englishMessages.synapseadmin.auth.welcome);
|
|
screen.getByRole("combobox", { name: "" });
|
|
screen.getByRole("textbox", { name: englishMessages.ra.auth.username });
|
|
screen.getByText(englishMessages.ra.auth.password);
|
|
const baseUrlInput = screen.getByRole("textbox", {
|
|
name: englishMessages.synapseadmin.auth.base_url,
|
|
});
|
|
expect(baseUrlInput.className.split(" ")).toContain("Mui-readOnly");
|
|
screen.getByRole("button", { name: englishMessages.ra.auth.sign_in });
|
|
});
|
|
|
|
it("renders with multiple restricted homeservers", async () => {
|
|
render(
|
|
<AppContext.Provider
|
|
value={{
|
|
restrictBaseUrl: ["https://matrix.example.com", "https://matrix.example.org"],
|
|
asManagedUsers: [],
|
|
menu: [],
|
|
corsCredentials: "include",
|
|
}}
|
|
>
|
|
<AdminContext i18nProvider={i18nProvider}>
|
|
<BrowserRouter>
|
|
<LoginPage />
|
|
</BrowserRouter>
|
|
</AdminContext>
|
|
</AppContext.Provider>
|
|
);
|
|
|
|
screen.getByText(englishMessages.synapseadmin.auth.welcome);
|
|
screen.getByRole("combobox", { name: "" });
|
|
screen.getByRole("textbox", { name: englishMessages.ra.auth.username });
|
|
screen.getByText(englishMessages.ra.auth.password);
|
|
screen.getByRole("combobox", {
|
|
name: englishMessages.synapseadmin.auth.base_url,
|
|
});
|
|
screen.getByRole("button", { name: englishMessages.ra.auth.sign_in });
|
|
});
|
|
});
|