diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-04 09:09:13 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-04 09:09:13 +0300 |
commit | cebee31a0483ef7f2cade3d6dde0a53a68e86cc6 (patch) | |
tree | b818a3e84bde169e6b2a9c96d9b794b6b8708094 /spec | |
parent | 7ec2694360b4d4bd9a4b00ef5166a77c854d9d4f (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/repository_spec.rb | 95 | ||||
-rw-r--r-- | spec/services/merge_requests/rebase_service_spec.rb | 24 |
2 files changed, 38 insertions, 81 deletions
diff --git a/spec/models/repository_spec.rb b/spec/models/repository_spec.rb index 3d28adade05..679e6142416 100644 --- a/spec/models/repository_spec.rb +++ b/spec/models/repository_spec.rb @@ -1618,79 +1618,58 @@ describe Repository do end end - context 'when two_step_rebase feature is enabled' do - before do - stub_feature_flags(two_step_rebase: true) - end - - it_behaves_like 'a method that can rebase successfully' - - it 'executes the new Gitaly RPC' do - expect_any_instance_of(Gitlab::GitalyClient::OperationService).to receive(:rebase) - expect_any_instance_of(Gitlab::GitalyClient::OperationService).not_to receive(:user_rebase) - - repository.rebase(user, merge_request) - end - - describe 'rolling back the `rebase_commit_sha`' do - let(:new_sha) { Digest::SHA1.hexdigest('foo') } + it_behaves_like 'a method that can rebase successfully' - it 'does not rollback when there are no errors' do - second_response = double(pre_receive_error: nil, git_error: nil) - mock_gitaly(second_response) + it 'executes the new Gitaly RPC' do + expect_any_instance_of(Gitlab::GitalyClient::OperationService).to receive(:rebase) + expect_any_instance_of(Gitlab::GitalyClient::OperationService).not_to receive(:user_rebase) - repository.rebase(user, merge_request) + repository.rebase(user, merge_request) + end - expect(merge_request.reload.rebase_commit_sha).to eq(new_sha) - end + describe 'rolling back the `rebase_commit_sha`' do + let(:new_sha) { Digest::SHA1.hexdigest('foo') } - it 'does rollback when a PreReceiveError is encountered in the second step' do - second_response = double(pre_receive_error: 'my_error', git_error: nil) - mock_gitaly(second_response) + it 'does not rollback when there are no errors' do + second_response = double(pre_receive_error: nil, git_error: nil) + mock_gitaly(second_response) - expect do - repository.rebase(user, merge_request) - end.to raise_error(Gitlab::Git::PreReceiveError) + repository.rebase(user, merge_request) - expect(merge_request.reload.rebase_commit_sha).to be_nil - end + expect(merge_request.reload.rebase_commit_sha).to eq(new_sha) + end - it 'does rollback when a GitError is encountered in the second step' do - second_response = double(pre_receive_error: nil, git_error: 'git error') - mock_gitaly(second_response) + it 'does rollback when a PreReceiveError is encountered in the second step' do + second_response = double(pre_receive_error: 'my_error', git_error: nil) + mock_gitaly(second_response) - expect do - repository.rebase(user, merge_request) - end.to raise_error(Gitlab::Git::Repository::GitError) + expect do + repository.rebase(user, merge_request) + end.to raise_error(Gitlab::Git::PreReceiveError) - expect(merge_request.reload.rebase_commit_sha).to be_nil - end + expect(merge_request.reload.rebase_commit_sha).to be_nil + end - def mock_gitaly(second_response) - responses = [ - double(rebase_sha: new_sha).as_null_object, - second_response - ] + it 'does rollback when a GitError is encountered in the second step' do + second_response = double(pre_receive_error: nil, git_error: 'git error') + mock_gitaly(second_response) - expect_any_instance_of( - Gitaly::OperationService::Stub - ).to receive(:user_rebase_confirmable).and_return(responses.each) - end - end - end + expect do + repository.rebase(user, merge_request) + end.to raise_error(Gitlab::Git::Repository::GitError) - context 'when two_step_rebase feature is disabled' do - before do - stub_feature_flags(two_step_rebase: false) + expect(merge_request.reload.rebase_commit_sha).to be_nil end - it_behaves_like 'a method that can rebase successfully' - - it 'executes the deprecated Gitaly RPC' do - expect_any_instance_of(Gitlab::GitalyClient::OperationService).to receive(:user_rebase) - expect_any_instance_of(Gitlab::GitalyClient::OperationService).not_to receive(:rebase) + def mock_gitaly(second_response) + responses = [ + double(rebase_sha: new_sha).as_null_object, + second_response + ] - repository.rebase(user, merge_request) + expect_any_instance_of( + Gitaly::OperationService::Stub + ).to receive(:user_rebase_confirmable).and_return(responses.each) end end end diff --git a/spec/services/merge_requests/rebase_service_spec.rb b/spec/services/merge_requests/rebase_service_spec.rb index 184f3f37339..22df3b84243 100644 --- a/spec/services/merge_requests/rebase_service_spec.rb +++ b/spec/services/merge_requests/rebase_service_spec.rb @@ -71,14 +71,6 @@ describe MergeRequests::RebaseService do it_behaves_like 'sequence of failure and success' - context 'with deprecated step rebase feature' do - before do - stub_feature_flags(two_step_rebase: false) - end - - it_behaves_like 'sequence of failure and success' - end - context 'when unexpected error occurs' do before do allow(repository).to receive(:gitaly_operation_client).and_raise('Something went wrong') @@ -140,21 +132,7 @@ describe MergeRequests::RebaseService do end end - context 'when the two_step_rebase feature is enabled' do - before do - stub_feature_flags(two_step_rebase: true) - end - - it_behaves_like 'a service that can execute a successful rebase' - end - - context 'when the two_step_rebase feature is disabled' do - before do - stub_feature_flags(two_step_rebase: false) - end - - it_behaves_like 'a service that can execute a successful rebase' - end + it_behaves_like 'a service that can execute a successful rebase' context 'when skip_ci flag is set' do let(:skip_ci) { true } |