testAddToScratchJoinsImports

tcmts.cli.main.testAddToScratchJoinsImports · #wk25li5a · term

import { addToScratch } from "#codebase/tcmts/cli/main";
import assert from "node:assert/strict";

export const testAddToScratchJoinsImports = () => {
  const file = "/tmp/scratch.ts";
  const existing = `// tcm: namespace lib\nimport { a } from "#codebase/lib";\nimport type { T } from "#codebase/types";\n\nexport const x = a;\n`;
  const text = `import { b, c } from "#codebase/lib";\nimport type { U } from "#codebase/lib";\nimport { v } from "#codebase/types";\nimport fs from "node:fs";\n\nexport const y = b + c;\n`;
  const out = addToScratch(file, existing, text);
  assert.match(out, /^import \{ a, b, c \} from "#codebase\/lib";$/m, out);
  // a type and a value are imported apart, as tcm writes them
  assert.match(out, /^import type \{ U \} from "#codebase\/lib";$/m, out);
  assert.match(out, /^import type \{ T \} from "#codebase\/types";$/m, out);
  assert.match(out, /^import \{ v \} from "#codebase\/types";$/m, out);
  assert.match(out, /^import fs from "node:fs";$/m, out);
  assert.match(out, /export const x = a;\n\nexport const y = b \+ c;\n$/, out);
}

uses