testSplittingAcrossFilesKeepsHashes

tcmts.core.test.hash.testSplittingAcrossFilesKeepsHashes · #bfm2t75e · term

Splitting code across files and re-exporting through barrels does not change hashes.

import { hashes, project } from "#codebase/tcmts/core/test/hash";
import assert from "node:assert/strict";

export const testSplittingAcrossFilesKeepsHashes = () => {
  const one = hashes(`const double = (x: number) => x * 2; const quad = (x: number) => double(double(x))`);
  const split = project({
    "math/double.ts": `export const double = (x: number) => x * 2;`,
    "math/index.ts": `export * from "./double.ts";`,
    "quad.ts": `import { double as twice } from "./math/index.ts";\nexport const quad = (x: number) => twice(twice(x));`,
  });
  assert.equal(split.double!.hash, one.double);
  assert.equal(split.quad!.hash, one.quad);
}

uses