Fixed serializing :at
option for assert_enqueued_with
and assert_performed_with
This commit is contained in:
parent
55ac94cec4
commit
6e0254e8d3
@ -1,3 +1,8 @@
|
||||
* Fixed serializing `:at` option for `assert_enqueued_with`
|
||||
and `assert_performed_with`
|
||||
|
||||
*Wojciech Wnętrzak*
|
||||
|
||||
* Support passing array to `assert_enqueued_jobs` in `:only` option.
|
||||
|
||||
*Wojciech Wnętrzak*
|
||||
|
@ -226,6 +226,10 @@ def assert_no_performed_jobs(only: nil, &block)
|
||||
# assert_enqueued_with(job: MyJob, args: [1,2,3], queue: 'low') do
|
||||
# MyJob.perform_later(1,2,3)
|
||||
# end
|
||||
#
|
||||
# assert_enqueued_with(job: MyJob, at: Date.tomorrow.noon) do
|
||||
# MyJob.set(wait_until: Date.tomorrow.noon).perform_later
|
||||
# end
|
||||
# end
|
||||
def assert_enqueued_with(args = {}, &_block)
|
||||
original_enqueued_jobs = enqueued_jobs.dup
|
||||
@ -248,6 +252,10 @@ def assert_enqueued_with(args = {}, &_block)
|
||||
# assert_performed_with(job: MyJob, args: [1,2,3], queue: 'high') do
|
||||
# MyJob.perform_later(1,2,3)
|
||||
# end
|
||||
#
|
||||
# assert_performed_with(job: MyJob, at: Date.tomorrow.noon) do
|
||||
# MyJob.set(wait_until: Date.tomorrow.noon).perform_later
|
||||
# end
|
||||
# end
|
||||
def assert_performed_with(args = {}, &_block)
|
||||
original_performed_jobs = performed_jobs.dup
|
||||
@ -307,11 +315,10 @@ def enqueued_jobs_size(only: nil) # :nodoc:
|
||||
end
|
||||
|
||||
def serialize_args_for_assertion(args) # :nodoc:
|
||||
serialized_args = args.dup
|
||||
if job_args = serialized_args.delete(:args)
|
||||
serialized_args[:args] = ActiveJob::Arguments.serialize(job_args)
|
||||
args.dup.tap do |serialized_args|
|
||||
serialized_args[:args] = ActiveJob::Arguments.serialize(serialized_args[:args]) if serialized_args[:args]
|
||||
serialized_args[:at] = serialized_args[:at].to_f if serialized_args[:at]
|
||||
end
|
||||
serialized_args
|
||||
end
|
||||
|
||||
def instantiate_job(payload) # :nodoc:
|
||||
|
@ -218,6 +218,12 @@ def test_assert_enqueued_job_args
|
||||
end
|
||||
end
|
||||
|
||||
def test_assert_enqueued_job_with_at_option
|
||||
assert_enqueued_with(job: HelloJob, at: Date.tomorrow.noon) do
|
||||
HelloJob.set(wait_until: Date.tomorrow.noon).perform_later
|
||||
end
|
||||
end
|
||||
|
||||
def test_assert_enqueued_job_with_global_id_args
|
||||
ricardo = Person.new(9)
|
||||
assert_enqueued_with(job: HelloJob, args: [ricardo]) do
|
||||
@ -439,18 +445,24 @@ def test_assert_performed_job_returns
|
||||
|
||||
def test_assert_performed_job_failure
|
||||
assert_raise ActiveSupport::TestCase::Assertion do
|
||||
assert_performed_with(job: LoggingJob, at: Date.tomorrow.noon, queue: 'default') do
|
||||
NestedJob.set(wait_until: Date.tomorrow.noon).perform_later
|
||||
assert_performed_with(job: LoggingJob) do
|
||||
HelloJob.perform_later
|
||||
end
|
||||
end
|
||||
|
||||
assert_raise ActiveSupport::TestCase::Assertion do
|
||||
assert_performed_with(job: NestedJob, at: Date.tomorrow.noon, queue: 'low') do
|
||||
NestedJob.set(queue: 'low', wait_until: Date.tomorrow.noon).perform_later
|
||||
assert_performed_with(job: HelloJob, queue: 'low') do
|
||||
HelloJob.set(queue: 'important').perform_later
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_assert_performed_job_with_at_option
|
||||
assert_performed_with(job: HelloJob, at: Date.tomorrow.noon) do
|
||||
HelloJob.set(wait_until: Date.tomorrow.noon).perform_later
|
||||
end
|
||||
end
|
||||
|
||||
def test_assert_performed_job_with_global_id_args
|
||||
ricardo = Person.new(9)
|
||||
assert_performed_with(job: HelloJob, args: [ricardo]) do
|
||||
|
Loading…
Reference in New Issue
Block a user