未验证 提交 c9863690 编写于 作者: R Rafael França 提交者: Rafael Mendonça França

Merge pull request #36767 from vlado/active_job_test_helper_can_now_handle_relative_at_options

Ability to test activejobs with relative delay
上级 3d23c6fa
* `assert_enqueued_with` and `assert_performed_with` can now test jobs with relative delay.
*Vlado Cingel*
## Rails 6.0.0.rc2 (July 22, 2019) ##
* No changes.
......
......@@ -630,7 +630,7 @@ def flush_enqueued_jobs(only: nil, except: nil, queue: nil)
def prepare_args_for_assertion(args)
args.dup.tap do |arguments|
arguments[:at] = arguments[:at].to_f if arguments[:at]
arguments[:at] = round_time_arguments(arguments[:at]) if arguments[:at]
arguments[:args] = round_time_arguments(arguments[:args]) if arguments[:args]
end
end
......@@ -650,6 +650,7 @@ def round_time_arguments(argument)
def deserialize_args_for_assertion(job)
job.dup.tap do |new_job|
new_job[:at] = round_time_arguments(Time.at(new_job[:at])) if new_job[:at]
new_job[:args] = ActiveJob::Arguments.deserialize(new_job[:args]) if new_job[:args]
end
end
......
......@@ -621,6 +621,12 @@ def test_assert_enqueued_with_with_at_option
end
end
def test_assert_enqueued_with_with_relative_at_option
assert_enqueued_with(job: HelloJob, at: 5.minutes.from_now) do
HelloJob.set(wait: 5.minutes).perform_later
end
end
def test_assert_enqueued_with_with_no_block_with_at_option
HelloJob.set(wait_until: Date.tomorrow.noon).perform_later
assert_enqueued_with(job: HelloJob, at: Date.tomorrow.noon)
......@@ -1663,6 +1669,18 @@ def test_assert_performed_with_with_at_option
end
end
def test_assert_performed_with_with_relative_at_option
assert_performed_with(job: HelloJob, at: 5.minutes.from_now) do
HelloJob.set(wait: 5.minutes).perform_later
end
assert_raise ActiveSupport::TestCase::Assertion do
assert_performed_with(job: HelloJob, at: 2.minutes.from_now) do
HelloJob.set(wait: 1.minute).perform_later
end
end
end
def test_assert_performed_with_without_block_with_at_option
HelloJob.set(wait_until: Date.tomorrow.noon).perform_later
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册