diff --git a/frontend/src/locale/Utils.test.tsx b/frontend/src/locale/Utils.test.tsx index e998dc319..a49460fee 100644 --- a/frontend/src/locale/Utils.test.tsx +++ b/frontend/src/locale/Utils.test.tsx @@ -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"); + }); +});