aboutsummaryrefslogtreecommitdiffstats
path: root/actionmailer/test/parameterized_test.rb
diff options
context:
space:
mode:
authorGannon McGibbon <gannon.mcgibbon@gmail.com>2018-11-01 16:32:01 -0400
committerGannon McGibbon <gannon.mcgibbon@gmail.com>2018-11-22 18:37:53 -0500
commit60339da5bcb76489576321fa12e665f176d8d692 (patch)
tree882f3a076f9211924a9f4020e7d1729e1ab66543 /actionmailer/test/parameterized_test.rb
parent548bd509857ca5bba300915aa5ad9bff6e8c0238 (diff)
downloadrails-60339da5bcb76489576321fa12e665f176d8d692.tar.gz
rails-60339da5bcb76489576321fa12e665f176d8d692.tar.bz2
rails-60339da5bcb76489576321fa12e665f176d8d692.zip
Deliver parameterized mail with DeliveryJob
Deliver parameterized mail with `ActionMailer::DeliveryJob` and remove `ActionMailer::Parameterized::DeliveryJob`.
Diffstat (limited to 'actionmailer/test/parameterized_test.rb')
-rw-r--r--actionmailer/test/parameterized_test.rb38
1 files changed, 29 insertions, 9 deletions
diff --git a/actionmailer/test/parameterized_test.rb b/actionmailer/test/parameterized_test.rb
index d3b34fc3e3..3713dc3e3e 100644
--- a/actionmailer/test/parameterized_test.rb
+++ b/actionmailer/test/parameterized_test.rb
@@ -7,6 +7,9 @@ require "mailers/params_mailer"
class ParameterizedTest < ActiveSupport::TestCase
include ActiveJob::TestHelper
+ class DummyDeliveryJob < ActionMailer::DeliveryJob
+ end
+
setup do
@previous_logger = ActiveJob::Base.logger
ActiveJob::Base.logger = Logger.new(nil)
@@ -35,7 +38,13 @@ class ParameterizedTest < ActiveSupport::TestCase
end
test "enqueue the email with params" do
- assert_performed_with(job: ActionMailer::Parameterized::DeliveryJob, args: ["ParamsMailer", "invitation", "deliver_now", { inviter: "david@basecamp.com", invitee: "jason@basecamp.com" } ]) do
+ args = [
+ "ParamsMailer",
+ "invitation",
+ "deliver_now",
+ { inviter: "david@basecamp.com", invitee: "jason@basecamp.com" },
+ ]
+ assert_performed_with(job: ActionMailer::DeliveryJob, args: args) do
@mail.deliver_later
end
end
@@ -55,15 +64,26 @@ class ParameterizedTest < ActiveSupport::TestCase
end
test "should enqueue a parameterized request with the correct delivery job" do
- old_delivery_job = ParamsMailer.parameterized_delivery_job
- ParamsMailer.parameterized_delivery_job = ParameterizedDummyJob
-
- assert_performed_with(job: ParameterizedDummyJob, args: ["ParamsMailer", "invitation", "deliver_now", { inviter: "david@basecamp.com", invitee: "jason@basecamp.com" } ]) do
- @mail.deliver_later
+ args = [
+ "ParamsMailer",
+ "invitation",
+ "deliver_now",
+ { inviter: "david@basecamp.com", invitee: "jason@basecamp.com" },
+ ]
+
+ with_delivery_job DummyDeliveryJob do
+ assert_performed_with(job: DummyDeliveryJob, args: args) do
+ @mail.deliver_later
+ end
end
-
- ParamsMailer.parameterized_delivery_job = old_delivery_job
end
- class ParameterizedDummyJob < ActionMailer::Parameterized::DeliveryJob; end
+ private
+
+ def with_delivery_job(job)
+ old_delivery_job = ParamsMailer.delivery_job
+ ParamsMailer.delivery_job = job
+ ensure
+ ParamsMailer.delivery_job = old_delivery_job
+ end
end