From 27e06ee2afa11c1e16deae83b1b5aa6b3cd058b0 Mon Sep 17 00:00:00 2001 From: Shakker Date: Sun, 10 May 2026 16:27:19 +0100 Subject: [PATCH] test: clear irc broad matchers --- extensions/irc/src/inbound.behavior.test.ts | 10 +-- extensions/irc/src/probe.test.ts | 10 +-- extensions/irc/src/send.test.ts | 89 ++++++++++----------- 3 files changed, 49 insertions(+), 60 deletions(-) diff --git a/extensions/irc/src/inbound.behavior.test.ts b/extensions/irc/src/inbound.behavior.test.ts index d1f7edd4417..933d9bf686b 100644 --- a/extensions/irc/src/inbound.behavior.test.ts +++ b/extensions/irc/src/inbound.behavior.test.ts @@ -129,7 +129,8 @@ describe("irc inbound behavior", () => { expect.stringContaining("Your IRC id: alice!ident@example.com"), undefined, ); - expect(sendReply).toHaveBeenCalledWith("alice", expect.stringContaining("CODE"), undefined); + const replyMessages = sendReply.mock.calls.map((call) => String(call[1])); + expect(replyMessages.some((message) => message.includes("CODE"))).toBe(true); }); it("drops unauthorized group control commands before dispatch", async () => { @@ -184,10 +185,7 @@ describe("irc inbound behavior", () => { sendReply: vi.fn(async () => {}), }); - expect(coreRuntime.channel.turn.runAssembled).toHaveBeenCalledWith( - expect.objectContaining({ - replyPipeline: {}, - }), - ); + const assembledRequest = coreRuntime.channel.turn.runAssembled.mock.calls[0]?.[0]; + expect(assembledRequest?.replyPipeline).toEqual({}); }); }); diff --git a/extensions/irc/src/probe.test.ts b/extensions/irc/src/probe.test.ts index ba1fa6fff22..c395da45e80 100644 --- a/extensions/irc/src/probe.test.ts +++ b/extensions/irc/src/probe.test.ts @@ -56,13 +56,14 @@ describe("probeIrc", () => { }); it("returns latency and quits the probe client on success", async () => { - resolveIrcAccountMock.mockReturnValue({ + const account = { configured: true, host: "irc.libera.chat", port: 6697, tls: true, nick: "openclaw", - }); + }; + resolveIrcAccountMock.mockReturnValue(account); buildIrcConnectOptionsMock.mockReturnValue({ host: "irc.libera.chat" }); const quit = vi.fn(); connectIrcClientMock.mockResolvedValue({ quit }); @@ -71,10 +72,7 @@ describe("probeIrc", () => { try { const result = await probeIrc({} as never, { timeoutMs: 5000 }); - expect(buildIrcConnectOptionsMock).toHaveBeenCalledWith( - expect.objectContaining({ host: "irc.libera.chat" }), - { connectTimeoutMs: 5000 }, - ); + expect(buildIrcConnectOptionsMock).toHaveBeenCalledWith(account, { connectTimeoutMs: 5000 }); expect(result).toEqual({ ok: true, host: "irc.libera.chat", diff --git a/extensions/irc/src/send.test.ts b/extensions/irc/src/send.test.ts index 680122613dc..a920d18be7b 100644 --- a/extensions/irc/src/send.test.ts +++ b/extensions/irc/src/send.test.ts @@ -243,54 +243,47 @@ describe("sendMessageIrc cfg threading", () => { } as unknown as IrcClient & { quit: ReturnType }; hoisted.connectIrcClient.mockResolvedValue(client); - await expect( - verifyChannelMessageAdapterCapabilityProofs({ - adapterName: "irc", - adapter: ircMessageAdapter, - proofs: { - text: async () => { - const result = await ircMessageAdapter.send?.text?.({ - cfg: providedCfg, - to: "#room", - text: "hello", - }); - expect(result?.receipt.platformMessageIds).toEqual(["irc-msg-1"]); - expect(client.sendPrivmsg).toHaveBeenCalledWith("#room", "hello"); - }, - media: async () => { - const result = await ircMessageAdapter.send?.media?.({ - cfg: providedCfg, - to: "#room", - text: "image", - mediaUrl: "https://example.com/image.png", - }); - expect(result?.receipt.platformMessageIds).toEqual(["irc-msg-1"]); - expect(client.sendPrivmsg).toHaveBeenCalledWith( - "#room", - "image\n\nAttachment: https://example.com/image.png", - ); - }, - replyTo: async () => { - const result = await ircMessageAdapter.send?.text?.({ - cfg: providedCfg, - to: "#room", - text: "threaded", - replyToId: "parent-1", - }); - expect(result?.receipt.replyToId).toBe("parent-1"); - expect(client.sendPrivmsg).toHaveBeenCalledWith( - "#room", - "threaded\n\n[reply:parent-1]", - ); - }, + const proofResults = await verifyChannelMessageAdapterCapabilityProofs({ + adapterName: "irc", + adapter: ircMessageAdapter, + proofs: { + text: async () => { + const result = await ircMessageAdapter.send?.text?.({ + cfg: providedCfg, + to: "#room", + text: "hello", + }); + expect(result?.receipt.platformMessageIds).toEqual(["irc-msg-1"]); + expect(client.sendPrivmsg).toHaveBeenCalledWith("#room", "hello"); }, - }), - ).resolves.toEqual( - expect.arrayContaining([ - { capability: "text", status: "verified" }, - { capability: "media", status: "verified" }, - { capability: "replyTo", status: "verified" }, - ]), - ); + media: async () => { + const result = await ircMessageAdapter.send?.media?.({ + cfg: providedCfg, + to: "#room", + text: "image", + mediaUrl: "https://example.com/image.png", + }); + expect(result?.receipt.platformMessageIds).toEqual(["irc-msg-1"]); + expect(client.sendPrivmsg).toHaveBeenCalledWith( + "#room", + "image\n\nAttachment: https://example.com/image.png", + ); + }, + replyTo: async () => { + const result = await ircMessageAdapter.send?.text?.({ + cfg: providedCfg, + to: "#room", + text: "threaded", + replyToId: "parent-1", + }); + expect(result?.receipt.replyToId).toBe("parent-1"); + expect(client.sendPrivmsg).toHaveBeenCalledWith("#room", "threaded\n\n[reply:parent-1]"); + }, + }, + }); + + expect(proofResults.find((result) => result.capability === "text")?.status).toBe("verified"); + expect(proofResults.find((result) => result.capability === "media")?.status).toBe("verified"); + expect(proofResults.find((result) => result.capability === "replyTo")?.status).toBe("verified"); }); });