testMigrateRefusesANewerFormat
A codebase in a newer format than this tcm's is refused, and left as it is.
import { tcmIn } from "#codebase/tcmts/cli/test/e2e/harness"; import { v1Codebase } from "#codebase/tcmts/cli/test/e2e/migrate"; import assert from "node:assert/strict"; import fs from "node:fs"; import path from "node:path"; import { DatabaseSync } from "node:sqlite"; export const testMigrateRefusesANewerFormat = () => { const dir = v1Codebase("migrate newer"); const file = path.join(dir, ".tcm", "codebase.sqlite"); const db = new DatabaseSync(file); db.exec("UPDATE components SET ir_version = 99"); db.close(); const before = fs.readFileSync(file); const r = tcmIn(dir, "migrate"); assert.notEqual(r.status, 0); assert.match(r.out, /hash format v99, newer than this tcm's \(v2\): use a newer tcm/); assert.ok(fs.readFileSync(file).equals(before)); }