diff options
Diffstat (limited to 'spec/frontend/vue_merge_request_widget/components/widget/app_spec.js')
-rw-r--r-- | spec/frontend/vue_merge_request_widget/components/widget/app_spec.js | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/spec/frontend/vue_merge_request_widget/components/widget/app_spec.js b/spec/frontend/vue_merge_request_widget/components/widget/app_spec.js index bf318cd6b88..205824c3edd 100644 --- a/spec/frontend/vue_merge_request_widget/components/widget/app_spec.js +++ b/spec/frontend/vue_merge_request_widget/components/widget/app_spec.js @@ -1,13 +1,23 @@ import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; +import waitForPromises from 'helpers/wait_for_promises'; import App from '~/vue_merge_request_widget/components/widget/app.vue'; +import MrSecurityWidgetCE from '~/vue_merge_request_widget/extensions/security_reports/mr_widget_security_reports.vue'; +import MrTestReportWidget from '~/vue_merge_request_widget/extensions/test_report/index.vue'; +import MrTerraformWidget from '~/vue_merge_request_widget/extensions/terraform/index.vue'; +import MrCodeQualityWidget from '~/vue_merge_request_widget/extensions/code_quality/index.vue'; describe('MR Widget App', () => { let wrapper; - const createComponent = () => { + const createComponent = ({ mr = {} } = {}) => { wrapper = shallowMountExtended(App, { propsData: { - mr: {}, + mr: { + pipeline: { + path: '/path/to/pipeline', + }, + ...mr, + }, }, }); }; @@ -16,4 +26,35 @@ describe('MR Widget App', () => { createComponent(); expect(wrapper.findByTestId('mr-widget-app').exists()).toBe(true); }); + + describe('MRSecurityWidget', () => { + it('mounts MrSecurityWidgetCE', async () => { + createComponent(); + + await waitForPromises(); + + expect(wrapper.findComponent(MrSecurityWidgetCE).exists()).toBe(true); + }); + }); + + describe.each` + widgetName | widget | endpoint + ${'testReportWidget'} | ${MrTestReportWidget} | ${'testResultsPath'} + ${'terraformPlansWidget'} | ${MrTerraformWidget} | ${'terraformReportsPath'} + ${'codeQualityWidget'} | ${MrCodeQualityWidget} | ${'codequalityReportsPath'} + `('$widgetName', ({ widget, endpoint }) => { + it(`is mounted when ${endpoint} is defined`, async () => { + createComponent({ mr: { [endpoint]: `path/to/${endpoint}` } }); + await waitForPromises(); + + expect(wrapper.findComponent(widget).exists()).toBe(true); + }); + + it(`is not mounted when ${endpoint} is not defined`, async () => { + createComponent(); + await waitForPromises(); + + expect(wrapper.findComponent(widget).exists()).toBe(false); + }); + }); }); |