diff --git a/src/auto-reply/reply/reply-payloads.test.ts b/src/auto-reply/reply/reply-payloads.test.ts index 614fcd37951..8664eec5c72 100644 --- a/src/auto-reply/reply/reply-payloads.test.ts +++ b/src/auto-reply/reply/reply-payloads.test.ts @@ -1,4 +1,6 @@ import { describe, expect, it } from "vitest"; +import { setActivePluginRegistry } from "../../plugins/runtime.js"; +import { createTestRegistry } from "../../test-utils/channel-plugins.js"; import { filterMessagingToolMediaDuplicates, shouldSuppressMessagingToolReplies, @@ -153,4 +155,18 @@ describe("shouldSuppressMessagingToolReplies", () => { }), ).toBe(true); }); + + it("suppresses telegram replies even when the active plugin registry omits telegram", () => { + setActivePluginRegistry(createTestRegistry([])); + + expect( + shouldSuppressMessagingToolReplies({ + messageProvider: "telegram", + originatingTo: "telegram:group:-100123:topic:77", + messagingToolSentTargets: [ + { tool: "message", provider: "telegram", to: "-100123", threadId: "77" }, + ], + }), + ).toBe(true); + }); }); diff --git a/src/plugins/commands.test.ts b/src/plugins/commands.test.ts index 6f371305a81..d95a98b18d9 100644 --- a/src/plugins/commands.test.ts +++ b/src/plugins/commands.test.ts @@ -136,6 +136,22 @@ describe("registerPluginCommand", () => { }); }); + it("resolves Telegram topic command bindings without a Telegram registry entry", () => { + expect( + __testing.resolveBindingConversationFromCommand({ + channel: "telegram", + from: "telegram:group:-100123", + to: "telegram:group:-100123:topic:77", + accountId: "default", + }), + ).toEqual({ + channel: "telegram", + accountId: "default", + conversationId: "-100123", + threadId: 77, + }); + }); + it("does not resolve binding conversations for unsupported command channels", () => { expect( __testing.resolveBindingConversationFromCommand({