test(mcp-server): assert listing invariant via public catalog

This commit is contained in:
Mohamed Boudra
2026-07-02 22:31:22 +02:00
parent 742d47fe71
commit 82993c2197
@@ -11,6 +11,7 @@ import { z } from "zod";
import { createTestLogger } from "../../test-utils/test-logger.js"; import { createTestLogger } from "../../test-utils/test-logger.js";
import { createAgentMcpServer } from "./mcp-server.js"; import { createAgentMcpServer } from "./mcp-server.js";
import { createPaseoToolCatalog } from "./tools/paseo-tools.js";
import { AgentManager, type ManagedAgent } from "./agent-manager.js"; import { AgentManager, type ManagedAgent } from "./agent-manager.js";
import { AgentStorage, type StoredAgentRecord } from "./agent-storage.js"; import { AgentStorage, type StoredAgentRecord } from "./agent-storage.js";
import { createTestAgentClients } from "../test-utils/fake-agent-client.js"; import { createTestAgentClients } from "../test-utils/fake-agent-client.js";
@@ -666,7 +667,7 @@ describe("browser MCP tools", () => {
ok: true, ok: true,
result: { command: "list_tabs", tabs: [] }, result: { command: "list_tabs", tabs: [] },
}); });
const server = await createAgentMcpServer({ const serverOptions = {
agentManager: agentManager as AgentManager, agentManager: agentManager as AgentManager,
agentStorage: agentStorage as AgentStorage, agentStorage: agentStorage as AgentStorage,
providerSnapshotManager: providerSnapshotManager:
@@ -674,7 +675,8 @@ describe("browser MCP tools", () => {
browserToolsBroker: broker as BrowserToolsBroker, browserToolsBroker: broker as BrowserToolsBroker,
callerAgentId: "agent-1", callerAgentId: "agent-1",
logger, logger,
}); };
const server = await createAgentMcpServer(serverOptions);
const client = await connectInMemoryMcpClient(server); const client = await connectInMemoryMcpClient(server);
try { try {
@@ -708,14 +710,11 @@ describe("browser MCP tools", () => {
const listedTools = await client.listTools(); const listedTools = await client.listTools();
const toolsByName = new Map(listedTools.tools.map((tool) => [tool.name, tool])); const toolsByName = new Map(listedTools.tools.map((tool) => [tool.name, tool]));
const registeredTools = Reflect.get(server, "_registeredTools") as Record< const catalog = createPaseoToolCatalog(serverOptions);
string,
RegisteredMcpTool
>;
for (const [name, tool] of Object.entries(registeredTools)) { for (const tool of catalog.tools.values()) {
if (tool.outputSchema !== undefined) { if (tool.outputSchema !== undefined) {
expect(toolsByName.get(name)?.outputSchema, `${name} outputSchema`).toEqual( expect(toolsByName.get(tool.name)?.outputSchema, `${tool.name} outputSchema`).toEqual(
expect.objectContaining({ type: "object" }), expect.objectContaining({ type: "object" }),
); );
} }