enqueue_sidekiq_job RSpec block matcher

Installation

# Gemfile
group :test do
  gem 'rspec-enqueue_sidekiq_job'
end

Usage

Checks if a certain job was enqueued in a block.

expect { AwesomeWorker.perform_async }
  .to enqueue_sidekiq_job(AwesomeWorker)

Specifying arguments

expect { AwesomeWorker.perform_async(42, 'David')
  .to enqueue_sidekiq_job(AwesomeWorker).with(42, 'David')

Testing scheduled jobs

Use chainable matchers #at and #in:

time = 5.minutes.from_now
expect { AwesomeWorker.perform_at(time) }
  .to enqueue_sidekiq_job(AwesomeWorker).at(time)
interval = 5.minutes
expect { AwesomeWorker.perform_in(interval) }
  .to enqueue_sidekiq_job(AwesomeWorker).in(5.minutes)