diff options
author | George Claghorn <george.claghorn@gmail.com> | 2015-01-08 09:41:22 -0500 |
---|---|---|
committer | George Claghorn <george.claghorn@gmail.com> | 2015-01-08 09:41:22 -0500 |
commit | 3f17fbd68d17e9e51fbd39be772cec9f176ac08f (patch) | |
tree | fa56fcc84dee2a958c01bcd300fea756c6296e35 /actionmailer/lib | |
parent | 91e31e82feaf0ba7609c02b1a3508f0506214404 (diff) | |
download | rails-3f17fbd68d17e9e51fbd39be772cec9f176ac08f.tar.gz rails-3f17fbd68d17e9e51fbd39be772cec9f176ac08f.tar.bz2 rails-3f17fbd68d17e9e51fbd39be772cec9f176ac08f.zip |
Add assert_enqueued_emails and assert_no_enqueued_emails
Diffstat (limited to 'actionmailer/lib')
-rw-r--r-- | actionmailer/lib/action_mailer/test_helper.rb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/actionmailer/lib/action_mailer/test_helper.rb b/actionmailer/lib/action_mailer/test_helper.rb index 6ddacf7b79..524e6e3af1 100644 --- a/actionmailer/lib/action_mailer/test_helper.rb +++ b/actionmailer/lib/action_mailer/test_helper.rb @@ -1,7 +1,11 @@ +require 'active_job' + module ActionMailer # Provides helper methods for testing Action Mailer, including #assert_emails # and #assert_no_emails module TestHelper + include ActiveJob::TestHelper + # Asserts that the number of emails sent matches the given number. # # def test_emails @@ -58,5 +62,52 @@ module ActionMailer def assert_no_emails(&block) assert_emails 0, &block end + + # Asserts that the number of emails enqueued for later delivery matches + # the given number. + # + # def test_emails + # assert_enqueued_emails 0 + # ContactMailer.welcome.deliver_later + # assert_enqueued_emails 1 + # ContactMailer.welcome.deliver_later + # assert_enqueued_emails 2 + # end + # + # If a block is passed, that block should cause the specified number of + # emails to be enqueued. + # + # def test_emails_again + # assert_enqueued_emails 1 do + # ContactMailer.welcome.deliver_later + # end + # + # assert_enqueued_emails 2 do + # ContactMailer.welcome.deliver_later + # ContactMailer.welcome.deliver_later + # end + # end + def assert_enqueued_emails(number, &block) + assert_enqueued_jobs number, only: ActionMailer::DeliveryJob, &block + end + + # Asserts that no emails are enqueued for later delivery. + # + # def test_no_emails + # assert_no_enqueued_emails + # ContactMailer.welcome.deliver_later + # assert_enqueued_emails 1 + # end + # + # If a block is provided, it should not cause any emails to be enqueued. + # + # def test_no_emails + # assert_no_enqueued_emails do + # # No emails should be enqueued from this block + # end + # end + def assert_no_enqueued_emails(&block) + assert_no_enqueued_jobs only: ActionMailer::DeliveryJob, &block + end end end |