import { readFileSync } from "node:fs"; import { join } from "node:path"; import { siteUrl } from "@/lib/site-content"; import robots from "./robots"; describe("robots", () => { it("allows everything, points to the sitemap at the site address and lists no route that does not exist", () => { expect(robots()).toEqual({ rules: [ { userAgent: "*", allow: ["/", "/_next/static/", "/_next/image/"], }, ], sitemap: `${siteUrl}/sitemap.xml`, }); }); it("has no host (Yandex only, deprecated) and blocks no /api/ or /admin/", () => { const result = robots(); expect(result).not.toHaveProperty("host"); expect(JSON.stringify(result)).not.toMatch(/\/api\/|\/admin\/|disallow/i); }); it("is saved without a byte order mark", () => { const bytes = readFileSync(join(__dirname, "robots.ts")); expect([...bytes.subarray(0, 3)]).not.toEqual([0xef, 0xbb, 0xbf]); }); });