test(i18n): add tests for getFlagCodeForLocale flag mapping

Cover standard locales, all special-case mappings (ja, zh, vi, ko, cs,
ga), and the undefined/fallback path to prevent future flag regressions.
This commit is contained in:
Muhammet Eren Karakuş
2026-03-02 11:15:03 +03:00
parent 278b1c92b3
commit cbcbd95812
+26 -1
View File
@@ -1,4 +1,4 @@
import { formatDateTime } from "src/locale";
import { formatDateTime, getFlagCodeForLocale } from "src/locale";
import { afterAll, beforeAll, describe, expect, it } from "vitest";
describe("DateFormatter", () => {
@@ -72,3 +72,28 @@ describe("DateFormatter", () => {
expect(text).toBe("-100");
});
});
describe("getFlagCodeForLocale", () => {
it("returns correct flag code for standard locales", () => {
expect(getFlagCodeForLocale("en-US")).toBe("EN");
expect(getFlagCodeForLocale("de-DE")).toBe("DE");
expect(getFlagCodeForLocale("fr-FR")).toBe("FR");
});
it("returns correct flag code for special-case locales", () => {
expect(getFlagCodeForLocale("ja-JP")).toBe("JP");
expect(getFlagCodeForLocale("zh-CN")).toBe("CN");
expect(getFlagCodeForLocale("vi-VN")).toBe("VN");
expect(getFlagCodeForLocale("ko-KR")).toBe("KR");
expect(getFlagCodeForLocale("cs-CZ")).toBe("CZ");
});
it("returns IE (Ireland) for Irish locale, not GA (Gabon)", () => {
expect(getFlagCodeForLocale("ga-IE")).toBe("IE");
});
it("falls back to EN when no locale is provided", () => {
expect(getFlagCodeForLocale()).toBe("EN");
expect(getFlagCodeForLocale(undefined)).toBe("EN");
});
});