From 85dc423f7090da0a52c73eb66faf22ddb20efff9 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Sat, 19 Sep 2020 01:45:44 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-4-stable-ee --- ...90924152703_migrate_issue_trackers_data_spec.rb | 2 +- ...0200122123016_backfill_project_settings_spec.rb | 2 +- ..._reschedule_migrate_issue_trackers_data_spec.rb | 2 +- ...ll_deployment_clusters_from_deployments_spec.rb | 2 +- ...00703125016_backfill_namespace_settings_spec.rb | 2 +- ...ate_missing_vulnerabilities_issue_links_spec.rb | 160 +++++++++++++++++++++ ...25_schedule_migration_to_hashed_storage_spec.rb | 14 ++ .../backfill_imported_snippet_repositories_spec.rb | 2 +- .../backfill_snippet_repositories_spec.rb | 2 +- .../complete_namespace_settings_migration_spec.rb | 24 ++++ .../enqueue_reset_merge_status_second_run_spec.rb | 2 +- spec/migrations/enqueue_reset_merge_status_spec.rb | 2 +- ...ernal_diff_store_on_merge_request_diffs_spec.rb | 40 ++++++ .../ensure_target_project_id_is_filled_spec.rb | 30 ++++ .../fix_projects_without_project_feature_spec.rb | 2 +- ...ix_projects_without_prometheus_services_spec.rb | 2 +- .../fix_wrong_pages_access_level_spec.rb | 2 +- ...migrate_discussion_id_on_promoted_epics_spec.rb | 4 +- spec/migrations/move_limits_from_plans_spec.rb | 4 +- .../schedule_calculate_wiki_sizes_spec.rb | 12 +- ...alid_time_for_pages_domain_certificates_spec.rb | 2 +- .../schedule_migrate_security_scans_spec.rb | 4 +- .../schedule_pages_metadata_migration_spec.rb | 2 +- ..._populate_merge_request_assignees_table_spec.rb | 2 +- ...le_populate_personal_snippet_statistics_spec.rb | 2 +- ...ule_populate_project_snippet_statistics_spec.rb | 2 +- ...edule_populate_user_highest_roles_table_spec.rb | 2 +- ...ulate_project_authorizations_second_run_spec.rb | 2 +- ...dule_recalculate_project_authorizations_spec.rb | 4 +- ...culate_project_authorizations_third_run_spec.rb | 2 +- .../schedule_sync_issuables_state_id_spec.rb | 2 +- ...edule_sync_issuables_state_id_where_nil_spec.rb | 2 +- ...oup_to_match_visibility_level_of_parent_spec.rb | 8 +- 33 files changed, 307 insertions(+), 41 deletions(-) create mode 100644 spec/migrations/20200811130433_create_missing_vulnerabilities_issue_links_spec.rb create mode 100644 spec/migrations/20200915044225_schedule_migration_to_hashed_storage_spec.rb create mode 100644 spec/migrations/complete_namespace_settings_migration_spec.rb create mode 100644 spec/migrations/ensure_filled_external_diff_store_on_merge_request_diffs_spec.rb create mode 100644 spec/migrations/ensure_target_project_id_is_filled_spec.rb (limited to 'spec/migrations') diff --git a/spec/migrations/20190924152703_migrate_issue_trackers_data_spec.rb b/spec/migrations/20190924152703_migrate_issue_trackers_data_spec.rb index 6c957ee1428..196f5ead8d2 100644 --- a/spec/migrations/20190924152703_migrate_issue_trackers_data_spec.rb +++ b/spec/migrations/20190924152703_migrate_issue_trackers_data_spec.rb @@ -52,7 +52,7 @@ RSpec.describe MigrateIssueTrackersData do it 'schedules background migrations at correct time' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(migration_name).to be_scheduled_delayed_migration(3.minutes, jira_service.id, bugzilla_service.id) diff --git a/spec/migrations/20200122123016_backfill_project_settings_spec.rb b/spec/migrations/20200122123016_backfill_project_settings_spec.rb index 0992ddde0c1..60c6206a83b 100644 --- a/spec/migrations/20200122123016_backfill_project_settings_spec.rb +++ b/spec/migrations/20200122123016_backfill_project_settings_spec.rb @@ -19,7 +19,7 @@ RSpec.describe BackfillProjectSettings, :sidekiq, schema: 20200114113341 do it 'schedules BackfillProjectSettings background jobs' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(described_class::MIGRATION).to be_scheduled_delayed_migration(2.minutes, 1, 2) diff --git a/spec/migrations/20200130145430_reschedule_migrate_issue_trackers_data_spec.rb b/spec/migrations/20200130145430_reschedule_migrate_issue_trackers_data_spec.rb index d5208976928..e140be476ab 100644 --- a/spec/migrations/20200130145430_reschedule_migrate_issue_trackers_data_spec.rb +++ b/spec/migrations/20200130145430_reschedule_migrate_issue_trackers_data_spec.rb @@ -53,7 +53,7 @@ RSpec.describe RescheduleMigrateIssueTrackersData do describe "#up" do it 'schedules background migrations at correct time' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(migration_name).to be_scheduled_delayed_migration(3.minutes, jira_service.id, bugzilla_service.id) diff --git a/spec/migrations/20200406102120_backfill_deployment_clusters_from_deployments_spec.rb b/spec/migrations/20200406102120_backfill_deployment_clusters_from_deployments_spec.rb index 47bc7428286..c6b221b09a5 100644 --- a/spec/migrations/20200406102120_backfill_deployment_clusters_from_deployments_spec.rb +++ b/spec/migrations/20200406102120_backfill_deployment_clusters_from_deployments_spec.rb @@ -27,7 +27,7 @@ RSpec.describe BackfillDeploymentClustersFromDeployments, :migration, :sidekiq, batch_2_end = create_deployment(**deployment_data) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! # batch 1 diff --git a/spec/migrations/20200703125016_backfill_namespace_settings_spec.rb b/spec/migrations/20200703125016_backfill_namespace_settings_spec.rb index 7b84ef9e236..9ff88009d8a 100644 --- a/spec/migrations/20200703125016_backfill_namespace_settings_spec.rb +++ b/spec/migrations/20200703125016_backfill_namespace_settings_spec.rb @@ -17,7 +17,7 @@ RSpec.describe BackfillNamespaceSettings, :sidekiq, schema: 20200703124823 do it 'schedules BackfillNamespaceSettings background jobs' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(described_class::MIGRATION).to be_scheduled_delayed_migration(2.minutes, 1, 2) diff --git a/spec/migrations/20200811130433_create_missing_vulnerabilities_issue_links_spec.rb b/spec/migrations/20200811130433_create_missing_vulnerabilities_issue_links_spec.rb new file mode 100644 index 00000000000..a821e4a43df --- /dev/null +++ b/spec/migrations/20200811130433_create_missing_vulnerabilities_issue_links_spec.rb @@ -0,0 +1,160 @@ +# frozen_string_literal: true +require 'spec_helper' +require Rails.root.join('db', 'post_migrate', '20200811130433_create_missing_vulnerabilities_issue_links.rb') + +RSpec.describe CreateMissingVulnerabilitiesIssueLinks, :migration do + let(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } + let(:users) { table(:users) } + let(:user) { create_user! } + let(:project) { table(:projects).create!(id: 123, namespace_id: namespace.id) } + let(:scanners) { table(:vulnerability_scanners) } + let(:scanner) { scanners.create!(project_id: project.id, external_id: 'test 1', name: 'test scanner 1') } + let(:different_scanner) { scanners.create!(project_id: project.id, external_id: 'test 2', name: 'test scanner 2') } + let(:issues) { table(:issues) } + let(:issue1) { issues.create!(id: 123, project_id: project.id) } + let(:issue2) { issues.create!(id: 124, project_id: project.id) } + let(:issue3) { issues.create!(id: 125, project_id: project.id) } + let(:vulnerabilities) { table(:vulnerabilities) } + let(:vulnerabilities_findings) { table(:vulnerability_occurrences) } + let(:vulnerability_feedback) { table(:vulnerability_feedback) } + let(:vulnerability_issue_links) { table(:vulnerability_issue_links) } + let(:vulnerability_identifiers) { table(:vulnerability_identifiers) } + let(:vulnerability_identifier) { vulnerability_identifiers.create!(project_id: project.id, external_type: 'test 1', external_id: 'test 1', fingerprint: 'test 1', name: 'test 1') } + let(:different_vulnerability_identifier) { vulnerability_identifiers.create!(project_id: project.id, external_type: 'test 2', external_id: 'test 2', fingerprint: 'test 2', name: 'test 2') } + + let!(:vulnerability) do + create_vulnerability!( + project_id: project.id, + author_id: user.id + ) + end + + before do + create_finding!( + vulnerability_id: vulnerability.id, + project_id: project.id, + scanner_id: scanner.id, + primary_identifier_id: vulnerability_identifier.id + ) + create_feedback!( + issue_id: issue1.id, + project_id: project.id, + author_id: user.id + ) + + # Create a finding with no vulnerability_id + # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/2539 + create_finding!( + vulnerability_id: nil, + project_id: project.id, + scanner_id: different_scanner.id, + primary_identifier_id: different_vulnerability_identifier.id, + location_fingerprint: 'somewhereinspace', + uuid: 'test2' + ) + create_feedback!( + category: 2, + issue_id: issue2.id, + project_id: project.id, + author_id: user.id + ) + end + + context 'with no Vulnerabilities::IssueLinks present' do + it 'creates missing Vulnerabilities::IssueLinks' do + expect(vulnerability_issue_links.count).to eq(0) + + migrate! + + expect(vulnerability_issue_links.count).to eq(1) + end + end + + context 'when an Vulnerabilities::IssueLink already exists' do + before do + vulnerability_issue_links.create!(vulnerability_id: vulnerability.id, issue_id: issue1.id) + end + + it 'creates no duplicates' do + expect(vulnerability_issue_links.count).to eq(1) + + migrate! + + expect(vulnerability_issue_links.count).to eq(1) + end + end + + context 'when an Vulnerabilities::IssueLink of type created already exists' do + before do + vulnerability_issue_links.create!(vulnerability_id: vulnerability.id, issue_id: issue3.id, link_type: 2) + end + + it 'creates no duplicates' do + expect(vulnerability_issue_links.count).to eq(1) + + migrate! + + expect(vulnerability_issue_links.count).to eq(1) + end + end + + private + + def create_vulnerability!(project_id:, author_id:, title: 'test', severity: 7, confidence: 7, report_type: 0) + vulnerabilities.create!( + project_id: project_id, + author_id: author_id, + title: title, + severity: severity, + confidence: confidence, + report_type: report_type + ) + end + + # rubocop:disable Metrics/ParameterLists + def create_finding!( + vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, + name: "test", severity: 7, confidence: 7, report_type: 0, + project_fingerprint: '123qweasdzxc', location_fingerprint: 'test', + metadata_version: 'test', raw_metadata: 'test', uuid: 'test') + vulnerabilities_findings.create!( + vulnerability_id: vulnerability_id, + project_id: project_id, + name: name, + severity: severity, + confidence: confidence, + report_type: report_type, + project_fingerprint: project_fingerprint, + scanner_id: scanner.id, + primary_identifier_id: vulnerability_identifier.id, + location_fingerprint: location_fingerprint, + metadata_version: metadata_version, + raw_metadata: raw_metadata, + uuid: uuid + ) + end + # rubocop:enable Metrics/ParameterLists + + # project_fingerprint on Vulnerabilities::Finding is a bytea and we need to match this + def create_feedback!(issue_id:, project_id:, author_id:, feedback_type: 1, category: 0, project_fingerprint: '3132337177656173647a7863') + vulnerability_feedback.create!( + feedback_type: feedback_type, + issue_id: issue_id, + category: category, + project_fingerprint: project_fingerprint, + project_id: project_id, + author_id: author_id + ) + end + + def create_user!(name: "Example User", email: "user@example.com", user_type: nil, created_at: Time.now, confirmed_at: Time.now) + users.create!( + name: name, + email: email, + username: name, + projects_limit: 0, + user_type: user_type, + confirmed_at: confirmed_at + ) + end +end diff --git a/spec/migrations/20200915044225_schedule_migration_to_hashed_storage_spec.rb b/spec/migrations/20200915044225_schedule_migration_to_hashed_storage_spec.rb new file mode 100644 index 00000000000..20ba2fbccea --- /dev/null +++ b/spec/migrations/20200915044225_schedule_migration_to_hashed_storage_spec.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'spec_helper' +require Rails.root.join('db', 'post_migrate', '20200915044225_schedule_migration_to_hashed_storage.rb') + +RSpec.describe ScheduleMigrationToHashedStorage, :sidekiq do + describe '#up' do + it 'schedules background migration job' do + Sidekiq::Testing.fake! do + expect { migrate! }.to change { BackgroundMigrationWorker.jobs.size }.by(1) + end + end + end +end diff --git a/spec/migrations/backfill_imported_snippet_repositories_spec.rb b/spec/migrations/backfill_imported_snippet_repositories_spec.rb index 208bda274e2..998a691bf77 100644 --- a/spec/migrations/backfill_imported_snippet_repositories_spec.rb +++ b/spec/migrations/backfill_imported_snippet_repositories_spec.rb @@ -30,7 +30,7 @@ RSpec.describe BackfillImportedSnippetRepositories do create_snippet(10) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(described_class::MIGRATION) diff --git a/spec/migrations/backfill_snippet_repositories_spec.rb b/spec/migrations/backfill_snippet_repositories_spec.rb index 084faa16a37..6d417669ad6 100644 --- a/spec/migrations/backfill_snippet_repositories_spec.rb +++ b/spec/migrations/backfill_snippet_repositories_spec.rb @@ -28,7 +28,7 @@ RSpec.describe BackfillSnippetRepositories do stub_const("#{described_class.name}::BATCH_SIZE", 2) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(described_class::MIGRATION) diff --git a/spec/migrations/complete_namespace_settings_migration_spec.rb b/spec/migrations/complete_namespace_settings_migration_spec.rb new file mode 100644 index 00000000000..7820536f355 --- /dev/null +++ b/spec/migrations/complete_namespace_settings_migration_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'spec_helper' +require Rails.root.join('db', 'post_migrate', '20200907124300_complete_namespace_settings_migration.rb') + +RSpec.describe CompleteNamespaceSettingsMigration, :redis do + let(:migration) { spy('migration') } + + context 'when still legacy artifacts exist' do + let(:namespaces) { table(:namespaces) } + let(:namespace_settings) { table(:namespace_settings) } + let!(:namespace) { namespaces.create!(name: 'gitlab', path: 'gitlab-org') } + + it 'steals sidekiq jobs from BackfillNamespaceSettings background migration' do + expect(Gitlab::BackgroundMigration).to receive(:steal).with('BackfillNamespaceSettings') + + migrate! + end + + it 'migrates namespaces without namespace_settings' do + expect { migrate! }.to change { namespace_settings.count }.from(0).to(1) + end + end +end diff --git a/spec/migrations/enqueue_reset_merge_status_second_run_spec.rb b/spec/migrations/enqueue_reset_merge_status_second_run_spec.rb index f5728534675..d4189326366 100644 --- a/spec/migrations/enqueue_reset_merge_status_second_run_spec.rb +++ b/spec/migrations/enqueue_reset_merge_status_second_run_spec.rb @@ -33,7 +33,7 @@ RSpec.describe EnqueueResetMergeStatusSecondRun do stub_const("#{described_class.name}::BATCH_SIZE", 2) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(described_class::MIGRATION) diff --git a/spec/migrations/enqueue_reset_merge_status_spec.rb b/spec/migrations/enqueue_reset_merge_status_spec.rb index 683d2caf9ca..c581293ddcd 100644 --- a/spec/migrations/enqueue_reset_merge_status_spec.rb +++ b/spec/migrations/enqueue_reset_merge_status_spec.rb @@ -33,7 +33,7 @@ RSpec.describe EnqueueResetMergeStatus do stub_const("#{described_class.name}::BATCH_SIZE", 2) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(described_class::MIGRATION) diff --git a/spec/migrations/ensure_filled_external_diff_store_on_merge_request_diffs_spec.rb b/spec/migrations/ensure_filled_external_diff_store_on_merge_request_diffs_spec.rb new file mode 100644 index 00000000000..808580d5770 --- /dev/null +++ b/spec/migrations/ensure_filled_external_diff_store_on_merge_request_diffs_spec.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +require 'spec_helper' +require Rails.root.join('db', 'post_migrate', '20200910170908_ensure_filled_external_diff_store_on_merge_request_diffs.rb') + +RSpec.describe EnsureFilledExternalDiffStoreOnMergeRequestDiffs, schema: 20200908095446 do + let!(:merge_request_diffs) { table(:merge_request_diffs) } + let!(:merge_requests) { table(:merge_requests) } + let!(:namespaces) { table(:namespaces) } + let!(:projects) { table(:projects) } + let!(:namespace) { namespaces.create!(name: 'foo', path: 'foo') } + let!(:project) { projects.create!(namespace_id: namespace.id) } + let!(:merge_request) { merge_requests.create!(source_branch: 'x', target_branch: 'master', target_project_id: project.id) } + + before do + constraint_name = 'check_93ee616ac9' + + # In order to insert a row with a NULL to fill. + ActiveRecord::Base.connection.execute "ALTER TABLE merge_request_diffs DROP CONSTRAINT #{constraint_name}" + + @external_diff_store_1 = merge_request_diffs.create!(external_diff_store: 1, merge_request_id: merge_request.id) + @external_diff_store_2 = merge_request_diffs.create!(external_diff_store: 2, merge_request_id: merge_request.id) + @external_diff_store_nil = merge_request_diffs.create!(external_diff_store: nil, merge_request_id: merge_request.id) + + # revert DB structure + ActiveRecord::Base.connection.execute "ALTER TABLE merge_request_diffs ADD CONSTRAINT #{constraint_name} CHECK ((external_diff_store IS NOT NULL)) NOT VALID" + end + + it 'correctly migrates nil external_diff_store to 1' do + migrate! + + @external_diff_store_1.reload + @external_diff_store_2.reload + @external_diff_store_nil.reload + + expect(@external_diff_store_1.external_diff_store).to eq(1) # unchanged + expect(@external_diff_store_2.external_diff_store).to eq(2) # unchanged + expect(@external_diff_store_nil.external_diff_store).to eq(1) # nil => 1 + end +end diff --git a/spec/migrations/ensure_target_project_id_is_filled_spec.rb b/spec/migrations/ensure_target_project_id_is_filled_spec.rb new file mode 100644 index 00000000000..72d59a72814 --- /dev/null +++ b/spec/migrations/ensure_target_project_id_is_filled_spec.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +require 'spec_helper' +require Rails.root.join('db', 'post_migrate', '20200831065705_ensure_target_project_id_is_filled.rb') + +RSpec.describe EnsureTargetProjectIdIsFilled, schema: 20200827085101 do + let_it_be(:namespaces) { table(:namespaces) } + let_it_be(:projects) { table(:projects) } + let_it_be(:merge_requests) { table(:merge_requests) } + let_it_be(:metrics) { table(:merge_request_metrics) } + + let!(:namespace) { namespaces.create!(name: 'namespace', path: 'namespace') } + let!(:project_1) { projects.create!(namespace_id: namespace.id) } + let!(:project_2) { projects.create!(namespace_id: namespace.id) } + let!(:merge_request_to_migrate_1) { merge_requests.create!(source_branch: 'a', target_branch: 'b', target_project_id: project_1.id) } + let!(:merge_request_to_migrate_2) { merge_requests.create!(source_branch: 'c', target_branch: 'd', target_project_id: project_2.id) } + let!(:merge_request_not_to_migrate) { merge_requests.create!(source_branch: 'e', target_branch: 'f', target_project_id: project_1.id) } + + let!(:metrics_1) { metrics.create!(merge_request_id: merge_request_to_migrate_1.id) } + let!(:metrics_2) { metrics.create!(merge_request_id: merge_request_to_migrate_2.id) } + let!(:metrics_3) { metrics.create!(merge_request_id: merge_request_not_to_migrate.id, target_project_id: project_1.id) } + + it 'migrates missing target_project_ids' do + migrate! + + expect(metrics_1.reload.target_project_id).to eq(project_1.id) + expect(metrics_2.reload.target_project_id).to eq(project_2.id) + expect(metrics_3.reload.target_project_id).to eq(project_1.id) + end +end diff --git a/spec/migrations/fix_projects_without_project_feature_spec.rb b/spec/migrations/fix_projects_without_project_feature_spec.rb index 2a4ba3f3ca5..1ec67c07ba3 100644 --- a/spec/migrations/fix_projects_without_project_feature_spec.rb +++ b/spec/migrations/fix_projects_without_project_feature_spec.rb @@ -20,7 +20,7 @@ RSpec.describe FixProjectsWithoutProjectFeature do around do |example| Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do example.call end end diff --git a/spec/migrations/fix_projects_without_prometheus_services_spec.rb b/spec/migrations/fix_projects_without_prometheus_services_spec.rb index 73ede2ad90c..a4504ab6773 100644 --- a/spec/migrations/fix_projects_without_prometheus_services_spec.rb +++ b/spec/migrations/fix_projects_without_prometheus_services_spec.rb @@ -20,7 +20,7 @@ RSpec.describe FixProjectsWithoutPrometheusService, :migration do around do |example| Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do example.call end end diff --git a/spec/migrations/fix_wrong_pages_access_level_spec.rb b/spec/migrations/fix_wrong_pages_access_level_spec.rb index 9ee5fa783a4..80787e0f115 100644 --- a/spec/migrations/fix_wrong_pages_access_level_spec.rb +++ b/spec/migrations/fix_wrong_pages_access_level_spec.rb @@ -29,7 +29,7 @@ RSpec.describe FixWrongPagesAccessLevel, :sidekiq_might_not_need_inline, schema: it 'correctly schedules background migrations' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do first_id = create_project_feature("project1", project_class::PRIVATE, feature_class::PRIVATE).id last_id = create_project_feature("project2", project_class::PRIVATE, feature_class::PUBLIC).id diff --git a/spec/migrations/migrate_discussion_id_on_promoted_epics_spec.rb b/spec/migrations/migrate_discussion_id_on_promoted_epics_spec.rb index e3119be495d..92a49046193 100644 --- a/spec/migrations/migrate_discussion_id_on_promoted_epics_spec.rb +++ b/spec/migrations/migrate_discussion_id_on_promoted_epics_spec.rb @@ -53,7 +53,7 @@ RSpec.describe MigrateDiscussionIdOnPromotedEpics do stub_const("#{described_class.name}::BATCH_SIZE", 2) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(migration_name).to be_scheduled_delayed_migration(2.minutes, %w(id1 id2)) @@ -69,7 +69,7 @@ RSpec.describe MigrateDiscussionIdOnPromotedEpics do create_note(create_epic, 'id3') Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(migration_name).to be_scheduled_delayed_migration(2.minutes, %w(id1)) diff --git a/spec/migrations/move_limits_from_plans_spec.rb b/spec/migrations/move_limits_from_plans_spec.rb index 16f94ba6dbb..a7a7d540ed3 100644 --- a/spec/migrations/move_limits_from_plans_spec.rb +++ b/spec/migrations/move_limits_from_plans_spec.rb @@ -7,7 +7,6 @@ RSpec.describe MoveLimitsFromPlans do let(:plans) { table(:plans) } let(:plan_limits) { table(:plan_limits) } - let!(:early_adopter_plan) { plans.create(name: 'early_adopter', title: 'Early adopter', active_pipelines_limit: 10, pipeline_size_limit: 11, active_jobs_limit: 12) } let!(:gold_plan) { plans.create(name: 'gold', title: 'Gold', active_pipelines_limit: 20, pipeline_size_limit: 21, active_jobs_limit: 22) } let!(:silver_plan) { plans.create(name: 'silver', title: 'Silver', active_pipelines_limit: 30, pipeline_size_limit: 31, active_jobs_limit: 32) } let!(:bronze_plan) { plans.create(name: 'bronze', title: 'Bronze', active_pipelines_limit: 40, pipeline_size_limit: 41, active_jobs_limit: 42) } @@ -16,7 +15,7 @@ RSpec.describe MoveLimitsFromPlans do describe 'migrate' do it 'populates plan_limits from all the records in plans' do - expect { migrate! }.to change { plan_limits.count }.by 6 + expect { migrate! }.to change { plan_limits.count }.by 5 end it 'copies plan limits and plan.id into to plan_limits table' do @@ -24,7 +23,6 @@ RSpec.describe MoveLimitsFromPlans do new_data = plan_limits.pluck(:plan_id, :ci_active_pipelines, :ci_pipeline_size, :ci_active_jobs) expected_data = [ - [early_adopter_plan.id, 10, 11, 12], [gold_plan.id, 20, 21, 22], [silver_plan.id, 30, 31, 32], [bronze_plan.id, 40, 41, 42], diff --git a/spec/migrations/schedule_calculate_wiki_sizes_spec.rb b/spec/migrations/schedule_calculate_wiki_sizes_spec.rb index 39a93f3ed25..0af491d863b 100644 --- a/spec/migrations/schedule_calculate_wiki_sizes_spec.rb +++ b/spec/migrations/schedule_calculate_wiki_sizes_spec.rb @@ -16,12 +16,12 @@ RSpec.describe ScheduleCalculateWikiSizes do let(:project3) { projects.create!(name: 'wiki-project-3', path: 'wiki-project-3', namespace_id: namespace.id) } context 'when missing wiki sizes exist' do - let!(:project_statistic1) { project_statistics.create!(id: 1, project_id: project1.id, namespace_id: namespace.id, wiki_size: 1000) } - let!(:project_statistic2) { project_statistics.create!(id: 2, project_id: project2.id, namespace_id: namespace.id, wiki_size: nil) } - let!(:project_statistic3) { project_statistics.create!(id: 3, project_id: project3.id, namespace_id: namespace.id, wiki_size: nil) } + let!(:project_statistic1) { project_statistics.create!(project_id: project1.id, namespace_id: namespace.id, wiki_size: 1000) } + let!(:project_statistic2) { project_statistics.create!(project_id: project2.id, namespace_id: namespace.id, wiki_size: nil) } + let!(:project_statistic3) { project_statistics.create!(project_id: project3.id, namespace_id: namespace.id, wiki_size: nil) } it 'schedules a background migration' do - Timecop.freeze do + freeze_time do migrate! expect(migration_name).to be_scheduled_delayed_migration(5.minutes, project_statistic2.id, project_statistic3.id) @@ -44,12 +44,12 @@ RSpec.describe ScheduleCalculateWikiSizes do before do namespace = namespaces.create!(name: 'wiki-migration', path: 'wiki-migration') project = projects.create!(name: 'wiki-project-1', path: 'wiki-project-1', namespace_id: namespace.id) - project_statistics.create!(project_id: project.id, namespace_id: 1, wiki_size: 1000) + project_statistics.create!(project_id: project.id, namespace_id: namespace.id, wiki_size: 1000) end it 'does not schedule a background migration' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(BackgroundMigrationWorker.jobs.size).to eq 0 diff --git a/spec/migrations/schedule_fill_valid_time_for_pages_domain_certificates_spec.rb b/spec/migrations/schedule_fill_valid_time_for_pages_domain_certificates_spec.rb index a51bc374d5f..539b9ee96a8 100644 --- a/spec/migrations/schedule_fill_valid_time_for_pages_domain_certificates_spec.rb +++ b/spec/migrations/schedule_fill_valid_time_for_pages_domain_certificates_spec.rb @@ -22,7 +22,7 @@ RSpec.describe ScheduleFillValidTimeForPagesDomainCertificates do it 'correctly schedules background migrations' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! first_id = domains_table.find_by_domain("domain3.example.com").id diff --git a/spec/migrations/schedule_migrate_security_scans_spec.rb b/spec/migrations/schedule_migrate_security_scans_spec.rb index 4fd17b20666..61b14f239ae 100644 --- a/spec/migrations/schedule_migrate_security_scans_spec.rb +++ b/spec/migrations/schedule_migrate_security_scans_spec.rb @@ -40,7 +40,7 @@ RSpec.describe ScheduleMigrateSecurityScans, :sidekiq do it 'schedules migration of security scans' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migration.up expect(described_class::MIGRATION).to be_scheduled_delayed_migration(5.minutes, job_artifact_1.id, job_artifact_1.id) @@ -57,7 +57,7 @@ RSpec.describe ScheduleMigrateSecurityScans, :sidekiq do it 'schedules migration of security scans' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migration.up expect(BackgroundMigrationWorker.jobs).to be_empty diff --git a/spec/migrations/schedule_pages_metadata_migration_spec.rb b/spec/migrations/schedule_pages_metadata_migration_spec.rb index c37e19eb71c..94311237cf4 100644 --- a/spec/migrations/schedule_pages_metadata_migration_spec.rb +++ b/spec/migrations/schedule_pages_metadata_migration_spec.rb @@ -17,7 +17,7 @@ RSpec.describe SchedulePagesMetadataMigration do it 'schedules pages metadata migration' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(described_class::MIGRATION).to be_scheduled_delayed_migration(2.minutes, 111, 111) diff --git a/spec/migrations/schedule_populate_merge_request_assignees_table_spec.rb b/spec/migrations/schedule_populate_merge_request_assignees_table_spec.rb index 8b26cd589fd..93185b330c7 100644 --- a/spec/migrations/schedule_populate_merge_request_assignees_table_spec.rb +++ b/spec/migrations/schedule_populate_merge_request_assignees_table_spec.rb @@ -31,7 +31,7 @@ RSpec.describe SchedulePopulateMergeRequestAssigneesTable do stub_const("#{described_class.name}::BATCH_SIZE", 2) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(described_class::MIGRATION) diff --git a/spec/migrations/schedule_populate_personal_snippet_statistics_spec.rb b/spec/migrations/schedule_populate_personal_snippet_statistics_spec.rb index ce618449884..8678361fc64 100644 --- a/spec/migrations/schedule_populate_personal_snippet_statistics_spec.rb +++ b/spec/migrations/schedule_populate_personal_snippet_statistics_spec.rb @@ -38,7 +38,7 @@ RSpec.describe SchedulePopulatePersonalSnippetStatistics do stub_const("#{described_class}::BATCH_SIZE", 4) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! aggregate_failures do diff --git a/spec/migrations/schedule_populate_project_snippet_statistics_spec.rb b/spec/migrations/schedule_populate_project_snippet_statistics_spec.rb index 05e9d4d2f79..d5f048ed5cb 100644 --- a/spec/migrations/schedule_populate_project_snippet_statistics_spec.rb +++ b/spec/migrations/schedule_populate_project_snippet_statistics_spec.rb @@ -43,7 +43,7 @@ RSpec.describe SchedulePopulateProjectSnippetStatistics do stub_const("#{described_class}::BATCH_SIZE", 4) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! aggregate_failures do diff --git a/spec/migrations/schedule_populate_user_highest_roles_table_spec.rb b/spec/migrations/schedule_populate_user_highest_roles_table_spec.rb index c7e5c6f30a6..32def8ab47d 100644 --- a/spec/migrations/schedule_populate_user_highest_roles_table_spec.rb +++ b/spec/migrations/schedule_populate_user_highest_roles_table_spec.rb @@ -32,7 +32,7 @@ RSpec.describe SchedulePopulateUserHighestRolesTable do stub_const("#{described_class.name}::BATCH_SIZE", 2) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(described_class::MIGRATION).to be_scheduled_delayed_migration(5.minutes, 1, 4) diff --git a/spec/migrations/schedule_recalculate_project_authorizations_second_run_spec.rb b/spec/migrations/schedule_recalculate_project_authorizations_second_run_spec.rb index 06f1a7e28eb..a02e00de1e3 100644 --- a/spec/migrations/schedule_recalculate_project_authorizations_second_run_spec.rb +++ b/spec/migrations/schedule_recalculate_project_authorizations_second_run_spec.rb @@ -16,7 +16,7 @@ RSpec.describe ScheduleRecalculateProjectAuthorizationsSecondRun do it 'schedules background migration' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(BackgroundMigrationWorker.jobs.size).to eq(2) diff --git a/spec/migrations/schedule_recalculate_project_authorizations_spec.rb b/spec/migrations/schedule_recalculate_project_authorizations_spec.rb index 9519b103284..378e6aa133d 100644 --- a/spec/migrations/schedule_recalculate_project_authorizations_spec.rb +++ b/spec/migrations/schedule_recalculate_project_authorizations_spec.rb @@ -26,7 +26,7 @@ RSpec.describe ScheduleRecalculateProjectAuthorizations do it 'schedules background migration' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(BackgroundMigrationWorker.jobs.size).to eq(2) @@ -45,7 +45,7 @@ RSpec.describe ScheduleRecalculateProjectAuthorizations do access_level: 30) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(BackgroundMigrationWorker.jobs.size).to eq(2) diff --git a/spec/migrations/schedule_recalculate_project_authorizations_third_run_spec.rb b/spec/migrations/schedule_recalculate_project_authorizations_third_run_spec.rb index 300bb940dd8..5328abf7ea7 100644 --- a/spec/migrations/schedule_recalculate_project_authorizations_third_run_spec.rb +++ b/spec/migrations/schedule_recalculate_project_authorizations_third_run_spec.rb @@ -16,7 +16,7 @@ RSpec.describe ScheduleRecalculateProjectAuthorizationsThirdRun do it 'schedules background migration' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(BackgroundMigrationWorker.jobs.size).to eq(2) diff --git a/spec/migrations/schedule_sync_issuables_state_id_spec.rb b/spec/migrations/schedule_sync_issuables_state_id_spec.rb index ecfebbde348..d22d636e084 100644 --- a/spec/migrations/schedule_sync_issuables_state_id_spec.rb +++ b/spec/migrations/schedule_sync_issuables_state_id_spec.rb @@ -20,7 +20,7 @@ RSpec.describe ScheduleSyncIssuablesStateId do it 'correctly schedules issuable sync background migration' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(migration).to be_scheduled_delayed_migration(120.seconds, resource_1.id, resource_2.id) diff --git a/spec/migrations/schedule_sync_issuables_state_id_where_nil_spec.rb b/spec/migrations/schedule_sync_issuables_state_id_where_nil_spec.rb index d23f5b69d22..3d450f0e6bc 100644 --- a/spec/migrations/schedule_sync_issuables_state_id_where_nil_spec.rb +++ b/spec/migrations/schedule_sync_issuables_state_id_where_nil_spec.rb @@ -20,7 +20,7 @@ RSpec.describe ScheduleSyncIssuablesStateIdWhereNil do it 'correctly schedules issuable sync background migration' do Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(migration).to be_scheduled_delayed_migration(120.seconds, resource_1.id, resource_3.id) diff --git a/spec/migrations/schedule_update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb b/spec/migrations/schedule_update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb index 949d8d8794f..deb7aae737a 100644 --- a/spec/migrations/schedule_update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb +++ b/spec/migrations/schedule_update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb @@ -14,7 +14,7 @@ RSpec.describe ScheduleUpdateExistingSubgroupToMatchVisibilityLevelOfParent do create_namespace('child', Gitlab::VisibilityLevel::PUBLIC, parent_id: parent.id) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(BackgroundMigrationWorker.jobs.size).to eq(1) @@ -30,7 +30,7 @@ RSpec.describe ScheduleUpdateExistingSubgroupToMatchVisibilityLevelOfParent do create_namespace('child', Gitlab::VisibilityLevel::PUBLIC, parent_id: middle_group.id) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(BackgroundMigrationWorker.jobs.size).to eq(1) @@ -47,7 +47,7 @@ RSpec.describe ScheduleUpdateExistingSubgroupToMatchVisibilityLevelOfParent do create_namespace('child', Gitlab::VisibilityLevel::PUBLIC, parent_id: middle_group.id) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(BackgroundMigrationWorker.jobs.size).to eq(1) @@ -66,7 +66,7 @@ RSpec.describe ScheduleUpdateExistingSubgroupToMatchVisibilityLevelOfParent do create_namespace('child', Gitlab::VisibilityLevel::PUBLIC, parent_id: middle_group.id) Sidekiq::Testing.fake! do - Timecop.freeze do + freeze_time do migrate! expect(BackgroundMigrationWorker.jobs.size).to eq(2) -- cgit v1.2.3