タケユー・ウェブ日報

Ruby on Rails や Flutter といった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