From 0a42abfc321ea895ea8bb5fed95791d80c946a18 Mon Sep 17 00:00:00 2001
From: Pavel Shutsin <pshutsin@gitlab.com>
Date: Fri, 12 Apr 2024 11:17:41 +0200
Subject: [PATCH] Update specs syntax

Pure spec refactoring
---
 spec/controllers/dashboard/todos_controller_spec.rb           | 2 +-
 spec/controllers/projects/deploy_keys_controller_spec.rb      | 2 +-
 spec/features/nav/new_nav_invite_members_spec.rb              | 2 +-
 spec/finders/ci/runner_jobs_finder_spec.rb                    | 4 ++--
 spec/finders/deploy_keys/deploy_keys_finder_spec.rb           | 2 +-
 spec/graphql/mutations/work_items/linked_items/base_spec.rb   | 2 +-
 spec/graphql/resolvers/users/participants_resolver_spec.rb    | 2 +-
 spec/graphql/resolvers/work_item_resolver_spec.rb             | 2 +-
 spec/helpers/issuables_helper_spec.rb                         | 2 +-
 spec/models/preloaders/project_policy_preloader_spec.rb       | 4 ++--
 spec/models/user_spec.rb                                      | 2 +-
 spec/requests/api/graphql/issues_spec.rb                      | 2 +-
 spec/services/issues/create_service_spec.rb                   | 4 ++--
 .../merge_requests/push_options_handler_service_spec.rb       | 2 +-
 spec/services/notification_recipients/builder/default_spec.rb | 4 ++--
 spec/services/users/assigned_issues_count_service_spec.rb     | 2 +-
 .../task_list_reference_replacement_service_spec.rb           | 2 +-
 17 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/spec/controllers/dashboard/todos_controller_spec.rb b/spec/controllers/dashboard/todos_controller_spec.rb
index 4f01839fec41..00b8ca0a4ff3 100644
--- a/spec/controllers/dashboard/todos_controller_spec.rb
+++ b/spec/controllers/dashboard/todos_controller_spec.rb
@@ -4,7 +4,7 @@
 
 RSpec.describe Dashboard::TodosController do
   let_it_be(:user) { create(:user) }
-  let_it_be(:project) { create(:project).tap { |project| project.add_developer(user) } }
+  let_it_be(:project) { create(:project, developers: user) }
   let_it_be(:author) { create(:user) }
 
   before do
diff --git a/spec/controllers/projects/deploy_keys_controller_spec.rb b/spec/controllers/projects/deploy_keys_controller_spec.rb
index 82087ec1247b..c203effff170 100644
--- a/spec/controllers/projects/deploy_keys_controller_spec.rb
+++ b/spec/controllers/projects/deploy_keys_controller_spec.rb
@@ -17,7 +17,7 @@
     let_it_be(:project) { create(:project, :repository) }
     let_it_be(:user) { create(:user) }
 
-    let_it_be(:accessible_project) { create(:project, :internal).tap { |p| p.add_developer(user) } }
+    let_it_be(:accessible_project) { create(:project, :internal, developers: user) }
     let_it_be(:inaccessible_project) { create(:project, :internal) }
     let_it_be(:project_private) { create(:project, :private) }
 
diff --git a/spec/features/nav/new_nav_invite_members_spec.rb b/spec/features/nav/new_nav_invite_members_spec.rb
index 5a75025c98ba..6e81b3a43229 100644
--- a/spec/features/nav/new_nav_invite_members_spec.rb
+++ b/spec/features/nav/new_nav_invite_members_spec.rb
@@ -28,7 +28,7 @@
   end
 
   context 'when inside a project' do
-    let_it_be(:project) { create(:project, :repository).tap { |record| record.add_owner(user) } }
+    let_it_be(:project) { create(:project, :repository, owners: user) }
 
     before do
       visit project_path(project)
