diff options
author | Eva Kadlecová <evka.kadl@gmail.com> | 2018-09-30 11:31:01 +0200 |
---|---|---|
committer | Eva Kadlecová <evka.kadl@gmail.com> | 2018-10-01 19:29:56 +0200 |
commit | 10534e31622242ee6d6ad4d5502e1f2808979b43 (patch) | |
tree | 5368bab8b6cb0d26ca8de59f9d45fe5106b70f68 | |
parent | 227cc997fb107672e3293c56e0dcb1df72ad82d5 (diff) | |
download | gitlab-ce-10534e31622242ee6d6ad4d5502e1f2808979b43.tar.gz |
Filter issues without an Assignee via the API
-rw-r--r-- | app/finders/issuable_finder.rb | 6 | ||||
-rw-r--r-- | changelogs/unreleased/41205-fix-filtering-issues.yml | 5 | ||||
-rw-r--r-- | spec/finders/issues_finder_spec.rb | 8 | ||||
-rw-r--r-- | spec/requests/api/issues_spec.rb | 9 |
4 files changed, 25 insertions, 3 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb index 251a559878a..0209a1397b9 100644 --- a/app/finders/issuable_finder.rb +++ b/app/finders/issuable_finder.rb @@ -236,16 +236,16 @@ class IssuableFinder # rubocop: enable CodeReuse/ActiveRecord def assignee_id? - params[:assignee_id].present? && params[:assignee_id] != NONE + params[:assignee_id].present? && params[:assignee_id].to_s != NONE end def assignee_username? - params[:assignee_username].present? && params[:assignee_username] != NONE + params[:assignee_username].present? && params[:assignee_username].to_s != NONE end def no_assignee? # Assignee_id takes precedence over assignee_username - params[:assignee_id] == NONE || params[:assignee_username] == NONE + params[:assignee_id].to_s == NONE || params[:assignee_username].to_s == NONE end # rubocop: disable CodeReuse/ActiveRecord diff --git a/changelogs/unreleased/41205-fix-filtering-issues.yml b/changelogs/unreleased/41205-fix-filtering-issues.yml new file mode 100644 index 00000000000..ef1a11aad08 --- /dev/null +++ b/changelogs/unreleased/41205-fix-filtering-issues.yml @@ -0,0 +1,5 @@ +--- +title: Filter issues without an Assignee via the API +merge_request: 22009 +author: Eva Kadlecová +type: fixed diff --git a/spec/finders/issues_finder_spec.rb b/spec/finders/issues_finder_spec.rb index 07a2fa86dd7..d78451112ec 100644 --- a/spec/finders/issues_finder_spec.rb +++ b/spec/finders/issues_finder_spec.rb @@ -56,6 +56,14 @@ describe IssuesFinder do end end + context 'filtering by no assignee' do + let(:params) { { assignee_id: 0 } } + + it 'returns issues not assign to any assignee' do + expect(issues).to contain_exactly(issue4) + end + end + context 'filtering by group_id' do let(:params) { { group_id: group.id } } diff --git a/spec/requests/api/issues_spec.rb b/spec/requests/api/issues_spec.rb index f64815feffa..1e2e13a723c 100644 --- a/spec/requests/api/issues_spec.rb +++ b/spec/requests/api/issues_spec.rb @@ -168,6 +168,15 @@ describe API::Issues do expect(first_issue['id']).to eq(issue2.id) end + it 'returns issues with no assignee' do + issue2 = create(:issue, author: user2, project: project) + + get api('/issues', user), assignee_id: 0, scope: 'all' + + expect_paginated_array_response(size: 1) + expect(first_issue['id']).to eq(issue2.id) + end + it 'returns issues reacted by the authenticated user by the given emoji' do issue2 = create(:issue, project: project, author: user, assignees: [user]) award_emoji = create(:award_emoji, awardable: issue2, user: user2, name: 'star') |