import { describe, expect, it } from "vitest"; import { isLocale, matchLocale } from "@/lib/i18n/locales"; describe("isLocale", () => { it("accepts supported locales", () => { expect(isLocale("tr")).toBe(true); expect(isLocale("en")).toBe(true); expect(isLocale("de")).toBe(true); }); it("rejects anything else", () => { expect(isLocale("fr")).toBe(false); expect(isLocale("")).toBe(false); }); }); describe("matchLocale", () => { it("defaults without a header", () => { expect(matchLocale(null)).toBe("tr"); expect(matchLocale("")).toBe("tr"); }); it("matches primary ranges", () => { expect(matchLocale("en-US,en;q=0.9")).toBe("en"); expect(matchLocale("de-DE,de;q=0.9,en;q=0.8")).toBe("de"); }); it("respects q-values", () => { expect(matchLocale("en;q=0.5,tr;q=0.9")).toBe("tr"); }); it("falls back on unknown or wildcard ranges", () => { expect(matchLocale("fr-FR,fr;q=0.9")).toBe("tr"); expect(matchLocale("*")).toBe("tr"); }); });