diff --git a/ee/app/controllers/groups/security/policies_controller.rb b/ee/app/controllers/groups/security/policies_controller.rb index 5f86ea9202d7957200a1ea55691720f582baca6b..d557363afe04464d0021738ef6ae17990ac4f2b0 100644 --- a/ee/app/controllers/groups/security/policies_controller.rb +++ b/ee/app/controllers/groups/security/policies_controller.rb @@ -94,7 +94,7 @@ def policy_configuration end def approvers - return unless @policy_type == :scan_result_policy + return unless ::Security::ScanResultPolicy::SCAN_RESULT_POLICY_TYPES.include?(@policy_type) result = ::Security::SecurityOrchestrationPolicies::FetchPolicyApproversService.new( policy: @policy, diff --git a/ee/app/controllers/projects/security/policies_controller.rb b/ee/app/controllers/projects/security/policies_controller.rb index 00c93311701b29b61fe77a714b7c2fa0893e9ecc..37ddc7ad0bbee306c329523a276a2aacf81b90bc 100644 --- a/ee/app/controllers/projects/security/policies_controller.rb +++ b/ee/app/controllers/projects/security/policies_controller.rb @@ -78,7 +78,7 @@ def policy_configuration end def approvers - return unless @policy_type == :scan_result_policy + return unless ::Security::ScanResultPolicy::SCAN_RESULT_POLICY_TYPES.include?(@policy_type) result = ::Security::SecurityOrchestrationPolicies::FetchPolicyApproversService.new( policy: @policy, diff --git a/ee/spec/controllers/groups/security/policies_controller_spec.rb b/ee/spec/controllers/groups/security/policies_controller_spec.rb index 5e8db6ce1ce06dc8c5b706b3eec2d0a359953395..b2edf7d54d74b60c4d5f3e0ab1fcaab67ab633cf 100644 --- a/ee/spec/controllers/groups/security/policies_controller_spec.rb +++ b/ee/spec/controllers/groups/security/policies_controller_spec.rb @@ -70,9 +70,9 @@ expect(app['data-scan-result-approvers']).to be_nil end - context 'with scan result policy type' do + shared_examples 'scan result policy like type' do |type| let(:policy) { build(:scan_result_policy) } - let(:policy_type) { 'scan_result_policy' } + let(:policy_type) { type } let_it_be(:service_result) { { users: [user], groups: [group], roles: ['OWNER'], status: :success } } let(:service) do @@ -101,6 +101,9 @@ end end + it_behaves_like 'scan result policy like type', 'scan_result_policy' + it_behaves_like 'scan result policy like type', 'approval_policy' + context 'when type is missing' do let(:policy_type) { nil } diff --git a/ee/spec/requests/projects/security/policies_controller_spec.rb b/ee/spec/requests/projects/security/policies_controller_spec.rb index c1d4723535d962e75079e0cc4e44af871c13a316..61461ebbd77cc42297c89b8eae1c9f294e73b97d 100644 --- a/ee/spec/requests/projects/security/policies_controller_spec.rb +++ b/ee/spec/requests/projects/security/policies_controller_spec.rb @@ -50,8 +50,8 @@ expect(app['data-scan-result-approvers']).to be_nil end - context 'with scan result policy type' do - let_it_be(:type) { 'scan_result_policy' } + shared_examples 'scan result policy like type' do |type| + let_it_be(:type) { type } let_it_be(:policy) { build(:scan_result_policy) } let_it_be(:group) { create(:group) } let_it_be(:service_result) { { users: [user], groups: [group], roles: ['OWNER'], status: :success } } @@ -79,6 +79,9 @@ end end + it_behaves_like 'scan result policy like type', 'scan_result_policy' + it_behaves_like 'scan result policy like type', 'approval_policy' + context 'when type is missing' do let_it_be(:edit) { edit_project_security_policy_url(project, id: policy[:name]) }