diff --git a/ee/app/services/vulnerabilities/confirm_service.rb b/ee/app/services/vulnerabilities/confirm_service.rb index 444b43c17a9641d169a5d959053340ad0259ece7..8a29622336e4acd767fe04ca5d64ad4f9699b339 100644 --- a/ee/app/services/vulnerabilities/confirm_service.rb +++ b/ee/app/services/vulnerabilities/confirm_service.rb @@ -7,8 +7,14 @@ class ConfirmService < BaseService def execute raise Gitlab::Access::AccessDeniedError unless authorized? - update_vulnerability_with(state: Vulnerability.states[:confirmed], confirmed_by: @user, confirmed_at: Time.current) do - DestroyDismissalFeedbackService.new(@user, @vulnerability).execute + if Feature.enabled?(:deprecate_vulnerabilities_feedback, @vulnerability.project) + update_vulnerability_with(state: Vulnerability.states[:confirmed], confirmed_by: @user, + confirmed_at: Time.current) + else + update_vulnerability_with(state: Vulnerability.states[:confirmed], confirmed_by: @user, + confirmed_at: Time.current) do + DestroyDismissalFeedbackService.new(@user, @vulnerability).execute + end end @vulnerability diff --git a/ee/spec/services/vulnerabilities/confirm_service_spec.rb b/ee/spec/services/vulnerabilities/confirm_service_spec.rb index b836d9ace35026c4ad899163015dcd87730e6448..8892f96ab251d295b5259a2c7cd6421ad7a0e782 100644 --- a/ee/spec/services/vulnerabilities/confirm_service_spec.rb +++ b/ee/spec/services/vulnerabilities/confirm_service_spec.rb @@ -23,7 +23,14 @@ end it_behaves_like 'calls vulnerability statistics utility services in order' - it_behaves_like 'removes dismissal feedback from associated findings' + + context 'when feature flag deprecate_vulnerabilities_feedback is disabled' do + before do + stub_feature_flags(deprecate_vulnerabilities_feedback: false) + end + + it_behaves_like 'removes dismissal feedback from associated findings' + end it 'confirms a vulnerability' do freeze_time do @@ -40,6 +47,12 @@ confirm_vulnerability end + it 'does not remove the feedback from associated findings' do + expect(Vulnerabilities::DestroyDismissalFeedbackService).not_to receive(:new).with(user, vulnerability) + + confirm_vulnerability + end + context 'when security dashboard feature is disabled' do before do stub_licensed_features(security_dashboard: false)