fix(telegram-bot): skip empty structured messages (#1857)
This commit is contained in:
@@ -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 }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user