- 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.
42 lines
1.8 KiB
JavaScript
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);
|
|
});
|
|
});
|