OSDN Git Service

Disable mailer for spinach
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Thu, 11 Apr 2013 20:54:20 +0000 (23:54 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Thu, 11 Apr 2013 20:54:20 +0000 (23:54 +0300)
app/services/notification_service.rb
spec/support/test_env.rb

index 4b3c982..379d2c5 100644 (file)
@@ -13,7 +13,7 @@ class NotificationService
   # even if user disabled notifications
   def new_key(key)
     if key.user
-      Notify.delay.new_ssh_key_email(key.id)
+      mailer.new_ssh_key_email(key.id)
     end
   end
 
@@ -84,14 +84,14 @@ class NotificationService
     recipients = recipients.concat(project_watchers(merge_request.project)).uniq
 
     recipients.each do |recipient|
-      Notify.delay.merged_merge_request_email(recipient.id, merge_request.id)
+      mailer.merged_merge_request_email(recipient.id, merge_request.id)
     end
   end
 
   # Notify new user with email after creation
   def new_user(user)
     # Dont email omniauth created users
-    Notify.delay.new_user_email(user.id, user.password) unless user.extern_uid?
+    mailer.new_user_email(user.id, user.password) unless user.extern_uid?
   end
 
   # Notify users on new note in system
@@ -131,16 +131,16 @@ class NotificationService
     notify_method = "note_#{note.noteable_type.underscore}_email".to_sym
 
     recipients.each do |recipient|
-      Notify.delay.send(notify_method, recipient.id, note.id)
+      mailer.send(notify_method, recipient.id, note.id)
     end
   end
 
   def new_team_member(users_project)
-    Notify.delay.project_access_granted_email(users_project.id)
+    mailer.project_access_granted_email(users_project.id)
   end
 
   def update_team_member(users_project)
-    Notify.delay.project_access_granted_email(users_project.id)
+    mailer.project_access_granted_email(users_project.id)
   end
 
   protected
@@ -186,7 +186,7 @@ class NotificationService
     recipients.delete(target.author)
 
     recipients.each do |recipient|
-      Notify.delay.send(method, recipient.id, target.id)
+      mailer.send(method, recipient.id, target.id)
     end
   end
 
@@ -196,7 +196,7 @@ class NotificationService
     recipients.delete(current_user)
 
     recipients.each do |recipient|
-      Notify.delay.send(method, recipient.id, target.id, current_user.id)
+      mailer.send(method, recipient.id, target.id, current_user.id)
     end
   end
 
@@ -213,7 +213,11 @@ class NotificationService
     recipients.delete(current_user)
 
     recipients.each do |recipient|
-      Notify.delay.send(method, recipient.id, target.id, target.assignee_id_was)
+      mailer.send(method, recipient.id, target.id, target.assignee_id_was)
     end
   end
+
+  def mailer
+    Notify.delay
+  end
 end
index 175698a..8a2e004 100644 (file)
@@ -1,3 +1,5 @@
+require 'rspec/mocks'
+
 module TestEnv
   extend self
 
@@ -13,6 +15,8 @@ module TestEnv
   # -  remove_key
   #
   def init(opts = {})
+    RSpec::Mocks::setup(self)
+
     # Disable observers to improve test speed
     #
     # You can enable it in whole test case where needed by next string:
@@ -82,6 +86,6 @@ module TestEnv
   end
 
   def disable_mailer
-    ActionMailer::Base.perform_deliveries = false
+    NotificationService.any_instance.stub(mailer: double.as_null_object)
   end
 end