From cfce6cb3486ace4f7edf322d59a482e1681f91ec Mon Sep 17 00:00:00 2001
From: Rajendra Kadam <rajendrakadam249@gmail.com>
Date: Tue, 14 Jul 2020 22:05:30 +0000
Subject: [PATCH] Fix Rails/SaveBang RuboCop offenses for groups controllers

---
 .rubocop_todo.yml                                      |  6 ------
 changelogs/unreleased/rails-save-bang-2.yml            |  5 +++++
 .../ee/sent_notifications_controller_spec.rb           |  2 +-
 .../controllers/groups/epic_issues_controller_spec.rb  |  2 +-
 .../controllers/groups/epic_links_controller_spec.rb   | 10 +++++-----
 ee/spec/controllers/groups/epics_controller_spec.rb    |  2 +-
 ee/spec/controllers/groups/roadmap_controller_spec.rb  |  4 ++--
 ee/spec/controllers/groups/sso_controller_spec.rb      |  4 ++--
 8 files changed, 17 insertions(+), 18 deletions(-)
 create mode 100644 changelogs/unreleased/rails-save-bang-2.yml

diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 2f7f99dee13ee..f8634daa626cf 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -743,12 +743,6 @@ Style/SymbolProc:
 # Configuration parameters: AllowImplicitReturn, AllowedReceivers.
 Rails/SaveBang:
   Exclude:
-    - 'ee/spec/controllers/ee/sent_notifications_controller_spec.rb'
-    - 'ee/spec/controllers/groups/epic_issues_controller_spec.rb'
-    - 'ee/spec/controllers/groups/epic_links_controller_spec.rb'
-    - 'ee/spec/controllers/groups/epics_controller_spec.rb'
-    - 'ee/spec/controllers/groups/roadmap_controller_spec.rb'
-    - 'ee/spec/controllers/groups/sso_controller_spec.rb'
     - 'ee/spec/controllers/projects/environments_controller_spec.rb'
     - 'ee/spec/controllers/projects/issues_controller_spec.rb'
     - 'ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb'
diff --git a/changelogs/unreleased/rails-save-bang-2.yml b/changelogs/unreleased/rails-save-bang-2.yml
new file mode 100644
index 0000000000000..99ccdf1ea70de
--- /dev/null
+++ b/changelogs/unreleased/rails-save-bang-2.yml
@@ -0,0 +1,5 @@
+---
+title: Refactor group controllers specs to fix SaveBang Cop
+merge_request: 36853
+author: Rajendra Kadam
+type: fixed
diff --git a/ee/spec/controllers/ee/sent_notifications_controller_spec.rb b/ee/spec/controllers/ee/sent_notifications_controller_spec.rb
index 6c1a36954a5c8..761f286a7ddcb 100644
--- a/ee/spec/controllers/ee/sent_notifications_controller_spec.rb
+++ b/ee/spec/controllers/ee/sent_notifications_controller_spec.rb
@@ -8,7 +8,7 @@
   context 'Unsubscribing from an epic' do
     let(:epic) do
       create(:epic, author: user) do |epic|
-        epic.subscriptions.create(user: user, project: nil, subscribed: true)
+        epic.subscriptions.create!(user: user, project: nil, subscribed: true)
       end
     end
     let(:sent_notification) { create(:sent_notification, project: nil, noteable: epic, recipient: user) }
diff --git a/ee/spec/controllers/groups/epic_issues_controller_spec.rb b/ee/spec/controllers/groups/epic_issues_controller_spec.rb
index 1dc2a218f540b..824fea0296339 100644
--- a/ee/spec/controllers/groups/epic_issues_controller_spec.rb
+++ b/ee/spec/controllers/groups/epic_issues_controller_spec.rb
@@ -55,7 +55,7 @@
 
       context 'when user does not have access to epic' do
         it 'returns 404 status' do
-          group.update(visibility_level: Gitlab::VisibilityLevel::PRIVATE)
+          group.update!(visibility_level: Gitlab::VisibilityLevel::PRIVATE)
 
           subject
 
