41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
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,
|
|
});
|
|
}
|
|
});
|