Remove deprecated params via :args for assert_enqueued_email_with

This commit is contained in:
Rafael Mendonça França 2023-10-12 17:22:29 +00:00
parent 2bd6cf5177
commit 992a126c6e
No known key found for this signature in database
GPG Key ID: FC23B6D0F1EEE948
4 changed files with 10 additions and 28 deletions

@ -1,3 +1,7 @@
* Remove deprecated params via `:args` for `assert_enqueued_email_with`.
*Rafael Mendonça França*
* Remove deprecated `config.action_mailer.preview_path`.
*Rafael Mendonça França*

@ -160,26 +160,6 @@ def assert_enqueued_email_with(mailer, method, params: nil, args: nil, queue: ni
mailer = mailer.instance_variable_get(:@mailer)
end
if args.is_a?(Hash)
ActionMailer.deprecator.warn <<~MSG
Passing a Hash to the assert_enqueued_email_with :args kwarg causes the
Hash to be treated as params. This behavior is deprecated and will be
removed in Rails 7.2.
To specify a params Hash, use the :params kwarg:
assert_enqueued_email_with MyMailer, :my_method, params: { my_param: "value" }
Or, to specify named mailer args as a Hash, wrap the Hash in an array:
assert_enqueued_email_with MyMailer, :my_method, args: [{ my_arg: "value" }]
# OR
assert_enqueued_email_with MyMailer, :my_method, args: [my_arg: "value"]
MSG
params, args = args, nil
end
args = Array(args) unless args.is_a?(Proc)
queue ||= mailer.deliver_later_queue_name || ActiveJob::Base.default_queue_name

@ -432,15 +432,13 @@ def test_assert_enqueued_email_with_with_no_block_with_args
def test_assert_enqueued_email_with_with_parameterized_args
assert_nothing_raised do
assert_deprecated(ActionMailer.deprecator) do
assert_enqueued_email_with TestHelperMailer, :test_parameter_args, args: { all: "good" } do
assert_enqueued_email_with TestHelperMailer, :test_parameter_args, params: { all: "good" } do
silence_stream($stdout) do
TestHelperMailer.with(all: "good").test_parameter_args.deliver_later
end
end
end
end
end
def test_assert_enqueued_email_with_with_parameterized_mailer
assert_nothing_raised do
@ -487,9 +485,7 @@ def test_assert_enqueued_email_with_with_no_block_with_parameterized_args
silence_stream($stdout) do
TestHelperMailer.with(all: "good").test_parameter_args.deliver_later
end
assert_deprecated(ActionMailer.deprecator) do
assert_enqueued_email_with TestHelperMailer, :test_parameter_args, args: { all: "good" }
end
assert_enqueued_email_with TestHelperMailer, :test_parameter_args, params: { all: "good" }
end
end

@ -74,6 +74,8 @@ Please refer to the [Changelog][action-mailer] for detailed changes.
* Remove deprecated `config.action_mailer.preview_path`.
* Remove deprecated params via `:args` for `assert_enqueued_email_with`.
### Deprecations
### Notable changes