aboutsummaryrefslogtreecommitdiffstats
path: root/activejob/test/cases/queue_priority_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activejob/test/cases/queue_priority_test.rb')
-rw-r--r--activejob/test/cases/queue_priority_test.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/activejob/test/cases/queue_priority_test.rb b/activejob/test/cases/queue_priority_test.rb
new file mode 100644
index 0000000000..b0d0e903fc
--- /dev/null
+++ b/activejob/test/cases/queue_priority_test.rb
@@ -0,0 +1,47 @@
+require "helper"
+require "jobs/hello_job"
+
+class QueuePriorityTest < ActiveSupport::TestCase
+ test "priority unset by default" do
+ assert_nil HelloJob.priority
+ end
+
+ test "uses given priority" do
+ original_priority = HelloJob.priority
+
+ begin
+ HelloJob.queue_with_priority 90
+ assert_equal 90, HelloJob.new.priority
+ ensure
+ HelloJob.priority = original_priority
+ end
+ end
+
+ test "evals block given to priority to determine priority" do
+ original_priority = HelloJob.priority
+
+ begin
+ HelloJob.queue_with_priority { 25 }
+ assert_equal 25, HelloJob.new.priority
+ ensure
+ HelloJob.priority = original_priority
+ end
+ end
+
+ test "can use arguments to determine priority in priority block" do
+ original_priority = HelloJob.priority
+
+ begin
+ HelloJob.queue_with_priority { self.arguments.first == "1" ? 99 : 11 }
+ assert_equal 99, HelloJob.new("1").priority
+ assert_equal 11, HelloJob.new("3").priority
+ ensure
+ HelloJob.priority = original_priority
+ end
+ end
+
+ test "uses priority passed to #set" do
+ job = HelloJob.set(priority: 123).perform_later
+ assert_equal 123, job.priority
+ end
+end