diff options
Diffstat (limited to 'spec/controllers/projects/merge_requests_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/merge_requests_controller_spec.rb | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb index a93dc806283..095775b0ddd 100644 --- a/spec/controllers/projects/merge_requests_controller_spec.rb +++ b/spec/controllers/projects/merge_requests_controller_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Projects::MergeRequestsController, feature_category: :code_review do +RSpec.describe Projects::MergeRequestsController, feature_category: :code_review_workflow do include ProjectForksHelper include Gitlab::Routing using RSpec::Parameterized::TableSyntax @@ -229,6 +229,16 @@ RSpec.describe Projects::MergeRequestsController, feature_category: :code_review expect(response.headers[Gitlab::Workhorse::SEND_DATA_HEADER]).to start_with("git-diff:") end + + context 'when there is no diff' do + it 'renders 404' do + merge_request.merge_request_diff.destroy! + + go(format: :diff) + + expect(response).to have_gitlab_http_status(:not_found) + end + end end describe "as patch" do @@ -237,6 +247,16 @@ RSpec.describe Projects::MergeRequestsController, feature_category: :code_review expect(response.headers[Gitlab::Workhorse::SEND_DATA_HEADER]).to start_with("git-format-patch:") end + + context 'when there is no diff' do + it 'renders 404' do + merge_request.merge_request_diff.destroy! + + go(format: :patch) + + expect(response).to have_gitlab_http_status(:not_found) + end + end end end @@ -2132,12 +2152,13 @@ RSpec.describe Projects::MergeRequestsController, feature_category: :code_review create(:protected_branch, project: project, name: merge_request.source_branch, allow_force_push: false) end - it 'returns 404' do + it 'returns 403' do expect_rebase_worker_for(user).never post_rebase - expect(response).to have_gitlab_http_status(:not_found) + expect(response).to have_gitlab_http_status(:forbidden) + expect(json_response['merge_error']).to eq('Source branch is protected from force push') end end @@ -2153,12 +2174,13 @@ RSpec.describe Projects::MergeRequestsController, feature_category: :code_review forked_project.add_reporter(user) end - it 'returns 404' do + it 'returns 403' do expect_rebase_worker_for(user).never post_rebase - expect(response).to have_gitlab_http_status(:not_found) + expect(response).to have_gitlab_http_status(:forbidden) + expect(json_response['merge_error']).to eq('Cannot push to source branch') end end |