import { describe, expect, it } from "vitest"; import { formatEstimateTime } from "./format-estimate"; import ar from "./locales/ar.json"; import en from "./locales/en.json"; import fa from "./locales/fa.json"; describe("formatEstimateTime", () => { it("translates estimates correctly in Arabic", () => { expect(formatEstimateTime("2 min", ar)).toBe("2 دقيقة"); expect(formatEstimateTime("3 min", ar)).toBe("3 دقائق"); expect(formatEstimateTime("4 min", ar)).toBe("4 دقائق"); expect(formatEstimateTime("5 min", ar)).toBe("5 دقائق"); expect(formatEstimateTime("16 min", ar)).toBe("16 دقيقة"); expect(formatEstimateTime("min", ar)).toBe("دقيقة"); }); it("translates estimates correctly in Persian", () => { expect(formatEstimateTime("2 min", fa)).toBe("۲ دقیقه"); expect(formatEstimateTime("3 min", fa)).toBe("۳ دقیقه"); expect(formatEstimateTime("4 min", fa)).toBe("۴ دقیقه"); expect(formatEstimateTime("16 min", fa)).toBe("۱۶ دقیقه"); expect(formatEstimateTime("min", fa)).toBe("دقیقه"); }); it("handles English locale properly", () => { expect(formatEstimateTime("2 min", en)).toBe("2 min"); expect(formatEstimateTime("3 min", en)).toBe("3 min"); expect(formatEstimateTime("16 min", en)).toBe("16 min"); expect(formatEstimateTime("min", en)).toBe("min"); }); it("falls back gracefully for unknown counts or missing keys", () => { const mockT = { min: "دقيقة" }; expect(formatEstimateTime("99 min", mockT)).toBe("99 دقيقة"); expect(formatEstimateTime("", mockT)).toBe(""); expect(formatEstimateTime(null, mockT)).toBe(""); expect(formatEstimateTime("unformatted string", mockT)).toBe("unformatted string"); }); });