Skip to content

Commit 0915288

Browse files
Add test to confirm scheduled jobs are also discarded
1 parent af16650 commit 0915288

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

test/models/solid_queue/job_test.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,30 @@ class DiscardedNonOverlappingGroupedJob2 < NonOverlappingJob
129129
end
130130
end
131131

132+
test "enqueue scheduled job with discarding concurrency controls" do
133+
assert_ready do
134+
active_job = DiscardedNonOverlappingJob.perform_later(@result, name: "A")
135+
assert active_job.successfully_enqueued?
136+
end
137+
138+
scheduled_job_id = nil
139+
140+
assert_scheduled do
141+
scheduled_active_job = DiscardedNonOverlappingJob.set(wait: 0.5.seconds).perform_later(@result, name: "B")
142+
assert scheduled_active_job.successfully_enqueued?
143+
assert_nil scheduled_active_job.enqueue_error
144+
145+
scheduled_job_id = scheduled_active_job.provider_job_id
146+
end
147+
148+
scheduled_job = SolidQueue::Job.find(scheduled_job_id)
149+
wait_for { scheduled_job.due? }
150+
151+
dispatched = SolidQueue::ScheduledExecution.dispatch_next_batch(10)
152+
assert_equal 0, dispatched
153+
assert_raises(ActiveRecord::RecordNotFound) { scheduled_job.reload }
154+
end
155+
132156
test "enqueues jobs in bulk with discarding concurrency controls" do
133157
jobs = [
134158
job_1 = DiscardedNonOverlappingJob.new(@result, name: "A"),

0 commit comments

Comments
 (0)