From 0b9ae12feb8b90891ec1b14e3ffce8f8ab71f990 Mon Sep 17 00:00:00 2001 From: Marcin Kulik Date: Fri, 5 Jul 2013 21:10:04 +0200 Subject: [PATCH] Use nice matcher for sidekiq job enqueues --- .../api/asciicasts_controller_spec.rb | 3 ++- spec/support/sidekiq_matchers.rb | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 spec/support/sidekiq_matchers.rb diff --git a/spec/controllers/api/asciicasts_controller_spec.rb b/spec/controllers/api/asciicasts_controller_spec.rb index 349a0dd..c2558c8 100644 --- a/spec/controllers/api/asciicasts_controller_spec.rb +++ b/spec/controllers/api/asciicasts_controller_spec.rb @@ -17,7 +17,8 @@ describe Api::AsciicastsController do end it 'enqueues snapshot capture' do - expect { post :create }.to change(SnapshotWorker.jobs, :size).by(1) + post :create + SnapshotWorker.should have_queued_job(asciicast.id) end it 'returns status 201' do diff --git a/spec/support/sidekiq_matchers.rb b/spec/support/sidekiq_matchers.rb new file mode 100644 index 0000000..07d957a --- /dev/null +++ b/spec/support/sidekiq_matchers.rb @@ -0,0 +1,17 @@ +RSpec::Matchers.define :have_queued_job do |*expected| + match do |actual| + actual.jobs.any? { |job| Array(expected) == job["args"] } + end + + failure_message_for_should do |actual| + "expected that #{actual} would have a job queued with #{expected}" + end + + failure_message_for_should_not do |actual| + "expected that #{actual} would not a have a job queued with #{expected}" + end + + description do + "have a job queued with #{expected}" + end +end