From e5e73a08fe7cfa42d3e40cd07b08510ba06ca2f5 Mon Sep 17 00:00:00 2001 From: Viraj Bahulkar Date: Mon, 25 Oct 2021 15:52:06 +0530 Subject: [PATCH] fix: Render missing captions for telegram media attachments (#3257) --- .../telegram/incoming_message_service.rb | 2 +- .../telegram/incoming_message_service_spec.rb | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/services/telegram/incoming_message_service.rb b/app/services/telegram/incoming_message_service.rb index da4b1a3bf..1647623be 100644 --- a/app/services/telegram/incoming_message_service.rb +++ b/app/services/telegram/incoming_message_service.rb @@ -13,7 +13,7 @@ class Telegram::IncomingMessageService update_contact_avatar set_conversation @message = @conversation.messages.create( - content: params[:message][:text], + content: params[:message][:text].presence || params[:message][:caption], account_id: @inbox.account_id, inbox_id: @inbox.id, message_type: :incoming, diff --git a/spec/services/telegram/incoming_message_service_spec.rb b/spec/services/telegram/incoming_message_service_spec.rb index 9ac85c047..501183405 100644 --- a/spec/services/telegram/incoming_message_service_spec.rb +++ b/spec/services/telegram/incoming_message_service_spec.rb @@ -24,6 +24,26 @@ describe Telegram::IncomingMessageService do end end + context 'when valid caption params' do + it 'creates appropriate conversations, message and contacts' do + params = { + 'update_id' => 2_342_342_343_242, + 'message' => { + 'message_id' => 1, + 'from' => { + 'id' => 23, 'is_bot' => false, 'first_name' => 'Sojan', 'last_name' => 'Jose', 'username' => 'sojan', 'language_code' => 'en' + }, + 'chat' => { 'id' => 23, 'first_name' => 'Sojan', 'last_name' => 'Jose', 'username' => 'sojan', 'type' => 'private' }, + 'date' => 1_631_132_077, 'caption' => 'test' + } + }.with_indifferent_access + described_class.new(inbox: telegram_channel.inbox, params: params).perform + expect(telegram_channel.inbox.conversations.count).not_to eq(0) + expect(Contact.all.first.name).to eq('Sojan Jose') + expect(telegram_channel.inbox.messages.first.content).to eq('test') + end + end + context 'when group messages' do it 'doesnot create conversations, message and contacts' do params = {