Make sure that mailers will use default job queue
Use "default" as default queue for mailers test helpers
This commit is contained in:
parent
432698ef2b
commit
7d7bd2bfba
|
@ -123,13 +123,13 @@ module ActionMailer
|
||||||
# ContactMailer.with(email: 'user@example.com').welcome.deliver_later
|
# ContactMailer.with(email: 'user@example.com').welcome.deliver_later
|
||||||
# end
|
# end
|
||||||
# end
|
# end
|
||||||
def assert_enqueued_email_with(mailer, method, args: nil, queue: "mailers", &block)
|
def assert_enqueued_email_with(mailer, method, args: nil, queue: ActionMailer::Base.deliver_later_queue_name || "default", &block)
|
||||||
args = if args.is_a?(Hash)
|
args = if args.is_a?(Hash)
|
||||||
[mailer.to_s, method.to_s, "deliver_now", params: args, args: []]
|
[mailer.to_s, method.to_s, "deliver_now", params: args, args: []]
|
||||||
else
|
else
|
||||||
[mailer.to_s, method.to_s, "deliver_now", args: Array(args)]
|
[mailer.to_s, method.to_s, "deliver_now", args: Array(args)]
|
||||||
end
|
end
|
||||||
assert_enqueued_with(job: mailer.delivery_job, args: args, queue: queue, &block)
|
assert_enqueued_with(job: mailer.delivery_job, args: args, queue: queue.to_s, &block)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Asserts that no emails are enqueued for later delivery.
|
# Asserts that no emails are enqueued for later delivery.
|
||||||
|
|
|
@ -34,6 +34,14 @@ end
|
||||||
class TestHelperMailerTest < ActionMailer::TestCase
|
class TestHelperMailerTest < ActionMailer::TestCase
|
||||||
include ActiveSupport::Testing::Stream
|
include ActiveSupport::Testing::Stream
|
||||||
|
|
||||||
|
setup do
|
||||||
|
@previous_deliver_later_queue_name = ActionMailer::Base.deliver_later_queue_name
|
||||||
|
end
|
||||||
|
|
||||||
|
teardown do
|
||||||
|
ActionMailer::Base.deliver_later_queue_name = @previous_delivery_method
|
||||||
|
end
|
||||||
|
|
||||||
def test_setup_sets_right_action_mailer_options
|
def test_setup_sets_right_action_mailer_options
|
||||||
assert_equal :test, ActionMailer::Base.delivery_method
|
assert_equal :test, ActionMailer::Base.delivery_method
|
||||||
assert ActionMailer::Base.perform_deliveries
|
assert ActionMailer::Base.perform_deliveries
|
||||||
|
@ -317,6 +325,54 @@ class TestHelperMailerTest < ActionMailer::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_assert_enqueued_email_with_when_deliver_later_queue_name_is_nil
|
||||||
|
ActionMailer::Base.deliver_later_queue_name = nil
|
||||||
|
|
||||||
|
assert_nothing_raised do
|
||||||
|
assert_enqueued_email_with TestHelperMailer, :test do
|
||||||
|
silence_stream($stdout) do
|
||||||
|
TestHelperMailer.test.deliver_later
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_assert_enqueued_email_with_when_deliver_later_queue_name_with_non_default_name
|
||||||
|
ActionMailer::Base.deliver_later_queue_name = "sample_mailer_queue_name"
|
||||||
|
|
||||||
|
assert_nothing_raised do
|
||||||
|
assert_enqueued_email_with TestHelperMailer, :test do
|
||||||
|
silence_stream($stdout) do
|
||||||
|
TestHelperMailer.test.deliver_later
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_assert_enqueued_email_with_when_deliver_later_queue_name_is_symbol
|
||||||
|
ActionMailer::Base.deliver_later_queue_name = :mailers
|
||||||
|
|
||||||
|
assert_nothing_raised do
|
||||||
|
assert_enqueued_email_with TestHelperMailer, :test do
|
||||||
|
silence_stream($stdout) do
|
||||||
|
TestHelperMailer.test.deliver_later
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_assert_enqueued_email_with_when_queue_arg_is_symbol
|
||||||
|
ActionMailer::Base.deliver_later_queue_name = "mailers"
|
||||||
|
|
||||||
|
assert_nothing_raised do
|
||||||
|
assert_enqueued_email_with TestHelperMailer, :test, queue: :mailers do
|
||||||
|
silence_stream($stdout) do
|
||||||
|
TestHelperMailer.test.deliver_later
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_assert_enqueued_email_with_when_mailer_has_custom_delivery_job
|
def test_assert_enqueued_email_with_when_mailer_has_custom_delivery_job
|
||||||
assert_nothing_raised do
|
assert_nothing_raised do
|
||||||
assert_enqueued_email_with CustomDeliveryMailer, :test do
|
assert_enqueued_email_with CustomDeliveryMailer, :test do
|
||||||
|
|
Loading…
Reference in New Issue