aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/lib
diff options
context:
space:
mode:
authorSteve Lounsbury <steve.lounsbury@shopify.com>2016-06-11 15:18:52 -0400
committerSteve Lounsbury <steve.lounsbury@shopify.com>2016-06-11 15:18:52 -0400
commit38c187b0cc211bf79207f4ae59deef6f522e1736 (patch)
treec7ff0dc675771bb898d16dc34dd25ffe0208dba6 /activejob/lib
parentf45d06e11fdacf45df55b7b6f20b4987fe367109 (diff)
downloadrails-38c187b0cc211bf79207f4ae59deef6f522e1736.tar.gz
rails-38c187b0cc211bf79207f4ae59deef6f522e1736.tar.bz2
rails-38c187b0cc211bf79207f4ae59deef6f522e1736.zip
Provide the ability to override the queue adapter used by jobs under
test. This PR adds a method called `queue_adapter_for_test` to `ActiveJob::TestHelper`. This method is expected to provide the queue adapter to be used for jobs under test. It maintains the current behaviour by defaulting to an instance of `ActiveJob::QueueAdapter::TestAdapter`. Tests that include `ActiveJob::TestHelper` or extend from `ActiveJob::TestCase` can provide a custom queue adapter by overriding `queue_adapter_for_test` in their class.
Diffstat (limited to 'activejob/lib')
-rw-r--r--activejob/lib/active_job/test_helper.rb15
1 files changed, 14 insertions, 1 deletions
diff --git a/activejob/lib/active_job/test_helper.rb b/activejob/lib/active_job/test_helper.rb
index 3feb82d432..e16af1947f 100644
--- a/activejob/lib/active_job/test_helper.rb
+++ b/activejob/lib/active_job/test_helper.rb
@@ -9,7 +9,7 @@ module ActiveJob
to: :queue_adapter
def before_setup # :nodoc:
- test_adapter = ActiveJob::QueueAdapters::TestAdapter.new
+ test_adapter = queue_adapter_for_test
@old_queue_adapters = (ActiveJob::Base.subclasses << ActiveJob::Base).select do |klass|
# only override explicitly set adapters, a quirk of `class_attribute`
@@ -32,6 +32,19 @@ module ActiveJob
end
end
+ # Specifies the queue adapter to use with all active job test helpers.
+ #
+ # Returns an instance of the queue adapter and defaults to
+ # <tt>ActiveJob::QueueAdapters::TestAdapter</tt>.
+ #
+ # Note: The adapter provided by this method must provide some additional
+ # methods from those expected of a standard <tt>ActiveJob::QueueAdapter</tt>
+ # in order to be used with the active job test helpers. Refer to
+ # <tt>ActiveJob::QueueAdapters::TestAdapter</tt>.
+ def queue_adapter_for_test
+ ActiveJob::QueueAdapters::TestAdapter.new
+ end
+
# Asserts that the number of enqueued jobs matches the given number.
#
# def test_jobs