import { describe, expect, it } from "vitest"; import { listingRobots } from "@/lib/listingRobots"; const YASUJ = { name: "یاسوج" }; const KOHGILUYEH = { name: "کهگیلویه و بویراحمد" }; const scope = { matchedCity: YASUJ, matchedState: KOHGILUYEH }; const isNoindex = (result) => result?.robots?.index === false; describe("listingRobots", () => { it("صفحهٔ لیست بدون query ایندکس‌پذیر است", () => { expect(isNoindex(listingRobots({}, scope))).toBe(false); }); it("city/state تزریق‌شده از host شمرده نمی‌شوند (باگ noindex سیستمیک)", () => { const injected = { city: "یاسوج", state: "کهگیلویه و بویراحمد" }; expect(isNoindex(listingRobots(injected, scope))).toBe(false); }); it("تک‌فیلتر تخصص ایندکس‌پذیر می‌ماند", () => { expect(isNoindex(listingRobots({ specialty: "پوست و مو" }, scope))).toBe(false); }); it("جستجوی نام همیشه noindex است", () => { expect(isNoindex(listingRobots({ name: "احمدی" }, scope))).toBe(true); }); it("دو فیلتر واقعی کاربر noindex می‌گیرد", () => { expect(isNoindex(listingRobots({ specialty: "پوست و مو", gender: "woman" }, scope))).toBe(true); }); it("city متفاوت از دامنه یک فیلتر واقعی است", () => { const params = { city: "تهران", specialty: "پوست و مو" }; expect(isNoindex(listingRobots(params, scope))).toBe(true); }); it("روی دامنهٔ ریشه (بدون شهر) city صریح کاربر شمرده می‌شود", () => { const params = { city: "یاسوج", specialty: "پوست و مو" }; expect(isNoindex(listingRobots(params, {}))).toBe(true); }); });