From 03fcd8126a107b38fc942456538f2689a8a9cc57 Mon Sep 17 00:00:00 2001 From: Manuel Stahl Date: Wed, 24 Apr 2024 20:37:42 +0200 Subject: [PATCH 01/19] Fix warnings in LoginPage test Change-Id: I844bb190e1d3ea172395035224bab497f3950912 --- src/components/LoginPage.test.jsx | 44 ++++++++++++++++++------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src/components/LoginPage.test.jsx b/src/components/LoginPage.test.jsx index 8be1a71..c07a68e 100644 --- a/src/components/LoginPage.test.jsx +++ b/src/components/LoginPage.test.jsx @@ -1,26 +1,32 @@ import React from "react"; import { render, screen } from "@testing-library/react"; import { AdminContext } from "react-admin"; +import polyglotI18nProvider from "ra-i18n-polyglot"; import LoginPage from "./LoginPage"; import { AppContext } from "../AppContext"; +import englishMessages from "../i18n/en"; + +const i18nProvider = polyglotI18nProvider(() => englishMessages, "en", [ + { locale: "en", name: "English" }, +]); describe("LoginForm", () => { it("renders with no restriction to homeserver", () => { render( - + ); - screen.getByText("synapseadmin.auth.welcome"); + screen.getByText(englishMessages.synapseadmin.auth.welcome); screen.getByRole("combobox", { name: "" }); - screen.getByRole("textbox", { name: "ra.auth.username" }); - screen.getByText("ra.auth.password"); + screen.getByRole("textbox", { name: englishMessages.ra.auth.username }); + screen.getByText(englishMessages.ra.auth.password); const baseUrlInput = screen.getByRole("textbox", { - name: "synapseadmin.auth.base_url", + name: englishMessages.synapseadmin.auth.base_url, }); expect(baseUrlInput.className.split(" ")).not.toContain("Mui-readOnly"); - screen.getByRole("button", { name: "ra.auth.sign_in" }); + screen.getByRole("button", { name: englishMessages.ra.auth.sign_in }); }); it("renders with single restricted homeserver", () => { @@ -28,21 +34,21 @@ describe("LoginForm", () => { - + ); - screen.getByText("synapseadmin.auth.welcome"); + screen.getByText(englishMessages.synapseadmin.auth.welcome); screen.getByRole("combobox", { name: "" }); - screen.getByRole("textbox", { name: "ra.auth.username" }); - screen.getByText("ra.auth.password"); + screen.getByRole("textbox", { name: englishMessages.ra.auth.username }); + screen.getByText(englishMessages.ra.auth.password); const baseUrlInput = screen.getByRole("textbox", { - name: "synapseadmin.auth.base_url", + name: englishMessages.synapseadmin.auth.base_url, }); expect(baseUrlInput.className.split(" ")).toContain("Mui-readOnly"); - screen.getByRole("button", { name: "ra.auth.sign_in" }); + screen.getByRole("button", { name: englishMessages.ra.auth.sign_in }); }); it("renders with multiple restricted homeservers", async () => { @@ -55,17 +61,19 @@ describe("LoginForm", () => { ], }} > - + ); - screen.getByText("synapseadmin.auth.welcome"); + screen.getByText(englishMessages.synapseadmin.auth.welcome); screen.getByRole("combobox", { name: "" }); - screen.getByRole("textbox", { name: "ra.auth.username" }); - screen.getByText("ra.auth.password"); - screen.getByRole("combobox", { name: "synapseadmin.auth.base_url" }); - screen.getByRole("button", { name: "ra.auth.sign_in" }); + 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 }); }); }); From 2466af69360493e8268be096a7dcfa43cc43992c Mon Sep 17 00:00:00 2001 From: Manuel Stahl Date: Mon, 22 Apr 2024 14:23:55 +0200 Subject: [PATCH 02/19] Transform code base to typescript Change-Id: Ia1f862fb5962ddd54b8d7643abbc39bb314d1f8e --- index.html | 2 +- jest.config.ts | 13 + package.json | 33 +- src/{App.test.jsx => App.test.tsx} | 1 - src/{App.jsx => App.tsx} | 3 +- src/AppContext.jsx | 5 - src/AppContext.tsx | 9 + ...atarField.test.js => AvatarField.test.tsx} | 1 - .../{AvatarField.jsx => AvatarField.tsx} | 3 +- .../{EventReports.jsx => EventReports.tsx} | 12 +- .../{ImportFeature.jsx => ImportFeature.tsx} | 205 +++++----- ...{LoginPage.test.jsx => LoginPage.test.tsx} | 1 - .../{LoginPage.jsx => LoginPage.tsx} | 10 +- ...ationTokens.jsx => RegistrationTokens.tsx} | 13 +- .../{RoomDirectory.jsx => RoomDirectory.tsx} | 19 +- .../{ServerNotices.jsx => ServerNotices.tsx} | 18 +- src/components/date.ts | 30 ++ .../{destinations.jsx => destinations.tsx} | 50 ++- src/components/devices.jsx | 51 --- src/components/devices.tsx | 25 ++ src/components/{media.jsx => media.tsx} | 32 +- src/components/{rooms.jsx => rooms.tsx} | 34 +- .../{statistics.jsx => statistics.tsx} | 38 +- src/components/{users.jsx => users.tsx} | 90 ++--- src/i18n/{de.js => de.ts} | 3 +- src/i18n/{en.js => en.ts} | 4 +- src/i18n/{fa.js => fa.ts} | 3 +- src/i18n/{fr.js => fr.ts} | 3 +- src/i18n/index.d.ts | 90 +++++ src/i18n/{it.js => it.ts} | 3 +- src/i18n/{zh.js => zh.ts} | 8 +- src/{index.jsx => index.tsx} | 0 src/jest.setup.ts | 1 + src/setupTests.js | 3 - ...hProvider.test.js => authProvider.test.ts} | 33 +- .../{authProvider.js => authProvider.ts} | 22 +- ...aProvider.test.js => dataProvider.test.ts} | 9 +- .../{dataProvider.js => dataProvider.ts} | 381 +++++++++++++----- .../{synapse.test.js => synapse.test.ts} | 0 src/synapse/{synapse.js => synapse.ts} | 0 tsconfig.eslint.json | 4 + tsconfig.json | 64 +++ tsconfig.vite.json | 8 + vite.config.js => vite.config.ts | 0 yarn.lock | 260 +++++++++++- 45 files changed, 1081 insertions(+), 516 deletions(-) create mode 100644 jest.config.ts rename src/{App.test.jsx => App.test.tsx} (89%) rename src/{App.jsx => App.tsx} (97%) delete mode 100644 src/AppContext.jsx create mode 100644 src/AppContext.tsx rename src/components/{AvatarField.test.js => AvatarField.test.tsx} (94%) rename src/components/{AvatarField.jsx => AvatarField.tsx} (88%) rename src/components/{EventReports.jsx => EventReports.tsx} (94%) rename src/components/{ImportFeature.jsx => ImportFeature.tsx} (80%) rename src/components/{LoginPage.test.jsx => LoginPage.test.tsx} (99%) rename src/components/{LoginPage.jsx => LoginPage.tsx} (98%) rename src/components/{RegistrationTokens.jsx => RegistrationTokens.tsx} (92%) rename src/components/{RoomDirectory.jsx => RoomDirectory.tsx} (90%) rename src/components/{ServerNotices.jsx => ServerNotices.tsx} (89%) create mode 100644 src/components/date.ts rename src/components/{destinations.jsx => destinations.tsx} (83%) delete mode 100644 src/components/devices.jsx create mode 100644 src/components/devices.tsx rename src/components/{media.jsx => media.tsx} (91%) rename src/components/{rooms.jsx => rooms.tsx} (94%) rename src/components/{statistics.jsx => statistics.tsx} (57%) rename src/components/{users.jsx => users.tsx} (88%) rename src/i18n/{de.js => de.ts} (99%) rename src/i18n/{en.js => en.ts} (99%) rename src/i18n/{fa.js => fa.ts} (99%) rename src/i18n/{fr.js => fr.ts} (99%) create mode 100644 src/i18n/index.d.ts rename src/i18n/{it.js => it.ts} (99%) rename src/i18n/{zh.js => zh.ts} (97%) rename src/{index.jsx => index.tsx} (100%) create mode 100644 src/jest.setup.ts delete mode 100644 src/setupTests.js rename src/synapse/{authProvider.test.js => authProvider.test.ts} (83%) rename src/synapse/{authProvider.js => authProvider.ts} (86%) rename src/synapse/{dataProvider.test.js => dataProvider.test.ts} (92%) rename src/synapse/{dataProvider.js => dataProvider.ts} (64%) rename src/synapse/{synapse.test.js => synapse.test.ts} (100%) rename src/synapse/{synapse.js => synapse.ts} (100%) create mode 100644 tsconfig.eslint.json create mode 100644 tsconfig.json create mode 100644 tsconfig.vite.json rename vite.config.js => vite.config.ts (100%) diff --git a/index.html b/index.html index 8588999..2a0db84 100644 --- a/index.html +++ b/index.html @@ -119,7 +119,7 @@
Loading...
- +