import { describe, expect, it } from "bun:test"; import { mkdir, mkdtemp, rm, writeFile } from "fs/promises"; import path from "path"; import { generateManifest } from "./fs-routes"; import { scanRoutes } from "./fs-scanner"; const repoTempRoot = path.resolve(import.meta.dir, "../../../..", ".tmp-test-artifacts"); async function mkRepoTempDir(prefix: string): Promise { await mkdir(repoTempRoot, { recursive: true }); return mkdtemp(path.join(repoTempRoot, prefix)); } describe("generateManifest hydration config", () => { it("records compiler-discovered client boundaries on page routes", async () => { const rootDir = await mkRepoTempDir("routes-boundaries-"); try { await mkdir(path.join(rootDir, "app", "pledges", "[id]"), { recursive: true }); await mkdir(path.join(rootDir, "src", "client", "widgets", "comments-section"), { recursive: true }); await mkdir(path.join(rootDir, "src", "client", "widgets", "activity"), { recursive: true }); await writeFile( path.join(rootDir, "app", "pledges", "[id]", "page.tsx"), ` import { CommentsSection } from "@/client/widgets/comments-section/CommentsSection.client"; import ActivityFeed from "@/client/widgets/activity/ActivityFeed.client"; export default function Page({ params }) { return (
); } `, "utf-8", ); await writeFile( path.join(rootDir, "src", "client", "widgets", "comments-section", "CommentsSection.client.tsx"), `"use client"; export function CommentsSection() { return
; }`, "utf-8", ); await writeFile( path.join(rootDir, "src", "client", "widgets", "activity", "ActivityFeed.client.tsx"), `"use client"; export default function ActivityFeed() { return