aboutsummaryrefslogtreecommitdiffstats
path: root/activejob
diff options
context:
space:
mode:
authorWojciech Wnętrzak <w.wnetrzak@gmail.com>2015-10-07 19:55:57 +0200
committerWojciech Wnętrzak <w.wnetrzak@gmail.com>2015-10-07 20:02:15 +0200
commitc2854af74784a059318d691d4e021c04719028cf (patch)
treefa405ab1b5760d30f813305a40e00e3ee7f2f111 /activejob
parente70ec9e91cb63fd63cfc0a285e5d2268a0297e46 (diff)
downloadrails-c2854af74784a059318d691d4e021c04719028cf.tar.gz
rails-c2854af74784a059318d691d4e021c04719028cf.tar.bz2
rails-c2854af74784a059318d691d4e021c04719028cf.zip
Added missing specs for not modifying queues when using AJ test helpers
Diffstat (limited to 'activejob')
-rw-r--r--activejob/lib/active_job/test_helper.rb24
-rw-r--r--activejob/test/cases/test_helper_test.rb21
2 files changed, 31 insertions, 14 deletions
diff --git a/activejob/lib/active_job/test_helper.rb b/activejob/lib/active_job/test_helper.rb
index de79de59f8..44ddfa5f69 100644
--- a/activejob/lib/active_job/test_helper.rb
+++ b/activejob/lib/active_job/test_helper.rb
@@ -231,19 +231,17 @@ module ActiveJob
# MyJob.set(wait_until: Date.tomorrow.noon).perform_later
# end
# end
- def assert_enqueued_with(args = {}, &_block)
- original_enqueued_jobs = enqueued_jobs.dup
- clear_enqueued_jobs
+ def assert_enqueued_with(args = {})
+ original_enqueued_jobs_count = enqueued_jobs.count
args.assert_valid_keys(:job, :args, :at, :queue)
serialized_args = serialize_args_for_assertion(args)
yield
- matching_job = enqueued_jobs.find do |job|
+ in_block_jobs = enqueued_jobs.drop(original_enqueued_jobs_count)
+ matching_job = in_block_jobs.find do |job|
serialized_args.all? { |key, value| value == job[key] }
end
assert matching_job, "No enqueued job found with #{args}"
instantiate_job(matching_job)
- ensure
- queue_adapter.enqueued_jobs = original_enqueued_jobs + enqueued_jobs
end
# Asserts that the job passed in the block has been performed with the given arguments.
@@ -257,19 +255,17 @@ module ActiveJob
# MyJob.set(wait_until: Date.tomorrow.noon).perform_later
# end
# end
- def assert_performed_with(args = {}, &_block)
- original_performed_jobs = performed_jobs.dup
- clear_performed_jobs
+ def assert_performed_with(args = {})
+ original_performed_jobs_count = performed_jobs.count
args.assert_valid_keys(:job, :args, :at, :queue)
serialized_args = serialize_args_for_assertion(args)
perform_enqueued_jobs { yield }
- matching_job = performed_jobs.find do |job|
+ in_block_jobs = performed_jobs.drop(original_performed_jobs_count)
+ matching_job = in_block_jobs.find do |job|
serialized_args.all? { |key, value| value == job[key] }
end
assert matching_job, "No performed job found with #{args}"
instantiate_job(matching_job)
- ensure
- queue_adapter.performed_jobs = original_performed_jobs + performed_jobs
end
def perform_enqueued_jobs(only: nil)
@@ -308,9 +304,9 @@ module ActiveJob
def enqueued_jobs_size(only: nil) # :nodoc:
if only
- enqueued_jobs.select { |job| Array(only).include?(job.fetch(:job)) }.size
+ enqueued_jobs.count { |job| Array(only).include?(job.fetch(:job)) }
else
- enqueued_jobs.size
+ enqueued_jobs.count
end
end
diff --git a/activejob/test/cases/test_helper_test.rb b/activejob/test/cases/test_helper_test.rb
index a66f5d762c..f7ee763e8a 100644
--- a/activejob/test/cases/test_helper_test.rb
+++ b/activejob/test/cases/test_helper_test.rb
@@ -242,6 +242,15 @@ class EnqueuedJobsTest < ActiveJob::TestCase
assert_equal "No enqueued job found with {:job=>HelloJob, :args=>[#{wilma.inspect}]}", error.message
end
+
+ def test_assert_enqueued_job_does_not_change_jobs_count
+ HelloJob.perform_later
+ assert_enqueued_with(job: HelloJob) do
+ HelloJob.perform_later
+ end
+
+ assert_equal 2, ActiveJob::Base.queue_adapter.enqueued_jobs.count
+ end
end
class PerformedJobsTest < ActiveJob::TestCase
@@ -487,4 +496,16 @@ class PerformedJobsTest < ActiveJob::TestCase
assert_equal "No performed job found with {:job=>HelloJob, :args=>[#{wilma.inspect}]}", error.message
end
+
+ def test_assert_performed_job_does_not_change_jobs_count
+ assert_performed_with(job: HelloJob) do
+ HelloJob.perform_later
+ end
+
+ assert_performed_with(job: HelloJob) do
+ HelloJob.perform_later
+ end
+
+ assert_equal 2, ActiveJob::Base.queue_adapter.performed_jobs.count
+ end
end