Chatwoot/spec/finders/message_finder_spec.rb
Sojan Jose 722f540b03 [Feature] Email collect message hooks (#331)
- Add email collect hook on creating conversation
- Merge contact if it already exist
2020-01-09 13:06:40 +05:30

47 lines
1.6 KiB
Ruby

require 'rails_helper'
describe ::MessageFinder do
subject(:message_finder) { described_class.new(conversation, params) }
let!(:account) { create(:account) }
let!(:user) { create(:user, account: account) }
let!(:inbox) { create(:inbox, account: account) }
let!(:conversation) { create(:conversation, account: account, inbox: inbox, assignee: user) }
before do
create(:message, account: account, inbox: inbox, conversation: conversation)
create(:message, message_type: 'activity', account: account, inbox: inbox, conversation: conversation)
create(:message, message_type: 'activity', account: account, inbox: inbox, conversation: conversation)
create(:message, message_type: 'outgoing', account: account, inbox: inbox, conversation: conversation)
end
describe '#perform' do
context 'with filter_internal_messages false' do
let(:params) { { filter_internal_messages: false } }
it 'filter conversations by status' do
result = message_finder.perform
expect(result.count).to be 7
end
end
context 'with filter_internal_messages true' do
let(:params) { { filter_internal_messages: true } }
it 'filter conversations by status' do
result = message_finder.perform
expect(result.count).to be 5
end
end
context 'with before attribute' do
let!(:outgoing) { create(:message, message_type: 'outgoing', account: account, inbox: inbox, conversation: conversation) }
let(:params) { { before: outgoing.id } }
it 'filter conversations by status' do
result = message_finder.perform
expect(result.count).to be 7
end
end
end
end