feat: enhance SEO for listing and specialty pages, fix search autocomplete issue
This commit is contained in:
+22
-20
@@ -1,41 +1,43 @@
|
||||
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);
|
||||
expect(isNoindex(listingRobots({}))).toBe(false);
|
||||
expect(isNoindex(listingRobots(undefined))).toBe(false);
|
||||
});
|
||||
|
||||
it("city/state تزریقشده از host شمرده نمیشوند (باگ noindex سیستمیک)", () => {
|
||||
const injected = { city: "یاسوج", state: "کهگیلویه و بویراحمد" };
|
||||
expect(isNoindex(listingRobots(injected, scope))).toBe(false);
|
||||
it("pagination ایندکسپذیر میماند (تصمیم M3-B)", () => {
|
||||
expect(isNoindex(listingRobots({ page: "2" }))).toBe(false);
|
||||
expect(isNoindex(listingRobots({ page: "38" }))).toBe(false);
|
||||
});
|
||||
|
||||
it("تکفیلتر تخصص ایندکسپذیر میماند", () => {
|
||||
expect(isNoindex(listingRobots({ specialty: "پوست و مو" }, scope))).toBe(false);
|
||||
it("هر فیلتر جستجو noindex میگیرد", () => {
|
||||
expect(isNoindex(listingRobots({ specialty: "پوست و مو" }))).toBe(true);
|
||||
expect(isNoindex(listingRobots({ name: "احمدی" }))).toBe(true);
|
||||
expect(isNoindex(listingRobots({ gender: "woman" }))).toBe(true);
|
||||
expect(isNoindex(listingRobots({ sort: "point" }))).toBe(true);
|
||||
});
|
||||
|
||||
it("جستجوی نام همیشه noindex است", () => {
|
||||
expect(isNoindex(listingRobots({ name: "احمدی" }, scope))).toBe(true);
|
||||
it("city/state حتی وقتی از لینک دامنهٔ خودی میآیند noindex میگیرند", () => {
|
||||
const fromHomeSearch = { city: "یاسوج", state: "کهگیلویه و بویراحمد" };
|
||||
expect(isNoindex(listingRobots(fromHomeSearch))).toBe(true);
|
||||
});
|
||||
|
||||
it("دو فیلتر واقعی کاربر noindex میگیرد", () => {
|
||||
expect(isNoindex(listingRobots({ specialty: "پوست و مو", gender: "woman" }, scope))).toBe(true);
|
||||
it("فیلتر کنار page هم noindex میگیرد", () => {
|
||||
expect(isNoindex(listingRobots({ specialty: "پوست و مو", page: "3" }))).toBe(true);
|
||||
});
|
||||
|
||||
it("city متفاوت از دامنه یک فیلتر واقعی است", () => {
|
||||
const params = { city: "تهران", specialty: "پوست و مو" };
|
||||
expect(isNoindex(listingRobots(params, scope))).toBe(true);
|
||||
it("پارامتر با مقدار خالی فیلتر حساب نمیشود", () => {
|
||||
expect(isNoindex(listingRobots({ specialty: "", name: undefined }))).toBe(false);
|
||||
});
|
||||
|
||||
it("روی دامنهٔ ریشه (بدون شهر) city صریح کاربر شمرده میشود", () => {
|
||||
const params = { city: "یاسوج", specialty: "پوست و مو" };
|
||||
expect(isNoindex(listingRobots(params, {}))).toBe(true);
|
||||
it("noindex همیشه با follow همراه است", () => {
|
||||
expect(listingRobots({ name: "احمدی" }).robots).toEqual({
|
||||
index: false,
|
||||
follow: true,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user