From 09971fd613369d4765500b8a2092632e371b7814 Mon Sep 17 00:00:00 2001 From: Tejaswini Chile Date: Sat, 3 Jun 2023 07:33:36 +0530 Subject: [PATCH] fix: Wrap references string into array (#7243) --- app/mailboxes/imap/imap_mailbox.rb | 2 +- spec/mailboxes/imap/imap_mailbox_spec.rb | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/mailboxes/imap/imap_mailbox.rb b/app/mailboxes/imap/imap_mailbox.rb index f811eedfa..71e3d6ec0 100644 --- a/app/mailboxes/imap/imap_mailbox.rb +++ b/app/mailboxes/imap/imap_mailbox.rb @@ -54,7 +54,7 @@ class Imap::ImapMailbox return if @inbound_mail.references.blank? - references = @inbound_mail.references + references = Array.wrap(@inbound_mail.references) references.each do |message_id| message = @inbox.messages.find_by(source_id: message_id) diff --git a/spec/mailboxes/imap/imap_mailbox_spec.rb b/spec/mailboxes/imap/imap_mailbox_spec.rb index d741440c7..3957ac5ab 100644 --- a/spec/mailboxes/imap/imap_mailbox_spec.rb +++ b/spec/mailboxes/imap/imap_mailbox_spec.rb @@ -111,6 +111,29 @@ RSpec.describe Imap::ImapMailbox do expect(conversation.messages.last.content).to eq('References Email') expect(references_email.mail.references).to include('test-reference-id') end + + it 'append email to conversation with reference id string' do + inbox = Inbox.last + message = create( + :message, + content: 'Incoming Message', + message_type: 'incoming', + inbox: inbox, + source_id: 'test-reference-id-2', + account: account, + conversation: conversation + ) + conversation = message.conversation + + expect(conversation.messages.size).to eq(1) + + references_email.mail.references = 'test-reference-id-2' + class_instance.process(references_email.mail, inbox.channel) + + expect(conversation.messages.size).to eq(2) + expect(conversation.messages.last.content).to eq('References Email') + expect(references_email.mail.references).to include('test-reference-id-2') + end end end end