Commit 0bb9b964 authored by Patricio Cano's avatar Patricio Cano

Refactored tests, better view restrictions, and moved the message generator to a helper.

parent 954b68ed
...@@ -220,6 +220,10 @@ module ProjectsHelper ...@@ -220,6 +220,10 @@ module ProjectsHelper
"The total size of this project's repository #{show_lfs} will be limited to this size. 0 for unlimited. Leave empty to inherit the group/global value." "The total size of this project's repository #{show_lfs} will be limited to this size. 0 for unlimited. Leave empty to inherit the group/global value."
end end
def project_above_size_limit_message
Gitlab::RepositorySizeError.new(@project).above_size_limit_message
end
def git_user_name def git_user_name
if current_user if current_user
current_user.name current_user.name
......
.alert.alert-warning.hidden-xs .alert.alert-warning.hidden-xs
= Gitlab::RepositorySizeError.new(@project).over_size_limit_message = project_above_size_limit_message
...@@ -8,9 +8,8 @@ ...@@ -8,9 +8,8 @@
- if current_user && can?(current_user, :download_code, @project) - if current_user && can?(current_user, :download_code, @project)
= render 'shared/no_ssh' = render 'shared/no_ssh'
= render 'shared/no_password' = render 'shared/no_password'
- if @project.above_size_limit? - if @project.above_size_limit?
= render 'over_size_limit_warning' = render 'above_size_limit_warning'
= render 'projects/last_push' = render 'projects/last_push'
= render "home_panel" = render "home_panel"
......
module Gitlab module Gitlab
class RepositorySizeError < StandardError class RepositorySizeError
include ActionView::Helpers include ActionView::Helpers
attr_reader :project attr_reader :project
...@@ -32,7 +32,7 @@ module Gitlab ...@@ -32,7 +32,7 @@ module Gitlab
'Please contact your GitLab administrator for more information.' 'Please contact your GitLab administrator for more information.'
end end
def over_size_limit_message def above_size_limit_message
"#{to_s} You won't be able to push new code to this project. #{more_info_message}" "#{to_s} You won't be able to push new code to this project. #{more_info_message}"
end end
......
...@@ -92,15 +92,22 @@ describe ProjectsController do ...@@ -92,15 +92,22 @@ describe ProjectsController do
context 'project repo over limit' do context 'project repo over limit' do
before do before do
sign_in(user)
allow_any_instance_of(Project).to receive(:above_size_limit?).and_return(true) allow_any_instance_of(Project).to receive(:above_size_limit?).and_return(true)
project.team << [user, :master] project.team << [user, :master]
end end
it 'shows the over size limit warning message' do it 'shows the over size limit warning message for project members' do
allow(controller).to receive(:current_user).and_return(user)
get :show, namespace_id: project.namespace.path, id: project.path
expect(response).to render_template('_above_size_limit_warning')
end
it 'does not show the message for non members' do
get :show, namespace_id: project.namespace.path, id: project.path get :show, namespace_id: project.namespace.path, id: project.path
expect(response).to render_template('_over_size_limit_warning') expect(response).not_to render_template('_above_size_limit_warning')
end end
end 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