diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-20 18:38:24 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-20 18:38:24 +0000 |
commit | 983a0bba5d2a042c4a3bbb22432ec192c7501d82 (patch) | |
tree | b153cd387c14ba23bd5a07514c7c01fddf6a78a0 /spec/services/auto_merge | |
parent | a2bddee2cdb38673df0e004d5b32d9f77797de64 (diff) | |
download | gitlab-ce-983a0bba5d2a042c4a3bbb22432ec192c7501d82.tar.gz |
Add latest changes from gitlab-org/gitlab@12-10-stable-ee
Diffstat (limited to 'spec/services/auto_merge')
-rw-r--r-- | spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb b/spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb index e03d87e9d49..b6e8d3c636a 100644 --- a/spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb +++ b/spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' describe AutoMerge::MergeWhenPipelineSucceedsService do - let(:user) { create(:user) } - let(:project) { create(:project, :repository) } + let_it_be(:user) { create(:user) } + let_it_be(:project) { create(:project, :repository) } let(:mr_merge_if_green_enabled) do create(:merge_request, merge_when_pipeline_succeeds: true, merge_user: user, @@ -20,6 +20,10 @@ describe AutoMerge::MergeWhenPipelineSucceedsService do described_class.new(project, user, commit_message: 'Awesome message') end + before_all do + project.add_maintainer(user) + end + describe "#available_for?" do subject { service.available_for?(mr_merge_if_green_enabled) } @@ -34,11 +38,25 @@ describe AutoMerge::MergeWhenPipelineSucceedsService do it { is_expected.to be_truthy } + it 'memoizes the result' do + expect(mr_merge_if_green_enabled).to receive(:can_be_merged_by?).once.and_call_original + + 2.times { is_expected.to be_truthy } + end + context 'when the head pipeline succeeded' do let(:pipeline_status) { :success } it { is_expected.to be_falsy } end + + context 'when the user does not have permission to merge' do + before do + allow(mr_merge_if_green_enabled).to receive(:can_be_merged_by?) { false } + end + + it { is_expected.to be_falsy } + end end describe "#execute" do |