Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-12-02 15:10:10 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-12-02 15:10:10 +0300
commit02e597943fcd131d51b63bfa20a17cf8438adde2 (patch)
tree36a196220a0866855051802f370500f34d68d9e1 /spec/frontend
parent78bc39880c4b06b2fbe682e0201722a11237a425 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend')
-rw-r--r--spec/frontend/boards/stores/actions_spec.js2
-rw-r--r--spec/frontend/fixtures/projects.rb26
-rw-r--r--spec/frontend/projects/storage_counter/components/app_spec.js150
-rw-r--r--spec/frontend/projects/storage_counter/components/storage_table_spec.js63
-rw-r--r--spec/frontend/projects/storage_counter/components/storage_type_icon_spec.js41
-rw-r--r--spec/frontend/projects/storage_counter/mock_data.js92
-rw-r--r--spec/frontend/projects/storage_counter/utils_spec.js34
7 files changed, 1 insertions, 407 deletions
diff --git a/spec/frontend/boards/stores/actions_spec.js b/spec/frontend/boards/stores/actions_spec.js
index f580469b072..08b4744ed6e 100644
--- a/spec/frontend/boards/stores/actions_spec.js
+++ b/spec/frontend/boards/stores/actions_spec.js
@@ -20,7 +20,7 @@ import {
formatIssue,
getMoveData,
updateListPosition,
-} from '~/boards/boards_util';
+} from 'ee_else_ce/boards/boards_util';
import { gqlClient } from '~/boards/graphql';
import destroyBoardListMutation from '~/boards/graphql/board_list_destroy.mutation.graphql';
import issueCreateMutation from '~/boards/graphql/issue_create.mutation.graphql';
diff --git a/spec/frontend/fixtures/projects.rb b/spec/frontend/fixtures/projects.rb
index 23c18c97df2..3c8964d398a 100644
--- a/spec/frontend/fixtures/projects.rb
+++ b/spec/frontend/fixtures/projects.rb
@@ -65,31 +65,5 @@ RSpec.describe 'Projects (JavaScript fixtures)', type: :controller do
expect_graphql_errors_to_be_empty
end
end
-
- context 'project storage count query' do
- before do
- project.statistics.update!(
- repository_size: 3900000,
- lfs_objects_size: 4800000,
- build_artifacts_size: 400000,
- pipeline_artifacts_size: 400000,
- wiki_size: 300000,
- packages_size: 3800000,
- uploads_size: 900000
- )
- end
-
- base_input_path = 'projects/storage_counter/queries/'
- base_output_path = 'graphql/projects/storage_counter/'
- query_name = 'project_storage.query.graphql'
-
- it "#{base_output_path}#{query_name}.json" do
- query = get_graphql_query_as_string("#{base_input_path}#{query_name}")
-
- post_graphql(query, current_user: user, variables: { fullPath: project.full_path })
-
- expect_graphql_errors_to_be_empty
- end
- end
end
end
diff --git a/spec/frontend/projects/storage_counter/components/app_spec.js b/spec/frontend/projects/storage_counter/components/app_spec.js
deleted file mode 100644
index f3da01e0602..00000000000
--- a/spec/frontend/projects/storage_counter/components/app_spec.js
+++ /dev/null
@@ -1,150 +0,0 @@
-import { GlAlert, GlLoadingIcon } from '@gitlab/ui';
-import { shallowMount, createLocalVue } from '@vue/test-utils';
-import VueApollo from 'vue-apollo';
-import createMockApollo from 'helpers/mock_apollo_helper';
-import { extendedWrapper } from 'helpers/vue_test_utils_helper';
-import waitForPromises from 'helpers/wait_for_promises';
-import StorageCounterApp from '~/projects/storage_counter/components/app.vue';
-import { TOTAL_USAGE_DEFAULT_TEXT } from '~/projects/storage_counter/constants';
-import getProjectStorageCount from '~/projects/storage_counter/queries/project_storage.query.graphql';
-import UsageGraph from '~/vue_shared/components/storage_counter/usage_graph.vue';
-import {
- mockGetProjectStorageCountGraphQLResponse,
- mockEmptyResponse,
- projectData,
- defaultProvideValues,
-} from '../mock_data';
-
-const localVue = createLocalVue();
-localVue.use(VueApollo);
-
-describe('Storage counter app', () => {
- let wrapper;
-
- const createMockApolloProvider = ({ reject = false, mockedValue } = {}) => {
- let response;
-
- if (reject) {
- response = jest.fn().mockRejectedValue(mockedValue || new Error('GraphQL error'));
- } else {
- response = jest.fn().mockResolvedValue(mockedValue);
- }
-
- const requestHandlers = [[getProjectStorageCount, response]];
-
- return createMockApollo(requestHandlers);
- };
-
- const createComponent = ({ provide = {}, mockApollo } = {}) => {
- wrapper = extendedWrapper(
- shallowMount(StorageCounterApp, {
- localVue,
- apolloProvider: mockApollo,
- provide: {
- ...defaultProvideValues,
- ...provide,
- },
- }),
- );
- };
-
- const findAlert = () => wrapper.findComponent(GlAlert);
- const findLoadingIcon = () => wrapper.findComponent(GlLoadingIcon);
- const findUsagePercentage = () => wrapper.findByTestId('total-usage');
- const findUsageQuotasHelpLink = () => wrapper.findByTestId('usage-quotas-help-link');
- const findUsageGraph = () => wrapper.findComponent(UsageGraph);
-
- afterEach(() => {
- wrapper.destroy();
- });
-
- describe('with apollo fetching successful', () => {
- let mockApollo;
-
- beforeEach(async () => {
- mockApollo = createMockApolloProvider({
- mockedValue: mockGetProjectStorageCountGraphQLResponse,
- });
- createComponent({ mockApollo });
- await waitForPromises();
- });
-
- it('renders correct total usage', () => {
- expect(findUsagePercentage().text()).toBe(projectData.storage.totalUsage);
- });
-
- it('renders correct usage quotas help link', () => {
- expect(findUsageQuotasHelpLink().attributes('href')).toBe(
- defaultProvideValues.helpLinks.usageQuotasHelpPagePath,
- );
- });
- });
-
- describe('with apollo loading', () => {
- let mockApollo;
-
- beforeEach(() => {
- mockApollo = createMockApolloProvider({
- mockedValue: new Promise(() => {}),
- });
- createComponent({ mockApollo });
- });
-
- it('should show loading icon', () => {
- expect(findLoadingIcon().exists()).toBe(true);
- });
- });
-
- describe('with apollo returning empty data', () => {
- let mockApollo;
-
- beforeEach(async () => {
- mockApollo = createMockApolloProvider({
- mockedValue: mockEmptyResponse,
- });
- createComponent({ mockApollo });
- await waitForPromises();
- });
-
- it('shows default text for total usage', () => {
- expect(findUsagePercentage().text()).toBe(TOTAL_USAGE_DEFAULT_TEXT);
- });
- });
-
- describe('with apollo fetching error', () => {
- let mockApollo;
-
- beforeEach(() => {
- mockApollo = createMockApolloProvider();
- createComponent({ mockApollo, reject: true });
- });
-
- it('renders gl-alert', () => {
- expect(findAlert().exists()).toBe(true);
- });
- });
-
- describe('rendering <usage-graph />', () => {
- let mockApollo;
-
- beforeEach(async () => {
- mockApollo = createMockApolloProvider({
- mockedValue: mockGetProjectStorageCountGraphQLResponse,
- });
- createComponent({ mockApollo });
- await waitForPromises();
- });
-
- it('renders usage-graph component if project.statistics exists', () => {
- expect(findUsageGraph().exists()).toBe(true);
- });
-
- it('passes project.statistics to usage-graph component', () => {
- const {
- __typename,
- ...statistics
- } = mockGetProjectStorageCountGraphQLResponse.data.project.statistics;
- expect(findUsageGraph().props('rootStorageStatistics')).toMatchObject(statistics);
- });
- });
-});
diff --git a/spec/frontend/projects/storage_counter/components/storage_table_spec.js b/spec/frontend/projects/storage_counter/components/storage_table_spec.js
deleted file mode 100644
index c9e56d8f033..00000000000
--- a/spec/frontend/projects/storage_counter/components/storage_table_spec.js
+++ /dev/null
@@ -1,63 +0,0 @@
-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';
-import { projectData, defaultProvideValues } from '../mock_data';
-
-describe('StorageTable', () => {
- let wrapper;
-
- const defaultProps = {
- storageTypes: projectData.storage.storageTypes,
- };
-
- const createComponent = (props = {}) => {
- wrapper = extendedWrapper(
- mount(StorageTable, {
- propsData: {
- ...defaultProps,
- ...props,
- },
- }),
- );
- };
-
- const findTable = () => wrapper.findComponent(GlTableLite);
-
- beforeEach(() => {
- createComponent();
- });
- afterEach(() => {
- wrapper.destroy();
- });
-
- describe('with storage types', () => {
- it.each(projectData.storage.storageTypes)(
- 'renders table row correctly %o',
- ({ 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`, ``)
- .replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`),
- );
- },
- );
- });
-
- describe('without storage types', () => {
- beforeEach(() => {
- createComponent({ storageTypes: [] });
- });
-
- it('should render the table header <th>', () => {
- expect(findTable().find('th').exists()).toBe(true);
- });
-
- it('should not render any table data <td>', () => {
- expect(findTable().find('td').exists()).toBe(false);
- });
- });
-});
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
deleted file mode 100644
index 01efd6f14bd..00000000000
--- a/spec/frontend/projects/storage_counter/components/storage_type_icon_spec.js
+++ /dev/null
@@ -1,41 +0,0 @@
-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
deleted file mode 100644
index 6b3e23ac386..00000000000
--- a/spec/frontend/projects/storage_counter/mock_data.js
+++ /dev/null
@@ -1,92 +0,0 @@
-import mockGetProjectStorageCountGraphQLResponse from 'test_fixtures/graphql/projects/storage_counter/project_storage.query.graphql.json';
-
-export { mockGetProjectStorageCountGraphQLResponse };
-
-export const mockEmptyResponse = { data: { project: null } };
-
-export const defaultProvideValues = {
- projectPath: '/project-path',
- helpLinks: {
- usageQuotasHelpPagePath: '/usage-quotas',
- buildArtifactsHelpPagePath: '/build-artifacts',
- lfsObjectsHelpPagePath: '/lsf-objects',
- packagesHelpPagePath: '/packages',
- repositoryHelpPagePath: '/repository',
- snippetsHelpPagePath: '/snippets',
- uploadsHelpPagePath: '/uploads',
- wikiHelpPagePath: '/wiki',
- },
-};
-
-export const projectData = {
- storage: {
- totalUsage: '13.8 MiB',
- storageTypes: [
- {
- storageType: {
- id: 'buildArtifactsSize',
- name: 'Artifacts',
- description: 'Pipeline artifacts and job artifacts, created with CI/CD.',
- warningMessage:
- '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,
- },
- {
- storageType: {
- id: 'lfsObjectsSize',
- name: 'LFS storage',
- description: 'Audio samples, videos, datasets, and graphics.',
- helpPath: '/lsf-objects',
- },
- value: 4800000,
- },
- {
- storageType: {
- id: 'packagesSize',
- name: 'Packages',
- description: 'Code packages and container images.',
- helpPath: '/packages',
- },
- value: 3800000,
- },
- {
- storageType: {
- id: 'repositorySize',
- name: 'Repository',
- description: 'Git repository.',
- helpPath: '/repository',
- },
- value: 3900000,
- },
- {
- storageType: {
- id: 'snippetsSize',
- name: 'Snippets',
- description: 'Shared bits of code and text.',
- helpPath: '/snippets',
- },
- value: 0,
- },
- {
- storageType: {
- id: 'uploadsSize',
- name: 'Uploads',
- description: 'File attachments and smaller design graphics.',
- helpPath: '/uploads',
- },
- value: 900000,
- },
- {
- storageType: {
- id: 'wikiSize',
- name: 'Wiki',
- description: 'Wiki content.',
- helpPath: '/wiki',
- },
- value: 300000,
- },
- ],
- },
-};
diff --git a/spec/frontend/projects/storage_counter/utils_spec.js b/spec/frontend/projects/storage_counter/utils_spec.js
deleted file mode 100644
index fb91975a3cf..00000000000
--- a/spec/frontend/projects/storage_counter/utils_spec.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import { parseGetProjectStorageResults } from '~/projects/storage_counter/utils';
-import {
- mockGetProjectStorageCountGraphQLResponse,
- projectData,
- defaultProvideValues,
-} from './mock_data';
-
-describe('parseGetProjectStorageResults', () => {
- it('parses project statistics correctly', () => {
- expect(
- parseGetProjectStorageResults(
- mockGetProjectStorageCountGraphQLResponse.data,
- defaultProvideValues.helpLinks,
- ),
- ).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,
- },
- ]),
- );
- });
-});