From 10d0f48ad8c42b13738fade4c79b7275cfb7380d Mon Sep 17 00:00:00 2001 From: Vlado Cingel Date: Fri, 26 Jul 2019 00:41:15 +0200 Subject: Ability to test activejobs with relative delay `assert_enqueued_with` and `assert_performed_with` were not able to properly test jobs with relative delay. `:at` option was asserted for equality and test will always fail cause small fraction of time will pass between job call and assertion. This commit fixes that by droping microseconds from `:at` argument assertions. --- activejob/lib/active_job/test_helper.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'activejob/lib/active_job/test_helper.rb') diff --git a/activejob/lib/active_job/test_helper.rb b/activejob/lib/active_job/test_helper.rb index 463020a332..5b1af7da22 100644 --- a/activejob/lib/active_job/test_helper.rb +++ b/activejob/lib/active_job/test_helper.rb @@ -630,7 +630,7 @@ module ActiveJob 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 @@ module ActiveJob 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 -- cgit v1.2.3