1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/actionmailer/test/legacy_delivery_job_test.rb
eileencodes 336a07b9a4
Revert "Remove deprecated ActionMailer::DeliveryJob and ActionMailer::Parameterized::DeliveryJob"
This reverts commit 0f9249c93f.

Reverted because this wasn't warning in custom jobs and therefore
applications may have not seen the deprecation. We'll need to fix the
deprecation to warn for custom jobs so that applications can migrate.
2020-05-12 15:20:07 -04:00

82 lines
2.2 KiB
Ruby

# frozen_string_literal: true
require "abstract_unit"
require "active_job"
require "mailers/params_mailer"
require "mailers/delayed_mailer"
class LegacyDeliveryJobTest < ActiveSupport::TestCase
include ActiveJob::TestHelper
class LegacyDeliveryJob < ActionMailer::DeliveryJob
end
setup do
@previous_logger = ActiveJob::Base.logger
ActiveJob::Base.logger = Logger.new(nil)
@previous_delivery_method = ActionMailer::Base.delivery_method
ActionMailer::Base.delivery_method = :test
@previous_deliver_later_queue_name = ActionMailer::Base.deliver_later_queue_name
ActionMailer::Base.deliver_later_queue_name = :test_queue
end
teardown do
ActiveJob::Base.logger = @previous_logger
ParamsMailer.deliveries.clear
ActionMailer::Base.delivery_method = @previous_delivery_method
ActionMailer::Base.deliver_later_queue_name = @previous_deliver_later_queue_name
end
test "should send parameterized mail correctly" do
mail = ParamsMailer.with(inviter: "david@basecamp.com", invitee: "jason@basecamp.com").invitation
args = [
"ParamsMailer",
"invitation",
"deliver_now",
{ inviter: "david@basecamp.com", invitee: "jason@basecamp.com" },
]
with_delivery_job(LegacyDeliveryJob) do
assert_deprecated do
assert_performed_with(job: ActionMailer::Parameterized::DeliveryJob, args: args) do
mail.deliver_later
end
end
end
end
test "should send mail correctly" do
mail = DelayedMailer.test_message(1, 2, 3)
args = [
"DelayedMailer",
"test_message",
"deliver_now",
1,
2,
3,
]
with_delivery_job(LegacyDeliveryJob) do
assert_deprecated do
assert_performed_with(job: LegacyDeliveryJob, args: args) do
mail.deliver_later
end
end
end
end
private
def with_delivery_job(job)
old_params_delivery_job = ParamsMailer.delivery_job
old_regular_delivery_job = DelayedMailer.delivery_job
ParamsMailer.delivery_job = job
DelayedMailer.delivery_job = job
yield
ensure
ParamsMailer.delivery_job = old_params_delivery_job
DelayedMailer.delivery_job = old_regular_delivery_job
end
end