From 02da7350add51c5b01a35c4b52530b5b3f7c2879 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Wed, 22 Apr 2026 23:46:13 -0700 Subject: [PATCH] test(telegram): pin outbound hook routing fields --- extensions/telegram/src/bot/delivery.test.ts | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/extensions/telegram/src/bot/delivery.test.ts b/extensions/telegram/src/bot/delivery.test.ts index 9e8a4394214..92a2dbb479d 100644 --- a/extensions/telegram/src/bot/delivery.test.ts +++ b/extensions/telegram/src/bot/delivery.test.ts @@ -402,6 +402,36 @@ describe("deliverReplies", () => { ); }); + it("passes shared routing fields to message_sending hooks", async () => { + messageHookRunner.hasHooks.mockImplementation((name: string) => name === "message_sending"); + + const runtime = createRuntime(false); + const sendMessage = vi.fn().mockResolvedValue({ message_id: 3, chat: { id: "123" } }); + const bot = createBot({ sendMessage }); + + await deliverWith({ + replies: [{ text: "caption", replyToId: "500" }], + runtime, + bot, + replyToMode: "all", + thread: { id: 42, scope: "forum" }, + }); + + expect(messageHookRunner.runMessageSending).toHaveBeenCalledWith( + expect.objectContaining({ + to: "123", + content: "caption", + replyToId: 500, + threadId: 42, + metadata: expect.objectContaining({ + channel: "telegram", + threadId: 42, + }), + }), + expect.objectContaining({ channelId: "telegram", conversationId: "123" }), + ); + }); + it("invokes onVoiceRecording before sending a voice note", async () => { const events: string[] = []; const runtime = createRuntime(false);