summaryrefslogtreecommitdiff
path: root/spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb')
-rw-r--r--spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb b/spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb
new file mode 100644
index 00000000000..1d35da528e4
--- /dev/null
+++ b/spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+require Rails.root.join('db', 'post_migrate', '20210302150310_schedule_migrate_pages_to_zip_storage.rb')
+
+RSpec.describe ScheduleMigratePagesToZipStorage, :sidekiq_might_not_need_inline, schema: 20201231133921 do
+ let(:migration_class) { described_class::MIGRATION }
+ let(:migration_name) { migration_class.to_s.demodulize }
+
+ let(:namespaces_table) { table(:namespaces) }
+ let(:projects_table) { table(:projects) }
+ let(:metadata_table) { table(:project_pages_metadata) }
+ let(:deployments_table) { table(:pages_deployments) }
+
+ let(:namespace) { namespaces_table.create!(path: "group", name: "group") }
+
+ def create_project_metadata(path, deployed, with_deployment)
+ project = projects_table.create!(path: path, namespace_id: namespace.id)
+
+ deployment_id = nil
+
+ if with_deployment
+ deployment_id = deployments_table.create!(project_id: project.id, file_store: 1, file: '1', file_count: 1, file_sha256: '123', size: 1).id
+ end
+
+ metadata_table.create!(project_id: project.id, deployed: deployed, pages_deployment_id: deployment_id)
+ end
+
+ it 'correctly schedules background migrations' do
+ Sidekiq::Testing.fake! do
+ freeze_time do
+ create_project_metadata("not-deployed-project", false, false)
+
+ first_id = create_project_metadata("project1", true, false).id
+ last_id = create_project_metadata("project2", true, false).id
+
+ create_project_metadata("project-with-deployment", true, true)
+
+ migrate!
+
+ expect(migration_name).to be_scheduled_delayed_migration(5.minutes, first_id, last_id)
+ expect(BackgroundMigrationWorker.jobs.size).to eq(1)
+ end
+ end
+ end
+end