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 34 content_type: 'text/html',
35 35 to: user.email,
36 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 40 end
  41 +
  42 + class Job < Struct.new(:user, :method)
  43 + def perform
  44 + UserMailer.send(method, user).deliver
  45 + end
  46 + end
40 47 end
... ...
app/models/user.rb
... ... @@ -113,7 +113,7 @@ class User &lt; ActiveRecord::Base
113 113 false
114 114 else
115 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 117 end
118 118 true
119 119 end
... ...
test/unit/user_test.rb
... ... @@ -517,9 +517,8 @@ class UserTest &lt; ActiveSupport::TestCase
517 517 end
518 518  
519 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 522 end
524 523  
525 524 should 'deactivate an user' do
... ... @@ -605,6 +604,7 @@ class UserTest &lt; ActiveSupport::TestCase
605 604 user = new_user :email => 'pending@activation.com'
606 605 assert_difference 'ActionMailer::Base.deliveries.size', 1 do
607 606 user.activate
  607 + process_delayed_job_queue
608 608 end
609 609  
610 610 sent = ActionMailer::Base.deliveries.last
... ... @@ -623,6 +623,7 @@ class UserTest &lt; ActiveSupport::TestCase
623 623 user = new_user :name => 'John Doe', :email => 'pending@activation.com'
624 624 assert_difference 'ActionMailer::Base.deliveries.size', 1 do
625 625 user.activate
  626 + process_delayed_job_queue
626 627 end
627 628  
628 629 sent = ActionMailer::Base.deliveries.last
... ...