Adding ActiveJob RSpec helper for using Test queue adapter.

This commit is contained in:
Thorsten Eckel 2019-01-15 13:21:04 +01:00
parent 10110e03cb
commit 3a5d597ab9
2 changed files with 41 additions and 0 deletions

View file

@ -11,6 +11,9 @@ class ApplicationJob < ActiveJob::Base
# until we resolve this dependency.
around_enqueue do |job, block|
block.call.tap do |delayed_job|
# skip test adapter
break if delayed_job.is_a?(Array)
delayed_job.update!(attempts: job.executions)
end
end

View file

@ -0,0 +1,38 @@
module ZammadActiveJobHelper
delegate :enqueued_jobs, :performed_jobs, to: :queue_adapter
def queue_adapter
::ActiveJob::Base.queue_adapter
end
def clear_jobs
enqueued_jobs.clear
performed_jobs.clear
end
end
RSpec.configure do |config|
activate_for = {
type: :job, # actual Job examples
performs_jobs: true, # examples performing Jobs
}
activate_for.each do |key, value|
config.include ZammadActiveJobHelper, key => value
config.include RSpec::Rails::JobExampleGroup, key => value
config.around(:each, key => value) do |example|
default_queue_adapter = ::ActiveJob::Base.queue_adapter
::ActiveJob::Base.queue_adapter = :test
clear_jobs
example.run
::ActiveJob::Base.queue_adapter = default_queue_adapter
end
end
end