diff --git a/packages/channel-connector/src/__tests__/adapters/TelegramAdapter.test.ts b/packages/channel-connector/src/__tests__/adapters/TelegramAdapter.test.ts index eea6ed1b..74480a2c 100644 --- a/packages/channel-connector/src/__tests__/adapters/TelegramAdapter.test.ts +++ b/packages/channel-connector/src/__tests__/adapters/TelegramAdapter.test.ts @@ -1,4 +1,5 @@ import * as telegrafModule from 'telegraf'; +import * as telegramHtml from '../../utils/telegramHtml.js'; import { TelegramAdapter } from '../../adapters/TelegramAdapter.js'; import type { IncomingMessage } from '../../types.js'; @@ -255,6 +256,32 @@ describe('TelegramAdapter', () => { expect(plainChunk).not.toContain('&'); }); + it('should deliver nested lists without throwing', async () => { + const bot = getMockBot(); + + await adapter.sendMessage('12345', '- agent\n - Status'); + + expect(bot.telegram.sendMessage).toHaveBeenCalledTimes(1); + expect(bot.telegram.sendMessage.mock.calls[0][1]).toContain('Status'); + }); + + it('should send plain text when markdown formatting throws', async () => { + const bot = getMockBot(); + const formatter = vi.spyOn(telegramHtml, 'markdownToTelegramHtml') + .mockImplementationOnce(() => { + throw new Error('formatter failed'); + }); + + await adapter.sendMessage('12345', '- agent\n - Status'); + + expect(bot.telegram.sendMessage).toHaveBeenCalledTimes(1); + expect(bot.telegram.sendMessage.mock.calls[0][0]).toBe('12345'); + expect(bot.telegram.sendMessage.mock.calls[0][1]).toBe('- agent\n - Status'); + expect(bot.telegram.sendMessage.mock.calls[0][2]).toBeUndefined(); + + formatter.mockRestore(); + }); + it('should propagate non-parse-entities errors without falling back', async () => { const bot = getMockBot(); const otherError = Object.assign(new Error('403'), { diff --git a/packages/channel-connector/src/__tests__/utils/telegramHtml.test.ts b/packages/channel-connector/src/__tests__/utils/telegramHtml.test.ts index 658cf37e..0285c302 100644 --- a/packages/channel-connector/src/__tests__/utils/telegramHtml.test.ts +++ b/packages/channel-connector/src/__tests__/utils/telegramHtml.test.ts @@ -40,6 +40,14 @@ describe('markdownToTelegramHtml', () => { expect(out).not.toContain('