import { Command } from "commander"; import { beforeEach, describe, expect, it, vi } from "vitest"; const mocks = vi.hoisted(() => ({ memoryRegister: vi.fn(), otherRegister: vi.fn(), })); vi.mock("./loader.js", () => ({ loadMoltbotPlugins: () => ({ cliRegistrars: [ { pluginId: "memory-core", register: mocks.memoryRegister, commands: ["memory"], source: "bundled", }, { pluginId: "other", register: mocks.otherRegister, commands: ["other"], source: "bundled", }, ], }), })); import { registerPluginCliCommands } from "./cli.js"; describe("registerPluginCliCommands", () => { beforeEach(() => { mocks.memoryRegister.mockClear(); mocks.otherRegister.mockClear(); }); it("skips plugin CLI registrars when commands already exist", () => { const program = new Command(); program.command("memory"); registerPluginCliCommands(program, {} as any); expect(mocks.memoryRegister).not.toHaveBeenCalled(); expect(mocks.otherRegister).toHaveBeenCalledTimes(1); }); });