aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/test/cases
diff options
context:
space:
mode:
authorVlado Cingel <vladocingel@gmail.com>2019-07-26 00:41:15 +0200
committerVlado Cingel <vladocingel@gmail.com>2019-07-26 00:41:15 +0200
commit10d0f48ad8c42b13738fade4c79b7275cfb7380d (patch)
tree078e5b00688181f137cd979dcb0f59c5fdb31b53 /activejob/test/cases
parentc9b7b9ff8adb3f01db0f9af90359030028a33b5b (diff)
downloadrails-10d0f48ad8c42b13738fade4c79b7275cfb7380d.tar.gz
rails-10d0f48ad8c42b13738fade4c79b7275cfb7380d.tar.bz2
rails-10d0f48ad8c42b13738fade4c79b7275cfb7380d.zip
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.
Diffstat (limited to 'activejob/test/cases')
-rw-r--r--activejob/test/cases/test_helper_test.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/activejob/test/cases/test_helper_test.rb b/activejob/test/cases/test_helper_test.rb
index 32471cfacc..34dfd8eb56 100644
--- a/activejob/test/cases/test_helper_test.rb
+++ b/activejob/test/cases/test_helper_test.rb
@@ -621,6 +621,12 @@ class EnqueuedJobsTest < ActiveJob::TestCase
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 @@ class PerformedJobsTest < ActiveJob::TestCase
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