Files
paseo/packages/app/src/i18n/sync-language.test.ts
T
chyendongnhanh338andGitHub 08ebe5e7e1 Complete client UI i18n migration
Adds client-side i18n support, language settings, translated UI copy, and locale parity coverage.
2026-06-11 14:15:35 +08:00

33 lines
927 B
TypeScript

import { describe, expect, it, vi } from "vitest";
import { ensureI18nLanguageForRender } from "./sync-language";
describe("ensureI18nLanguageForRender", () => {
it("changes the i18n language before callers render children", () => {
const calls: string[] = [];
const i18n = {
language: "en",
changeLanguage: (locale: string) => {
calls.push(locale);
i18n.language = locale;
return Promise.resolve();
},
};
ensureI18nLanguageForRender("zh-CN", i18n);
expect(i18n.language).toBe("zh-CN");
expect(calls).toEqual(["zh-CN"]);
});
it("does not call changeLanguage when the current language already matches", () => {
const changeLanguage = vi.fn<() => Promise<void>>().mockResolvedValue(undefined);
ensureI18nLanguageForRender("en", {
language: "en",
changeLanguage,
});
expect(changeLanguage).not.toHaveBeenCalled();
});
});