mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
add tests for non-yielding middleware
This commit is contained in:
parent
35c0ae5067
commit
2399d13dbb
1 changed files with 21 additions and 5 deletions
|
@ -38,6 +38,11 @@ class TestMiddleware < MiniTest::Unit::TestCase
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class NonYieldingMiddleware
|
||||||
|
def call(*args)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it 'executes middleware in the proper order' do
|
it 'executes middleware in the proper order' do
|
||||||
Sidekiq::Middleware::Server::UniqueJobs.class_eval do
|
Sidekiq::Middleware::Server::UniqueJobs.class_eval do
|
||||||
def call(worker, msg); yield; end
|
def call(worker, msg); yield; end
|
||||||
|
@ -55,9 +60,20 @@ class TestMiddleware < MiniTest::Unit::TestCase
|
||||||
processor.process(msg)
|
processor.process(msg)
|
||||||
assert_equal recorder.flatten, %w(0 before 1 before work_performed 1 after 0 after)
|
assert_equal recorder.flatten, %w(0 before 1 before work_performed 1 after 0 after)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'allows middleware to abruptly stop processing rest of chain' do
|
||||||
|
recorder = []
|
||||||
|
chain = Sidekiq::Middleware::Chain.new
|
||||||
|
|
||||||
|
chain.register do
|
||||||
|
use NonYieldingMiddleware
|
||||||
|
use CustomMiddleware, 1, recorder
|
||||||
|
end
|
||||||
|
|
||||||
|
final_action = nil
|
||||||
|
chain.invoke { final_action = true }
|
||||||
|
assert_equal final_action, nil
|
||||||
|
assert_equal recorder, []
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue