diff options
Diffstat (limited to 'excalidraw-app/tests/LanguageList.test.tsx')
| -rw-r--r-- | excalidraw-app/tests/LanguageList.test.tsx | 34 |
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()); + }); +}); |
