testEditDoesNotOverwriteTheCodebasesConfig
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"); }