Commit 0e46219fe711ca8d8bb5633eb068982dabdc6c11

Authored by Victor Costa
1 parent a0b2a343

rails3: fix user unit tests

Change the way of sending signup mail
app/mailers/user_mailer.rb
@@ -34,7 +34,14 @@ class UserMailer < ActionMailer::Base @@ -34,7 +34,14 @@ class UserMailer < ActionMailer::Base
34 content_type: 'text/html', 34 content_type: 'text/html',
35 to: user.email, 35 to: user.email,
36 from: "#{user.environment.name} <#{user.environment.contact_email}>", 36 from: "#{user.environment.name} <#{user.environment.contact_email}>",
37 - subject: email_subject.blank? ? _("Welcome to environment %s") % [user.environment.name] : email_subject 37 + subject: email_subject.blank? ? _("Welcome to environment %s") % [user.environment.name] : email_subject,
  38 + body: @body
38 ) 39 )
39 end 40 end
  41 +
  42 + class Job < Struct.new(:user, :method)
  43 + def perform
  44 + UserMailer.send(method, user).deliver
  45 + end
  46 + end
40 end 47 end
app/models/user.rb
@@ -113,7 +113,7 @@ class User &lt; ActiveRecord::Base @@ -113,7 +113,7 @@ class User &lt; ActiveRecord::Base
113 false 113 false
114 else 114 else
115 if environment.enabled?('send_welcome_email_to_new_users') && environment.has_signup_welcome_text? 115 if environment.enabled?('send_welcome_email_to_new_users') && environment.has_signup_welcome_text?
116 - UserMailer.delay.signup_welcome_email(self) 116 + Delayed::Job.enqueue(UserMailer::Job.new(self, :signup_welcome_email))
117 end 117 end
118 true 118 true
119 end 119 end
test/unit/user_test.rb
@@ -517,9 +517,8 @@ class UserTest &lt; ActiveSupport::TestCase @@ -517,9 +517,8 @@ class UserTest &lt; ActiveSupport::TestCase
517 end 517 end
518 518
519 should 'delay activation check' do 519 should 'delay activation check' do
520 - assert_difference 'Delayed::Job.count', 1 do  
521 - user = new_user  
522 - end 520 + user = new_user
  521 + assert_match /UserActivationJob/, Delayed::Job.last.handler
523 end 522 end
524 523
525 should 'deactivate an user' do 524 should 'deactivate an user' do
@@ -605,6 +604,7 @@ class UserTest &lt; ActiveSupport::TestCase @@ -605,6 +604,7 @@ class UserTest &lt; ActiveSupport::TestCase
605 user = new_user :email => 'pending@activation.com' 604 user = new_user :email => 'pending@activation.com'
606 assert_difference 'ActionMailer::Base.deliveries.size', 1 do 605 assert_difference 'ActionMailer::Base.deliveries.size', 1 do
607 user.activate 606 user.activate
  607 + process_delayed_job_queue
608 end 608 end
609 609
610 sent = ActionMailer::Base.deliveries.last 610 sent = ActionMailer::Base.deliveries.last
@@ -623,6 +623,7 @@ class UserTest &lt; ActiveSupport::TestCase @@ -623,6 +623,7 @@ class UserTest &lt; ActiveSupport::TestCase
623 user = new_user :name => 'John Doe', :email => 'pending@activation.com' 623 user = new_user :name => 'John Doe', :email => 'pending@activation.com'
624 assert_difference 'ActionMailer::Base.deliveries.size', 1 do 624 assert_difference 'ActionMailer::Base.deliveries.size', 1 do
625 user.activate 625 user.activate
  626 + process_delayed_job_queue
626 end 627 end
627 628
628 sent = ActionMailer::Base.deliveries.last 629 sent = ActionMailer::Base.deliveries.last