fix(telegram-bot): skip empty structured messages (#1857)

This commit is contained in:
luyua9
2026-05-21 03:06:52 +08:00
committed by GitHub
parent cd908015b3
commit 3a6f7a7628
2 changed files with 16 additions and 1 deletions
@@ -45,6 +45,16 @@ describe('parseMayStructuredMessage', () => {
expect(result).toMatchObject({ messages: [text], reply_to_message_id: undefined })
})
it('should return null when structured output has an empty messages array', () => {
const result = parseMayStructuredMessage('{"messages":[]}')
expect(result).toBeNull()
})
it('should return null when structured output has only blank messages', () => {
const result = parseMayStructuredMessage('{"messages":["", " "]}')
expect(result).toBeNull()
})
it('should return an array of messages from multi-line elements of input', () => {
const result = parseMayStructuredMessage(`{"messages": [
"Hello,
@@ -26,7 +26,8 @@ export function parseMayStructuredMessage(responseText: string) {
logger.withField('text', JSON.stringify(responseText)).withField('result', result).log('Multiple messages detected')
const parsedResponse = parse(result[0]) as ({ messages?: unknown, reply_to_message_id?: unknown } | undefined)
const messages = Array.isArray(parsedResponse?.messages)
const hasMessagesArray = Array.isArray(parsedResponse?.messages)
const messages = hasMessagesArray
? parsedResponse.messages.filter((message): message is string => typeof message === 'string' && message.trim() !== '')
: []
const replyToMessageId = typeof parsedResponse?.reply_to_message_id === 'string'
@@ -37,6 +38,10 @@ export function parseMayStructuredMessage(responseText: string) {
return { messages, reply_to_message_id: replyToMessageId }
}
if (hasMessagesArray) {
return null
}
return { messages: [responseText], reply_to_message_id: replyToMessageId }
}