From 788f49dca3bb7416b7a3d7dd62c6fa650194c00f Mon Sep 17 00:00:00 2001
From: Peter Leitzen <pleitzen@gitlab.com>
Date: Fri, 14 Apr 2023 13:59:55 +0200
Subject: [PATCH] Disable RSpec/FactoryBot/AvoidCreate in approval rule
 presenter specs

Also, fix all remaining offenses.
---
 .rubocop_todo/rspec/context_wording.yml       |  1 -
 .../rspec/factory_bot/avoid_create.yml        |  1 -
 .../rspec/missing_feature_category.yml        |  1 -
 .../approval_rule_presenter_spec.rb           | 21 +++++++++++--------
 4 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml
index a7ec2fcd55ae8..ced205ff8eab3 100644
--- a/.rubocop_todo/rspec/context_wording.yml
+++ b/.rubocop_todo/rspec/context_wording.yml
@@ -533,7 +533,6 @@ RSpec/ContextWording:
     - 'ee/spec/policies/project_snippet_policy_spec.rb'
     - 'ee/spec/policies/protected_branch_policy_spec.rb'
     - 'ee/spec/policies/saml_provider_policy_spec.rb'
-    - 'ee/spec/presenters/approval_rule_presenter_spec.rb'
     - 'ee/spec/presenters/audit_event_presenter_spec.rb'
     - 'ee/spec/presenters/ci/build_runner_presenter_spec.rb'
     - 'ee/spec/presenters/ee/issue_presenter_spec.rb'
diff --git a/.rubocop_todo/rspec/factory_bot/avoid_create.yml b/.rubocop_todo/rspec/factory_bot/avoid_create.yml
index fe8a1cb6bfad6..9a5566d8ad2f7 100644
--- a/.rubocop_todo/rspec/factory_bot/avoid_create.yml
+++ b/.rubocop_todo/rspec/factory_bot/avoid_create.yml
@@ -100,7 +100,6 @@ RSpec/FactoryBot/AvoidCreate:
     - 'ee/spec/mailers/emails/user_cap_spec.rb'
     - 'ee/spec/mailers/license_mailer_spec.rb'
     - 'ee/spec/mailers/notify_spec.rb'
-    - 'ee/spec/presenters/approval_rule_presenter_spec.rb'
     - 'ee/spec/presenters/audit_event_presenter_spec.rb'
     - 'ee/spec/presenters/ci/build_runner_presenter_spec.rb'
     - 'ee/spec/presenters/ci/minutes/usage_presenter_spec.rb'
diff --git a/.rubocop_todo/rspec/missing_feature_category.yml b/.rubocop_todo/rspec/missing_feature_category.yml
index a0e239e05b53e..728ebd64b91b0 100644
--- a/.rubocop_todo/rspec/missing_feature_category.yml
+++ b/.rubocop_todo/rspec/missing_feature_category.yml
@@ -1347,7 +1347,6 @@ RSpec/MissingFeatureCategory:
     - 'ee/spec/policies/user_policy_spec.rb'
     - 'ee/spec/policies/vulnerability_policy_spec.rb'
     - 'ee/spec/presenters/analytics/cycle_analytics/stage_presenter_spec.rb'
-    - 'ee/spec/presenters/approval_rule_presenter_spec.rb'
     - 'ee/spec/presenters/audit_event_presenter_spec.rb'
     - 'ee/spec/presenters/ci/build_presenter_spec.rb'
     - 'ee/spec/presenters/ci/build_runner_presenter_spec.rb'
diff --git a/ee/spec/presenters/approval_rule_presenter_spec.rb b/ee/spec/presenters/approval_rule_presenter_spec.rb
index 3fabde8892618..b539d75451ebb 100644
--- a/ee/spec/presenters/approval_rule_presenter_spec.rb
+++ b/ee/spec/presenters/approval_rule_presenter_spec.rb
@@ -2,7 +2,9 @@
 
 require 'spec_helper'
 
-RSpec.describe ApprovalRulePresenter do
+# The presenter is using finders so we must persist records.
+# rubocop:disable RSpec/FactoryBot/AvoidCreate
+RSpec.describe ApprovalRulePresenter, feature_category: :compliance_management do
   let_it_be(:user) { create(:user) }
   let_it_be(:public_group) { create(:group) }
   let_it_be(:private_group) { create(:group, :private) }
@@ -22,11 +24,11 @@
       rule.clear_memoization(:approvers)
     end
 
-    context 'user cannot see one of the groups' do
+    context 'when user cannot see one of the groups' do
       it { is_expected.to be_empty }
     end
 
-    context 'user can see all groups' do
+    context 'when user can see all groups' do
       before do
         private_group.add_guest(user)
       end
@@ -52,13 +54,13 @@
       end
     end
 
-    context 'project rule' do
+    context 'with project rule' do
       let(:rule) { create(:approval_project_rule, groups: groups) }
 
       it_behaves_like 'filtering private group'
     end
 
-    context 'wrapped approval rule' do
+    context 'with wrapped approval rule' do
       let(:rule) do
         mr_rule = create(:approval_merge_request_rule, groups: groups)
         ApprovalWrappedRule.new(mr_rule.merge_request, mr_rule)
@@ -67,7 +69,7 @@
       it_behaves_like 'filtering private group'
     end
 
-    context 'any_approver rule' do
+    context 'with any_approver rule' do
       let(:rule) { create(:any_approver_rule) }
 
       it 'contains no groups without raising an error' do
@@ -93,13 +95,13 @@
       end
     end
 
-    context 'project rule' do
+    context 'with project rule' do
       let(:rule) { create(:approval_project_rule, groups: groups) }
 
       it_behaves_like 'detecting hidden group'
     end
 
-    context 'wrapped approval rule' do
+    context 'with wrapped approval rule' do
       let(:rule) do
         mr_rule = create(:approval_merge_request_rule, groups: groups)
         ApprovalWrappedRule.new(mr_rule.merge_request, mr_rule)
@@ -108,7 +110,7 @@
       it_behaves_like 'detecting hidden group'
     end
 
-    context 'any_approver rule' do
+    context 'with any_approver rule' do
       let(:rule) { create(:any_approver_rule) }
 
       it 'contains no groups without raising an error' do
@@ -117,3 +119,4 @@
     end
   end
 end
+# rubocop:enable RSpec/FactoryBot/AvoidCreate
-- 
GitLab