From a5f4bba440d7f9ea47046a0a561d49adf0a1e6d4 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 16 Jun 2021 18:25:58 +0000 Subject: Add latest changes from gitlab-org/gitlab@14-0-stable-ee --- ...90924152703_migrate_issue_trackers_data_spec.rb | 4 +- ...125114345_add_admin_mode_protected_path_spec.rb | 2 +- .../20191204114127_delete_legacy_triggers_spec.rb | 2 +- ...20_add_timestamp_softwarelicensespolicy_spec.rb | 2 +- ...0200122123016_backfill_project_settings_spec.rb | 2 +- ...20200123155929_remove_invalid_jira_data_spec.rb | 2 +- ...90233_remove_invalid_issue_tracker_data_spec.rb | 2 +- ..._reschedule_migrate_issue_trackers_data_spec.rb | 14 +-- ...200313203550_remove_orphaned_chat_names_spec.rb | 2 +- ...ll_deployment_clusters_from_deployments_spec.rb | 2 +- ..._interpolation_format_in_common_metrics_spec.rb | 2 +- .../20200526115436_dedup_mr_metrics_spec.rb | 2 +- ...val_rule_name_for_code_owners_rule_type_spec.rb | 2 +- ...00703125016_backfill_namespace_settings_spec.rb | 2 +- ...st_unique_index_alert_management_alerts_spec.rb | 2 +- ..._unique_index_on_cycle_analytics_stages_spec.rb | 2 +- ...311_add_o_auth_paths_to_protected_paths_spec.rb | 2 +- ...ate_missing_vulnerabilities_issue_links_spec.rb | 2 +- ...25_schedule_migration_to_hashed_storage_spec.rb | 2 +- ...ons_for_pre_versioning_terraform_states_spec.rb | 2 +- ...kfill_jira_tracker_deployment_type_jobs_spec.rb | 2 +- ...1_migrate_services_to_http_integrations_spec.rb | 2 +- ..._backfill_jira_tracker_deployment_type2_spec.rb | 2 +- ...anup_transfered_projects_shared_runners_spec.rb | 2 +- ...move_duplicate_vulnerabilities_findings_spec.rb | 2 +- ...ate_uuid_on_vulnerabilities_occurrences_spec.rb | 2 +- ...210112143418_remove_duplicate_services2_spec.rb | 2 +- ...a_issue_first_mentioned_in_commit_value_spec.rb | 2 +- ...4_remove_bad_dependency_proxy_manifests_spec.rb | 2 +- ...pdated_at_after_repository_storage_move_spec.rb | 2 +- .../20210226141517_dedup_issue_metrics_spec.rb | 2 +- ...otal_tuple_count_for_batched_migrations_spec.rb | 2 +- ...schedule_artifact_expiry_backfill_again_spec.rb | 2 +- ...acker_data_deployment_type_based_on_url_spec.rb | 48 ++++++++ ...7_schedule_drop_invalid_vulnerabilities_spec.rb | 2 +- ...134202_copy_adoption_snapshot_namespace_spec.rb | 10 +- ...135954_copy_adoption_segments_namespace_spec.rb | 2 +- ...oject_value_stream_id_to_project_stages_spec.rb | 2 +- ..._schedule_drop_invalid_vulnerabilities2_spec.rb | 2 +- ...e_cleanup_orphaned_lfs_objects_projects_spec.rb | 37 ++++++ .../20210601073400_fix_total_stage_in_vsa_spec.rb | 30 +++++ ...d_environments_add_index_and_constraint_spec.rb | 29 +++++ ...move_builds_email_service_from_services_spec.rb | 24 ++++ spec/migrations/add_default_and_free_plans_spec.rb | 2 +- ...alue_stream_to_groups_with_group_stages_spec.rb | 2 +- .../add_deploy_token_type_to_deploy_tokens_spec.rb | 2 +- ...ident_settings_to_all_existing_projects_spec.rb | 2 +- spec/migrations/add_new_post_eoa_plans_spec.rb | 2 +- ...ndex_to_ci_builds_table_on_user_id_name_spec.rb | 2 +- ...orages_weighted_to_application_settings_spec.rb | 2 +- ...partial_index_on_project_id_to_services_spec.rb | 2 +- ..._approvals_user_id_and_merge_request_id_spec.rb | 2 +- ...to_released_at_column_on_releases_table_spec.rb | 2 +- ...clusters_integration_prometheus_enabled_spec.rb | 80 +++++++++++++ ...scalation_policies_for_oncall_schedules_spec.rb | 100 ++++++++++++++++ .../backfill_imported_snippet_repositories_spec.rb | 2 +- ...ackfill_operations_feature_flags_active_spec.rb | 2 +- .../backfill_operations_feature_flags_iid_spec.rb | 2 +- ..._add_not_null_constraints_to_timestamps_spec.rb | 2 +- .../backfill_snippet_repositories_spec.rb | 2 +- ...ackfill_status_page_published_incidents_spec.rb | 2 +- spec/migrations/backport_enterprise_schema_spec.rb | 2 +- ...ap_designs_filename_length_to_new_limit_spec.rb | 2 +- ...tbound_local_requests_whitelist_default_spec.rb | 2 +- ...ges_size_defaults_in_project_statistics_spec.rb | 2 +- .../change_web_hook_events_default_spec.rb | 2 +- spec/migrations/clean_grafana_url_spec.rb | 2 +- ...ean_up_noteable_id_for_notes_on_commits_spec.rb | 2 +- .../clean_up_pending_builds_table_spec.rb | 47 ++++++++ .../cleanup_empty_commit_user_mentions_spec.rb | 2 +- ...p_group_import_states_with_null_user_id_spec.rb | 4 +- .../cleanup_legacy_artifact_migration_spec.rb | 2 +- ...er_registry_enabled_to_project_features_spec.rb | 45 ++++++++ ...anup_optimistic_locking_nulls_pt2_fixed_spec.rb | 2 +- .../cleanup_optimistic_locking_nulls_spec.rb | 2 +- ...cleanup_projects_with_missing_namespace_spec.rb | 4 +- .../complete_namespace_settings_migration_spec.rb | 2 +- spec/migrations/confirm_project_bot_users_spec.rb | 2 +- ...environment_for_self_monitoring_project_spec.rb | 2 +- spec/migrations/deduplicate_epic_iids_spec.rb | 2 +- ..._internal_ids_where_feature_flags_usage_spec.rb | 2 +- .../delete_template_project_services_spec.rb | 2 +- ...te_template_services_duplicated_by_type_spec.rb | 2 +- .../delete_user_callout_alerts_moved_spec.rb | 2 +- ..._policies_linked_to_no_container_images_spec.rb | 46 ++++++++ ...ate_prometheus_services_background_jobs_spec.rb | 2 +- spec/migrations/drop_alerts_service_data_spec.rb | 2 +- .../drop_background_migration_jobs_spec.rb | 2 +- ...ect_ci_cd_settings_merge_trains_enabled_spec.rb | 2 +- .../encrypt_feature_flags_clients_tokens_spec.rb | 2 +- ...text_attributes_on_application_settings_spec.rb | 2 +- .../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 | 2 +- ...sure_filled_file_store_on_package_files_spec.rb | 2 +- .../ensure_namespace_settings_creation_spec.rb | 2 +- .../ensure_target_project_id_is_filled_spec.rb | 2 +- .../ensure_u2f_registrations_migrated_spec.rb | 2 +- .../fill_file_store_ci_job_artifacts_spec.rb | 2 +- .../migrations/fill_file_store_lfs_objects_spec.rb | 2 +- .../fill_productivity_analytics_start_date_spec.rb | 2 +- spec/migrations/fill_store_uploads_spec.rb | 2 +- spec/migrations/fix_max_pages_size_spec.rb | 2 +- spec/migrations/fix_null_type_labels_spec.rb | 2 +- .../fix_pool_repository_source_project_id_spec.rb | 2 +- .../fix_projects_without_project_feature_spec.rb | 2 +- ...ix_projects_without_prometheus_services_spec.rb | 2 +- .../fix_wrong_pages_access_level_spec.rb | 2 +- .../migrations/generate_ci_jwt_signing_key_spec.rb | 2 +- .../generate_lets_encrypt_private_key_spec.rb | 2 +- .../generate_missing_routes_for_bots_spec.rb | 2 +- ..._pipeline_schedule_triggers_plan_limits_spec.rb | 73 ++++++++++++ .../insert_daily_invites_plan_limits_spec.rb | 2 +- ...nsert_project_feature_flags_plan_limits_spec.rb | 6 +- .../insert_project_hooks_plan_limits_spec.rb | 2 +- ...e_all_merge_request_user_mentions_to_db_spec.rb | 2 +- ...e_auto_dev_ops_domain_to_cluster_domain_spec.rb | 2 +- .../migrate_bot_type_to_user_type_spec.rb | 2 +- ...status_to_protected_branches_in_batches_spec.rb | 2 +- .../migrate_commit_notes_mentions_to_db_spec.rb | 2 +- ...ework_enum_to_database_framework_record_spec.rb | 2 +- ...e_commit_signature_worker_sidekiq_queue_spec.rb | 2 +- ...l_from_namespaces_to_namespace_settings_spec.rb | 2 +- ...migrate_discussion_id_on_promoted_epics_spec.rb | 2 +- .../migrate_elastic_index_settings_spec.rb | 2 +- ...igrate_incident_issues_to_incident_type_spec.rb | 2 +- .../migrate_k8s_service_integration_spec.rb | 2 +- ...te_legacy_managed_clusters_to_unmanaged_spec.rb | 2 +- ...ged_clusters_with_no_token_to_unmanaged_spec.rb | 2 +- .../migrate_merge_request_mentions_to_db_spec.rb | 2 +- ...ps_feature_flags_scopes_target_user_ids_spec.rb | 2 +- ...e_protected_attribute_to_pending_builds_spec.rb | 33 ++++++ .../migrate_storage_migrator_sidekiq_queue_spec.rb | 2 +- ...te_store_security_reports_sidekiq_queue_spec.rb | 2 +- ..._to_report_approval_rules_sidekiq_queue_spec.rb | 2 +- ...r_registry_enabled_to_project_features3_spec.rb | 2 +- spec/migrations/move_limits_from_plans_spec.rb | 2 +- spec/migrations/nullify_users_role_spec.rb | 2 +- ...pulate_project_statistics_packages_size_spec.rb | 2 +- ...le_type_on_approval_merge_request_rules_spec.rb | 2 +- ...ve_additional_application_settings_rows_spec.rb | 2 +- .../remove_alerts_service_records_again_spec.rb | 2 +- .../remove_alerts_service_records_spec.rb | 2 +- ...move_deprecated_jenkins_service_records_spec.rb | 5 +- .../remove_duplicate_labels_from_groups_spec.rb | 2 +- .../remove_duplicate_labels_from_project_spec.rb | 2 +- .../remove_empty_github_service_templates_spec.rb | 2 +- ...ve_gitlab_issue_tracker_service_records_spec.rb | 2 +- .../remove_hipchat_service_records_spec.rb | 2 +- .../migrations/remove_orphan_service_hooks_spec.rb | 2 +- .../remove_orphaned_invited_members_spec.rb | 2 +- ...remove_packages_deprecated_dependencies_spec.rb | 2 +- ...cords_without_group_from_webhooks_table_spec.rb | 2 +- .../remove_security_dashboard_feature_flag_spec.rb | 2 +- ...ure_flag_to_instance_security_dashboard_spec.rb | 2 +- spec/migrations/rename_sitemap_namespace_spec.rb | 2 +- .../rename_sitemap_root_namespaces_spec.rb | 2 +- .../reschedule_artifact_expiry_backfill_spec.rb | 2 +- .../migrations/reseed_merge_trains_enabled_spec.rb | 2 +- .../reseed_repository_storages_weighted_spec.rb | 2 +- .../retry_backfill_traversal_ids_spec.rb | 93 +++++++++++++++ .../save_instance_administrators_group_id_spec.rb | 2 +- ...dule_backfill_push_rules_id_in_projects_spec.rb | 2 +- ...blocked_by_links_replacement_second_try_spec.rb | 2 +- .../schedule_calculate_wiki_sizes_spec.rb | 60 ---------- ..._policies_linked_to_no_container_images_spec.rb | 47 ++++++++ ...alid_time_for_pages_domain_certificates_spec.rb | 2 +- .../schedule_link_lfs_objects_projects_spec.rb | 2 +- ...erge_request_cleanup_schedules_backfill_spec.rb | 2 +- .../schedule_migrate_pages_to_zip_storage_spec.rb | 2 +- .../schedule_migrate_security_scans_spec.rb | 2 +- .../schedule_migrate_u2f_webauthn_spec.rb | 2 +- .../schedule_pages_metadata_migration_spec.rb | 2 +- ...edule_populate_issue_email_participants_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 | 2 +- ...culate_project_authorizations_third_run_spec.rb | 2 +- ...te_uuid_on_vulnerabilities_occurrences2_spec.rb | 127 +++++++++++++++++++++ .../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 | 2 +- ...ting_users_that_require_two_factor_auth_spec.rb | 2 +- .../schedule_update_timelogs_project_id_spec.rb | 2 +- ...ere_two_factor_auth_required_from_group_spec.rb | 2 +- spec/migrations/seed_merge_trains_enabled_spec.rb | 2 +- .../seed_repository_storages_weighted_spec.rb | 2 +- ...es_remove_temporary_index_on_project_id_spec.rb | 2 +- .../set_issue_id_for_all_versions_spec.rb | 2 +- spec/migrations/set_job_waiter_ttl_spec.rb | 2 +- spec/migrations/sync_issuables_state_id_spec.rb | 2 +- spec/migrations/truncate_user_fullname_spec.rb | 2 +- .../unconfirm_wrongfully_verified_emails_spec.rb | 2 +- ...npm_package_requests_forwarding_default_spec.rb | 2 +- .../update_fingerprint_sha256_within_keys_spec.rb | 2 +- .../update_historical_data_recorded_at_spec.rb | 2 +- ...ternal_ids_last_value_for_epics_renamed_spec.rb | 2 +- .../update_minimum_password_length_spec.rb | 2 +- ...t_and_found_group_and_orphaned_projects_spec.rb | 2 +- ...update_timestamp_softwarelicensespolicy_spec.rb | 2 +- 203 files changed, 1060 insertions(+), 266 deletions(-) create mode 100644 spec/migrations/20210421163509_schedule_update_jira_tracker_data_deployment_type_based_on_url_spec.rb create mode 100644 spec/migrations/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects_spec.rb create mode 100644 spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb create mode 100644 spec/migrations/20210601080039_group_protected_environments_add_index_and_constraint_spec.rb create mode 100644 spec/migrations/20210603222333_remove_builds_email_service_from_services_spec.rb create mode 100644 spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb create mode 100644 spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb create mode 100644 spec/migrations/clean_up_pending_builds_table_spec.rb create mode 100644 spec/migrations/cleanup_move_container_registry_enabled_to_project_features_spec.rb create mode 100644 spec/migrations/disable_expiration_policies_linked_to_no_container_images_spec.rb create mode 100644 spec/migrations/insert_ci_daily_pipeline_schedule_triggers_plan_limits_spec.rb create mode 100644 spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb create mode 100644 spec/migrations/retry_backfill_traversal_ids_spec.rb delete mode 100644 spec/migrations/schedule_calculate_wiki_sizes_spec.rb create mode 100644 spec/migrations/schedule_disable_expiration_policies_linked_to_no_container_images_spec.rb create mode 100644 spec/migrations/schedule_recalculate_uuid_on_vulnerabilities_occurrences2_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 47f85df01ac..2999332509a 100644 --- a/spec/migrations/20190924152703_migrate_issue_trackers_data_spec.rb +++ b/spec/migrations/20190924152703_migrate_issue_trackers_data_spec.rb @@ -22,7 +22,7 @@ RSpec.describe MigrateIssueTrackersData do services.create!(type: 'JiraService', properties: nil, category: 'issue_tracker') end - let!(:bugzilla_service) do + let!(:bugzilla_integration) do services.create!(type: 'BugzillaService', properties: properties, category: 'issue_tracker') end @@ -55,7 +55,7 @@ RSpec.describe MigrateIssueTrackersData do freeze_time do migrate! - expect(migration_name).to be_scheduled_delayed_migration(3.minutes, jira_service.id, bugzilla_service.id) + expect(migration_name).to be_scheduled_delayed_migration(3.minutes, jira_service.id, bugzilla_integration.id) expect(migration_name).to be_scheduled_delayed_migration(6.minutes, youtrack_service.id, gitlab_service.id) expect(BackgroundMigrationWorker.jobs.size).to eq(2) end diff --git a/spec/migrations/20191125114345_add_admin_mode_protected_path_spec.rb b/spec/migrations/20191125114345_add_admin_mode_protected_path_spec.rb index 51f798220c3..222a000c134 100644 --- a/spec/migrations/20191125114345_add_admin_mode_protected_path_spec.rb +++ b/spec/migrations/20191125114345_add_admin_mode_protected_path_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20191125114345_add_admin_mode_protected_path.rb') +require_migration!('add_admin_mode_protected_path') RSpec.describe AddAdminModeProtectedPath do subject(:migration) { described_class.new } diff --git a/spec/migrations/20191204114127_delete_legacy_triggers_spec.rb b/spec/migrations/20191204114127_delete_legacy_triggers_spec.rb index 07c69872497..aba3a902888 100644 --- a/spec/migrations/20191204114127_delete_legacy_triggers_spec.rb +++ b/spec/migrations/20191204114127_delete_legacy_triggers_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20191204114127_delete_legacy_triggers.rb') +require_migration!('delete_legacy_triggers') RSpec.describe DeleteLegacyTriggers, schema: 2019_11_25_140458 do let(:ci_trigger_table) { table(:ci_triggers) } diff --git a/spec/migrations/20200107172020_add_timestamp_softwarelicensespolicy_spec.rb b/spec/migrations/20200107172020_add_timestamp_softwarelicensespolicy_spec.rb index 1377d5e6ba0..fff0745e8af 100644 --- a/spec/migrations/20200107172020_add_timestamp_softwarelicensespolicy_spec.rb +++ b/spec/migrations/20200107172020_add_timestamp_softwarelicensespolicy_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200107172020_add_timestamp_softwarelicensespolicy.rb') +require_migration!('add_timestamp_softwarelicensespolicy') RSpec.describe AddTimestampSoftwarelicensespolicy do let(:software_licenses_policy) { table(:software_license_policies) } diff --git a/spec/migrations/20200122123016_backfill_project_settings_spec.rb b/spec/migrations/20200122123016_backfill_project_settings_spec.rb index 9ae492a36aa..7fc8eb0e368 100644 --- a/spec/migrations/20200122123016_backfill_project_settings_spec.rb +++ b/spec/migrations/20200122123016_backfill_project_settings_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200122123016_backfill_project_settings.rb') +require_migration!('backfill_project_settings') RSpec.describe BackfillProjectSettings, :sidekiq, schema: 20200114113341 do let(:projects) { table(:projects) } diff --git a/spec/migrations/20200123155929_remove_invalid_jira_data_spec.rb b/spec/migrations/20200123155929_remove_invalid_jira_data_spec.rb index a6ef0b29461..9000d4b7fef 100644 --- a/spec/migrations/20200123155929_remove_invalid_jira_data_spec.rb +++ b/spec/migrations/20200123155929_remove_invalid_jira_data_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200123155929_remove_invalid_jira_data.rb') +require_migration!('remove_invalid_jira_data') RSpec.describe RemoveInvalidJiraData do let(:jira_tracker_data) { table(:jira_tracker_data) } diff --git a/spec/migrations/20200127090233_remove_invalid_issue_tracker_data_spec.rb b/spec/migrations/20200127090233_remove_invalid_issue_tracker_data_spec.rb index 9ddf188b15e..1d3476d6d61 100644 --- a/spec/migrations/20200127090233_remove_invalid_issue_tracker_data_spec.rb +++ b/spec/migrations/20200127090233_remove_invalid_issue_tracker_data_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200127090233_remove_invalid_issue_tracker_data.rb') +require_migration!('remove_invalid_issue_tracker_data') RSpec.describe RemoveInvalidIssueTrackerData do let(:issue_tracker_data) { table(:issue_tracker_data) } 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 9947718d11b..5516e2af3f1 100644 --- a/spec/migrations/20200130145430_reschedule_migrate_issue_trackers_data_spec.rb +++ b/spec/migrations/20200130145430_reschedule_migrate_issue_trackers_data_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200130145430_reschedule_migrate_issue_trackers_data.rb') +require_migration!('reschedule_migrate_issue_trackers_data') RSpec.describe RescheduleMigrateIssueTrackersData do let(:services) { table(:services) } @@ -22,7 +22,7 @@ RSpec.describe RescheduleMigrateIssueTrackersData do services.create!(id: 11, type: 'JiraService', properties: nil, category: 'issue_tracker') end - let!(:bugzilla_service) do + let!(:bugzilla_integration) do services.create!(id: 12, type: 'BugzillaService', properties: properties, category: 'issue_tracker') end @@ -56,7 +56,7 @@ RSpec.describe RescheduleMigrateIssueTrackersData do freeze_time do migrate! - expect(migration_name).to be_scheduled_delayed_migration(3.minutes, jira_service.id, bugzilla_service.id) + expect(migration_name).to be_scheduled_delayed_migration(3.minutes, jira_service.id, bugzilla_integration.id) expect(migration_name).to be_scheduled_delayed_migration(6.minutes, youtrack_service.id, gitlab_service.id) expect(BackgroundMigrationWorker.jobs.size).to eq(2) end @@ -70,7 +70,7 @@ RSpec.describe RescheduleMigrateIssueTrackersData do let!(:valid_issue_tracker_data) do issue_tracker_data.create!( - service_id: bugzilla_service.id, + service_id: bugzilla_integration.id, encrypted_issues_url: 'http://url.com', encrypted_issues_url_iv: 'somevalue' ) @@ -78,7 +78,7 @@ RSpec.describe RescheduleMigrateIssueTrackersData do let!(:invalid_issue_tracker_data) do issue_tracker_data.create!( - service_id: bugzilla_service.id, + service_id: bugzilla_integration.id, encrypted_issues_url: 'http:url.com', encrypted_issues_url_iv: nil ) @@ -86,7 +86,7 @@ RSpec.describe RescheduleMigrateIssueTrackersData do let!(:valid_jira_tracker_data) do jira_tracker_data.create!( - service_id: bugzilla_service.id, + service_id: bugzilla_integration.id, encrypted_url: 'http://url.com', encrypted_url_iv: 'somevalue' ) @@ -94,7 +94,7 @@ RSpec.describe RescheduleMigrateIssueTrackersData do let!(:invalid_jira_tracker_data) do jira_tracker_data.create!( - service_id: bugzilla_service.id, + service_id: bugzilla_integration.id, encrypted_url: 'http://url.com', encrypted_url_iv: nil ) diff --git a/spec/migrations/20200313203550_remove_orphaned_chat_names_spec.rb b/spec/migrations/20200313203550_remove_orphaned_chat_names_spec.rb index f16e7b483e9..6b1126ca53e 100644 --- a/spec/migrations/20200313203550_remove_orphaned_chat_names_spec.rb +++ b/spec/migrations/20200313203550_remove_orphaned_chat_names_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200313203550_remove_orphaned_chat_names.rb') +require_migration!('remove_orphaned_chat_names') RSpec.describe RemoveOrphanedChatNames, schema: 20200313202430 do let(:projects) { table(:projects) } 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 9950cc23889..c6a512a1ec9 100644 --- a/spec/migrations/20200406102120_backfill_deployment_clusters_from_deployments_spec.rb +++ b/spec/migrations/20200406102120_backfill_deployment_clusters_from_deployments_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200406102120_backfill_deployment_clusters_from_deployments.rb') +require_migration!('backfill_deployment_clusters_from_deployments') RSpec.describe BackfillDeploymentClustersFromDeployments, :migration, :sidekiq, schema: 20200227140242 do describe '#up' do diff --git a/spec/migrations/20200511145545_change_variable_interpolation_format_in_common_metrics_spec.rb b/spec/migrations/20200511145545_change_variable_interpolation_format_in_common_metrics_spec.rb index e42a448a01e..e712e555b70 100644 --- a/spec/migrations/20200511145545_change_variable_interpolation_format_in_common_metrics_spec.rb +++ b/spec/migrations/20200511145545_change_variable_interpolation_format_in_common_metrics_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200511145545_change_variable_interpolation_format_in_common_metrics') +require_migration!('change_variable_interpolation_format_in_common_metrics') RSpec.describe ChangeVariableInterpolationFormatInCommonMetrics, :migration do let(:prometheus_metrics) { table(:prometheus_metrics) } diff --git a/spec/migrations/20200526115436_dedup_mr_metrics_spec.rb b/spec/migrations/20200526115436_dedup_mr_metrics_spec.rb index 9d3851ed5b0..f16026884f5 100644 --- a/spec/migrations/20200526115436_dedup_mr_metrics_spec.rb +++ b/spec/migrations/20200526115436_dedup_mr_metrics_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200526115436_dedup_mr_metrics') +require_migration!('dedup_mr_metrics') RSpec.describe DedupMrMetrics, :migration, schema: 20200526013844 do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20200526231421_update_index_approval_rule_name_for_code_owners_rule_type_spec.rb b/spec/migrations/20200526231421_update_index_approval_rule_name_for_code_owners_rule_type_spec.rb index 9f26b698158..9b72559234e 100644 --- a/spec/migrations/20200526231421_update_index_approval_rule_name_for_code_owners_rule_type_spec.rb +++ b/spec/migrations/20200526231421_update_index_approval_rule_name_for_code_owners_rule_type_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200526231421_update_index_approval_rule_name_for_code_owners_rule_type.rb') +require_migration!('update_index_approval_rule_name_for_code_owners_rule_type') RSpec.describe UpdateIndexApprovalRuleNameForCodeOwnersRuleType do let(:migration) { described_class.new } diff --git a/spec/migrations/20200703125016_backfill_namespace_settings_spec.rb b/spec/migrations/20200703125016_backfill_namespace_settings_spec.rb index 9ff88009d8a..c9f7a66a0b9 100644 --- a/spec/migrations/20200703125016_backfill_namespace_settings_spec.rb +++ b/spec/migrations/20200703125016_backfill_namespace_settings_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200703125016_backfill_namespace_settings.rb') +require_migration!('backfill_namespace_settings') RSpec.describe BackfillNamespaceSettings, :sidekiq, schema: 20200703124823 do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20200706035141_adjust_unique_index_alert_management_alerts_spec.rb b/spec/migrations/20200706035141_adjust_unique_index_alert_management_alerts_spec.rb index 0068571ad0d..121b1729dd2 100644 --- a/spec/migrations/20200706035141_adjust_unique_index_alert_management_alerts_spec.rb +++ b/spec/migrations/20200706035141_adjust_unique_index_alert_management_alerts_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200706035141_adjust_unique_index_alert_management_alerts.rb') +require_migration!('adjust_unique_index_alert_management_alerts') RSpec.describe AdjustUniqueIndexAlertManagementAlerts, :migration do let(:migration) { described_class.new } diff --git a/spec/migrations/20200728080250_replace_unique_index_on_cycle_analytics_stages_spec.rb b/spec/migrations/20200728080250_replace_unique_index_on_cycle_analytics_stages_spec.rb index f9a56bf649d..761168ae609 100644 --- a/spec/migrations/20200728080250_replace_unique_index_on_cycle_analytics_stages_spec.rb +++ b/spec/migrations/20200728080250_replace_unique_index_on_cycle_analytics_stages_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200728080250_replace_unique_index_on_cycle_analytics_stages.rb') +require_migration!('replace_unique_index_on_cycle_analytics_stages') RSpec.describe ReplaceUniqueIndexOnCycleAnalyticsStages, :migration, schema: 20200728080250 do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20200728182311_add_o_auth_paths_to_protected_paths_spec.rb b/spec/migrations/20200728182311_add_o_auth_paths_to_protected_paths_spec.rb index e12519e15b8..5c65d45c6e0 100644 --- a/spec/migrations/20200728182311_add_o_auth_paths_to_protected_paths_spec.rb +++ b/spec/migrations/20200728182311_add_o_auth_paths_to_protected_paths_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200728182311_add_o_auth_paths_to_protected_paths.rb') +require_migration!('add_o_auth_paths_to_protected_paths') RSpec.describe AddOAuthPathsToProtectedPaths do subject(:migration) { described_class.new } diff --git a/spec/migrations/20200811130433_create_missing_vulnerabilities_issue_links_spec.rb b/spec/migrations/20200811130433_create_missing_vulnerabilities_issue_links_spec.rb index a821e4a43df..d166ff3617b 100644 --- a/spec/migrations/20200811130433_create_missing_vulnerabilities_issue_links_spec.rb +++ b/spec/migrations/20200811130433_create_missing_vulnerabilities_issue_links_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200811130433_create_missing_vulnerabilities_issue_links.rb') +require_migration!('create_missing_vulnerabilities_issue_links') RSpec.describe CreateMissingVulnerabilitiesIssueLinks, :migration do let(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } diff --git a/spec/migrations/20200915044225_schedule_migration_to_hashed_storage_spec.rb b/spec/migrations/20200915044225_schedule_migration_to_hashed_storage_spec.rb index 20ba2fbccea..69f7525d265 100644 --- a/spec/migrations/20200915044225_schedule_migration_to_hashed_storage_spec.rb +++ b/spec/migrations/20200915044225_schedule_migration_to_hashed_storage_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200915044225_schedule_migration_to_hashed_storage.rb') +require_migration!('schedule_migration_to_hashed_storage') RSpec.describe ScheduleMigrationToHashedStorage, :sidekiq do describe '#up' do diff --git a/spec/migrations/20200929052138_create_initial_versions_for_pre_versioning_terraform_states_spec.rb b/spec/migrations/20200929052138_create_initial_versions_for_pre_versioning_terraform_states_spec.rb index 1a618712b32..34bd8f1c869 100644 --- a/spec/migrations/20200929052138_create_initial_versions_for_pre_versioning_terraform_states_spec.rb +++ b/spec/migrations/20200929052138_create_initial_versions_for_pre_versioning_terraform_states_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200929052138_create_initial_versions_for_pre_versioning_terraform_states.rb') +require_migration!('create_initial_versions_for_pre_versioning_terraform_states') RSpec.describe CreateInitialVersionsForPreVersioningTerraformStates do let(:namespace) { table(:namespaces).create!(name: 'terraform', path: 'terraform') } diff --git a/spec/migrations/20201014205300_drop_backfill_jira_tracker_deployment_type_jobs_spec.rb b/spec/migrations/20201014205300_drop_backfill_jira_tracker_deployment_type_jobs_spec.rb index 134bea6b666..ef9bc5788c1 100644 --- a/spec/migrations/20201014205300_drop_backfill_jira_tracker_deployment_type_jobs_spec.rb +++ b/spec/migrations/20201014205300_drop_backfill_jira_tracker_deployment_type_jobs_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20201014205300_drop_backfill_jira_tracker_deployment_type_jobs.rb') +require_migration!('drop_backfill_jira_tracker_deployment_type_jobs') RSpec.describe DropBackfillJiraTrackerDeploymentTypeJobs, :sidekiq, :redis, schema: 2020_10_14_205300 do subject(:migration) { described_class.new } diff --git a/spec/migrations/20201027002551_migrate_services_to_http_integrations_spec.rb b/spec/migrations/20201027002551_migrate_services_to_http_integrations_spec.rb index c1fbde69100..f9f6cd9589c 100644 --- a/spec/migrations/20201027002551_migrate_services_to_http_integrations_spec.rb +++ b/spec/migrations/20201027002551_migrate_services_to_http_integrations_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20201027002551_migrate_services_to_http_integrations.rb') +require_migration!('migrate_services_to_http_integrations') RSpec.describe MigrateServicesToHttpIntegrations do let!(:namespace) { table(:namespaces).create!(name: 'namespace', path: 'namespace') } diff --git a/spec/migrations/20201028182809_backfill_jira_tracker_deployment_type2_spec.rb b/spec/migrations/20201028182809_backfill_jira_tracker_deployment_type2_spec.rb index 658b26b1c49..0746ad7e44f 100644 --- a/spec/migrations/20201028182809_backfill_jira_tracker_deployment_type2_spec.rb +++ b/spec/migrations/20201028182809_backfill_jira_tracker_deployment_type2_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201028182809_backfill_jira_tracker_deployment_type2.rb') +require_migration!('backfill_jira_tracker_deployment_type2') RSpec.describe BackfillJiraTrackerDeploymentType2, :sidekiq, schema: 20201028182809 do let(:services) { table(:services) } diff --git a/spec/migrations/20201110161542_cleanup_transfered_projects_shared_runners_spec.rb b/spec/migrations/20201110161542_cleanup_transfered_projects_shared_runners_spec.rb index 8563114c9f9..7a79406ac80 100644 --- a/spec/migrations/20201110161542_cleanup_transfered_projects_shared_runners_spec.rb +++ b/spec/migrations/20201110161542_cleanup_transfered_projects_shared_runners_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201110161542_cleanup_transfered_projects_shared_runners.rb') +require_migration!('cleanup_transfered_projects_shared_runners') RSpec.describe CleanupTransferedProjectsSharedRunners, :sidekiq, schema: 20201110161542 do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20201112130710_schedule_remove_duplicate_vulnerabilities_findings_spec.rb b/spec/migrations/20201112130710_schedule_remove_duplicate_vulnerabilities_findings_spec.rb index ff27bdcf12d..92a716c355b 100644 --- a/spec/migrations/20201112130710_schedule_remove_duplicate_vulnerabilities_findings_spec.rb +++ b/spec/migrations/20201112130710_schedule_remove_duplicate_vulnerabilities_findings_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201112130710_schedule_remove_duplicate_vulnerabilities_findings.rb') +require_migration!('schedule_remove_duplicate_vulnerabilities_findings') RSpec.describe ScheduleRemoveDuplicateVulnerabilitiesFindings, :migration do let(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } diff --git a/spec/migrations/20201112130715_schedule_recalculate_uuid_on_vulnerabilities_occurrences_spec.rb b/spec/migrations/20201112130715_schedule_recalculate_uuid_on_vulnerabilities_occurrences_spec.rb index fce32be4683..dda919d70d9 100644 --- a/spec/migrations/20201112130715_schedule_recalculate_uuid_on_vulnerabilities_occurrences_spec.rb +++ b/spec/migrations/20201112130715_schedule_recalculate_uuid_on_vulnerabilities_occurrences_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201112130715_schedule_recalculate_uuid_on_vulnerabilities_occurrences.rb') +require_migration!('schedule_recalculate_uuid_on_vulnerabilities_occurrences') RSpec.describe ScheduleRecalculateUuidOnVulnerabilitiesOccurrences, :migration do let(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } diff --git a/spec/migrations/20210112143418_remove_duplicate_services2_spec.rb b/spec/migrations/20210112143418_remove_duplicate_services2_spec.rb index 9a57d9bf84d..289416c22cf 100644 --- a/spec/migrations/20210112143418_remove_duplicate_services2_spec.rb +++ b/spec/migrations/20210112143418_remove_duplicate_services2_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210112143418_remove_duplicate_services2.rb') +require_migration!('remove_duplicate_services2') RSpec.describe RemoveDuplicateServices2 do let_it_be(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20210119122354_alter_vsa_issue_first_mentioned_in_commit_value_spec.rb b/spec/migrations/20210119122354_alter_vsa_issue_first_mentioned_in_commit_value_spec.rb index 33b2e009c8d..469dbb4f946 100644 --- a/spec/migrations/20210119122354_alter_vsa_issue_first_mentioned_in_commit_value_spec.rb +++ b/spec/migrations/20210119122354_alter_vsa_issue_first_mentioned_in_commit_value_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210119122354_alter_vsa_issue_first_mentioned_in_commit_value.rb') +require_migration!('alter_vsa_issue_first_mentioned_in_commit_value') RSpec.describe AlterVsaIssueFirstMentionedInCommitValue, schema: 20210114033715 do let(:group_stages) { table(:analytics_cycle_analytics_group_stages) } diff --git a/spec/migrations/20210205174154_remove_bad_dependency_proxy_manifests_spec.rb b/spec/migrations/20210205174154_remove_bad_dependency_proxy_manifests_spec.rb index 7e351617ea3..cb48df20d58 100644 --- a/spec/migrations/20210205174154_remove_bad_dependency_proxy_manifests_spec.rb +++ b/spec/migrations/20210205174154_remove_bad_dependency_proxy_manifests_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210205174154_remove_bad_dependency_proxy_manifests.rb') +require_migration!('remove_bad_dependency_proxy_manifests') RSpec.describe RemoveBadDependencyProxyManifests, schema: 20210128140157 do let_it_be(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20210210093901_backfill_updated_at_after_repository_storage_move_spec.rb b/spec/migrations/20210210093901_backfill_updated_at_after_repository_storage_move_spec.rb index 52678111b48..1932bc00cee 100644 --- a/spec/migrations/20210210093901_backfill_updated_at_after_repository_storage_move_spec.rb +++ b/spec/migrations/20210210093901_backfill_updated_at_after_repository_storage_move_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210210093901_backfill_updated_at_after_repository_storage_move.rb') +require_migration!('backfill_updated_at_after_repository_storage_move') RSpec.describe BackfillUpdatedAtAfterRepositoryStorageMove, :sidekiq do let_it_be(:projects) { table(:projects) } diff --git a/spec/migrations/20210226141517_dedup_issue_metrics_spec.rb b/spec/migrations/20210226141517_dedup_issue_metrics_spec.rb index 043884eb7b2..6068df85e2e 100644 --- a/spec/migrations/20210226141517_dedup_issue_metrics_spec.rb +++ b/spec/migrations/20210226141517_dedup_issue_metrics_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210226141517_dedup_issue_metrics.rb') +require_migration!('dedup_issue_metrics') RSpec.describe DedupIssueMetrics, :migration, schema: 20210205104425 do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20210406144743_backfill_total_tuple_count_for_batched_migrations_spec.rb b/spec/migrations/20210406144743_backfill_total_tuple_count_for_batched_migrations_spec.rb index e1727cb2a1c..94ed2320c50 100644 --- a/spec/migrations/20210406144743_backfill_total_tuple_count_for_batched_migrations_spec.rb +++ b/spec/migrations/20210406144743_backfill_total_tuple_count_for_batched_migrations_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210406144743_backfill_total_tuple_count_for_batched_migrations.rb') +require_migration!('backfill_total_tuple_count_for_batched_migrations') RSpec.describe BackfillTotalTupleCountForBatchedMigrations, :migration, schema: 20210406140057 do let_it_be(:table_name) { 'projects' } diff --git a/spec/migrations/20210413132500_reschedule_artifact_expiry_backfill_again_spec.rb b/spec/migrations/20210413132500_reschedule_artifact_expiry_backfill_again_spec.rb index 4f36a95f9cf..78b6a71c609 100644 --- a/spec/migrations/20210413132500_reschedule_artifact_expiry_backfill_again_spec.rb +++ b/spec/migrations/20210413132500_reschedule_artifact_expiry_backfill_again_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210413132500_reschedule_artifact_expiry_backfill_again.rb') +require_migration!('reschedule_artifact_expiry_backfill_again') RSpec.describe RescheduleArtifactExpiryBackfillAgain, :migration do let(:migration_class) { Gitlab::BackgroundMigration::BackfillArtifactExpiryDate } diff --git a/spec/migrations/20210421163509_schedule_update_jira_tracker_data_deployment_type_based_on_url_spec.rb b/spec/migrations/20210421163509_schedule_update_jira_tracker_data_deployment_type_based_on_url_spec.rb new file mode 100644 index 00000000000..ea0a16212dd --- /dev/null +++ b/spec/migrations/20210421163509_schedule_update_jira_tracker_data_deployment_type_based_on_url_spec.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration!('schedule_update_jira_tracker_data_deployment_type_based_on_url') + +RSpec.describe ScheduleUpdateJiraTrackerDataDeploymentTypeBasedOnUrl, :migration do + let(:services_table) { table(:services) } + let(:service_jira_cloud) { services_table.create!(id: 1, type: 'JiraService') } + let(:service_jira_server) { services_table.create!(id: 2, type: 'JiraService') } + + before do + jira_tracker_data = Class.new(ApplicationRecord) do + self.table_name = 'jira_tracker_data' + + def self.encryption_options + { + key: Settings.attr_encrypted_db_key_base_32, + encode: true, + mode: :per_attribute_iv, + algorithm: 'aes-256-gcm' + } + end + + attr_encrypted :url, encryption_options + attr_encrypted :api_url, encryption_options + attr_encrypted :username, encryption_options + attr_encrypted :password, encryption_options + end + + stub_const('JiraTrackerData', jira_tracker_data) + stub_const("#{described_class}::BATCH_SIZE", 1) + end + + let!(:tracker_data_cloud) { JiraTrackerData.create!(id: 1, service_id: service_jira_cloud.id, url: "https://test-domain.atlassian.net", deployment_type: 0) } + let!(:tracker_data_server) { JiraTrackerData.create!(id: 2, service_id: service_jira_server.id, url: "http://totally-not-jira-server.company.org", deployment_type: 0) } + + around do |example| + freeze_time { Sidekiq::Testing.fake! { example.run } } + end + + it 'schedules background migration' do + migrate! + + expect(BackgroundMigrationWorker.jobs.size).to eq(2) + expect(described_class::MIGRATION).to be_scheduled_migration(tracker_data_cloud.id, tracker_data_cloud.id) + expect(described_class::MIGRATION).to be_scheduled_migration(tracker_data_server.id, tracker_data_server.id) + end +end diff --git a/spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb b/spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb index 1588cec0258..3b462c884c4 100644 --- a/spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb +++ b/spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210423160427_schedule_drop_invalid_vulnerabilities.rb') +require_migration!('schedule_drop_invalid_vulnerabilities') RSpec.describe ScheduleDropInvalidVulnerabilities, :migration do let_it_be(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } diff --git a/spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb b/spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb index 3e57ffb4729..03ce0a430e5 100644 --- a/spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb +++ b/spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb @@ -1,15 +1,15 @@ # frozen_string_literal: true - +# require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210430134202_copy_adoption_snapshot_namespace.rb') +require_migration!('copy_adoption_snapshot_namespace') -RSpec.describe CopyAdoptionSnapshotNamespace, :migration do +RSpec.describe CopyAdoptionSnapshotNamespace, :migration, schema: 20210430124630 do let(:namespaces_table) { table(:namespaces) } let(:segments_table) { table(:analytics_devops_adoption_segments) } let(:snapshots_table) { table(:analytics_devops_adoption_snapshots) } - before do + it 'updates all snapshots without namespace set' do namespaces_table.create!(id: 123, name: 'group1', path: 'group1') namespaces_table.create!(id: 124, name: 'group2', path: 'group2') @@ -19,9 +19,7 @@ RSpec.describe CopyAdoptionSnapshotNamespace, :migration do create_snapshot(id: 1, segment_id: 1) create_snapshot(id: 2, segment_id: 2) create_snapshot(id: 3, segment_id: 2, namespace_id: 123) - end - it 'updates all snapshots without namespace set' do migrate! expect(snapshots_table.find(1).namespace_id).to eq 123 diff --git a/spec/migrations/20210430135954_copy_adoption_segments_namespace_spec.rb b/spec/migrations/20210430135954_copy_adoption_segments_namespace_spec.rb index a37772db28c..abdfd03f97e 100644 --- a/spec/migrations/20210430135954_copy_adoption_segments_namespace_spec.rb +++ b/spec/migrations/20210430135954_copy_adoption_segments_namespace_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210430135954_copy_adoption_segments_namespace.rb') +require_migration!('copy_adoption_segments_namespace') RSpec.describe CopyAdoptionSegmentsNamespace, :migration do let(:namespaces_table) { table(:namespaces) } diff --git a/spec/migrations/20210503105845_add_project_value_stream_id_to_project_stages_spec.rb b/spec/migrations/20210503105845_add_project_value_stream_id_to_project_stages_spec.rb index 6e1cc63e42a..4969d82d183 100644 --- a/spec/migrations/20210503105845_add_project_value_stream_id_to_project_stages_spec.rb +++ b/spec/migrations/20210503105845_add_project_value_stream_id_to_project_stages_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'migrate', '20210503105845_add_project_value_stream_id_to_project_stages.rb') +require_migration!('add_project_value_stream_id_to_project_stages') RSpec.describe AddProjectValueStreamIdToProjectStages, schema: 20210503105022 do let(:stages) { table(:analytics_cycle_analytics_project_stages) } diff --git a/spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb b/spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb index 6ffaa26f923..969a2e58947 100644 --- a/spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb +++ b/spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210511142748_schedule_drop_invalid_vulnerabilities2.rb') +require_migration!('schedule_drop_invalid_vulnerabilities2') RSpec.describe ScheduleDropInvalidVulnerabilities2, :migration do let_it_be(:background_migration_jobs) { table(:background_migration_jobs) } diff --git a/spec/migrations/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects_spec.rb b/spec/migrations/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects_spec.rb new file mode 100644 index 00000000000..b7524ee0bff --- /dev/null +++ b/spec/migrations/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration!('schedule_cleanup_orphaned_lfs_objects_projects') + +RSpec.describe ScheduleCleanupOrphanedLfsObjectsProjects, schema: 20210511165250 do + let(:lfs_objects_projects) { table(:lfs_objects_projects) } + let(:projects) { table(:projects) } + let(:namespaces) { table(:namespaces) } + let(:lfs_objects) { table(:lfs_objects) } + + let(:namespace) { namespaces.create!(name: 'namespace', path: 'namespace') } + let(:project) { projects.create!(namespace_id: namespace.id) } + let(:another_project) { projects.create!(namespace_id: namespace.id) } + let(:lfs_object) { lfs_objects.create!(oid: 'abcdef', size: 1) } + let(:another_lfs_object) { lfs_objects.create!(oid: '1abcde', size: 2) } + + describe '#up' do + it 'schedules CleanupOrphanedLfsObjectsProjects background jobs' do + stub_const("#{described_class}::BATCH_SIZE", 2) + + lfs_objects_project1 = lfs_objects_projects.create!(project_id: project.id, lfs_object_id: lfs_object.id) + lfs_objects_project2 = lfs_objects_projects.create!(project_id: another_project.id, lfs_object_id: lfs_object.id) + lfs_objects_project3 = lfs_objects_projects.create!(project_id: project.id, lfs_object_id: another_lfs_object.id) + lfs_objects_project4 = lfs_objects_projects.create!(project_id: another_project.id, lfs_object_id: another_lfs_object.id) + + freeze_time do + migrate! + + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(2.minutes, lfs_objects_project1.id, lfs_objects_project2.id) + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(4.minutes, lfs_objects_project3.id, lfs_objects_project4.id) + + expect(BackgroundMigrationWorker.jobs.size).to eq(2) + end + end + end +end diff --git a/spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb b/spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb new file mode 100644 index 00000000000..36d85d1f745 --- /dev/null +++ b/spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration!('fix_total_stage_in_vsa') + +RSpec.describe FixTotalStageInVsa, :migration, schema: 20210518001450 do + let(:namespaces) { table(:namespaces) } + let(:group_value_streams) { table(:analytics_cycle_analytics_group_value_streams) } + let(:group_stages) { table(:analytics_cycle_analytics_group_stages) } + + let!(:group) { namespaces.create!(name: 'ns1', path: 'ns1', type: 'Group') } + let!(:group_vs_1) { group_value_streams.create!(name: 'default', group_id: group.id) } + let!(:group_vs_2) { group_value_streams.create!(name: 'other', group_id: group.id) } + let!(:group_vs_3) { group_value_streams.create!(name: 'another', group_id: group.id) } + let!(:group_stage_total) { group_stages.create!(name: 'Total', custom: false, group_id: group.id, group_value_stream_id: group_vs_1.id, start_event_identifier: 1, end_event_identifier: 2) } + let!(:group_stage_different_name) { group_stages.create!(name: 'Issue', custom: false, group_id: group.id, group_value_stream_id: group_vs_2.id, start_event_identifier: 1, end_event_identifier: 2) } + let!(:group_stage_total_custom) { group_stages.create!(name: 'Total', custom: true, group_id: group.id, group_value_stream_id: group_vs_3.id, start_event_identifier: 1, end_event_identifier: 2) } + + it 'deduplicates issue_metrics table' do + migrate! + + group_stage_total.reload + group_stage_different_name.reload + group_stage_total_custom.reload + + expect(group_stage_total.custom).to eq(true) + expect(group_stage_different_name.custom).to eq(false) + expect(group_stage_total_custom.custom).to eq(true) + end +end diff --git a/spec/migrations/20210601080039_group_protected_environments_add_index_and_constraint_spec.rb b/spec/migrations/20210601080039_group_protected_environments_add_index_and_constraint_spec.rb new file mode 100644 index 00000000000..d3154596b26 --- /dev/null +++ b/spec/migrations/20210601080039_group_protected_environments_add_index_and_constraint_spec.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration!('group_protected_environments_add_index_and_constraint') + +RSpec.describe GroupProtectedEnvironmentsAddIndexAndConstraint do + let(:migration) { described_class.new } + let(:protected_environments) { table(:protected_environments) } + let(:group) { table(:namespaces).create!(name: 'group', path: 'group') } + let(:project) { table(:projects).create!(name: 'project', path: 'project', namespace_id: group.id) } + + describe '#down' do + it 'deletes only group-level configurations' do + migration.up + + project_protections = [ + protected_environments.create!(project_id: project.id, name: 'production'), + protected_environments.create!(project_id: project.id, name: 'staging') + ] + protected_environments.create!(group_id: group.id, name: 'production') + protected_environments.create!(group_id: group.id, name: 'staging') + + migration.down + + expect(protected_environments.pluck(:id)) + .to match_array project_protections.map(&:id) + end + end +end diff --git a/spec/migrations/20210603222333_remove_builds_email_service_from_services_spec.rb b/spec/migrations/20210603222333_remove_builds_email_service_from_services_spec.rb new file mode 100644 index 00000000000..c457be79834 --- /dev/null +++ b/spec/migrations/20210603222333_remove_builds_email_service_from_services_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'spec_helper' + +require_migration!('remove_builds_email_service_from_services') + +RSpec.describe RemoveBuildsEmailServiceFromServices do + let(:namespaces) { table(:namespaces) } + let(:projects) { table(:projects) } + let(:services) { table(:services) } + let(:namespace) { namespaces.create!(name: 'foo', path: 'bar') } + let(:project) { projects.create!(namespace_id: namespace.id) } + + it 'correctly deletes `BuildsEmailService` services' do + services.create!(project_id: project.id, type: 'BuildsEmailService') + services.create!(project_id: project.id, type: 'OtherService') + + expect(services.all.pluck(:type)).to match_array %w[BuildsEmailService OtherService] + + migrate! + + expect(services.all.pluck(:type)).to eq %w[OtherService] + end +end diff --git a/spec/migrations/add_default_and_free_plans_spec.rb b/spec/migrations/add_default_and_free_plans_spec.rb index 75787896999..7256e4928af 100644 --- a/spec/migrations/add_default_and_free_plans_spec.rb +++ b/spec/migrations/add_default_and_free_plans_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20191023152913_add_default_and_free_plans.rb') +require_migration!('add_default_and_free_plans') RSpec.describe AddDefaultAndFreePlans do describe 'migrate' do diff --git a/spec/migrations/add_default_value_stream_to_groups_with_group_stages_spec.rb b/spec/migrations/add_default_value_stream_to_groups_with_group_stages_spec.rb index 31dee29a39b..f21acbc56df 100644 --- a/spec/migrations/add_default_value_stream_to_groups_with_group_stages_spec.rb +++ b/spec/migrations/add_default_value_stream_to_groups_with_group_stages_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200701070435_add_default_value_stream_to_groups_with_group_stages.rb') +require_migration! RSpec.describe AddDefaultValueStreamToGroupsWithGroupStages, schema: 20200624142207 do let(:groups) { table(:namespaces) } diff --git a/spec/migrations/add_deploy_token_type_to_deploy_tokens_spec.rb b/spec/migrations/add_deploy_token_type_to_deploy_tokens_spec.rb index b33320c922a..f90bfcd313c 100644 --- a/spec/migrations/add_deploy_token_type_to_deploy_tokens_spec.rb +++ b/spec/migrations/add_deploy_token_type_to_deploy_tokens_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200122161638_add_deploy_token_type_to_deploy_tokens.rb') +require_migration! RSpec.describe AddDeployTokenTypeToDeployTokens do let(:deploy_tokens) { table(:deploy_tokens) } diff --git a/spec/migrations/add_incident_settings_to_all_existing_projects_spec.rb b/spec/migrations/add_incident_settings_to_all_existing_projects_spec.rb index a62fc43df02..3e0bc64bb23 100644 --- a/spec/migrations/add_incident_settings_to_all_existing_projects_spec.rb +++ b/spec/migrations/add_incident_settings_to_all_existing_projects_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200609212701_add_incident_settings_to_all_existing_projects.rb') +require_migration! RSpec.describe AddIncidentSettingsToAllExistingProjects, :migration do let(:project_incident_management_settings) { table(:project_incident_management_settings) } diff --git a/spec/migrations/add_new_post_eoa_plans_spec.rb b/spec/migrations/add_new_post_eoa_plans_spec.rb index 5ae227a6617..02360d5a12d 100644 --- a/spec/migrations/add_new_post_eoa_plans_spec.rb +++ b/spec/migrations/add_new_post_eoa_plans_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210205104425_add_new_post_eoa_plans.rb') +require_migration! RSpec.describe AddNewPostEoaPlans do let(:plans) { table(:plans) } diff --git a/spec/migrations/add_partial_index_to_ci_builds_table_on_user_id_name_spec.rb b/spec/migrations/add_partial_index_to_ci_builds_table_on_user_id_name_spec.rb index 018d48bea66..ab4d6f43797 100644 --- a/spec/migrations/add_partial_index_to_ci_builds_table_on_user_id_name_spec.rb +++ b/spec/migrations/add_partial_index_to_ci_builds_table_on_user_id_name_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200908064229_add_partial_index_to_ci_builds_table_on_user_id_name.rb') +require_migration! RSpec.describe AddPartialIndexToCiBuildsTableOnUserIdName do let(:migration) { described_class.new } diff --git a/spec/migrations/add_repository_storages_weighted_to_application_settings_spec.rb b/spec/migrations/add_repository_storages_weighted_to_application_settings_spec.rb index 6c6c63d8614..bc4c510fea3 100644 --- a/spec/migrations/add_repository_storages_weighted_to_application_settings_spec.rb +++ b/spec/migrations/add_repository_storages_weighted_to_application_settings_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200508203901_add_repository_storages_weighted_to_application_settings.rb') +require_migration! RSpec.describe AddRepositoryStoragesWeightedToApplicationSettings, :migration do let(:storages) { { "foo" => {}, "baz" => {} } } diff --git a/spec/migrations/add_temporary_partial_index_on_project_id_to_services_spec.rb b/spec/migrations/add_temporary_partial_index_on_project_id_to_services_spec.rb index 1be699f5636..dae0241b895 100644 --- a/spec/migrations/add_temporary_partial_index_on_project_id_to_services_spec.rb +++ b/spec/migrations/add_temporary_partial_index_on_project_id_to_services_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200114112932_add_temporary_partial_index_on_project_id_to_services.rb') +require_migration! RSpec.describe AddTemporaryPartialIndexOnProjectIdToServices do let(:migration) { described_class.new } diff --git a/spec/migrations/add_unique_constraint_to_approvals_user_id_and_merge_request_id_spec.rb b/spec/migrations/add_unique_constraint_to_approvals_user_id_and_merge_request_id_spec.rb index 391bc59cdc0..795de51d387 100644 --- a/spec/migrations/add_unique_constraint_to_approvals_user_id_and_merge_request_id_spec.rb +++ b/spec/migrations/add_unique_constraint_to_approvals_user_id_and_merge_request_id_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190404143330_add_unique_constraint_to_approvals_user_id_and_merge_request_id.rb') +require_migration! RSpec.describe AddUniqueConstraintToApprovalsUserIdAndMergeRequestId do let(:migration) { described_class.new } diff --git a/spec/migrations/backfill_and_add_not_null_constraint_to_released_at_column_on_releases_table_spec.rb b/spec/migrations/backfill_and_add_not_null_constraint_to_released_at_column_on_releases_table_spec.rb index 6c782af9a31..ea6599fc122 100644 --- a/spec/migrations/backfill_and_add_not_null_constraint_to_released_at_column_on_releases_table_spec.rb +++ b/spec/migrations/backfill_and_add_not_null_constraint_to_released_at_column_on_releases_table_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190628185004_backfill_and_add_not_null_constraint_to_released_at_column_on_releases_table.rb') +require_migration! RSpec.describe BackfillAndAddNotNullConstraintToReleasedAtColumnOnReleasesTable do let(:releases) { table(:releases) } diff --git a/spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb b/spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb new file mode 100644 index 00000000000..6c116120f05 --- /dev/null +++ b/spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe BackfillClustersIntegrationPrometheusEnabled, :migration do + def create_cluster!(label = rand(2**64).to_s) + table(:clusters).create!( + name: "cluster: #{label}", + created_at: 1.day.ago, + updated_at: 1.day.ago + ) + end + + def create_clusters_applications_prometheus!(label, status:, cluster_id: nil) + table(:clusters_applications_prometheus).create!( + cluster_id: cluster_id || create_cluster!(label).id, + status: status, + version: "#{label}: version", + created_at: 1.day.ago, # artificially aged + updated_at: 1.day.ago, # artificially aged + encrypted_alert_manager_token: "#{label}: token", + encrypted_alert_manager_token_iv: "#{label}: iv" + ) + end + + def create_clusters_integration_prometheus! + table(:clusters_integration_prometheus).create!( + cluster_id: create_cluster!.id, + enabled: false, + created_at: 1.day.ago, + updated_at: 1.day.ago + ) + end + + RSpec::Matchers.define :be_enabled_and_match_application_values do |application| + match do |actual| + actual.enabled == true && + actual.encrypted_alert_manager_token == application.encrypted_alert_manager_token && + actual.encrypted_alert_manager_token_iv == application.encrypted_alert_manager_token_iv + end + end + + describe '#up' do + it 'backfills the enabled status and alert manager credentials from clusters_applications_prometheus' do + status_installed = 3 + status_externally_installed = 11 + status_installable = 0 + + existing_integration = create_clusters_integration_prometheus! + unaffected_existing_integration = create_clusters_integration_prometheus! + app_installed = create_clusters_applications_prometheus!('installed', status: status_installed) + app_installed_existing_integration = create_clusters_applications_prometheus!('installed, existing integration', status: status_installed, cluster_id: existing_integration.cluster_id) + app_externally_installed = create_clusters_applications_prometheus!('externally installed', status: status_externally_installed) + app_other_status = create_clusters_applications_prometheus!('other status', status: status_installable) + + migrate! + + integrations = table(:clusters_integration_prometheus).all.index_by(&:cluster_id) + + expect(unaffected_existing_integration.reload).to eq unaffected_existing_integration + + integration_installed = integrations[app_installed.cluster_id] + expect(integration_installed).to be_enabled_and_match_application_values(app_installed) + expect(integration_installed.updated_at).to be >= 1.minute.ago # recently updated + expect(integration_installed.updated_at).to eq(integration_installed.created_at) # recently created + + expect(existing_integration.reload).to be_enabled_and_match_application_values(app_installed_existing_integration) + expect(existing_integration.updated_at).to be >= 1.minute.ago # recently updated + expect(existing_integration.updated_at).not_to eq(existing_integration.created_at) # but not recently created + + integration_externally_installed = integrations[app_externally_installed.cluster_id] + expect(integration_externally_installed).to be_enabled_and_match_application_values(app_externally_installed) + expect(integration_externally_installed.updated_at).to be >= 1.minute.ago # recently updated + expect(integration_externally_installed.updated_at).to eq(integration_externally_installed.created_at) # recently created + + expect(integrations[app_other_status.cluster_id]).to be_nil + end + end +end diff --git a/spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb b/spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb new file mode 100644 index 00000000000..da32e92ebb0 --- /dev/null +++ b/spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb @@ -0,0 +1,100 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe BackfillEscalationPoliciesForOncallSchedules do + let_it_be(:projects) { table(:projects) } + let_it_be(:schedules) { table(:incident_management_oncall_schedules) } + let_it_be(:policies) { table(:incident_management_escalation_policies) } + let_it_be(:rules) { table(:incident_management_escalation_rules) } + + # Project with no schedules + let_it_be(:namespace) { table(:namespaces).create!(name: 'gitlab', path: 'gitlab') } + let_it_be(:project_a) { projects.create!(namespace_id: namespace.id) } + + context 'with backfill-able schedules' do + # Project with one schedule + let_it_be(:project_b) { projects.create!(namespace_id: namespace.id) } + let_it_be(:schedule_b1) { schedules.create!(project_id: project_b.id, iid: 1, name: 'Schedule B1') } + + # Project with multiple schedules + let_it_be(:project_c) { projects.create!(namespace_id: namespace.id) } + let_it_be(:schedule_c1) { schedules.create!(project_id: project_c.id, iid: 1, name: 'Schedule C1') } + let_it_be(:schedule_c2) { schedules.create!(project_id: project_c.id, iid: 2, name: 'Schedule C2') } + + # Project with a single schedule which already has a policy + let_it_be(:project_d) { projects.create!(namespace_id: namespace.id) } + let_it_be(:schedule_d1) { schedules.create!(project_id: project_d.id, iid: 1, name: 'Schedule D1') } + let_it_be(:policy_d1) { policies.create!(project_id: project_d.id, name: 'Policy D1') } + let_it_be(:rule_d1) { rules.create!(policy_id: policy_d1.id, oncall_schedule_id: schedule_d1.id, status: 2, elapsed_time_seconds: 60) } + + # Project with a multiple schedule, one of which already has a policy + let_it_be(:project_e) { projects.create!(namespace_id: namespace.id) } + let_it_be(:schedule_e1) { schedules.create!(project_id: project_e.id, iid: 1, name: 'Schedule E1') } + let_it_be(:schedule_e2) { schedules.create!(project_id: project_e.id, iid: 2, name: 'Schedule E2') } + let_it_be(:policy_e1) { policies.create!(project_id: project_e.id, name: 'Policy E1') } + let_it_be(:rule_e1) { rules.create!(policy_id: policy_e1.id, oncall_schedule_id: schedule_e2.id, status: 2, elapsed_time_seconds: 60) } + + # Project with a multiple schedule, with multiple policies + let_it_be(:project_f) { projects.create!(namespace_id: namespace.id) } + let_it_be(:schedule_f1) { schedules.create!(project_id: project_f.id, iid: 1, name: 'Schedule F1') } + let_it_be(:schedule_f2) { schedules.create!(project_id: project_f.id, iid: 2, name: 'Schedule F2') } + let_it_be(:policy_f1) { policies.create!(project_id: project_f.id, name: 'Policy F1') } + let_it_be(:rule_f1) { rules.create!(policy_id: policy_f1.id, oncall_schedule_id: schedule_f1.id, status: 2, elapsed_time_seconds: 60) } + let_it_be(:rule_f2) { rules.create!(policy_id: policy_f1.id, oncall_schedule_id: schedule_f2.id, status: 2, elapsed_time_seconds: 60) } + let_it_be(:policy_f2) { policies.create!(project_id: project_f.id, name: 'Policy F2') } + let_it_be(:rule_f3) { rules.create!(policy_id: policy_f2.id, oncall_schedule_id: schedule_f2.id, status: 1, elapsed_time_seconds: 10) } + + it 'backfills escalation policies correctly' do + expect { migrate! } + .to change(policies, :count).by(2) + .and change(rules, :count).by(3) + + new_policy_b1, new_policy_c1 = new_polices = policies.last(2) + new_rules = rules.last(3) + + expect(new_polices).to all have_attributes(name: 'On-call Escalation Policy') + expect(new_policy_b1.description).to eq('Immediately notify Schedule B1') + expect(new_policy_c1.description).to eq('Immediately notify Schedule C1') + expect(policies.pluck(:project_id)).to eq([ + project_d.id, + project_e.id, + project_f.id, + project_f.id, + project_b.id, + project_c.id + ]) + + expect(new_rules).to all have_attributes(status: 1, elapsed_time_seconds: 0) + expect(rules.pluck(:policy_id)).to eq([ + rule_d1.policy_id, + rule_e1.policy_id, + rule_f1.policy_id, + rule_f2.policy_id, + rule_f3.policy_id, + new_policy_b1.id, + new_policy_c1.id, + new_policy_c1.id + ]) + expect(rules.pluck(:oncall_schedule_id)).to eq([ + rule_d1.oncall_schedule_id, + rule_e1.oncall_schedule_id, + rule_f1.oncall_schedule_id, + rule_f2.oncall_schedule_id, + rule_f3.oncall_schedule_id, + schedule_b1.id, + schedule_c1.id, + schedule_c2.id + ]) + end + end + + context 'with no schedules' do + it 'does nothing' do + expect { migrate! } + .to not_change(policies, :count) + .and not_change(rules, :count) + end + end +end diff --git a/spec/migrations/backfill_imported_snippet_repositories_spec.rb b/spec/migrations/backfill_imported_snippet_repositories_spec.rb index 356551f176e..7052433c66d 100644 --- a/spec/migrations/backfill_imported_snippet_repositories_spec.rb +++ b/spec/migrations/backfill_imported_snippet_repositories_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200608072931_backfill_imported_snippet_repositories.rb') +require_migration! RSpec.describe BackfillImportedSnippetRepositories do let(:users) { table(:users) } diff --git a/spec/migrations/backfill_operations_feature_flags_active_spec.rb b/spec/migrations/backfill_operations_feature_flags_active_spec.rb index e49b317d850..a28f648c75a 100644 --- a/spec/migrations/backfill_operations_feature_flags_active_spec.rb +++ b/spec/migrations/backfill_operations_feature_flags_active_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20191213184609_backfill_operations_feature_flags_active.rb') +require_migration! RSpec.describe BackfillOperationsFeatureFlagsActive do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/backfill_operations_feature_flags_iid_spec.rb b/spec/migrations/backfill_operations_feature_flags_iid_spec.rb index 1ade08f657e..3c400840f98 100644 --- a/spec/migrations/backfill_operations_feature_flags_iid_spec.rb +++ b/spec/migrations/backfill_operations_feature_flags_iid_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200117194850_backfill_operations_feature_flags_iid.rb') +require_migration! RSpec.describe BackfillOperationsFeatureFlagsIid do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/backfill_releases_table_updated_at_and_add_not_null_constraints_to_timestamps_spec.rb b/spec/migrations/backfill_releases_table_updated_at_and_add_not_null_constraints_to_timestamps_spec.rb index 22c93d37816..6e8bcfc050d 100644 --- a/spec/migrations/backfill_releases_table_updated_at_and_add_not_null_constraints_to_timestamps_spec.rb +++ b/spec/migrations/backfill_releases_table_updated_at_and_add_not_null_constraints_to_timestamps_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190920194925_backfill_releases_table_updated_at_and_add_not_null_constraints_to_timestamps.rb') +require_migration! RSpec.describe BackfillReleasesTableUpdatedAtAndAddNotNullConstraintsToTimestamps do let(:releases) { table(:releases) } diff --git a/spec/migrations/backfill_snippet_repositories_spec.rb b/spec/migrations/backfill_snippet_repositories_spec.rb index b176b8d49ec..64cfc9cc57b 100644 --- a/spec/migrations/backfill_snippet_repositories_spec.rb +++ b/spec/migrations/backfill_snippet_repositories_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200420094444_backfill_snippet_repositories.rb') +require_migration! RSpec.describe BackfillSnippetRepositories do let(:users) { table(:users) } diff --git a/spec/migrations/backfill_status_page_published_incidents_spec.rb b/spec/migrations/backfill_status_page_published_incidents_spec.rb index 674484cdf0a..fa4bb182362 100644 --- a/spec/migrations/backfill_status_page_published_incidents_spec.rb +++ b/spec/migrations/backfill_status_page_published_incidents_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200421195234_backfill_status_page_published_incidents.rb') +require_migration! RSpec.describe BackfillStatusPagePublishedIncidents, :migration do subject(:migration) { described_class.new } diff --git a/spec/migrations/backport_enterprise_schema_spec.rb b/spec/migrations/backport_enterprise_schema_spec.rb index b76b53dc259..de6821001b4 100644 --- a/spec/migrations/backport_enterprise_schema_spec.rb +++ b/spec/migrations/backport_enterprise_schema_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190402150158_backport_enterprise_schema.rb') +require_migration! RSpec.describe BackportEnterpriseSchema, schema: 20190329085614 do include MigrationsHelpers diff --git a/spec/migrations/cap_designs_filename_length_to_new_limit_spec.rb b/spec/migrations/cap_designs_filename_length_to_new_limit_spec.rb index 382ce2e1da4..702f2e6d9bd 100644 --- a/spec/migrations/cap_designs_filename_length_to_new_limit_spec.rb +++ b/spec/migrations/cap_designs_filename_length_to_new_limit_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200602013901_cap_designs_filename_length_to_new_limit') +require_migration! RSpec.describe CapDesignsFilenameLengthToNewLimit, :migration, schema: 20200528125905 do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/change_outbound_local_requests_whitelist_default_spec.rb b/spec/migrations/change_outbound_local_requests_whitelist_default_spec.rb index 53b02425010..24e6f3480f9 100644 --- a/spec/migrations/change_outbound_local_requests_whitelist_default_spec.rb +++ b/spec/migrations/change_outbound_local_requests_whitelist_default_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190725012225_change_outbound_local_requests_whitelist_default.rb') +require_migration! RSpec.describe ChangeOutboundLocalRequestsWhitelistDefault do let(:application_settings) { table(:application_settings) } diff --git a/spec/migrations/change_packages_size_defaults_in_project_statistics_spec.rb b/spec/migrations/change_packages_size_defaults_in_project_statistics_spec.rb index 8614bfea7cb..5e3118b0dea 100644 --- a/spec/migrations/change_packages_size_defaults_in_project_statistics_spec.rb +++ b/spec/migrations/change_packages_size_defaults_in_project_statistics_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190516155724_change_packages_size_defaults_in_project_statistics.rb') +require_migration! RSpec.describe ChangePackagesSizeDefaultsInProjectStatistics do let(:project_statistics) { table(:project_statistics) } diff --git a/spec/migrations/change_web_hook_events_default_spec.rb b/spec/migrations/change_web_hook_events_default_spec.rb index 3b1a65ece17..aad187187d0 100644 --- a/spec/migrations/change_web_hook_events_default_spec.rb +++ b/spec/migrations/change_web_hook_events_default_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20210420012444_change_web_hook_events_default.rb') +require_migration! RSpec.describe ChangeWebHookEventsDefault do let(:web_hooks) { table(:web_hooks) } diff --git a/spec/migrations/clean_grafana_url_spec.rb b/spec/migrations/clean_grafana_url_spec.rb index caaf44b884d..7a81eb3058b 100644 --- a/spec/migrations/clean_grafana_url_spec.rb +++ b/spec/migrations/clean_grafana_url_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200214085940_clean_grafana_url.rb') +require_migration! RSpec.describe CleanGrafanaUrl do let(:application_settings_table) { table(:application_settings) } diff --git a/spec/migrations/clean_up_noteable_id_for_notes_on_commits_spec.rb b/spec/migrations/clean_up_noteable_id_for_notes_on_commits_spec.rb index 268fadee0af..8de30af13fd 100644 --- a/spec/migrations/clean_up_noteable_id_for_notes_on_commits_spec.rb +++ b/spec/migrations/clean_up_noteable_id_for_notes_on_commits_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190313092516_clean_up_noteable_id_for_notes_on_commits.rb') +require_migration! RSpec.describe CleanUpNoteableIdForNotesOnCommits do let(:notes) { table(:notes) } diff --git a/spec/migrations/clean_up_pending_builds_table_spec.rb b/spec/migrations/clean_up_pending_builds_table_spec.rb new file mode 100644 index 00000000000..9c8d4413337 --- /dev/null +++ b/spec/migrations/clean_up_pending_builds_table_spec.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe CleanUpPendingBuildsTable do + let(:namespaces) { table(:namespaces) } + let(:projects) { table(:projects) } + let(:queue) { table(:ci_pending_builds) } + let(:builds) { table(:ci_builds) } + + before do + namespaces.create!(id: 123, name: 'sample', path: 'sample') + projects.create!(id: 123, name: 'sample', path: 'sample', namespace_id: 123) + + builds.create!(id: 1, project_id: 123, status: 'pending', type: 'Ci::Build') + builds.create!(id: 2, project_id: 123, status: 'pending', type: 'GenericCommitStatus') + builds.create!(id: 3, project_id: 123, status: 'success', type: 'Ci::Bridge') + builds.create!(id: 4, project_id: 123, status: 'success', type: 'Ci::Build') + builds.create!(id: 5, project_id: 123, status: 'running', type: 'Ci::Build') + builds.create!(id: 6, project_id: 123, status: 'created', type: 'Ci::Build') + + queue.create!(id: 1, project_id: 123, build_id: 1) + queue.create!(id: 2, project_id: 123, build_id: 4) + queue.create!(id: 3, project_id: 123, build_id: 5) + end + + it 'removes duplicated data from pending builds table' do + migrate! + + expect(queue.all.count).to eq 1 + expect(queue.first.id).to eq 1 + expect(builds.all.count).to eq 6 + end + + context 'when there are multiple batches' do + before do + stub_const("#{described_class}::BATCH_SIZE", 1) + end + + it 'iterates the data correctly' do + migrate! + + expect(queue.all.count).to eq 1 + end + end +end diff --git a/spec/migrations/cleanup_empty_commit_user_mentions_spec.rb b/spec/migrations/cleanup_empty_commit_user_mentions_spec.rb index da714e7da4c..d128c13e212 100644 --- a/spec/migrations/cleanup_empty_commit_user_mentions_spec.rb +++ b/spec/migrations/cleanup_empty_commit_user_mentions_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200128133510_cleanup_empty_commit_user_mentions') +require_migration! RSpec.describe CleanupEmptyCommitUserMentions, :migration, :sidekiq do let(:users) { table(:users) } diff --git a/spec/migrations/cleanup_group_import_states_with_null_user_id_spec.rb b/spec/migrations/cleanup_group_import_states_with_null_user_id_spec.rb index f9285c857de..acd6a19779d 100644 --- a/spec/migrations/cleanup_group_import_states_with_null_user_id_spec.rb +++ b/spec/migrations/cleanup_group_import_states_with_null_user_id_spec.rb @@ -12,8 +12,8 @@ # To solve this problem, use SchemaVersionFinder to set schema one version prior to AddNotNullConstraintToUserOnGroupImportStates require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200907092715_add_not_null_constraint_to_user_on_group_import_states.rb') -require Rails.root.join('db', 'post_migrate', '20200909161624_cleanup_group_import_states_with_null_user_id.rb') +require_migration!('add_not_null_constraint_to_user_on_group_import_states') +require_migration! RSpec.describe CleanupGroupImportStatesWithNullUserId, :migration, schema: MigrationHelpers::SchemaVersionFinder.migration_prior(AddNotNullConstraintToUserOnGroupImportStates) do diff --git a/spec/migrations/cleanup_legacy_artifact_migration_spec.rb b/spec/migrations/cleanup_legacy_artifact_migration_spec.rb index 83b88a0cf1a..6362965cc31 100644 --- a/spec/migrations/cleanup_legacy_artifact_migration_spec.rb +++ b/spec/migrations/cleanup_legacy_artifact_migration_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190104182041_cleanup_legacy_artifact_migration.rb') +require_migration!('cleanup_legacy_artifact_migration') RSpec.describe CleanupLegacyArtifactMigration, :redis do let(:migration) { spy('migration') } diff --git a/spec/migrations/cleanup_move_container_registry_enabled_to_project_features_spec.rb b/spec/migrations/cleanup_move_container_registry_enabled_to_project_features_spec.rb new file mode 100644 index 00000000000..3c39327304e --- /dev/null +++ b/spec/migrations/cleanup_move_container_registry_enabled_to_project_features_spec.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration!('cleanup_move_container_registry_enabled_to_project_feature') + +RSpec.describe CleanupMoveContainerRegistryEnabledToProjectFeature, :migration do + let(:namespace) { table(:namespaces).create!(name: 'gitlab', path: 'gitlab-org') } + let(:non_null_project_features) { { pages_access_level: 20 } } + let(:bg_class_name) { 'MoveContainerRegistryEnabledToProjectFeature' } + + let!(:project1) { table(:projects).create!(namespace_id: namespace.id, name: 'project 1', container_registry_enabled: true) } + let!(:project2) { table(:projects).create!(namespace_id: namespace.id, name: 'project 2', container_registry_enabled: false) } + let!(:project3) { table(:projects).create!(namespace_id: namespace.id, name: 'project 3', container_registry_enabled: nil) } + + let!(:project4) { table(:projects).create!(namespace_id: namespace.id, name: 'project 4', container_registry_enabled: true) } + let!(:project5) { table(:projects).create!(namespace_id: namespace.id, name: 'project 5', container_registry_enabled: false) } + let!(:project6) { table(:projects).create!(namespace_id: namespace.id, name: 'project 6', container_registry_enabled: nil) } + + let!(:project_feature1) { table(:project_features).create!(project_id: project1.id, container_registry_access_level: 20, **non_null_project_features) } + let!(:project_feature2) { table(:project_features).create!(project_id: project2.id, container_registry_access_level: 0, **non_null_project_features) } + let!(:project_feature3) { table(:project_features).create!(project_id: project3.id, container_registry_access_level: 0, **non_null_project_features) } + + let!(:project_feature4) { table(:project_features).create!(project_id: project4.id, container_registry_access_level: 0, **non_null_project_features) } + let!(:project_feature5) { table(:project_features).create!(project_id: project5.id, container_registry_access_level: 20, **non_null_project_features) } + let!(:project_feature6) { table(:project_features).create!(project_id: project6.id, container_registry_access_level: 20, **non_null_project_features) } + + let!(:background_migration_job1) { table(:background_migration_jobs).create!(class_name: bg_class_name, arguments: [project4.id, project5.id], status: 0) } + let!(:background_migration_job2) { table(:background_migration_jobs).create!(class_name: bg_class_name, arguments: [project6.id, project6.id], status: 0) } + let!(:background_migration_job3) { table(:background_migration_jobs).create!(class_name: bg_class_name, arguments: [project1.id, project3.id], status: 1) } + + it 'steals remaining jobs, updates any remaining rows and deletes background_migration_jobs rows' do + expect(Gitlab::BackgroundMigration).to receive(:steal).with(bg_class_name).and_call_original + + migrate! + + expect(project_feature1.reload.container_registry_access_level).to eq(20) + expect(project_feature2.reload.container_registry_access_level).to eq(0) + expect(project_feature3.reload.container_registry_access_level).to eq(0) + expect(project_feature4.reload.container_registry_access_level).to eq(20) + expect(project_feature5.reload.container_registry_access_level).to eq(0) + expect(project_feature6.reload.container_registry_access_level).to eq(0) + + expect(table(:background_migration_jobs).where(class_name: bg_class_name).count).to eq(0) + end +end diff --git a/spec/migrations/cleanup_optimistic_locking_nulls_pt2_fixed_spec.rb b/spec/migrations/cleanup_optimistic_locking_nulls_pt2_fixed_spec.rb index 7c7f87d4e06..2f461ebc1d5 100644 --- a/spec/migrations/cleanup_optimistic_locking_nulls_pt2_fixed_spec.rb +++ b/spec/migrations/cleanup_optimistic_locking_nulls_pt2_fixed_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200427064130_cleanup_optimistic_locking_nulls_pt2_fixed.rb') +require_migration!('cleanup_optimistic_locking_nulls_pt2_fixed') RSpec.describe CleanupOptimisticLockingNullsPt2Fixed, :migration, schema: 20200219193117 do test_tables = %w(ci_stages ci_builds ci_pipelines).freeze diff --git a/spec/migrations/cleanup_optimistic_locking_nulls_spec.rb b/spec/migrations/cleanup_optimistic_locking_nulls_spec.rb index bcdcd3e9273..a287d950c89 100644 --- a/spec/migrations/cleanup_optimistic_locking_nulls_spec.rb +++ b/spec/migrations/cleanup_optimistic_locking_nulls_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200128210353_cleanup_optimistic_locking_nulls') +require_migration!('cleanup_optimistic_locking_nulls') RSpec.describe CleanupOptimisticLockingNulls do let(:epics) { table(:epics) } diff --git a/spec/migrations/cleanup_projects_with_missing_namespace_spec.rb b/spec/migrations/cleanup_projects_with_missing_namespace_spec.rb index a50e98faf48..c640bfcd174 100644 --- a/spec/migrations/cleanup_projects_with_missing_namespace_spec.rb +++ b/spec/migrations/cleanup_projects_with_missing_namespace_spec.rb @@ -2,8 +2,8 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200511080113_add_projects_foreign_key_to_namespaces.rb') -require Rails.root.join('db', 'post_migrate', '20200511083541_cleanup_projects_with_missing_namespace.rb') +require_migration!('add_projects_foreign_key_to_namespaces') +require_migration! # In order to test the CleanupProjectsWithMissingNamespace migration, we need # to first create an orphaned project (one with an invalid namespace_id) diff --git a/spec/migrations/complete_namespace_settings_migration_spec.rb b/spec/migrations/complete_namespace_settings_migration_spec.rb index 7820536f355..46c455d8b19 100644 --- a/spec/migrations/complete_namespace_settings_migration_spec.rb +++ b/spec/migrations/complete_namespace_settings_migration_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200907124300_complete_namespace_settings_migration.rb') +require_migration! RSpec.describe CompleteNamespaceSettingsMigration, :redis do let(:migration) { spy('migration') } diff --git a/spec/migrations/confirm_project_bot_users_spec.rb b/spec/migrations/confirm_project_bot_users_spec.rb index 11aa08d16a9..5f70181e70a 100644 --- a/spec/migrations/confirm_project_bot_users_spec.rb +++ b/spec/migrations/confirm_project_bot_users_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200713071042_confirm_project_bot_users.rb') +require_migration! RSpec.describe ConfirmProjectBotUsers, :migration do let(:users) { table(:users) } diff --git a/spec/migrations/create_environment_for_self_monitoring_project_spec.rb b/spec/migrations/create_environment_for_self_monitoring_project_spec.rb index 1ba464f1610..4615c231510 100644 --- a/spec/migrations/create_environment_for_self_monitoring_project_spec.rb +++ b/spec/migrations/create_environment_for_self_monitoring_project_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200214214934_create_environment_for_self_monitoring_project') +require_migration! RSpec.describe CreateEnvironmentForSelfMonitoringProject do let(:application_settings_table) { table(:application_settings) } diff --git a/spec/migrations/deduplicate_epic_iids_spec.rb b/spec/migrations/deduplicate_epic_iids_spec.rb index 8afb8b06948..c9dd5b3253b 100644 --- a/spec/migrations/deduplicate_epic_iids_spec.rb +++ b/spec/migrations/deduplicate_epic_iids_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201106134950_deduplicate_epic_iids.rb') +require_migration! RSpec.describe DeduplicateEpicIids, :migration, schema: 20201106082723 do let(:routes) { table(:routes) } diff --git a/spec/migrations/delete_internal_ids_where_feature_flags_usage_spec.rb b/spec/migrations/delete_internal_ids_where_feature_flags_usage_spec.rb index 50b5897220a..30d776c498b 100644 --- a/spec/migrations/delete_internal_ids_where_feature_flags_usage_spec.rb +++ b/spec/migrations/delete_internal_ids_where_feature_flags_usage_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200117194900_delete_internal_ids_where_feature_flags_usage') +require_migration! RSpec.describe DeleteInternalIdsWhereFeatureFlagsUsage do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/delete_template_project_services_spec.rb b/spec/migrations/delete_template_project_services_spec.rb index aacc4fcfd58..20532e4187a 100644 --- a/spec/migrations/delete_template_project_services_spec.rb +++ b/spec/migrations/delete_template_project_services_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200305151736_delete_template_project_services.rb') +require_migration! RSpec.describe DeleteTemplateProjectServices, :migration do let(:services) { table(:services) } diff --git a/spec/migrations/delete_template_services_duplicated_by_type_spec.rb b/spec/migrations/delete_template_services_duplicated_by_type_spec.rb index 5bcbfb7c733..b5a29436159 100644 --- a/spec/migrations/delete_template_services_duplicated_by_type_spec.rb +++ b/spec/migrations/delete_template_services_duplicated_by_type_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200304160801_delete_template_services_duplicated_by_type.rb') +require_migration! RSpec.describe DeleteTemplateServicesDuplicatedByType do let(:services) { table(:services) } diff --git a/spec/migrations/delete_user_callout_alerts_moved_spec.rb b/spec/migrations/delete_user_callout_alerts_moved_spec.rb index f6b1a8982fb..401cf77628d 100644 --- a/spec/migrations/delete_user_callout_alerts_moved_spec.rb +++ b/spec/migrations/delete_user_callout_alerts_moved_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200710102418_delete_user_callout_alerts_moved.rb') +require_migration! RSpec.describe DeleteUserCalloutAlertsMoved do let(:users) { table(:users) } diff --git a/spec/migrations/disable_expiration_policies_linked_to_no_container_images_spec.rb b/spec/migrations/disable_expiration_policies_linked_to_no_container_images_spec.rb new file mode 100644 index 00000000000..f2be06f1ed6 --- /dev/null +++ b/spec/migrations/disable_expiration_policies_linked_to_no_container_images_spec.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +require 'spec_helper' + +require_migration! + +RSpec.describe DisableExpirationPoliciesLinkedToNoContainerImages do + let(:projects) { table(:projects) } + let(:container_expiration_policies) { table(:container_expiration_policies) } + let(:container_repositories) { table(:container_repositories) } + let(:namespaces) { table(:namespaces) } + + let!(:namespace) { namespaces.create!(name: 'test', path: 'test') } + let!(:project) { projects.create!(id: 1, namespace_id: namespace.id, name: 'gitlab1') } + let!(:container_expiration_policy) { container_expiration_policies.create!(project_id: project.id, enabled: true) } + + before do + projects.create!(id: 2, namespace_id: namespace.id, name: 'gitlab2') + container_expiration_policies.create!(project_id: 2, enabled: true) + container_repositories.create!(id: 1, project_id: 2, name: 'image2') + + projects.create!(id: 3, namespace_id: namespace.id, name: 'gitlab3') + container_expiration_policies.create!(project_id: 3, enabled: false) + container_repositories.create!(id: 2, project_id: 3, name: 'image3') + end + + it 'correctly disable expiration policies linked to no container images' do + expect(enabled_policies.count).to eq 2 + expect(disabled_policies.count).to eq 1 + expect(container_expiration_policy.enabled).to eq true + + migrate! + + expect(enabled_policies.count).to eq 1 + expect(disabled_policies.count).to eq 2 + expect(container_expiration_policy.reload.enabled).to eq false + end + + def enabled_policies + container_expiration_policies.where(enabled: true) + end + + def disabled_policies + container_expiration_policies.where(enabled: false) + end +end diff --git a/spec/migrations/drop_activate_prometheus_services_background_jobs_spec.rb b/spec/migrations/drop_activate_prometheus_services_background_jobs_spec.rb index b4bbadd199e..c6115d5889c 100644 --- a/spec/migrations/drop_activate_prometheus_services_background_jobs_spec.rb +++ b/spec/migrations/drop_activate_prometheus_services_background_jobs_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200221144534_drop_activate_prometheus_services_background_jobs.rb') +require_migration! RSpec.describe DropActivatePrometheusServicesBackgroundJobs, :sidekiq, :redis, schema: 2020_02_21_144534 do subject(:migration) { described_class.new } diff --git a/spec/migrations/drop_alerts_service_data_spec.rb b/spec/migrations/drop_alerts_service_data_spec.rb index b2128da938f..06382132952 100644 --- a/spec/migrations/drop_alerts_service_data_spec.rb +++ b/spec/migrations/drop_alerts_service_data_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210205213933_drop_alerts_service_data.rb') +require_migration! RSpec.describe DropAlertsServiceData do let_it_be(:alerts_service_data) { table(:alerts_service_data) } diff --git a/spec/migrations/drop_background_migration_jobs_spec.rb b/spec/migrations/drop_background_migration_jobs_spec.rb index 2896f4ca0eb..82b3f9f7187 100644 --- a/spec/migrations/drop_background_migration_jobs_spec.rb +++ b/spec/migrations/drop_background_migration_jobs_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200116051619_drop_background_migration_jobs.rb') +require_migration! RSpec.describe DropBackgroundMigrationJobs, :sidekiq, :redis, schema: 2020_01_16_051619 do subject(:migration) { described_class.new } diff --git a/spec/migrations/drop_project_ci_cd_settings_merge_trains_enabled_spec.rb b/spec/migrations/drop_project_ci_cd_settings_merge_trains_enabled_spec.rb index 3f6aae401be..3093cd85ced 100644 --- a/spec/migrations/drop_project_ci_cd_settings_merge_trains_enabled_spec.rb +++ b/spec/migrations/drop_project_ci_cd_settings_merge_trains_enabled_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20191128162854_drop_project_ci_cd_settings_merge_trains_enabled.rb') +require_migration! RSpec.describe DropProjectCiCdSettingsMergeTrainsEnabled do let!(:project_ci_cd_setting) { table(:project_ci_cd_settings) } diff --git a/spec/migrations/encrypt_feature_flags_clients_tokens_spec.rb b/spec/migrations/encrypt_feature_flags_clients_tokens_spec.rb index c705515ce98..62bd0dafb8e 100644 --- a/spec/migrations/encrypt_feature_flags_clients_tokens_spec.rb +++ b/spec/migrations/encrypt_feature_flags_clients_tokens_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190606175050_encrypt_feature_flags_clients_tokens.rb') +require_migration! RSpec.describe EncryptFeatureFlagsClientsTokens do let(:migration) { described_class.new } diff --git a/spec/migrations/encrypt_plaintext_attributes_on_application_settings_spec.rb b/spec/migrations/encrypt_plaintext_attributes_on_application_settings_spec.rb index 7cd3646d107..2e233816b8b 100644 --- a/spec/migrations/encrypt_plaintext_attributes_on_application_settings_spec.rb +++ b/spec/migrations/encrypt_plaintext_attributes_on_application_settings_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20191120115530_encrypt_plaintext_attributes_on_application_settings.rb') +require_migration! RSpec.describe EncryptPlaintextAttributesOnApplicationSettings do let(:migration) { described_class.new } 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 2bbc67c4db3..49698f60964 100644 --- a/spec/migrations/enqueue_reset_merge_status_second_run_spec.rb +++ b/spec/migrations/enqueue_reset_merge_status_second_run_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190620112608_enqueue_reset_merge_status_second_run.rb') +require_migration! RSpec.describe EnqueueResetMergeStatusSecondRun do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/enqueue_reset_merge_status_spec.rb b/spec/migrations/enqueue_reset_merge_status_spec.rb index 0843bbacd5f..d62c99b80bc 100644 --- a/spec/migrations/enqueue_reset_merge_status_spec.rb +++ b/spec/migrations/enqueue_reset_merge_status_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190528180441_enqueue_reset_merge_status.rb') +require_migration! RSpec.describe EnqueueResetMergeStatus do let(:namespaces) { table(:namespaces) } 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 index 808580d5770..6998e7a91cf 100644 --- 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 @@ -1,7 +1,7 @@ # 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') +require_migration! RSpec.describe EnsureFilledExternalDiffStoreOnMergeRequestDiffs, schema: 20200908095446 do let!(:merge_request_diffs) { table(:merge_request_diffs) } diff --git a/spec/migrations/ensure_filled_file_store_on_package_files_spec.rb b/spec/migrations/ensure_filled_file_store_on_package_files_spec.rb index 8a0f51ab27e..5cfc3a6eeb8 100644 --- a/spec/migrations/ensure_filled_file_store_on_package_files_spec.rb +++ b/spec/migrations/ensure_filled_file_store_on_package_files_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200915185707_ensure_filled_file_store_on_package_files.rb') +require_migration! RSpec.describe EnsureFilledFileStoreOnPackageFiles, schema: 20200910175553 do let!(:packages_package_files) { table(:packages_package_files) } diff --git a/spec/migrations/ensure_namespace_settings_creation_spec.rb b/spec/migrations/ensure_namespace_settings_creation_spec.rb index cececc1e569..b105e678d35 100644 --- a/spec/migrations/ensure_namespace_settings_creation_spec.rb +++ b/spec/migrations/ensure_namespace_settings_creation_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201104124300_ensure_namespace_settings_creation.rb') +require_migration! RSpec.describe EnsureNamespaceSettingsCreation do context 'when there are namespaces without namespace settings' do diff --git a/spec/migrations/ensure_target_project_id_is_filled_spec.rb b/spec/migrations/ensure_target_project_id_is_filled_spec.rb index 72d59a72814..7a9f49390fb 100644 --- a/spec/migrations/ensure_target_project_id_is_filled_spec.rb +++ b/spec/migrations/ensure_target_project_id_is_filled_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200831065705_ensure_target_project_id_is_filled.rb') +require_migration! RSpec.describe EnsureTargetProjectIdIsFilled, schema: 20200827085101 do let_it_be(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/ensure_u2f_registrations_migrated_spec.rb b/spec/migrations/ensure_u2f_registrations_migrated_spec.rb index 77eab3b829a..01db29c0edf 100644 --- a/spec/migrations/ensure_u2f_registrations_migrated_spec.rb +++ b/spec/migrations/ensure_u2f_registrations_migrated_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201026185514_ensure_u2f_registrations_migrated.rb') +require_migration! RSpec.describe EnsureU2fRegistrationsMigrated, schema: 20201022144501 do let(:u2f_registrations) { table(:u2f_registrations) } diff --git a/spec/migrations/fill_file_store_ci_job_artifacts_spec.rb b/spec/migrations/fill_file_store_ci_job_artifacts_spec.rb index 64ab879d53c..7adcf74bdba 100644 --- a/spec/migrations/fill_file_store_ci_job_artifacts_spec.rb +++ b/spec/migrations/fill_file_store_ci_job_artifacts_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200513235532_fill_file_store_ci_job_artifacts.rb') +require_migration! RSpec.describe FillFileStoreCiJobArtifacts do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/fill_file_store_lfs_objects_spec.rb b/spec/migrations/fill_file_store_lfs_objects_spec.rb index 23063cc9cd0..688976f79e8 100644 --- a/spec/migrations/fill_file_store_lfs_objects_spec.rb +++ b/spec/migrations/fill_file_store_lfs_objects_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200513234502_fill_file_store_lfs_objects.rb') +require_migration! RSpec.describe FillFileStoreLfsObjects do let(:lfs_objects) { table(:lfs_objects) } diff --git a/spec/migrations/fill_productivity_analytics_start_date_spec.rb b/spec/migrations/fill_productivity_analytics_start_date_spec.rb index 5d7f0ffba50..b348067a752 100644 --- a/spec/migrations/fill_productivity_analytics_start_date_spec.rb +++ b/spec/migrations/fill_productivity_analytics_start_date_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20191004081520_fill_productivity_analytics_start_date.rb') +require_migration! RSpec.describe FillProductivityAnalyticsStartDate do let(:settings_table) { table('application_settings') } diff --git a/spec/migrations/fill_store_uploads_spec.rb b/spec/migrations/fill_store_uploads_spec.rb index bcb5d45e1c0..19db7c2b48d 100644 --- a/spec/migrations/fill_store_uploads_spec.rb +++ b/spec/migrations/fill_store_uploads_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200513235347_fill_store_uploads.rb') +require_migration! RSpec.describe FillStoreUploads do let(:uploads) { table(:uploads) } diff --git a/spec/migrations/fix_max_pages_size_spec.rb b/spec/migrations/fix_max_pages_size_spec.rb index b44ce21b858..97cf026df5c 100644 --- a/spec/migrations/fix_max_pages_size_spec.rb +++ b/spec/migrations/fix_max_pages_size_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20191213120427_fix_max_pages_size.rb') +require_migration! RSpec.describe FixMaxPagesSize do let(:application_settings) { table(:application_settings) } diff --git a/spec/migrations/fix_null_type_labels_spec.rb b/spec/migrations/fix_null_type_labels_spec.rb index b3fc0e30687..4f902b92393 100644 --- a/spec/migrations/fix_null_type_labels_spec.rb +++ b/spec/migrations/fix_null_type_labels_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190131122559_fix_null_type_labels') +require_migration! RSpec.describe FixNullTypeLabels do let(:migration) { described_class.new } diff --git a/spec/migrations/fix_pool_repository_source_project_id_spec.rb b/spec/migrations/fix_pool_repository_source_project_id_spec.rb index 3413cef3c8b..2ee4c458c3c 100644 --- a/spec/migrations/fix_pool_repository_source_project_id_spec.rb +++ b/spec/migrations/fix_pool_repository_source_project_id_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190604184643_fix_pool_repository_source_project_id.rb') +require_migration! RSpec.describe FixPoolRepositorySourceProjectId do let(:projects) { table(:projects) } diff --git a/spec/migrations/fix_projects_without_project_feature_spec.rb b/spec/migrations/fix_projects_without_project_feature_spec.rb index 696c9e86384..d8c5e7a28c0 100644 --- a/spec/migrations/fix_projects_without_project_feature_spec.rb +++ b/spec/migrations/fix_projects_without_project_feature_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200127111840_fix_projects_without_project_feature.rb') +require_migration! RSpec.describe FixProjectsWithoutProjectFeature do let(:namespace) { table(:namespaces).create!(name: 'gitlab', path: 'gitlab-org') } diff --git a/spec/migrations/fix_projects_without_prometheus_services_spec.rb b/spec/migrations/fix_projects_without_prometheus_services_spec.rb index 987350847ca..dc03f381abd 100644 --- a/spec/migrations/fix_projects_without_prometheus_services_spec.rb +++ b/spec/migrations/fix_projects_without_prometheus_services_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true # require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200220115023_fix_projects_without_prometheus_service.rb') +require_migration!('fix_projects_without_prometheus_service') RSpec.describe FixProjectsWithoutPrometheusService, :migration do let(:namespace) { table(:namespaces).create!(name: 'gitlab', path: 'gitlab-org') } diff --git a/spec/migrations/fix_wrong_pages_access_level_spec.rb b/spec/migrations/fix_wrong_pages_access_level_spec.rb index 310076f2e0a..00a620b4426 100644 --- a/spec/migrations/fix_wrong_pages_access_level_spec.rb +++ b/spec/migrations/fix_wrong_pages_access_level_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190703185326_fix_wrong_pages_access_level.rb') +require_migration! RSpec.describe FixWrongPagesAccessLevel, :sidekiq_might_not_need_inline, schema: 20190628185004 do using RSpec::Parameterized::TableSyntax diff --git a/spec/migrations/generate_ci_jwt_signing_key_spec.rb b/spec/migrations/generate_ci_jwt_signing_key_spec.rb index 249af3bcb50..7a895284aa1 100644 --- a/spec/migrations/generate_ci_jwt_signing_key_spec.rb +++ b/spec/migrations/generate_ci_jwt_signing_key_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'migrate', '20201008013434_generate_ci_jwt_signing_key.rb') +require_migration! RSpec.describe GenerateCiJwtSigningKey do let(:application_settings) do diff --git a/spec/migrations/generate_lets_encrypt_private_key_spec.rb b/spec/migrations/generate_lets_encrypt_private_key_spec.rb index cad257c18a0..8525a7bbd1c 100644 --- a/spec/migrations/generate_lets_encrypt_private_key_spec.rb +++ b/spec/migrations/generate_lets_encrypt_private_key_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190524062810_generate_lets_encrypt_private_key.rb') +require_migration! RSpec.describe GenerateLetsEncryptPrivateKey do describe '#up' do diff --git a/spec/migrations/generate_missing_routes_for_bots_spec.rb b/spec/migrations/generate_missing_routes_for_bots_spec.rb index 8af22042350..594e51b4410 100644 --- a/spec/migrations/generate_missing_routes_for_bots_spec.rb +++ b/spec/migrations/generate_missing_routes_for_bots_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200703064117_generate_missing_routes_for_bots.rb') +require_migration! RSpec.describe GenerateMissingRoutesForBots, :migration do let(:users) { table(:users) } diff --git a/spec/migrations/insert_ci_daily_pipeline_schedule_triggers_plan_limits_spec.rb b/spec/migrations/insert_ci_daily_pipeline_schedule_triggers_plan_limits_spec.rb new file mode 100644 index 00000000000..4b8d3641247 --- /dev/null +++ b/spec/migrations/insert_ci_daily_pipeline_schedule_triggers_plan_limits_spec.rb @@ -0,0 +1,73 @@ +# frozen_string_literal: true + +require 'spec_helper' +require Rails.root.join('db', 'migrate', '20210526190553_insert_ci_daily_pipeline_schedule_triggers_plan_limits.rb') + +RSpec.describe InsertCiDailyPipelineScheduleTriggersPlanLimits do + let_it_be(:plans) { table(:plans) } + let_it_be(:plan_limits) { table(:plan_limits) } + + context 'when on Gitlab.com' do + let(:free_plan) { plans.create!(name: 'free') } + let(:bronze_plan) { plans.create!(name: 'bronze') } + let(:silver_plan) { plans.create!(name: 'silver') } + let(:gold_plan) { plans.create!(name: 'gold') } + + before do + allow(Gitlab).to receive(:com?).and_return(true) + + plan_limits.create!(plan_id: free_plan.id) + plan_limits.create!(plan_id: bronze_plan.id) + plan_limits.create!(plan_id: silver_plan.id) + plan_limits.create!(plan_id: gold_plan.id) + end + + it 'correctly migrates up and down' do + reversible_migration do |migration| + migration.before -> { + expect(plan_limits.pluck(:plan_id, :ci_daily_pipeline_schedule_triggers)).to contain_exactly( + [free_plan.id, 0], + [bronze_plan.id, 0], + [silver_plan.id, 0], + [gold_plan.id, 0] + ) + } + + migration.after -> { + expect(plan_limits.pluck(:plan_id, :ci_daily_pipeline_schedule_triggers)).to contain_exactly( + [free_plan.id, 24], + [bronze_plan.id, 288], + [silver_plan.id, 288], + [gold_plan.id, 288] + ) + } + end + end + end + + context 'when on self hosted' do + let(:free_plan) { plans.create!(name: 'free') } + + before do + allow(Gitlab).to receive(:com?).and_return(false) + + plan_limits.create!(plan_id: free_plan.id) + end + + it 'does nothing' do + reversible_migration do |migration| + migration.before -> { + expect(plan_limits.pluck(:plan_id, :ci_daily_pipeline_schedule_triggers)).to contain_exactly( + [free_plan.id, 0] + ) + } + + migration.after -> { + expect(plan_limits.pluck(:plan_id, :ci_daily_pipeline_schedule_triggers)).to contain_exactly( + [free_plan.id, 0] + ) + } + end + end + end +end diff --git a/spec/migrations/insert_daily_invites_plan_limits_spec.rb b/spec/migrations/insert_daily_invites_plan_limits_spec.rb index 3265efcb0ce..49d41a1039f 100644 --- a/spec/migrations/insert_daily_invites_plan_limits_spec.rb +++ b/spec/migrations/insert_daily_invites_plan_limits_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20201007033723_insert_daily_invites_plan_limits.rb') +require_migration! RSpec.describe InsertDailyInvitesPlanLimits do let(:plans) { table(:plans) } diff --git a/spec/migrations/insert_project_feature_flags_plan_limits_spec.rb b/spec/migrations/insert_project_feature_flags_plan_limits_spec.rb index 1ad070de1ea..481e987c188 100644 --- a/spec/migrations/insert_project_feature_flags_plan_limits_spec.rb +++ b/spec/migrations/insert_project_feature_flags_plan_limits_spec.rb @@ -1,11 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join( - 'db', - 'migrate', - '20200831222347_insert_project_feature_flags_plan_limits.rb' -) +require_migration! RSpec.describe InsertProjectFeatureFlagsPlanLimits do let(:migration) { described_class.new } diff --git a/spec/migrations/insert_project_hooks_plan_limits_spec.rb b/spec/migrations/insert_project_hooks_plan_limits_spec.rb index f29d72168bc..365dd679d76 100644 --- a/spec/migrations/insert_project_hooks_plan_limits_spec.rb +++ b/spec/migrations/insert_project_hooks_plan_limits_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20191216183532_insert_project_hooks_plan_limits.rb') +require_migration! RSpec.describe InsertProjectHooksPlanLimits do let(:migration) { described_class.new } diff --git a/spec/migrations/migrate_all_merge_request_user_mentions_to_db_spec.rb b/spec/migrations/migrate_all_merge_request_user_mentions_to_db_spec.rb index f7789469efb..c2df04bf2d6 100644 --- a/spec/migrations/migrate_all_merge_request_user_mentions_to_db_spec.rb +++ b/spec/migrations/migrate_all_merge_request_user_mentions_to_db_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200601120434_migrate_all_merge_request_user_mentions_to_db') +require_migration! RSpec.describe MigrateAllMergeRequestUserMentionsToDb, :migration do let(:users) { table(:users) } diff --git a/spec/migrations/migrate_auto_dev_ops_domain_to_cluster_domain_spec.rb b/spec/migrations/migrate_auto_dev_ops_domain_to_cluster_domain_spec.rb index c7c846c7ef3..a836fb4bfb9 100644 --- a/spec/migrations/migrate_auto_dev_ops_domain_to_cluster_domain_spec.rb +++ b/spec/migrations/migrate_auto_dev_ops_domain_to_cluster_domain_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190204115450_migrate_auto_dev_ops_domain_to_cluster_domain.rb') +require_migration! RSpec.describe MigrateAutoDevOpsDomainToClusterDomain do include MigrationHelpers::ClusterHelpers diff --git a/spec/migrations/migrate_bot_type_to_user_type_spec.rb b/spec/migrations/migrate_bot_type_to_user_type_spec.rb index fcd7f1ebcb8..54cf3450692 100644 --- a/spec/migrations/migrate_bot_type_to_user_type_spec.rb +++ b/spec/migrations/migrate_bot_type_to_user_type_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200311074438_migrate_bot_type_to_user_type.rb') +require_migration! RSpec.describe MigrateBotTypeToUserType, :migration do let(:users) { table(:users) } diff --git a/spec/migrations/migrate_code_owner_approval_status_to_protected_branches_in_batches_spec.rb b/spec/migrations/migrate_code_owner_approval_status_to_protected_branches_in_batches_spec.rb index 70304a4deb2..121ff3d6622 100644 --- a/spec/migrations/migrate_code_owner_approval_status_to_protected_branches_in_batches_spec.rb +++ b/spec/migrations/migrate_code_owner_approval_status_to_protected_branches_in_batches_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190827102026_migrate_code_owner_approval_status_to_protected_branches_in_batches.rb') +require_migration! RSpec.describe MigrateCodeOwnerApprovalStatusToProtectedBranchesInBatches do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/migrate_commit_notes_mentions_to_db_spec.rb b/spec/migrations/migrate_commit_notes_mentions_to_db_spec.rb index eb7fb7d4fc5..aa2aa6297c4 100644 --- a/spec/migrations/migrate_commit_notes_mentions_to_db_spec.rb +++ b/spec/migrations/migrate_commit_notes_mentions_to_db_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200128134110_migrate_commit_notes_mentions_to_db') +require_migration! RSpec.describe MigrateCommitNotesMentionsToDb, :migration, :sidekiq do let(:users) { table(:users) } diff --git a/spec/migrations/migrate_compliance_framework_enum_to_database_framework_record_spec.rb b/spec/migrations/migrate_compliance_framework_enum_to_database_framework_record_spec.rb index 5c3ca281d49..6a9a75a7019 100644 --- a/spec/migrations/migrate_compliance_framework_enum_to_database_framework_record_spec.rb +++ b/spec/migrations/migrate_compliance_framework_enum_to_database_framework_record_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201005094331_migrate_compliance_framework_enum_to_database_framework_record.rb') +require_migration! RSpec.describe MigrateComplianceFrameworkEnumToDatabaseFrameworkRecord, schema: 20201005092753 do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/migrate_create_commit_signature_worker_sidekiq_queue_spec.rb b/spec/migrations/migrate_create_commit_signature_worker_sidekiq_queue_spec.rb index 5f7b4755980..0e631f255bf 100644 --- a/spec/migrations/migrate_create_commit_signature_worker_sidekiq_queue_spec.rb +++ b/spec/migrations/migrate_create_commit_signature_worker_sidekiq_queue_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200206091544_migrate_create_commit_signature_worker_sidekiq_queue.rb') +require_migration! RSpec.describe MigrateCreateCommitSignatureWorkerSidekiqQueue, :sidekiq, :redis do include Gitlab::Database::MigrationHelpers diff --git a/spec/migrations/migrate_delayed_project_removal_from_namespaces_to_namespace_settings_spec.rb b/spec/migrations/migrate_delayed_project_removal_from_namespaces_to_namespace_settings_spec.rb index 28a8dcf0d4c..0f45cc842ef 100644 --- a/spec/migrations/migrate_delayed_project_removal_from_namespaces_to_namespace_settings_spec.rb +++ b/spec/migrations/migrate_delayed_project_removal_from_namespaces_to_namespace_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210215095328_migrate_delayed_project_removal_from_namespaces_to_namespace_settings.rb') +require_migration! RSpec.describe MigrateDelayedProjectRemovalFromNamespacesToNamespaceSettings, :migration do let(:namespaces) { table(:namespaces) } 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 699e9507f50..e42baab9927 100644 --- a/spec/migrations/migrate_discussion_id_on_promoted_epics_spec.rb +++ b/spec/migrations/migrate_discussion_id_on_promoted_epics_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190715193142_migrate_discussion_id_on_promoted_epics.rb') +require_migration! RSpec.describe MigrateDiscussionIdOnPromotedEpics do let(:migration_class) { described_class::MIGRATION } diff --git a/spec/migrations/migrate_elastic_index_settings_spec.rb b/spec/migrations/migrate_elastic_index_settings_spec.rb index 41483773903..5f39d9b9fc1 100644 --- a/spec/migrations/migrate_elastic_index_settings_spec.rb +++ b/spec/migrations/migrate_elastic_index_settings_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'migrate', '20210324131727_migrate_elastic_index_settings.rb') +require_migration! RSpec.describe MigrateElasticIndexSettings do let(:elastic_index_settings) { table(:elastic_index_settings) } diff --git a/spec/migrations/migrate_incident_issues_to_incident_type_spec.rb b/spec/migrations/migrate_incident_issues_to_incident_type_spec.rb index dc38695c7fe..acac6114c71 100644 --- a/spec/migrations/migrate_incident_issues_to_incident_type_spec.rb +++ b/spec/migrations/migrate_incident_issues_to_incident_type_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200723040950_migrate_incident_issues_to_incident_type.rb') +require_migration! RSpec.describe MigrateIncidentIssuesToIncidentType do let(:migration) { described_class.new } diff --git a/spec/migrations/migrate_k8s_service_integration_spec.rb b/spec/migrations/migrate_k8s_service_integration_spec.rb index 66e30b29f61..ba6071b72e4 100644 --- a/spec/migrations/migrate_k8s_service_integration_spec.rb +++ b/spec/migrations/migrate_k8s_service_integration_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190517153211_migrate_k8s_service_integration.rb') +require_migration! RSpec.describe MigrateK8sServiceIntegration do context 'template service' do diff --git a/spec/migrations/migrate_legacy_managed_clusters_to_unmanaged_spec.rb b/spec/migrations/migrate_legacy_managed_clusters_to_unmanaged_spec.rb index c8bfeec8049..3d8685c7619 100644 --- a/spec/migrations/migrate_legacy_managed_clusters_to_unmanaged_spec.rb +++ b/spec/migrations/migrate_legacy_managed_clusters_to_unmanaged_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190606163724_migrate_legacy_managed_clusters_to_unmanaged.rb') +require_migration! RSpec.describe MigrateLegacyManagedClustersToUnmanaged do let(:cluster_type) { 'project_type' } diff --git a/spec/migrations/migrate_managed_clusters_with_no_token_to_unmanaged_spec.rb b/spec/migrations/migrate_managed_clusters_with_no_token_to_unmanaged_spec.rb index 1fc92f6ceea..b753b84ae55 100644 --- a/spec/migrations/migrate_managed_clusters_with_no_token_to_unmanaged_spec.rb +++ b/spec/migrations/migrate_managed_clusters_with_no_token_to_unmanaged_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190613231640_migrate_managed_clusters_with_no_token_to_unmanaged.rb') +require_migration! RSpec.describe MigrateManagedClustersWithNoTokenToUnmanaged do let(:cluster_type) { 'project_type' } diff --git a/spec/migrations/migrate_merge_request_mentions_to_db_spec.rb b/spec/migrations/migrate_merge_request_mentions_to_db_spec.rb index 83388cc6314..06493c4e5c1 100644 --- a/spec/migrations/migrate_merge_request_mentions_to_db_spec.rb +++ b/spec/migrations/migrate_merge_request_mentions_to_db_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200211155539_migrate_merge_request_mentions_to_db') +require_migration! RSpec.describe MigrateMergeRequestMentionsToDb, :migration do let(:users) { table(:users) } diff --git a/spec/migrations/migrate_ops_feature_flags_scopes_target_user_ids_spec.rb b/spec/migrations/migrate_ops_feature_flags_scopes_target_user_ids_spec.rb index f066b9c90cd..5caf03992dd 100644 --- a/spec/migrations/migrate_ops_feature_flags_scopes_target_user_ids_spec.rb +++ b/spec/migrations/migrate_ops_feature_flags_scopes_target_user_ids_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20191118211629_migrate_ops_feature_flags_scopes_target_user_ids.rb') +require_migration! RSpec.describe MigrateOpsFeatureFlagsScopesTargetUserIds do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb b/spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb new file mode 100644 index 00000000000..e838476a650 --- /dev/null +++ b/spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require 'spec_helper' +require Rails.root.join('db', 'post_migrate', '20210610102413_migrate_protected_attribute_to_pending_builds.rb') + +RSpec.describe MigrateProtectedAttributeToPendingBuilds do + let(:namespaces) { table(:namespaces) } + let(:projects) { table(:projects) } + let(:queue) { table(:ci_pending_builds) } + let(:builds) { table(:ci_builds) } + + before do + namespaces.create!(id: 123, name: 'sample', path: 'sample') + projects.create!(id: 123, name: 'sample', path: 'sample', namespace_id: 123) + + builds.create!(id: 1, project_id: 123, status: 'pending', protected: false, type: 'Ci::Build') + builds.create!(id: 2, project_id: 123, status: 'pending', protected: true, type: 'Ci::Build') + builds.create!(id: 3, project_id: 123, status: 'pending', protected: false, type: 'Ci::Build') + builds.create!(id: 4, project_id: 123, status: 'pending', protected: true, type: 'Ci::Bridge') + builds.create!(id: 5, project_id: 123, status: 'success', protected: true, type: 'Ci::Build') + + queue.create!(id: 1, project_id: 123, build_id: 1) + queue.create!(id: 2, project_id: 123, build_id: 2) + queue.create!(id: 3, project_id: 123, build_id: 3) + end + + it 'updates entries that should be protected' do + migrate! + + expect(queue.where(protected: true).count).to eq 1 + expect(queue.find_by(protected: true).id).to eq 2 + end +end diff --git a/spec/migrations/migrate_storage_migrator_sidekiq_queue_spec.rb b/spec/migrations/migrate_storage_migrator_sidekiq_queue_spec.rb index 1181c169f57..4db819f2fa1 100644 --- a/spec/migrations/migrate_storage_migrator_sidekiq_queue_spec.rb +++ b/spec/migrations/migrate_storage_migrator_sidekiq_queue_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190124200344_migrate_storage_migrator_sidekiq_queue.rb') +require_migration! RSpec.describe MigrateStorageMigratorSidekiqQueue, :redis do include Gitlab::Database::MigrationHelpers diff --git a/spec/migrations/migrate_store_security_reports_sidekiq_queue_spec.rb b/spec/migrations/migrate_store_security_reports_sidekiq_queue_spec.rb index 4face37bd66..35cb6104fe2 100644 --- a/spec/migrations/migrate_store_security_reports_sidekiq_queue_spec.rb +++ b/spec/migrations/migrate_store_security_reports_sidekiq_queue_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200213220159_migrate_store_security_reports_sidekiq_queue.rb') +require_migration! RSpec.describe MigrateStoreSecurityReportsSidekiqQueue, :redis do include Gitlab::Database::MigrationHelpers diff --git a/spec/migrations/migrate_sync_security_reports_to_report_approval_rules_sidekiq_queue_spec.rb b/spec/migrations/migrate_sync_security_reports_to_report_approval_rules_sidekiq_queue_spec.rb index 15c5761bd99..a9e386301b8 100644 --- a/spec/migrations/migrate_sync_security_reports_to_report_approval_rules_sidekiq_queue_spec.rb +++ b/spec/migrations/migrate_sync_security_reports_to_report_approval_rules_sidekiq_queue_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200213220211_migrate_sync_security_reports_to_report_approval_rules_sidekiq_queue.rb') +require_migration! RSpec.describe MigrateSyncSecurityReportsToReportApprovalRulesSidekiqQueue, :redis do include Gitlab::Database::MigrationHelpers diff --git a/spec/migrations/move_container_registry_enabled_to_project_features3_spec.rb b/spec/migrations/move_container_registry_enabled_to_project_features3_spec.rb index 4c50aa2dd10..e47cea749d6 100644 --- a/spec/migrations/move_container_registry_enabled_to_project_features3_spec.rb +++ b/spec/migrations/move_container_registry_enabled_to_project_features3_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210415155043_move_container_registry_enabled_to_project_features3.rb') +require_migration! RSpec.describe MoveContainerRegistryEnabledToProjectFeatures3, :migration do let(:namespace) { table(:namespaces).create!(name: 'gitlab', path: 'gitlab-org') } diff --git a/spec/migrations/move_limits_from_plans_spec.rb b/spec/migrations/move_limits_from_plans_spec.rb index c65fc439dd6..92ac804733f 100644 --- a/spec/migrations/move_limits_from_plans_spec.rb +++ b/spec/migrations/move_limits_from_plans_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20191030152934_move_limits_from_plans.rb') +require_migration! RSpec.describe MoveLimitsFromPlans do let(:plans) { table(:plans) } diff --git a/spec/migrations/nullify_users_role_spec.rb b/spec/migrations/nullify_users_role_spec.rb index 3cdeb81f362..11056d9cf0c 100644 --- a/spec/migrations/nullify_users_role_spec.rb +++ b/spec/migrations/nullify_users_role_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20191104142124_nullify_users_role.rb') +require_migration! RSpec.describe NullifyUsersRole do let(:users) { table(:users) } diff --git a/spec/migrations/populate_project_statistics_packages_size_spec.rb b/spec/migrations/populate_project_statistics_packages_size_spec.rb index 6c838e83c56..af9237f4bd6 100644 --- a/spec/migrations/populate_project_statistics_packages_size_spec.rb +++ b/spec/migrations/populate_project_statistics_packages_size_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190418132125_populate_project_statistics_packages_size.rb') +require_migration! RSpec.describe PopulateProjectStatisticsPackagesSize do let(:project_statistics) { table(:project_statistics) } diff --git a/spec/migrations/populate_rule_type_on_approval_merge_request_rules_spec.rb b/spec/migrations/populate_rule_type_on_approval_merge_request_rules_spec.rb index 2ac912d7979..7dc3f5a1004 100644 --- a/spec/migrations/populate_rule_type_on_approval_merge_request_rules_spec.rb +++ b/spec/migrations/populate_rule_type_on_approval_merge_request_rules_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190520201748_populate_rule_type_on_approval_merge_request_rules.rb') +require_migration! RSpec.describe PopulateRuleTypeOnApprovalMergeRequestRules do let(:migration) { described_class.new } diff --git a/spec/migrations/remove_additional_application_settings_rows_spec.rb b/spec/migrations/remove_additional_application_settings_rows_spec.rb index a865e8e8dd7..d781195abf2 100644 --- a/spec/migrations/remove_additional_application_settings_rows_spec.rb +++ b/spec/migrations/remove_additional_application_settings_rows_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200420162730_remove_additional_application_settings_rows.rb') +require_migration! RSpec.describe RemoveAdditionalApplicationSettingsRows do let(:application_settings) { table(:application_settings) } diff --git a/spec/migrations/remove_alerts_service_records_again_spec.rb b/spec/migrations/remove_alerts_service_records_again_spec.rb index 963b54848f9..94d3e957b6a 100644 --- a/spec/migrations/remove_alerts_service_records_again_spec.rb +++ b/spec/migrations/remove_alerts_service_records_again_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210205214003_remove_alerts_service_records_again.rb') +require_migration! RSpec.describe RemoveAlertsServiceRecordsAgain do let(:services) { table(:services) } diff --git a/spec/migrations/remove_alerts_service_records_spec.rb b/spec/migrations/remove_alerts_service_records_spec.rb index eaf9f90b445..83f440f8e17 100644 --- a/spec/migrations/remove_alerts_service_records_spec.rb +++ b/spec/migrations/remove_alerts_service_records_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210107194543_remove_alerts_service_records.rb') +require_migration! RSpec.describe RemoveAlertsServiceRecords do let(:services) { table(:services) } diff --git a/spec/migrations/remove_deprecated_jenkins_service_records_spec.rb b/spec/migrations/remove_deprecated_jenkins_service_records_spec.rb index 00fde88c528..817cf183e0c 100644 --- a/spec/migrations/remove_deprecated_jenkins_service_records_spec.rb +++ b/spec/migrations/remove_deprecated_jenkins_service_records_spec.rb @@ -1,8 +1,9 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200511130129_remove_deprecated_jenkins_service_records.rb') -require Rails.root.join('db', 'post_migrate', '20200511130130_ensure_deprecated_jenkins_service_records_removal.rb') +require_migration! + +require_migration!('ensure_deprecated_jenkins_service_records_removal') RSpec.shared_examples 'remove DeprecatedJenkinsService records' do let(:services) { table(:services) } diff --git a/spec/migrations/remove_duplicate_labels_from_groups_spec.rb b/spec/migrations/remove_duplicate_labels_from_groups_spec.rb index eff2c6a37e4..125314f70dd 100644 --- a/spec/migrations/remove_duplicate_labels_from_groups_spec.rb +++ b/spec/migrations/remove_duplicate_labels_from_groups_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200716234259_remove_duplicate_labels_from_group.rb') +require_migration!('remove_duplicate_labels_from_group') RSpec.describe RemoveDuplicateLabelsFromGroup do let(:labels_table) { table(:labels) } diff --git a/spec/migrations/remove_duplicate_labels_from_project_spec.rb b/spec/migrations/remove_duplicate_labels_from_project_spec.rb index 5eb8ba96aae..eeb9f155e01 100644 --- a/spec/migrations/remove_duplicate_labels_from_project_spec.rb +++ b/spec/migrations/remove_duplicate_labels_from_project_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200305082754_remove_duplicate_labels_from_project.rb') +require_migration! RSpec.describe RemoveDuplicateLabelsFromProject do let(:labels_table) { table(:labels) } diff --git a/spec/migrations/remove_empty_github_service_templates_spec.rb b/spec/migrations/remove_empty_github_service_templates_spec.rb index 7a77e342efd..ad84187c298 100644 --- a/spec/migrations/remove_empty_github_service_templates_spec.rb +++ b/spec/migrations/remove_empty_github_service_templates_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20191021101942_remove_empty_github_service_templates.rb') +require_migration! RSpec.describe RemoveEmptyGithubServiceTemplates do subject(:migration) { described_class.new } diff --git a/spec/migrations/remove_gitlab_issue_tracker_service_records_spec.rb b/spec/migrations/remove_gitlab_issue_tracker_service_records_spec.rb index 81fa29f4c54..b4aa5187d4c 100644 --- a/spec/migrations/remove_gitlab_issue_tracker_service_records_spec.rb +++ b/spec/migrations/remove_gitlab_issue_tracker_service_records_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200623142159_remove_gitlab_issue_tracker_service_records.rb') +require_migration! RSpec.describe RemoveGitlabIssueTrackerServiceRecords do let(:services) { table(:services) } diff --git a/spec/migrations/remove_hipchat_service_records_spec.rb b/spec/migrations/remove_hipchat_service_records_spec.rb index bc76d7933d8..d218b6b23a5 100644 --- a/spec/migrations/remove_hipchat_service_records_spec.rb +++ b/spec/migrations/remove_hipchat_service_records_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210420103955_remove_hipchat_service_records.rb') +require_migration! RSpec.describe RemoveHipchatServiceRecords do let(:services) { table(:services) } diff --git a/spec/migrations/remove_orphan_service_hooks_spec.rb b/spec/migrations/remove_orphan_service_hooks_spec.rb index c06a8b97738..71e70daf1e6 100644 --- a/spec/migrations/remove_orphan_service_hooks_spec.rb +++ b/spec/migrations/remove_orphan_service_hooks_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -require Rails.root.join('db', 'migrate', '20201119125730_add_web_hooks_service_foreign_key.rb') +require_migration!('add_web_hooks_service_foreign_key') RSpec.describe RemoveOrphanServiceHooks, schema: 20201203123201 do let(:web_hooks) { table(:web_hooks) } diff --git a/spec/migrations/remove_orphaned_invited_members_spec.rb b/spec/migrations/remove_orphaned_invited_members_spec.rb index 10da63518c2..67e98b69ccc 100644 --- a/spec/migrations/remove_orphaned_invited_members_spec.rb +++ b/spec/migrations/remove_orphaned_invited_members_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200424050250_remove_orphaned_invited_members.rb') +require_migration! RSpec.describe RemoveOrphanedInvitedMembers do let(:members_table) { table(:members) } diff --git a/spec/migrations/remove_packages_deprecated_dependencies_spec.rb b/spec/migrations/remove_packages_deprecated_dependencies_spec.rb index 84c23240af9..f76a26bcdc1 100644 --- a/spec/migrations/remove_packages_deprecated_dependencies_spec.rb +++ b/spec/migrations/remove_packages_deprecated_dependencies_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200210135504_remove_packages_deprecated_dependencies.rb') +require_migration! RSpec.describe RemovePackagesDeprecatedDependencies do let(:projects) { table(:projects) } diff --git a/spec/migrations/remove_records_without_group_from_webhooks_table_spec.rb b/spec/migrations/remove_records_without_group_from_webhooks_table_spec.rb index a28ca12a10d..c267e419b42 100644 --- a/spec/migrations/remove_records_without_group_from_webhooks_table_spec.rb +++ b/spec/migrations/remove_records_without_group_from_webhooks_table_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -require Rails.root.join('db', 'migrate', '20210325092215_add_not_valid_foreign_key_to_group_hooks.rb') +require_migration!('add_not_valid_foreign_key_to_group_hooks') RSpec.describe RemoveRecordsWithoutGroupFromWebhooksTable, schema: 20210330091751 do let(:web_hooks) { table(:web_hooks) } diff --git a/spec/migrations/remove_security_dashboard_feature_flag_spec.rb b/spec/migrations/remove_security_dashboard_feature_flag_spec.rb index 77363aebfe6..fea7fe01cc7 100644 --- a/spec/migrations/remove_security_dashboard_feature_flag_spec.rb +++ b/spec/migrations/remove_security_dashboard_feature_flag_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200214034836_remove_security_dashboard_feature_flag.rb') +require_migration! RSpec.describe RemoveSecurityDashboardFeatureFlag do let(:feature_gates) { table(:feature_gates) } diff --git a/spec/migrations/rename_security_dashboard_feature_flag_to_instance_security_dashboard_spec.rb b/spec/migrations/rename_security_dashboard_feature_flag_to_instance_security_dashboard_spec.rb index 83a79ac9795..fcbf94812fb 100644 --- a/spec/migrations/rename_security_dashboard_feature_flag_to_instance_security_dashboard_spec.rb +++ b/spec/migrations/rename_security_dashboard_feature_flag_to_instance_security_dashboard_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200212014653_rename_security_dashboard_feature_flag_to_instance_security_dashboard.rb') +require_migration! RSpec.describe RenameSecurityDashboardFeatureFlagToInstanceSecurityDashboard do let(:feature_gates) { table(:feature_gates) } diff --git a/spec/migrations/rename_sitemap_namespace_spec.rb b/spec/migrations/rename_sitemap_namespace_spec.rb index 83f0721c600..21b74587d50 100644 --- a/spec/migrations/rename_sitemap_namespace_spec.rb +++ b/spec/migrations/rename_sitemap_namespace_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201102112206_rename_sitemap_namespace.rb') +require_migration! RSpec.describe RenameSitemapNamespace do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/rename_sitemap_root_namespaces_spec.rb b/spec/migrations/rename_sitemap_root_namespaces_spec.rb index 7cbf27849b0..12a687194e0 100644 --- a/spec/migrations/rename_sitemap_root_namespaces_spec.rb +++ b/spec/migrations/rename_sitemap_root_namespaces_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201019094741_rename_sitemap_root_namespaces.rb') +require_migration! RSpec.describe RenameSitemapRootNamespaces do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/reschedule_artifact_expiry_backfill_spec.rb b/spec/migrations/reschedule_artifact_expiry_backfill_spec.rb index 532035849cb..c06ce3d5bea 100644 --- a/spec/migrations/reschedule_artifact_expiry_backfill_spec.rb +++ b/spec/migrations/reschedule_artifact_expiry_backfill_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210224150506_reschedule_artifact_expiry_backfill.rb') +require_migration! RSpec.describe RescheduleArtifactExpiryBackfill, :migration do let(:migration_class) { Gitlab::BackgroundMigration::BackfillArtifactExpiryDate } diff --git a/spec/migrations/reseed_merge_trains_enabled_spec.rb b/spec/migrations/reseed_merge_trains_enabled_spec.rb index 71ef0b47da9..14ed44151d3 100644 --- a/spec/migrations/reseed_merge_trains_enabled_spec.rb +++ b/spec/migrations/reseed_merge_trains_enabled_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20201112195322_reseed_merge_trains_enabled.rb') +require_migration! RSpec.describe ReseedMergeTrainsEnabled do describe 'migrate' do diff --git a/spec/migrations/reseed_repository_storages_weighted_spec.rb b/spec/migrations/reseed_repository_storages_weighted_spec.rb index 8abad3c0d93..d7efff3dfba 100644 --- a/spec/migrations/reseed_repository_storages_weighted_spec.rb +++ b/spec/migrations/reseed_repository_storages_weighted_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200509203901_reseed_repository_storages_weighted.rb') +require_migration! RSpec.describe ReseedRepositoryStoragesWeighted do let(:storages) { { "foo" => {}, "baz" => {} } } diff --git a/spec/migrations/retry_backfill_traversal_ids_spec.rb b/spec/migrations/retry_backfill_traversal_ids_spec.rb new file mode 100644 index 00000000000..e5ebd4228ca --- /dev/null +++ b/spec/migrations/retry_backfill_traversal_ids_spec.rb @@ -0,0 +1,93 @@ +# frozen_string_literal: true + +require 'spec_helper' +require Rails.root.join('db', 'post_migrate', '20210604070207_retry_backfill_traversal_ids.rb') + +RSpec.describe RetryBackfillTraversalIds, :migration do + include ReloadHelpers + + let_it_be(:namespaces_table) { table(:namespaces) } + + context 'when BackfillNamespaceTraversalIdsRoots jobs are pending' do + before do + table(:background_migration_jobs).create!( + class_name: 'BackfillNamespaceTraversalIdsRoots', + arguments: [1, 4, 100], + status: Gitlab::Database::BackgroundMigrationJob.statuses['pending'] + ) + table(:background_migration_jobs).create!( + class_name: 'BackfillNamespaceTraversalIdsRoots', + arguments: [5, 9, 100], + status: Gitlab::Database::BackgroundMigrationJob.statuses['succeeded'] + ) + end + + it 'queues pending jobs' do + migrate! + + expect(BackgroundMigrationWorker.jobs.length).to eq(1) + expect(BackgroundMigrationWorker.jobs[0]['args']).to eq(['BackfillNamespaceTraversalIdsRoots', [1, 4, 100]]) + expect(BackgroundMigrationWorker.jobs[0]['at']).to be_nil + end + end + + context 'when BackfillNamespaceTraversalIdsChildren jobs are pending' do + before do + table(:background_migration_jobs).create!( + class_name: 'BackfillNamespaceTraversalIdsChildren', + arguments: [1, 4, 100], + status: Gitlab::Database::BackgroundMigrationJob.statuses['pending'] + ) + table(:background_migration_jobs).create!( + class_name: 'BackfillNamespaceTraversalIdsRoots', + arguments: [5, 9, 100], + status: Gitlab::Database::BackgroundMigrationJob.statuses['succeeded'] + ) + end + + it 'queues pending jobs' do + migrate! + + expect(BackgroundMigrationWorker.jobs.length).to eq(1) + expect(BackgroundMigrationWorker.jobs[0]['args']).to eq(['BackfillNamespaceTraversalIdsChildren', [1, 4, 100]]) + expect(BackgroundMigrationWorker.jobs[0]['at']).to be_nil + end + end + + context 'when BackfillNamespaceTraversalIdsRoots and BackfillNamespaceTraversalIdsChildren jobs are pending' do + before do + table(:background_migration_jobs).create!( + class_name: 'BackfillNamespaceTraversalIdsRoots', + arguments: [1, 4, 100], + status: Gitlab::Database::BackgroundMigrationJob.statuses['pending'] + ) + table(:background_migration_jobs).create!( + class_name: 'BackfillNamespaceTraversalIdsChildren', + arguments: [5, 9, 100], + status: Gitlab::Database::BackgroundMigrationJob.statuses['pending'] + ) + table(:background_migration_jobs).create!( + class_name: 'BackfillNamespaceTraversalIdsRoots', + arguments: [11, 14, 100], + status: Gitlab::Database::BackgroundMigrationJob.statuses['succeeded'] + ) + table(:background_migration_jobs).create!( + class_name: 'BackfillNamespaceTraversalIdsChildren', + arguments: [15, 19, 100], + status: Gitlab::Database::BackgroundMigrationJob.statuses['succeeded'] + ) + end + + it 'queues pending jobs' do + freeze_time do + migrate! + + expect(BackgroundMigrationWorker.jobs.length).to eq(2) + expect(BackgroundMigrationWorker.jobs[0]['args']).to eq(['BackfillNamespaceTraversalIdsRoots', [1, 4, 100]]) + expect(BackgroundMigrationWorker.jobs[0]['at']).to be_nil + expect(BackgroundMigrationWorker.jobs[1]['args']).to eq(['BackfillNamespaceTraversalIdsChildren', [5, 9, 100]]) + expect(BackgroundMigrationWorker.jobs[1]['at']).to eq(RetryBackfillTraversalIds::DELAY_INTERVAL.from_now.to_f) + end + end + end +end diff --git a/spec/migrations/save_instance_administrators_group_id_spec.rb b/spec/migrations/save_instance_administrators_group_id_spec.rb index cb11cd1653a..0846df18b5e 100644 --- a/spec/migrations/save_instance_administrators_group_id_spec.rb +++ b/spec/migrations/save_instance_administrators_group_id_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200210092405_save_instance_administrators_group_id') +require_migration! RSpec.describe SaveInstanceAdministratorsGroupId do let(:application_settings_table) { table(:application_settings) } diff --git a/spec/migrations/schedule_backfill_push_rules_id_in_projects_spec.rb b/spec/migrations/schedule_backfill_push_rules_id_in_projects_spec.rb index 37a769bbc52..7b71110e62d 100644 --- a/spec/migrations/schedule_backfill_push_rules_id_in_projects_spec.rb +++ b/spec/migrations/schedule_backfill_push_rules_id_in_projects_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200325162730_schedule_backfill_push_rules_id_in_projects.rb') +require_migration! RSpec.describe ScheduleBackfillPushRulesIdInProjects do let(:push_rules) { table(:push_rules) } diff --git a/spec/migrations/schedule_blocked_by_links_replacement_second_try_spec.rb b/spec/migrations/schedule_blocked_by_links_replacement_second_try_spec.rb index 9cd1b98fbd7..f2a0bdba32a 100644 --- a/spec/migrations/schedule_blocked_by_links_replacement_second_try_spec.rb +++ b/spec/migrations/schedule_blocked_by_links_replacement_second_try_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201102073808_schedule_blocked_by_links_replacement_second_try') +require_migration! RSpec.describe ScheduleBlockedByLinksReplacementSecondTry do let(:namespace) { table(:namespaces).create!(name: 'gitlab', path: 'gitlab-org') } diff --git a/spec/migrations/schedule_calculate_wiki_sizes_spec.rb b/spec/migrations/schedule_calculate_wiki_sizes_spec.rb deleted file mode 100644 index 0af491d863b..00000000000 --- a/spec/migrations/schedule_calculate_wiki_sizes_spec.rb +++ /dev/null @@ -1,60 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190527194900_schedule_calculate_wiki_sizes.rb') - -RSpec.describe ScheduleCalculateWikiSizes do - let(:migration_class) { Gitlab::BackgroundMigration::CalculateWikiSizes } - let(:migration_name) { migration_class.to_s.demodulize } - - let(:namespaces) { table(:namespaces) } - let(:projects) { table(:projects) } - let(:project_statistics) { table(:project_statistics) } - let(:namespace) { namespaces.create!(name: 'wiki-migration', path: 'wiki-migration') } - let(:project1) { projects.create!(name: 'wiki-project-1', path: 'wiki-project-1', namespace_id: namespace.id) } - let(:project2) { projects.create!(name: 'wiki-project-2', path: 'wiki-project-2', namespace_id: namespace.id) } - 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!(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 - freeze_time do - migrate! - - expect(migration_name).to be_scheduled_delayed_migration(5.minutes, project_statistic2.id, project_statistic3.id) - expect(BackgroundMigrationWorker.jobs.size).to eq 1 - end - end - - it 'calculates missing wiki sizes', :sidekiq_inline do - expect(project_statistic2.wiki_size).to be_nil - expect(project_statistic3.wiki_size).to be_nil - - migrate! - - expect(project_statistic2.reload.wiki_size).not_to be_nil - expect(project_statistic3.reload.wiki_size).not_to be_nil - end - end - - context 'when missing wiki sizes do not exist' 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: namespace.id, wiki_size: 1000) - end - - it 'does not schedule a background migration' do - Sidekiq::Testing.fake! do - freeze_time do - migrate! - - expect(BackgroundMigrationWorker.jobs.size).to eq 0 - end - end - end - end -end diff --git a/spec/migrations/schedule_disable_expiration_policies_linked_to_no_container_images_spec.rb b/spec/migrations/schedule_disable_expiration_policies_linked_to_no_container_images_spec.rb new file mode 100644 index 00000000000..888d306f893 --- /dev/null +++ b/spec/migrations/schedule_disable_expiration_policies_linked_to_no_container_images_spec.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +require 'spec_helper' + +require_migration! + +RSpec.describe ScheduleDisableExpirationPoliciesLinkedToNoContainerImages do + let_it_be(:projects) { table(:projects) } + let_it_be(:container_expiration_policies) { table(:container_expiration_policies) } + let_it_be(:container_repositories) { table(:container_repositories) } + let_it_be(:namespaces) { table(:namespaces) } + let_it_be(:namespace) { namespaces.create!(name: 'test', path: 'test') } + + let_it_be(:policy1) { create_expiration_policy(id: 1, enabled: true) } + let_it_be(:policy2) { create_expiration_policy(id: 2, enabled: false) } + let_it_be(:policy3) { create_expiration_policy(id: 3, enabled: false) } + let_it_be(:policy4) { create_expiration_policy(id: 4, enabled: true) } + let_it_be(:policy5) { create_expiration_policy(id: 5, enabled: false) } + let_it_be(:policy6) { create_expiration_policy(id: 6, enabled: false) } + let_it_be(:policy7) { create_expiration_policy(id: 7, enabled: true) } + let_it_be(:policy8) { create_expiration_policy(id: 8, enabled: true) } + let_it_be(:policy9) { create_expiration_policy(id: 9, enabled: true) } + + it 'schedules background migrations', :aggregate_failures do + stub_const("#{described_class}::BATCH_SIZE", 2) + + Sidekiq::Testing.fake! do + freeze_time do + migrate! + + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(2.minutes, 1, 4) + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(4.minutes, 7, 8) + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(6.minutes, 9, 9) + + expect(BackgroundMigrationWorker.jobs.size).to eq(3) + end + end + end + + def create_expiration_policy(id:, enabled:) + project = projects.create!(id: id, namespace_id: namespace.id, name: "gitlab-#{id}") + container_expiration_policies.create!( + enabled: enabled, + project_id: project.id + ) + end +end 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 539b9ee96a8..45bd5073d55 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 @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190524073827_schedule_fill_valid_time_for_pages_domain_certificates.rb') +require_migration! RSpec.describe ScheduleFillValidTimeForPagesDomainCertificates do let(:migration_class) { described_class::MIGRATION } diff --git a/spec/migrations/schedule_link_lfs_objects_projects_spec.rb b/spec/migrations/schedule_link_lfs_objects_projects_spec.rb index 2384c5d5ce7..29c203c2c31 100644 --- a/spec/migrations/schedule_link_lfs_objects_projects_spec.rb +++ b/spec/migrations/schedule_link_lfs_objects_projects_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200310075115_schedule_link_lfs_objects_projects.rb') +require_migration! RSpec.describe ScheduleLinkLfsObjectsProjects, :migration, :sidekiq do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/schedule_merge_request_cleanup_schedules_backfill_spec.rb b/spec/migrations/schedule_merge_request_cleanup_schedules_backfill_spec.rb index fa8dd38619a..319c0802f2c 100644 --- a/spec/migrations/schedule_merge_request_cleanup_schedules_backfill_spec.rb +++ b/spec/migrations/schedule_merge_request_cleanup_schedules_backfill_spec.rb @@ -24,7 +24,7 @@ RSpec.describe ScheduleMergeRequestCleanupSchedulesBackfill, :sidekiq, schema: 2 stub_const("#{described_class}::BATCH_SIZE", 2) end - it 'schdules BackfillMergeRequestCleanupSchedules background jobs' do + it 'schedules BackfillMergeRequestCleanupSchedules background jobs' do Sidekiq::Testing.fake! do migrate! diff --git a/spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb b/spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb index 1d35da528e4..29e4cf05c2b 100644 --- a/spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb +++ b/spec/migrations/schedule_migrate_pages_to_zip_storage_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210302150310_schedule_migrate_pages_to_zip_storage.rb') +require_migration! RSpec.describe ScheduleMigratePagesToZipStorage, :sidekiq_might_not_need_inline, schema: 20201231133921 do let(:migration_class) { described_class::MIGRATION } diff --git a/spec/migrations/schedule_migrate_security_scans_spec.rb b/spec/migrations/schedule_migrate_security_scans_spec.rb index eb86a910611..ce926241ba6 100644 --- a/spec/migrations/schedule_migrate_security_scans_spec.rb +++ b/spec/migrations/schedule_migrate_security_scans_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200217225719_schedule_migrate_security_scans.rb') +require_migration! RSpec.describe ScheduleMigrateSecurityScans, :sidekiq do let(:migration) { described_class.new } diff --git a/spec/migrations/schedule_migrate_u2f_webauthn_spec.rb b/spec/migrations/schedule_migrate_u2f_webauthn_spec.rb index 5dc4d676063..48f098e34fc 100644 --- a/spec/migrations/schedule_migrate_u2f_webauthn_spec.rb +++ b/spec/migrations/schedule_migrate_u2f_webauthn_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200929114107_schedule_migrate_u2f_webauthn.rb') +require_migration! RSpec.describe ScheduleMigrateU2fWebauthn do let(:migration_name) { described_class::MIGRATION } diff --git a/spec/migrations/schedule_pages_metadata_migration_spec.rb b/spec/migrations/schedule_pages_metadata_migration_spec.rb index 94311237cf4..96fbc1f9f51 100644 --- a/spec/migrations/schedule_pages_metadata_migration_spec.rb +++ b/spec/migrations/schedule_pages_metadata_migration_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20191002031332_schedule_pages_metadata_migration') +require_migration! RSpec.describe SchedulePagesMetadataMigration do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/schedule_populate_issue_email_participants_spec.rb b/spec/migrations/schedule_populate_issue_email_participants_spec.rb index a3f18617b70..3a7a4e4df1e 100644 --- a/spec/migrations/schedule_populate_issue_email_participants_spec.rb +++ b/spec/migrations/schedule_populate_issue_email_participants_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201128210234_schedule_populate_issue_email_participants.rb') +require_migration! RSpec.describe SchedulePopulateIssueEmailParticipants do let!(:namespace) { table(:namespaces).create!(name: 'namespace', path: 'namespace') } 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 1f44df82ad0..3caab64a72d 100644 --- a/spec/migrations/schedule_populate_merge_request_assignees_table_spec.rb +++ b/spec/migrations/schedule_populate_merge_request_assignees_table_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190322132835_schedule_populate_merge_request_assignees_table.rb') +require_migration! RSpec.describe SchedulePopulateMergeRequestAssigneesTable do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/schedule_populate_personal_snippet_statistics_spec.rb b/spec/migrations/schedule_populate_personal_snippet_statistics_spec.rb index faa993dfbc7..5f764a1ee8f 100644 --- a/spec/migrations/schedule_populate_personal_snippet_statistics_spec.rb +++ b/spec/migrations/schedule_populate_personal_snippet_statistics_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200714075739_schedule_populate_personal_snippet_statistics.rb') +require_migration! RSpec.describe SchedulePopulatePersonalSnippetStatistics do let(:users) { table(:users) } diff --git a/spec/migrations/schedule_populate_project_snippet_statistics_spec.rb b/spec/migrations/schedule_populate_project_snippet_statistics_spec.rb index d5f048ed5cb..4ac107c5202 100644 --- a/spec/migrations/schedule_populate_project_snippet_statistics_spec.rb +++ b/spec/migrations/schedule_populate_project_snippet_statistics_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200709101408_schedule_populate_project_snippet_statistics.rb') +require_migration! RSpec.describe SchedulePopulateProjectSnippetStatistics do let(:users) { table(:users) } 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 32def8ab47d..0a2ee82b349 100644 --- a/spec/migrations/schedule_populate_user_highest_roles_table_spec.rb +++ b/spec/migrations/schedule_populate_user_highest_roles_table_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200311130802_schedule_populate_user_highest_roles_table.rb') +require_migration! RSpec.describe SchedulePopulateUserHighestRolesTable do let(:users) { table(:users) } 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 a02e00de1e3..380d107250b 100644 --- a/spec/migrations/schedule_recalculate_project_authorizations_second_run_spec.rb +++ b/spec/migrations/schedule_recalculate_project_authorizations_second_run_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200204113224_schedule_recalculate_project_authorizations_second_run.rb') +require_migration! RSpec.describe ScheduleRecalculateProjectAuthorizationsSecondRun do let(:users_table) { table(:users) } diff --git a/spec/migrations/schedule_recalculate_project_authorizations_spec.rb b/spec/migrations/schedule_recalculate_project_authorizations_spec.rb index 378e6aa133d..a4400c2ac83 100644 --- a/spec/migrations/schedule_recalculate_project_authorizations_spec.rb +++ b/spec/migrations/schedule_recalculate_project_authorizations_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200204113223_schedule_recalculate_project_authorizations.rb') +require_migration! RSpec.describe ScheduleRecalculateProjectAuthorizations do let(:users_table) { table(:users) } 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 5328abf7ea7..302ae1d5ebe 100644 --- a/spec/migrations/schedule_recalculate_project_authorizations_third_run_spec.rb +++ b/spec/migrations/schedule_recalculate_project_authorizations_third_run_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200204113225_schedule_recalculate_project_authorizations_third_run.rb') +require_migration! RSpec.describe ScheduleRecalculateProjectAuthorizationsThirdRun do let(:users_table) { table(:users) } diff --git a/spec/migrations/schedule_recalculate_uuid_on_vulnerabilities_occurrences2_spec.rb b/spec/migrations/schedule_recalculate_uuid_on_vulnerabilities_occurrences2_spec.rb new file mode 100644 index 00000000000..e7d1813e428 --- /dev/null +++ b/spec/migrations/schedule_recalculate_uuid_on_vulnerabilities_occurrences2_spec.rb @@ -0,0 +1,127 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe ScheduleRecalculateUuidOnVulnerabilitiesOccurrences2 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(:vulnerabilities) { table(:vulnerabilities) } + let(:vulnerabilities_findings) { table(:vulnerability_occurrences) } + let(:vulnerability_identifiers) { table(:vulnerability_identifiers) } + let(:vulnerability_identifier) do + vulnerability_identifiers.create!( + project_id: project.id, + external_type: 'uuid-v5', + external_id: 'uuid-v5', + fingerprint: '7e394d1b1eb461a7406d7b1e08f057a1cf11287a', + name: 'Identifier for UUIDv5') + end + + let(:different_vulnerability_identifier) do + vulnerability_identifiers.create!( + project_id: project.id, + external_type: 'uuid-v4', + external_id: 'uuid-v4', + fingerprint: '772da93d34a1ba010bcb5efa9fb6f8e01bafcc89', + name: 'Identifier for UUIDv4') + end + + let(:vulnerability_for_uuidv4) do + create_vulnerability!( + project_id: project.id, + author_id: user.id + ) + end + + let(:vulnerability_for_uuidv5) do + create_vulnerability!( + project_id: project.id, + author_id: user.id + ) + end + + let!(:finding1) do + create_finding!( + vulnerability_id: vulnerability_for_uuidv4.id, + project_id: project.id, + scanner_id: different_scanner.id, + primary_identifier_id: different_vulnerability_identifier.id, + location_fingerprint: 'fa18f432f1d56675f4098d318739c3cd5b14eb3e', + uuid: 'b3cc2518-5446-4dea-871c-89d5e999c1ac' + ) + end + + let!(:finding2) do + create_finding!( + vulnerability_id: vulnerability_for_uuidv5.id, + project_id: project.id, + scanner_id: scanner.id, + primary_identifier_id: vulnerability_identifier.id, + location_fingerprint: '838574be0210968bf6b9f569df9c2576242cbf0a', + uuid: '77211ed6-7dff-5f6b-8c9a-da89ad0a9b60' + ) + end + + before do + stub_const("#{described_class}::BATCH_SIZE", 1) + end + + around do |example| + freeze_time { Sidekiq::Testing.fake! { example.run } } + end + + it 'schedules background migrations', :aggregate_failures do + migrate! + + expect(BackgroundMigrationWorker.jobs.size).to eq(2) + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(2.minutes, finding1.id, finding1.id) + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(4.minutes, finding2.id, finding2.id) + 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 + + def create_finding!( + vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, location_fingerprint:, uuid:) + vulnerabilities_findings.create!( + vulnerability_id: vulnerability_id, + project_id: project_id, + name: 'test', + severity: 7, + confidence: 7, + report_type: 0, + project_fingerprint: '123qweasdzxc', + scanner_id: scanner_id, + primary_identifier_id: primary_identifier_id, + location_fingerprint: location_fingerprint, + metadata_version: 'test', + raw_metadata: 'test', + uuid: uuid + ) + end + + def create_user!(name: "Example User", email: "user@example.com", user_type: nil) + users.create!( + name: name, + email: email, + username: name, + projects_limit: 0 + ) + end +end diff --git a/spec/migrations/schedule_sync_issuables_state_id_spec.rb b/spec/migrations/schedule_sync_issuables_state_id_spec.rb index d22d636e084..5a7105a0c84 100644 --- a/spec/migrations/schedule_sync_issuables_state_id_spec.rb +++ b/spec/migrations/schedule_sync_issuables_state_id_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190214112022_schedule_sync_issuables_state_id.rb') +require_migration! RSpec.describe ScheduleSyncIssuablesStateId do let(:namespaces) { table(:namespaces) } 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 3d450f0e6bc..d8eaaa1df04 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 @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190506135400_schedule_sync_issuables_state_id_where_nil') +require_migration! RSpec.describe ScheduleSyncIssuablesStateIdWhereNil do let(:namespaces) { table(:namespaces) } 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 deb7aae737a..8f265acccae 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 @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200110121314_schedule_update_existing_subgroup_to_match_visibility_level_of_parent.rb') +require_migration! RSpec.describe ScheduleUpdateExistingSubgroupToMatchVisibilityLevelOfParent do include MigrationHelpers::NamespacesHelpers diff --git a/spec/migrations/schedule_update_existing_users_that_require_two_factor_auth_spec.rb b/spec/migrations/schedule_update_existing_users_that_require_two_factor_auth_spec.rb index 74f24906e41..a839229ec22 100644 --- a/spec/migrations/schedule_update_existing_users_that_require_two_factor_auth_spec.rb +++ b/spec/migrations/schedule_update_existing_users_that_require_two_factor_auth_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20201030121314_schedule_update_existing_users_that_require_two_factor_auth.rb') +require_migration! RSpec.describe ScheduleUpdateExistingUsersThatRequireTwoFactorAuth do let(:users) { table(:users) } diff --git a/spec/migrations/schedule_update_timelogs_project_id_spec.rb b/spec/migrations/schedule_update_timelogs_project_id_spec.rb index e2972d2fd08..b9130fd86be 100644 --- a/spec/migrations/schedule_update_timelogs_project_id_spec.rb +++ b/spec/migrations/schedule_update_timelogs_project_id_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20210427212034_schedule_update_timelogs_project_id.rb') +require_migration! RSpec.describe ScheduleUpdateTimelogsProjectId do let!(:namespace) { table(:namespaces).create!(name: 'namespace', path: 'namespace') } diff --git a/spec/migrations/schedule_update_users_where_two_factor_auth_required_from_group_spec.rb b/spec/migrations/schedule_update_users_where_two_factor_auth_required_from_group_spec.rb index cec141cacc9..2fe739659f0 100644 --- a/spec/migrations/schedule_update_users_where_two_factor_auth_required_from_group_spec.rb +++ b/spec/migrations/schedule_update_users_where_two_factor_auth_required_from_group_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20210519154058_schedule_update_users_where_two_factor_auth_required_from_group.rb') +require_migration! RSpec.describe ScheduleUpdateUsersWhereTwoFactorAuthRequiredFromGroup do let(:users) { table(:users) } diff --git a/spec/migrations/seed_merge_trains_enabled_spec.rb b/spec/migrations/seed_merge_trains_enabled_spec.rb index 2abb064a111..1cb0e3cf8a6 100644 --- a/spec/migrations/seed_merge_trains_enabled_spec.rb +++ b/spec/migrations/seed_merge_trains_enabled_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20201026200736_seed_merge_trains_enabled.rb') +require_migration! RSpec.describe SeedMergeTrainsEnabled do describe 'migrate' do diff --git a/spec/migrations/seed_repository_storages_weighted_spec.rb b/spec/migrations/seed_repository_storages_weighted_spec.rb index d2fb1f7a014..102107bcc9f 100644 --- a/spec/migrations/seed_repository_storages_weighted_spec.rb +++ b/spec/migrations/seed_repository_storages_weighted_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200526000407_seed_repository_storages_weighted.rb') +require_migration! RSpec.describe SeedRepositoryStoragesWeighted do let(:storages) { { "foo" => {}, "baz" => {} } } diff --git a/spec/migrations/services_remove_temporary_index_on_project_id_spec.rb b/spec/migrations/services_remove_temporary_index_on_project_id_spec.rb index 6cab4c16cfb..d47f6deb2d5 100644 --- a/spec/migrations/services_remove_temporary_index_on_project_id_spec.rb +++ b/spec/migrations/services_remove_temporary_index_on_project_id_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200203104214_services_remove_temporary_index_on_project_id.rb') +require_migration! RSpec.describe ServicesRemoveTemporaryIndexOnProjectId do let(:migration_instance) { described_class.new } diff --git a/spec/migrations/set_issue_id_for_all_versions_spec.rb b/spec/migrations/set_issue_id_for_all_versions_spec.rb index 0908d054e70..78bc4bbce1c 100644 --- a/spec/migrations/set_issue_id_for_all_versions_spec.rb +++ b/spec/migrations/set_issue_id_for_all_versions_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190715043954_set_issue_id_for_all_versions.rb') +require_migration! RSpec.describe SetIssueIdForAllVersions do let(:projects) { table(:projects) } diff --git a/spec/migrations/set_job_waiter_ttl_spec.rb b/spec/migrations/set_job_waiter_ttl_spec.rb index b9cf7c55798..a051f8a535c 100644 --- a/spec/migrations/set_job_waiter_ttl_spec.rb +++ b/spec/migrations/set_job_waiter_ttl_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200930144340_set_job_waiter_ttl.rb') +require_migration! RSpec.describe SetJobWaiterTtl, :redis do it 'sets TTLs where necessary' do diff --git a/spec/migrations/sync_issuables_state_id_spec.rb b/spec/migrations/sync_issuables_state_id_spec.rb index dcddbca6a36..67403893f74 100644 --- a/spec/migrations/sync_issuables_state_id_spec.rb +++ b/spec/migrations/sync_issuables_state_id_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20190911251732_sync_issuables_state_id') +require_migration! RSpec.describe SyncIssuablesStateId do let(:migration) { described_class.new } diff --git a/spec/migrations/truncate_user_fullname_spec.rb b/spec/migrations/truncate_user_fullname_spec.rb index cb95c222790..dc5bef06cdc 100644 --- a/spec/migrations/truncate_user_fullname_spec.rb +++ b/spec/migrations/truncate_user_fullname_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20190325080727_truncate_user_fullname.rb') +require_migration! RSpec.describe TruncateUserFullname do let(:users) { table(:users) } diff --git a/spec/migrations/unconfirm_wrongfully_verified_emails_spec.rb b/spec/migrations/unconfirm_wrongfully_verified_emails_spec.rb index cae2f331f6f..5adc866d0a5 100644 --- a/spec/migrations/unconfirm_wrongfully_verified_emails_spec.rb +++ b/spec/migrations/unconfirm_wrongfully_verified_emails_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200615111857_unconfirm_wrongfully_verified_emails.rb') +require_migration! RSpec.describe UnconfirmWrongfullyVerifiedEmails do before do diff --git a/spec/migrations/update_application_setting_npm_package_requests_forwarding_default_spec.rb b/spec/migrations/update_application_setting_npm_package_requests_forwarding_default_spec.rb index 8b241d1b28e..be209536208 100644 --- a/spec/migrations/update_application_setting_npm_package_requests_forwarding_default_spec.rb +++ b/spec/migrations/update_application_setting_npm_package_requests_forwarding_default_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200221105436_update_application_setting_npm_package_requests_forwarding_default.rb') +require_migration! RSpec.describe UpdateApplicationSettingNpmPackageRequestsForwardingDefault do # Create test data - pipeline and CI/CD jobs. diff --git a/spec/migrations/update_fingerprint_sha256_within_keys_spec.rb b/spec/migrations/update_fingerprint_sha256_within_keys_spec.rb index 7f5ae892391..22ec3135703 100644 --- a/spec/migrations/update_fingerprint_sha256_within_keys_spec.rb +++ b/spec/migrations/update_fingerprint_sha256_within_keys_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200106071113_update_fingerprint_sha256_within_keys.rb') +require_migration! RSpec.describe UpdateFingerprintSha256WithinKeys do let(:key_table) { table(:keys) } diff --git a/spec/migrations/update_historical_data_recorded_at_spec.rb b/spec/migrations/update_historical_data_recorded_at_spec.rb index bccc711f339..95d2bb989fd 100644 --- a/spec/migrations/update_historical_data_recorded_at_spec.rb +++ b/spec/migrations/update_historical_data_recorded_at_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'migrate', '20201022094846_update_historical_data_recorded_at.rb') +require_migration! RSpec.describe UpdateHistoricalDataRecordedAt do let(:historical_data_table) { table(:historical_data) } diff --git a/spec/migrations/update_internal_ids_last_value_for_epics_renamed_spec.rb b/spec/migrations/update_internal_ids_last_value_for_epics_renamed_spec.rb index 71dd3a53bcd..d7d1781aaa2 100644 --- a/spec/migrations/update_internal_ids_last_value_for_epics_renamed_spec.rb +++ b/spec/migrations/update_internal_ids_last_value_for_epics_renamed_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'migrate', '20201208081429_update_internal_ids_last_value_for_epics_renamed.rb') +require_migration! RSpec.describe UpdateInternalIdsLastValueForEpicsRenamed, :migration, schema: 20201124185639 do let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/update_minimum_password_length_spec.rb b/spec/migrations/update_minimum_password_length_spec.rb index a4485dfbcea..02254ba1343 100644 --- a/spec/migrations/update_minimum_password_length_spec.rb +++ b/spec/migrations/update_minimum_password_length_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20191205084057_update_minimum_password_length') +require_migration! RSpec.describe UpdateMinimumPasswordLength do let(:application_settings) { table(:application_settings) } diff --git a/spec/migrations/update_routes_for_lost_and_found_group_and_orphaned_projects_spec.rb b/spec/migrations/update_routes_for_lost_and_found_group_and_orphaned_projects_spec.rb index ffab5c40182..74e97b82363 100644 --- a/spec/migrations/update_routes_for_lost_and_found_group_and_orphaned_projects_spec.rb +++ b/spec/migrations/update_routes_for_lost_and_found_group_and_orphaned_projects_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20200602143020_update_routes_for_lost_and_found_group_and_orphaned_projects.rb') +require_migration! RSpec.describe UpdateRoutesForLostAndFoundGroupAndOrphanedProjects, :migration do let(:users) { table(:users) } diff --git a/spec/migrations/update_timestamp_softwarelicensespolicy_spec.rb b/spec/migrations/update_timestamp_softwarelicensespolicy_spec.rb index f55d55f94c7..0210f23f5c5 100644 --- a/spec/migrations/update_timestamp_softwarelicensespolicy_spec.rb +++ b/spec/migrations/update_timestamp_softwarelicensespolicy_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -require Rails.root.join('db', 'migrate', '20200116175538_update_timestamp_softwarelicensespolicy.rb') +require_migration! RSpec.describe UpdateTimestampSoftwarelicensespolicy do let(:software_licenses_policy) { table(:software_license_policies) } -- cgit v1.2.3