From 901f2f38fcc2e301a5e954775d6bdbb61b395602 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 20 Apr 2026 19:19:35 +0100 Subject: [PATCH] test: share mcp bridge gateway setup --- src/mcp/channel-server.test.ts | 71 ++++++++++++++-------------------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/src/mcp/channel-server.test.ts b/src/mcp/channel-server.test.ts index eb16b396d0e..472fdab61b5 100644 --- a/src/mcp/channel-server.test.ts +++ b/src/mcp/channel-server.test.ts @@ -39,6 +39,33 @@ async function connectMcpWithoutGateway(params?: { claudeChannelMode?: "auto" | }; } +function attachReadyGateway( + bridge: OpenClawChannelBridge, + gatewayRequest: ReturnType, +) { + ( + bridge as unknown as { + gateway: { request: typeof gatewayRequest; stopAndWait: () => Promise }; + readySettled: boolean; + resolveReady: () => void; + } + ).gateway = { + request: gatewayRequest, + stopAndWait: async () => {}, + }; + ( + bridge as unknown as { + readySettled: boolean; + resolveReady: () => void; + } + ).readySettled = true; + ( + bridge as unknown as { + resolveReady: () => void; + } + ).resolveReady(); +} + describe("openclaw channel mcp server", () => { describe("gateway-backed flows", () => { describe("gateway integration", () => { @@ -293,27 +320,7 @@ describe("openclaw channel mcp server", () => { }); const gatewayRequest = vi.fn().mockResolvedValue({ ok: true, channel: "telegram" }); - ( - bridge as unknown as { - gateway: { request: typeof gatewayRequest; stopAndWait: () => Promise }; - readySettled: boolean; - resolveReady: () => void; - } - ).gateway = { - request: gatewayRequest, - stopAndWait: async () => {}, - }; - ( - bridge as unknown as { - readySettled: boolean; - resolveReady: () => void; - } - ).readySettled = true; - ( - bridge as unknown as { - resolveReady: () => void; - } - ).resolveReady(); + attachReadyGateway(bridge, gatewayRequest); vi.spyOn(bridge, "getConversation").mockResolvedValue({ sessionKey: "agent:main:main", @@ -369,27 +376,7 @@ describe("openclaw channel mcp server", () => { ], }); - ( - bridge as unknown as { - gateway: { request: typeof gatewayRequest; stopAndWait: () => Promise }; - readySettled: boolean; - resolveReady: () => void; - } - ).gateway = { - request: gatewayRequest, - stopAndWait: async () => {}, - }; - ( - bridge as unknown as { - readySettled: boolean; - resolveReady: () => void; - } - ).readySettled = true; - ( - bridge as unknown as { - resolveReady: () => void; - } - ).resolveReady(); + attachReadyGateway(bridge, gatewayRequest); await expect(bridge.listConversations()).resolves.toEqual([ expect.objectContaining({