diff options
Diffstat (limited to 'spec/controllers/projects/issues_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/issues_controller_spec.rb | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb index bcd1a53bd47..f9580c79390 100644 --- a/spec/controllers/projects/issues_controller_spec.rb +++ b/spec/controllers/projects/issues_controller_spec.rb @@ -237,7 +237,7 @@ RSpec.describe Projects::IssuesController do context 'external issue tracker' do let!(:service) do - create(:custom_issue_tracker_service, project: project, title: 'Custom Issue Tracker', new_issue_url: 'http://test.com') + create(:custom_issue_tracker_service, project: project, new_issue_url: 'http://test.com') end before do @@ -1564,6 +1564,43 @@ RSpec.describe Projects::IssuesController do end end + describe 'GET service_desk' do + let_it_be(:project) { create(:project_empty_repo, :public) } + let_it_be(:support_bot) { User.support_bot } + let_it_be(:other_user) { create(:user) } + let_it_be(:service_desk_issue_1) { create(:issue, project: project, author: support_bot) } + let_it_be(:service_desk_issue_2) { create(:issue, project: project, author: support_bot, assignees: [other_user]) } + let_it_be(:other_user_issue) { create(:issue, project: project, author: other_user) } + + def get_service_desk(extra_params = {}) + get :service_desk, params: extra_params.merge(namespace_id: project.namespace, project_id: project) + end + + it 'adds an author filter for the support bot user' do + get_service_desk + + expect(assigns(:issues)).to contain_exactly(service_desk_issue_1, service_desk_issue_2) + end + + it 'does not allow any other author to be set' do + get_service_desk(author_username: other_user.username) + + expect(assigns(:issues)).to contain_exactly(service_desk_issue_1, service_desk_issue_2) + end + + it 'supports other filters' do + get_service_desk(assignee_username: other_user.username) + + expect(assigns(:issues)).to contain_exactly(service_desk_issue_2) + end + + it 'allows an assignee to be specified by id' do + get_service_desk(assignee_id: other_user.id) + + expect(assigns(:users)).to contain_exactly(other_user, support_bot) + end + end + describe 'GET #discussions' do let!(:discussion) { create(:discussion_note_on_issue, noteable: issue, project: issue.project) } |