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, 45 insertions, 10 deletions
diff --git a/spec/finders/merge_requests_finder_spec.rb b/spec/finders/merge_requests_finder_spec.rb index 7b59b581b1c..6fdfe780463 100644 --- a/spec/finders/merge_requests_finder_spec.rb +++ b/spec/finders/merge_requests_finder_spec.rb @@ -76,13 +76,40 @@ RSpec.describe MergeRequestsFinder do expect(merge_requests).to contain_exactly(merge_request3, merge_request4) end - it 'filters by commit sha' do - merge_requests = described_class.new( - user, - commit_sha: merge_request5.merge_request_diff.last_commit_sha - ).execute + context 'filters by commit sha' do + subject(:merge_requests) { described_class.new(user, commit_sha: commit_sha).execute } + + context 'when commit belongs to the merge request' do + let(:commit_sha) { merge_request5.merge_request_diff.last_commit_sha } + + it 'filters by commit sha' do + is_expected.to contain_exactly(merge_request5) + end + end + + context 'when commit is a squash commit' do + before do + merge_request4.update!(squash_commit_sha: commit_sha) + end + + let(:commit_sha) { '1234abcd' } + + it 'filters by commit sha' do + is_expected.to contain_exactly(merge_request4) + end + end + + context 'when commit is a merge commit' do + before do + merge_request4.update!(merge_commit_sha: commit_sha) + end + + let(:commit_sha) { '1234dcba' } - expect(merge_requests).to contain_exactly(merge_request5) + it 'filters by commit sha' do + is_expected.to contain_exactly(merge_request4) + end + end end context 'filters by merged_at date' do @@ -697,10 +724,18 @@ RSpec.describe MergeRequestsFinder do context 'with admin user' do let(:user) { create(:user, :admin) } - it 'returns all merge requests' do - expect(merge_requests).to eq( - [mr_internal_private_repo_access, mr_private_repo_access, mr_internal, mr_private, mr_public] - ) + context 'when admin mode is enabled', :enable_admin_mode do + it 'returns all merge requests' do + expect(merge_requests).to contain_exactly( + mr_internal_private_repo_access, mr_private_repo_access, mr_internal, mr_private, mr_public + ) + end + end + + context 'when admin mode is disabled' do + it 'returns public and internal merge requests' do + expect(merge_requests).to contain_exactly(mr_internal, mr_public) + end end end |