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