Commit 0e46219fe711ca8d8bb5633eb068982dabdc6c11
1 parent
a0b2a343
Exists in
master
and in
29 other branches
rails3: fix user unit tests
Change the way of sending signup mail
Showing
3 changed files
with
13 additions
and
5 deletions
Show diff stats
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 < 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 < 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 < 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 < 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 | ... | ... |