


























@@ -2,9 +2,29 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
22import type { OpenClawConfig } from "../config/types.openclaw.js";
33import type { OutputRuntimeEnv } from "../runtime.js";
445-const { buildProviderStatusIndexMock, requireValidConfigMock } = vi.hoisted(() => ({
5+const {
6+ buildProviderStatusIndexMock,
7+ buildProviderSummaryMetadataIndexMock,
8+ listProvidersForAgentMock,
9+ providerSummaryMetadataMock,
10+ requireValidConfigMock,
11+ summarizeBindingsMock,
12+} = vi.hoisted(() => ({
613buildProviderStatusIndexMock: vi.fn(),
14+buildProviderSummaryMetadataIndexMock: vi.fn(),
15+listProvidersForAgentMock: vi.fn(),
16+providerSummaryMetadataMock: new Map([
17+[
18+"telegram",
19+{
20+label: "Telegram",
21+defaultAccountId: "default",
22+visibleInConfiguredLists: true,
23+},
24+],
25+]),
726requireValidConfigMock: vi.fn(),
27+summarizeBindingsMock: vi.fn(),
828}));
9291030vi.mock("./agents.command-shared.js", () => ({
@@ -13,8 +33,9 @@ vi.mock("./agents.command-shared.js", () => ({
13331434vi.mock("./agents.providers.js", () => ({
1535buildProviderStatusIndex: buildProviderStatusIndexMock,
16-listProvidersForAgent: () => ["Telegram default: configured"],
17-summarizeBindings: () => ["Telegram default"],
36+buildProviderSummaryMetadataIndex: buildProviderSummaryMetadataIndexMock,
37+listProvidersForAgent: listProvidersForAgentMock,
38+summarizeBindings: summarizeBindingsMock,
1839}));
19402041const { agentsListCommand } = await import("./agents.commands.list.js");
@@ -47,6 +68,9 @@ describe("agentsListCommand", () => {
4768vi.clearAllMocks();
4869requireValidConfigMock.mockResolvedValue(createConfig());
4970buildProviderStatusIndexMock.mockResolvedValue(new Map());
71+buildProviderSummaryMetadataIndexMock.mockReturnValue(providerSummaryMetadataMock);
72+listProvidersForAgentMock.mockReturnValue(["Telegram default: configured"]);
73+summarizeBindingsMock.mockReturnValue(["Telegram default"]);
5074});
51755276it("keeps plain JSON output on the config-only path", async () => {
@@ -67,6 +91,19 @@ describe("agentsListCommand", () => {
6791await agentsListCommand({ json: true, bindings: true }, runtime);
68926993expect(buildProviderStatusIndexMock).toHaveBeenCalledOnce();
94+expect(buildProviderSummaryMetadataIndexMock).toHaveBeenCalledOnce();
95+expect(summarizeBindingsMock).toHaveBeenCalledWith(
96+expect.objectContaining({ agents: expect.any(Object) }),
97+[expect.objectContaining({ agentId: "main" })],
98+providerSummaryMetadataMock,
99+);
100+expect(listProvidersForAgentMock).toHaveBeenCalledWith(
101+expect.objectContaining({
102+cfg: expect.objectContaining({ agents: expect.any(Object) }),
103+bindings: [expect.objectContaining({ agentId: "main" })],
104+providerMetadata: providerSummaryMetadataMock,
105+}),
106+);
70107expect(runtime.json[0]).toEqual([
71108expect.objectContaining({
72109id: "main",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。