diff options
Diffstat (limited to 'spec/frontend/vue_shared/components/security_reports/artifact_downloads/merge_request_artifact_download_spec.js')
-rw-r--r-- | spec/frontend/vue_shared/components/security_reports/artifact_downloads/merge_request_artifact_download_spec.js | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/spec/frontend/vue_shared/components/security_reports/artifact_downloads/merge_request_artifact_download_spec.js b/spec/frontend/vue_shared/components/security_reports/artifact_downloads/merge_request_artifact_download_spec.js deleted file mode 100644 index 6eebd129beb..00000000000 --- a/spec/frontend/vue_shared/components/security_reports/artifact_downloads/merge_request_artifact_download_spec.js +++ /dev/null @@ -1,104 +0,0 @@ -import { shallowMount } from '@vue/test-utils'; -import Vue from 'vue'; -import VueApollo from 'vue-apollo'; -import createMockApollo from 'helpers/mock_apollo_helper'; -import { - expectedDownloadDropdownPropsWithTitle, - securityReportMergeRequestDownloadPathsQueryResponse, -} from 'jest/vue_shared/security_reports/mock_data'; -import { createAlert } from '~/alert'; -import Component from '~/vue_shared/security_reports/components/artifact_downloads/merge_request_artifact_download.vue'; -import SecurityReportDownloadDropdown from '~/vue_shared/security_reports/components/security_report_download_dropdown.vue'; -import { - REPORT_TYPE_SAST, - REPORT_TYPE_SECRET_DETECTION, -} from '~/vue_shared/security_reports/constants'; -import securityReportMergeRequestDownloadPathsQuery from '~/vue_shared/security_reports/graphql/queries/security_report_merge_request_download_paths.query.graphql'; - -jest.mock('~/alert'); - -describe('Merge request artifact Download', () => { - let wrapper; - - const defaultProps = { - reportTypes: [REPORT_TYPE_SAST, REPORT_TYPE_SECRET_DETECTION], - targetProjectFullPath: '/path', - mrIid: 123, - }; - - const createWrapper = ({ propsData, options }) => { - wrapper = shallowMount(Component, { - stubs: { - SecurityReportDownloadDropdown, - }, - propsData: { - ...defaultProps, - ...propsData, - }, - ...options, - }); - }; - - const pendingHandler = () => new Promise(() => {}); - const successHandler = () => - Promise.resolve({ data: securityReportMergeRequestDownloadPathsQueryResponse }); - const failureHandler = () => Promise.resolve({ errors: [{ message: 'some error' }] }); - const createMockApolloProvider = (handler) => { - Vue.use(VueApollo); - const requestHandlers = [[securityReportMergeRequestDownloadPathsQuery, handler]]; - - return createMockApollo(requestHandlers); - }; - - const findDownloadDropdown = () => wrapper.findComponent(SecurityReportDownloadDropdown); - - describe('given the query is loading', () => { - beforeEach(() => { - createWrapper({ - options: { - apolloProvider: createMockApolloProvider(pendingHandler), - }, - }); - }); - - it('loading is true', () => { - expect(findDownloadDropdown().props('loading')).toBe(true); - }); - }); - - describe('given the query loads successfully', () => { - beforeEach(() => { - createWrapper({ - options: { - apolloProvider: createMockApolloProvider(successHandler), - }, - }); - }); - - it('renders the download dropdown', () => { - expect(findDownloadDropdown().props()).toEqual(expectedDownloadDropdownPropsWithTitle); - }); - }); - - describe('given the query fails', () => { - beforeEach(() => { - createWrapper({ - options: { - apolloProvider: createMockApolloProvider(failureHandler), - }, - }); - }); - - it('calls createAlert correctly', () => { - expect(createAlert).toHaveBeenCalledWith({ - message: Component.i18n.apiError, - captureError: true, - error: expect.any(Error), - }); - }); - - it('renders nothing', () => { - expect(findDownloadDropdown().props('artifacts')).toEqual([]); - }); - }); -}); |