1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00

Update testing to support scheduled API changes, fixes #218

This commit is contained in:
Mike Perham 2012-06-03 11:03:22 -07:00
parent 5de88e5ef3
commit de616bb188
4 changed files with 32 additions and 4 deletions

View file

@ -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
-----------

View file

@ -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

View file

@ -1,3 +1,3 @@
module Sidekiq
VERSION = "2.0.0"
VERSION = "2.0.1"
end

View file

@ -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