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