From aabb466e5b35477b39cc57642083df361cd5d112 Mon Sep 17 00:00:00 2001
From: Douglas Barbosa Alexandre <dbalexandre@gmail.com>
Date: Mon, 11 Apr 2016 19:54:13 -0300
Subject: [PATCH] Improve specs for group/project notification controller

---
 .../notification_settings_controller_spec.rb  | 17 +++++++-
 .../notification_settings_controller_spec.rb  | 39 ++++++++++++++++++-
 2 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/spec/controllers/groups/notification_settings_controller_spec.rb b/spec/controllers/groups/notification_settings_controller_spec.rb
index 3572535d61c..0786e45515a 100644
--- a/spec/controllers/groups/notification_settings_controller_spec.rb
+++ b/spec/controllers/groups/notification_settings_controller_spec.rb
@@ -2,16 +2,31 @@ require 'spec_helper'
 
 describe Groups::NotificationSettingsController do
   let(:group) { create(:group) }
+  let(:user) { create(:user) }
 
   describe '#update' do
     context 'when not authorized' do
       it 'redirects to sign in page' do
         put :update,
             group_id: group.to_param,
-            notification_setting: { level: NotificationSetting.levels[:participating] }
+            notification_setting: { level: :participating }
 
         expect(response).to redirect_to(new_user_session_path)
       end
     end
+
+    context 'when authorized' do
+      before do
+        sign_in(user)
+      end
+
+      it 'returns success' do
+        put :update,
+            group_id: group.to_param,
+            notification_setting: { level: :participating }
+
+        expect(response.status).to eq 200
+      end
+    end
   end
 end
diff --git a/spec/controllers/projects/notification_settings_controller_spec.rb b/spec/controllers/projects/notification_settings_controller_spec.rb
index 7e32a75b812..385877a26df 100644
--- a/spec/controllers/projects/notification_settings_controller_spec.rb
+++ b/spec/controllers/projects/notification_settings_controller_spec.rb
@@ -2,6 +2,11 @@ require 'spec_helper'
 
 describe Projects::NotificationSettingsController do
   let(:project) { create(:empty_project) }
+  let(:user) { create(:user) }
+
+  before do
+    project.team << [user, :developer]
+  end
 
   describe '#create' do
     context 'when not authorized' do
@@ -9,11 +14,26 @@ describe Projects::NotificationSettingsController do
         post :create,
              namespace_id: project.namespace.to_param,
              project_id: project.to_param,
-             notification_setting: { level: NotificationSetting.levels[:participating] }
+             notification_setting: { level: :participating }
 
         expect(response).to redirect_to(new_user_session_path)
       end
     end
+
+    context 'when authorized' do
+      before do
+        sign_in(user)
+      end
+
+      it 'returns success' do
+        post :create,
+            namespace_id: project.namespace.to_param,
+            project_id: project.to_param,
+            notification_setting: { level: :participating }
+
+        expect(response.status).to eq 200
+      end
+    end
   end
 
   describe '#update' do
@@ -22,10 +42,25 @@ describe Projects::NotificationSettingsController do
         put :update,
             namespace_id: project.namespace.to_param,
             project_id: project.to_param,
-            notification_setting: { level: NotificationSetting.levels[:participating] }
+            notification_setting: { level: :participating }
 
         expect(response).to redirect_to(new_user_session_path)
       end
     end
+
+    context 'when authorized' do
+      before do
+        sign_in(user)
+      end
+
+      it 'returns success' do
+        put :update,
+            namespace_id: project.namespace.to_param,
+            project_id: project.to_param,
+            notification_setting: { level: :participating }
+
+        expect(response.status).to eq 200
+      end
+    end
   end
 end
-- 
GitLab