Commit 4a91d958 authored by Robert May's avatar Robert May

Check commit limit is used

parent bb179a08
......@@ -6,6 +6,8 @@ class Projects::CommitsController < Projects::ApplicationController
include ExtractsPath
include RendersCommits
COMMITS_DEFAULT_LIMIT = 40
prepend_before_action(only: [:show]) { authenticate_sessionless_user!(:rss) }
around_action :allow_gitaly_ref_name_caching
before_action :require_non_empty_project
......@@ -65,7 +67,7 @@ class Projects::CommitsController < Projects::ApplicationController
render_404 unless @path.empty? || request.format == :atom || @repository.blob_at(@commit.id, @path) || @repository.tree(@commit.id, @path).entries.present?
limit = params[:limit].to_i
@limit = limit > 0 ? limit : 40 # limit can only ever be a positive number
@limit = limit > 0 ? limit : COMMITS_DEFAULT_LIMIT # limit can only ever be a positive number
@offset = (params[:offset] || 0).to_i
search = params[:search]
author = params[:author]
......
......@@ -68,7 +68,16 @@ RSpec.describe Projects::CommitsController do
end
context "with an invalid limit" do
before do
let(:id) { "master/README.md" }
it "uses the default limit" do
expect_any_instance_of(Repository).to receive(:commits).with(
"master",
path: "README.md",
limit: described_class::COMMITS_DEFAULT_LIMIT,
offset: 0
).and_call_original
get(:show,
params: {
namespace_id: project.namespace,
......@@ -76,11 +85,9 @@ RSpec.describe Projects::CommitsController do
id: id,
limit: "foo"
})
end
let(:id) { 'master/README.md' }
it { is_expected.to respond_with(:success) }
expect(response).to be_successful
end
end
context "when the ref name ends in .atom" do
......
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