From 0c6c44977bb3606bbcf10db90a8957628317f7a4 Mon Sep 17 00:00:00 2001
From: Rajendra Kadam <rajendrakadam249@gmail.com>
Date: Mon, 7 Sep 2020 16:02:44 +0000
Subject: [PATCH] Fix Rails/SaveBang offenses

Fixes Rails/SaveBang cop for spec files
---
 .rubocop_todo.yml                            |  3 ---
 changelogs/unreleased/rails-save-bang-30.yml |  5 +++++
 spec/requests/api/project_milestones_spec.rb |  6 +++---
 spec/requests/api/projects_spec.rb           | 18 +++++++++---------
 spec/requests/api/snippets_spec.rb           |  4 ++--
 5 files changed, 19 insertions(+), 17 deletions(-)
 create mode 100644 changelogs/unreleased/rails-save-bang-30.yml

diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index e85eb1bfd2dbd..b50a054b82aad 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1154,9 +1154,6 @@ Rails/SaveBang:
     - 'spec/requests/api/notes_spec.rb'
     - 'spec/requests/api/pipeline_schedules_spec.rb'
     - 'spec/requests/api/project_import_spec.rb'
-    - 'spec/requests/api/project_milestones_spec.rb'
-    - 'spec/requests/api/projects_spec.rb'
-    - 'spec/requests/api/snippets_spec.rb'
     - 'spec/requests/git_http_spec.rb'
     - 'spec/requests/lfs_http_spec.rb'
     - 'spec/requests/profiles/notifications_controller_spec.rb'
diff --git a/changelogs/unreleased/rails-save-bang-30.yml b/changelogs/unreleased/rails-save-bang-30.yml
new file mode 100644
index 0000000000000..7c2fdd3cdfbc6
--- /dev/null
+++ b/changelogs/unreleased/rails-save-bang-30.yml
@@ -0,0 +1,5 @@
+---
+title: Fix Rails/SaveBang offenses for 3 files
+merge_request: 41394
+author: Rajendra Kadam
+type: other
diff --git a/spec/requests/api/project_milestones_spec.rb b/spec/requests/api/project_milestones_spec.rb
index d1e5df66b3f71..71535e66353c7 100644
--- a/spec/requests/api/project_milestones_spec.rb
+++ b/spec/requests/api/project_milestones_spec.rb
@@ -43,7 +43,7 @@
         let(:milestones) { [group_milestone, ancestor_group_milestone, milestone, closed_milestone] }
 
         before_all do
-          project.update(namespace: group)
+          project.update!(namespace: group)
         end
 
         it_behaves_like 'listing all milestones'
@@ -108,7 +108,7 @@
     let(:group) { create(:group) }
 
     before do
-      project.update(namespace: group)
+      project.update!(namespace: group)
     end
 
     context 'when user does not have permission to promote milestone' do
@@ -163,7 +163,7 @@
 
     context 'when project does not belong to group' do
       before do
-        project.update(namespace: user.namespace)
+        project.update!(namespace: user.namespace)
       end
 
       it 'returns 403' do
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 46340f86f69f5..df95835ae94f5 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -208,7 +208,7 @@
       end
 
       it 'does not include projects marked for deletion' do
-        project.update(pending_delete: true)
+        project.update!(pending_delete: true)
 
         get api('/projects', user)
 
@@ -502,7 +502,7 @@
 
         before do
           project_member
-          user3.update(starred_projects: [project, project2, project3, public_project])
+          user3.update!(starred_projects: [project, project2, project3, public_project])
         end
 
         it 'returns the starred projects viewable by the user' do
@@ -523,7 +523,7 @@
         let!(:project9) { create(:project, :public, path: 'gitlab9') }
 
         before do
-          user.update(starred_projects: [project5, project7, project8, project9])
+          user.update!(starred_projects: [project5, project7, project8, project9])
         end
 
         context 'including owned filter' do
@@ -1232,7 +1232,7 @@
 
   describe 'GET /users/:user_id/starred_projects/' do
     before do
-      user3.update(starred_projects: [project, project2, project3])
+      user3.update!(starred_projects: [project, project2, project3])
     end
 
     it 'returns error when user not found' do
@@ -1745,7 +1745,7 @@
       end
 
       it 'returns 404 when project is marked for deletion' do
-        project.update(pending_delete: true)
+        project.update!(pending_delete: true)
 
         get api("/projects/#{project.id}", user)
 
@@ -2260,7 +2260,7 @@
     end
 
     it "returns a 400 error when sharing is disabled" do
-      project.namespace.update(share_with_group_lock: true)
+      project.namespace.update!(share_with_group_lock: true)
       post api("/projects/#{project.id}/share", user), params: { group_id: group.id, group_access: Gitlab::Access::DEVELOPER }
       expect(response).to have_gitlab_http_status(:bad_request)
     end
@@ -2417,7 +2417,7 @@
       end
 
       it 'updates visibility_level from public to private' do
-        project3.update({ visibility_level: Gitlab::VisibilityLevel::PUBLIC })
+        project3.update!({ visibility_level: Gitlab::VisibilityLevel::PUBLIC })
         project_param = { visibility: 'private' }
 
         put api("/projects/#{project3.id}", user), params: project_param
@@ -2877,8 +2877,8 @@
     let(:private_user) { create(:user, private_profile: true) }
 
     before do
-      user.update(starred_projects: [public_project])
-      private_user.update(starred_projects: [public_project])
+      user.update!(starred_projects: [public_project])
+      private_user.update!(starred_projects: [public_project])
     end
 
     it 'returns not_found(404) for not existing project' do
diff --git a/spec/requests/api/snippets_spec.rb b/spec/requests/api/snippets_spec.rb
index 02f62b031701c..508a39ce227d3 100644
--- a/spec/requests/api/snippets_spec.rb
+++ b/spec/requests/api/snippets_spec.rb
@@ -111,7 +111,7 @@
     end
 
     it 'returns 404 for invalid snippet id' do
-      snippet.destroy
+      snippet.destroy!
 
       get api("/snippets/#{snippet.id}/raw", author)
 
@@ -201,7 +201,7 @@
       end
 
       it 'returns 404 for invalid snippet id' do
-        private_snippet.destroy
+        private_snippet.destroy!
 
         subject
 
-- 
GitLab