mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fix ActionMailer assertions don't work for parameterized mail with legacy delivery job
We should backport this to `6-0-stable`. Fixes https://github.com/rails/rails/issues/37605
This commit is contained in:
parent
0097b24bb2
commit
37b72ff5de
3 changed files with 34 additions and 1 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
* Fix ActionMailer assertions don't work for parameterized mail with legacy delivery job.
|
||||||
|
|
||||||
|
*bogdanvlviv*
|
||||||
|
|
||||||
* Added `email_address_with_name` to properly escape addresses with names.
|
* Added `email_address_with_name` to properly escape addresses with names.
|
||||||
|
|
||||||
*Sunny Ripert*
|
*Sunny Ripert*
|
||||||
|
|
|
@ -155,7 +155,8 @@ module ActionMailer
|
||||||
def delivery_job_filter(job)
|
def delivery_job_filter(job)
|
||||||
job_class = job.is_a?(Hash) ? job.fetch(:job) : job.class
|
job_class = job.is_a?(Hash) ? job.fetch(:job) : job.class
|
||||||
|
|
||||||
Base.descendants.map(&:delivery_job).include?(job_class)
|
Base.descendants.map(&:delivery_job).include?(job_class) ||
|
||||||
|
ActionMailer::Parameterized::DeliveryJob == job_class
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -206,6 +206,20 @@ class TestHelperMailerTest < ActionMailer::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_assert_enqueued_emails_with_legacy_delivery_job
|
||||||
|
previous_delivery_job = TestHelperMailer.delivery_job
|
||||||
|
TestHelperMailer.delivery_job = ActionMailer::DeliveryJob
|
||||||
|
assert_nothing_raised do
|
||||||
|
assert_enqueued_emails 1 do
|
||||||
|
silence_stream($stdout) do
|
||||||
|
TestHelperMailer.test.deliver_later
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
ensure
|
||||||
|
TestHelperMailer.delivery_job = previous_delivery_job
|
||||||
|
end
|
||||||
|
|
||||||
def test_assert_enqueued_parameterized_emails
|
def test_assert_enqueued_parameterized_emails
|
||||||
assert_nothing_raised do
|
assert_nothing_raised do
|
||||||
assert_enqueued_emails 1 do
|
assert_enqueued_emails 1 do
|
||||||
|
@ -216,6 +230,20 @@ class TestHelperMailerTest < ActionMailer::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_assert_enqueued_parameterized_emails_with_legacy_delivery_job
|
||||||
|
previous_delivery_job = TestHelperMailer.delivery_job
|
||||||
|
TestHelperMailer.delivery_job = ActionMailer::DeliveryJob
|
||||||
|
assert_nothing_raised do
|
||||||
|
assert_enqueued_emails 1 do
|
||||||
|
silence_stream($stdout) do
|
||||||
|
TestHelperMailer.with(a: 1).test.deliver_later
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
ensure
|
||||||
|
TestHelperMailer.delivery_job = previous_delivery_job
|
||||||
|
end
|
||||||
|
|
||||||
def test_assert_enqueued_emails_too_few_sent
|
def test_assert_enqueued_emails_too_few_sent
|
||||||
error = assert_raise ActiveSupport::TestCase::Assertion do
|
error = assert_raise ActiveSupport::TestCase::Assertion do
|
||||||
assert_enqueued_emails 2 do
|
assert_enqueued_emails 2 do
|
||||||
|
|
Loading…
Reference in a new issue