diff options
Diffstat (limited to 'spec/tasks/gitlab/pages_rake_spec.rb')
-rw-r--r-- | spec/tasks/gitlab/pages_rake_spec.rb | 60 |
1 files changed, 16 insertions, 44 deletions
diff --git a/spec/tasks/gitlab/pages_rake_spec.rb b/spec/tasks/gitlab/pages_rake_spec.rb index 76808f52890..9c26d3d73c8 100644 --- a/spec/tasks/gitlab/pages_rake_spec.rb +++ b/spec/tasks/gitlab/pages_rake_spec.rb @@ -9,59 +9,31 @@ RSpec.describe 'gitlab:pages:migrate_legacy_storagerake task' do subject { run_rake_task('gitlab:pages:migrate_legacy_storage') } - let(:project) { create(:project) } - - it 'does not try to migrate pages if pages are not deployed' do - expect(::Pages::MigrateLegacyStorageToDeploymentService).not_to receive(:new) + it 'calls migration service' do + expect_next_instance_of(::Pages::MigrateFromLegacyStorageService, anything, 3, 10) do |service| + expect(service).to receive(:execute).and_call_original + end subject end - context 'when pages are marked as deployed' do - before do - project.mark_pages_as_deployed - end - - context 'when pages directory does not exist' do - it 'tries to migrate the project, but does not crash' do - expect_next_instance_of(::Pages::MigrateLegacyStorageToDeploymentService, project) do |service| - expect(service).to receive(:execute).and_call_original - end + it 'uses PAGES_MIGRATION_THREADS environment variable' do + stub_env('PAGES_MIGRATION_THREADS', '5') - subject - end + expect_next_instance_of(::Pages::MigrateFromLegacyStorageService, anything, 5, 10) do |service| + expect(service).to receive(:execute).and_call_original end - context 'when pages directory exists on disk' do - before do - FileUtils.mkdir_p File.join(project.pages_path, "public") - File.open(File.join(project.pages_path, "public/index.html"), "w") do |f| - f.write("Hello!") - end - end - - it 'migrates pages projects without deployments' do - expect_next_instance_of(::Pages::MigrateLegacyStorageToDeploymentService, project) do |service| - expect(service).to receive(:execute).and_call_original - end - - expect do - subject - end.to change { project.pages_metadatum.reload.pages_deployment }.from(nil) - end - - context 'when deployed already exists for the project' do - before do - deployment = create(:pages_deployment, project: project) - project.set_first_pages_deployment!(deployment) - end + subject + end - it 'does not try to migrate project' do - expect(::Pages::MigrateLegacyStorageToDeploymentService).not_to receive(:new) + it 'uses PAGES_MIGRATION_BATCH_SIZE environment variable' do + stub_env('PAGES_MIGRATION_BATCH_SIZE', '100') - subject - end - end + expect_next_instance_of(::Pages::MigrateFromLegacyStorageService, anything, 3, 100) do |service| + expect(service).to receive(:execute).and_call_original end + + subject end end |