diff options
Diffstat (limited to 'spec/models/ci/pipeline_spec.rb')
-rw-r--r-- | spec/models/ci/pipeline_spec.rb | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb index 844e50dbb58..90412136c1d 100644 --- a/spec/models/ci/pipeline_spec.rb +++ b/spec/models/ci/pipeline_spec.rb @@ -2367,18 +2367,31 @@ describe Ci::Pipeline, :mailer do end end - describe "#all_merge_requests" do + describe '#all_merge_requests' do let(:project) { create(:project) } shared_examples 'a method that returns all merge requests for a given pipeline' do let(:pipeline) { create(:ci_empty_pipeline, status: 'created', project: pipeline_project, ref: 'master') } - it "returns all merge requests having the same source branch" do + it 'returns all merge requests having the same source branch and the pipeline sha' do merge_request = create(:merge_request, source_project: pipeline_project, target_project: project, source_branch: pipeline.ref) + create(:merge_request_diff, merge_request: merge_request).tap do |diff| + create(:merge_request_diff_commit, merge_request_diff: diff, sha: pipeline.sha) + end + expect(pipeline.all_merge_requests).to eq([merge_request]) end + it "doesn't return merge requests having the same source branch without the pipeline sha" do + merge_request = create(:merge_request, source_project: pipeline_project, target_project: project, source_branch: pipeline.ref) + create(:merge_request_diff, merge_request: merge_request).tap do |diff| + create(:merge_request_diff_commit, merge_request_diff: diff, sha: 'unrelated') + end + + expect(pipeline.all_merge_requests).to be_empty + end + it "doesn't return merge requests having a different source branch" do create(:merge_request, source_project: pipeline_project, target_project: project, source_branch: 'feature', target_branch: 'master') |