From 2f817b54d9bb7a793c0e187b7541314a885bb44f Mon Sep 17 00:00:00 2001
From: Siddharth Asthana <siddharthasthana31@gmail.com>
Date: Sat, 4 Dec 2021 15:57:52 +0530
Subject: [PATCH] Fix Rails/SaveBang offenses

Changelog: other
---
 .rubocop_todo/rails/save_bang.yml                   |  6 ------
 spec/lib/gitlab/import_export/uploads_saver_spec.rb |  4 ++--
 spec/lib/gitlab/lets_encrypt/client_spec.rb         |  2 +-
 spec/lib/gitlab/middleware/go_spec.rb               |  2 +-
 spec/lib/gitlab/shard_health_cache_spec.rb          |  6 +++---
 spec/mailers/notify_spec.rb                         | 10 +++++-----
 6 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/.rubocop_todo/rails/save_bang.yml b/.rubocop_todo/rails/save_bang.yml
index 8f2be251dc5c1..62f8951401dd9 100644
--- a/.rubocop_todo/rails/save_bang.yml
+++ b/.rubocop_todo/rails/save_bang.yml
@@ -70,9 +70,3 @@ Rails/SaveBang:
   - spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb
   - spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb
   - spec/lib/gitlab/import_export/uploads_manager_spec.rb
-  - spec/lib/gitlab/import_export/uploads_saver_spec.rb
-  - spec/lib/gitlab/import_export/wiki_restorer_spec.rb
-  - spec/lib/gitlab/lets_encrypt/client_spec.rb
-  - spec/lib/gitlab/middleware/go_spec.rb
-  - spec/lib/gitlab/shard_health_cache_spec.rb
-  - spec/mailers/notify_spec.rb
diff --git a/spec/lib/gitlab/import_export/uploads_saver_spec.rb b/spec/lib/gitlab/import_export/uploads_saver_spec.rb
index 8e9be209f8967..bfb18c5880638 100644
--- a/spec/lib/gitlab/import_export/uploads_saver_spec.rb
+++ b/spec/lib/gitlab/import_export/uploads_saver_spec.rb
@@ -32,7 +32,7 @@
       end
 
       it 'copies the uploads to the export path' do
-        saver.save
+        saver.save # rubocop:disable Rails/SaveBang
 
         uploads = Dir.glob(File.join(shared.export_path, 'uploads/**/*')).map { |file| File.basename(file) }
 
@@ -54,7 +54,7 @@
       end
 
       it 'copies the uploads to the export path' do
-        saver.save
+        saver.save # rubocop:disable Rails/SaveBang
 
         uploads = Dir.glob(File.join(shared.export_path, 'uploads/**/*')).map { |file| File.basename(file) }
 
diff --git a/spec/lib/gitlab/lets_encrypt/client_spec.rb b/spec/lib/gitlab/lets_encrypt/client_spec.rb
index f128431868789..1baf874953274 100644
--- a/spec/lib/gitlab/lets_encrypt/client_spec.rb
+++ b/spec/lib/gitlab/lets_encrypt/client_spec.rb
@@ -42,7 +42,7 @@
     context 'when private key is saved in settings' do
       let!(:saved_private_key) do
         key = OpenSSL::PKey::RSA.new(4096).to_pem
-        Gitlab::CurrentSettings.current_application_settings.update(lets_encrypt_private_key: key)
+        Gitlab::CurrentSettings.current_application_settings.update!(lets_encrypt_private_key: key)
         key
       end
 
diff --git a/spec/lib/gitlab/middleware/go_spec.rb b/spec/lib/gitlab/middleware/go_spec.rb
index 1ef548ab29bdc..bc1d53b2ccb74 100644
--- a/spec/lib/gitlab/middleware/go_spec.rb
+++ b/spec/lib/gitlab/middleware/go_spec.rb
@@ -100,7 +100,7 @@
 
                   context 'without access to the project', :sidekiq_inline do
                     before do
-                      project.team.find_member(current_user).destroy
+                      project.team.find_member(current_user).destroy!
                     end
 
                     it_behaves_like 'unauthorized'
diff --git a/spec/lib/gitlab/shard_health_cache_spec.rb b/spec/lib/gitlab/shard_health_cache_spec.rb
index 5c47ac7e9a086..0c25cc7dab5d8 100644
--- a/spec/lib/gitlab/shard_health_cache_spec.rb
+++ b/spec/lib/gitlab/shard_health_cache_spec.rb
@@ -6,7 +6,7 @@
   let(:shards) { %w(foo bar) }
 
   before do
-    described_class.update(shards)
+    described_class.update(shards) # rubocop:disable Rails/SaveBang
   end
 
   describe '.clear' do
@@ -24,7 +24,7 @@
 
     it 'replaces the existing set' do
       new_set = %w(test me more)
-      described_class.update(new_set)
+      described_class.update(new_set) # rubocop:disable Rails/SaveBang
 
       expect(described_class.cached_healthy_shards).to match_array(new_set)
     end
@@ -36,7 +36,7 @@
     end
 
     it 'returns 0 if no shards are available' do
-      described_class.update([])
+      described_class.update([]) # rubocop:disable Rails/SaveBang
 
       expect(described_class.healthy_shard_count).to eq(0)
     end
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index 44cb18008d2b7..0fbdc09a20665 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -213,7 +213,7 @@
         subject { described_class.issue_due_email(recipient.id, issue.id) }
 
         before do
-          issue.update(due_date: Date.tomorrow)
+          issue.update!(due_date: Date.tomorrow)
         end
 
         it_behaves_like 'an answer to an existing thread with reply-by-email enabled' do
@@ -1229,7 +1229,7 @@ def create_note
         end
 
         context 'when a comment on an existing discussion' do
-          let(:first_note) { create(model) }
+          let(:first_note) { create(model) } # rubocop:disable Rails/SaveBang
           let(:note) { create(model, author: note_author, noteable: nil, in_reply_to: first_note) }
 
           it 'contains an introduction' do
@@ -1505,7 +1505,7 @@ def invite_to_group(group, inviter:, user: nil, tasks_to_be_done: [])
 
         context 'member is not created by a user' do
           before do
-            group_member.update(created_by: nil)
+            group_member.update!(created_by: nil)
           end
 
           it_behaves_like 'no email is sent'
@@ -1513,7 +1513,7 @@ def invite_to_group(group, inviter:, user: nil, tasks_to_be_done: [])
 
         context 'member is a known user' do
           before do
-            group_member.update(user: create(:user))
+            group_member.update!(user: create(:user))
           end
 
           it_behaves_like 'no email is sent'
@@ -1737,7 +1737,7 @@ def invite_to_group(group, inviter:, user: nil, tasks_to_be_done: [])
       stub_config_setting(email_subject_suffix: 'A Nice Suffix')
       perform_enqueued_jobs do
         user.email = "new-email@mail.com"
-        user.save
+        user.save!
       end
     end
 
-- 
GitLab