import { readFile } from "node:fs/promises"; import { describe, expect, it, vi } from "vitest"; vi.hoisted(() => { vi.stubEnv("BASE_URL", "https://guide.example.test"); }); import robots from "@/app/robots"; async function repositoryFile(path: string): Promise { return readFile(new URL(`../${path}`, import.meta.url), "utf8"); } describe("public rendering performance", () => { it("keeps the directory eligible for a populated static shell", async () => { const [layout, page] = await Promise.all([ repositoryFile("app/layout.tsx"), repositoryFile("app/page.tsx"), ]); expect(layout).not.toContain("export const instant = false"); expect(page).not.toContain("export const instant = false"); expect(page).toContain("async function DirectoryContent()"); expect(page).toContain("await connection()"); expect(page).toContain('fallback={
{ const header = await repositoryFile("components/public/site-header.tsx"); expect(header).toContain(""); expect(header).toContain(" { const directory = await repositoryFile( "components/public/structured-directory.tsx", ); expect(directory).toContain( 'fetchPriority={index === 0 ? "high" : undefined}', ); expect(directory).not.toContain("preload={index === 0}"); expect(directory).toContain("prefetch={false}"); }); it("publishes a public-only crawler policy", () => { expect(robots()).toEqual({ rules: { userAgent: "*", allow: "/", disallow: ["/admin", "/api", "/register"], }, sitemap: "https://guide.example.test/sitemap.xml", }); }); it("loads AdSense only after confirming the visitor is signed out", async () => { const [adsense, home, guide, guideSection, adsTxt] = await Promise.all([ repositoryFile("components/public/google-adsense.tsx"), repositoryFile("app/page.tsx"), repositoryFile("app/[character]/page.tsx"), repositoryFile("app/[character]/[page]/page.tsx"), repositoryFile("public/ads.txt"), ]); expect(adsense).toContain("authClient.useSession()"); expect(adsense).toContain('process.env.NODE_ENV !== "production"'); expect(adsense).toMatch(/isPending \|\|\s+error \|\|\s+session/u); expect(adsense).toContain("pagead2.googlesyndication.com"); expect(home).toContain(""); expect(guide).toContain(""); expect(guideSection).toContain(""); expect(adsTxt.trim()).toBe( "google.com, pub-9687404323559597, DIRECT, f08c47fec0942fa0", ); }); });