Files
nobat724_front/lib/listingRobots.test.js
T
hamed fd48b48613 feat: add canonical URL handling and entity quality checks
- Implemented canonical URL strategies for city-specific domains and entities.
- Added helper functions for domain and city resolution.
- Created tests for canonical URL generation and domain resolution.
- Introduced entity quality checks for doctors and clinics to ensure meaningful content.
- Developed unique introductory texts for listing pages to avoid duplicate content.
- Established robots.txt policies for listing pages to manage indexing based on user filters.
- Enhanced specialty content with dynamic introductions and FAQs to improve SEO.
2026-07-19 07:52:50 +03:30

42 lines
1.8 KiB
JavaScript

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);
});
});