40 lines
1.5 KiB
Ruby
40 lines
1.5 KiB
Ruby
require 'rails_helper'
|
|
|
|
shared_examples_for 'liqudable' do
|
|
context 'when liquid is present in content' do
|
|
let(:contact) { create(:contact, name: 'john', phone_number: '+912883') }
|
|
let(:conversation) { create(:conversation, id: 1, contact: contact) }
|
|
|
|
context 'when message is incoming' do
|
|
let(:message) { build(:message, conversation: conversation, message_type: 'incoming') }
|
|
|
|
it 'will not process liquid in content' do
|
|
message.content = 'hey {{contact.name}} how are you?'
|
|
message.save!
|
|
expect(message.content).to eq 'hey {{contact.name}} how are you?'
|
|
end
|
|
end
|
|
|
|
context 'when message is outgoing' do
|
|
let(:message) { build(:message, conversation: conversation, message_type: 'outgoing') }
|
|
|
|
it 'set replaces liquid variables in message' do
|
|
message.content = 'hey {{contact.name}} how are you?'
|
|
message.save!
|
|
expect(message.content).to eq 'hey john how are you?'
|
|
end
|
|
|
|
it 'process liquid operators like default value' do
|
|
message.content = 'Can we send you an email at {{ contact.email | default: "default" }} ?'
|
|
message.save!
|
|
expect(message.content).to eq 'Can we send you an email at default ?'
|
|
end
|
|
|
|
it 'return empty string when value is not available' do
|
|
message.content = 'Can we send you an email at {{contact.email}}?'
|
|
message.save!
|
|
expect(message.content).to eq 'Can we send you an email at ?'
|
|
end
|
|
end
|
|
end
|
|
end
|