My sidekiq tests with Sidekiq::Testing.fake! were passing until I've added sidekiq-unique-jobs and enabling it in my worker. All other tests are passing except line 19 and 20. Here is my test case :
class MyWorker
include Sidekiq::Worker
sidekiq_options :queue => :working, :retry => 1, :backtrace => 10
sidekiq_options :unique => true
sidekiq_retries_exhausted do |msg|
Sidekiq.logger.warn "Failed #{msg['class']} with #{msg['args']}: #{msg['error_message']}"
end
def perform(param)
puts param
end
end
require "spec_helper"
describe MyWorker do
context "as a resque worker" do
it "reponds to #perform" do
MyWorker.new.should respond_to(:perform)
end
end
it { should be_processed_in :working }
it { should be_retryable 1 }
it { should be_unique }
it "enqueue a job" do
param = 'work'
expect(MyWorker).to have_enqueued_jobs(0)
MyWorker.perform_async(param)
expect(MyWorker).to have_enqueued_jobs(1)
expect(MyWorker).to have_enqueued_job(param)
end
it "performs a job" do
MyWorker.new.perform('chocolate').should be_true
end
end
Failures:
1) MyWorker enqueue a job
Failure/Error: expect(MyWorker).to have_enqueued_jobs(1)
expected MyWorker to have 1 enqueued job but got 0
# ./spec/workers/my_worker_spec.rb:19:in `block (2 levels) in <top (required)>'
My sidekiq tests with
Sidekiq::Testing.fake!were passing until I've addedsidekiq-unique-jobsand enabling it in my worker. All other tests are passing except line 19 and 20. Here is my test case :Failures: 1) MyWorker enqueue a job Failure/Error: expect(MyWorker).to have_enqueued_jobs(1) expected MyWorker to have 1 enqueued job but got 0 # ./spec/workers/my_worker_spec.rb:19:in `block (2 levels) in <top (required)>'