Files
HiveGrid-Wireframes/03 Quellen und Referenzen/hivegrid-cloud/apps/web/app/components/settings/LanguageSettingsNotice.test.tsx
T

38 lines
1.5 KiB
TypeScript

import "@testing-library/jest-dom";
import { render, screen } from "@testing-library/react";
import { describe, expect, it, vi } from "vitest";
const translations: Record<string, string> = {
"settings.language.heading": "Language",
"settings.language.description": "HiveGrid is available in German and English.",
"settings.language.currentLabel": "Current language",
"settings.language.v2Note": "You can change the language at any time from the language menu.",
"shared.locales.en": "English",
};
vi.mock("react-i18next", () => ({
useTranslation: () => ({
t: (key: string) => translations[key] ?? key,
i18n: { language: "en-US" },
}),
}));
import { LanguageSettingsNotice } from "./LanguageSettingsNotice";
describe("LanguageSettingsNotice", () => {
it("renders the active language and points to the global language menu", () => {
render(<LanguageSettingsNotice />);
expect(screen.getByRole("heading", { name: "Language" })).toBeInTheDocument();
expect(screen.getByText("HiveGrid is available in German and English.")).toBeInTheDocument();
expect(screen.getByText("English")).toBeInTheDocument();
expect(screen.getByText("You can change the language at any time from the language menu.")).toBeInTheDocument();
});
it("routes every visible string through t() so no raw i18n keys leak into the UI", () => {
const { container } = render(<LanguageSettingsNotice />);
expect(container.textContent).not.toContain("settings.language.");
});
});