module RSpec::Sidekiq::Matchers

Public Instance Methods

be_delayed(*expected_arguments) click to toggle source
# File lib/rspec/sidekiq/matchers/be_delayed.rb, line 6
def be_delayed(*expected_arguments)
  BeDelayed.new(*expected_arguments)
end
be_expired_in(expected_argument) click to toggle source
# File lib/rspec/sidekiq/matchers/be_expired_in.rb, line 4
def be_expired_in(expected_argument)
  BeExpiredIn.new(expected_argument)
end
be_processed_in(expected_queue) click to toggle source
# File lib/rspec/sidekiq/matchers/be_processed_in.rb, line 4
def be_processed_in(expected_queue)
  BeProcessedIn.new expected_queue
end
be_retryable(expected_retry) click to toggle source
# File lib/rspec/sidekiq/matchers/be_retryable.rb, line 4
def be_retryable(expected_retry)
  BeRetryable.new expected_retry
end
be_unique() click to toggle source
# File lib/rspec/sidekiq/matchers/be_unique.rb, line 4
def be_unique
  BeUnique.new
end
enqueue_sidekiq_job(job_class = nil) click to toggle source

@api public

Passes if a Job is enqueued as the result of a block. Chainable ‘with` for arguments, `on` for queue, `at` for queued for a specific time, and `in` for a specific interval delay to being queued, `immediately` for queued without delay.

@example

expect { AwesomeJob.perform_async }.to enqueue_sidekiq_job

# A specific job class
expect { AwesomeJob.perform_async }.to enqueue_sidekiq_job(AwesomeJob)

# with specific arguments
expect { AwesomeJob.perform_async "Awesome!" }.to enqueue_sidekiq_job.with("Awesome!")

# On a specific queue
expect { AwesomeJob.set(queue: "high").perform_async }.to enqueue_sidekiq_job.on("high")

# At a specific datetime
specific_time = 1.hour.from_now
expect { AwesomeJob.perform_at(specific_time) }.to enqueue_sidekiq_job.at(specific_time)

# In a specific interval (be mindful of freezing or managing time here)
freeze_time do
  expect { AwesomeJob.perform_in(1.hour) }.to enqueue_sidekiq_job.in(1.hour)
end

# Without any delay
expect { AwesomeJob.perform_async }.to enqueue_sidekiq_job.immediately
expect { AwesomeJob.perform_at(1.hour.ago) }.to enqueue_sidekiq_job.immediately

## Composable

expect do
  AwesomeJob.perform_async
  OtherJob.perform_async
end.to enqueue_sidekiq_job(AwesomeJob).and enqueue_sidekiq_job(OtherJob)
# File lib/rspec/sidekiq/matchers/enqueue_sidekiq_job.rb, line 81
def enqueue_sidekiq_job(job_class = nil)
  EnqueueSidekiqJob.new(job_class)
end
have_enqueued_sidekiq_job(*expected_arguments) click to toggle source
# File lib/rspec/sidekiq/matchers/have_enqueued_sidekiq_job.rb, line 4
def have_enqueued_sidekiq_job(*expected_arguments)
  HaveEnqueuedSidekiqJob.new expected_arguments
end
save_backtrace(expected_backtrace=true) click to toggle source
# File lib/rspec/sidekiq/matchers/save_backtrace.rb, line 4
def save_backtrace(expected_backtrace=true)
  SaveBacktrace.new expected_backtrace
end