タケユー・ウェブ日報

Webシステム受託会社の業務の中での気づきや調べごとのメモ。

ActiveJob へのキューインの spec

まとめ

  • ActiveJob::Base.queue_adapter = :test を使うと、 ActiveJob::Base.queue_adapter.enqueued_jobs にジョブが入る
  • have_enqueued_job マッチャーでジョブが入っていることを expect する

サンプルコード

it 'enqueues PaymentIntentSuccessedJob' do
  ActiveJob::Base.queue_adapter = :test

  event = StripeMock.mock_webhook_event('payment_intent.succeeded', customer: customer.id)
  expect {
    post "/webhook", params: event.to_h, as: :json
  }.to have_enqueued_job(PaymentIntentSuccessedJob).with(event.id)
end