Merge pull request #37608 from...

Merge pull request #37608 from bogdanvlviv/fix-assertions-for-mail-with-legacy-parameterized-delivery-job

Fix ActionMailer assertions don't work for parameterized mail with legacy delivery job
上级 603fa5fa
* Fix ActionMailer assertions don't work for parameterized mail with legacy delivery job.
*bogdanvlviv*
## Rails 6.0.0 (August 16, 2019) ##
* No changes.
......
......@@ -156,7 +156,8 @@ def assert_no_enqueued_emails(&block)
def delivery_job_filter(job)
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
......@@ -206,6 +206,20 @@ def test_assert_enqueued_emails
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
assert_nothing_raised do
assert_enqueued_emails 1 do
......@@ -216,6 +230,20 @@ def test_assert_enqueued_parameterized_emails
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
error = assert_raise ActiveSupport::TestCase::Assertion do
assert_enqueued_emails 2 do
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册