testDiffOfDefinitions

tcmts.cli.test.e2e.merge.testDiffOfDefinitions · #mcqstcqo · term

tcm diff compares definitions: two by #hash, or a conflicted name's, the base's against each side's.

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

export const testDiffOfDefinitions = () => {
  const { tcm, sides } = withConflicts("merge diff");
  const k = sides("lib.k");
  const conflict = tcm("diff", "lib.k");
  assert.match(
    conflict,
    /lib\.k: base \S+ → ours \(s\)[\s\S]*- +const a = 1;[\s\S]*\+ +const a = 10;/,
  );
  assert.match(conflict, /→ theirs \(main\)[\s\S]*\+ +const a = 100;[\s\S]*\+ +const c = 30;/);
  const two = tcm("diff", k.ours, k.theirs);
  assert.match(two, /- +const a = 10;[\s\S]*\+ +const a = 100;/);
}

uses