feat (ee): APIs to configure an auto assignment limit for inboxes (#4672)

Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
This commit is contained in:
Sojan Jose
2022-06-13 20:18:38 +05:30
committed by GitHub
parent ae72757d23
commit 713fdb44ee
20 changed files with 255 additions and 45 deletions

View File

@@ -8,10 +8,14 @@ describe RoundRobin::ManageService do
let!(:inbox_members) { create_list(:inbox_member, 5, inbox: inbox) }
describe '#available_agent' do
it 'gets the first available agent and move agent to end of the list' do
it 'returns nil if allowed_member_ids is empty' do
expect(described_class.new(inbox: inbox, allowed_member_ids: []).available_agent).to eq nil
end
it 'gets the first available agent in allowed_member_ids and move agent to end of the list' do
expected_queue = [inbox_members[0].user_id, inbox_members[4].user_id, inbox_members[3].user_id, inbox_members[2].user_id,
inbox_members[1].user_id].map(&:to_s)
round_robin_manage_service.available_agent
described_class.new(inbox: inbox, allowed_member_ids: [inbox_members[0].user_id, inbox_members[4].user_id]).available_agent
expect(round_robin_manage_service.send(:queue)).to eq(expected_queue)
end
@@ -19,8 +23,8 @@ describe RoundRobin::ManageService do
expected_queue = [inbox_members[2].user_id, inbox_members[4].user_id, inbox_members[3].user_id, inbox_members[1].user_id,
inbox_members[0].user_id].map(&:to_s)
# prority list will be ids in string, since thats what redis supplies to us
expect(round_robin_manage_service.available_agent(priority_list: [inbox_members[3].user_id.to_s,
inbox_members[2].user_id.to_s])).to eq inbox_members[2].user
expect(described_class.new(inbox: inbox, allowed_member_ids: [inbox_members[2].user_id])
.available_agent(priority_list: [inbox_members[3].user_id.to_s, inbox_members[2].user_id.to_s])).to eq inbox_members[2].user
expect(round_robin_manage_service.send(:queue)).to eq(expected_queue)
end