




















@@ -13,6 +13,8 @@ const tasksAuditJsonCommandMock = vi.hoisted(() => vi.fn(async () => {}));
1313const channelsListCommandMock = vi.hoisted(() => vi.fn(async () => {}));
1414const channelsStatusCommandMock = vi.hoisted(() => vi.fn(async () => {}));
1515const agentsListCommandMock = vi.hoisted(() => vi.fn(async () => {}));
16+const runPluginsListCommandMock = vi.hoisted(() => vi.fn(async () => {}));
17+const pluginsCliLoadedMock = vi.hoisted(() => vi.fn());
16181719vi.mock("../config-cli.js", () => ({
1820runConfigGet: runConfigGetMock,
@@ -55,6 +57,17 @@ vi.mock("../../commands/agents.js", () => ({
5557agentsListCommand: agentsListCommandMock,
5658}));
575960+vi.mock("../plugins-list-command.js", () => ({
61+runPluginsListCommand: runPluginsListCommandMock,
62+}));
63+64+vi.mock("../plugins-cli.js", () => {
65+pluginsCliLoadedMock();
66+return {
67+registerPluginsCli: vi.fn(),
68+};
69+});
70+5871describe("program routes", () => {
5972beforeEach(() => {
6073vi.clearAllMocks();
@@ -150,6 +163,29 @@ describe("program routes", () => {
150163);
151164});
152165166+it("routes plugins list JSON without importing the full plugins CLI", async () => {
167+const route = expectRoute(["plugins", "list"]);
168+expect(route.loadPlugins).toBeUndefined();
169+expect(route.canRun?.(["node", "openclaw", "plugins", "list"])).toBe(false);
170+171+await expect(
172+route.run(["node", "openclaw", "plugins", "list", "--json", "--enabled", "--verbose"]),
173+).resolves.toBe(true);
174+175+expect(runPluginsListCommandMock).toHaveBeenCalledWith(
176+{ json: true, enabled: true, verbose: true },
177+defaultRuntime,
178+);
179+expect(pluginsCliLoadedMock).not.toHaveBeenCalled();
180+});
181+182+it("returns false for plugins list JSON route with unsupported arguments", async () => {
183+await expectRunFalse(
184+["plugins", "list"],
185+["node", "openclaw", "plugins", "list", "--json", "--wat"],
186+);
187+});
188+153189it("matches gateway status route without plugin preload", () => {
154190const route = expectRoute(["gateway", "status"]);
155191expect(route.loadPlugins).toBeUndefined();
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。