summaryrefslogtreecommitdiff
path: root/spec/services
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-09-28 08:45:31 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-09-28 08:45:31 +0000
commit7e314d61807ab28f595b7f9e6b7cf343b495d3b7 (patch)
treec5e3f3129002b9be843d97845c3ab6473e4437f1 /spec/services
parent11c8b8bc3c2294ef2e3a33196619f6e61f1e8d82 (diff)
parente38dc10c09ac6e6d7752d2bb9eeb0c3feab9765a (diff)
downloadgitlab-ce-7e314d61807ab28f595b7f9e6b7cf343b495d3b7.tar.gz
Merge branch '38476-improve-merge-jid-cleanup-on-merge-process' into 'master'
Clean merge_jid whenever necessary on the merge process Closes #38476 See merge request gitlab-org/gitlab-ce!14540
Diffstat (limited to 'spec/services')
-rw-r--r--spec/services/merge_requests/merge_service_spec.rb23
1 files changed, 20 insertions, 3 deletions
diff --git a/spec/services/merge_requests/merge_service_spec.rb b/spec/services/merge_requests/merge_service_spec.rb
index b60136064b7..80213d093f1 100644
--- a/spec/services/merge_requests/merge_service_spec.rb
+++ b/spec/services/merge_requests/merge_service_spec.rb
@@ -13,20 +13,21 @@ describe MergeRequests::MergeService do
describe '#execute' do
context 'MergeRequest#merge_jid' do
+ let(:service) do
+ described_class.new(project, user, commit_message: 'Awesome message')
+ end
+
before do
merge_request.update_column(:merge_jid, 'hash-123')
end
it 'is cleaned when no error is raised' do
- service = described_class.new(project, user, commit_message: 'Awesome message')
-
service.execute(merge_request)
expect(merge_request.reload.merge_jid).to be_nil
end
it 'is cleaned when expected error is raised' do
- service = described_class.new(project, user, commit_message: 'Awesome message')
allow(service).to receive(:commit).and_raise(described_class::MergeError)
service.execute(merge_request)
@@ -34,6 +35,22 @@ describe MergeRequests::MergeService do
expect(merge_request.reload.merge_jid).to be_nil
end
+ it 'is cleaned when merge request is not mergeable' do
+ allow(merge_request).to receive(:mergeable?).and_return(false)
+
+ service.execute(merge_request)
+
+ expect(merge_request.reload.merge_jid).to be_nil
+ end
+
+ it 'is cleaned when no source is found' do
+ allow(merge_request).to receive(:diff_head_sha).and_return(nil)
+
+ service.execute(merge_request)
+
+ expect(merge_request.reload.merge_jid).to be_nil
+ end
+
it 'is not cleaned when unexpected error is raised' do
service = described_class.new(project, user, commit_message: 'Awesome message')
allow(service).to receive(:commit).and_raise(StandardError)