diff --git a/ee/app/assets/javascripts/approvals/components/rule_form.vue b/ee/app/assets/javascripts/approvals/components/rule_form.vue index 28893f4905abd5390ad6887cb1a0b5cd2000d0c6..9bfd9b2b31c29fc92b11886ea93d1e3fc7c35bbb 100644 --- a/ee/app/assets/javascripts/approvals/components/rule_form.vue +++ b/ee/app/assets/javascripts/approvals/components/rule_form.vue @@ -75,7 +75,7 @@ export default { severityLevels: [], vulnerabilityStates: [], approvalVulnerabilityStatesKeys: Object.keys(APPROVAL_VULNERABILITY_STATES), - reportTypesKeys: Object.keys(REPORT_TYPES), + reportTypesKeys: Object.keys(this.$options.REPORT_TYPES), severityLevelsKeys: Object.keys(SEVERITY_LEVELS), ...this.getInitialData(), }; @@ -513,6 +513,7 @@ export default { key="all" is-check-item :is-checked="areAllScannersSelected" + data-testid="all-scanners-selected" @click.native.capture.stop="setAllSelectedScanners" > <gl-truncate :text="$options.APPROVAL_DIALOG_I18N.form.selectAllLabel" /> diff --git a/ee/spec/frontend/approvals/components/rule_form_spec.js b/ee/spec/frontend/approvals/components/rule_form_spec.js index 85bfba8d007412694f9e8614359003f8258f8cf6..df8d2dbdf1a3a7773aea9a3dad3b93caebe79781 100644 --- a/ee/spec/frontend/approvals/components/rule_form_spec.js +++ b/ee/spec/frontend/approvals/components/rule_form_spec.js @@ -643,6 +643,26 @@ describe('EE Approvals RuleForm', () => { }); }); + describe('and with all scanners selected', () => { + const findAllScannersSelected = () => wrapper.findByTestId('all-scanners-selected'); + beforeEach(() => { + createComponent({ + initRule: TEST_RULE_VULNERABILITY_CHECK, + }); + findAllScannersSelected().trigger('click'); + findForm().trigger('submit'); + }); + + it(`dispatches the action on submit without including ${EXCLUDED_REPORT_TYPE}`, () => { + const reportTypesKeys = Object.keys(REPORT_TYPES); + const expectedScanners = reportTypesKeys.filter((item) => item !== EXCLUDED_REPORT_TYPE); + expect(actions.postRule).toHaveBeenCalledWith( + expect.anything(), + expect.objectContaining({ scanners: expectedScanners }), + ); + }); + }); + describe('with invalid number of vulnerabilities', () => { beforeEach(() => { createComponent({