diff --git a/spec/finders/ci/runner_jobs_finder_spec.rb b/spec/finders/ci/runner_jobs_finder_spec.rb
index 66cdde756be7..2f1611910a59 100644
--- a/spec/finders/ci/runner_jobs_finder_spec.rb
+++ b/spec/finders/ci/runner_jobs_finder_spec.rb
@@ -53,9 +53,9 @@
     end
 
     context 'when the user has different access levels in different projects' do
-      let_it_be(:guest_project) { create(:project).tap { |p| p.add_guest(user) } }
+      let_it_be(:guest_project) { create(:project, guests: user) }
       let_it_be(:guest_jobs) { create_list(:ci_build, 2, runner: runner, project: guest_project) }
-      let_it_be(:reporter_project) { create(:project).tap { |p| p.add_reporter(user) } }
+      let_it_be(:reporter_project) { create(:project, reporters: user) }
       let_it_be(:reporter_jobs) { create_list(:ci_build, 3, runner: runner, project: reporter_project) }
 
       it 'returns only the jobs the user has permission to see', :aggregate_failures do
diff --git a/spec/finders/deploy_keys/deploy_keys_finder_spec.rb b/spec/finders/deploy_keys/deploy_keys_finder_spec.rb
index f0d3935cc957..ef4414428a92 100644
--- a/spec/finders/deploy_keys/deploy_keys_finder_spec.rb
+++ b/spec/finders/deploy_keys/deploy_keys_finder_spec.rb
@@ -7,7 +7,7 @@
     let_it_be(:user) { create(:user) }
     let_it_be(:project) { create(:project, :repository) }
 
-    let_it_be(:accessible_project) { create(:project, :internal).tap { |p| p.add_developer(user) } }
+    let_it_be(:accessible_project) { create(:project, :internal, developers: user) }
     let_it_be(:inaccessible_project) { create(:project, :internal) }
     let_it_be(:project_private) { create(:project, :private) }
 
diff --git a/spec/graphql/mutations/work_items/linked_items/base_spec.rb b/spec/graphql/mutations/work_items/linked_items/base_spec.rb
index bc52aee443e4..58c43debce4e 100644
--- a/spec/graphql/mutations/work_items/linked_items/base_spec.rb
+++ b/spec/graphql/mutations/work_items/linked_items/base_spec.rb
@@ -6,7 +6,7 @@
   include GraphqlHelpers
 
   let_it_be(:user) { create(:user) }
-  let_it_be(:project) { create(:project).tap { |group| group.add_maintainer(user) } }
+  let_it_be(:project) { create(:project, maintainers: user) }
   let_it_be(:work_item) { create(:work_item, project: project) }
 
   it 'raises a NotImplementedError error if the update_links method is called on the base class' do
diff --git a/spec/graphql/resolvers/users/participants_resolver_spec.rb b/spec/graphql/resolvers/users/participants_resolver_spec.rb
index ae23eabaeb01..cce0393a3400 100644
--- a/spec/graphql/resolvers/users/participants_resolver_spec.rb
+++ b/spec/graphql/resolvers/users/participants_resolver_spec.rb
@@ -15,7 +15,7 @@
       end
     end
 
-    let_it_be(:private_project) { create(:project, :private).tap { |r| r.add_developer(user) } }
+    let_it_be(:private_project) { create(:project, :private, developers: user) }
 
     let_it_be(:issue) { create(:issue, project: project) }
     let_it_be(:private_issue) { create(:issue, project: private_project) }
diff --git a/spec/graphql/resolvers/work_item_resolver_spec.rb b/spec/graphql/resolvers/work_item_resolver_spec.rb
index dacc6ac11d8c..78402b4208f2 100644
--- a/spec/graphql/resolvers/work_item_resolver_spec.rb
+++ b/spec/graphql/resolvers/work_item_resolver_spec.rb
@@ -7,7 +7,7 @@
 
   describe '#resolve' do
     let_it_be(:developer) { create(:user) }
-    let_it_be(:project) { create(:project, :private).tap { |project| project.add_developer(developer) } }
+    let_it_be(:project) { create(:project, :private, developers: developer) }
     let_it_be(:work_item) { create(:work_item, project: project) }
 
     let(:current_user) { developer }
