Commit f5ab126f authored by Robert Speicher's avatar Robert Speicher

Ensure Commit#show responds 404 instead of 500 when given an invalid ID

Closes #13467
parent c29517aa
...@@ -11,8 +11,6 @@ class Projects::CommitController < Projects::ApplicationController ...@@ -11,8 +11,6 @@ class Projects::CommitController < Projects::ApplicationController
before_action :define_show_vars, only: [:show, :builds] before_action :define_show_vars, only: [:show, :builds]
def show def show
return git_not_found! unless @commit
apply_diff_view_cookie! apply_diff_view_cookie!
@line_notes = commit.notes.inline @line_notes = commit.notes.inline
...@@ -68,6 +66,8 @@ class Projects::CommitController < Projects::ApplicationController ...@@ -68,6 +66,8 @@ class Projects::CommitController < Projects::ApplicationController
end end
def define_show_vars def define_show_vars
return git_not_found! unless commit
if params[:w].to_i == 1 if params[:w].to_i == 1
@diffs = commit.diffs({ ignore_whitespace_change: true }) @diffs = commit.diffs({ ignore_whitespace_change: true })
else else
......
require 'rails_helper'
describe Projects::CommitController do
describe 'GET show' do
let(:project) { create(:project) }
before do
user = create(:user)
project.team << [user, :master]
sign_in(user)
end
context 'with valid id' do
it 'responds with 200' do
go id: project.commit.id
expect(response).to be_ok
end
end
context 'with invalid id' do
it 'responds with 404' do
go id: project.commit.id.reverse
expect(response).to be_not_found
end
end
def go(id:)
get :show,
namespace_id: project.namespace.to_param,
project_id: project.to_param,
id: id
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment