Files
msd-core/tests/phases-command-router.test.cjs
Tom Boucher 8051bc4fd8 test(golden): expand phases/validate/roadmap parity matrix (#2909)
Merging parity-matrix expansion after stack foundation.
2026-04-30 14:10:28 -04:00

75 lines
1.8 KiB
JavaScript

'use strict';
const { describe, test } = require('node:test');
const assert = require('node:assert/strict');
const { routePhasesCommand } = require('../get-shit-done/bin/lib/phases-command-router.cjs');
describe('phases-command-router', () => {
test('routes phases list with parsed options', () => {
const calls = [];
const phase = {
cmdPhasesList: (cwd, options, raw) => calls.push({ cwd, options, raw }),
};
routePhasesCommand({
phase,
milestone: {},
args: ['phases', 'list', '--type', 'plans', '--phase', '10', '--include-archived'],
cwd: '/tmp/proj',
raw: true,
error: (msg) => {
throw new Error(msg);
},
});
assert.equal(calls.length, 1);
assert.deepEqual(calls[0], {
cwd: '/tmp/proj',
options: { type: 'plans', phase: '10', includeArchived: true },
raw: true,
});
});
test('routes phases clear with trailing args', () => {
const calls = [];
const milestone = {
cmdPhasesClear: (cwd, raw, trailing) => calls.push({ cwd, raw, trailing }),
};
routePhasesCommand({
phase: {},
milestone,
args: ['phases', 'clear', '--confirm'],
cwd: '/tmp/proj',
raw: false,
error: (msg) => {
throw new Error(msg);
},
});
assert.equal(calls.length, 1);
assert.deepEqual(calls[0], {
cwd: '/tmp/proj',
raw: false,
trailing: ['--confirm'],
});
});
test('errors on unknown phases subcommand', () => {
let message = null;
routePhasesCommand({
phase: {},
milestone: {},
args: ['phases', 'archive'],
cwd: '/tmp/proj',
raw: false,
error: (msg) => {
message = msg;
},
});
assert.equal(message, 'Unknown phases subcommand. Available: list, clear');
});
});