testEditDoesNotOverwriteTheCodebasesConfig

tcmts.cli.test.e2e.files.testEditDoesNotOverwriteTheCodebasesConfig · #nvvxjhew · term

tcm edit of a package.json or tsconfig.json doesn't write over the codebase's own, even with --force.

import { okIn, tcmIn, tempDir } from "#codebase/tcmts/cli/test/e2e/harness";
import assert from "node:assert/strict";
import fs from "node:fs";
import path from "node:path";

export const testEditDoesNotOverwriteTheCodebasesConfig = () => {
  const dir = tempDir("files config");
  okIn(dir, "init");
  fs.mkdirSync(path.join(dir, "app"));
  fs.writeFileSync(path.join(dir, "app", "tsconfig.json"), "{}\n");
  okIn(dir, "add", "app/tsconfig.json", "--into", "site");
  const own = fs.readFileSync(path.join(dir, "tsconfig.json"), "utf8");
  const r = tcmIn(dir, "edit", "site.tsconfig", "--force");
  assert.notEqual(r.status, 0);
  assert.match(r.out, /tsconfig\.json here is the codebase's own: edit site\.tsconfig with --file <other>/);
  assert.equal(fs.readFileSync(path.join(dir, "tsconfig.json"), "utf8"), own);
  okIn(dir, "edit", "site.tsconfig", "--file", "edit.json");
  assert.equal(fs.readFileSync(path.join(dir, "edit.json"), "utf8"), "{}\n");
}

uses