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

Simplify middleware testing

This commit is contained in:
Mike Perham 2012-03-17 17:59:18 -07:00
parent 5ec8ac08b0
commit 8adba07887
3 changed files with 24 additions and 20 deletions

View file

@ -64,6 +64,10 @@ module Sidekiq
entries.map(&:make_new)
end
def clear
entries.clear
end
def invoke(*args, &final_action)
chain = retrieve.dup
traverse_chain = lambda do

View file

@ -6,9 +6,22 @@ require 'sidekiq/processor'
class TestMiddleware < MiniTest::Unit::TestCase
describe 'middleware chain' do
before do
$errors = []
Sidekiq.redis = REDIS
end
it 'handles errors' do
handler = Sidekiq::Middleware::Server::ExceptionHandler.new
assert_raises ArgumentError do
handler.call('', { :a => 1 }, 'default') do
raise ArgumentError
end
end
assert_equal 1, $errors.size
assert_equal({ :a => 1 }, $errors[0][:parameters])
end
class CustomMiddleware
def initialize(name, recorder)
@name = name
@ -70,3 +83,10 @@ class TestMiddleware < MiniTest::Unit::TestCase
end
end
end
class FakeAirbrake
def self.notify(ex, hash)
$errors << hash
end
end
Airbrake = FakeAirbrake

View file

@ -28,25 +28,5 @@ class TestProcessor < MiniTest::Unit::TestCase
assert_equal 1, $invokes
assert_equal 0, $errors.size
end
it 'handles exceptions' do
msg = { 'class' => MockWorker.to_s, 'args' => ['boom'] }
processor = ::Sidekiq::Processor.new(@boss)
assert_raises RuntimeError do
processor.process(msg, 'default')
end
@boss.verify
assert_equal 0, $invokes
assert_equal 1, $errors.size
assert_equal msg, $errors[0][:parameters]
end
end
end
class FakeAirbrake
def self.notify(ex, hash)
$errors << hash
end
end
Airbrake = FakeAirbrake