From 2746e2ccefac6364aec387c2450512f7305e9b96 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 28 Apr 2026 02:50:00 +0100 Subject: [PATCH] test(telegram): cover handler error boundary --- .../telegram/src/bot.create-telegram-bot.test.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/extensions/telegram/src/bot.create-telegram-bot.test.ts b/extensions/telegram/src/bot.create-telegram-bot.test.ts index bf766868df4..4595d8fc9e5 100644 --- a/extensions/telegram/src/bot.create-telegram-bot.test.ts +++ b/extensions/telegram/src/bot.create-telegram-bot.test.ts @@ -179,6 +179,22 @@ describe("createTelegramBot", () => { expect(throttlerSpy).toHaveBeenCalledTimes(1); expect(useSpy).toHaveBeenCalledWith("throttler"); }); + + it("logs middleware errors through grammY catch without rethrowing", () => { + const runtime = { + error: vi.fn(), + } as unknown as NonNullable; + const bot = createTelegramBot({ token: "tok", runtime }); + const catchMock = bot.catch as unknown as { + mock: { calls: Array<[(err: unknown) => void]> }; + }; + const errorHandler = catchMock.mock.calls[0]?.[0]; + + expect(errorHandler).toBeTypeOf("function"); + expect(() => errorHandler?.(new Error("handler boom"))).not.toThrow(); + expect(runtime.error).toHaveBeenCalledWith(expect.stringContaining("telegram bot error:")); + }); + it("uses wrapped fetch when global fetch is available", () => { const originalFetch = globalThis.fetch; const fetchSpy = vi.fn() as unknown as typeof fetch;