testTracedModulesKeepTheirLines

tcmts.cli.web.testTracedModulesKeepTheirLines · #x5tcnz4c · term

import { tracedModule } from "#codebase/tcmts/cli/web";
import assert from "node:assert/strict";

export const testTracedModulesKeepTheirLines = () => {
  const h = "a".repeat(52);
  const source = `import { x } from "./y.ts";\nfunction f() {\n  return x;\n}\nexport { f as h_${h} };\nif (typeof f === "function") Object.defineProperty(f, Symbol.for("tcm.hash"), { value: "${h}" });\n`;
  const traced = tracedModule(source);
  assert.deepEqual(traced.split("\n").slice(0, 6), [
    ...source.split("\n").slice(0, 4),
    "",
    source.split("\n")[5]!,
  ]);
  assert.match(
    traced,
    new RegExp(
      `const __tcm_traced_${h} = globalThis\\.__tcmTraceCall \\? globalThis\\.__tcmTraceCall\\("${h}", f\\) : f;\\nexport \\{ __tcm_traced_${h} as h_${h} \\};\\n$`,
    ),
  );
  assert.equal(tracedModule("export type { T as h_x };\n"), "export type { T as h_x };\n");
}

uses