diff options
Diffstat (limited to 'spec/frontend/projects/storage_counter')
4 files changed, 69 insertions, 27 deletions
diff --git a/spec/frontend/projects/storage_counter/components/storage_table_spec.js b/spec/frontend/projects/storage_counter/components/storage_table_spec.js index 14298318fff..c9e56d8f033 100644 --- a/spec/frontend/projects/storage_counter/components/storage_table_spec.js +++ b/spec/frontend/projects/storage_counter/components/storage_table_spec.js @@ -1,4 +1,4 @@ -import { GlTable } from '@gitlab/ui'; +import { GlTableLite } from '@gitlab/ui'; import { mount } from '@vue/test-utils'; import { extendedWrapper } from 'helpers/vue_test_utils_helper'; import StorageTable from '~/projects/storage_counter/components/storage_table.vue'; @@ -22,7 +22,7 @@ describe('StorageTable', () => { ); }; - const findTable = () => wrapper.findComponent(GlTable); + const findTable = () => wrapper.findComponent(GlTableLite); beforeEach(() => { createComponent(); @@ -37,6 +37,7 @@ describe('StorageTable', () => { ({ storageType: { id, name, description } }) => { expect(wrapper.findByTestId(`${id}-name`).text()).toBe(name); expect(wrapper.findByTestId(`${id}-description`).text()).toBe(description); + expect(wrapper.findByTestId(`${id}-icon`).props('name')).toBe(id); expect(wrapper.findByTestId(`${id}-help-link`).attributes('href')).toBe( defaultProvideValues.helpLinks[id.replace(`Size`, `HelpPagePath`)] .replace(`Size`, ``) diff --git a/spec/frontend/projects/storage_counter/components/storage_type_icon_spec.js b/spec/frontend/projects/storage_counter/components/storage_type_icon_spec.js new file mode 100644 index 00000000000..01efd6f14bd --- /dev/null +++ b/spec/frontend/projects/storage_counter/components/storage_type_icon_spec.js @@ -0,0 +1,41 @@ +import { mount } from '@vue/test-utils'; +import { GlIcon } from '@gitlab/ui'; +import StorageTypeIcon from '~/projects/storage_counter/components/storage_type_icon.vue'; + +describe('StorageTypeIcon', () => { + let wrapper; + + const createComponent = (props = {}) => { + wrapper = mount(StorageTypeIcon, { + propsData: { + ...props, + }, + }); + }; + + const findGlIcon = () => wrapper.findComponent(GlIcon); + + describe('rendering icon', () => { + afterEach(() => { + wrapper.destroy(); + }); + + it.each` + expected | provided + ${'doc-image'} | ${'lfsObjectsSize'} + ${'snippet'} | ${'snippetsSize'} + ${'infrastructure-registry'} | ${'repositorySize'} + ${'package'} | ${'packagesSize'} + ${'upload'} | ${'uploadsSize'} + ${'disk'} | ${'wikiSize'} + ${'disk'} | ${'anything-else'} + `( + 'renders icon with name of $expected when name prop is $provided', + ({ expected, provided }) => { + createComponent({ name: provided }); + + expect(findGlIcon().props('name')).toBe(expected); + }, + ); + }); +}); diff --git a/spec/frontend/projects/storage_counter/mock_data.js b/spec/frontend/projects/storage_counter/mock_data.js index b9fa68b3ec7..6b3e23ac386 100644 --- a/spec/frontend/projects/storage_counter/mock_data.js +++ b/spec/frontend/projects/storage_counter/mock_data.js @@ -1,23 +1,6 @@ -export const mockGetProjectStorageCountGraphQLResponse = { - data: { - project: { - id: 'gid://gitlab/Project/20', - statistics: { - buildArtifactsSize: 400000.0, - pipelineArtifactsSize: 25000.0, - lfsObjectsSize: 4800000.0, - packagesSize: 3800000.0, - repositorySize: 3900000.0, - snippetsSize: 1200000.0, - storageSize: 15300000.0, - uploadsSize: 900000.0, - wikiSize: 300000.0, - __typename: 'ProjectStatistics', - }, - __typename: 'Project', - }, - }, -}; +import mockGetProjectStorageCountGraphQLResponse from 'test_fixtures/graphql/projects/storage_counter/project_storage.query.graphql.json'; + +export { mockGetProjectStorageCountGraphQLResponse }; export const mockEmptyResponse = { data: { project: null } }; @@ -37,7 +20,7 @@ export const defaultProvideValues = { export const projectData = { storage: { - totalUsage: '14.6 MiB', + totalUsage: '13.8 MiB', storageTypes: [ { storageType: { @@ -45,7 +28,7 @@ export const projectData = { name: 'Artifacts', description: 'Pipeline artifacts and job artifacts, created with CI/CD.', warningMessage: - 'There is a known issue with Artifact storage where the total could be incorrect for some projects. More details and progress are available in %{warningLinkStart}the epic%{warningLinkEnd}.', + 'Because of a known issue, the artifact total for some projects may be incorrect. For more details, read %{warningLinkStart}the epic%{warningLinkEnd}.', helpPath: '/build-artifacts', }, value: 400000, @@ -53,7 +36,7 @@ export const projectData = { { storageType: { id: 'lfsObjectsSize', - name: 'LFS Storage', + name: 'LFS storage', description: 'Audio samples, videos, datasets, and graphics.', helpPath: '/lsf-objects', }, @@ -72,7 +55,7 @@ export const projectData = { storageType: { id: 'repositorySize', name: 'Repository', - description: 'Git repository, managed by the Gitaly service.', + description: 'Git repository.', helpPath: '/repository', }, value: 3900000, @@ -84,7 +67,7 @@ export const projectData = { description: 'Shared bits of code and text.', helpPath: '/snippets', }, - value: 1200000, + value: 0, }, { storageType: { diff --git a/spec/frontend/projects/storage_counter/utils_spec.js b/spec/frontend/projects/storage_counter/utils_spec.js index 57c755266a0..fb91975a3cf 100644 --- a/spec/frontend/projects/storage_counter/utils_spec.js +++ b/spec/frontend/projects/storage_counter/utils_spec.js @@ -14,4 +14,21 @@ describe('parseGetProjectStorageResults', () => { ), ).toMatchObject(projectData); }); + + it('includes storage type with size of 0 in returned value', () => { + const mockedResponse = mockGetProjectStorageCountGraphQLResponse.data; + // ensuring a specific storage type item has size of 0 + mockedResponse.project.statistics.repositorySize = 0; + + const response = parseGetProjectStorageResults(mockedResponse, defaultProvideValues.helpLinks); + + expect(response.storage.storageTypes).toEqual( + expect.arrayContaining([ + { + storageType: expect.any(Object), + value: 0, + }, + ]), + ); + }); }); |