import { Command } from "commander"; import { describe, expect, it } from "vitest"; import { removeCommand, removeCommandByName } from "./command-tree.js"; describe("command-tree", () => { it("removes a command instance when present", () => { const program = new Command(); const alpha = program.command("alpha"); program.command("beta"); expect(removeCommand(program, alpha)).toBe(true); expect(program.commands.map((command) => command.name())).toEqual(["beta"]); }); it("returns false when command instance is already absent", () => { const program = new Command(); program.command("alpha"); const detached = new Command("beta"); expect(removeCommand(program, detached)).toBe(false); }); it("removes by command name", () => { const program = new Command(); program.command("alpha"); program.command("beta"); expect(removeCommandByName(program, "alpha")).toBe(true); expect(program.commands.map((command) => command.name())).toEqual(["beta"]); }); it("returns false when name does not exist", () => { const program = new Command(); program.command("alpha"); expect(removeCommandByName(program, "missing")).toBe(false); expect(program.commands.map((command) => command.name())).toEqual(["alpha"]); }); });