Module: RubyReactor::RSpec::AsyncTestHelpers
- Defined in:
- lib/ruby_reactor/rspec/async_test_helpers.rb
Overview
Single entry point TestSubject uses to detect and drain whichever
async testing framework — Sidekiq::Testing fake mode or ActiveJob's
:test queue adapter — is currently active, so the job-processing gate
isn't hardcoded to one background processor.
Class Method Summary collapse
- .active? ⇒ Boolean
- .active_job_testing? ⇒ Boolean
- .drain_async_jobs(max_iterations: 100) ⇒ Object
- .pending_async_jobs ⇒ Object
- .sidekiq_testing? ⇒ Boolean
Class Method Details
.active? ⇒ Boolean
10 11 12 |
# File 'lib/ruby_reactor/rspec/async_test_helpers.rb', line 10 def self.active? sidekiq_testing? || active_job_testing? end |
.active_job_testing? ⇒ Boolean
18 19 20 |
# File 'lib/ruby_reactor/rspec/async_test_helpers.rb', line 18 def self.active_job_testing? ActiveJobHelpers.test_adapter? end |
.drain_async_jobs(max_iterations: 100) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/ruby_reactor/rspec/async_test_helpers.rb', line 22 def self.drain_async_jobs(max_iterations: 100) if sidekiq_testing? SidekiqHelpers.drain_async_jobs(max_iterations: max_iterations) elsif active_job_testing? ActiveJobHelpers.drain_async_jobs(max_iterations: max_iterations) end end |
.pending_async_jobs ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/ruby_reactor/rspec/async_test_helpers.rb', line 30 def self.pending_async_jobs if sidekiq_testing? SidekiqHelpers.pending_async_jobs elsif active_job_testing? ActiveJobHelpers.pending_async_jobs else [] end end |
.sidekiq_testing? ⇒ Boolean
14 15 16 |
# File 'lib/ruby_reactor/rspec/async_test_helpers.rb', line 14 def self.sidekiq_testing? defined?(::Sidekiq::Testing) && ::Sidekiq::Testing.fake? end |