Feature: Inbox greeting message (#927)
Co-authored-by: Pranav Raj S <pranav@thoughtwoot.com>
This commit is contained in:
@@ -5,17 +5,22 @@ describe ::MessageTemplates::HookExecutionService do
|
||||
it 'calls ::MessageTemplates::Template::EmailCollect' do
|
||||
contact = create(:contact, email: nil)
|
||||
conversation = create(:conversation, contact: contact)
|
||||
message = create(:message, conversation: conversation)
|
||||
|
||||
# this hook will only get executed for conversations with out any template messages
|
||||
message.conversation.messages.template.destroy_all
|
||||
# ensure greeting hook is enabled
|
||||
conversation.inbox.update(greeting_enabled: true)
|
||||
|
||||
email_collect_service = double
|
||||
greeting_service = double
|
||||
allow(::MessageTemplates::Template::EmailCollect).to receive(:new).and_return(email_collect_service)
|
||||
allow(email_collect_service).to receive(:perform).and_return(true)
|
||||
allow(::MessageTemplates::Template::Greeting).to receive(:new).and_return(greeting_service)
|
||||
allow(greeting_service).to receive(:perform).and_return(true)
|
||||
|
||||
described_class.new(message: message).perform
|
||||
# described class gets called in message after commit
|
||||
message = create(:message, conversation: conversation)
|
||||
|
||||
expect(::MessageTemplates::Template::Greeting).to have_received(:new).with(conversation: message.conversation)
|
||||
expect(greeting_service).to have_received(:perform)
|
||||
expect(::MessageTemplates::Template::EmailCollect).to have_received(:new).with(conversation: message.conversation)
|
||||
expect(email_collect_service).to have_received(:perform)
|
||||
end
|
||||
|
||||
@@ -6,7 +6,7 @@ describe ::MessageTemplates::Template::EmailCollect do
|
||||
|
||||
it 'creates the email collect messages' do
|
||||
described_class.new(conversation: conversation).perform
|
||||
expect(conversation.messages.count).to eq(3)
|
||||
expect(conversation.messages.count).to eq(2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
12
spec/services/message_templates/template/greeting_spec.rb
Normal file
12
spec/services/message_templates/template/greeting_spec.rb
Normal file
@@ -0,0 +1,12 @@
|
||||
require 'rails_helper'
|
||||
|
||||
describe ::MessageTemplates::Template::Greeting do
|
||||
context 'when this hook is called' do
|
||||
let(:conversation) { create(:conversation) }
|
||||
|
||||
it 'creates the email collect messages' do
|
||||
described_class.new(conversation: conversation).perform
|
||||
expect(conversation.messages.count).to eq(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -3,7 +3,8 @@ require 'rails_helper'
|
||||
describe Twilio::IncomingMessageService do
|
||||
let!(:account) { create(:account) }
|
||||
let!(:twilio_sms) do
|
||||
create(:channel_twilio_sms, account: account, phone_number: '+1234567890', account_sid: 'ACxxx')
|
||||
create(:channel_twilio_sms, account: account, phone_number: '+1234567890', account_sid: 'ACxxx',
|
||||
inbox: create(:inbox, account: account, greeting_enabled: false))
|
||||
end
|
||||
let!(:contact) { create(:contact, account: account, phone_number: '+12345') }
|
||||
let(:contact_inbox) { create(:contact_inbox, source_id: '+12345', contact: contact, inbox: twilio_sms.inbox) }
|
||||
|
||||
Reference in New Issue
Block a user