31 lines
868 B
Ruby
31 lines
868 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe AuthorizedProjectUpdate::PeriodicRecalculateService do
|
|
subject(:service) { described_class.new }
|
|
|
|
describe '#execute' do
|
|
let(:batch_size) { 2 }
|
|
|
|
let_it_be(:users) { create_list(:user, 4) }
|
|
|
|
before do
|
|
stub_const('AuthorizedProjectUpdate::PeriodicRecalculateService::BATCH_SIZE', batch_size)
|
|
|
|
User.delete([users[1], users[2]])
|
|
end
|
|
|
|
it 'calls AuthorizedProjectUpdate::UserRefreshOverUserRangeWorker' do
|
|
(1..User.maximum(:id)).each_slice(batch_size).with_index(1) do |batch, index|
|
|
delay = AuthorizedProjectUpdate::PeriodicRecalculateService::DELAY_INTERVAL * index
|
|
|
|
expect(AuthorizedProjectUpdate::UserRefreshOverUserRangeWorker).to(
|
|
receive(:perform_in).with(delay, *batch.minmax))
|
|
end
|
|
|
|
service.execute
|
|
end
|
|
end
|
|
end
|