Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/merge_requests/rebase_service_spec.rb')
-rw-r--r--spec/services/merge_requests/rebase_service_spec.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/services/merge_requests/rebase_service_spec.rb b/spec/services/merge_requests/rebase_service_spec.rb
index ca561376581..e671bbf2cd6 100644
--- a/spec/services/merge_requests/rebase_service_spec.rb
+++ b/spec/services/merge_requests/rebase_service_spec.rb
@@ -80,6 +80,27 @@ RSpec.describe MergeRequests::RebaseService do
end
end
+ context 'with a pre-receive failure' do
+ let(:pre_receive_error) { "Commit message does not follow the pattern 'ACME'" }
+ let(:merge_error) { "Something went wrong during the rebase pre-receive hook: #{pre_receive_error}." }
+
+ before do
+ allow(repository).to receive(:gitaly_operation_client).and_raise(Gitlab::Git::PreReceiveError, "GitLab: #{pre_receive_error}")
+ end
+
+ it 'saves a specific message' do
+ subject.execute(merge_request)
+
+ expect(merge_request.reload.merge_error).to eq merge_error
+ end
+
+ it 'returns an error' do
+ expect(service.execute(merge_request)).to match(
+ status: :error,
+ message: merge_error)
+ end
+ end
+
context 'with git command failure' do
before do
allow(repository).to receive(:gitaly_operation_client).and_raise(Gitlab::Git::Repository::GitError, 'Something went wrong')