testImportCyclesBecomeHashCycles
Import cycles between files become hash cycles.
import { analyze, project } from "#codebase/tcmts/core/test/hash"; import assert from "node:assert/strict"; export const testImportCyclesBecomeHashCycles = () => { const p = project({ "even.ts": `import { isOdd } from "./odd.ts";\nexport function isEven(n: number): boolean { return n === 0 ? true : isOdd(n - 1) }`, "odd.ts": `import { isEven } from "./even.ts";\nexport function isOdd(n: number): boolean { return n === 0 ? false : isEven(n - 1) }`, }); const single = analyze(` function isEven(n: number): boolean { return n === 0 ? true : isOdd(n - 1) } function isOdd(n: number): boolean { return n === 0 ? false : isEven(n - 1) }`).defs; assert.equal(p.isEven!.componentSize, 2); assert.equal(p.isEven!.componentHash, single[0]!.componentHash); }