1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Make assert_enqueued_emails + assert_no_enqueued_emails consider parameterized delivery jobs

Needed for testing of parameterized mailers
This commit is contained in:
David Heinemeier Hansson 2017-01-30 13:41:08 +01:00
parent 6b7bfece37
commit d5651436d6
2 changed files with 20 additions and 2 deletions

View file

@ -88,7 +88,7 @@ module ActionMailer
# end
# end
def assert_enqueued_emails(number, &block)
assert_enqueued_jobs number, only: ActionMailer::DeliveryJob, &block
assert_enqueued_jobs number, only: [ ActionMailer::DeliveryJob, ActionMailer::Parameterized::DeliveryJob ], &block
end
# Asserts that no emails are enqueued for later delivery.
@ -107,7 +107,7 @@ module ActionMailer
# end
# end
def assert_no_enqueued_emails(&block)
assert_no_enqueued_jobs only: ActionMailer::DeliveryJob, &block
assert_no_enqueued_jobs only: [ ActionMailer::DeliveryJob, ActionMailer::Parameterized::DeliveryJob ], &block
end
end
end

View file

@ -143,6 +143,16 @@ class TestHelperMailerTest < ActionMailer::TestCase
end
end
def test_assert_enqueued_parameterized_emails
assert_nothing_raised do
assert_enqueued_emails 1 do
silence_stream($stdout) do
TestHelperMailer.with(a: 1).test.deliver_later
end
end
end
end
def test_assert_enqueued_emails_too_few_sent
error = assert_raise ActiveSupport::TestCase::Assertion do
assert_enqueued_emails 2 do
@ -176,6 +186,14 @@ class TestHelperMailerTest < ActionMailer::TestCase
end
end
def test_assert_no_enqueued_parameterized_emails
assert_nothing_raised do
assert_no_enqueued_emails do
TestHelperMailer.with(a: 1).test.deliver_now
end
end
end
def test_assert_no_enqueued_emails_failure
error = assert_raise ActiveSupport::TestCase::Assertion do
assert_no_enqueued_emails do