import { expect, test } from "bun:test"; import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { join, resolve } from "node:path"; const root = resolve(import.meta.dir, "../../.."); test("per-process dev caches are excluded from every repository-wide tool", () => { const eslint = readFileSync(join(root, "eslint.config.js"), "utf8"); const tsconfig = JSON.parse(readFileSync(join(root, "tsconfig.json"), "utf8")) as { exclude?: string[]; }; const prettier = readFileSync(join(root, ".prettierignore"), "utf8"); expect(eslint).toContain('"**/.wrnexus-*/**"'); expect(tsconfig.exclude).toContain("**/.wrnexus-*"); expect(prettier).toContain("**/.wrnexus-*/**"); const cache = join(root, "packages", "dev-server", "test", ".tmp-cache-ignore", ".wrnexus-123"); mkdirSync(cache, { recursive: true }); writeFileSync(join(cache, "broken.client.mjs"), "const = ;\n", "utf8"); writeFileSync(join(cache, "broken.d.ts"), "type = ;\n", "utf8"); try { const lint = Bun.spawnSync( [ "bunx", "eslint", "--no-warn-ignored", join(cache, "broken.client.mjs"), join(cache, "broken.d.ts"), ], { cwd: root }, ); expect(lint.exitCode).toBe(0); } finally { rmSync(join(root, "packages", "dev-server", "test", ".tmp-cache-ignore"), { recursive: true, force: true, }); } });