summaryrefslogtreecommitdiff
path: root/spec/tasks/gitlab/uploads/migrate_rake_spec.rb
blob: b778d26060da3d159da015330d1127980510b4b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require 'rake_helper'

describe 'gitlab:uploads:migrate rake tasks' do
  let!(:projects) { create_list(:project, 10, :with_avatar) }
  let(:model_class) { Project }
  let(:uploader_class) { AvatarUploader }
  let(:mounted_as) { :avatar }
  let(:batch_size) { 3 }

  before do
    stub_env('BATCH', batch_size.to_s)
    stub_uploads_object_storage(uploader_class)
    Rake.application.rake_require 'tasks/gitlab/uploads/migrate'

    allow(ObjectStorage::MigrateUploadsWorker).to receive(:perform_async)
  end

  def run
    args = [uploader_class.to_s, model_class.to_s, mounted_as].compact
    run_rake_task("gitlab:uploads:migrate", *args)
  end

  it 'enqueue jobs in batch' do
    expect(ObjectStorage::MigrateUploadsWorker).to receive(:enqueue!).exactly(4).times

    run
  end
end