diff --git a/app/assets/javascripts/security_configuration/components/continuous_vulnerability_scan.vue b/app/assets/javascripts/security_configuration/components/continuous_vulnerability_scan.vue index 61cbde2107c0a90a2e9d4e8b52764088d82a3447..df648f665c7923ea4cb63da2e78c677c515b4ba1 100644 --- a/app/assets/javascripts/security_configuration/components/continuous_vulnerability_scan.vue +++ b/app/assets/javascripts/security_configuration/components/continuous_vulnerability_scan.vue @@ -41,6 +41,12 @@ export default { shouldShowAlert() { return this.errorMessage && !this.isAlertDismissed; }, + hasCvsSection() { + return ( + this.glFeatures.dependencyScanningOnAdvisoryIngestion && + !this.glFeatures.globalDependencyScanningOnAdvisoryIngestion + ); + }, }, methods: { reportError(error) { @@ -80,7 +86,7 @@ export default { </script> <template> - <div v-if="glFeatures.dependencyScanningOnAdvisoryIngestion"> + <div v-if="hasCvsSection"> <h4 class="gl-font-base gl-m-0 gl-mt-6"> {{ $options.i18n.title }} <gl-badge diff --git a/ee/app/controllers/ee/projects/security/configuration_controller.rb b/ee/app/controllers/ee/projects/security/configuration_controller.rb index e3988390624fb27bf1181d2643782828c6305955..188477b80daca05244872266b0460745a2606e05 100644 --- a/ee/app/controllers/ee/projects/security/configuration_controller.rb +++ b/ee/app/controllers/ee/projects/security/configuration_controller.rb @@ -15,6 +15,7 @@ module ConfigurationController before_action only: [:show] do push_frontend_feature_flag(:security_auto_fix, project) push_frontend_feature_flag(:dependency_scanning_on_advisory_ingestion, project) + push_frontend_feature_flag(:global_dependency_scanning_on_advisory_ingestion, project) end before_action only: [:auto_fix] do diff --git a/spec/frontend/security_configuration/components/continuous_vulnerability_scan_spec.js b/spec/frontend/security_configuration/components/continuous_vulnerability_scan_spec.js index 84a468e4dd832cf1a554a4b1ece310f1205e9c88..c395c91d8808a5711b1105b33aef41ad8561cd57 100644 --- a/spec/frontend/security_configuration/components/continuous_vulnerability_scan_spec.js +++ b/spec/frontend/security_configuration/components/continuous_vulnerability_scan_spec.js @@ -46,6 +46,7 @@ describe('ContinuousVulnerabilityScan', () => { provide: { glFeatures: { dependencyScanningOnAdvisoryIngestion: true, + globalDependencyScanningOnAdvisoryIngestion: false, }, ...defaultProvide, }, @@ -105,20 +106,27 @@ describe('ContinuousVulnerabilityScan', () => { }); describe('when feature flag is disabled', () => { - beforeEach(() => { - createComponent({ - provide: { - glFeatures: { - dependencyScanningOnAdvisoryIngestion: false, + it.each` + dependencyScanningOnAdvisoryIngestion | globalDependencyScanningOnAdvisoryIngestion + ${false} | ${false} + ${true} | ${true} + ${false} | ${true} + `( + 'when dependencyScanningOnAdvisoryIngestion: `$dependencyScanningOnAdvisoryIngestion` and globalDependencyScanningOnAdvisoryIngestion: `$globalDependencyScanningOnAdvisoryIngestion` should not render toggle and badge', + ({ dependencyScanningOnAdvisoryIngestion, globalDependencyScanningOnAdvisoryIngestion }) => { + createComponent({ + provide: { + glFeatures: { + dependencyScanningOnAdvisoryIngestion, + globalDependencyScanningOnAdvisoryIngestion, + }, + ...defaultProvide, }, - ...defaultProvide, - }, - }); - }); + }); - it('should not render toggle and badge', () => { - expect(findToggle().exists()).toBe(false); - expect(findBadge().exists()).toBe(false); - }); + expect(findToggle().exists()).toBe(false); + expect(findBadge().exists()).toBe(false); + }, + ); }); });