Rails 6 で Request Spec でのみ Delayed::Job に enqueue されない
という問題が起こった。具体的には SomeJob.perform_later 等としても DB にクエリかけると enqueue されていないという事象。
事象の原因は ActiveJob::Base.queue_adapter が ActiveJob::QueueAdapters::TestAdapter になっていたこと。
application.rb なり test.rb なりで config.active_job.queue_adapter = :delayed_job とすることで、以前までは、また Rails 6 においても Request Spec 以外(の多く)では ActiveJob::QueueAdapters::DelayedJobAdapter となっていた。
こうなった原因は Rails 6 から ActionDispatch::IntegrationTest が ActiveJob::TestHelper を include するようになったため
ActiveJob::TestHelper は config を無視して TestAdapter を使用するという仕様。
また、 request spec は IntegrationTest のラッパ。