Some checks failed
Lock Threads / action (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot EE docker images / merge (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot CE docker images / merge (push) Has been cancelled
Run Chatwoot CE spec / lint-backend (push) Has been cancelled
Run Chatwoot CE spec / lint-frontend (push) Has been cancelled
Run Chatwoot CE spec / frontend-tests (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (0, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (1, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (10, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (11, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (12, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (13, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (14, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (15, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (2, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (3, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (4, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (5, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (6, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (7, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (8, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (9, 16) (push) Has been cancelled
Run Linux nightly installer / nightly (push) Has been cancelled
- Add Logistics component with progress tracking - Add OrderDetail component for order information - Support data-driven steps and actions - Add blue color scale to widget SCSS - Fix node overflow and progress bar rendering issues - Add English translations for dashboard components Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
78 lines
2.6 KiB
Ruby
78 lines
2.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!(:contact) { create(:contact, email: nil) }
|
|
let!(:conversation) do
|
|
create(:conversation, account: account, inbox: inbox, assignee: user, contact: contact)
|
|
end
|
|
|
|
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)
|
|
# this outgoing message creates 2 additional messages because of the email hook execution service
|
|
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 6
|
|
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 4
|
|
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 6
|
|
end
|
|
end
|
|
|
|
context 'with after attribute' do
|
|
let(:params) { { after: conversation.messages.first.id } }
|
|
|
|
it 'filter conversations by status' do
|
|
result = message_finder.perform
|
|
expect(result.count).to be 5
|
|
expect(result.first.id).to be conversation.messages.second.id
|
|
expect(result.last.message_type).to eq 'outgoing'
|
|
end
|
|
end
|
|
|
|
context 'with after and before attribute' do
|
|
let(:params) do
|
|
{
|
|
after: conversation.messages.first.id,
|
|
before: conversation.messages.last.id
|
|
}
|
|
end
|
|
|
|
it 'filter conversations by status' do
|
|
result = message_finder.perform
|
|
expect(result.count).to be 5
|
|
expect(result.last.id).to be conversation.messages[-2].id
|
|
end
|
|
end
|
|
end
|
|
end
|