diff --git a/Changes.md b/Changes.md index d94bbab6..f432e67d 100644 --- a/Changes.md +++ b/Changes.md @@ -1,3 +1,14 @@ +2.0.1 +----------- + +- Update sidekiq/testing to support new scheduled jobs API: + + require 'sidekiq/testing' + DirectWorker.perform_in(10.seconds, 1, 2) + assert_equal 1, DirectWorker.jobs.size + assert_in_delta 10.seconds.from_now.to_f, DirectWorker.jobs.last['at'], 0.01 + + 2.0.0 ----------- diff --git a/lib/sidekiq/testing.rb b/lib/sidekiq/testing.rb index 192c1bac..c99859f2 100644 --- a/lib/sidekiq/testing.rb +++ b/lib/sidekiq/testing.rb @@ -30,6 +30,16 @@ module Sidekiq true end + alias_method :perform_in_old, :perform_in + alias_method :perform_at_old, :perform_at + def perform_in(interval, *args) + int = interval.to_f + ts = (int < 1_000_000_000 ? Time.now.to_f + int : int) + jobs << { 'class' => self.name, 'args' => args, 'at' => ts } + true + end + alias_method :perform_at, :perform_in + def jobs @pushed ||= [] end diff --git a/lib/sidekiq/version.rb b/lib/sidekiq/version.rb index 76e97cc7..e529da8e 100644 --- a/lib/sidekiq/version.rb +++ b/lib/sidekiq/version.rb @@ -1,3 +1,3 @@ module Sidekiq - VERSION = "2.0.0" + VERSION = "2.0.1" end diff --git a/test/test_testing.rb b/test/test_testing.rb index 65c24899..679f93e8 100644 --- a/test/test_testing.rb +++ b/test/test_testing.rb @@ -53,9 +53,11 @@ class TestTesting < MiniTest::Unit::TestCase after do # Undo override Sidekiq::Worker::ClassMethods.class_eval do - remove_method :perform_async - alias_method :perform_async, :perform_async_old - remove_method :perform_async_old + %w(async at in).each do |token| + remove_method :"perform_#{token}" + alias_method :"perform_#{token}", :"perform_#{token}_old" + remove_method :"perform_#{token}_old" + end end end @@ -63,6 +65,11 @@ class TestTesting < MiniTest::Unit::TestCase assert_equal 0, DirectWorker.jobs.size assert DirectWorker.perform_async(1, 2) assert_equal 1, DirectWorker.jobs.size + assert DirectWorker.perform_in(10, 1, 2) + assert_equal 2, DirectWorker.jobs.size + assert DirectWorker.perform_at(10, 1, 2) + assert_equal 3, DirectWorker.jobs.size + assert_in_delta 10.seconds.from_now.to_f, DirectWorker.jobs.last['at'], 0.01 end it 'stubs the delay call on mailers' do