spec/worker_spec.rb in queue-bus-0.5.9 vs spec/worker_spec.rb in queue-bus-0.6.0
- old
+ new
@@ -1,32 +1,37 @@
require 'spec_helper'
+require 'json'
-module QueueBus
- describe Worker do
- it "should proxy to given class" do
- hash = {"bus_class_proxy" => "QueueBus::Driver", "ok" => true}
- QueueBus::Driver.should_receive(:perform).with(hash)
- QueueBus::Worker.perform(JSON.generate(hash))
- end
+describe QueueBus::Worker do
+ it "proxies to given class" do
+ hash = {"bus_class_proxy" => "QueueBus::Driver", "ok" => true}
+ expect(QueueBus::Driver).to receive(:perform).with(hash)
+ QueueBus::Worker.perform(JSON.generate(hash))
+ end
- it "should use instance" do
- hash = {"bus_class_proxy" => "QueueBus::Rider", "ok" => true}
- QueueBus::Rider.should_receive(:perform).with(hash)
- QueueBus::Worker.new.perform(JSON.generate(hash))
- end
+ it "uses an instance" do
+ hash = {"bus_class_proxy" => "QueueBus::Rider", "ok" => true}
+ expect(QueueBus::Rider).to receive(:perform).with(hash)
+ QueueBus::Worker.new.perform(JSON.generate(hash))
+ end
- it "should not freak out if class not there anymore" do
- hash = {"bus_class_proxy" => "QueueBus::BadClass", "ok" => true}
- lambda {
- QueueBus::Worker.perform(JSON.generate(hash))
- }.should_not raise_error
- end
+ it "does not freak out if class not there anymore" do
+ hash = {"bus_class_proxy" => "QueueBus::BadClass", "ok" => true}
+ expect {
+ QueueBus::Worker.perform(JSON.generate(hash))
+ }.not_to raise_error
+ end
- it "should raise error if proxy raises error" do
- hash = {"bus_class_proxy" => "QueueBus::Rider", "ok" => true}
- QueueBus::Rider.should_receive(:perform).with(hash).and_raise("rider crash")
- lambda {
- QueueBus::Worker.perform(JSON.generate(hash))
- }.should raise_error
- end
+ it "raises error if proxy raises error" do
+ hash = {"bus_class_proxy" => "QueueBus::Rider", "ok" => true}
+ expect(QueueBus::Rider).to receive(:perform).with(hash).and_raise("rider crash")
+ expect {
+ QueueBus::Worker.perform(JSON.generate(hash))
+ }.to raise_error(RuntimeError, 'rider crash')
+ end
+
+ it "runs the middleware stack" do
+ hash = {"bus_class_proxy" => "QueueBus::Driver", "ok" => true}
+ expect(QueueBus.worker_middleware_stack).to receive(:run).with(hash).and_yield
+ QueueBus::Worker.perform(JSON.generate(hash))
end
end