From 658fd537417b3ad0947bc320f7a26c4ae568703f Mon Sep 17 00:00:00 2001 From: Ariel Valentin Date: Mon, 17 Oct 2022 18:36:00 +0000 Subject: [PATCH] fix: Ensure `ActiveJob::TestHelper` sets `scheduled_at` to a `Float` I noticed a difference in behavior when inspecting `ActiveJob::Core#scheduled_at` in non-test environments vs when inspecting in while executing tests. Prior to this change, `ActiveJob::TestHelper` would set `ActiveJob::Core#scheduled_at` to a `Time` object in tests, however this attribute was set to a `Float` objects in non-test environments: This change ensures parity in all runtime environments. --- activejob/lib/active_job/test_helper.rb | 2 +- activejob/test/cases/test_helper_test.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/activejob/lib/active_job/test_helper.rb b/activejob/lib/active_job/test_helper.rb index ba4de52803..565ed21a1d 100644 --- a/activejob/lib/active_job/test_helper.rb +++ b/activejob/lib/active_job/test_helper.rb @@ -710,7 +710,7 @@ def deserialize_args_for_assertion(job) def instantiate_job(payload, skip_deserialize_arguments: false) job = payload[:job].deserialize(payload) - job.scheduled_at = Time.at(payload[:at]) if payload.key?(:at) + job.scheduled_at = payload[:at].to_f if payload.key?(:at) job.send(:deserialize_arguments_if_needed) unless skip_deserialize_arguments job end diff --git a/activejob/test/cases/test_helper_test.rb b/activejob/test/cases/test_helper_test.rb index e85eb68a04..fd02892f10 100644 --- a/activejob/test/cases/test_helper_test.rb +++ b/activejob/test/cases/test_helper_test.rb @@ -515,7 +515,7 @@ def test_assert_enqueued_with_returns end assert_instance_of LoggingJob, job - assert_in_delta 5.minutes.from_now, job.scheduled_at, 1 + assert_in_delta 5.minutes.from_now.to_f, job.scheduled_at, 1 assert_equal "default", job.queue_name assert_equal [1, 2, 3, { keyword: true }], job.arguments end @@ -525,7 +525,7 @@ def test_assert_enqueued_with_with_no_block_returns job = assert_enqueued_with(job: LoggingJob) assert_instance_of LoggingJob, job - assert_in_delta 5.minutes.from_now, job.scheduled_at, 1 + assert_in_delta 5.minutes.from_now.to_f, job.scheduled_at, 1 assert_equal "default", job.queue_name assert_equal [1, 2, 3, { keyword: true }], job.arguments end