mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
42 lines
1.3 KiB
Ruby
42 lines
1.3 KiB
Ruby
require 'helper'
|
|
require 'jobs/hello_job'
|
|
require 'jobs/queue_as_job'
|
|
|
|
class AsyncJobTest < ActiveSupport::TestCase
|
|
def using_async_adapter?
|
|
ActiveJob::Base.queue_adapter.is_a? ActiveJob::QueueAdapters::AsyncAdapter
|
|
end
|
|
|
|
setup do
|
|
ActiveJob::AsyncJob.perform_asynchronously!
|
|
end
|
|
|
|
teardown do
|
|
ActiveJob::AsyncJob::QUEUES.clear
|
|
ActiveJob::AsyncJob.perform_immediately!
|
|
end
|
|
|
|
test "#create_thread_pool returns a thread_pool" do
|
|
thread_pool = ActiveJob::AsyncJob.create_thread_pool
|
|
assert thread_pool.is_a? Concurrent::ExecutorService
|
|
assert_not thread_pool.is_a? Concurrent::ImmediateExecutor
|
|
end
|
|
|
|
test "#create_thread_pool returns an ImmediateExecutor after #perform_immediately! is called" do
|
|
ActiveJob::AsyncJob.perform_immediately!
|
|
thread_pool = ActiveJob::AsyncJob.create_thread_pool
|
|
assert thread_pool.is_a? Concurrent::ImmediateExecutor
|
|
end
|
|
|
|
test "enqueuing without specifying a queue uses the default queue" do
|
|
skip unless using_async_adapter?
|
|
HelloJob.perform_later
|
|
assert ActiveJob::AsyncJob::QUEUES.key? 'default'
|
|
end
|
|
|
|
test "enqueuing to a queue that does not exist creates the queue" do
|
|
skip unless using_async_adapter?
|
|
QueueAsJob.perform_later
|
|
assert ActiveJob::AsyncJob::QUEUES.key? QueueAsJob::MY_QUEUE.to_s
|
|
end
|
|
end
|