From 0e46219fe711ca8d8bb5633eb068982dabdc6c11 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Mon, 3 Feb 2014 18:24:18 -0300 Subject: [PATCH] rails3: fix user unit tests --- app/mailers/user_mailer.rb | 9 ++++++++- app/models/user.rb | 2 +- test/unit/user_test.rb | 7 ++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index b947043..ce48649 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -34,7 +34,14 @@ class UserMailer < ActionMailer::Base content_type: 'text/html', to: user.email, from: "#{user.environment.name} <#{user.environment.contact_email}>", - subject: email_subject.blank? ? _("Welcome to environment %s") % [user.environment.name] : email_subject + subject: email_subject.blank? ? _("Welcome to environment %s") % [user.environment.name] : email_subject, + body: @body ) end + + class Job < Struct.new(:user, :method) + def perform + UserMailer.send(method, user).deliver + end + end end diff --git a/app/models/user.rb b/app/models/user.rb index 8f7cc7f..00c82d4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -113,7 +113,7 @@ class User < ActiveRecord::Base false else if environment.enabled?('send_welcome_email_to_new_users') && environment.has_signup_welcome_text? - UserMailer.delay.signup_welcome_email(self) + Delayed::Job.enqueue(UserMailer::Job.new(self, :signup_welcome_email)) end true end diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index c3ca32f..917da25 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -517,9 +517,8 @@ class UserTest < ActiveSupport::TestCase end should 'delay activation check' do - assert_difference 'Delayed::Job.count', 1 do - user = new_user - end + user = new_user + assert_match /UserActivationJob/, Delayed::Job.last.handler end should 'deactivate an user' do @@ -605,6 +604,7 @@ class UserTest < ActiveSupport::TestCase user = new_user :email => 'pending@activation.com' assert_difference 'ActionMailer::Base.deliveries.size', 1 do user.activate + process_delayed_job_queue end sent = ActionMailer::Base.deliveries.last @@ -623,6 +623,7 @@ class UserTest < ActiveSupport::TestCase user = new_user :name => 'John Doe', :email => 'pending@activation.com' assert_difference 'ActionMailer::Base.deliveries.size', 1 do user.activate + process_delayed_job_queue end sent = ActionMailer::Base.deliveries.last -- libgit2 0.21.2