import { describe, expect, it } from "vitest"; import { decodeRouteParam } from "@/lib/routeParams"; describe("decodeRouteParam", () => { it("اسلاگ درصدی را به فارسی برمی‌گرداند", () => { expect( decodeRouteParam("%D8%AC%D8%B1%D8%A7%D8%AD-%DA%AF%D9%88%D8%A7%D8%B1%D8%B4") ).toBe("جراح-گوارش"); }); it("فارسی خام دست‌نخورده می‌ماند", () => { expect(decodeRouteParam("جراح-گوارش")).toBe("جراح-گوارش"); }); it("اسلاگ لاتین دست‌نخورده می‌ماند", () => { expect(decodeRouteParam("gastroenterology")).toBe("gastroenterology"); }); it("درصد ناقص throw نمی‌کند و ورودی را برمی‌گرداند", () => { // نتیجه‌اش باید ۴۰۴ طبیعی باشد، نه ۵۰۰. expect(decodeRouteParam("%D8%")).toBe("%D8%"); expect(decodeRouteParam("100%-natural")).toBe("100%-natural"); }); it("ورودی غیر رشته‌ای همان‌طور برمی‌گردد", () => { expect(decodeRouteParam(undefined)).toBeUndefined(); expect(decodeRouteParam(null)).toBeNull(); }); });