aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/active_job/parameters.rb2
-rw-r--r--test/cases/parameters_test.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/active_job/parameters.rb b/lib/active_job/parameters.rb
index 75de5bcae7..5f814f846d 100644
--- a/lib/active_job/parameters.rb
+++ b/lib/active_job/parameters.rb
@@ -3,7 +3,7 @@ require 'active_support/core_ext/object/try'
module ActiveJob
class Parameters
- TYPE_WHITELIST = [NilClass, Fixnum, Float, String, TrueClass, FalseClass, Hash, Array]
+ TYPE_WHITELIST = [NilClass, Fixnum, Float, String, TrueClass, FalseClass, Hash, Array, Bignum]
def self.serialize(params)
params.collect do |param|
diff --git a/test/cases/parameters_test.rb b/test/cases/parameters_test.rb
index 3fbdf8adee..fb0b920c6e 100644
--- a/test/cases/parameters_test.rb
+++ b/test/cases/parameters_test.rb
@@ -8,6 +8,16 @@ class ParameterSerializationTest < ActiveSupport::TestCase
end
test 'should not allow complex objects' do
+ assert_equal [ nil ], ActiveJob::Parameters.serialize([ nil ])
+ assert_equal [ 1 ], ActiveJob::Parameters.serialize([ 1 ])
+ assert_equal [ 1.0 ], ActiveJob::Parameters.serialize([ 1.0 ])
+ assert_equal [ 'a' ], ActiveJob::Parameters.serialize([ 'a' ])
+ assert_equal [ true ], ActiveJob::Parameters.serialize([ true ])
+ assert_equal [ false ], ActiveJob::Parameters.serialize([ false ])
+ assert_equal [ { a: 1 } ], ActiveJob::Parameters.serialize([ { a: 1 } ])
+ assert_equal [ [ 1 ] ], ActiveJob::Parameters.serialize([ [ 1 ] ])
+ assert_equal [ 1_000_000_000_000_000_000_000 ], ActiveJob::Parameters.serialize([ 1_000_000_000_000_000_000_000 ])
+
err = assert_raises RuntimeError do
ActiveJob::Parameters.serialize([ 1, self ])
end