aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/test/support/integration/test_case_helpers.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activejob/test/support/integration/test_case_helpers.rb')
-rw-r--r--activejob/test/support/integration/test_case_helpers.rb67
1 files changed, 67 insertions, 0 deletions
diff --git a/activejob/test/support/integration/test_case_helpers.rb b/activejob/test/support/integration/test_case_helpers.rb
new file mode 100644
index 0000000000..973ee07764
--- /dev/null
+++ b/activejob/test/support/integration/test_case_helpers.rb
@@ -0,0 +1,67 @@
+# frozen_string_literal: true
+
+require "support/integration/jobs_manager"
+
+module TestCaseHelpers
+ extend ActiveSupport::Concern
+
+ included do
+ self.use_transactional_tests = false
+
+ setup do
+ clear_jobs
+ @id = "AJ-#{SecureRandom.uuid}"
+ end
+
+ teardown do
+ clear_jobs
+ end
+ end
+
+ private
+
+ def jobs_manager
+ JobsManager.current_manager
+ end
+
+ def clear_jobs
+ jobs_manager.clear_jobs
+ end
+
+ def adapter_is?(*adapter_class_symbols)
+ adapter_class_symbols.map(&:to_s).include? ActiveJob::Base.queue_adapter_name
+ end
+
+ def wait_for_jobs_to_finish_for(seconds = 60)
+ Timeout.timeout(seconds) do
+ while !job_executed do
+ sleep 0.25
+ end
+ end
+ rescue Timeout::Error
+ end
+
+ def job_file(id)
+ Dummy::Application.root.join("tmp/#{id}")
+ end
+
+ def job_executed(id = @id)
+ job_file(id).exist?
+ end
+
+ def job_data(id)
+ Marshal.load(File.binread(job_file(id)))
+ end
+
+ def job_executed_at(id = @id)
+ job_data(id)["executed_at"]
+ end
+
+ def job_executed_in_locale(id = @id)
+ job_data(id)["locale"]
+ end
+
+ def job_executed_in_timezone(id = @id)
+ job_data(id)["timezone"]
+ end
+end