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) ## ## Rails 6.0.0 (August 16, 2019) ##
* No changes. * No changes.
......
...@@ -156,7 +156,8 @@ def assert_no_enqueued_emails(&block) ...@@ -156,7 +156,8 @@ def assert_no_enqueued_emails(&block)
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 @@ def test_assert_enqueued_emails ...@@ -206,6 +206,20 @@ def test_assert_enqueued_emails
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 @@ def test_assert_enqueued_parameterized_emails ...@@ -216,6 +230,20 @@ def test_assert_enqueued_parameterized_emails
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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册