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:
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.js45
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);
+ });
+ });
});