diff options
Diffstat (limited to 'spec/finders/merge_requests_finder_spec.rb')
-rw-r--r-- | spec/finders/merge_requests_finder_spec.rb | 55 |
1 files changed, 38 insertions, 17 deletions
diff --git a/spec/finders/merge_requests_finder_spec.rb b/spec/finders/merge_requests_finder_spec.rb index 6fdfe780463..b3000498bb6 100644 --- a/spec/finders/merge_requests_finder_spec.rb +++ b/spec/finders/merge_requests_finder_spec.rb @@ -41,30 +41,51 @@ RSpec.describe MergeRequestsFinder do expect(merge_requests).to contain_exactly(merge_request1) end - it 'filters by nonexistent author ID and MR term using CTE for search' do - params = { - author_id: 'does-not-exist', - search: 'git', - attempt_group_search_optimizations: true - } + context 'filtering by author' do + subject(:merge_requests) { described_class.new(user, params).execute } - merge_requests = described_class.new(user, params).execute + context 'using OR' do + let(:params) { { or: { author_username: [merge_request1.author.username, merge_request2.author.username] } } } - expect(merge_requests).to be_empty - end + before do + merge_request1.update!(author: create(:user)) + merge_request2.update!(author: create(:user)) + end + + it 'returns merge requests created by any of the given users' do + expect(merge_requests).to contain_exactly(merge_request1, merge_request2) + end - context 'filtering by not author ID' do - let(:params) { { not: { author_id: user2.id } } } + context 'when feature flag is disabled' do + before do + stub_feature_flags(or_issuable_queries: false) + end - before do - merge_request2.update!(author: user2) - merge_request3.update!(author: user2) + it 'does not add any filter' do + expect(merge_requests).to contain_exactly(merge_request1, merge_request2, merge_request3, merge_request4, merge_request5) + end + end end - it 'returns merge requests not created by that user' do - merge_requests = described_class.new(user, params).execute + context 'with nonexistent author ID and MR term using CTE for search' do + let(:params) { { author_id: 'does-not-exist', search: 'git', attempt_group_search_optimizations: true } } + + it 'returns no results' do + expect(merge_requests).to be_empty + end + end - expect(merge_requests).to contain_exactly(merge_request1, merge_request4, merge_request5) + context 'filtering by not author ID' do + let(:params) { { not: { author_id: user2.id } } } + + before do + merge_request2.update!(author: user2) + merge_request3.update!(author: user2) + end + + it 'returns merge requests not created by that user' do + expect(merge_requests).to contain_exactly(merge_request1, merge_request4, merge_request5) + end end end |