mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-08 06:53:26 +00:00
62 lines
2.1 KiB
Ruby
62 lines
2.1 KiB
Ruby
require 'rails_helper'
|
|
|
|
describe Integrations::Slack::LinkUnfurlFormatter do
|
|
let(:contact) { create(:contact) }
|
|
let(:inbox) { create(:inbox) }
|
|
let(:url) { 'https://example.com/app/accounts/1/conversations/100' }
|
|
|
|
describe '#perform' do
|
|
context 'when unfurling a URL' do
|
|
let(:user_info) do
|
|
{
|
|
user_name: contact.name,
|
|
email: contact.email,
|
|
phone_number: '---',
|
|
company_name: '---'
|
|
}
|
|
end
|
|
|
|
let(:expected_payload) do
|
|
{
|
|
url => {
|
|
'blocks' => [
|
|
{
|
|
'type' => 'section',
|
|
'fields' => [
|
|
{ 'type' => 'mrkdwn', 'text' => "*Name:*\n#{contact.name}" },
|
|
{ 'type' => 'mrkdwn', 'text' => "*Email:*\n#{contact.email}" },
|
|
{ 'type' => 'mrkdwn', 'text' => "*Phone:*\n---" },
|
|
{ 'type' => 'mrkdwn', 'text' => "*Company:*\n---" },
|
|
{ 'type' => 'mrkdwn', 'text' => "*Inbox:*\n#{inbox.name}" },
|
|
{ 'type' => 'mrkdwn', 'text' => "*Inbox Type:*\n#{inbox.channel_type}" }
|
|
]
|
|
},
|
|
{
|
|
'type' => 'actions',
|
|
'elements' => [
|
|
{
|
|
'type' => 'button',
|
|
'text' => { 'type' => 'plain_text', 'text' => 'Open conversation', 'emoji' => true },
|
|
'url' => url,
|
|
'action_id' => 'button-action'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
end
|
|
|
|
it 'returns expected unfurl blocks when the URL is not blank' do
|
|
formatter = described_class.new(url: url, user_info: user_info, inbox_name: inbox.name, inbox_type: inbox.channel_type)
|
|
expect(formatter.perform).to eq(expected_payload)
|
|
end
|
|
|
|
it 'returns an empty hash when the URL is blank' do
|
|
formatter = described_class.new(url: nil, user_info: user_info, inbox_name: inbox.name, inbox_type: inbox.channel_type)
|
|
expect(formatter.perform).to eq({})
|
|
end
|
|
end
|
|
end
|
|
end
|