Sha256: 2adc861d8ba124ef9688fd1848e54a1d677c5a96f1a7466508573d457519f73b
Contents?: true
Size: 1.91 KB
Versions: 2
Compression:
Stored size: 1.91 KB
Contents
require "spec_helper" describe Qe::Worker do HelloWorker = Class.new do include Qe::Worker def perform; end end it "sets queue name" do HelloWorker.queue "hello" expect(HelloWorker.queue).to eql("hello") end it "returns options" do hello = HelloWorker.new(:a => 1) expect(hello.options).to eql(:a => 1) end it "delegates #enqueue to adapter" do adapter = mock("adapter") adapter .should_receive(:enqueue) .with(HelloWorker, :a => 1) Qe.adapter = adapter HelloWorker.enqueue(:a => 1) end it "finds worker by its name" do worker = mock("worker") stub_const "Some::Weird::Worker", worker expect(Qe::Worker.find("Some::Weird::Worker")).to eql(worker) end describe "#perform" do it "finds worker by its name" do Qe::Worker .should_receive(:find) .with("HelloWorker") .and_return(HelloWorker) Qe::Worker.perform("HelloWorker", {}) end it "initializes worker with provided options" do HelloWorker .should_receive(:new) .with(:a => 1) .and_return(mock.as_null_object) Qe::Worker.perform("HelloWorker", :a => 1) end it "performs job" do worker = HelloWorker.new({}) HelloWorker.stub :new => worker worker.should_receive(:before).ordered worker.should_receive(:perform).ordered worker.should_receive(:after).ordered Qe::Worker.perform("HelloWorker", {}) end it "triggers default error handler" do HelloWorker.any_instance.stub(:perform).and_raise("ZOMG!") expect { Qe::Worker.perform("HelloWorker", {}) }.to raise_error("ZOMG!") end it "passes error object to error handler" do HelloWorker.any_instance.should_receive(:error).with(kind_of(StandardError)) HelloWorker.any_instance.stub(:perform).and_raise("ZOMG!") Qe::Worker.perform("HelloWorker", {}) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
qe-0.2.0 | spec/qe/worker_spec.rb |
qe-0.1.3 | spec/qe/worker_spec.rb |