Merge branch 'develop' into feat/voice-as-twilio-capability

This commit is contained in:
Muhsin Keloth
2026-04-23 11:32:13 +04:00
committed by GitHub
29 changed files with 929 additions and 135 deletions
@@ -55,6 +55,11 @@ RSpec.describe Captain::Document, type: :model do
expect(doc.pdf_document?).to be true
end
it 'returns true for PDF:-prefixed external links even when the blob is missing' do
doc = build(:captain_document, external_link: 'PDF: report_20250101120000')
expect(doc.pdf_document?).to be true
end
it 'returns false for non-PDF documents' do
doc = build(:captain_document, external_link: 'https://example.com')
expect(doc.pdf_document?).to be false
@@ -58,6 +58,35 @@ RSpec.describe Messages::SearchDataPresenter do
end
end
context 'when the message has no email subject but the conversation has a mail_subject' do
before do
conversation.update!(additional_attributes: { 'mail_subject' => 'Conversation Subject' })
end
it 'falls back to the conversation mail_subject' do
content_attrs = presenter.search_data[:content_attributes]
expect(content_attrs[:email][:subject]).to eq('Conversation Subject')
end
end
context 'when both the message email subject and conversation mail_subject are set' do
before do
conversation.update!(additional_attributes: { 'mail_subject' => 'Conversation subject' })
message.update!(content_attributes: { email: { subject: 'Message subject' } })
end
it 'prefers the message-level email subject' do
content_attrs = presenter.search_data[:content_attributes]
expect(content_attrs[:email][:subject]).to eq('Message subject')
end
end
context 'when neither message nor conversation has an email subject' do
it 'omits the email subject from content_attributes' do
expect(presenter.search_data[:content_attributes]).to eq({})
end
end
context 'with campaign and automation data' do
before do
message.update(