mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Restore HWIA support to AJ::Arguments.deserialize
Restore HashWithIndifferentAccess support to ActiveJob::Arguments.deserialize.
This commit is contained in:
parent
6b23b7e78c
commit
1f7bd2a171
3 changed files with 13 additions and 1 deletions
|
@ -1,3 +1,7 @@
|
|||
* Restore HashWithIndifferentAccess support to ActiveJob::Arguments.deserialize.
|
||||
|
||||
*Gannon McGibbon*
|
||||
|
||||
* Include deserialized arguments in job instances returned from
|
||||
`assert_enqueued_with` and `assert_performed_with`
|
||||
|
||||
|
|
|
@ -147,7 +147,10 @@ module ActiveJob
|
|||
end
|
||||
|
||||
def transform_symbol_keys(hash, symbol_keys)
|
||||
hash.transform_keys do |key|
|
||||
# NOTE: HashWithIndifferentAccess#transform_keys always
|
||||
# returns stringified keys with indifferent access
|
||||
# so we call #to_h here to ensure keys are symbolized.
|
||||
hash.to_h.transform_keys do |key|
|
||||
if symbol_keys.include?(key)
|
||||
key.to_sym
|
||||
else
|
||||
|
|
|
@ -73,6 +73,7 @@ class ArgumentSerializationTest < ActiveSupport::TestCase
|
|||
string_key = { "a" => 1, "_aj_symbol_keys" => [] }
|
||||
another_string_key = { "a" => 1 }
|
||||
indifferent_access = { "a" => 1, "_aj_hash_with_indifferent_access" => true }
|
||||
indifferent_access_symbol_key = symbol_key.with_indifferent_access
|
||||
|
||||
assert_equal(
|
||||
{ a: 1 },
|
||||
|
@ -90,6 +91,10 @@ class ArgumentSerializationTest < ActiveSupport::TestCase
|
|||
{ "a" => 1 },
|
||||
ActiveJob::Arguments.deserialize([indifferent_access]).first
|
||||
)
|
||||
assert_equal(
|
||||
{ a: 1 },
|
||||
ActiveJob::Arguments.deserialize([indifferent_access_symbol_key]).first
|
||||
)
|
||||
end
|
||||
|
||||
test "should maintain hash with indifferent access" do
|
||||
|
|
Loading…
Reference in a new issue