Sha256: 9a4c4b5caf521b08b86fe170c48eed8a72ab03d042813dd3b899f8a9828ed653

Contents?: true

Size: 1.24 KB

Versions: 2

Compression:

Stored size: 1.24 KB

Contents

require "spec_helper"

describe Qe::DelayedJob do
  it "sets adapter when loading file" do
    Qe::DelayedJob.class_eval { remove_const "Worker" }
    Qe.adapter = nil
    load "qe/delayed_job.rb"
    expect(Qe.adapter).to eql(Qe::DelayedJob)
  end

  context "worker" do
    it "performs job" do
      job = Qe::DelayedJob::Worker.new("SomeWorker", :a => 1)

      Qe::Worker
        .should_receive(:perform)
        .with("SomeWorker", :a => 1)

      job.perform
    end
  end

  context "enqueuing" do
    let(:worker) {
      mock("worker", :queue => "some_queue", :name => "SomeWorker")
    }

    before do
      Delayed::Job.stub :enqueue
    end

    it "sets queue name" do
      Delayed::Job
        .should_receive(:enqueue)
        .with(anything, :queue => "some_queue")

      Qe::DelayedJob.enqueue(worker)
    end

    it "instantiates worker" do
      Qe::DelayedJob::Worker
        .should_receive(:new)
        .with("SomeWorker", :a => 1)

      Qe::DelayedJob.enqueue(worker, :a => 1)
    end

    it "enqueues job" do
      job = mock("job")
      Qe::DelayedJob::Worker.stub :new => job

      Delayed::Job
        .should_receive(:enqueue)
        .with(job, kind_of(Hash))

      Qe::DelayedJob.enqueue(worker, :a => 1)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
qe-0.2.0 spec/qe/delayed_job_spec.rb
qe-0.1.3 spec/qe/delayed_job_spec.rb