feat(web): i18n with react-i18next (sv/en)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { expect, test, beforeEach } from "vitest";
|
||||
import { render, screen, act } from "@testing-library/react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import i18n from "./index";
|
||||
import { useLocale } from "./use-locale";
|
||||
|
||||
beforeEach(async () => {
|
||||
await i18n.changeLanguage("en");
|
||||
});
|
||||
|
||||
function Probe() {
|
||||
const { t } = useTranslation();
|
||||
const { setLocale } = useLocale();
|
||||
return (
|
||||
<div>
|
||||
<span data-testid="title">{t("objects.title")}</span>
|
||||
<button onClick={() => setLocale("sv")}>sv</button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
test("switches language at runtime", async () => {
|
||||
render(<Probe />);
|
||||
expect(screen.getByTestId("title")).toHaveTextContent("Objects");
|
||||
await act(async () => {
|
||||
screen.getByRole("button", { name: "sv" }).click();
|
||||
});
|
||||
expect(screen.getByTestId("title")).toHaveTextContent("Föremål");
|
||||
});
|
||||
Reference in New Issue
Block a user