diff --git a/spec/helpers/issuables_helper_spec.rb b/spec/helpers/issuables_helper_spec.rb
index f2e88bc311d7..cb6fcaa9d650 100644
--- a/spec/helpers/issuables_helper_spec.rb
+++ b/spec/helpers/issuables_helper_spec.rb
@@ -101,7 +101,7 @@
   describe '#assigned_issuables_count', feature_category: :team_planning do
     context 'when issuable is issues' do
       let_it_be(:user) { create(:user) }
-      let_it_be(:project) { create(:project).tap { |p| p.add_developer(user) } }
+      let_it_be(:project) { create(:project, developers: user) }
 
       subject { helper.assigned_issuables_count(:issues) }
 
diff --git a/spec/models/preloaders/project_policy_preloader_spec.rb b/spec/models/preloaders/project_policy_preloader_spec.rb
index 79f232f5ce2e..a278194e9e10 100644
--- a/spec/models/preloaders/project_policy_preloader_spec.rb
+++ b/spec/models/preloaders/project_policy_preloader_spec.rb
@@ -33,11 +33,11 @@
     preload_projects_for_policy(user)
     control = ActiveRecord::QueryRecorder.new { authorize_all_projects(user) }
 
-    new_project1 = create(:project, :private).tap { |project| project.add_maintainer(user) }
+    new_project1 = create(:project, :private, maintainers: user)
     new_project2 = create(:project, :private, namespace: root_parent)
 
     another_root = create(:group, :private, name: 'root-3', path: 'root-3')
-    new_project3 = create(:project, :private, namespace: another_root).tap { |project| project.add_maintainer(user) }
+    new_project3 = create(:project, :private, namespace: another_root, maintainers: user)
 
     pristine_projects = Project.where(id: base_projects + [new_project1, new_project2, new_project3])
 
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 86cfb1c35cfd..c7d6e7f89174 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -4878,7 +4878,7 @@ def login_method(login)
 
     it 'includes projects that belong to a user, but no other projects' do
       owned = create(:project, :private, namespace: user.namespace)
-      member = create(:project, :private).tap { |p| p.add_maintainer(user) }
+      member = create(:project, :private, maintainers: user)
       other = create(:project)
 
       expect(subject).to include(owned)
diff --git a/spec/requests/api/graphql/issues_spec.rb b/spec/requests/api/graphql/issues_spec.rb
index 913f1fc6367f..b783926434c2 100644
--- a/spec/requests/api/graphql/issues_spec.rb
+++ b/spec/requests/api/graphql/issues_spec.rb
@@ -215,7 +215,7 @@ def pagination_query(params)
       control = ActiveRecord::QueryRecorder.new(skip_cached: false) { post_query }
       expect_graphql_errors_to_be_empty
 
-      new_private_project = create(:project, :private).tap { |project| project.add_developer(current_user) }
+      new_private_project = create(:project, :private, developers: current_user)
       create(:issue, project: new_private_project)
 
       private_group = create(:group, :private, developers: current_user)
diff --git a/spec/services/issues/create_service_spec.rb b/spec/services/issues/create_service_spec.rb
index 2e6625679521..de71aaa72c6e 100644
--- a/spec/services/issues/create_service_spec.rb
+++ b/spec/services/issues/create_service_spec.rb
@@ -73,7 +73,7 @@
       end
 
       describe 'authorization' do
-        let_it_be(:project) { create(:project, :private, group: group).tap { |project| project.add_guest(user) } }
+        let_it_be(:project) { create(:project, :private, group: group, guests: user) }
 
         let(:opts) { { title: 'private issue', description: 'please fix' } }
 
@@ -170,7 +170,7 @@
 
       context 'when issue template is provided' do
         let_it_be(:files) { { '.gitlab/issue_templates/Default.md' => 'Default template contents' } }
-        let_it_be_with_reload(:project) { create(:project, :custom_repo, group: group, files: files).tap { |project| project.add_guest(user) } }
+        let_it_be_with_reload(:project) { create(:project, :custom_repo, group: group, files: files, guests: user) }
 
         context 'when description is blank' do
           it 'sets template contents as description when description is blank' do
