# spec/support/inline_active_job.rb
# Source: https://gitanswer.com/rails-rails-6-inconsistently-overrides-activejob-queue-adapter-setting-with-testadapter-ruby-496901128#553927324
# useful when testing Turbo with ActiveJob and rspec capybara
RSpec.configure do |config|
  config.around(:each, type: :request) do |example|
    original_queue_adapter = ActiveJob::Base.queue_adapter
    descendants = ActiveJob::Base.descendants + [ActiveJob::Base]

    ActiveJob::Base.queue_adapter = :inline
    descendants.each(&:disable_test_adapter)
    example.run
    descendants.each { |a| a.enable_test_adapter(ActiveJob::QueueAdapters::TestAdapter.new) }
    ActiveJob::Base.queue_adapter = original_queue_adapter
  end
end