diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2015-01-07 21:07:17 -0800 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2015-01-07 21:07:17 -0800 |
commit | e54719df66f455c11a03a5cfa128025c8b00f141 (patch) | |
tree | 34d681e047f3afe7de2483495aa476f7bfb7838d /activejob/lib | |
parent | f6b21d48ef15d4f39a530653c2ce7d0cfb458b46 (diff) | |
parent | b5e88317cc83436971d4b6d5d56629f9e43476d7 (diff) | |
download | rails-e54719df66f455c11a03a5cfa128025c8b00f141.tar.gz rails-e54719df66f455c11a03a5cfa128025c8b00f141.tar.bz2 rails-e54719df66f455c11a03a5cfa128025c8b00f141.zip |
Merge pull request #18397 from georgeclaghorn/enhance-job-assertions
Add :only option to assert_enqueued_jobs
Diffstat (limited to 'activejob/lib')
-rw-r--r-- | activejob/lib/active_job/test_helper.rb | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/activejob/lib/active_job/test_helper.rb b/activejob/lib/active_job/test_helper.rb index 2efcea7f2e..0d895a17db 100644 --- a/activejob/lib/active_job/test_helper.rb +++ b/activejob/lib/active_job/test_helper.rb @@ -42,16 +42,24 @@ module ActiveJob # HelloJob.perform_later('rafael') # end # end - def assert_enqueued_jobs(number) + # + # The number of times a specific job is enqueued can be asserted. + # + # def test_logging_job + # assert_enqueued_jobs 2, only: LoggingJob do + # LoggingJob.perform_later + # HelloJob.perform_later('jeremy') + # end + # end + def assert_enqueued_jobs(number, only: nil) if block_given? - original_count = enqueued_jobs.size + original_count = enqueued_jobs_size(only: only) yield - new_count = enqueued_jobs.size - assert_equal original_count + number, new_count, - "#{number} jobs expected, but #{new_count - original_count} were enqueued" + new_count = enqueued_jobs_size(only: only) + assert_equal original_count + number, new_count, "#{number} jobs expected, but #{new_count - original_count} were enqueued" else - enqueued_jobs_size = enqueued_jobs.size - assert_equal number, enqueued_jobs_size, "#{number} jobs expected, but #{enqueued_jobs_size} were enqueued" + actual_count = enqueued_jobs_size(only: only) + assert_equal number, actual_count, "#{number} jobs expected, but #{actual_count} were enqueued" end end @@ -215,6 +223,14 @@ module ActiveJob def clear_performed_jobs performed_jobs.clear end + + def enqueued_jobs_size(only: nil) + if only + enqueued_jobs.select { |job| job[:job] == only }.size + else + enqueued_jobs.size + end + end end end end |