37 lines · 1.2 KB · JavaScript
RawDownload
import assert from "node:assert/strict";import { chmodSync, mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs";import { tmpdir } from "node:os";import { dirname, join } from "node:path";import { fileURLToPath } from "node:url";import { spawnSync } from "node:child_process";import test from "node:test"; const script = join(dirname(fileURLToPath(import.meta.url)), "check-layout.mjs"); test("ignores tests inside nested Claude worktrees", () => {	const root = mkdtempSync(join(tmpdir(), "agentos-layout-"));	try {		const nestedTest = join(			root,			".claude/worktrees/other/packages/core/tests/legacy.test.ts",		);		mkdirSync(dirname(nestedTest), { recursive: true });		writeFileSync(nestedTest, "export {};\n"); 		const bin = join(root, "bin");		mkdirSync(bin);		const cargo = join(bin, "cargo");		writeFileSync(cargo, '#!/bin/sh\nprintf \'{"packages":[]}\'\n');		chmodSync(cargo, 0o755); 		const result = spawnSync(process.execPath, [script], {			cwd: root,			encoding: "utf8",			env: { ...process.env, PATH: `${bin}:${process.env.PATH ?? ""}` },		});		assert.equal(result.status, 0, result.stderr || result.stdout);		assert.match(result.stdout, /check-layout: OK/);	} finally {		rmSync(root, { recursive: true, force: true });	}});