提交 167b7641 编写于 作者: S 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
......@@ -2,6 +2,8 @@
module StorageHelper
def storage_counter(size_in_bytes)
return s_('StorageSize|Unknown') unless size_in_bytes
precision = size_in_bytes < 1.megabyte ? 0 : 1
number_to_human_size(size_in_bytes, delimiter: ',', precision: precision, significant: false)
......
......@@ -13,7 +13,7 @@
.stats
%span.badge.badge-pill
= storage_counter(project.statistics.storage_size)
= storage_counter(project.statistics&.storage_size)
- if project.archived
%span.badge.badge-warning archived
.title
......
......@@ -74,10 +74,10 @@
%li
%span.light= _('Storage:')
%strong= storage_counter(@project.statistics.storage_size)
(
= storage_counters_details(@project.statistics)
)
%strong= storage_counter(@project.statistics&.storage_size)
- if @project.statistics
= surround '(', ')' do
= storage_counters_details(@project.statistics)
%li
%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 ""
msgid "Storage:"
msgstr ""
msgid "StorageSize|Unknown"
msgstr ""
msgid "Subgroups"
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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册