feat: Show shared contact's name in Telegram channel (#10856)
# Pull Request Template ## Description This PR adds the ability to see the shared contact name in Telegram channels. ## Type of change - [x] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? **Loom video** https://www.loom.com/share/cd318056ad4d44d4a1fc4b5d4ad38d60?sid=26d833ae-ded9-4cf0-9af7-81eecfa37f19 ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules --------- Co-authored-by: Shivam Mishra <scm.mymail@gmail.com>
This commit is contained in:
@@ -67,4 +67,65 @@ RSpec.describe Attachment do
|
||||
expect(message.attachments.first.push_event_data[:data_url]).not_to eq message.attachments.first.external_url
|
||||
end
|
||||
end
|
||||
|
||||
describe 'meta data handling' do
|
||||
let(:message) { create(:message) }
|
||||
|
||||
context 'when attachment is a contact type' do
|
||||
let(:contact_attachment) do
|
||||
message.attachments.create!(
|
||||
account_id: message.account_id,
|
||||
file_type: :contact,
|
||||
fallback_title: '+1234567890',
|
||||
meta: {
|
||||
first_name: 'John',
|
||||
last_name: 'Doe'
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
it 'stores and retrieves meta data correctly' do
|
||||
expect(contact_attachment.meta['first_name']).to eq('John')
|
||||
expect(contact_attachment.meta['last_name']).to eq('Doe')
|
||||
end
|
||||
|
||||
it 'includes meta data in push_event_data' do
|
||||
event_data = contact_attachment.push_event_data
|
||||
expect(event_data[:meta]).to eq({
|
||||
'first_name' => 'John',
|
||||
'last_name' => 'Doe'
|
||||
})
|
||||
end
|
||||
|
||||
it 'returns empty hash for meta if not set' do
|
||||
attachment = message.attachments.create!(
|
||||
account_id: message.account_id,
|
||||
file_type: :contact,
|
||||
fallback_title: '+1234567890'
|
||||
)
|
||||
expect(attachment.push_event_data[:meta]).to eq({})
|
||||
end
|
||||
end
|
||||
|
||||
context 'when meta is used with other file types' do
|
||||
let(:image_attachment) do
|
||||
attachment = message.attachments.new(
|
||||
account_id: message.account_id,
|
||||
file_type: :image,
|
||||
meta: { description: 'Test image' }
|
||||
)
|
||||
attachment.file.attach(
|
||||
io: Rails.root.join('spec/assets/avatar.png').open,
|
||||
filename: 'avatar.png',
|
||||
content_type: 'image/png'
|
||||
)
|
||||
attachment.save!
|
||||
attachment
|
||||
end
|
||||
|
||||
it 'preserves meta data with file attachments' do
|
||||
expect(image_attachment.meta['description']).to eq('Test image')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user