diff --git a/ee/app/assets/javascripts/usage_quotas/storage/components/container_registry_usage.vue b/app/assets/javascripts/usage_quotas/storage/components/container_registry_usage.vue similarity index 100% rename from ee/app/assets/javascripts/usage_quotas/storage/components/container_registry_usage.vue rename to app/assets/javascripts/usage_quotas/storage/components/container_registry_usage.vue diff --git a/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue b/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue index afb8502434e332fde9123b592ab8ffca0a0a2aa0..efdb1b185d4f77ab2dcbd4345aece5ef42bdf431 100644 --- a/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue +++ b/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue @@ -1,7 +1,8 @@ <script> import { GlAlert } from '@gitlab/ui'; import StorageUsageStatistics from 'ee_else_ce/usage_quotas/storage/components/storage_usage_statistics.vue'; -import DependencyProxyUsage from '~/usage_quotas/storage/components/dependency_proxy_usage.vue'; +import DependencyProxyUsage from './dependency_proxy_usage.vue'; +import ContainerRegistryUsage from './container_registry_usage.vue'; export default { name: 'NamespaceStorageApp', @@ -9,6 +10,7 @@ export default { GlAlert, StorageUsageStatistics, DependencyProxyUsage, + ContainerRegistryUsage, }, inject: ['userNamespace'], props: { @@ -45,6 +47,12 @@ export default { dependencyProxyTotalSize() { return this.namespace.rootStorageStatistics?.dependencyProxySize ?? 0; }, + containerRegistrySize() { + return this.namespace.rootStorageStatistics?.containerRegistrySize ?? 0; + }, + containerRegistrySizeIsEstimated() { + return this.namespace.rootStorageStatistics?.containerRegistrySizeIsEstimated ?? false; + }, }, }; </script> @@ -75,6 +83,11 @@ export default { :dependency-proxy-total-size="dependencyProxyTotalSize" :loading="isNamespaceStorageStatisticsLoading" /> + <container-registry-usage + :container-registry-size="containerRegistrySize" + :container-registry-size-is-estimated="containerRegistrySizeIsEstimated" + :loading="isNamespaceStorageStatisticsLoading" + /> <slot name="ee-storage-app"></slot> </div> diff --git a/ee/app/assets/javascripts/usage_quotas/storage/components/storage_type_warning.vue b/app/assets/javascripts/usage_quotas/storage/components/storage_type_warning.vue similarity index 100% rename from ee/app/assets/javascripts/usage_quotas/storage/components/storage_type_warning.vue rename to app/assets/javascripts/usage_quotas/storage/components/storage_type_warning.vue diff --git a/ee/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue b/ee/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue index ec9e1503335f321f8a0c86b35f9c9f20f878cd6b..323900678d5c41fe605ce0e0f671af6dea9195b3 100644 --- a/ee/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue +++ b/ee/app/assets/javascripts/usage_quotas/storage/components/namespace_storage_app.vue @@ -9,7 +9,6 @@ import ProjectListStorageQuery from '../queries/project_list_storage.query.graph import { parseGetStorageResults } from '../utils'; import SearchAndSortBar from '../../components/search_and_sort_bar/search_and_sort_bar.vue'; import ProjectList from './project_list.vue'; -import ContainerRegistryUsage from './container_registry_usage.vue'; export default { name: 'NamespaceStorageApp', @@ -17,7 +16,6 @@ export default { GlKeysetPagination, CeNamespaceStorageApp, ProjectList, - ContainerRegistryUsage, SearchAndSortBar, }, inject: [ @@ -76,12 +74,6 @@ export default { }; }, computed: { - containerRegistrySize() { - return this.namespace.rootStorageStatistics?.containerRegistrySize ?? 0; - }, - containerRegistrySizeIsEstimated() { - return this.namespace.rootStorageStatistics?.containerRegistrySizeIsEstimated ?? false; - }, projectList() { return this.projects?.nodes ?? []; }, @@ -145,12 +137,6 @@ export default { :namespace="namespace" > <template #ee-storage-app> - <container-registry-usage - :container-registry-size="containerRegistrySize" - :container-registry-size-is-estimated="containerRegistrySizeIsEstimated" - :loading="$apollo.queries.namespace.loading" - /> - <section class="gl-mt-5"> <div class="gl-bg-gray-10 gl-p-5 gl-display-flex"> <search-and-sort-bar diff --git a/ee/app/assets/javascripts/usage_quotas/storage/components/project_list.vue b/ee/app/assets/javascripts/usage_quotas/storage/components/project_list.vue index c6f9b1fff0339eeb3e493246f661ae74d82a6c42..617b3a26acdba3df3129726ec3c70c0e4480c623 100644 --- a/ee/app/assets/javascripts/usage_quotas/storage/components/project_list.vue +++ b/ee/app/assets/javascripts/usage_quotas/storage/components/project_list.vue @@ -5,8 +5,8 @@ import ProjectAvatar from '~/vue_shared/components/project_avatar.vue'; import { containerRegistryPopover } from '~/usage_quotas/storage/constants'; import NumberToHumanSize from '~/vue_shared/components/number_to_human_size/number_to_human_size.vue'; import HelpPageLink from '~/vue_shared/components/help_page_link/help_page_link.vue'; -import StorageTypeHelpLink from './storage_type_help_link.vue'; -import StorageTypeWarning from './storage_type_warning.vue'; +import StorageTypeHelpLink from 'ee/usage_quotas/storage/components/storage_type_help_link.vue'; +import StorageTypeWarning from '~/usage_quotas/storage/components/storage_type_warning.vue'; export default { name: 'ProjectList', diff --git a/ee/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js b/ee/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js index 41703c4162ef81895e8b6314e1bf861018ded1ef..f87836c2f078d5748d6aaf1105fee5712a068acd 100644 --- a/ee/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js +++ b/ee/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js @@ -12,7 +12,6 @@ import getProjectListStorageQuery from 'ee/usage_quotas/storage/queries/project_ import createMockApollo from 'helpers/mock_apollo_helper'; import SearchAndSortBar from 'ee/usage_quotas/components/search_and_sort_bar/search_and_sort_bar.vue'; import StorageUsageStatistics from 'ee/usage_quotas/storage/components/storage_usage_statistics.vue'; -import ContainerRegistryUsage from 'ee/usage_quotas/storage/components/container_registry_usage.vue'; import { mockGetNamespaceStorageGraphQLResponse, defaultNamespaceProvideValues, @@ -35,7 +34,6 @@ describe('NamespaceStorageApp', () => { const findProjectList = () => wrapper.findComponent(ProjectList); const findPrevButton = () => wrapper.findByTestId('prevButton'); const findNextButton = () => wrapper.findByTestId('nextButton'); - const findContainerRegistry = () => wrapper.findComponent(ContainerRegistryUsage); const findAlert = () => wrapper.findComponent(GlAlert); const createComponent = ({ provide = {} } = {}) => { @@ -73,29 +71,6 @@ describe('NamespaceStorageApp', () => { }); }); - describe('Container registry usage', () => { - beforeEach(async () => { - createComponent(); - await waitForPromises(); - }); - - it('will be rendered', () => { - expect(findContainerRegistry().exists()).toBe(true); - }); - - it('will receive relevant props', () => { - const { - containerRegistrySize, - containerRegistrySizeIsEstimated, - } = mockGetNamespaceStorageGraphQLResponse.data.namespace.rootStorageStatistics; - expect(findContainerRegistry().props()).toEqual({ - containerRegistrySize, - containerRegistrySizeIsEstimated, - loading: false, - }); - }); - }); - describe('project list', () => { beforeEach(async () => { createComponent(); diff --git a/ee/spec/frontend/usage_quotas/storage/components/project_list_spec.js b/ee/spec/frontend/usage_quotas/storage/components/project_list_spec.js index cf30a37b2ddea9f4df28080e5fcf5c5a87007693..12e7d26de67a3a64e8fea2db7ec614c64c01ebef 100644 --- a/ee/spec/frontend/usage_quotas/storage/components/project_list_spec.js +++ b/ee/spec/frontend/usage_quotas/storage/components/project_list_spec.js @@ -4,7 +4,7 @@ import { mountExtended } from 'helpers/vue_test_utils_helper'; import ProjectList from 'ee/usage_quotas/storage/components/project_list.vue'; import { numberToHumanSize } from '~/lib/utils/number_utils'; import StorageTypeHelpLink from 'ee/usage_quotas/storage/components/storage_type_help_link.vue'; -import StorageTypeWarning from 'ee/usage_quotas/storage/components/storage_type_warning.vue'; +import StorageTypeWarning from '~/usage_quotas/storage/components/storage_type_warning.vue'; import { storageTypeHelpPaths } from '~/usage_quotas/storage/constants'; import { stubComponent } from 'helpers/stub_component'; import { projectList, defaultNamespaceProvideValues } from '../mock_data'; diff --git a/ee/spec/frontend/usage_quotas/storage/components/container_registry_usage_spec.js b/spec/frontend/usage_quotas/storage/components/container_registry_usage_spec.js similarity index 86% rename from ee/spec/frontend/usage_quotas/storage/components/container_registry_usage_spec.js rename to spec/frontend/usage_quotas/storage/components/container_registry_usage_spec.js index 0b4f0c89252eabd4f49e248a48ef2da9d1bfc039..f1d6adbc65c262f38c151096ab891190832d8cf8 100644 --- a/ee/spec/frontend/usage_quotas/storage/components/container_registry_usage_spec.js +++ b/spec/frontend/usage_quotas/storage/components/container_registry_usage_spec.js @@ -1,6 +1,6 @@ import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; -import ContainerRegistryUsage from 'ee/usage_quotas/storage/components/container_registry_usage.vue'; -import StorageTypeWarning from 'ee/usage_quotas/storage/components/storage_type_warning.vue'; +import ContainerRegistryUsage from '~/usage_quotas/storage/components/container_registry_usage.vue'; +import StorageTypeWarning from '~/usage_quotas/storage/components/storage_type_warning.vue'; describe('Container registry usage component', () => { let wrapper; diff --git a/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js b/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js index 27fbfbe6c2ca666660eafabe9fa8eeef65355706..544666ddc5ded8d35d6a72e5d2bec26d8575c437 100644 --- a/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js +++ b/spec/frontend/usage_quotas/storage/components/namespace_storage_app_spec.js @@ -3,6 +3,7 @@ import waitForPromises from 'helpers/wait_for_promises'; import NamespaceStorageApp from '~/usage_quotas/storage/components/namespace_storage_app.vue'; import StorageUsageStatistics from '~/usage_quotas/storage/components/storage_usage_statistics.vue'; import DependencyProxyUsage from '~/usage_quotas/storage/components/dependency_proxy_usage.vue'; +import ContainerRegistryUsage from '~/usage_quotas/storage/components/container_registry_usage.vue'; import { defaultNamespaceProvideValues } from '../mock_data'; const defaultProps = { @@ -13,6 +14,8 @@ const defaultProps = { namespace: { rootStorageStatistics: { storageSize: 1234, + containerRegistrySize: 111, + containerRegistrySizeIsEstimated: false, }, }, }; @@ -23,6 +26,7 @@ describe('NamespaceStorageApp', () => { const findStorageUsageStatistics = () => wrapper.findComponent(StorageUsageStatistics); const findDependencyProxy = () => wrapper.findComponent(DependencyProxyUsage); + const findContainerRegistry = () => wrapper.findComponent(ContainerRegistryUsage); const findBreakdownSubtitle = () => wrapper.findByTestId('breakdown-subtitle'); const createComponent = ({ provide = {}, props = {} } = {}) => { @@ -75,5 +79,29 @@ describe('NamespaceStorageApp', () => { expect(findDependencyProxy().exists()).toBe(false); }); }); + + describe('ContainerRegistryUsage', () => { + beforeEach(async () => { + createComponent(); + await waitForPromises(); + }); + + it('will be rendered', () => { + expect(findContainerRegistry().exists()).toBe(true); + }); + + it('will receive relevant props', () => { + const { + containerRegistrySize, + containerRegistrySizeIsEstimated, + } = defaultProps.namespace.rootStorageStatistics; + + expect(findContainerRegistry().props()).toEqual({ + containerRegistrySize, + containerRegistrySizeIsEstimated, + loading: false, + }); + }); + }); }); }); diff --git a/ee/spec/frontend/usage_quotas/storage/components/storage_type_warning_spec.js b/spec/frontend/usage_quotas/storage/components/storage_type_warning_spec.js similarity index 88% rename from ee/spec/frontend/usage_quotas/storage/components/storage_type_warning_spec.js rename to spec/frontend/usage_quotas/storage/components/storage_type_warning_spec.js index b2bf15695f26f42dc632edb1547d062cca2616ea..c77a9ddbb95873bdcf86f2685ec47e2c9546413a 100644 --- a/ee/spec/frontend/usage_quotas/storage/components/storage_type_warning_spec.js +++ b/spec/frontend/usage_quotas/storage/components/storage_type_warning_spec.js @@ -1,7 +1,7 @@ import { nextTick } from 'vue'; import { GlPopover } from '@gitlab/ui'; import { shallowMount } from '@vue/test-utils'; -import StorageTypeWarning from 'ee/usage_quotas/storage/components/storage_type_warning.vue'; +import StorageTypeWarning from '~/usage_quotas/storage/components/storage_type_warning.vue'; let wrapper;