Commit 0e46219fe711ca8d8bb5633eb068982dabdc6c11
1 parent
a0b2a343
Exists in
master
and in
27 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,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 < ActiveRecord::Base | @@ -113,7 +113,7 @@ class User < 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 < ActiveSupport::TestCase | @@ -517,9 +517,8 @@ class UserTest < 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 < ActiveSupport::TestCase | @@ -605,6 +604,7 @@ class UserTest < 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 < ActiveSupport::TestCase | @@ -623,6 +623,7 @@ class UserTest < 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 |