diff --git a/ee/spec/controllers/groups/epic_links_controller_spec.rb b/ee/spec/controllers/groups/epic_links_controller_spec.rb
index 58d5611df0a5d..1e2c5896feeed 100644
--- a/ee/spec/controllers/groups/epic_links_controller_spec.rb
+++ b/ee/spec/controllers/groups/epic_links_controller_spec.rb
@@ -31,7 +31,7 @@
     let(:features_when_forbidden) { { epics: false } }
 
     before do
-      epic1.update(parent: parent_epic)
+      epic1.update!(parent: parent_epic)
     end
 
     subject { get :index, params: { group_id: group, epic_id: parent_epic.to_param } }
@@ -60,7 +60,7 @@
 
       context 'when user does not have access to epic' do
         it 'returns 404 status' do
-          group.update(visibility_level: Gitlab::VisibilityLevel::PRIVATE)
+          group.update!(visibility_level: Gitlab::VisibilityLevel::PRIVATE)
 
           subject
 
@@ -118,8 +118,8 @@
 
   describe 'PUT #update' do
     before do
-      epic1.update(parent: parent_epic)
-      epic2.update(parent: parent_epic)
+      epic1.update!(parent: parent_epic)
+      epic2.update!(parent: parent_epic)
     end
 
     let(:move_before_epic) { epic2 }
@@ -173,7 +173,7 @@
 
   describe 'DELETE #destroy' do
     before do
-      epic1.update(parent: parent_epic)
+      epic1.update!(parent: parent_epic)
     end
 
     let(:features_when_forbidden) { { epics: false } }
diff --git a/ee/spec/controllers/groups/epics_controller_spec.rb b/ee/spec/controllers/groups/epics_controller_spec.rb
index 6c4f1a336b959..ad971b953937e 100644
--- a/ee/spec/controllers/groups/epics_controller_spec.rb
+++ b/ee/spec/controllers/groups/epics_controller_spec.rb
@@ -83,7 +83,7 @@
 
         context 'when epics_sort is present' do
           it 'update epics_sort with current value' do
-            user.user_preference.update(epics_sort: 'created_desc')
+            user.user_preference.update!(epics_sort: 'created_desc')
 
             get :index, params: { group_id: group, sort: 'start_date_asc' }
 
diff --git a/ee/spec/controllers/groups/roadmap_controller_spec.rb b/ee/spec/controllers/groups/roadmap_controller_spec.rb
index 0f205711ab5b7..3f1f53d18c3dc 100644
--- a/ee/spec/controllers/groups/roadmap_controller_spec.rb
+++ b/ee/spec/controllers/groups/roadmap_controller_spec.rb
@@ -49,7 +49,7 @@
             end
 
             it 'defaults to sort_value_start_date_soon' do
-              user.user_preference.update(roadmaps_sort: nil)
+              user.user_preference.update!(roadmaps_sort: nil)
 
               get :show, params: { group_id: group }
 
@@ -59,7 +59,7 @@
 
           context 'when roadmaps_sort is present' do
             it 'update roadmaps_sort with current value' do
-              user.user_preference.update(roadmaps_sort: 'created_desc')
+              user.user_preference.update!(roadmaps_sort: 'created_desc')
 
               get :show, params: { group_id: group, sort: 'start_date_asc' }
 
diff --git a/ee/spec/controllers/groups/sso_controller_spec.rb b/ee/spec/controllers/groups/sso_controller_spec.rb
index 8bf5ec6d59191..60ae202e57039 100644
--- a/ee/spec/controllers/groups/sso_controller_spec.rb
+++ b/ee/spec/controllers/groups/sso_controller_spec.rb
@@ -92,7 +92,7 @@
     end
 
     context 'when group has moved' do
-      let(:redirect_route) { group.redirect_routes.create(path: 'old-path') }
+      let(:redirect_route) { group.redirect_routes.create!(path: 'old-path') }
 
       it 'redirects to new location' do
         get :saml, params: { group_id: redirect_route.path }
@@ -193,7 +193,7 @@
 
       context 'and group managed accounts enforcing is disabled' do
         before do
-          saml_provider.update(enforced_group_managed_accounts: false)
+          saml_provider.update!(enforced_group_managed_accounts: false)
         end
 
         it 'renders 404' do
-- 
GitLab