testAbortDropsAMergeNotFinished

tcmts.cli.test.e2e.merge.testAbortDropsAMergeNotFinished · #grvaitku · term

tcm merge --abort drops a merge not finished: the branch is as it was all along, and it can merge again.

import { tcmIn } from "#codebase/tcmts/cli/test/e2e/harness";
import { withConflicts } from "#codebase/tcmts/cli/test/e2e/merge";
import assert from "node:assert/strict";

export const testAbortDropsAMergeNotFinished = () => {
  const { dir, tcm } = withConflicts("merge abort");
  assert.match(tcm("merge", "--abort"), /dropped the merge of main into s/);
  assert.match(tcm("todo"), /nothing to do/);
  assert.match(tcm("view", "lib.k"), /const a = 10;/);
  assert.match(tcmIn(dir, "merge", "--abort").out, /isn't merging anything/);
  const again = tcmIn(dir, "merge", "main");
  assert.equal(again.status, 1, again.out);
  assert.match(tcm("todo"), /merging main into s/);
  // (and a merge while one waits is refused)
  assert.match(tcmIn(dir, "merge", "main").out, /merging main still/);
}

uses