From e6963721cce69cf18a7aef2b652ad19b812046f4 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 4 May 2023 10:13:00 +0200 Subject: [PATCH] Fix infinite loop in AccountsStatusesCleanupScheduler (#24840) --- .../accounts_statuses_cleanup_scheduler_spec.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb index a9e8682cb7..8ba4ede117 100644 --- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb +++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb @@ -125,6 +125,20 @@ describe Scheduler::AccountsStatusesCleanupScheduler do expect { subject.perform }.to change { Status.count }.by(-30) end end + + context 'when there is no work to be done' do + let(:process_set_stub) { [{ 'concurrency' => 400, 'queues' => %w(push default) }] } + + before do + stub_const 'Scheduler::AccountsStatusesCleanupScheduler::MAX_BUDGET', 400 + subject.perform + end + + it 'does not get stuck' do + expect(subject.compute_budget).to eq(400) + expect { subject.perform }.to_not change { Status.count } + end + end end end end