diff --git a/spec/services/merge_requests/push_options_handler_service_spec.rb b/spec/services/merge_requests/push_options_handler_service_spec.rb
index 2ff2486dc50d..6a58733df30b 100644
--- a/spec/services/merge_requests/push_options_handler_service_spec.rb
+++ b/spec/services/merge_requests/push_options_handler_service_spec.rb
@@ -924,7 +924,7 @@ def run_service_with_exception
   end
 
   describe 'when MRs are not enabled' do
-    let(:project) { create(:project, :public, :repository).tap { |pr| pr.add_developer(user1) } }
+    let(:project) { create(:project, :public, :repository, developers: user1) }
     let(:push_options) { { create: true } }
     let(:changes) { new_branch_changes }
 
diff --git a/spec/services/notification_recipients/builder/default_spec.rb b/spec/services/notification_recipients/builder/default_spec.rb
index da991b5951a1..fef9340141fb 100644
--- a/spec/services/notification_recipients/builder/default_spec.rb
+++ b/spec/services/notification_recipients/builder/default_spec.rb
@@ -5,7 +5,7 @@
 RSpec.describe NotificationRecipients::Builder::Default, feature_category: :team_planning do
   describe '#build!' do
     let_it_be(:group)   { create(:group, :public) }
-    let_it_be(:project) { create(:project, :public, group: group).tap { |p| p.add_developer(project_watcher) if project_watcher } }
+    let_it_be(:project) { create(:project, :public, group: group, developers: project_watcher) }
     let_it_be(:target)  { create(:issue, project: project) }
 
     let_it_be(:current_user)    { create(:user) }
@@ -135,7 +135,7 @@
           let(:grand_parent_group) { create(:group, :public) }
           let(:parent_group) { create(:group, :public, parent: grand_parent_group) }
           let(:group) { create(:group, :public, parent: parent_group) }
-          let(:project) { create(:project, :public, group: group).tap { |p| p.add_developer(project_watcher) } }
+          let(:project) { create(:project, :public, group: group, developers: project_watcher) }
           let(:target) { create(:issue, project: project) }
 
           before do
diff --git a/spec/services/users/assigned_issues_count_service_spec.rb b/spec/services/users/assigned_issues_count_service_spec.rb
index 2062f68b24b8..4d014c6441b1 100644
--- a/spec/services/users/assigned_issues_count_service_spec.rb
+++ b/spec/services/users/assigned_issues_count_service_spec.rb
@@ -30,7 +30,7 @@
 
   context 'when the number of assigned open issues exceeds max_limit' do
     let_it_be(:banned_user) { create(:user, :banned) }
-    let_it_be(:project) { create(:project).tap { |p| p.add_developer(user) } }
+    let_it_be(:project) { create(:project, developers: user) }
 
     context 'when user is admin', :enable_admin_mode do
       let_it_be(:admin) { create(:admin) }
diff --git a/spec/services/work_items/task_list_reference_replacement_service_spec.rb b/spec/services/work_items/task_list_reference_replacement_service_spec.rb
index 8f696109fa15..c7765e7c8989 100644
--- a/spec/services/work_items/task_list_reference_replacement_service_spec.rb
+++ b/spec/services/work_items/task_list_reference_replacement_service_spec.rb
@@ -4,7 +4,7 @@
 
 RSpec.describe WorkItems::TaskListReferenceReplacementService, feature_category: :team_planning do
   let_it_be(:developer) { create(:user) }
-  let_it_be(:project) { create(:project, :repository).tap { |project| project.add_developer(developer) } }
+  let_it_be(:project) { create(:project, :repository, developers: developer) }
   let_it_be(:single_line_work_item, refind: true) { create(:work_item, project: project, description: '- [ ] single line', lock_version: 3) }
   let_it_be(:multiple_line_work_item, refind: true) { create(:work_item, project: project, description: "Any text\n\n* [ ] Item to be converted\n    second line\n    third line", lock_version: 3) }
 
-- 
GitLab