Commit 0e46219fe711ca8d8bb5633eb068982dabdc6c11
1 parent
a0b2a343
Exists in
staging
and in
42 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 | ... | ... |