testBriefOutputKeepsFailuresAndCounts
tcmts.cli.mcp.testBriefOutputKeepsFailuresAndCounts · #3mlk4nzw · term
import { briefOutput } from "#codebase/tcmts/cli/mcp";
import assert from "node:assert/strict";
export const testBriefOutputKeepsFailuresAndCounts = () => {
const out = [
" ✓ lib.testA (cached)",
" ✗ lib.testB 3ms",
" AssertionError: 1 !== 2",
" ✓ lib.testC 1ms",
"",
"2 passed, 1 failed (1 cached)",
"",
"suites (running tcm)",
" ✓ lib.e2e.testD (cached)",
" ✓ lib.e2e.testE (cached)",
" ✓ lib.e2e.merge.testF 20ms",
"",
"suites: 3 passed, 0 failed (2 cached)",
].join("\n");
// what ran is named; what's cached too where something failed, else counted
assert.equal(
briefOutput(["test"], out),
"✗ lib.testB 3ms\n AssertionError: 1 !== 2\n\nran: lib.testC\ncached: lib.testA\n2 passed, 1 failed (1 cached)\n\nsuites (running tcm)\n\nran: lib.e2e.merge.testF\nsuites: 3 passed, 0 failed (2 cached)",
);
// tests named: the cached ones are named too, under the namespace they share
assert.equal(
briefOutput(["test", "lib.e2e", "--fresh"], out.split("\n").slice(7).join("\n")),
"suites (running tcm)\n\nran: lib.e2e.merge.testF\ncached under lib.e2e: testD, testE\nsuites: 3 passed, 0 failed (2 cached)",
);
// a flag's value isn't a name
assert.equal(
briefOutput(
["test", "--bin", "tcm=x.js"],
" ✓ lib.testA (cached)\n\n1 passed, 0 failed (1 cached)",
),
"1 passed, 0 failed (1 cached)",
);
assert.equal(briefOutput(["view"], out), out);
// a merge's changes by name and count
assert.equal(
briefOutput(
["merge", "feature"],
"merged feature into main\n\n edited\n ~ lib.f #aaaaaaaa → #bbbbbbbb\n - 1\n + 2\n\n merged cleanly",
),
"merged feature into main\n edited: lib.f\n merged cleanly",
);
}
uses