aboutsummaryrefslogtreecommitdiffstats
path: root/excalidraw-app/tests/LanguageList.test.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'excalidraw-app/tests/LanguageList.test.tsx')
-rw-r--r--excalidraw-app/tests/LanguageList.test.tsx34
1 files changed, 34 insertions, 0 deletions
diff --git a/excalidraw-app/tests/LanguageList.test.tsx b/excalidraw-app/tests/LanguageList.test.tsx
new file mode 100644
index 0000000..a0cfe07
--- /dev/null
+++ b/excalidraw-app/tests/LanguageList.test.tsx
@@ -0,0 +1,34 @@
+import { defaultLang } from "@excalidraw/excalidraw/i18n";
+import { UI } from "@excalidraw/excalidraw/tests/helpers/ui";
+import {
+ screen,
+ fireEvent,
+ waitFor,
+ render,
+} from "@excalidraw/excalidraw/tests/test-utils";
+
+import ExcalidrawApp from "../App";
+
+describe("Test LanguageList", () => {
+ it("rerenders UI on language change", async () => {
+ await render(<ExcalidrawApp />);
+
+ // select rectangle tool to show properties menu
+ UI.clickTool("rectangle");
+ // english lang should display `thin` label
+ expect(screen.queryByTitle(/thin/i)).not.toBeNull();
+ fireEvent.click(document.querySelector(".dropdown-menu-button")!);
+
+ fireEvent.change(document.querySelector(".dropdown-select__language")!, {
+ target: { value: "de-DE" },
+ });
+ // switching to german, `thin` label should no longer exist
+ await waitFor(() => expect(screen.queryByTitle(/thin/i)).toBeNull());
+ // reset language
+ fireEvent.change(document.querySelector(".dropdown-select__language")!, {
+ target: { value: defaultLang.code },
+ });
+ // switching back to English
+ await waitFor(() => expect(screen.queryByTitle(/thin/i)).not.toBeNull());
+ });
+});