From 4e1dfeda05a3ba0a732cd9a8c73c80fd37d9a963 Mon Sep 17 00:00:00 2001 From: Nicolas Dular Date: Tue, 19 Jan 2021 16:10:34 +0100 Subject: [PATCH] Record onboarding action for MR approval rule --- .../services/approval_rules/create_service.rb | 10 +++++++++ .../approval_rules/create_service_spec.rb | 22 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/ee/app/services/approval_rules/create_service.rb b/ee/app/services/approval_rules/create_service.rb index 145966298aae07..f55626382cabe4 100644 --- a/ee/app/services/approval_rules/create_service.rb +++ b/ee/app/services/approval_rules/create_service.rb @@ -23,6 +23,12 @@ def initialize(target, user, params) super(@rule.project, user, params) end + def success + track_onboarding_progress + + super + end + private def copy_approval_project_rule_properties(params) @@ -59,5 +65,9 @@ def approvers_set? def approvers_present? %i(user_ids group_ids users groups).any? { |key| @params[key].present? } end + + def track_onboarding_progress + OnboardingProgressService.new(rule.project.namespace).execute(action: :required_mr_approvals_enabled) + end end end diff --git a/ee/spec/services/approval_rules/create_service_spec.rb b/ee/spec/services/approval_rules/create_service_spec.rb index d5b25228f358d6..f29cb135edc7b0 100644 --- a/ee/spec/services/approval_rules/create_service_spec.rb +++ b/ee/spec/services/approval_rules/create_service_spec.rb @@ -62,6 +62,15 @@ expect(result[:status]).to eq(:error) end + + it_behaves_like 'does not record an onboarding progress action' do + subject do + described_class.new(target, user, { + name: nil, + approvals_required: 1 + }).execute + end + end end context 'when user does not have right to admin project' do @@ -114,6 +123,19 @@ expect { subject.execute }.not_to change(target.approval_rules.any_approver, :count) end end + + it_behaves_like 'records an onboarding progress action', :required_mr_approvals_enabled do + let(:namespace) { project.namespace } + + subject do + described_class.new(target, user, { + name: 'security', + approvals_required: 1, + user_ids: new_approvers.map(&:id), + group_ids: new_groups.map(&:id) + }).execute + end + end end end -- GitLab