Commit 167b7641 authored by Stan Hu's avatar Stan Hu

Merge branch '49915-fix-error-500-admin-projects-nil-storage' into 'master'

Resolve "Error 500 viewing admin/projects page: undefined method `storage_size' for nil:NilClass"

Closes #49915

See merge request gitlab-org/gitlab-ce!28355
parents 8214d031 ec076414
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
module StorageHelper module StorageHelper
def storage_counter(size_in_bytes) def storage_counter(size_in_bytes)
return s_('StorageSize|Unknown') unless size_in_bytes
precision = size_in_bytes < 1.megabyte ? 0 : 1 precision = size_in_bytes < 1.megabyte ? 0 : 1
number_to_human_size(size_in_bytes, delimiter: ',', precision: precision, significant: false) number_to_human_size(size_in_bytes, delimiter: ',', precision: precision, significant: false)
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
.stats .stats
%span.badge.badge-pill %span.badge.badge-pill
= storage_counter(project.statistics.storage_size) = storage_counter(project.statistics&.storage_size)
- if project.archived - if project.archived
%span.badge.badge-warning archived %span.badge.badge-warning archived
.title .title
......
...@@ -74,10 +74,10 @@ ...@@ -74,10 +74,10 @@
%li %li
%span.light= _('Storage:') %span.light= _('Storage:')
%strong= storage_counter(@project.statistics.storage_size) %strong= storage_counter(@project.statistics&.storage_size)
( - if @project.statistics
= storage_counters_details(@project.statistics) = surround '(', ')' do
) = storage_counters_details(@project.statistics)
%li %li
%span.light last commit: %span.light last commit:
......
---
title: Fix an error in projects admin when statistics are missing
merge_request: 28355
author:
type: fixed
...@@ -9146,6 +9146,9 @@ msgstr "" ...@@ -9146,6 +9146,9 @@ msgstr ""
msgid "Storage:" msgid "Storage:"
msgstr "" msgstr ""
msgid "StorageSize|Unknown"
msgstr ""
msgid "Subgroups" msgid "Subgroups"
msgstr "" msgstr ""
......
# frozen_string_literal: true
require 'spec_helper'
describe "Admin > Admin sees project statistics" do
let(:current_user) { create(:admin) }
before do
sign_in(current_user)
visit admin_project_path(project)
end
context 'when project has statistics' do
let(:project) { create(:project, :repository) }
it "shows project statistics" do
expect(page).to have_content("Storage: 0 Bytes (0 Bytes repositories, 0 Bytes build artifacts, 0 Bytes LFS)")
end
end
context 'when project has no statistics' do
let(:project) { create(:project, :repository) { |project| project.statistics.destroy } }
it "shows 'Storage: Unknown'" do
expect(page).to have_content("Storage: Unknown")
end
end
end
# frozen_string_literal: true
require 'spec_helper'
describe "Admin > Admin sees projects statistics" do
let(:current_user) { create(:admin) }
before do
create(:project, :repository)
create(:project, :repository) { |project| project.statistics.destroy }
sign_in(current_user)
visit admin_projects_path
end
it "shows project statistics for projects that have them" do
expect(page.all('.stats').map(&:text)).to contain_exactly("0 Bytes", "Unknown")
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