Feature: Add ability to disable auto assignment of conversations (#513)

This commit is contained in:
Tim Lange
2020-02-19 10:10:03 +01:00
committed by GitHub
parent e0afb84502
commit 30e5edf6dc
15 changed files with 377 additions and 230 deletions

View File

@@ -62,7 +62,7 @@ RSpec.describe 'Inboxes API', type: :request do
as: :json
expect(response).to have_http_status(:success)
expect(Inbox.count).to eq(0)
expect { inbox.reload }.to raise_exception(ActiveRecord::RecordNotFound)
end
it 'is unable to delete inbox of another account' do
@@ -87,4 +87,42 @@ RSpec.describe 'Inboxes API', type: :request do
end
end
end
describe 'PATCH /api/v1/inboxes/:id' do
let(:inbox) { create(:inbox, account: account) }
context 'when it is an unauthenticated user' do
it 'returns unauthorized' do
patch "/api/v1/inboxes/#{inbox.id}"
expect(response).to have_http_status(:unauthorized)
end
end
context 'when it is an authenticated user' do
let(:admin) { create(:user, account: account, role: :administrator) }
let(:valid_params) { { inbox: { enable_auto_assignment: false } } }
it 'updates inbox' do
patch "/api/v1/inboxes/#{inbox.id}",
headers: admin.create_new_auth_token,
params: valid_params,
as: :json
expect(response).to have_http_status(:success)
expect(inbox.reload.enable_auto_assignment).to be_falsey
end
it 'will not update inbox for agent' do
agent = create(:user, account: account, role: :agent)
patch "/api/v1/inboxes/#{inbox.id}",
headers: agent.create_new_auth_token,
params: valid_params,
as: :json
expect(response).to have_http_status(:unauthorized)
end
end
end
end