diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 14:22:11 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-12-20 14:22:11 +0000 |
commit | 0c872e02b2c822e3397515ec324051ff540f0cd5 (patch) | |
tree | ce2fb6ce7030e4dad0f4118d21ab6453e5938cdd /spec/migrations | |
parent | f7e05a6853b12f02911494c4b3fe53d9540d74fc (diff) | |
download | gitlab-ce-0c872e02b2c822e3397515ec324051ff540f0cd5.tar.gz |
Add latest changes from gitlab-org/gitlab@15-7-stable-eev15.7.0-rc42
Diffstat (limited to 'spec/migrations')
286 files changed, 1286 insertions, 554 deletions
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 1f18f7e581a..18aa8e92560 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 @@ -3,12 +3,13 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillTotalTupleCountForBatchedMigrations, :migration, schema: 20210406140057 do - let_it_be(:table_name) { 'projects' } +RSpec.describe BackfillTotalTupleCountForBatchedMigrations, :migration, schema: 20210406140057, + feature_category: :database do + let!(:table_name) { 'projects' } - let_it_be(:migrations) { table(:batched_background_migrations) } + let!(:migrations) { table(:batched_background_migrations) } - let_it_be(:migration) do + let!(:migration) do migrations.create!( created_at: Time.now, updated_at: Time.now, diff --git a/spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb b/spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb index faf440eb117..258bf7a3e69 100644 --- a/spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb +++ b/spec/migrations/20210423160427_schedule_drop_invalid_vulnerabilities_spec.rb @@ -3,33 +3,33 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDropInvalidVulnerabilities, :migration do - let_it_be(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } - let_it_be(:users) { table(:users) } - let_it_be(:user) { create_user! } - let_it_be(:project) { table(:projects).create!(id: 123, namespace_id: namespace.id) } +RSpec.describe ScheduleDropInvalidVulnerabilities, :migration, feature_category: :value_stream_management 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_it_be(:scanners) { table(:vulnerability_scanners) } - let_it_be(:scanner) { scanners.create!(project_id: project.id, external_id: 'test 1', name: 'test scanner 1') } - let_it_be(:different_scanner) { scanners.create!(project_id: project.id, external_id: 'test 2', name: 'test scanner 2') } + 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_it_be(:vulnerabilities) { table(:vulnerabilities) } - let_it_be(:vulnerability_with_finding) do + let!(:vulnerabilities) { table(:vulnerabilities) } + let!(:vulnerability_with_finding) do create_vulnerability!( project_id: project.id, author_id: user.id ) end - let_it_be(:vulnerability_without_finding) do + let!(:vulnerability_without_finding) do create_vulnerability!( project_id: project.id, author_id: user.id ) end - let_it_be(:vulnerability_identifiers) { table(:vulnerability_identifiers) } - let_it_be(:primary_identifier) do + let!(:vulnerability_identifiers) { table(:vulnerability_identifiers) } + let!(:primary_identifier) do vulnerability_identifiers.create!( project_id: project.id, external_type: 'uuid-v5', @@ -38,8 +38,8 @@ RSpec.describe ScheduleDropInvalidVulnerabilities, :migration do name: 'Identifier for UUIDv5') end - let_it_be(:vulnerabilities_findings) { table(:vulnerability_occurrences) } - let_it_be(:finding) do + let!(:vulnerabilities_findings) { table(:vulnerability_occurrences) } + let!(:finding) do create_finding!( vulnerability_id: vulnerability_with_finding.id, project_id: project.id, @@ -82,7 +82,7 @@ RSpec.describe ScheduleDropInvalidVulnerabilities, :migration do vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, name: "test", severity: 7, confidence: 7, report_type: 0, project_fingerprint: '123qweasdzxc', location_fingerprint: 'test', - metadata_version: 'test', raw_metadata: 'test', uuid: 'test') + metadata_version: 'test', raw_metadata: 'test', uuid: SecureRandom.uuid) vulnerabilities_findings.create!( vulnerability_id: vulnerability_id, project_id: project_id, diff --git a/spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb b/spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb index ed18820ec8d..688fc5eb23a 100644 --- a/spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb +++ b/spec/migrations/20210430134202_copy_adoption_snapshot_namespace_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe CopyAdoptionSnapshotNamespace, :migration, schema: 20210430124630 do +RSpec.describe CopyAdoptionSnapshotNamespace, :migration, schema: 20210430124630, feature_category: :devops_reports do let(:namespaces_table) { table(:namespaces) } let(:segments_table) { table(:analytics_devops_adoption_segments) } let(:snapshots_table) { table(:analytics_devops_adoption_snapshots) } diff --git a/spec/migrations/20210430135954_copy_adoption_segments_namespace_spec.rb b/spec/migrations/20210430135954_copy_adoption_segments_namespace_spec.rb index 25dfaa2e314..0fb3029ec6a 100644 --- a/spec/migrations/20210430135954_copy_adoption_segments_namespace_spec.rb +++ b/spec/migrations/20210430135954_copy_adoption_segments_namespace_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe CopyAdoptionSegmentsNamespace, :migration do +RSpec.describe CopyAdoptionSegmentsNamespace, :migration, feature_category: :devops_reports do let(:namespaces_table) { table(:namespaces) } let(:segments_table) { table(:analytics_devops_adoption_segments) } 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 187b9115ba7..07a90c2d276 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 @@ -4,7 +4,8 @@ require 'spec_helper' require_migration! -RSpec.describe AddProjectValueStreamIdToProjectStages, schema: 20210503105022 do +RSpec.describe AddProjectValueStreamIdToProjectStages, schema: 20210503105022, + feature_category: :value_stream_management do let(:stages) { table(:analytics_cycle_analytics_project_stages) } let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } diff --git a/spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb b/spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb index dd557c833f3..b514c92c52d 100644 --- a/spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb +++ b/spec/migrations/20210511142748_schedule_drop_invalid_vulnerabilities2_spec.rb @@ -3,35 +3,35 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDropInvalidVulnerabilities2, :migration do - let_it_be(:background_migration_jobs) { table(:background_migration_jobs) } +RSpec.describe ScheduleDropInvalidVulnerabilities2, :migration, feature_category: :value_stream_management do + let!(:background_migration_jobs) { table(:background_migration_jobs) } - let_it_be(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } - let_it_be(:users) { table(:users) } - let_it_be(:user) { create_user! } - let_it_be(:project) { table(:projects).create!(id: 123, namespace_id: namespace.id) } + 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_it_be(:scanners) { table(:vulnerability_scanners) } - let_it_be(:scanner) { scanners.create!(project_id: project.id, external_id: 'test 1', name: 'test scanner 1') } - let_it_be(:different_scanner) { scanners.create!(project_id: project.id, external_id: 'test 2', name: 'test scanner 2') } + 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_it_be(:vulnerabilities) { table(:vulnerabilities) } - let_it_be(:vulnerability_with_finding) do + let!(:vulnerabilities) { table(:vulnerabilities) } + let!(:vulnerability_with_finding) do create_vulnerability!( project_id: project.id, author_id: user.id ) end - let_it_be(:vulnerability_without_finding) do + let!(:vulnerability_without_finding) do create_vulnerability!( project_id: project.id, author_id: user.id ) end - let_it_be(:vulnerability_identifiers) { table(:vulnerability_identifiers) } - let_it_be(:primary_identifier) do + let!(:vulnerability_identifiers) { table(:vulnerability_identifiers) } + let!(:primary_identifier) do vulnerability_identifiers.create!( project_id: project.id, external_type: 'uuid-v5', @@ -40,8 +40,8 @@ RSpec.describe ScheduleDropInvalidVulnerabilities2, :migration do name: 'Identifier for UUIDv5') end - let_it_be(:vulnerabilities_findings) { table(:vulnerability_occurrences) } - let_it_be(:finding) do + let!(:vulnerabilities_findings) { table(:vulnerability_occurrences) } + let!(:finding) do create_finding!( vulnerability_id: vulnerability_with_finding.id, project_id: project.id, @@ -88,7 +88,7 @@ RSpec.describe ScheduleDropInvalidVulnerabilities2, :migration do vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, name: "test", severity: 7, confidence: 7, report_type: 0, project_fingerprint: '123qweasdzxc', location_fingerprint: 'test', - metadata_version: 'test', raw_metadata: 'test', uuid: 'test') + metadata_version: 'test', raw_metadata: 'test', uuid: SecureRandom.uuid) vulnerabilities_findings.create!( vulnerability_id: vulnerability_id, project_id: project_id, 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 index 4ac4af19eb9..8a76f0847e9 100644 --- a/spec/migrations/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects_spec.rb +++ b/spec/migrations/20210514063252_schedule_cleanup_orphaned_lfs_objects_projects_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleCleanupOrphanedLfsObjectsProjects, schema: 20210511165250 do +RSpec.describe ScheduleCleanupOrphanedLfsObjectsProjects, schema: 20210511165250, feature_category: :git_lfs do let(:lfs_objects_projects) { table(:lfs_objects_projects) } let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb b/spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb index fa4b747aaed..24a71e48035 100644 --- a/spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb +++ b/spec/migrations/20210601073400_fix_total_stage_in_vsa_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe FixTotalStageInVsa, :migration, schema: 20210518001450 do +RSpec.describe FixTotalStageInVsa, :migration, schema: 20210518001450, feature_category: :devops_reports 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) } 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 index 8d45f571969..592497805de 100644 --- 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 @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe GroupProtectedEnvironmentsAddIndexAndConstraint do +RSpec.describe GroupProtectedEnvironmentsAddIndexAndConstraint, feature_category: :continuous_delivery do let(:migration) { described_class.new } let(:protected_environments) { table(:protected_environments) } let(:group) { table(:namespaces).create!(name: 'group', path: 'group') } 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 index 14aa4fe8da7..706e0b14492 100644 --- a/spec/migrations/20210603222333_remove_builds_email_service_from_services_spec.rb +++ b/spec/migrations/20210603222333_remove_builds_email_service_from_services_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveBuildsEmailServiceFromServices do +RSpec.describe RemoveBuildsEmailServiceFromServices, feature_category: :navigation do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:services) { table(:services) } diff --git a/spec/migrations/20210610153556_delete_legacy_operations_feature_flags_spec.rb b/spec/migrations/20210610153556_delete_legacy_operations_feature_flags_spec.rb index 17599e75947..300c43b9133 100644 --- a/spec/migrations/20210610153556_delete_legacy_operations_feature_flags_spec.rb +++ b/spec/migrations/20210610153556_delete_legacy_operations_feature_flags_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe DeleteLegacyOperationsFeatureFlags do +RSpec.describe DeleteLegacyOperationsFeatureFlags, feature_category: :feature_flags do let(:namespace) { table(:namespaces).create!(name: 'foo', path: 'bar') } let(:project) { table(:projects).create!(namespace_id: namespace.id) } let(:issue) { table(:issues).create!(id: 123, project_id: project.id) } diff --git a/spec/migrations/2021061716138_cascade_delete_freeze_periods_spec.rb b/spec/migrations/2021061716138_cascade_delete_freeze_periods_spec.rb index 8dfeacc4774..baa5fd7efbd 100644 --- a/spec/migrations/2021061716138_cascade_delete_freeze_periods_spec.rb +++ b/spec/migrations/2021061716138_cascade_delete_freeze_periods_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe CascadeDeleteFreezePeriods, :suppress_gitlab_schemas_validate_connection do +RSpec.describe CascadeDeleteFreezePeriods, :suppress_gitlab_schemas_validate_connection, feature_category: :continuous_delivery do let(:namespace) { table(:namespaces).create!(name: 'deploy_freeze', path: 'deploy_freeze') } let(:project) { table(:projects).create!(id: 1, namespace_id: namespace.id) } let(:freeze_periods) { table(:ci_freeze_periods) } diff --git a/spec/migrations/20210708130419_reschedule_merge_request_diff_users_background_migration_spec.rb b/spec/migrations/20210708130419_reschedule_merge_request_diff_users_background_migration_spec.rb index 7a281611650..604504d2206 100644 --- a/spec/migrations/20210708130419_reschedule_merge_request_diff_users_background_migration_spec.rb +++ b/spec/migrations/20210708130419_reschedule_merge_request_diff_users_background_migration_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RescheduleMergeRequestDiffUsersBackgroundMigration, :migration do +RSpec.describe RescheduleMergeRequestDiffUsersBackgroundMigration, :migration, feature_category: :code_review do let(:migration) { described_class.new } describe '#up' do diff --git a/spec/migrations/20210713042000_fix_ci_sources_pipelines_index_names_spec.rb b/spec/migrations/20210713042000_fix_ci_sources_pipelines_index_names_spec.rb index adec1e05533..6761b69aed5 100644 --- a/spec/migrations/20210713042000_fix_ci_sources_pipelines_index_names_spec.rb +++ b/spec/migrations/20210713042000_fix_ci_sources_pipelines_index_names_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe FixCiSourcesPipelinesIndexNames, :migration do +RSpec.describe FixCiSourcesPipelinesIndexNames, :migration, feature_category: :continuous_integration do def validate_foreign_keys_and_index! aggregate_failures do expect(subject.foreign_key_exists?(:ci_sources_pipelines, :ci_builds, column: :source_job_id, name: 'fk_be5624bf37')).to be_truthy diff --git a/spec/migrations/20210722042939_update_issuable_slas_where_issue_closed_spec.rb b/spec/migrations/20210722042939_update_issuable_slas_where_issue_closed_spec.rb index 63802acceb5..5674efbf187 100644 --- a/spec/migrations/20210722042939_update_issuable_slas_where_issue_closed_spec.rb +++ b/spec/migrations/20210722042939_update_issuable_slas_where_issue_closed_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateIssuableSlasWhereIssueClosed, :migration do +RSpec.describe UpdateIssuableSlasWhereIssueClosed, :migration, feature_category: :team_planning do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:issues) { table(:issues) } diff --git a/spec/migrations/20210722150102_operations_feature_flags_correct_flexible_rollout_values_spec.rb b/spec/migrations/20210722150102_operations_feature_flags_correct_flexible_rollout_values_spec.rb index 94af2bb1e9a..098dd647b27 100644 --- a/spec/migrations/20210722150102_operations_feature_flags_correct_flexible_rollout_values_spec.rb +++ b/spec/migrations/20210722150102_operations_feature_flags_correct_flexible_rollout_values_spec.rb @@ -4,8 +4,8 @@ require 'spec_helper' require_migration! -RSpec.describe OperationsFeatureFlagsCorrectFlexibleRolloutValues, :migration do - let_it_be(:strategies) { table(:operations_strategies) } +RSpec.describe OperationsFeatureFlagsCorrectFlexibleRolloutValues, :migration, feature_category: :feature_flags do + let!(:strategies) { table(:operations_strategies) } let(:namespace) { table(:namespaces).create!(name: 'feature_flag', path: 'feature_flag') } let(:project) { table(:projects).create!(namespace_id: namespace.id) } diff --git a/spec/migrations/20210804150320_create_base_work_item_types_spec.rb b/spec/migrations/20210804150320_create_base_work_item_types_spec.rb index ae510826fe1..5626b885626 100644 --- a/spec/migrations/20210804150320_create_base_work_item_types_spec.rb +++ b/spec/migrations/20210804150320_create_base_work_item_types_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe CreateBaseWorkItemTypes, :migration do +RSpec.describe CreateBaseWorkItemTypes, :migration, feature_category: :team_planning do include MigrationHelpers::WorkItemTypesHelper - let_it_be(:work_item_types) { table(:work_item_types) } + let!(:work_item_types) { table(:work_item_types) } let(:base_types) do { diff --git a/spec/migrations/20210805192450_update_trial_plans_ci_daily_pipeline_schedule_triggers_spec.rb b/spec/migrations/20210805192450_update_trial_plans_ci_daily_pipeline_schedule_triggers_spec.rb index b1885b96adb..d18673db757 100644 --- a/spec/migrations/20210805192450_update_trial_plans_ci_daily_pipeline_schedule_triggers_spec.rb +++ b/spec/migrations/20210805192450_update_trial_plans_ci_daily_pipeline_schedule_triggers_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateTrialPlansCiDailyPipelineScheduleTriggers, :migration do +RSpec.describe UpdateTrialPlansCiDailyPipelineScheduleTriggers, :migration, feature_category: :purchase do let!(:plans) { table(:plans) } let!(:plan_limits) { table(:plan_limits) } let!(:premium_trial_plan) { plans.create!(name: 'premium_trial', title: 'Premium Trial') } diff --git a/spec/migrations/20210811122206_update_external_project_bots_spec.rb b/spec/migrations/20210811122206_update_external_project_bots_spec.rb index 365fb8e3218..aa0bce63865 100644 --- a/spec/migrations/20210811122206_update_external_project_bots_spec.rb +++ b/spec/migrations/20210811122206_update_external_project_bots_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateExternalProjectBots, :migration do +RSpec.describe UpdateExternalProjectBots, :migration, feature_category: :users do def create_user(**extra_options) defaults = { projects_limit: 0, email: "#{extra_options[:username]}@example.com" } diff --git a/spec/migrations/20210812013042_remove_duplicate_project_authorizations_spec.rb b/spec/migrations/20210812013042_remove_duplicate_project_authorizations_spec.rb index c88f94c6426..fcc2e1657d0 100644 --- a/spec/migrations/20210812013042_remove_duplicate_project_authorizations_spec.rb +++ b/spec/migrations/20210812013042_remove_duplicate_project_authorizations_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration!('remove_duplicate_project_authorizations') -RSpec.describe RemoveDuplicateProjectAuthorizations, :migration do +RSpec.describe RemoveDuplicateProjectAuthorizations, :migration, feature_category: :authentication_and_authorization do let(:users) { table(:users) } let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } diff --git a/spec/migrations/20210819145000_drop_temporary_columns_and_triggers_for_ci_builds_runner_session_spec.rb b/spec/migrations/20210819145000_drop_temporary_columns_and_triggers_for_ci_builds_runner_session_spec.rb index 4ad4bea058b..e48f933ad5f 100644 --- a/spec/migrations/20210819145000_drop_temporary_columns_and_triggers_for_ci_builds_runner_session_spec.rb +++ b/spec/migrations/20210819145000_drop_temporary_columns_and_triggers_for_ci_builds_runner_session_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DropTemporaryColumnsAndTriggersForCiBuildsRunnerSession, :migration do +RSpec.describe DropTemporaryColumnsAndTriggersForCiBuildsRunnerSession, :migration, feature_category: :runner do let(:ci_builds_runner_session_table) { table(:ci_builds_runner_session) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb b/spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb index 552602983d9..2a19dc025a7 100644 --- a/spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb +++ b/spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe UpsertBaseWorkItemTypes, :migration do +RSpec.describe UpsertBaseWorkItemTypes, :migration, feature_category: :team_planning do include MigrationHelpers::WorkItemTypesHelper - let_it_be(:work_item_types) { table(:work_item_types) } + let!(:work_item_types) { table(:work_item_types) } let(:base_types) do { diff --git a/spec/migrations/20210902144144_drop_temporary_columns_and_triggers_for_ci_build_needs_spec.rb b/spec/migrations/20210902144144_drop_temporary_columns_and_triggers_for_ci_build_needs_spec.rb index 4ec3c5b7211..0d89851cac1 100644 --- a/spec/migrations/20210902144144_drop_temporary_columns_and_triggers_for_ci_build_needs_spec.rb +++ b/spec/migrations/20210902144144_drop_temporary_columns_and_triggers_for_ci_build_needs_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DropTemporaryColumnsAndTriggersForCiBuildNeeds do +RSpec.describe DropTemporaryColumnsAndTriggersForCiBuildNeeds, feature_category: :pipeline_authoring do let(:ci_build_needs_table) { table(:ci_build_needs) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20210906100316_drop_temporary_columns_and_triggers_for_ci_build_trace_chunks_spec.rb b/spec/migrations/20210906100316_drop_temporary_columns_and_triggers_for_ci_build_trace_chunks_spec.rb index f1408e4ecab..eef4c7bc9fd 100644 --- a/spec/migrations/20210906100316_drop_temporary_columns_and_triggers_for_ci_build_trace_chunks_spec.rb +++ b/spec/migrations/20210906100316_drop_temporary_columns_and_triggers_for_ci_build_trace_chunks_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DropTemporaryColumnsAndTriggersForCiBuildTraceChunks do +RSpec.describe DropTemporaryColumnsAndTriggersForCiBuildTraceChunks, feature_category: :continuous_integration do let(:ci_build_trace_chunks_table) { table(:ci_build_trace_chunks) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20210906130643_drop_temporary_columns_and_triggers_for_taggings_spec.rb b/spec/migrations/20210906130643_drop_temporary_columns_and_triggers_for_taggings_spec.rb index e4385e501b2..208cbac2ae9 100644 --- a/spec/migrations/20210906130643_drop_temporary_columns_and_triggers_for_taggings_spec.rb +++ b/spec/migrations/20210906130643_drop_temporary_columns_and_triggers_for_taggings_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DropTemporaryColumnsAndTriggersForTaggings do +RSpec.describe DropTemporaryColumnsAndTriggersForTaggings, feature_category: :continuous_integration do let(:taggings_table) { table(:taggings) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20210907013944_cleanup_bigint_conversion_for_ci_builds_metadata_spec.rb b/spec/migrations/20210907013944_cleanup_bigint_conversion_for_ci_builds_metadata_spec.rb index 194832fbc43..63664803fba 100644 --- a/spec/migrations/20210907013944_cleanup_bigint_conversion_for_ci_builds_metadata_spec.rb +++ b/spec/migrations/20210907013944_cleanup_bigint_conversion_for_ci_builds_metadata_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupBigintConversionForCiBuildsMetadata do +RSpec.describe CleanupBigintConversionForCiBuildsMetadata, feature_category: :continuous_integration do let(:ci_builds_metadata) { table(:ci_builds_metadata) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20210907211557_finalize_ci_builds_bigint_conversion_spec.rb b/spec/migrations/20210907211557_finalize_ci_builds_bigint_conversion_spec.rb index c0f56da7b4f..663b90f3fa7 100644 --- a/spec/migrations/20210907211557_finalize_ci_builds_bigint_conversion_spec.rb +++ b/spec/migrations/20210907211557_finalize_ci_builds_bigint_conversion_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe FinalizeCiBuildsBigintConversion, :migration, schema: 20210907182359 do +RSpec.describe FinalizeCiBuildsBigintConversion, :migration, schema: 20210907182359, feature_category: :continuous_integration do context 'with an unexpected FK fk_3f0c88d7dc' do it 'removes the FK and migrates successfully' do # Add the unexpected FK diff --git a/spec/migrations/20210910194952_update_report_type_for_existing_approval_project_rules_spec.rb b/spec/migrations/20210910194952_update_report_type_for_existing_approval_project_rules_spec.rb index 69ee10eb0d1..e9d34fad76d 100644 --- a/spec/migrations/20210910194952_update_report_type_for_existing_approval_project_rules_spec.rb +++ b/spec/migrations/20210910194952_update_report_type_for_existing_approval_project_rules_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateReportTypeForExistingApprovalProjectRules, :migration do +RSpec.describe UpdateReportTypeForExistingApprovalProjectRules, :migration, feature_category: :source_code_management do using RSpec::Parameterized::TableSyntax let(:group) { table(:namespaces).create!(name: 'user', path: 'user') } diff --git a/spec/migrations/20210914095310_cleanup_orphan_project_access_tokens_spec.rb b/spec/migrations/20210914095310_cleanup_orphan_project_access_tokens_spec.rb index 2b755dfe11c..a9a814f9a48 100644 --- a/spec/migrations/20210914095310_cleanup_orphan_project_access_tokens_spec.rb +++ b/spec/migrations/20210914095310_cleanup_orphan_project_access_tokens_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupOrphanProjectAccessTokens, :migration do +RSpec.describe CleanupOrphanProjectAccessTokens, :migration, feature_category: :users do def create_user(**extra_options) defaults = { state: 'active', projects_limit: 0, email: "#{extra_options[:username]}@example.com" } diff --git a/spec/migrations/20210915022415_cleanup_bigint_conversion_for_ci_builds_spec.rb b/spec/migrations/20210915022415_cleanup_bigint_conversion_for_ci_builds_spec.rb index cedc62a6565..808c5371018 100644 --- a/spec/migrations/20210915022415_cleanup_bigint_conversion_for_ci_builds_spec.rb +++ b/spec/migrations/20210915022415_cleanup_bigint_conversion_for_ci_builds_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupBigintConversionForCiBuilds do +RSpec.describe CleanupBigintConversionForCiBuilds, feature_category: :continuous_integration do let(:ci_builds) { table(:ci_builds) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20210918201050_remove_old_pending_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb b/spec/migrations/20210918201050_remove_old_pending_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb index d1c04c5d320..b3d1b41c330 100644 --- a/spec/migrations/20210918201050_remove_old_pending_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb +++ b/spec/migrations/20210918201050_remove_old_pending_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb @@ -21,10 +21,11 @@ def create_background_migration_jobs(ids, status, created_at) ) end -RSpec.describe RemoveOldPendingJobsForRecalculateVulnerabilitiesOccurrencesUuid, :migration do - let_it_be(:background_migration_jobs) { table(:background_migration_jobs) } - let_it_be(:before_target_date) { -Float::INFINITY..(DateTime.new(2021, 8, 17, 23, 59, 59)) } - let_it_be(:after_target_date) { (DateTime.new(2021, 8, 18, 0, 0, 0))..Float::INFINITY } +RSpec.describe RemoveOldPendingJobsForRecalculateVulnerabilitiesOccurrencesUuid, :migration, +feature_category: :vulnerability_management do + let!(:background_migration_jobs) { table(:background_migration_jobs) } + let!(:before_target_date) { -Float::INFINITY..(DateTime.new(2021, 8, 17, 23, 59, 59)) } + let!(:after_target_date) { (DateTime.new(2021, 8, 18, 0, 0, 0))..Float::INFINITY } context 'when old RecalculateVulnerabilitiesOccurrencesUuid jobs are pending' do before do diff --git a/spec/migrations/20210922021816_drop_int4_columns_for_ci_job_artifacts_spec.rb b/spec/migrations/20210922021816_drop_int4_columns_for_ci_job_artifacts_spec.rb index a6eede8a8f1..c463f69c80c 100644 --- a/spec/migrations/20210922021816_drop_int4_columns_for_ci_job_artifacts_spec.rb +++ b/spec/migrations/20210922021816_drop_int4_columns_for_ci_job_artifacts_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DropInt4ColumnsForCiJobArtifacts do +RSpec.describe DropInt4ColumnsForCiJobArtifacts, feature_category: :build_artifacts do let(:ci_job_artifacts) { table(:ci_job_artifacts) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20210922025631_drop_int4_column_for_ci_sources_pipelines_spec.rb b/spec/migrations/20210922025631_drop_int4_column_for_ci_sources_pipelines_spec.rb index 730c9ade1fb..6b0c3a6db9a 100644 --- a/spec/migrations/20210922025631_drop_int4_column_for_ci_sources_pipelines_spec.rb +++ b/spec/migrations/20210922025631_drop_int4_column_for_ci_sources_pipelines_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DropInt4ColumnForCiSourcesPipelines do +RSpec.describe DropInt4ColumnForCiSourcesPipelines, feature_category: :pipeline_authoring do let(:ci_sources_pipelines) { table(:ci_sources_pipelines) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20210922082019_drop_int4_column_for_events_spec.rb b/spec/migrations/20210922082019_drop_int4_column_for_events_spec.rb index e460612a7d5..f615c8bb50e 100644 --- a/spec/migrations/20210922082019_drop_int4_column_for_events_spec.rb +++ b/spec/migrations/20210922082019_drop_int4_column_for_events_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DropInt4ColumnForEvents do +RSpec.describe DropInt4ColumnForEvents, feature_category: :users do let(:events) { table(:events) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20210922091402_drop_int4_column_for_push_event_payloads_spec.rb b/spec/migrations/20210922091402_drop_int4_column_for_push_event_payloads_spec.rb index 8c89cd19f7f..5c39e7530ff 100644 --- a/spec/migrations/20210922091402_drop_int4_column_for_push_event_payloads_spec.rb +++ b/spec/migrations/20210922091402_drop_int4_column_for_push_event_payloads_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DropInt4ColumnForPushEventPayloads do +RSpec.describe DropInt4ColumnForPushEventPayloads, feature_category: :users do let(:push_event_payloads) { table(:push_event_payloads) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20211006060436_schedule_populate_topics_total_projects_count_cache_spec.rb b/spec/migrations/20211006060436_schedule_populate_topics_total_projects_count_cache_spec.rb index 09ce0858b12..2f3903a20a9 100644 --- a/spec/migrations/20211006060436_schedule_populate_topics_total_projects_count_cache_spec.rb +++ b/spec/migrations/20211006060436_schedule_populate_topics_total_projects_count_cache_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe SchedulePopulateTopicsTotalProjectsCountCache do +RSpec.describe SchedulePopulateTopicsTotalProjectsCountCache, feature_category: :projects do let(:topics) { table(:topics) } let!(:topic_1) { topics.create!(name: 'Topic1') } let!(:topic_2) { topics.create!(name: 'Topic2') } diff --git a/spec/migrations/20211012134316_clean_up_migrate_merge_request_diff_commit_users_spec.rb b/spec/migrations/20211012134316_clean_up_migrate_merge_request_diff_commit_users_spec.rb index 910e6d1d91b..f627ea825b3 100644 --- a/spec/migrations/20211012134316_clean_up_migrate_merge_request_diff_commit_users_spec.rb +++ b/spec/migrations/20211012134316_clean_up_migrate_merge_request_diff_commit_users_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! 'clean_up_migrate_merge_request_diff_commit_users' -RSpec.describe CleanUpMigrateMergeRequestDiffCommitUsers, :migration do +RSpec.describe CleanUpMigrateMergeRequestDiffCommitUsers, :migration, feature_category: :code_review do describe '#up' do context 'when there are pending jobs' do it 'processes the jobs immediately' do diff --git a/spec/migrations/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3_spec.rb b/spec/migrations/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3_spec.rb index 95c5be2fc30..3e8176a36a1 100644 --- a/spec/migrations/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3_spec.rb +++ b/spec/migrations/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' require_migration!('schedule_remove_duplicate_vulnerabilities_findings3') -RSpec.describe ScheduleRemoveDuplicateVulnerabilitiesFindings3, :migration do +RSpec.describe ScheduleRemoveDuplicateVulnerabilitiesFindings3, :migration, feature_category: :vulnerability_management do let(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } let(:users) { table(:users) } let(:user) { create_user! } @@ -88,7 +88,6 @@ RSpec.describe ScheduleRemoveDuplicateVulnerabilitiesFindings3, :migration do let!(:unrelated_finding) do create_finding!( id: 9999999, - uuid: "unreleated_finding", vulnerability_id: nil, report_type: 1, location_fingerprint: 'random_location_fingerprint', @@ -131,11 +130,10 @@ RSpec.describe ScheduleRemoveDuplicateVulnerabilitiesFindings3, :migration do # rubocop:disable Metrics/ParameterLists def create_finding!( - id: nil, - vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, + vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, id: nil, name: "test", severity: 7, confidence: 7, report_type: 0, project_fingerprint: '123qweasdzxc', location_fingerprint: 'test', - metadata_version: 'test', raw_metadata: 'test', uuid: 'test') + metadata_version: 'test', raw_metadata: 'test', uuid: SecureRandom.uuid) vulnerability_findings.create!({ id: id, vulnerability_id: vulnerability_id, diff --git a/spec/migrations/20211028155449_schedule_fix_merge_request_diff_commit_users_migration_spec.rb b/spec/migrations/20211028155449_schedule_fix_merge_request_diff_commit_users_migration_spec.rb index 6511f554436..c7a0b938ca1 100644 --- a/spec/migrations/20211028155449_schedule_fix_merge_request_diff_commit_users_migration_spec.rb +++ b/spec/migrations/20211028155449_schedule_fix_merge_request_diff_commit_users_migration_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! 'schedule_fix_merge_request_diff_commit_users_migration' -RSpec.describe ScheduleFixMergeRequestDiffCommitUsersMigration, :migration do +RSpec.describe ScheduleFixMergeRequestDiffCommitUsersMigration, :migration, feature_category: :code_review do let(:migration) { described_class.new } let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } diff --git a/spec/migrations/20211101222614_consume_remaining_user_namespace_jobs_spec.rb b/spec/migrations/20211101222614_consume_remaining_user_namespace_jobs_spec.rb index d78ecc26ebf..1688ebf7cb1 100644 --- a/spec/migrations/20211101222614_consume_remaining_user_namespace_jobs_spec.rb +++ b/spec/migrations/20211101222614_consume_remaining_user_namespace_jobs_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ConsumeRemainingUserNamespaceJobs do +RSpec.describe ConsumeRemainingUserNamespaceJobs, feature_category: :subgroups do let(:namespaces) { table(:namespaces) } let!(:namespace) { namespaces.create!(name: 'gitlab', path: 'gitlab-org', type: nil) } diff --git a/spec/migrations/20211110143306_add_not_null_constraint_to_security_findings_uuid_spec.rb b/spec/migrations/20211110143306_add_not_null_constraint_to_security_findings_uuid_spec.rb index 946fbf7f568..3b69169b2d6 100644 --- a/spec/migrations/20211110143306_add_not_null_constraint_to_security_findings_uuid_spec.rb +++ b/spec/migrations/20211110143306_add_not_null_constraint_to_security_findings_uuid_spec.rb @@ -2,9 +2,9 @@ require 'spec_helper' require_migration! -RSpec.describe AddNotNullConstraintToSecurityFindingsUuid do - let_it_be(:security_findings) { table(:security_findings) } - let_it_be(:migration) { described_class.new } +RSpec.describe AddNotNullConstraintToSecurityFindingsUuid, feature_category: :vulnerability_management do + let!(:security_findings) { table(:security_findings) } + let!(:migration) { described_class.new } before do allow(migration).to receive(:transaction_open?).and_return(false) diff --git a/spec/migrations/20211110151350_schedule_drop_invalid_security_findings_spec.rb b/spec/migrations/20211110151350_schedule_drop_invalid_security_findings_spec.rb index b35cf5cbf4c..d05828112e6 100644 --- a/spec/migrations/20211110151350_schedule_drop_invalid_security_findings_spec.rb +++ b/spec/migrations/20211110151350_schedule_drop_invalid_security_findings_spec.rb @@ -3,20 +3,21 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDropInvalidSecurityFindings, :migration, schema: 20211108211434 do - let_it_be(:background_migration_jobs) { table(:background_migration_jobs) } +RSpec.describe ScheduleDropInvalidSecurityFindings, :migration, :suppress_gitlab_schemas_validate_connection, schema: 20211108211434, + feature_category: :vulnerability_management do + let!(:background_migration_jobs) { table(:background_migration_jobs) } - let_it_be(:namespace) { table(:namespaces).create!(name: 'user', path: 'user', type: Namespaces::UserNamespace.sti_name) } - let_it_be(:project) { table(:projects).create!(namespace_id: namespace.id) } + let!(:namespace) { table(:namespaces).create!(name: 'user', path: 'user', type: Namespaces::UserNamespace.sti_name) } + let!(:project) { table(:projects).create!(namespace_id: namespace.id) } - let_it_be(:pipelines) { table(:ci_pipelines) } - let_it_be(:pipeline) { pipelines.create!(project_id: project.id) } + let!(:pipelines) { table(:ci_pipelines) } + let!(:pipeline) { pipelines.create!(project_id: project.id) } - let_it_be(:ci_builds) { table(:ci_builds) } - let_it_be(:ci_build) { ci_builds.create! } + let!(:ci_builds) { table(:ci_builds) } + let!(:ci_build) { ci_builds.create! } - let_it_be(:security_scans) { table(:security_scans) } - let_it_be(:security_scan) do + let!(:security_scans) { table(:security_scans) } + let!(:security_scan) do security_scans.create!( scan_type: 1, status: 1, @@ -26,11 +27,11 @@ RSpec.describe ScheduleDropInvalidSecurityFindings, :migration, schema: 20211108 ) end - let_it_be(:vulnerability_scanners) { table(:vulnerability_scanners) } - let_it_be(:vulnerability_scanner) { vulnerability_scanners.create!(project_id: project.id, external_id: 'test 1', name: 'test scanner 1') } + let!(:vulnerability_scanners) { table(:vulnerability_scanners) } + let!(:vulnerability_scanner) { vulnerability_scanners.create!(project_id: project.id, external_id: 'test 1', name: 'test scanner 1') } - let_it_be(:security_findings) { table(:security_findings) } - let_it_be(:security_finding_without_uuid) do + let!(:security_findings) { table(:security_findings) } + let!(:security_finding_without_uuid) do security_findings.create!( severity: 1, confidence: 1, @@ -40,7 +41,7 @@ RSpec.describe ScheduleDropInvalidSecurityFindings, :migration, schema: 20211108 ) end - let_it_be(:security_finding_with_uuid) do + let!(:security_finding_with_uuid) do security_findings.create!( severity: 1, confidence: 1, diff --git a/spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb b/spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb index cf6a033b4b8..18513656029 100644 --- a/spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb +++ b/spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb @@ -4,23 +4,23 @@ require 'spec_helper' require_migration! RSpec.describe ScheduleRemoveOccurrencePipelinesAndDuplicateVulnerabilitiesFindings, - :suppress_gitlab_schemas_validate_connection, :migration do - let_it_be(:background_migration_jobs) { table(:background_migration_jobs) } - let_it_be(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } - let_it_be(:users) { table(:users) } - let_it_be(:user) { create_user! } - let_it_be(:project) { table(:projects).create!(id: 14219619, namespace_id: namespace.id) } - let_it_be(:pipelines) { table(:ci_pipelines) } - let_it_be(:scanners) { table(:vulnerability_scanners) } - let_it_be(:scanner1) { scanners.create!(project_id: project.id, external_id: 'test 1', name: 'test scanner 1') } - let_it_be(:scanner2) { scanners.create!(project_id: project.id, external_id: 'test 2', name: 'test scanner 2') } - let_it_be(:scanner3) { scanners.create!(project_id: project.id, external_id: 'test 3', name: 'test scanner 3') } - let_it_be(:unrelated_scanner) { scanners.create!(project_id: project.id, external_id: 'unreleated_scanner', name: 'unrelated scanner') } - let_it_be(:vulnerabilities) { table(:vulnerabilities) } - let_it_be(:vulnerability_findings) { table(:vulnerability_occurrences) } - let_it_be(:vulnerability_finding_pipelines) { table(:vulnerability_occurrence_pipelines) } - let_it_be(:vulnerability_identifiers) { table(:vulnerability_identifiers) } - let_it_be(:vulnerability_identifier) do + :suppress_gitlab_schemas_validate_connection, :migration, feature_category: :vulnerability_management do + let!(:background_migration_jobs) { table(:background_migration_jobs) } + let!(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } + let!(:users) { table(:users) } + let!(:user) { create_user! } + let!(:project) { table(:projects).create!(id: 14219619, namespace_id: namespace.id) } + let!(:pipelines) { table(:ci_pipelines) } + let!(:scanners) { table(:vulnerability_scanners) } + let!(:scanner1) { scanners.create!(project_id: project.id, external_id: 'test 1', name: 'test scanner 1') } + let!(:scanner2) { scanners.create!(project_id: project.id, external_id: 'test 2', name: 'test scanner 2') } + let!(:scanner3) { scanners.create!(project_id: project.id, external_id: 'test 3', name: 'test scanner 3') } + let!(:unrelated_scanner) { scanners.create!(project_id: project.id, external_id: 'unreleated_scanner', name: 'unrelated scanner') } + let!(:vulnerabilities) { table(:vulnerabilities) } + let!(:vulnerability_findings) { table(:vulnerability_occurrences) } + let!(:vulnerability_finding_pipelines) { table(:vulnerability_occurrence_pipelines) } + let!(:vulnerability_identifiers) { table(:vulnerability_identifiers) } + let!(:vulnerability_identifier) do vulnerability_identifiers.create!( id: 1244459, project_id: project.id, @@ -30,14 +30,14 @@ RSpec.describe ScheduleRemoveOccurrencePipelinesAndDuplicateVulnerabilitiesFindi name: 'vulnerability identifier') end - let_it_be(:vulnerability_for_first_duplicate) do + let!(:vulnerability_for_first_duplicate) do create_vulnerability!( project_id: project.id, author_id: user.id ) end - let_it_be(:first_finding_duplicate) do + let!(:first_finding_duplicate) do create_finding!( id: 5606961, uuid: "bd95c085-71aa-51d7-9bb6-08ae669c262e", @@ -50,14 +50,14 @@ RSpec.describe ScheduleRemoveOccurrencePipelinesAndDuplicateVulnerabilitiesFindi ) end - let_it_be(:vulnerability_for_second_duplicate) do + let!(:vulnerability_for_second_duplicate) do create_vulnerability!( project_id: project.id, author_id: user.id ) end - let_it_be(:second_finding_duplicate) do + let!(:second_finding_duplicate) do create_finding!( id: 8765432, uuid: "5b714f58-1176-5b26-8fd5-e11dfcb031b5", @@ -70,14 +70,14 @@ RSpec.describe ScheduleRemoveOccurrencePipelinesAndDuplicateVulnerabilitiesFindi ) end - let_it_be(:vulnerability_for_third_duplicate) do + let!(:vulnerability_for_third_duplicate) do create_vulnerability!( project_id: project.id, author_id: user.id ) end - let_it_be(:third_finding_duplicate) do + let!(:third_finding_duplicate) do create_finding!( id: 8832995, uuid: "cfe435fa-b25b-5199-a56d-7b007cc9e2d4", @@ -90,10 +90,9 @@ RSpec.describe ScheduleRemoveOccurrencePipelinesAndDuplicateVulnerabilitiesFindi ) end - let_it_be(:unrelated_finding) do + let!(:unrelated_finding) do create_finding!( id: 9999999, - uuid: "unreleated_finding", vulnerability_id: nil, report_type: 1, location_fingerprint: 'random_location_fingerprint', @@ -149,11 +148,10 @@ RSpec.describe ScheduleRemoveOccurrencePipelinesAndDuplicateVulnerabilitiesFindi # rubocop:disable Metrics/ParameterLists def create_finding!( - id: nil, - vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, + vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, id: nil, name: "test", severity: 7, confidence: 7, report_type: 0, project_fingerprint: '123qweasdzxc', location_fingerprint: 'test', - metadata_version: 'test', raw_metadata: 'test', uuid: 'test') + metadata_version: 'test', raw_metadata: 'test', uuid: SecureRandom.uuid) params = { vulnerability_id: vulnerability_id, project_id: project_id, diff --git a/spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb b/spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb index ef6dd94d9e3..bfe2b661a31 100644 --- a/spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb +++ b/spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe MigrateRemainingU2fRegistrations, :migration do +RSpec.describe MigrateRemainingU2fRegistrations, :migration, feature_category: :authentication_and_authorization do let(:u2f_registrations) { table(:u2f_registrations) } let(:webauthn_registrations) { table(:webauthn_registrations) } let(:users) { table(:users) } diff --git a/spec/migrations/20211126115449_encrypt_static_objects_external_storage_auth_token_spec.rb b/spec/migrations/20211126115449_encrypt_static_objects_external_storage_auth_token_spec.rb index bf4094eaa49..09a8bb44d88 100644 --- a/spec/migrations/20211126115449_encrypt_static_objects_external_storage_auth_token_spec.rb +++ b/spec/migrations/20211126115449_encrypt_static_objects_external_storage_auth_token_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe EncryptStaticObjectsExternalStorageAuthToken, :migration do +RSpec.describe EncryptStaticObjectsExternalStorageAuthToken, :migration, feature_category: :source_code_management do let(:application_settings) do Class.new(ActiveRecord::Base) do self.table_name = 'application_settings' diff --git a/spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb b/spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb index 34a6e2fdd12..32edd3615ff 100644 --- a/spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb +++ b/spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe AddTaskToWorkItemTypes, :migration do +RSpec.describe AddTaskToWorkItemTypes, :migration, feature_category: :team_planning do include MigrationHelpers::WorkItemTypesHelper - let_it_be(:work_item_types) { table(:work_item_types) } + let!(:work_item_types) { table(:work_item_types) } let(:base_types) do { diff --git a/spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb b/spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb index 809ee53462f..91646da4791 100644 --- a/spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb +++ b/spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillSequenceColumnForSprintsTable, :migration, schema: 20211126042235 do +RSpec.describe BackfillSequenceColumnForSprintsTable, :migration, schema: 20211126042235, feature_category: :team_planning do let(:migration) { described_class.new } let(:namespaces) { table(:namespaces) } let(:sprints) { table(:sprints) } diff --git a/spec/migrations/20211203091642_add_index_to_projects_on_marked_for_deletion_at_spec.rb b/spec/migrations/20211203091642_add_index_to_projects_on_marked_for_deletion_at_spec.rb index 2e1289c58f7..7be54bc13cc 100644 --- a/spec/migrations/20211203091642_add_index_to_projects_on_marked_for_deletion_at_spec.rb +++ b/spec/migrations/20211203091642_add_index_to_projects_on_marked_for_deletion_at_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddIndexToProjectsOnMarkedForDeletionAt do +RSpec.describe AddIndexToProjectsOnMarkedForDeletionAt, feature_category: :projects do it 'correctly migrates up and down' do reversible_migration do |migration| migration.before -> { diff --git a/spec/migrations/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb b/spec/migrations/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb index 491aad1b30b..be89ee9d2aa 100644 --- a/spec/migrations/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb +++ b/spec/migrations/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb @@ -20,8 +20,9 @@ def create_background_migration_jobs(ids, status, created_at) ) end -RSpec.describe RemoveJobsForRecalculateVulnerabilitiesOccurrencesUuid, :migration do - let_it_be(:background_migration_jobs) { table(:background_migration_jobs) } +RSpec.describe RemoveJobsForRecalculateVulnerabilitiesOccurrencesUuid, :migration, +feature_category: :vulnerability_management do + let!(:background_migration_jobs) { table(:background_migration_jobs) } context 'when RecalculateVulnerabilitiesOccurrencesUuid jobs are present' do before do diff --git a/spec/migrations/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4_spec.rb b/spec/migrations/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4_spec.rb index 71ffcafaae1..c7401c4790d 100644 --- a/spec/migrations/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4_spec.rb +++ b/spec/migrations/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleRecalculateUuidOnVulnerabilitiesOccurrences4 do +RSpec.describe ScheduleRecalculateUuidOnVulnerabilitiesOccurrences4, feature_category: :vulnerability_management do let(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } let(:users) { table(:users) } let(:user) { create_user! } diff --git a/spec/migrations/20211210140629_encrypt_static_object_token_spec.rb b/spec/migrations/20211210140629_encrypt_static_object_token_spec.rb index 289cf9a93ed..f103ee54990 100644 --- a/spec/migrations/20211210140629_encrypt_static_object_token_spec.rb +++ b/spec/migrations/20211210140629_encrypt_static_object_token_spec.rb @@ -3,9 +3,9 @@ require 'spec_helper' require_migration! -RSpec.describe EncryptStaticObjectToken, :migration do - let_it_be(:background_migration_jobs) { table(:background_migration_jobs) } - let_it_be(:users) { table(:users) } +RSpec.describe EncryptStaticObjectToken, :migration, feature_category: :source_code_management do + let!(:background_migration_jobs) { table(:background_migration_jobs) } + let!(:users) { table(:users) } let!(:user_without_tokens) { create_user!(name: 'notoken') } let!(:user_with_plaintext_token_1) { create_user!(name: 'plaintext_1', token: 'token') } diff --git a/spec/migrations/20211214012507_backfill_incident_issue_escalation_statuses_spec.rb b/spec/migrations/20211214012507_backfill_incident_issue_escalation_statuses_spec.rb index 791c0595f0e..0df52df43d8 100644 --- a/spec/migrations/20211214012507_backfill_incident_issue_escalation_statuses_spec.rb +++ b/spec/migrations/20211214012507_backfill_incident_issue_escalation_statuses_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillIncidentIssueEscalationStatuses do +RSpec.describe BackfillIncidentIssueEscalationStatuses, feature_category: :incident_management do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:issues) { table(:issues) } diff --git a/spec/migrations/20211217174331_mark_recalculate_finding_signatures_as_completed_spec.rb b/spec/migrations/20211217174331_mark_recalculate_finding_signatures_as_completed_spec.rb index c5058f30d82..2d808adf578 100644 --- a/spec/migrations/20211217174331_mark_recalculate_finding_signatures_as_completed_spec.rb +++ b/spec/migrations/20211217174331_mark_recalculate_finding_signatures_as_completed_spec.rb @@ -20,8 +20,8 @@ def create_background_migration_jobs(ids, status, created_at) ) end -RSpec.describe MarkRecalculateFindingSignaturesAsCompleted, :migration do - let_it_be(:background_migration_jobs) { table(:background_migration_jobs) } +RSpec.describe MarkRecalculateFindingSignaturesAsCompleted, :migration, feature_category: :vulnerability_management do + let!(:background_migration_jobs) { table(:background_migration_jobs) } context 'when RecalculateVulnerabilitiesOccurrencesUuid jobs are present' do before do diff --git a/spec/migrations/20220106111958_add_insert_or_update_vulnerability_reads_trigger_spec.rb b/spec/migrations/20220106111958_add_insert_or_update_vulnerability_reads_trigger_spec.rb index 3e450546315..263289462ba 100644 --- a/spec/migrations/20220106111958_add_insert_or_update_vulnerability_reads_trigger_spec.rb +++ b/spec/migrations/20220106111958_add_insert_or_update_vulnerability_reads_trigger_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddInsertOrUpdateVulnerabilityReadsTrigger do +RSpec.describe AddInsertOrUpdateVulnerabilityReadsTrigger, feature_category: :vulnerability_management do let(:migration) { described_class.new } let(:vulnerabilities) { table(:vulnerabilities) } let(:vulnerability_reads) { table(:vulnerability_reads) } @@ -126,7 +126,7 @@ RSpec.describe AddInsertOrUpdateVulnerabilityReadsTrigger do # rubocop:disable Metrics/ParameterLists def create_finding!( - vulnerability_id: nil, project_id:, scanner_id:, primary_identifier_id:, + project_id:, scanner_id:, primary_identifier_id:, vulnerability_id: nil, name: "test", severity: 7, confidence: 7, report_type: 0, project_fingerprint: '123qweasdzxc', location: { "image" => "alpine:3.4" }, location_fingerprint: 'test', metadata_version: 'test', raw_metadata: 'test', uuid: SecureRandom.uuid) diff --git a/spec/migrations/20220106112043_add_update_vulnerability_reads_trigger_spec.rb b/spec/migrations/20220106112043_add_update_vulnerability_reads_trigger_spec.rb index d988b1e42b9..152a551bc7b 100644 --- a/spec/migrations/20220106112043_add_update_vulnerability_reads_trigger_spec.rb +++ b/spec/migrations/20220106112043_add_update_vulnerability_reads_trigger_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddUpdateVulnerabilityReadsTrigger do +RSpec.describe AddUpdateVulnerabilityReadsTrigger, feature_category: :vulnerability_management do let(:migration) { described_class.new } let(:vulnerability_reads) { table(:vulnerability_reads) } let(:issue_links) { table(:vulnerability_issue_links) } @@ -103,7 +103,7 @@ RSpec.describe AddUpdateVulnerabilityReadsTrigger do # rubocop:disable Metrics/ParameterLists def create_finding!( - vulnerability_id: nil, project_id:, scanner_id:, primary_identifier_id:, + project_id:, scanner_id:, primary_identifier_id:, vulnerability_id: nil, name: "test", severity: 7, confidence: 7, report_type: 0, project_fingerprint: '123qweasdzxc', location: { "image" => "alpine:3.4" }, location_fingerprint: 'test', metadata_version: 'test', raw_metadata: 'test', uuid: SecureRandom.uuid) diff --git a/spec/migrations/20220106112085_add_update_vulnerability_reads_location_trigger_spec.rb b/spec/migrations/20220106112085_add_update_vulnerability_reads_location_trigger_spec.rb index 901f1cf6041..9fc40b0b5f1 100644 --- a/spec/migrations/20220106112085_add_update_vulnerability_reads_location_trigger_spec.rb +++ b/spec/migrations/20220106112085_add_update_vulnerability_reads_location_trigger_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddUpdateVulnerabilityReadsLocationTrigger do +RSpec.describe AddUpdateVulnerabilityReadsLocationTrigger, feature_category: :vulnerability_management do let(:migration) { described_class.new } let(:vulnerability_reads) { table(:vulnerability_reads) } let(:issue_links) { table(:vulnerability_issue_links) } @@ -111,7 +111,7 @@ RSpec.describe AddUpdateVulnerabilityReadsLocationTrigger do # rubocop:disable Metrics/ParameterLists def create_finding!( - vulnerability_id: nil, project_id:, scanner_id:, primary_identifier_id:, + project_id:, scanner_id:, primary_identifier_id:, vulnerability_id: nil, name: "test", severity: 7, confidence: 7, report_type: 0, project_fingerprint: '123qweasdzxc', location: { "image" => "alpine:3.4" }, location_fingerprint: 'test', metadata_version: 'test', raw_metadata: 'test', uuid: SecureRandom.uuid) diff --git a/spec/migrations/20220106163326_add_has_issues_on_vulnerability_reads_trigger_spec.rb b/spec/migrations/20220106163326_add_has_issues_on_vulnerability_reads_trigger_spec.rb index 8e50b74eb9c..e58fdfb1591 100644 --- a/spec/migrations/20220106163326_add_has_issues_on_vulnerability_reads_trigger_spec.rb +++ b/spec/migrations/20220106163326_add_has_issues_on_vulnerability_reads_trigger_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddHasIssuesOnVulnerabilityReadsTrigger do +RSpec.describe AddHasIssuesOnVulnerabilityReadsTrigger, feature_category: :vulnerability_management do let(:migration) { described_class.new } let(:vulnerability_reads) { table(:vulnerability_reads) } let(:issue_links) { table(:vulnerability_issue_links) } @@ -109,7 +109,7 @@ RSpec.describe AddHasIssuesOnVulnerabilityReadsTrigger do # rubocop:disable Metrics/ParameterLists def create_finding!( - vulnerability_id: nil, project_id:, scanner_id:, primary_identifier_id:, + project_id:, scanner_id:, primary_identifier_id:, vulnerability_id: nil, name: "test", severity: 7, confidence: 7, report_type: 0, project_fingerprint: '123qweasdzxc', location: { "image" => "alpine:3.4" }, location_fingerprint: 'test', metadata_version: 'test', raw_metadata: 'test', uuid: SecureRandom.uuid) diff --git a/spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb b/spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb index 063a51227dd..1338f826537 100644 --- a/spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb +++ b/spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb @@ -3,17 +3,17 @@ require 'spec_helper' require_migration! -RSpec.describe PopulateVulnerabilityReads, :migration do - let_it_be(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } - let_it_be(:user) { table(:users).create!(email: 'author@example.com', username: 'author', projects_limit: 10) } - let_it_be(:project) { table(:projects).create!(namespace_id: namespace.id) } - let_it_be(:scanner) { table(:vulnerability_scanners).create!(project_id: project.id, external_id: 'test 1', name: 'test scanner 1') } - let_it_be(:background_migration_jobs) { table(:background_migration_jobs) } - let_it_be(:vulnerabilities) { table(:vulnerabilities) } - let_it_be(:vulnerability_reads) { table(:vulnerability_reads) } - let_it_be(:vulnerabilities_findings) { table(:vulnerability_occurrences) } - let_it_be(:vulnerability_issue_links) { table(:vulnerability_issue_links) } - let_it_be(:vulnerability_ids) { [] } +RSpec.describe PopulateVulnerabilityReads, :migration, feature_category: :vulnerability_management do + let!(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } + let!(:user) { table(:users).create!(email: 'author@example.com', username: 'author', projects_limit: 10) } + let!(:project) { table(:projects).create!(namespace_id: namespace.id) } + let!(:scanner) { table(:vulnerability_scanners).create!(project_id: project.id, external_id: 'test 1', name: 'test scanner 1') } + let!(:background_migration_jobs) { table(:background_migration_jobs) } + let!(:vulnerabilities) { table(:vulnerabilities) } + let!(:vulnerability_reads) { table(:vulnerability_reads) } + let!(:vulnerabilities_findings) { table(:vulnerability_occurrences) } + let!(:vulnerability_issue_links) { table(:vulnerability_issue_links) } + let!(:vulnerability_ids) { [] } before do stub_const("#{described_class}::BATCH_SIZE", 1) @@ -80,8 +80,7 @@ RSpec.describe PopulateVulnerabilityReads, :migration do # rubocop:disable Metrics/ParameterLists def create_finding!( - id: nil, - vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, + vulnerability_id:, project_id:, scanner_id:, primary_identifier_id:, id: nil, name: "test", severity: 7, confidence: 7, report_type: 0, project_fingerprint: '123qweasdzxc', location_fingerprint: 'test', metadata_version: 'test', raw_metadata: 'test', uuid: SecureRandom.uuid) diff --git a/spec/migrations/20220120094340_drop_position_from_security_findings_spec.rb b/spec/migrations/20220120094340_drop_position_from_security_findings_spec.rb index 2ad9a8220c3..1470f2b3cad 100644 --- a/spec/migrations/20220120094340_drop_position_from_security_findings_spec.rb +++ b/spec/migrations/20220120094340_drop_position_from_security_findings_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration!('drop_position_from_security_findings') -RSpec.describe DropPositionFromSecurityFindings do +RSpec.describe DropPositionFromSecurityFindings, feature_category: :vulnerability_management do let(:events) { table(:security_findings) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20220124130028_dedup_runner_projects_spec.rb b/spec/migrations/20220124130028_dedup_runner_projects_spec.rb index 3429ccc4df1..ee468f40908 100644 --- a/spec/migrations/20220124130028_dedup_runner_projects_spec.rb +++ b/spec/migrations/20220124130028_dedup_runner_projects_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe DedupRunnerProjects, :migration, :suppress_gitlab_schemas_validate_connection, schema: 20220120085655 do +RSpec.describe DedupRunnerProjects, :migration, :suppress_gitlab_schemas_validate_connection, +schema: 20220120085655, feature_category: :runner do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:runners) { table(:ci_runners) } diff --git a/spec/migrations/20220128155251_remove_dangling_running_builds_spec.rb b/spec/migrations/20220128155251_remove_dangling_running_builds_spec.rb index a23f9995875..ea88cf1a2ce 100644 --- a/spec/migrations/20220128155251_remove_dangling_running_builds_spec.rb +++ b/spec/migrations/20220128155251_remove_dangling_running_builds_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration!('remove_dangling_running_builds') -RSpec.describe RemoveDanglingRunningBuilds, :suppress_gitlab_schemas_validate_connection do +RSpec.describe RemoveDanglingRunningBuilds, :suppress_gitlab_schemas_validate_connection, +feature_category: :continuous_integration do let(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } let(:project) { table(:projects).create!(namespace_id: namespace.id) } let(:runner) { table(:ci_runners).create!(runner_type: 1) } diff --git a/spec/migrations/20220128155814_fix_approval_rules_code_owners_rule_type_index_spec.rb b/spec/migrations/20220128155814_fix_approval_rules_code_owners_rule_type_index_spec.rb index 1558facdf96..3f3fdd0889d 100644 --- a/spec/migrations/20220128155814_fix_approval_rules_code_owners_rule_type_index_spec.rb +++ b/spec/migrations/20220128155814_fix_approval_rules_code_owners_rule_type_index_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration!('fix_approval_rules_code_owners_rule_type_index') -RSpec.describe FixApprovalRulesCodeOwnersRuleTypeIndex, :migration do +RSpec.describe FixApprovalRulesCodeOwnersRuleTypeIndex, :migration, feature_category: :source_code_management do let(:table_name) { :approval_merge_request_rules } let(:index_name) { 'index_approval_rules_code_owners_rule_type' } diff --git a/spec/migrations/20220202105733_delete_service_template_records_spec.rb b/spec/migrations/20220202105733_delete_service_template_records_spec.rb index c9f6b5cbe66..41762a3a5c3 100644 --- a/spec/migrations/20220202105733_delete_service_template_records_spec.rb +++ b/spec/migrations/20220202105733_delete_service_template_records_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DeleteServiceTemplateRecords do +RSpec.describe DeleteServiceTemplateRecords, feature_category: :integrations do let(:integrations) { table(:integrations) } let(:chat_names) { table(:chat_names) } let(:web_hooks) { table(:web_hooks) } diff --git a/spec/migrations/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size_spec.rb b/spec/migrations/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size_spec.rb index 39398fa058d..cbae5674d78 100644 --- a/spec/migrations/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size_spec.rb +++ b/spec/migrations/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size_spec.rb @@ -3,23 +3,23 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillNamespaceStatisticsWithDependencyProxySize do - let_it_be(:groups) { table(:namespaces) } - let_it_be(:group1) { groups.create!(id: 10, name: 'test1', path: 'test1', type: 'Group') } - let_it_be(:group2) { groups.create!(id: 20, name: 'test2', path: 'test2', type: 'Group') } - let_it_be(:group3) { groups.create!(id: 30, name: 'test3', path: 'test3', type: 'Group') } - let_it_be(:group4) { groups.create!(id: 40, name: 'test4', path: 'test4', type: 'Group') } +RSpec.describe BackfillNamespaceStatisticsWithDependencyProxySize, feature_category: :dependency_proxy do + let!(:groups) { table(:namespaces) } + let!(:group1) { groups.create!(id: 10, name: 'test1', path: 'test1', type: 'Group') } + let!(:group2) { groups.create!(id: 20, name: 'test2', path: 'test2', type: 'Group') } + let!(:group3) { groups.create!(id: 30, name: 'test3', path: 'test3', type: 'Group') } + let!(:group4) { groups.create!(id: 40, name: 'test4', path: 'test4', type: 'Group') } - let_it_be(:dependency_proxy_blobs) { table(:dependency_proxy_blobs) } - let_it_be(:dependency_proxy_manifests) { table(:dependency_proxy_manifests) } + let!(:dependency_proxy_blobs) { table(:dependency_proxy_blobs) } + let!(:dependency_proxy_manifests) { table(:dependency_proxy_manifests) } - let_it_be(:group1_manifest) { create_manifest(10, 10) } - let_it_be(:group2_manifest) { create_manifest(20, 20) } - let_it_be(:group3_manifest) { create_manifest(30, 30) } + let!(:group1_manifest) { create_manifest(10, 10) } + let!(:group2_manifest) { create_manifest(20, 20) } + let!(:group3_manifest) { create_manifest(30, 30) } - let_it_be(:group1_blob) { create_blob(10, 10) } - let_it_be(:group2_blob) { create_blob(20, 20) } - let_it_be(:group3_blob) { create_blob(30, 30) } + let!(:group1_blob) { create_blob(10, 10) } + let!(:group2_blob) { create_blob(20, 20) } + let!(:group3_blob) { create_blob(30, 30) } describe '#up' do it 'correctly schedules background migrations' do diff --git a/spec/migrations/20220204194347_encrypt_integration_properties_spec.rb b/spec/migrations/20220204194347_encrypt_integration_properties_spec.rb index 78e3b43ff76..5e728bb396c 100644 --- a/spec/migrations/20220204194347_encrypt_integration_properties_spec.rb +++ b/spec/migrations/20220204194347_encrypt_integration_properties_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe EncryptIntegrationProperties, :migration, schema: 20220204193000 do +RSpec.describe EncryptIntegrationProperties, :migration, schema: 20220204193000, feature_category: :integrations do subject(:migration) { described_class.new } let(:integrations) { table(:integrations) } diff --git a/spec/migrations/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner_spec.rb b/spec/migrations/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner_spec.rb index 41f3476dea8..89583d1050b 100644 --- a/spec/migrations/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner_spec.rb +++ b/spec/migrations/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleMigratePersonalNamespaceProjectMaintainerToOwner do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe ScheduleMigratePersonalNamespaceProjectMaintainerToOwner, feature_category: :subgroups do + let!(:migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of members' do diff --git a/spec/migrations/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe_spec.rb b/spec/migrations/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe_spec.rb index bf79ee02ff1..8a6a542bc5e 100644 --- a/spec/migrations/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe_spec.rb +++ b/spec/migrations/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateIntegrationsTriggerTypeNewOnInsertNullSafe, :migration do +RSpec.describe UpdateIntegrationsTriggerTypeNewOnInsertNullSafe, :migration, feature_category: :integrations do let(:integrations) { table(:integrations) } before do diff --git a/spec/migrations/20220213103859_remove_integrations_type_spec.rb b/spec/migrations/20220213103859_remove_integrations_type_spec.rb index b1a4370700a..8f6d9b0d9b5 100644 --- a/spec/migrations/20220213103859_remove_integrations_type_spec.rb +++ b/spec/migrations/20220213103859_remove_integrations_type_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveIntegrationsType, :migration do +RSpec.describe RemoveIntegrationsType, :migration, feature_category: :integrations do subject(:migration) { described_class.new } let(:integrations) { table(:integrations) } diff --git a/spec/migrations/20220222192524_create_not_null_constraint_releases_tag_spec.rb b/spec/migrations/20220222192524_create_not_null_constraint_releases_tag_spec.rb index bd7d992240a..b8a37dcd6d9 100644 --- a/spec/migrations/20220222192524_create_not_null_constraint_releases_tag_spec.rb +++ b/spec/migrations/20220222192524_create_not_null_constraint_releases_tag_spec.rb @@ -2,9 +2,9 @@ require 'spec_helper' require_migration! -RSpec.describe CreateNotNullConstraintReleasesTag do - let_it_be(:releases) { table(:releases) } - let_it_be(:migration) { described_class.new } +RSpec.describe CreateNotNullConstraintReleasesTag, feature_category: :release_orchestration do + let!(:releases) { table(:releases) } + let!(:migration) { described_class.new } before do allow(migration).to receive(:transaction_open?).and_return(false) diff --git a/spec/migrations/20220222192525_remove_null_releases_spec.rb b/spec/migrations/20220222192525_remove_null_releases_spec.rb index 6043f2c8cc8..ce42dea077d 100644 --- a/spec/migrations/20220222192525_remove_null_releases_spec.rb +++ b/spec/migrations/20220222192525_remove_null_releases_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveNullReleases do +RSpec.describe RemoveNullReleases, feature_category: :release_orchestration do let(:releases) { table(:releases) } before do diff --git a/spec/migrations/20220223124428_schedule_merge_topics_with_same_name_spec.rb b/spec/migrations/20220223124428_schedule_merge_topics_with_same_name_spec.rb index d9f6729475c..425f622581b 100644 --- a/spec/migrations/20220223124428_schedule_merge_topics_with_same_name_spec.rb +++ b/spec/migrations/20220223124428_schedule_merge_topics_with_same_name_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleMergeTopicsWithSameName do +RSpec.describe ScheduleMergeTopicsWithSameName, feature_category: :projects do let(:topics) { table(:topics) } describe '#up' do diff --git a/spec/migrations/20220305223212_add_security_training_providers_spec.rb b/spec/migrations/20220305223212_add_security_training_providers_spec.rb index 3d0089aaa8d..f67db3b68cd 100644 --- a/spec/migrations/20220305223212_add_security_training_providers_spec.rb +++ b/spec/migrations/20220305223212_add_security_training_providers_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe AddSecurityTrainingProviders, :migration do +RSpec.describe AddSecurityTrainingProviders, :migration, feature_category: :vulnerability_management do include MigrationHelpers::WorkItemTypesHelper - let_it_be(:security_training_providers) { table(:security_training_providers) } + let!(:security_training_providers) { table(:security_training_providers) } it 'creates default data' do # Need to delete all as security training providers are seeded before entire test suite diff --git a/spec/migrations/20220307192610_remove_duplicate_project_tag_releases_spec.rb b/spec/migrations/20220307192610_remove_duplicate_project_tag_releases_spec.rb index 8a653869a9b..3bdd6e5fab9 100644 --- a/spec/migrations/20220307192610_remove_duplicate_project_tag_releases_spec.rb +++ b/spec/migrations/20220307192610_remove_duplicate_project_tag_releases_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveDuplicateProjectTagReleases do +RSpec.describe RemoveDuplicateProjectTagReleases, feature_category: :release_orchestration do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:users) { table(:users) } diff --git a/spec/migrations/20220309084954_remove_leftover_external_pull_request_deletions_spec.rb b/spec/migrations/20220309084954_remove_leftover_external_pull_request_deletions_spec.rb index c471fd86bf5..a57d3633ecf 100644 --- a/spec/migrations/20220309084954_remove_leftover_external_pull_request_deletions_spec.rb +++ b/spec/migrations/20220309084954_remove_leftover_external_pull_request_deletions_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveLeftoverExternalPullRequestDeletions do +RSpec.describe RemoveLeftoverExternalPullRequestDeletions, feature_category: :sharding do let(:deleted_records) { table(:loose_foreign_keys_deleted_records) } let(:pending_record1) { deleted_records.create!(id: 1, fully_qualified_table_name: 'public.external_pull_requests', primary_key_value: 1, status: 1) } diff --git a/spec/migrations/20220310141349_remove_dependency_list_usage_data_from_redis_spec.rb b/spec/migrations/20220310141349_remove_dependency_list_usage_data_from_redis_spec.rb index c00685c1397..f40f9c70833 100644 --- a/spec/migrations/20220310141349_remove_dependency_list_usage_data_from_redis_spec.rb +++ b/spec/migrations/20220310141349_remove_dependency_list_usage_data_from_redis_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveDependencyListUsageDataFromRedis, :migration, :clean_gitlab_redis_shared_state do +RSpec.describe RemoveDependencyListUsageDataFromRedis, :migration, :clean_gitlab_redis_shared_state, +feature_category: :dependency_management do let(:key) { "DEPENDENCY_LIST_USAGE_COUNTER" } describe "#up" do diff --git a/spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb b/spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb index 925f1e573be..1760535e66f 100644 --- a/spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb +++ b/spec/migrations/20220315171129_cleanup_draft_data_from_faulty_regex_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupDraftDataFromFaultyRegex do +RSpec.describe CleanupDraftDataFromFaultyRegex, feature_category: :code_review do let(:merge_requests) { table(:merge_requests) } let!(:namespace) { table(:namespaces).create!(name: 'namespace', path: 'namespace') } diff --git a/spec/migrations/20220316202640_populate_container_repositories_migration_plan_spec.rb b/spec/migrations/20220316202640_populate_container_repositories_migration_plan_spec.rb index 7b5c8254163..16ebbf8b004 100644 --- a/spec/migrations/20220316202640_populate_container_repositories_migration_plan_spec.rb +++ b/spec/migrations/20220316202640_populate_container_repositories_migration_plan_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe PopulateContainerRepositoriesMigrationPlan, :aggregate_failures do - let_it_be(:namespaces) { table(:namespaces) } - let_it_be(:projects) { table(:projects) } - let_it_be(:container_repositories) { table(:container_repositories) } +RSpec.describe PopulateContainerRepositoriesMigrationPlan, :aggregate_failures, feature_category: :container_registry do + let!(:namespaces) { table(:namespaces) } + let!(:projects) { table(:projects) } + let!(:container_repositories) { table(:container_repositories) } let!(:namespace) { namespaces.create!(id: 1, name: 'namespace', path: 'namespace') } let!(:project) { projects.create!(id: 1, name: 'project', path: 'project', namespace_id: 1) } diff --git a/spec/migrations/20220321234317_remove_all_issuable_escalation_statuses_spec.rb b/spec/migrations/20220321234317_remove_all_issuable_escalation_statuses_spec.rb index 44e20df1130..c645a768969 100644 --- a/spec/migrations/20220321234317_remove_all_issuable_escalation_statuses_spec.rb +++ b/spec/migrations/20220321234317_remove_all_issuable_escalation_statuses_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveAllIssuableEscalationStatuses do +RSpec.describe RemoveAllIssuableEscalationStatuses, feature_category: :incident_management do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:issues) { table(:issues) } diff --git a/spec/migrations/20220322132242_update_pages_onboarding_state_spec.rb b/spec/migrations/20220322132242_update_pages_onboarding_state_spec.rb index fbd5fe546fa..6b08b4f853d 100644 --- a/spec/migrations/20220322132242_update_pages_onboarding_state_spec.rb +++ b/spec/migrations/20220322132242_update_pages_onboarding_state_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdatePagesOnboardingState do +RSpec.describe UpdatePagesOnboardingState, feature_category: :pages do let(:migration) { described_class.new } let!(:namespaces) { table(:namespaces) } let!(:projects) { table(:projects) } diff --git a/spec/migrations/20220324032250_migrate_shimo_confluence_service_category_spec.rb b/spec/migrations/20220324032250_migrate_shimo_confluence_service_category_spec.rb index 38db6d51e7e..15c16a2b232 100644 --- a/spec/migrations/20220324032250_migrate_shimo_confluence_service_category_spec.rb +++ b/spec/migrations/20220324032250_migrate_shimo_confluence_service_category_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe MigrateShimoConfluenceServiceCategory, :migration do +RSpec.describe MigrateShimoConfluenceServiceCategory, :migration, feature_category: :integrations do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:integrations) { table(:integrations) } diff --git a/spec/migrations/20220324165436_schedule_backfill_project_settings_spec.rb b/spec/migrations/20220324165436_schedule_backfill_project_settings_spec.rb index a8014e73bf0..3fcfb84c214 100644 --- a/spec/migrations/20220324165436_schedule_backfill_project_settings_spec.rb +++ b/spec/migrations/20220324165436_schedule_backfill_project_settings_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleBackfillProjectSettings do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe ScheduleBackfillProjectSettings, feature_category: :projects do + let!(:migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of projects' do diff --git a/spec/migrations/20220329175119_remove_leftover_ci_job_artifact_deletions_spec.rb b/spec/migrations/20220329175119_remove_leftover_ci_job_artifact_deletions_spec.rb index 13884007af2..555856788b7 100644 --- a/spec/migrations/20220329175119_remove_leftover_ci_job_artifact_deletions_spec.rb +++ b/spec/migrations/20220329175119_remove_leftover_ci_job_artifact_deletions_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveLeftoverCiJobArtifactDeletions do +RSpec.describe RemoveLeftoverCiJobArtifactDeletions, feature_category: :sharding do let(:deleted_records) { table(:loose_foreign_keys_deleted_records) } target_table_name = Ci::JobArtifact.table_name diff --git a/spec/migrations/20220331133802_schedule_backfill_topics_title_spec.rb b/spec/migrations/20220331133802_schedule_backfill_topics_title_spec.rb index 13e8c42269b..b26cd9688ae 100644 --- a/spec/migrations/20220331133802_schedule_backfill_topics_title_spec.rb +++ b/spec/migrations/20220331133802_schedule_backfill_topics_title_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleBackfillTopicsTitle do +RSpec.describe ScheduleBackfillTopicsTitle, feature_category: :projects do let(:topics) { table(:topics) } let!(:topic1) { topics.create!(name: 'topic1') } diff --git a/spec/migrations/20220412143552_consume_remaining_encrypt_integration_property_jobs_spec.rb b/spec/migrations/20220412143552_consume_remaining_encrypt_integration_property_jobs_spec.rb index 4a1b68a5a85..77bf80621c4 100644 --- a/spec/migrations/20220412143552_consume_remaining_encrypt_integration_property_jobs_spec.rb +++ b/spec/migrations/20220412143552_consume_remaining_encrypt_integration_property_jobs_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe ConsumeRemainingEncryptIntegrationPropertyJobs, :migration do +RSpec.describe ConsumeRemainingEncryptIntegrationPropertyJobs, :migration, feature_category: :integrations do subject(:migration) { described_class.new } let(:integrations) { table(:integrations) } diff --git a/spec/migrations/20220416054011_schedule_backfill_project_member_namespace_id_spec.rb b/spec/migrations/20220416054011_schedule_backfill_project_member_namespace_id_spec.rb index 2838fc9387c..c81ecc07779 100644 --- a/spec/migrations/20220416054011_schedule_backfill_project_member_namespace_id_spec.rb +++ b/spec/migrations/20220416054011_schedule_backfill_project_member_namespace_id_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleBackfillProjectMemberNamespaceId do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe ScheduleBackfillProjectMemberNamespaceId, feature_category: :subgroups do + let!(:migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of project members' do diff --git a/spec/migrations/20220420135946_update_batched_background_migration_arguments_spec.rb b/spec/migrations/20220420135946_update_batched_background_migration_arguments_spec.rb index 6dbee483e15..c740c893ad6 100644 --- a/spec/migrations/20220420135946_update_batched_background_migration_arguments_spec.rb +++ b/spec/migrations/20220420135946_update_batched_background_migration_arguments_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateBatchedBackgroundMigrationArguments do +RSpec.describe UpdateBatchedBackgroundMigrationArguments, feature_category: :database do let(:batched_migrations) { table(:batched_background_migrations) } before do diff --git a/spec/migrations/20220426185933_backfill_deployments_finished_at_spec.rb b/spec/migrations/20220426185933_backfill_deployments_finished_at_spec.rb index c79325c5077..c41e1402bf1 100644 --- a/spec/migrations/20220426185933_backfill_deployments_finished_at_spec.rb +++ b/spec/migrations/20220426185933_backfill_deployments_finished_at_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillDeploymentsFinishedAt, :migration do +RSpec.describe BackfillDeploymentsFinishedAt, :migration, feature_category: :continuous_delivery do let(:deployments) { table(:deployments) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20220502015011_clean_up_fix_merge_request_diff_commit_users_spec.rb b/spec/migrations/20220502015011_clean_up_fix_merge_request_diff_commit_users_spec.rb index 2bc3e89a748..e316ad25214 100644 --- a/spec/migrations/20220502015011_clean_up_fix_merge_request_diff_commit_users_spec.rb +++ b/spec/migrations/20220502015011_clean_up_fix_merge_request_diff_commit_users_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! 'clean_up_fix_merge_request_diff_commit_users' -RSpec.describe CleanUpFixMergeRequestDiffCommitUsers, :migration do +RSpec.describe CleanUpFixMergeRequestDiffCommitUsers, :migration, feature_category: :code_review do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:project_namespace) { namespaces.create!(name: 'project2', path: 'project2', type: 'Project') } diff --git a/spec/migrations/20220502173045_reset_too_many_tags_skipped_registry_imports_spec.rb b/spec/migrations/20220502173045_reset_too_many_tags_skipped_registry_imports_spec.rb index cc4041fe151..a65e991d566 100644 --- a/spec/migrations/20220502173045_reset_too_many_tags_skipped_registry_imports_spec.rb +++ b/spec/migrations/20220502173045_reset_too_many_tags_skipped_registry_imports_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ResetTooManyTagsSkippedRegistryImports, :aggregate_failures do +RSpec.describe ResetTooManyTagsSkippedRegistryImports, :aggregate_failures, feature_category: :container_registry do let(:migration) { described_class::MIGRATION } let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } diff --git a/spec/migrations/20220503035221_add_gitlab_schema_to_batched_background_migrations_spec.rb b/spec/migrations/20220503035221_add_gitlab_schema_to_batched_background_migrations_spec.rb index 5002c665c79..9086700c513 100644 --- a/spec/migrations/20220503035221_add_gitlab_schema_to_batched_background_migrations_spec.rb +++ b/spec/migrations/20220503035221_add_gitlab_schema_to_batched_background_migrations_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddGitlabSchemaToBatchedBackgroundMigrations do +RSpec.describe AddGitlabSchemaToBatchedBackgroundMigrations, feature_category: :database do it 'sets gitlab_schema for existing methods to "gitlab_main" and default to NULL' do batched_migrations = table(:batched_background_migrations) batched_migration = batched_migrations.create!( diff --git a/spec/migrations/20220505044348_fix_automatic_iterations_cadences_start_date_spec.rb b/spec/migrations/20220505044348_fix_automatic_iterations_cadences_start_date_spec.rb index 575157f8331..3a6a8f5dbe5 100644 --- a/spec/migrations/20220505044348_fix_automatic_iterations_cadences_start_date_spec.rb +++ b/spec/migrations/20220505044348_fix_automatic_iterations_cadences_start_date_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe FixAutomaticIterationsCadencesStartDate do +RSpec.describe FixAutomaticIterationsCadencesStartDate, feature_category: :team_planning do let(:migration) { described_class.new } let(:namespaces) { table(:namespaces) } let(:sprints) { table(:sprints) } diff --git a/spec/migrations/20220505174658_update_index_on_alerts_to_exclude_null_fingerprints_spec.rb b/spec/migrations/20220505174658_update_index_on_alerts_to_exclude_null_fingerprints_spec.rb index ec58a54b085..255d99eb8ca 100644 --- a/spec/migrations/20220505174658_update_index_on_alerts_to_exclude_null_fingerprints_spec.rb +++ b/spec/migrations/20220505174658_update_index_on_alerts_to_exclude_null_fingerprints_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateIndexOnAlertsToExcludeNullFingerprints do +RSpec.describe UpdateIndexOnAlertsToExcludeNullFingerprints, feature_category: :incident_management do let(:alerts) { 'alert_management_alerts' } let(:old_index) { described_class::OLD_INDEX_NAME } let(:new_index) { described_class::NEW_INDEX_NAME } diff --git a/spec/migrations/20220506154054_create_sync_namespace_details_trigger_spec.rb b/spec/migrations/20220506154054_create_sync_namespace_details_trigger_spec.rb index 411b1eacb86..3e784761dd4 100644 --- a/spec/migrations/20220506154054_create_sync_namespace_details_trigger_spec.rb +++ b/spec/migrations/20220506154054_create_sync_namespace_details_trigger_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe CreateSyncNamespaceDetailsTrigger do +RSpec.describe CreateSyncNamespaceDetailsTrigger, feature_category: :subgroups do let(:migration) { described_class.new } let(:namespaces) { table(:namespaces) } let(:namespace_details) { table(:namespace_details) } diff --git a/spec/migrations/20220512190659_remove_web_hooks_web_hook_logs_web_hook_id_fk_spec.rb b/spec/migrations/20220512190659_remove_web_hooks_web_hook_logs_web_hook_id_fk_spec.rb index fa94a73582d..66649eebf70 100644 --- a/spec/migrations/20220512190659_remove_web_hooks_web_hook_logs_web_hook_id_fk_spec.rb +++ b/spec/migrations/20220512190659_remove_web_hooks_web_hook_logs_web_hook_id_fk_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveWebHooksWebHookLogsWebHookIdFk do +RSpec.describe RemoveWebHooksWebHookLogsWebHookIdFk, feature_category: :integrations do let(:web_hooks) { table(:web_hooks) } let(:logs) { table(:web_hook_logs) } diff --git a/spec/migrations/20220513043344_reschedule_expire_o_auth_tokens_spec.rb b/spec/migrations/20220513043344_reschedule_expire_o_auth_tokens_spec.rb index 63fff279acc..735232dfac7 100644 --- a/spec/migrations/20220513043344_reschedule_expire_o_auth_tokens_spec.rb +++ b/spec/migrations/20220513043344_reschedule_expire_o_auth_tokens_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe RescheduleExpireOAuthTokens do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe RescheduleExpireOAuthTokens, feature_category: :authentication_and_authorization do + let!(:migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of oauth tokens' do diff --git a/spec/migrations/20220523171107_drop_deploy_tokens_token_column_spec.rb b/spec/migrations/20220523171107_drop_deploy_tokens_token_column_spec.rb index 78df6f5fc35..9cbc6dea6a9 100644 --- a/spec/migrations/20220523171107_drop_deploy_tokens_token_column_spec.rb +++ b/spec/migrations/20220523171107_drop_deploy_tokens_token_column_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DropDeployTokensTokenColumn do +RSpec.describe DropDeployTokensTokenColumn, feature_category: :continuous_delivery do let(:deploy_tokens) { table(:deploy_tokens) } it 'correctly migrates up and down' do diff --git a/spec/migrations/20220524074947_finalize_backfill_null_note_discussion_ids_spec.rb b/spec/migrations/20220524074947_finalize_backfill_null_note_discussion_ids_spec.rb index 74ad4662b3e..9071c61ca0e 100644 --- a/spec/migrations/20220524074947_finalize_backfill_null_note_discussion_ids_spec.rb +++ b/spec/migrations/20220524074947_finalize_backfill_null_note_discussion_ids_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe FinalizeBackfillNullNoteDiscussionIds, :migration do +RSpec.describe FinalizeBackfillNullNoteDiscussionIds, :migration, feature_category: :team_planning do subject(:migration) { described_class.new } let(:notes) { table(:notes) } diff --git a/spec/migrations/20220524184149_create_sync_project_namespace_details_trigger_spec.rb b/spec/migrations/20220524184149_create_sync_project_namespace_details_trigger_spec.rb index f85a59357e1..21fddb08771 100644 --- a/spec/migrations/20220524184149_create_sync_project_namespace_details_trigger_spec.rb +++ b/spec/migrations/20220524184149_create_sync_project_namespace_details_trigger_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe CreateSyncProjectNamespaceDetailsTrigger do +RSpec.describe CreateSyncProjectNamespaceDetailsTrigger, feature_category: :projects do let(:migration) { described_class.new } let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/20220525221133_schedule_backfill_vulnerability_reads_cluster_agent_spec.rb b/spec/migrations/20220525221133_schedule_backfill_vulnerability_reads_cluster_agent_spec.rb index 3f1a2d8c4b9..9e414157b3f 100644 --- a/spec/migrations/20220525221133_schedule_backfill_vulnerability_reads_cluster_agent_spec.rb +++ b/spec/migrations/20220525221133_schedule_backfill_vulnerability_reads_cluster_agent_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleBackfillVulnerabilityReadsClusterAgent do - let_it_be(:batched_migration) { described_class::MIGRATION_NAME } +RSpec.describe ScheduleBackfillVulnerabilityReadsClusterAgent, feature_category: :vulnerability_management do + let!(:batched_migration) { described_class::MIGRATION_NAME } it 'schedules background jobs for each batch of vulnerability reads' do reversible_migration do |migration| diff --git a/spec/migrations/20220601110011_schedule_remove_self_managed_wiki_notes_spec.rb b/spec/migrations/20220601110011_schedule_remove_self_managed_wiki_notes_spec.rb index 44e80980b27..63174d054d7 100644 --- a/spec/migrations/20220601110011_schedule_remove_self_managed_wiki_notes_spec.rb +++ b/spec/migrations/20220601110011_schedule_remove_self_managed_wiki_notes_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleRemoveSelfManagedWikiNotes do - let_it_be(:batched_migration) { described_class::MIGRATION } +RSpec.describe ScheduleRemoveSelfManagedWikiNotes, feature_category: :wiki do + let!(:batched_migration) { described_class::MIGRATION } it 'schedules new batched migration' do reversible_migration do |migration| diff --git a/spec/migrations/20220601152916_add_user_id_and_ip_address_success_index_to_authentication_events_spec.rb b/spec/migrations/20220601152916_add_user_id_and_ip_address_success_index_to_authentication_events_spec.rb index 8cb6ab23fef..1b8ec47f61b 100644 --- a/spec/migrations/20220601152916_add_user_id_and_ip_address_success_index_to_authentication_events_spec.rb +++ b/spec/migrations/20220601152916_add_user_id_and_ip_address_success_index_to_authentication_events_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe AddUserIdAndIpAddressSuccessIndexToAuthenticationEvents do +RSpec.describe AddUserIdAndIpAddressSuccessIndexToAuthenticationEvents, +feature_category: :authentication_and_authorization do let(:db) { described_class.new } let(:old_index) { described_class::OLD_INDEX_NAME } let(:new_index) { described_class::NEW_INDEX_NAME } diff --git a/spec/migrations/20220606080509_fix_incorrect_job_artifacts_expire_at_spec.rb b/spec/migrations/20220606080509_fix_incorrect_job_artifacts_expire_at_spec.rb index 5921dd64c0e..314385e35da 100644 --- a/spec/migrations/20220606080509_fix_incorrect_job_artifacts_expire_at_spec.rb +++ b/spec/migrations/20220606080509_fix_incorrect_job_artifacts_expire_at_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe FixIncorrectJobArtifactsExpireAt, migration: :gitlab_ci do - let_it_be(:batched_migration) { described_class::MIGRATION } +RSpec.describe FixIncorrectJobArtifactsExpireAt, migration: :gitlab_ci, feature_category: :build_artifacts do + let!(:batched_migration) { described_class::MIGRATION } it 'does not schedule background jobs when Gitlab.com is true' do allow(Gitlab).to receive(:com?).and_return(true) diff --git a/spec/migrations/20220606082910_add_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb b/spec/migrations/20220606082910_add_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb index 1450811b3b9..b74e15d804f 100644 --- a/spec/migrations/20220606082910_add_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb +++ b/spec/migrations/20220606082910_add_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb @@ -4,7 +4,8 @@ require "spec_helper" require_migration! -RSpec.describe AddTmpIndexForPotentiallyMisassociatedVulnerabilityOccurrences do +RSpec.describe AddTmpIndexForPotentiallyMisassociatedVulnerabilityOccurrences, +feature_category: :vulnerability_management do let(:async_index) { Gitlab::Database::AsyncIndexes::PostgresAsyncIndex } let(:index_name) { described_class::INDEX_NAME } diff --git a/spec/migrations/20220607082910_add_sync_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb b/spec/migrations/20220607082910_add_sync_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb index 68fac1c2221..8d3ef9a46d7 100644 --- a/spec/migrations/20220607082910_add_sync_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb +++ b/spec/migrations/20220607082910_add_sync_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb @@ -4,7 +4,8 @@ require "spec_helper" require_migration! -RSpec.describe AddSyncTmpIndexForPotentiallyMisassociatedVulnerabilityOccurrences do +RSpec.describe AddSyncTmpIndexForPotentiallyMisassociatedVulnerabilityOccurrences, +feature_category: :vulnerability_management do let(:table) { "vulnerability_occurrences" } let(:index) { described_class::INDEX_NAME } diff --git a/spec/migrations/20220620132300_update_last_run_date_for_iterations_cadences_spec.rb b/spec/migrations/20220620132300_update_last_run_date_for_iterations_cadences_spec.rb index d23ca8741a2..5ac4bba4cb5 100644 --- a/spec/migrations/20220620132300_update_last_run_date_for_iterations_cadences_spec.rb +++ b/spec/migrations/20220620132300_update_last_run_date_for_iterations_cadences_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateLastRunDateForIterationsCadences, :migration do +RSpec.describe UpdateLastRunDateForIterationsCadences, :migration, feature_category: :team_planning do let(:current_date) { Date.parse(ApplicationRecord.connection.execute("SELECT CURRENT_DATE").first["current_date"]) } let(:namespaces) { table(:namespaces) } let(:iterations_cadences) { table(:iterations_cadences) } diff --git a/spec/migrations/20220622080547_backfill_project_statistics_with_container_registry_size_spec.rb b/spec/migrations/20220622080547_backfill_project_statistics_with_container_registry_size_spec.rb index 52b75f0b8a9..3ca8c1709f3 100644 --- a/spec/migrations/20220622080547_backfill_project_statistics_with_container_registry_size_spec.rb +++ b/spec/migrations/20220622080547_backfill_project_statistics_with_container_registry_size_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillProjectStatisticsWithContainerRegistrySize do - let_it_be(:batched_migration) { described_class::MIGRATION_CLASS } +RSpec.describe BackfillProjectStatisticsWithContainerRegistrySize, feature_category: :container_registry do + let!(:batched_migration) { described_class::MIGRATION_CLASS } it 'does not schedule background jobs when Gitlab.com is false' do allow(Gitlab).to receive(:com?).and_return(false) diff --git a/spec/migrations/20220627090231_schedule_disable_legacy_open_source_license_for_inactive_public_projects_spec.rb b/spec/migrations/20220627090231_schedule_disable_legacy_open_source_license_for_inactive_public_projects_spec.rb index 3e7f2a3457b..edefc378575 100644 --- a/spec/migrations/20220627090231_schedule_disable_legacy_open_source_license_for_inactive_public_projects_spec.rb +++ b/spec/migrations/20220627090231_schedule_disable_legacy_open_source_license_for_inactive_public_projects_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForInactivePublicProjects do +RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForInactivePublicProjects, feature_category: :projects do context 'on gitlab.com' do let(:migration) { described_class::MIGRATION } diff --git a/spec/migrations/20220627152642_queue_update_delayed_project_removal_to_null_for_user_namespace_spec.rb b/spec/migrations/20220627152642_queue_update_delayed_project_removal_to_null_for_user_namespace_spec.rb index 190f1c830ae..fe46d6a8608 100644 --- a/spec/migrations/20220627152642_queue_update_delayed_project_removal_to_null_for_user_namespace_spec.rb +++ b/spec/migrations/20220627152642_queue_update_delayed_project_removal_to_null_for_user_namespace_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe QueueUpdateDelayedProjectRemovalToNullForUserNamespace do +RSpec.describe QueueUpdateDelayedProjectRemovalToNullForUserNamespace, feature_category: :subgroups do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/20220628012902_finalise_project_namespace_members_spec.rb b/spec/migrations/20220628012902_finalise_project_namespace_members_spec.rb index 1f116cf6a7e..55cabc21997 100644 --- a/spec/migrations/20220628012902_finalise_project_namespace_members_spec.rb +++ b/spec/migrations/20220628012902_finalise_project_namespace_members_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe FinaliseProjectNamespaceMembers, :migration do +RSpec.describe FinaliseProjectNamespaceMembers, :migration, feature_category: :subgroups do let(:batched_migrations) { table(:batched_background_migrations) } - let_it_be(:migration) { described_class::MIGRATION } + let!(:migration) { described_class::MIGRATION } describe '#up' do shared_examples 'finalizes the migration' do diff --git a/spec/migrations/20220629184402_unset_escalation_policies_for_alert_incidents_spec.rb b/spec/migrations/20220629184402_unset_escalation_policies_for_alert_incidents_spec.rb index bd821714605..e01cca038ea 100644 --- a/spec/migrations/20220629184402_unset_escalation_policies_for_alert_incidents_spec.rb +++ b/spec/migrations/20220629184402_unset_escalation_policies_for_alert_incidents_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe UnsetEscalationPoliciesForAlertIncidents do +RSpec.describe UnsetEscalationPoliciesForAlertIncidents, feature_category: :incident_management do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:issues) { table(:issues) } @@ -45,7 +45,7 @@ RSpec.describe UnsetEscalationPoliciesForAlertIncidents do private def create_issue - issues.create!(project_id: project.id) + issues.create!(project_id: project.id, namespace_id: project.project_namespace_id) end def create_status(issue, policy = nil, escalations_started_at = nil) diff --git a/spec/migrations/20220715163254_update_notes_in_past_spec.rb b/spec/migrations/20220715163254_update_notes_in_past_spec.rb index 58e6cabc129..6250229a1f9 100644 --- a/spec/migrations/20220715163254_update_notes_in_past_spec.rb +++ b/spec/migrations/20220715163254_update_notes_in_past_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateNotesInPast, :migration do +RSpec.describe UpdateNotesInPast, :migration, feature_category: :team_planning do let(:notes) { table(:notes) } it 'updates created_at when it is too much in the past' do diff --git a/spec/migrations/20220721031446_schedule_disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb b/spec/migrations/20220721031446_schedule_disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb index b17a0215f4e..2dff9eb90cd 100644 --- a/spec/migrations/20220721031446_schedule_disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb +++ b/spec/migrations/20220721031446_schedule_disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForOneMemberNoRepoProjects do +RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForOneMemberNoRepoProjects, feature_category: :projects do context 'when on gitlab.com' do let(:migration) { described_class::MIGRATION } diff --git a/spec/migrations/20220722084543_schedule_disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb b/spec/migrations/20220722084543_schedule_disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb index cb0f941aea1..a994ddad850 100644 --- a/spec/migrations/20220722084543_schedule_disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb +++ b/spec/migrations/20220722084543_schedule_disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForNoIssuesNoRepoProjects do +RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForNoIssuesNoRepoProjects, feature_category: :projects do context 'when on gitlab.com' do let(:migration) { described_class::MIGRATION } diff --git a/spec/migrations/20220722110026_reschedule_set_legacy_open_source_license_available_for_non_public_projects_spec.rb b/spec/migrations/20220722110026_reschedule_set_legacy_open_source_license_available_for_non_public_projects_spec.rb index 99a30c7f2a9..ab246ea1b10 100644 --- a/spec/migrations/20220722110026_reschedule_set_legacy_open_source_license_available_for_non_public_projects_spec.rb +++ b/spec/migrations/20220722110026_reschedule_set_legacy_open_source_license_available_for_non_public_projects_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RescheduleSetLegacyOpenSourceLicenseAvailableForNonPublicProjects do +RSpec.describe RescheduleSetLegacyOpenSourceLicenseAvailableForNonPublicProjects, feature_category: :projects do context 'when on gitlab.com' do let(:migration) { described_class::MIGRATION } diff --git a/spec/migrations/20220725150127_update_jira_tracker_data_deployment_type_based_on_url_spec.rb b/spec/migrations/20220725150127_update_jira_tracker_data_deployment_type_based_on_url_spec.rb index 2651e46ba53..1bd186a77e7 100644 --- a/spec/migrations/20220725150127_update_jira_tracker_data_deployment_type_based_on_url_spec.rb +++ b/spec/migrations/20220725150127_update_jira_tracker_data_deployment_type_based_on_url_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateJiraTrackerDataDeploymentTypeBasedOnUrl, :migration do +RSpec.describe UpdateJiraTrackerDataDeploymentTypeBasedOnUrl, :migration, feature_category: :integrations do let(:integrations_table) { table(:integrations) } let(:service_jira_cloud) { integrations_table.create!(id: 1, type_new: 'JiraService') } let(:service_jira_server) { integrations_table.create!(id: 2, type_new: 'JiraService') } diff --git a/spec/migrations/20220801155858_schedule_disable_legacy_open_source_licence_for_recent_public_projects_spec.rb b/spec/migrations/20220801155858_schedule_disable_legacy_open_source_licence_for_recent_public_projects_spec.rb index fdd97f2d008..f8f1565fe4c 100644 --- a/spec/migrations/20220801155858_schedule_disable_legacy_open_source_licence_for_recent_public_projects_spec.rb +++ b/spec/migrations/20220801155858_schedule_disable_legacy_open_source_licence_for_recent_public_projects_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDisableLegacyOpenSourceLicenceForRecentPublicProjects, schema: 20220801155858 do +RSpec.describe ScheduleDisableLegacyOpenSourceLicenceForRecentPublicProjects, schema: 20220801155858, + feature_category: :projects do context 'when on gitlab.com' do let(:background_migration) { described_class::MIGRATION } let(:migration) { described_class.new } diff --git a/spec/migrations/20220802114351_reschedule_backfill_container_registry_size_into_project_statistics_spec.rb b/spec/migrations/20220802114351_reschedule_backfill_container_registry_size_into_project_statistics_spec.rb index cc1c1dac4c3..35d0cdfa25e 100644 --- a/spec/migrations/20220802114351_reschedule_backfill_container_registry_size_into_project_statistics_spec.rb +++ b/spec/migrations/20220802114351_reschedule_backfill_container_registry_size_into_project_statistics_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe RescheduleBackfillContainerRegistrySizeIntoProjectStatistics do - let_it_be(:batched_migration) { described_class::MIGRATION_CLASS } +RSpec.describe RescheduleBackfillContainerRegistrySizeIntoProjectStatistics, feature_category: :container_registry do + let!(:batched_migration) { described_class::MIGRATION_CLASS } it 'does not schedule background jobs when Gitlab.com is false' do allow(Gitlab).to receive(:com?).and_return(false) diff --git a/spec/migrations/20220802204737_remove_deactivated_user_highest_role_stats_spec.rb b/spec/migrations/20220802204737_remove_deactivated_user_highest_role_stats_spec.rb index 3ea286ca138..dd77ce503b8 100644 --- a/spec/migrations/20220802204737_remove_deactivated_user_highest_role_stats_spec.rb +++ b/spec/migrations/20220802204737_remove_deactivated_user_highest_role_stats_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveDeactivatedUserHighestRoleStats do +RSpec.describe RemoveDeactivatedUserHighestRoleStats, feature_category: :utilization do let!(:users) { table(:users) } let!(:user_highest_roles) { table(:user_highest_roles) } diff --git a/spec/migrations/20220816163444_update_start_date_for_iterations_cadences_spec.rb b/spec/migrations/20220816163444_update_start_date_for_iterations_cadences_spec.rb index 5a5e2362a53..25b2b5c2e18 100644 --- a/spec/migrations/20220816163444_update_start_date_for_iterations_cadences_spec.rb +++ b/spec/migrations/20220816163444_update_start_date_for_iterations_cadences_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateStartDateForIterationsCadences, :freeze_time do +RSpec.describe UpdateStartDateForIterationsCadences, :freeze_time, feature_category: :team_planning do let(:migration) { described_class.new } let(:namespaces) { table(:namespaces) } let(:sprints) { table(:sprints) } diff --git a/spec/migrations/20220819153725_add_vulnerability_advisory_foreign_key_to_sbom_vulnerable_component_versions_spec.rb b/spec/migrations/20220819153725_add_vulnerability_advisory_foreign_key_to_sbom_vulnerable_component_versions_spec.rb index c53dd9de649..5a61f49485c 100644 --- a/spec/migrations/20220819153725_add_vulnerability_advisory_foreign_key_to_sbom_vulnerable_component_versions_spec.rb +++ b/spec/migrations/20220819153725_add_vulnerability_advisory_foreign_key_to_sbom_vulnerable_component_versions_spec.rb @@ -4,7 +4,8 @@ require "spec_helper" require_migration! -RSpec.describe AddVulnerabilityAdvisoryForeignKeyToSbomVulnerableComponentVersions do +RSpec.describe AddVulnerabilityAdvisoryForeignKeyToSbomVulnerableComponentVersions, +feature_category: :dependency_management do let(:table) { described_class::SOURCE_TABLE } let(:column) { described_class::COLUMN } let(:foreign_key) { -> { described_class.new.foreign_keys_for(table, column).first } } diff --git a/spec/migrations/20220819162852_add_sbom_component_version_foreign_key_to_sbom_vulnerable_component_versions_spec.rb b/spec/migrations/20220819162852_add_sbom_component_version_foreign_key_to_sbom_vulnerable_component_versions_spec.rb index b9cb6891681..999c833f9e3 100644 --- a/spec/migrations/20220819162852_add_sbom_component_version_foreign_key_to_sbom_vulnerable_component_versions_spec.rb +++ b/spec/migrations/20220819162852_add_sbom_component_version_foreign_key_to_sbom_vulnerable_component_versions_spec.rb @@ -4,7 +4,8 @@ require "spec_helper" require_migration! -RSpec.describe AddSbomComponentVersionForeignKeyToSbomVulnerableComponentVersions do +RSpec.describe AddSbomComponentVersionForeignKeyToSbomVulnerableComponentVersions, +feature_category: :dependency_management do let(:table) { described_class::SOURCE_TABLE } let(:column) { described_class::COLUMN } let(:foreign_key) { -> { described_class.new.foreign_keys_for(table, column).first } } diff --git a/spec/migrations/20220906074449_schedule_disable_legacy_open_source_license_for_projects_less_than_one_mb_spec.rb b/spec/migrations/20220906074449_schedule_disable_legacy_open_source_license_for_projects_less_than_one_mb_spec.rb index e4ac094ab48..852748bcdc1 100644 --- a/spec/migrations/20220906074449_schedule_disable_legacy_open_source_license_for_projects_less_than_one_mb_spec.rb +++ b/spec/migrations/20220906074449_schedule_disable_legacy_open_source_license_for_projects_less_than_one_mb_spec.rb @@ -3,9 +3,9 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForProjectsLessThanOneMb do - let_it_be(:migration) { described_class.new } - let_it_be(:post_migration) { described_class::MIGRATION } +RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForProjectsLessThanOneMb, feature_category: :projects do + let!(:migration) { described_class.new } + let!(:post_migration) { described_class::MIGRATION } context 'when on gitlab.com' do before do diff --git a/spec/migrations/20220913030624_cleanup_attention_request_related_system_notes_spec.rb b/spec/migrations/20220913030624_cleanup_attention_request_related_system_notes_spec.rb index 7338a6ab9ae..03e53a406ed 100644 --- a/spec/migrations/20220913030624_cleanup_attention_request_related_system_notes_spec.rb +++ b/spec/migrations/20220913030624_cleanup_attention_request_related_system_notes_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupAttentionRequestRelatedSystemNotes, :migration do +RSpec.describe CleanupAttentionRequestRelatedSystemNotes, :migration, feature_category: :team_planning do let(:notes) { table(:notes) } let(:system_note_metadata) { table(:system_note_metadata) } diff --git a/spec/migrations/20220920124709_backfill_internal_on_notes_spec.rb b/spec/migrations/20220920124709_backfill_internal_on_notes_spec.rb index f4ac6e6fc8e..6e3a058f245 100644 --- a/spec/migrations/20220920124709_backfill_internal_on_notes_spec.rb +++ b/spec/migrations/20220920124709_backfill_internal_on_notes_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillInternalOnNotes, :migration do +RSpec.describe BackfillInternalOnNotes, :migration, feature_category: :team_planning do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/20220920180451_schedule_vulnerabilities_feedback_migration_spec.rb b/spec/migrations/20220920180451_schedule_vulnerabilities_feedback_migration_spec.rb new file mode 100644 index 00000000000..4f2b5f6b50f --- /dev/null +++ b/spec/migrations/20220920180451_schedule_vulnerabilities_feedback_migration_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe ScheduleVulnerabilitiesFeedbackMigration, feature_category: :vulnerability_management do + let(:migration) { described_class::MIGRATION } + + describe '#up' do + it 'schedules background jobs for each batch of Vulnerabilities::Feedback' do + migrate! + + expect(migration).to have_scheduled_batched_migration( + table_name: :vulnerability_feedback, + column_name: :id, + interval: described_class::DELAY_INTERVAL, + batch_size: described_class::BATCH_SIZE, + max_batch_size: described_class::MAX_BATCH_SIZE + ) + end + end + + describe '#down' do + it 'deletes all batched migration records' do + migrate! + schema_migrate_down! + + expect(migration).not_to have_scheduled_batched_migration + end + end +end diff --git a/spec/migrations/20220921093355_schedule_backfill_namespace_details_spec.rb b/spec/migrations/20220921093355_schedule_backfill_namespace_details_spec.rb index 61e4af3d10c..5ac49762dbf 100644 --- a/spec/migrations/20220921093355_schedule_backfill_namespace_details_spec.rb +++ b/spec/migrations/20220921093355_schedule_backfill_namespace_details_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleBackfillNamespaceDetails, schema: 20220921093355 do +RSpec.describe ScheduleBackfillNamespaceDetails, schema: 20220921093355, feature_category: :subgroups do context 'when on gitlab.com' do let(:background_migration) { described_class::MIGRATION } let(:migration) { described_class.new } diff --git a/spec/migrations/20220921144258_remove_orphan_group_token_users_spec.rb b/spec/migrations/20220921144258_remove_orphan_group_token_users_spec.rb index 174cfda1a46..19cf3b2fb69 100644 --- a/spec/migrations/20220921144258_remove_orphan_group_token_users_spec.rb +++ b/spec/migrations/20220921144258_remove_orphan_group_token_users_spec.rb @@ -4,7 +4,8 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveOrphanGroupTokenUsers, :migration, :sidekiq_inline do +RSpec.describe RemoveOrphanGroupTokenUsers, :migration, :sidekiq_inline, +feature_category: :authentication_and_authorization do subject(:migration) { described_class.new } let(:users) { table(:users) } diff --git a/spec/migrations/20220922143143_schedule_reset_duplicate_ci_runners_token_values_spec.rb b/spec/migrations/20220922143143_schedule_reset_duplicate_ci_runners_token_values_spec.rb index 409f7d544ee..07627725ed0 100644 --- a/spec/migrations/20220922143143_schedule_reset_duplicate_ci_runners_token_values_spec.rb +++ b/spec/migrations/20220922143143_schedule_reset_duplicate_ci_runners_token_values_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleResetDuplicateCiRunnersTokenValues, migration: :gitlab_ci do +RSpec.describe ScheduleResetDuplicateCiRunnersTokenValues, feature_category: :runner_fleet, migration: :gitlab_ci do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/20220922143634_schedule_reset_duplicate_ci_runners_token_encrypted_values_spec.rb b/spec/migrations/20220922143634_schedule_reset_duplicate_ci_runners_token_encrypted_values_spec.rb index 4f3103927d5..42f200e0d6f 100644 --- a/spec/migrations/20220922143634_schedule_reset_duplicate_ci_runners_token_encrypted_values_spec.rb +++ b/spec/migrations/20220922143634_schedule_reset_duplicate_ci_runners_token_encrypted_values_spec.rb @@ -3,7 +3,9 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleResetDuplicateCiRunnersTokenEncryptedValues, migration: :gitlab_ci do +RSpec.describe ScheduleResetDuplicateCiRunnersTokenEncryptedValues, + feature_category: :runner_fleet, + migration: :gitlab_ci do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/20220928225711_schedule_update_ci_pipeline_artifacts_locked_status_spec.rb b/spec/migrations/20220928225711_schedule_update_ci_pipeline_artifacts_locked_status_spec.rb index 7e3f8caa966..5c1b5c8f2a7 100644 --- a/spec/migrations/20220928225711_schedule_update_ci_pipeline_artifacts_locked_status_spec.rb +++ b/spec/migrations/20220928225711_schedule_update_ci_pipeline_artifacts_locked_status_spec.rb @@ -3,8 +3,9 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleUpdateCiPipelineArtifactsLockedStatus, migration: :gitlab_ci do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe ScheduleUpdateCiPipelineArtifactsLockedStatus, migration: :gitlab_ci, + feature_category: :build_artifacts do + let!(:migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of ci_pipeline_artifacts' do diff --git a/spec/migrations/20220929213730_schedule_delete_orphaned_operational_vulnerabilities_spec.rb b/spec/migrations/20220929213730_schedule_delete_orphaned_operational_vulnerabilities_spec.rb index 9220b5e8a95..2e391868060 100644 --- a/spec/migrations/20220929213730_schedule_delete_orphaned_operational_vulnerabilities_spec.rb +++ b/spec/migrations/20220929213730_schedule_delete_orphaned_operational_vulnerabilities_spec.rb @@ -3,9 +3,9 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDeleteOrphanedOperationalVulnerabilities do - let_it_be(:migration) { described_class.new } - let_it_be(:post_migration) { described_class::MIGRATION } +RSpec.describe ScheduleDeleteOrphanedOperationalVulnerabilities, feature_category: :vulnerability_management do + let!(:migration) { described_class.new } + let!(:post_migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of vulnerabilities' do diff --git a/spec/migrations/20221002234454_finalize_group_member_namespace_id_migration_spec.rb b/spec/migrations/20221002234454_finalize_group_member_namespace_id_migration_spec.rb index 9c27005065d..4ff16111417 100644 --- a/spec/migrations/20221002234454_finalize_group_member_namespace_id_migration_spec.rb +++ b/spec/migrations/20221002234454_finalize_group_member_namespace_id_migration_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe FinalizeGroupMemberNamespaceIdMigration, :migration do +RSpec.describe FinalizeGroupMemberNamespaceIdMigration, :migration, feature_category: :subgroups do let(:batched_migrations) { table(:batched_background_migrations) } - let_it_be(:migration) { described_class::MIGRATION } + let!(:migration) { described_class::MIGRATION } describe '#up' do shared_examples 'finalizes the migration' do diff --git a/spec/migrations/20221004094814_schedule_destroy_invalid_members_spec.rb b/spec/migrations/20221004094814_schedule_destroy_invalid_members_spec.rb index 73fdfa78eb4..8bffa4b9b99 100644 --- a/spec/migrations/20221004094814_schedule_destroy_invalid_members_spec.rb +++ b/spec/migrations/20221004094814_schedule_destroy_invalid_members_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleDestroyInvalidMembers, :migration do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe ScheduleDestroyInvalidMembers, :migration, feature_category: :subgroups do + let!(:migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of members' do diff --git a/spec/migrations/20221008032350_add_password_expiration_migration_spec.rb b/spec/migrations/20221008032350_add_password_expiration_migration_spec.rb index 05e557f1f52..1663966816c 100644 --- a/spec/migrations/20221008032350_add_password_expiration_migration_spec.rb +++ b/spec/migrations/20221008032350_add_password_expiration_migration_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddPasswordExpirationMigration do +RSpec.describe AddPasswordExpirationMigration, feature_category: :users do let(:application_setting) { table(:application_settings).create! } describe "#up" do diff --git a/spec/migrations/20221012033107_add_password_last_changed_at_to_user_details_spec.rb b/spec/migrations/20221012033107_add_password_last_changed_at_to_user_details_spec.rb index 46a7b097d02..e2c508938fd 100644 --- a/spec/migrations/20221012033107_add_password_last_changed_at_to_user_details_spec.rb +++ b/spec/migrations/20221012033107_add_password_last_changed_at_to_user_details_spec.rb @@ -4,10 +4,10 @@ require 'spec_helper' require_migration! -RSpec.describe AddPasswordLastChangedAtToUserDetails do - let_it_be(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } - let_it_be(:users) { table(:users) } - let_it_be(:user) { create_user! } +RSpec.describe AddPasswordLastChangedAtToUserDetails, feature_category: :users do + let!(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } + let!(:users) { table(:users) } + let!(:user) { create_user! } let(:user_detail) { table(:user_details).create!(user_id: user.id, provisioned_by_group_id: namespace.id) } describe "#up" do diff --git a/spec/migrations/20221013154159_update_invalid_dormant_user_setting_spec.rb b/spec/migrations/20221013154159_update_invalid_dormant_user_setting_spec.rb index eac71e428be..0686d9ca786 100644 --- a/spec/migrations/20221013154159_update_invalid_dormant_user_setting_spec.rb +++ b/spec/migrations/20221013154159_update_invalid_dormant_user_setting_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateInvalidDormantUserSetting, :migration do +RSpec.describe UpdateInvalidDormantUserSetting, :migration, feature_category: :users do let(:settings) { table(:application_settings) } context 'with no rows in the application_settings table' do diff --git a/spec/migrations/20221018050323_add_objective_and_keyresult_to_work_item_types_spec.rb b/spec/migrations/20221018050323_add_objective_and_keyresult_to_work_item_types_spec.rb index 4de897802b9..3ab33367303 100644 --- a/spec/migrations/20221018050323_add_objective_and_keyresult_to_work_item_types_spec.rb +++ b/spec/migrations/20221018050323_add_objective_and_keyresult_to_work_item_types_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe AddObjectiveAndKeyresultToWorkItemTypes, :migration do +RSpec.describe AddObjectiveAndKeyresultToWorkItemTypes, :migration, feature_category: :team_planning do include MigrationHelpers::WorkItemTypesHelper - let_it_be(:work_item_types) { table(:work_item_types) } + let!(:work_item_types) { table(:work_item_types) } let(:base_types) do { diff --git a/spec/migrations/20221018062308_schedule_backfill_project_namespace_details_spec.rb b/spec/migrations/20221018062308_schedule_backfill_project_namespace_details_spec.rb index 4dd6d5757ce..4175d9b1ad8 100644 --- a/spec/migrations/20221018062308_schedule_backfill_project_namespace_details_spec.rb +++ b/spec/migrations/20221018062308_schedule_backfill_project_namespace_details_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleBackfillProjectNamespaceDetails, schema: 20221018062308 do +RSpec.describe ScheduleBackfillProjectNamespaceDetails, schema: 20221018062308, feature_category: :projects do context 'when on gitlab.com' do - let_it_be(:background_migration) { described_class::MIGRATION } - let_it_be(:migration) { described_class.new } + let!(:background_migration) { described_class::MIGRATION } + let!(:migration) { described_class.new } before do migration.up diff --git a/spec/migrations/20221018095434_schedule_disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb b/spec/migrations/20221018095434_schedule_disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb new file mode 100644 index 00000000000..34bba8ed9c8 --- /dev/null +++ b/spec/migrations/20221018095434_schedule_disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb @@ -0,0 +1,62 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForProjectsLessThanFiveMb, feature_category: :projects do + let!(:migration) { described_class.new } + let!(:post_migration) { described_class::MIGRATION } + + context 'when on gitlab.com' do + before do + allow(Gitlab).to receive(:com?).and_return(true) + end + + describe '#up' do + it 'schedules background jobs for each batch of project_settings' do + migration.up + + expect(post_migration).to( + have_scheduled_batched_migration( + table_name: :project_settings, + column_name: :project_id, + interval: described_class::INTERVAL, + batch_size: described_class::BATCH_SIZE, + max_batch_size: described_class::MAX_BATCH_SIZE, + sub_batch_size: described_class::SUB_BATCH_SIZE + ) + ) + end + end + + describe '#down' do + it 'deletes all batched migration records' do + migration.down + + expect(post_migration).not_to have_scheduled_batched_migration + end + end + end + + context 'when on self-managed instance' do + before do + allow(Gitlab).to receive(:com?).and_return(false) + end + + describe '#up' do + it 'does not schedule background job' do + expect(migration).not_to receive(:queue_batched_background_migration) + + migration.up + end + end + + describe '#down' do + it 'does not delete background job' do + expect(migration).not_to receive(:delete_batched_background_migration) + + migration.down + end + end + end +end diff --git a/spec/migrations/20221018193635_ensure_task_note_renaming_background_migration_finished_spec.rb b/spec/migrations/20221018193635_ensure_task_note_renaming_background_migration_finished_spec.rb index ea95c34674e..8b599881359 100644 --- a/spec/migrations/20221018193635_ensure_task_note_renaming_background_migration_finished_spec.rb +++ b/spec/migrations/20221018193635_ensure_task_note_renaming_background_migration_finished_spec.rb @@ -3,12 +3,12 @@ require 'spec_helper' require_migration! -RSpec.describe EnsureTaskNoteRenamingBackgroundMigrationFinished, :migration do +RSpec.describe EnsureTaskNoteRenamingBackgroundMigrationFinished, :migration, feature_category: :team_planning do let(:batched_migrations) { table(:batched_background_migrations) } let(:batch_failed_status) { 2 } let(:batch_finalized_status) { 3 } - let_it_be(:migration) { described_class::MIGRATION } + let!(:migration) { described_class::MIGRATION } describe '#up' do shared_examples 'finalizes the migration' do diff --git a/spec/migrations/20221021145820_create_routing_table_for_builds_metadata_v2_spec.rb b/spec/migrations/20221021145820_create_routing_table_for_builds_metadata_v2_spec.rb index 48a00df430d..235351956c4 100644 --- a/spec/migrations/20221021145820_create_routing_table_for_builds_metadata_v2_spec.rb +++ b/spec/migrations/20221021145820_create_routing_table_for_builds_metadata_v2_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe CreateRoutingTableForBuildsMetadataV2, :migration do - let_it_be(:migration) { described_class.new } +RSpec.describe CreateRoutingTableForBuildsMetadataV2, :migration, feature_category: :continuous_integration do + let!(:migration) { described_class.new } describe '#up' do context 'when the table is already partitioned' do diff --git a/spec/migrations/20221025043930_change_default_value_on_password_last_changed_at_to_user_details_spec.rb b/spec/migrations/20221025043930_change_default_value_on_password_last_changed_at_to_user_details_spec.rb index 4d6f06eb146..d6acf31fdc6 100644 --- a/spec/migrations/20221025043930_change_default_value_on_password_last_changed_at_to_user_details_spec.rb +++ b/spec/migrations/20221025043930_change_default_value_on_password_last_changed_at_to_user_details_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ChangeDefaultValueOnPasswordLastChangedAtToUserDetails, :migration do +RSpec.describe ChangeDefaultValueOnPasswordLastChangedAtToUserDetails, :migration, feature_category: :users do let(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } let(:users) { table(:users) } let(:user_details) { table(:user_details) } diff --git a/spec/migrations/20221028022627_add_index_on_password_last_changed_at_to_user_details_spec.rb b/spec/migrations/20221028022627_add_index_on_password_last_changed_at_to_user_details_spec.rb index 5f8467f9307..6b6fb553b1f 100644 --- a/spec/migrations/20221028022627_add_index_on_password_last_changed_at_to_user_details_spec.rb +++ b/spec/migrations/20221028022627_add_index_on_password_last_changed_at_to_user_details_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddIndexOnPasswordLastChangedAtToUserDetails, :migration do +RSpec.describe AddIndexOnPasswordLastChangedAtToUserDetails, :migration, feature_category: :users do let(:index_name) { 'index_user_details_on_password_last_changed_at' } it 'correctly migrates up and down' do diff --git a/spec/migrations/20221101032521_add_default_preferred_language_to_application_settings_spec.rb b/spec/migrations/20221101032521_add_default_preferred_language_to_application_settings_spec.rb index 3ae4287f3c4..deca498146b 100644 --- a/spec/migrations/20221101032521_add_default_preferred_language_to_application_settings_spec.rb +++ b/spec/migrations/20221101032521_add_default_preferred_language_to_application_settings_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddDefaultPreferredLanguageToApplicationSettings do +RSpec.describe AddDefaultPreferredLanguageToApplicationSettings, feature_category: :internationalization do let(:application_setting) { table(:application_settings).create! } describe "#up" do diff --git a/spec/migrations/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings_spec.rb b/spec/migrations/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings_spec.rb index e0370e48db6..3e36e99a0ca 100644 --- a/spec/migrations/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings_spec.rb +++ b/spec/migrations/20221101032600_add_text_limit_to_default_preferred_language_on_application_settings_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddTextLimitToDefaultPreferredLanguageOnApplicationSettings do +RSpec.describe AddTextLimitToDefaultPreferredLanguageOnApplicationSettings, feature_category: :internationalization do let(:application_setting) { table(:application_settings).create! } let(:too_long_text) { SecureRandom.alphanumeric(described_class::MAXIMUM_LIMIT + 1) } diff --git a/spec/migrations/20221102090940_create_next_ci_partitions_record_spec.rb b/spec/migrations/20221102090940_create_next_ci_partitions_record_spec.rb index c55e4bcfba7..dc6f365fe2b 100644 --- a/spec/migrations/20221102090940_create_next_ci_partitions_record_spec.rb +++ b/spec/migrations/20221102090940_create_next_ci_partitions_record_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CreateNextCiPartitionsRecord, migration: :gitlab_ci do +RSpec.describe CreateNextCiPartitionsRecord, migration: :gitlab_ci, feature_category: :continuous_integration do let(:migration) { described_class.new } let(:partitions) { table(:ci_partitions) } diff --git a/spec/migrations/20221102090943_create_second_partition_for_builds_metadata_spec.rb b/spec/migrations/20221102090943_create_second_partition_for_builds_metadata_spec.rb index 99754d609ed..b4bd5136383 100644 --- a/spec/migrations/20221102090943_create_second_partition_for_builds_metadata_spec.rb +++ b/spec/migrations/20221102090943_create_second_partition_for_builds_metadata_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CreateSecondPartitionForBuildsMetadata, :migration do +RSpec.describe CreateSecondPartitionForBuildsMetadata, :migration, feature_category: :continuous_integration do let(:migration) { described_class.new } let(:partitions) { table(:ci_partitions) } diff --git a/spec/migrations/20221104115712_backfill_project_statistics_storage_size_without_uploads_size_spec.rb b/spec/migrations/20221104115712_backfill_project_statistics_storage_size_without_uploads_size_spec.rb new file mode 100644 index 00000000000..d86720365c4 --- /dev/null +++ b/spec/migrations/20221104115712_backfill_project_statistics_storage_size_without_uploads_size_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe BackfillProjectStatisticsStorageSizeWithoutUploadsSize, + feature_category: :subscription_cost_management do + let!(:batched_migration) { described_class::MIGRATION_CLASS } + + it 'does not schedule background jobs when Gitlab.org_or_com? is false' do + allow(Gitlab).to receive(:dev_or_test_env?).and_return(false) + allow(Gitlab).to receive(:org_or_com?).and_return(false) + + reversible_migration do |migration| + migration.before -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + + migration.after -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + end + end + + it 'schedules background jobs for each batch of project_statistics' do + allow(Gitlab).to receive(:dev_or_test_env?).and_return(false) + allow(Gitlab).to receive(:org_or_com?).and_return(true) + + reversible_migration do |migration| + migration.before -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + + migration.after -> { + expect(batched_migration).to have_scheduled_batched_migration( + table_name: :project_statistics, + column_name: :project_id, + interval: described_class::DELAY_INTERVAL + ) + } + end + end +end diff --git a/spec/migrations/20221110152133_delete_orphans_approval_rules_spec.rb b/spec/migrations/20221110152133_delete_orphans_approval_rules_spec.rb new file mode 100644 index 00000000000..3efee67f7af --- /dev/null +++ b/spec/migrations/20221110152133_delete_orphans_approval_rules_spec.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe DeleteOrphansApprovalRules, feature_category: :source_code_management do + describe '#up' do + it 'schedules background migration for both levels of approval rules' do + migrate! + + expect(described_class::MERGE_REQUEST_MIGRATION).to have_scheduled_batched_migration( + table_name: :approval_merge_request_rules, + column_name: :id, + interval: described_class::INTERVAL) + + expect(described_class::PROJECT_MIGRATION).to have_scheduled_batched_migration( + table_name: :approval_project_rules, + column_name: :id, + interval: described_class::INTERVAL) + end + end +end diff --git a/spec/migrations/20221115173607_ensure_work_item_type_backfill_migration_finished_spec.rb b/spec/migrations/20221115173607_ensure_work_item_type_backfill_migration_finished_spec.rb new file mode 100644 index 00000000000..e9250625832 --- /dev/null +++ b/spec/migrations/20221115173607_ensure_work_item_type_backfill_migration_finished_spec.rb @@ -0,0 +1,102 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe EnsureWorkItemTypeBackfillMigrationFinished, :migration, feature_category: :team_planning do + let(:batched_migrations) { table(:batched_background_migrations) } + let(:work_item_types) { table(:work_item_types) } + let(:batch_failed_status) { 2 } + let(:batch_finalized_status) { 3 } + + let!(:migration_class) { described_class::MIGRATION } + + describe '#up', :redis do + context 'when migration is missing' do + it 'warns migration not found' do + expect(Gitlab::AppLogger) + .to receive(:warn).with(/Could not find batched background migration for the given configuration:/) + .exactly(5).times + + migrate! + end + end + + context 'with migration present' do + let(:relevant_types) do + { + issue: 0, + incident: 1, + test_case: 2, + requirement: 3, + task: 4 + } + end + + let!(:backfill_migrations) do + relevant_types.map do |_base_type, enum_value| + type_id = work_item_types.find_by!(namespace_id: nil, base_type: enum_value).id + + create_migration_with(status, enum_value, type_id) + end + end + + context 'when migrations have finished' do + let(:status) { 3 } # finished enum value + + it 'does not raise an error' do + expect { migrate! }.not_to raise_error + end + end + + context 'with different migration statuses' do + using RSpec::Parameterized::TableSyntax + + where(:status, :description) do + 0 | 'paused' + 1 | 'active' + 4 | 'failed' + 5 | 'finalizing' + end + + with_them do + it 'finalizes the migration' do + expect do + migrate! + + backfill_migrations.each(&:reload) + end.to change { backfill_migrations.map(&:status).uniq }.from([status]).to([3]) + end + end + end + end + end + + def create_migration_with(status, base_type, type_id) + migration = batched_migrations.create!( + job_class_name: migration_class, + table_name: :issues, + column_name: :id, + job_arguments: [base_type, type_id], + interval: 2.minutes, + min_value: 1, + max_value: 2, + batch_size: 1000, + sub_batch_size: 200, + gitlab_schema: :gitlab_main, + status: status + ) + + table(:batched_background_migration_jobs).create!( + batched_background_migration_id: migration.id, + status: batch_failed_status, + min_value: 1, + max_value: 10, + attempts: 2, + batch_size: 100, + sub_batch_size: 10 + ) + + migration + end +end diff --git a/spec/migrations/20221122132812_schedule_prune_stale_project_export_jobs_spec.rb b/spec/migrations/20221122132812_schedule_prune_stale_project_export_jobs_spec.rb new file mode 100644 index 00000000000..5a5bc42a37b --- /dev/null +++ b/spec/migrations/20221122132812_schedule_prune_stale_project_export_jobs_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe SchedulePruneStaleProjectExportJobs, category: :importers do + let!(:batched_migration) { described_class::MIGRATION } + + it 'schedules a new batched migration' do + reversible_migration do |migration| + migration.before -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + + migration.after -> { + expect(batched_migration).to have_scheduled_batched_migration( + table_name: :project_export_jobs, + column_name: :id, + interval: described_class::DELAY_INTERVAL + ) + } + end + end +end diff --git a/spec/migrations/20221123133054_queue_reset_status_on_container_repositories_spec.rb b/spec/migrations/20221123133054_queue_reset_status_on_container_repositories_spec.rb new file mode 100644 index 00000000000..2951b738243 --- /dev/null +++ b/spec/migrations/20221123133054_queue_reset_status_on_container_repositories_spec.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe QueueResetStatusOnContainerRepositories, feature_category: :container_registry do + let!(:batched_migration) { described_class::MIGRATION } + + before do + stub_container_registry_config( + enabled: true, + api_url: 'http://example.com', + key: 'spec/fixtures/x509_certificate_pk.key' + ) + end + + it 'schedules a new batched migration' do + reversible_migration do |migration| + migration.before -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + + migration.after -> { + expect(batched_migration).to have_scheduled_batched_migration( + table_name: :container_repositories, + column_name: :id, + interval: described_class::DELAY_INTERVAL, + sub_batch_size: described_class::BATCH_SIZE + ) + } + end + end + + context 'with the container registry disabled' do + before do + allow(::Gitlab.config.registry).to receive(:enabled).and_return(false) + end + + it 'does not schedule a new batched migration' do + reversible_migration do |migration| + migration.before -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + + migration.after -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + end + end + end +end diff --git a/spec/migrations/20221205151917_schedule_backfill_environment_tier_spec.rb b/spec/migrations/20221205151917_schedule_backfill_environment_tier_spec.rb new file mode 100644 index 00000000000..b76f889d743 --- /dev/null +++ b/spec/migrations/20221205151917_schedule_backfill_environment_tier_spec.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe ScheduleBackfillEnvironmentTier, category: :continuous_delivery do + let!(:batched_migration) { described_class::MIGRATION } + + it 'schedules a new batched migration' do + reversible_migration do |migration| + migration.before -> { + expect(batched_migration).not_to have_scheduled_batched_migration + } + + migration.after -> { + expect(batched_migration).to have_scheduled_batched_migration( + table_name: :environments, + column_name: :id, + interval: described_class::DELAY_INTERVAL + ) + } + end + end +end diff --git a/spec/migrations/20221209110934_update_import_sources_on_application_settings_spec.rb b/spec/migrations/20221209110934_update_import_sources_on_application_settings_spec.rb new file mode 100644 index 00000000000..899074399a1 --- /dev/null +++ b/spec/migrations/20221209110934_update_import_sources_on_application_settings_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe UpdateImportSourcesOnApplicationSettings, feature_category: :migration do + let(:settings) { table(:application_settings) } + let(:import_sources_with_google) { %w[google_code github git bitbucket bitbucket_server] } + let(:import_sources_without_google) { %w[github git bitbucket bitbucket_server] } + + describe "#up" do + it 'removes google_code and preserves existing valid import sources' do + record = settings.create!(import_sources: import_sources_with_google.to_yaml) + + migrate! + + expect(record.reload.import_sources).to start_with('---') + expect(ApplicationSetting.last.import_sources).to eq(import_sources_without_google) + end + end +end diff --git a/spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb b/spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb new file mode 100644 index 00000000000..e5b20b2d48a --- /dev/null +++ b/spec/migrations/20221209110935_fix_update_import_sources_on_application_settings_spec.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe FixUpdateImportSourcesOnApplicationSettings, feature_category: :migration do + let(:settings) { table(:application_settings) } + let(:import_sources) { %w[github git bitbucket bitbucket_server] } + + describe "#up" do + shared_examples 'fixes import_sources on application_settings' do + it 'ensures YAML is stored' do + record = settings.create!(import_sources: data) + + migrate! + + expect(record.reload.import_sources).to start_with('---') + expect(ApplicationSetting.last.import_sources).to eq(import_sources) + end + end + + context 'when import_sources is a String' do + let(:data) { import_sources.to_s } + + it_behaves_like 'fixes import_sources on application_settings' + end + + context 'when import_sources is already YAML' do + let(:data) { import_sources.to_yaml } + + it_behaves_like 'fixes import_sources on application_settings' + end + end +end diff --git a/spec/migrations/20221210154044_update_active_billable_users_index_spec.rb b/spec/migrations/20221210154044_update_active_billable_users_index_spec.rb new file mode 100644 index 00000000000..3341df2ce51 --- /dev/null +++ b/spec/migrations/20221210154044_update_active_billable_users_index_spec.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe UpdateActiveBillableUsersIndex, feature_category: :database do + let(:db) { described_class.new } + let(:table_name) { described_class::TABLE_NAME } + let(:old_index_name) { described_class::OLD_INDEX_NAME } + let(:new_index_name) { described_class::NEW_INDEX_NAME } + let(:old_filter_condition) { "(user_type <> ALL ('{2,6,1,3,7,8}'::smallint[])))" } + let(:new_filter_condition) { "(user_type <> ALL ('{1,2,3,4,5,6,7,8,9,11}'::smallint[])))" } + + it 'correctly migrates up and down' do + reversible_migration do |migration| + migration.before -> { + expect(subject.index_exists_by_name?(table_name, new_index_name)).to be_falsy + expect(subject.index_exists_by_name?(table_name, old_index_name)).to be_truthy + expect(db.connection.indexes(table_name).find do |i| + i.name == old_index_name + end.where).to include(old_filter_condition) + } + + migration.after -> { + expect(subject.index_exists_by_name?(table_name, old_index_name)).to be_falsy + expect(subject.index_exists_by_name?(table_name, new_index_name)).to be_truthy + expect(db.connection.indexes(table_name).find do |i| + i.name == new_index_name + end.where).to include(new_filter_condition) + } + end + end +end diff --git a/spec/migrations/active_record/schema_spec.rb b/spec/migrations/active_record/schema_spec.rb index 042b5710dce..f3adffb9a37 100644 --- a/spec/migrations/active_record/schema_spec.rb +++ b/spec/migrations/active_record/schema_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' # Check consistency of db/structure.sql version, migrations' timestamps, and the latest migration timestamp # stored in the database's schema_migrations table. -RSpec.describe ActiveRecord::Schema, schema: :latest do +RSpec.describe ActiveRecord::Schema, schema: :latest, feature_category: :database do let(:all_migrations) do migrations_directories = Rails.application.paths["db/migrate"].paths.map(&:to_s) migrations_paths = migrations_directories.map { |path| File.join(path, '*') } diff --git a/spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb b/spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb index 057e95eb158..a6c892db131 100644 --- a/spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb +++ b/spec/migrations/add_default_project_approval_rules_vuln_allowed_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddDefaultProjectApprovalRulesVulnAllowed do +RSpec.describe AddDefaultProjectApprovalRulesVulnAllowed, feature_category: :source_code_management do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:namespace) { namespaces.create!(name: 'namespace', path: 'namespace') } diff --git a/spec/migrations/add_epics_relative_position_spec.rb b/spec/migrations/add_epics_relative_position_spec.rb index f3b7dd1727b..bdfaacc2bf8 100644 --- a/spec/migrations/add_epics_relative_position_spec.rb +++ b/spec/migrations/add_epics_relative_position_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddEpicsRelativePosition, :migration do +RSpec.describe AddEpicsRelativePosition, :migration, feature_category: :portfolio_management do let(:groups) { table(:namespaces) } let(:epics) { table(:epics) } let(:users) { table(:users) } diff --git a/spec/migrations/add_new_trail_plans_spec.rb b/spec/migrations/add_new_trail_plans_spec.rb index c1b488e8c3c..6f8de8435c6 100644 --- a/spec/migrations/add_new_trail_plans_spec.rb +++ b/spec/migrations/add_new_trail_plans_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddNewTrailPlans, :migration do +RSpec.describe AddNewTrailPlans, :migration, feature_category: :purchase do describe '#up' do before do allow(Gitlab).to receive(:com?).and_return true diff --git a/spec/migrations/add_okr_hierarchy_restrictions_spec.rb b/spec/migrations/add_okr_hierarchy_restrictions_spec.rb new file mode 100644 index 00000000000..ace581c7e3c --- /dev/null +++ b/spec/migrations/add_okr_hierarchy_restrictions_spec.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe AddOkrHierarchyRestrictions, :migration, feature_category: :portfolio_management do + include MigrationHelpers::WorkItemTypesHelper + + let!(:restrictions) { table(:work_item_hierarchy_restrictions) } + let!(:work_item_types) { table(:work_item_types) } + + it 'creates default restrictions' do + restrictions.delete_all + + reversible_migration do |migration| + migration.before -> { + expect(restrictions.count).to eq(0) + } + + migration.after -> { + expect(restrictions.count).to eq(4) + } + end + end + + context 'when work items are missing' do + before do + work_item_types.delete_all + end + + it 'does nothing' do + expect { migrate! }.not_to change { restrictions.count } + end + end +end diff --git a/spec/migrations/add_open_source_plan_spec.rb b/spec/migrations/add_open_source_plan_spec.rb index 6e1cd544141..f5d68f455e6 100644 --- a/spec/migrations/add_open_source_plan_spec.rb +++ b/spec/migrations/add_open_source_plan_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddOpenSourcePlan, :migration do +RSpec.describe AddOpenSourcePlan, :migration, feature_category: :purchase do describe '#up' do before do allow(Gitlab).to receive(:com?).and_return true diff --git a/spec/migrations/add_premium_and_ultimate_plan_limits_spec.rb b/spec/migrations/add_premium_and_ultimate_plan_limits_spec.rb index 0ae4559ca9f..670541128a0 100644 --- a/spec/migrations/add_premium_and_ultimate_plan_limits_spec.rb +++ b/spec/migrations/add_premium_and_ultimate_plan_limits_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddPremiumAndUltimatePlanLimits, :migration do +RSpec.describe AddPremiumAndUltimatePlanLimits, :migration, feature_category: :purchase do shared_examples_for 'a migration that does not alter plans or plan limits' do it do expect { migrate! }.not_to change { diff --git a/spec/migrations/add_triggers_to_integrations_type_new_spec.rb b/spec/migrations/add_triggers_to_integrations_type_new_spec.rb index 01af5884170..4fa5fe31d2b 100644 --- a/spec/migrations/add_triggers_to_integrations_type_new_spec.rb +++ b/spec/migrations/add_triggers_to_integrations_type_new_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddTriggersToIntegrationsTypeNew do +RSpec.describe AddTriggersToIntegrationsTypeNew, feature_category: :purchase do let(:migration) { described_class.new } let(:integrations) { table(:integrations) } diff --git a/spec/migrations/add_upvotes_count_index_to_issues_spec.rb b/spec/migrations/add_upvotes_count_index_to_issues_spec.rb index c04cb98a107..0012b8a0b96 100644 --- a/spec/migrations/add_upvotes_count_index_to_issues_spec.rb +++ b/spec/migrations/add_upvotes_count_index_to_issues_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe AddUpvotesCountIndexToIssues do +RSpec.describe AddUpvotesCountIndexToIssues, feature_category: :team_planning do let(:migration_instance) { described_class.new } describe '#up' do diff --git a/spec/migrations/add_web_hook_calls_to_plan_limits_paid_tiers_spec.rb b/spec/migrations/add_web_hook_calls_to_plan_limits_paid_tiers_spec.rb index 63ad9367503..0ad99be1c7b 100644 --- a/spec/migrations/add_web_hook_calls_to_plan_limits_paid_tiers_spec.rb +++ b/spec/migrations/add_web_hook_calls_to_plan_limits_paid_tiers_spec.rb @@ -3,9 +3,9 @@ require 'spec_helper' require_migration! -RSpec.describe AddWebHookCallsToPlanLimitsPaidTiers do - let_it_be(:plans) { table(:plans) } - let_it_be(:plan_limits) { table(:plan_limits) } +RSpec.describe AddWebHookCallsToPlanLimitsPaidTiers, feature_category: :purchase do + let!(:plans) { table(:plans) } + let!(:plan_limits) { table(:plan_limits) } context 'when on Gitlab.com' do let(:free_plan) { plans.create!(name: 'free') } diff --git a/spec/migrations/adjust_task_note_rename_background_migration_values_spec.rb b/spec/migrations/adjust_task_note_rename_background_migration_values_spec.rb index 422d0655e36..01680fa12cc 100644 --- a/spec/migrations/adjust_task_note_rename_background_migration_values_spec.rb +++ b/spec/migrations/adjust_task_note_rename_background_migration_values_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe AdjustTaskNoteRenameBackgroundMigrationValues, :migration do +RSpec.describe AdjustTaskNoteRenameBackgroundMigrationValues, :migration, feature_category: :team_planning do let(:finished_status) { 3 } let(:failed_status) { described_class::MIGRATION_FAILED_STATUS } let(:active_status) { described_class::MIGRATION_ACTIVE_STATUS } diff --git a/spec/migrations/associate_existing_dast_builds_with_variables_spec.rb b/spec/migrations/associate_existing_dast_builds_with_variables_spec.rb index dd86989912f..67d215c781b 100644 --- a/spec/migrations/associate_existing_dast_builds_with_variables_spec.rb +++ b/spec/migrations/associate_existing_dast_builds_with_variables_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe AssociateExistingDastBuildsWithVariables do +RSpec.describe AssociateExistingDastBuildsWithVariables, feature_category: :dynamic_application_security_testing do it 'is a no-op' do migrate! end diff --git a/spec/migrations/backfill_all_project_namespaces_spec.rb b/spec/migrations/backfill_all_project_namespaces_spec.rb index 1bcaad783b2..52fa46eea57 100644 --- a/spec/migrations/backfill_all_project_namespaces_spec.rb +++ b/spec/migrations/backfill_all_project_namespaces_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillAllProjectNamespaces, :migration do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe BackfillAllProjectNamespaces, :migration, feature_category: :subgroups do + let!(:migration) { described_class::MIGRATION } let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/backfill_cadence_id_for_boards_scoped_to_iteration_spec.rb b/spec/migrations/backfill_cadence_id_for_boards_scoped_to_iteration_spec.rb index 16a08ec47c4..a9500b9f942 100644 --- a/spec/migrations/backfill_cadence_id_for_boards_scoped_to_iteration_spec.rb +++ b/spec/migrations/backfill_cadence_id_for_boards_scoped_to_iteration_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillCadenceIdForBoardsScopedToIteration, :migration do +RSpec.describe BackfillCadenceIdForBoardsScopedToIteration, :migration, feature_category: :team_planning do let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } let(:iterations_cadences) { table(:iterations_cadences) } diff --git a/spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb b/spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb index 6c116120f05..1c7745a64ef 100644 --- a/spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb +++ b/spec/migrations/backfill_clusters_integration_prometheus_enabled_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillClustersIntegrationPrometheusEnabled, :migration do +RSpec.describe BackfillClustersIntegrationPrometheusEnabled, :migration, feature_category: :clusters_applications_prometheus do def create_cluster!(label = rand(2**64).to_s) table(:clusters).create!( name: "cluster: #{label}", diff --git a/spec/migrations/backfill_cycle_analytics_aggregations_spec.rb b/spec/migrations/backfill_cycle_analytics_aggregations_spec.rb index 2a5d33742ce..47950f918c3 100644 --- a/spec/migrations/backfill_cycle_analytics_aggregations_spec.rb +++ b/spec/migrations/backfill_cycle_analytics_aggregations_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillCycleAnalyticsAggregations, :migration do +RSpec.describe BackfillCycleAnalyticsAggregations, :migration, feature_category: :value_stream_management do let(:migration) { described_class.new } let(:aggregations) { table(:analytics_cycle_analytics_aggregations) } diff --git a/spec/migrations/backfill_epic_cache_counts_spec.rb b/spec/migrations/backfill_epic_cache_counts_spec.rb index 6084fdad0a6..1dc0079bb01 100644 --- a/spec/migrations/backfill_epic_cache_counts_spec.rb +++ b/spec/migrations/backfill_epic_cache_counts_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillEpicCacheCounts, :migration do +RSpec.describe BackfillEpicCacheCounts, :migration, feature_category: :portfolio_management do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb b/spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb index 87855285203..aa77a5c228a 100644 --- a/spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb +++ b/spec/migrations/backfill_escalation_policies_for_oncall_schedules_spec.rb @@ -3,48 +3,48 @@ 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) } +RSpec.describe BackfillEscalationPoliciesForOncallSchedules, feature_category: :incident_management do + let!(:projects) { table(:projects) } + let!(:schedules) { table(:incident_management_oncall_schedules) } + let!(:policies) { table(:incident_management_escalation_policies) } + let!(: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) } + let!(:namespace) { table(:namespaces).create!(name: 'gitlab', path: 'gitlab') } + let!(: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') } + let!(:project_b) { projects.create!(namespace_id: namespace.id) } + let!(: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') } + let!(:project_c) { projects.create!(namespace_id: namespace.id) } + let!(:schedule_c1) { schedules.create!(project_id: project_c.id, iid: 1, name: 'Schedule C1') } + let!(: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) } + let!(:project_d) { projects.create!(namespace_id: namespace.id) } + let!(:schedule_d1) { schedules.create!(project_id: project_d.id, iid: 1, name: 'Schedule D1') } + let!(:policy_d1) { policies.create!(project_id: project_d.id, name: 'Policy D1') } + let!(: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) } + let!(:project_e) { projects.create!(namespace_id: namespace.id) } + let!(:schedule_e1) { schedules.create!(project_id: project_e.id, iid: 1, name: 'Schedule E1') } + let!(:schedule_e2) { schedules.create!(project_id: project_e.id, iid: 2, name: 'Schedule E2') } + let!(:policy_e1) { policies.create!(project_id: project_e.id, name: 'Policy E1') } + let!(: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) } + let!(:project_f) { projects.create!(namespace_id: namespace.id) } + let!(:schedule_f1) { schedules.create!(project_id: project_f.id, iid: 1, name: 'Schedule F1') } + let!(:schedule_f2) { schedules.create!(project_id: project_f.id, iid: 2, name: 'Schedule F2') } + let!(:policy_f1) { policies.create!(project_id: project_f.id, name: 'Policy F1') } + let!(:rule_f1) { rules.create!(policy_id: policy_f1.id, oncall_schedule_id: schedule_f1.id, status: 2, elapsed_time_seconds: 60) } + let!(:rule_f2) { rules.create!(policy_id: policy_f1.id, oncall_schedule_id: schedule_f2.id, status: 2, elapsed_time_seconds: 60) } + let!(:policy_f2) { policies.create!(project_id: project_f.id, name: 'Policy F2') } + let!(: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! } diff --git a/spec/migrations/backfill_group_features_spec.rb b/spec/migrations/backfill_group_features_spec.rb index 922d54f43be..1e7729a97d8 100644 --- a/spec/migrations/backfill_group_features_spec.rb +++ b/spec/migrations/backfill_group_features_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillGroupFeatures, :migration do +RSpec.describe BackfillGroupFeatures, :migration, feature_category: :feature_flags do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/backfill_integrations_enable_ssl_verification_spec.rb b/spec/migrations/backfill_integrations_enable_ssl_verification_spec.rb index 28578a3d79a..5029a861d31 100644 --- a/spec/migrations/backfill_integrations_enable_ssl_verification_spec.rb +++ b/spec/migrations/backfill_integrations_enable_ssl_verification_spec.rb @@ -3,9 +3,9 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillIntegrationsEnableSslVerification do - let_it_be(:migration) { described_class::MIGRATION } - let_it_be(:integrations) { described_class::Integration } +RSpec.describe BackfillIntegrationsEnableSslVerification, feature_category: :authentication_and_authorization do + let!(:migration) { described_class::MIGRATION } + let!(:integrations) { described_class::Integration } before do stub_const("#{described_class.name}::BATCH_SIZE", 2) diff --git a/spec/migrations/backfill_integrations_type_new_spec.rb b/spec/migrations/backfill_integrations_type_new_spec.rb index 5b8fbf6f555..79519c4439a 100644 --- a/spec/migrations/backfill_integrations_type_new_spec.rb +++ b/spec/migrations/backfill_integrations_type_new_spec.rb @@ -3,9 +3,9 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillIntegrationsTypeNew do - let_it_be(:migration) { described_class::MIGRATION } - let_it_be(:integrations) { table(:integrations) } +RSpec.describe BackfillIntegrationsTypeNew, feature_category: :integrations do + let!(:migration) { described_class::MIGRATION } + let!(:integrations) { table(:integrations) } before do integrations.create!(id: 1) diff --git a/spec/migrations/backfill_issues_upvotes_count_spec.rb b/spec/migrations/backfill_issues_upvotes_count_spec.rb index 94cfa29ae89..b8687595b35 100644 --- a/spec/migrations/backfill_issues_upvotes_count_spec.rb +++ b/spec/migrations/backfill_issues_upvotes_count_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillIssuesUpvotesCount do +RSpec.describe BackfillIssuesUpvotesCount, feature_category: :team_planning do let(:migration) { described_class.new } let(:issues) { table(:issues) } let(:award_emoji) { table(:award_emoji) } diff --git a/spec/migrations/backfill_member_namespace_id_for_group_members_spec.rb b/spec/migrations/backfill_member_namespace_id_for_group_members_spec.rb index 0c0acf85d41..892589dd770 100644 --- a/spec/migrations/backfill_member_namespace_id_for_group_members_spec.rb +++ b/spec/migrations/backfill_member_namespace_id_for_group_members_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillMemberNamespaceIdForGroupMembers do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe BackfillMemberNamespaceIdForGroupMembers, feature_category: :subgroups do + let!(:migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of group members' do diff --git a/spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb b/spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb index 913ec404795..627b18cd889 100644 --- a/spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb +++ b/spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillNamespaceIdForNamespaceRoutes do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe BackfillNamespaceIdForNamespaceRoutes, feature_category: :projects do + let!(:migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of routes' do diff --git a/spec/migrations/backfill_namespace_id_for_project_routes_spec.rb b/spec/migrations/backfill_namespace_id_for_project_routes_spec.rb index 28edd17731f..773c1733a4a 100644 --- a/spec/migrations/backfill_namespace_id_for_project_routes_spec.rb +++ b/spec/migrations/backfill_namespace_id_for_project_routes_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillNamespaceIdForProjectRoutes, :migration do +RSpec.describe BackfillNamespaceIdForProjectRoutes, :migration, feature_category: :subgroups do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/backfill_namespace_id_on_issues_spec.rb b/spec/migrations/backfill_namespace_id_on_issues_spec.rb index 2721d7ce8f1..28453394cb0 100644 --- a/spec/migrations/backfill_namespace_id_on_issues_spec.rb +++ b/spec/migrations/backfill_namespace_id_on_issues_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillNamespaceIdOnIssues, :migration do +RSpec.describe BackfillNamespaceIdOnIssues, :migration, feature_category: :team_planning do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/backfill_nuget_temporary_packages_to_processing_status_spec.rb b/spec/migrations/backfill_nuget_temporary_packages_to_processing_status_spec.rb index 574020e52d5..ae2656eaf98 100644 --- a/spec/migrations/backfill_nuget_temporary_packages_to_processing_status_spec.rb +++ b/spec/migrations/backfill_nuget_temporary_packages_to_processing_status_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillNugetTemporaryPackagesToProcessingStatus, :migration do +RSpec.describe BackfillNugetTemporaryPackagesToProcessingStatus, :migration, feature_category: :package_registry do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:packages) { table(:packages_packages) } diff --git a/spec/migrations/backfill_project_import_level_spec.rb b/spec/migrations/backfill_project_import_level_spec.rb index c24ddac0730..b41e323a92f 100644 --- a/spec/migrations/backfill_project_import_level_spec.rb +++ b/spec/migrations/backfill_project_import_level_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillProjectImportLevel do - let_it_be(:batched_migration) { described_class::MIGRATION } +RSpec.describe BackfillProjectImportLevel, feature_category: :importers do + let!(:batched_migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of namespaces' do diff --git a/spec/migrations/backfill_project_namespaces_for_group_spec.rb b/spec/migrations/backfill_project_namespaces_for_group_spec.rb index 0d34d19d42a..b21ed6e1aa2 100644 --- a/spec/migrations/backfill_project_namespaces_for_group_spec.rb +++ b/spec/migrations/backfill_project_namespaces_for_group_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillProjectNamespacesForGroup do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe BackfillProjectNamespacesForGroup, feature_category: :subgroups do + let!(:migration) { described_class::MIGRATION } let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/backfill_stage_event_hash_spec.rb b/spec/migrations/backfill_stage_event_hash_spec.rb index cecaddcd3d4..399a9c4dfde 100644 --- a/spec/migrations/backfill_stage_event_hash_spec.rb +++ b/spec/migrations/backfill_stage_event_hash_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillStageEventHash, schema: 20210730103808 do +RSpec.describe BackfillStageEventHash, schema: 20210730103808, feature_category: :value_stream_management do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:labels) { table(:labels) } diff --git a/spec/migrations/backfill_user_namespace_spec.rb b/spec/migrations/backfill_user_namespace_spec.rb index 094aec82e9c..a58030803b1 100644 --- a/spec/migrations/backfill_user_namespace_spec.rb +++ b/spec/migrations/backfill_user_namespace_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe BackfillUserNamespace do - let_it_be(:migration) { described_class::MIGRATION } +RSpec.describe BackfillUserNamespace, feature_category: :subgroups do + let!(:migration) { described_class::MIGRATION } describe '#up' do it 'schedules background jobs for each batch of namespaces' do diff --git a/spec/migrations/bulk_insert_cluster_enabled_grants_spec.rb b/spec/migrations/bulk_insert_cluster_enabled_grants_spec.rb index a359a78ab45..e85489198ee 100644 --- a/spec/migrations/bulk_insert_cluster_enabled_grants_spec.rb +++ b/spec/migrations/bulk_insert_cluster_enabled_grants_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe BulkInsertClusterEnabledGrants, :migration do +RSpec.describe BulkInsertClusterEnabledGrants, :migration, feature_category: :kubernetes_management do let(:migration) { described_class.new } let(:cluster_enabled_grants) { table(:cluster_enabled_grants) } diff --git a/spec/migrations/change_public_projects_cost_factor_spec.rb b/spec/migrations/change_public_projects_cost_factor_spec.rb index 039edda750b..656c8a45c57 100644 --- a/spec/migrations/change_public_projects_cost_factor_spec.rb +++ b/spec/migrations/change_public_projects_cost_factor_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ChangePublicProjectsCostFactor, migration: :gitlab_ci do +RSpec.describe ChangePublicProjectsCostFactor, migration: :gitlab_ci, feature_category: :runner do let(:runners) { table(:ci_runners) } let!(:shared_1) { runners.create!(runner_type: 1, public_projects_minutes_cost_factor: 0) } diff --git a/spec/migrations/change_task_system_note_wording_to_checklist_item_spec.rb b/spec/migrations/change_task_system_note_wording_to_checklist_item_spec.rb index 039ee92f8bd..421c519b2bc 100644 --- a/spec/migrations/change_task_system_note_wording_to_checklist_item_spec.rb +++ b/spec/migrations/change_task_system_note_wording_to_checklist_item_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ChangeTaskSystemNoteWordingToChecklistItem, :migration do +RSpec.describe ChangeTaskSystemNoteWordingToChecklistItem, :migration, feature_category: :team_planning do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/change_web_hook_events_default_spec.rb b/spec/migrations/change_web_hook_events_default_spec.rb index aad187187d0..c6c3f285ff1 100644 --- a/spec/migrations/change_web_hook_events_default_spec.rb +++ b/spec/migrations/change_web_hook_events_default_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ChangeWebHookEventsDefault do +RSpec.describe ChangeWebHookEventsDefault, feature_category: :integrations do let(:web_hooks) { table(:web_hooks) } let(:projects) { table(:projects) } let(:groups) { table(:namespaces) } diff --git a/spec/migrations/clean_up_pending_builds_table_spec.rb b/spec/migrations/clean_up_pending_builds_table_spec.rb index 17e62e1b486..e044d4a702b 100644 --- a/spec/migrations/clean_up_pending_builds_table_spec.rb +++ b/spec/migrations/clean_up_pending_builds_table_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe CleanUpPendingBuildsTable, :suppress_gitlab_schemas_validate_connection do +RSpec.describe CleanUpPendingBuildsTable, :suppress_gitlab_schemas_validate_connection, +feature_category: :continuous_integration do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:queue) { table(:ci_pending_builds) } diff --git a/spec/migrations/cleanup_after_add_primary_email_to_emails_if_user_confirmed_spec.rb b/spec/migrations/cleanup_after_add_primary_email_to_emails_if_user_confirmed_spec.rb index abff7c6aba1..6027199c11c 100644 --- a/spec/migrations/cleanup_after_add_primary_email_to_emails_if_user_confirmed_spec.rb +++ b/spec/migrations/cleanup_after_add_primary_email_to_emails_if_user_confirmed_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupAfterAddPrimaryEmailToEmailsIfUserConfirmed, :sidekiq do +RSpec.describe CleanupAfterAddPrimaryEmailToEmailsIfUserConfirmed, :sidekiq, feature_category: :users do let(:migration) { described_class.new } let(:users) { table(:users) } let(:emails) { table(:emails) } diff --git a/spec/migrations/cleanup_after_fixing_issue_when_admin_changed_primary_email_spec.rb b/spec/migrations/cleanup_after_fixing_issue_when_admin_changed_primary_email_spec.rb index eda57545c7a..e8dce46bdbc 100644 --- a/spec/migrations/cleanup_after_fixing_issue_when_admin_changed_primary_email_spec.rb +++ b/spec/migrations/cleanup_after_fixing_issue_when_admin_changed_primary_email_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupAfterFixingIssueWhenAdminChangedPrimaryEmail, :sidekiq do +RSpec.describe CleanupAfterFixingIssueWhenAdminChangedPrimaryEmail, :sidekiq, feature_category: :users do let(:migration) { described_class.new } let(:users) { table(:users) } let(:emails) { table(:emails) } diff --git a/spec/migrations/cleanup_after_fixing_regression_with_new_users_emails_spec.rb b/spec/migrations/cleanup_after_fixing_regression_with_new_users_emails_spec.rb index 043bb091df3..01ceef9f3a1 100644 --- a/spec/migrations/cleanup_after_fixing_regression_with_new_users_emails_spec.rb +++ b/spec/migrations/cleanup_after_fixing_regression_with_new_users_emails_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupAfterFixingRegressionWithNewUsersEmails, :sidekiq do +RSpec.describe CleanupAfterFixingRegressionWithNewUsersEmails, :sidekiq, feature_category: :users do let(:migration) { described_class.new } let(:users) { table(:users) } let(:emails) { table(:emails) } diff --git a/spec/migrations/cleanup_backfill_integrations_enable_ssl_verification_spec.rb b/spec/migrations/cleanup_backfill_integrations_enable_ssl_verification_spec.rb index 1517405b358..7aaa90ee985 100644 --- a/spec/migrations/cleanup_backfill_integrations_enable_ssl_verification_spec.rb +++ b/spec/migrations/cleanup_backfill_integrations_enable_ssl_verification_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupBackfillIntegrationsEnableSslVerification, :migration do +RSpec.describe CleanupBackfillIntegrationsEnableSslVerification, :migration, +feature_category: :authentication_and_authorization do let(:job_class_name) { 'BackfillIntegrationsEnableSslVerification' } before do diff --git a/spec/migrations/cleanup_move_container_registry_enabled_to_project_feature_spec.rb b/spec/migrations/cleanup_move_container_registry_enabled_to_project_feature_spec.rb index f0f9249515b..1badde62526 100644 --- a/spec/migrations/cleanup_move_container_registry_enabled_to_project_feature_spec.rb +++ b/spec/migrations/cleanup_move_container_registry_enabled_to_project_feature_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupMoveContainerRegistryEnabledToProjectFeature, :migration do +RSpec.describe CleanupMoveContainerRegistryEnabledToProjectFeature, :migration, feature_category: :navigation 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' } diff --git a/spec/migrations/cleanup_mr_attention_request_todos_spec.rb b/spec/migrations/cleanup_mr_attention_request_todos_spec.rb index 9f593ca8292..4fa2419aa7c 100644 --- a/spec/migrations/cleanup_mr_attention_request_todos_spec.rb +++ b/spec/migrations/cleanup_mr_attention_request_todos_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupMrAttentionRequestTodos, :migration do +RSpec.describe CleanupMrAttentionRequestTodos, :migration, feature_category: :code_review do let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } let(:users) { table(:users) } diff --git a/spec/migrations/cleanup_orphaned_routes_spec.rb b/spec/migrations/cleanup_orphaned_routes_spec.rb index 68598939557..a0ce9062c70 100644 --- a/spec/migrations/cleanup_orphaned_routes_spec.rb +++ b/spec/migrations/cleanup_orphaned_routes_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupOrphanedRoutes, :migration do +RSpec.describe CleanupOrphanedRoutes, :migration, feature_category: :projects do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/cleanup_remaining_orphan_invites_spec.rb b/spec/migrations/cleanup_remaining_orphan_invites_spec.rb index 987535a4f09..598030c99a0 100644 --- a/spec/migrations/cleanup_remaining_orphan_invites_spec.rb +++ b/spec/migrations/cleanup_remaining_orphan_invites_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupRemainingOrphanInvites, :migration do +RSpec.describe CleanupRemainingOrphanInvites, :migration, feature_category: :subgroups do def create_member(**extra_attributes) defaults = { access_level: 10, diff --git a/spec/migrations/cleanup_vulnerability_state_transitions_with_same_from_state_to_state_spec.rb b/spec/migrations/cleanup_vulnerability_state_transitions_with_same_from_state_to_state_spec.rb index 92ece81ffc8..b808f03428d 100644 --- a/spec/migrations/cleanup_vulnerability_state_transitions_with_same_from_state_to_state_spec.rb +++ b/spec/migrations/cleanup_vulnerability_state_transitions_with_same_from_state_to_state_spec.rb @@ -3,10 +3,11 @@ require 'spec_helper' require_migration! -RSpec.describe CleanupVulnerabilityStateTransitionsWithSameFromStateToState, :migration do - let_it_be(:namespace) { table(:namespaces).create!(name: 'namespace', type: 'Group', path: 'namespace') } - let_it_be(:user) { table(:users).create!(email: 'author@example.com', username: 'author', projects_limit: 10) } - let_it_be(:project) do +RSpec.describe CleanupVulnerabilityStateTransitionsWithSameFromStateToState, :migration, +feature_category: :vulnerability_management do + let!(:namespace) { table(:namespaces).create!(name: 'namespace', type: 'Group', path: 'namespace') } + let!(:user) { table(:users).create!(email: 'author@example.com', username: 'author', projects_limit: 10) } + let!(:project) do table(:projects).create!( path: 'project', namespace_id: namespace.id, @@ -14,7 +15,7 @@ RSpec.describe CleanupVulnerabilityStateTransitionsWithSameFromStateToState, :mi ) end - let_it_be(:vulnerability) do + let!(:vulnerability) do table(:vulnerabilities).create!( project_id: project.id, author_id: user.id, @@ -25,7 +26,7 @@ RSpec.describe CleanupVulnerabilityStateTransitionsWithSameFromStateToState, :mi ) end - let_it_be(:state_transitions) { table(:vulnerability_state_transitions) } + let!(:state_transitions) { table(:vulnerability_state_transitions) } let!(:state_transition_with_no_state_change) do state_transitions.create!( diff --git a/spec/migrations/confirm_security_bot_spec.rb b/spec/migrations/confirm_security_bot_spec.rb index 19ca81f92f3..3761c113692 100644 --- a/spec/migrations/confirm_security_bot_spec.rb +++ b/spec/migrations/confirm_security_bot_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ConfirmSecurityBot, :migration do +RSpec.describe ConfirmSecurityBot, :migration, feature_category: :users do let(:users) { table(:users) } let(:user_type) { 8 } diff --git a/spec/migrations/confirm_support_bot_user_spec.rb b/spec/migrations/confirm_support_bot_user_spec.rb index c60c7fe45f7..863bdb13585 100644 --- a/spec/migrations/confirm_support_bot_user_spec.rb +++ b/spec/migrations/confirm_support_bot_user_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ConfirmSupportBotUser, :migration do +RSpec.describe ConfirmSupportBotUser, :migration, feature_category: :users do let(:users) { table(:users) } context 'when support bot user is currently unconfirmed' do @@ -72,7 +72,7 @@ RSpec.describe ConfirmSupportBotUser, :migration do private - def create_user!(name: 'GitLab Support Bot', email: 'support@example.com', user_type:, created_at: Time.now, confirmed_at: nil, record_timestamps: true) + def create_user!(user_type:, name: 'GitLab Support Bot', email: 'support@example.com', created_at: Time.now, confirmed_at: nil, record_timestamps: true) users.create!( name: name, email: email, diff --git a/spec/migrations/delete_migrate_shared_vulnerability_scanners_spec.rb b/spec/migrations/delete_migrate_shared_vulnerability_scanners_spec.rb index 259b175cd19..562b1e25db4 100644 --- a/spec/migrations/delete_migrate_shared_vulnerability_scanners_spec.rb +++ b/spec/migrations/delete_migrate_shared_vulnerability_scanners_spec.rb @@ -4,7 +4,7 @@ require "spec_helper" require_migration! -RSpec.describe DeleteMigrateSharedVulnerabilityScanners, :migration do +RSpec.describe DeleteMigrateSharedVulnerabilityScanners, :migration, feature_category: :vulnerability_management do let(:batched_background_migrations) { table(:batched_background_migrations) } let(:batched_background_migration_jobs) { table(:batched_background_migration_jobs) } diff --git a/spec/migrations/delete_security_findings_without_uuid_spec.rb b/spec/migrations/delete_security_findings_without_uuid_spec.rb index bfd89f1aa82..e4c17288384 100644 --- a/spec/migrations/delete_security_findings_without_uuid_spec.rb +++ b/spec/migrations/delete_security_findings_without_uuid_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe DeleteSecurityFindingsWithoutUuid, :suppress_gitlab_schemas_validate_connection do +RSpec.describe DeleteSecurityFindingsWithoutUuid, :suppress_gitlab_schemas_validate_connection, +feature_category: :vulnerability_management do let(:users) { table(:users) } let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } 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 index f2be06f1ed6..1d948257fcc 100644 --- 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 @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe DisableExpirationPoliciesLinkedToNoContainerImages do +RSpec.describe DisableExpirationPoliciesLinkedToNoContainerImages, feature_category: :container_registry do let(:projects) { table(:projects) } let(:container_expiration_policies) { table(:container_expiration_policies) } let(:container_repositories) { table(:container_repositories) } diff --git a/spec/migrations/disable_job_token_scope_when_unused_spec.rb b/spec/migrations/disable_job_token_scope_when_unused_spec.rb index 3ce4ef5c102..fddf3594e2b 100644 --- a/spec/migrations/disable_job_token_scope_when_unused_spec.rb +++ b/spec/migrations/disable_job_token_scope_when_unused_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe DisableJobTokenScopeWhenUnused do +RSpec.describe DisableJobTokenScopeWhenUnused, feature_category: :continuous_integration do it 'is a no-op' do migrate! end diff --git a/spec/migrations/finalize_invalid_member_cleanup_spec.rb b/spec/migrations/finalize_invalid_member_cleanup_spec.rb index a29a89c2396..29d03f8983c 100644 --- a/spec/migrations/finalize_invalid_member_cleanup_spec.rb +++ b/spec/migrations/finalize_invalid_member_cleanup_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe FinalizeInvalidMemberCleanup, :migration do +RSpec.describe FinalizeInvalidMemberCleanup, :migration, feature_category: :subgroups do let(:batched_migrations) { table(:batched_background_migrations) } - let_it_be(:migration) { described_class::MIGRATION } + let!(:migration) { described_class::MIGRATION } describe '#up' do shared_examples 'finalizes the migration' do diff --git a/spec/migrations/finalize_issues_namespace_id_backfilling_spec.rb b/spec/migrations/finalize_issues_namespace_id_backfilling_spec.rb new file mode 100644 index 00000000000..d0c25fb3dd6 --- /dev/null +++ b/spec/migrations/finalize_issues_namespace_id_backfilling_spec.rb @@ -0,0 +1,72 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe FinalizeIssuesNamespaceIdBackfilling, :migration, feature_category: :team_planning do + let(:batched_migrations) { table(:batched_background_migrations) } + + let!(:migration) { described_class::MIGRATION } + + describe '#up' do + shared_examples 'finalizes the migration' do + it 'finalizes the migration' do + allow_next_instance_of(Gitlab::Database::BackgroundMigration::BatchedMigrationRunner) do |runner| + expect(runner).to receive(:finalize).with('BackfillProjectNamespaceOnIssues', :projects, :id, []) + end + end + end + + context 'when routes backfilling migration is missing' do + it 'warns migration not found' do + expect(Gitlab::AppLogger) + .to receive(:warn).with(/Could not find batched background migration for the given configuration:/) + + migrate! + end + end + + context 'with backfilling migration present' do + let!(:project_namespace_backfill) do + batched_migrations.create!( + job_class_name: 'BackfillProjectNamespaceOnIssues', + table_name: :routes, + column_name: :id, + job_arguments: [], + interval: 2.minutes, + min_value: 1, + max_value: 2, + batch_size: 1000, + sub_batch_size: 200, + gitlab_schema: :gitlab_main, + status: 3 # finished + ) + end + + context 'when backfilling migration finished successfully' do + it 'does not raise exception' do + expect { migrate! }.not_to raise_error + end + end + + context 'with different backfilling migration statuses' do + using RSpec::Parameterized::TableSyntax + + where(:status, :description) do + 0 | 'paused' + 1 | 'active' + 4 | 'failed' + 5 | 'finalizing' + end + + with_them do + before do + project_namespace_backfill.update!(status: status) + end + + it_behaves_like 'finalizes the migration' + end + end + end + end +end diff --git a/spec/migrations/finalize_orphaned_routes_cleanup_spec.rb b/spec/migrations/finalize_orphaned_routes_cleanup_spec.rb index dfc95ed9e63..78546806039 100644 --- a/spec/migrations/finalize_orphaned_routes_cleanup_spec.rb +++ b/spec/migrations/finalize_orphaned_routes_cleanup_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe FinalizeOrphanedRoutesCleanup, :migration do +RSpec.describe FinalizeOrphanedRoutesCleanup, :migration, feature_category: :projects do let(:batched_migrations) { table(:batched_background_migrations) } - let_it_be(:migration) { described_class::MIGRATION } + let!(:migration) { described_class::MIGRATION } describe '#up' do shared_examples 'finalizes the migration' do diff --git a/spec/migrations/finalize_project_namespaces_backfill_spec.rb b/spec/migrations/finalize_project_namespaces_backfill_spec.rb index 56f3b0f6ba5..6cc3a694de8 100644 --- a/spec/migrations/finalize_project_namespaces_backfill_spec.rb +++ b/spec/migrations/finalize_project_namespaces_backfill_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe FinalizeProjectNamespacesBackfill, :migration do +RSpec.describe FinalizeProjectNamespacesBackfill, :migration, feature_category: :projects do let(:batched_migrations) { table(:batched_background_migrations) } - let_it_be(:migration) { described_class::MIGRATION } + let!(:migration) { described_class::MIGRATION } describe '#up' do shared_examples 'finalizes the migration' do diff --git a/spec/migrations/finalize_routes_backfilling_for_projects_spec.rb b/spec/migrations/finalize_routes_backfilling_for_projects_spec.rb index 2bb740d0c2f..b79fdc98425 100644 --- a/spec/migrations/finalize_routes_backfilling_for_projects_spec.rb +++ b/spec/migrations/finalize_routes_backfilling_for_projects_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe FinalizeRoutesBackfillingForProjects, :migration do +RSpec.describe FinalizeRoutesBackfillingForProjects, :migration, feature_category: :projects do let(:batched_migrations) { table(:batched_background_migrations) } - let_it_be(:migration) { described_class::MIGRATION } + let!(:migration) { described_class::MIGRATION } describe '#up' do shared_examples 'finalizes the migration' do diff --git a/spec/migrations/finalize_traversal_ids_background_migrations_spec.rb b/spec/migrations/finalize_traversal_ids_background_migrations_spec.rb index 74d6447e6a7..0cebe7b9f91 100644 --- a/spec/migrations/finalize_traversal_ids_background_migrations_spec.rb +++ b/spec/migrations/finalize_traversal_ids_background_migrations_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration!('finalize_traversal_ids_background_migrations') -RSpec.describe FinalizeTraversalIdsBackgroundMigrations, :migration do +RSpec.describe FinalizeTraversalIdsBackgroundMigrations, :migration, feature_category: :database do shared_context 'incomplete background migration' do before do # Jobs enqueued in Sidekiq. diff --git a/spec/migrations/fix_and_backfill_project_namespaces_for_projects_with_duplicate_name_spec.rb b/spec/migrations/fix_and_backfill_project_namespaces_for_projects_with_duplicate_name_spec.rb index 44a2220b2ad..6b9fb1c6f2c 100644 --- a/spec/migrations/fix_and_backfill_project_namespaces_for_projects_with_duplicate_name_spec.rb +++ b/spec/migrations/fix_and_backfill_project_namespaces_for_projects_with_duplicate_name_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe FixAndBackfillProjectNamespacesForProjectsWithDuplicateName, :migration do +RSpec.describe FixAndBackfillProjectNamespacesForProjectsWithDuplicateName, :migration, feature_category: :projects do let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/fix_batched_migrations_old_format_job_arguments_spec.rb b/spec/migrations/fix_batched_migrations_old_format_job_arguments_spec.rb index e15011d0dab..8def53e1858 100644 --- a/spec/migrations/fix_batched_migrations_old_format_job_arguments_spec.rb +++ b/spec/migrations/fix_batched_migrations_old_format_job_arguments_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! # rubocop:disable Style/WordArray -RSpec.describe FixBatchedMigrationsOldFormatJobArguments do +RSpec.describe FixBatchedMigrationsOldFormatJobArguments, feature_category: :users do let(:batched_background_migrations) { table(:batched_background_migrations) } context 'when migrations with legacy job arguments exists' do diff --git a/spec/migrations/generate_customers_dot_jwt_signing_key_spec.rb b/spec/migrations/generate_customers_dot_jwt_signing_key_spec.rb index b7a91abf5d7..1385b67b607 100644 --- a/spec/migrations/generate_customers_dot_jwt_signing_key_spec.rb +++ b/spec/migrations/generate_customers_dot_jwt_signing_key_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe GenerateCustomersDotJwtSigningKey do +RSpec.describe GenerateCustomersDotJwtSigningKey, feature_category: :customersdot_application do let(:application_settings) do Class.new(ActiveRecord::Base) do self.table_name = 'application_settings' 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 index 1b6cb6a86a0..9358b71132c 100644 --- 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 @@ -3,9 +3,9 @@ require 'spec_helper' require_migration! -RSpec.describe InsertCiDailyPipelineScheduleTriggersPlanLimits do - let_it_be(:plans) { table(:plans) } - let_it_be(:plan_limits) { table(:plan_limits) } +RSpec.describe InsertCiDailyPipelineScheduleTriggersPlanLimits, feature_category: :purchase do + let!(:plans) { table(:plans) } + let!(:plan_limits) { table(:plan_limits) } context 'when on Gitlab.com' do let(:free_plan) { plans.create!(name: 'free') } @@ -46,25 +46,25 @@ RSpec.describe InsertCiDailyPipelineScheduleTriggersPlanLimits do end context 'when on self hosted' do - let(:free_plan) { plans.create!(name: 'free') } + let(:default_plan) { plans.create!(name: 'default') } before do allow(Gitlab).to receive(:com?).and_return(false) - plan_limits.create!(plan_id: free_plan.id) + plan_limits.create!(plan_id: default_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] + [default_plan.id, 0] ) } migration.after -> { expect(plan_limits.pluck(:plan_id, :ci_daily_pipeline_schedule_triggers)).to contain_exactly( - [free_plan.id, 0] + [default_plan.id, 0] ) } end diff --git a/spec/migrations/migrate_elastic_index_settings_spec.rb b/spec/migrations/migrate_elastic_index_settings_spec.rb index 5f39d9b9fc1..b67c4d902c7 100644 --- a/spec/migrations/migrate_elastic_index_settings_spec.rb +++ b/spec/migrations/migrate_elastic_index_settings_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe MigrateElasticIndexSettings do +RSpec.describe MigrateElasticIndexSettings, feature_category: :global_search do let(:elastic_index_settings) { table(:elastic_index_settings) } let(:application_settings) { table(:application_settings) } diff --git a/spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb b/spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb index 01805a9eb79..2f62147da9d 100644 --- a/spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb +++ b/spec/migrations/migrate_protected_attribute_to_pending_builds_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe MigrateProtectedAttributeToPendingBuilds, :suppress_gitlab_schemas_validate_connection do +RSpec.describe MigrateProtectedAttributeToPendingBuilds, :suppress_gitlab_schemas_validate_connection, +feature_category: :continuous_integration do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:queue) { table(:ci_pending_builds) } 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 e47cea749d6..25e0ef439bd 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 @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe MoveContainerRegistryEnabledToProjectFeatures3, :migration do +RSpec.describe MoveContainerRegistryEnabledToProjectFeatures3, :migration, feature_category: :container_registry do let(:namespace) { table(:namespaces).create!(name: 'gitlab', path: 'gitlab-org') } let!(:background_jobs) do diff --git a/spec/migrations/move_security_findings_table_to_gitlab_partitions_dynamic_schema_spec.rb b/spec/migrations/move_security_findings_table_to_gitlab_partitions_dynamic_schema_spec.rb index b5bb86edce2..2533d3224a6 100644 --- a/spec/migrations/move_security_findings_table_to_gitlab_partitions_dynamic_schema_spec.rb +++ b/spec/migrations/move_security_findings_table_to_gitlab_partitions_dynamic_schema_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe MoveSecurityFindingsTableToGitlabPartitionsDynamicSchema do +RSpec.describe MoveSecurityFindingsTableToGitlabPartitionsDynamicSchema, feature_category: :vulnerability_management do let(:partitions_sql) do <<~SQL SELECT diff --git a/spec/migrations/orphaned_invite_tokens_cleanup_spec.rb b/spec/migrations/orphaned_invite_tokens_cleanup_spec.rb index b33e29f82e2..56f47fca864 100644 --- a/spec/migrations/orphaned_invite_tokens_cleanup_spec.rb +++ b/spec/migrations/orphaned_invite_tokens_cleanup_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe OrphanedInviteTokensCleanup, :migration do +RSpec.describe OrphanedInviteTokensCleanup, :migration, feature_category: :subgroups do def create_member(**extra_attributes) defaults = { access_level: 10, diff --git a/spec/migrations/orphaned_invited_members_cleanup_spec.rb b/spec/migrations/orphaned_invited_members_cleanup_spec.rb index 4427e707f56..1d4db5306bc 100644 --- a/spec/migrations/orphaned_invited_members_cleanup_spec.rb +++ b/spec/migrations/orphaned_invited_members_cleanup_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe OrphanedInvitedMembersCleanup, :migration do +RSpec.describe OrphanedInvitedMembersCleanup, :migration, feature_category: :subgroups do describe '#up', :aggregate_failures do it 'removes accepted members with no associated user' do user = create_user!('testuser1') diff --git a/spec/migrations/populate_audit_event_streaming_verification_token_spec.rb b/spec/migrations/populate_audit_event_streaming_verification_token_spec.rb index b3fe1776183..e2c117903d4 100644 --- a/spec/migrations/populate_audit_event_streaming_verification_token_spec.rb +++ b/spec/migrations/populate_audit_event_streaming_verification_token_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe PopulateAuditEventStreamingVerificationToken do +RSpec.describe PopulateAuditEventStreamingVerificationToken, feature_category: :audit_events do let(:groups) { table(:namespaces) } let(:destinations) { table(:audit_events_external_audit_event_destinations) } let(:migration) { described_class.new } diff --git a/spec/migrations/populate_dismissal_information_for_vulnerabilities_spec.rb b/spec/migrations/populate_dismissal_information_for_vulnerabilities_spec.rb index 1db52781956..66fd5eb5ae5 100644 --- a/spec/migrations/populate_dismissal_information_for_vulnerabilities_spec.rb +++ b/spec/migrations/populate_dismissal_information_for_vulnerabilities_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe PopulateDismissalInformationForVulnerabilities do +RSpec.describe PopulateDismissalInformationForVulnerabilities, feature_category: :vulnerability_management do let(:users) { table(:users) } let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } diff --git a/spec/migrations/populate_operation_visibility_permissions_spec.rb b/spec/migrations/populate_operation_visibility_permissions_spec.rb index 6737a6f84c3..704152bd6a9 100644 --- a/spec/migrations/populate_operation_visibility_permissions_spec.rb +++ b/spec/migrations/populate_operation_visibility_permissions_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe PopulateOperationVisibilityPermissions, :migration do +RSpec.describe PopulateOperationVisibilityPermissions, :migration, feature_category: :navigation do let(:migration) { described_class::MIGRATION } before do diff --git a/spec/migrations/populate_releases_access_level_from_repository_spec.rb b/spec/migrations/populate_releases_access_level_from_repository_spec.rb index 2bb97662923..ebb7aa6f7fa 100644 --- a/spec/migrations/populate_releases_access_level_from_repository_spec.rb +++ b/spec/migrations/populate_releases_access_level_from_repository_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe PopulateReleasesAccessLevelFromRepository, :migration do +RSpec.describe PopulateReleasesAccessLevelFromRepository, :migration, feature_category: :navigation do let(:projects) { table(:projects) } let(:groups) { table(:namespaces) } let(:project_features) { table(:project_features) } diff --git a/spec/migrations/queue_backfill_project_feature_package_registry_access_level_spec.rb b/spec/migrations/queue_backfill_project_feature_package_registry_access_level_spec.rb index 487d94b82a1..6a01b30445b 100644 --- a/spec/migrations/queue_backfill_project_feature_package_registry_access_level_spec.rb +++ b/spec/migrations/queue_backfill_project_feature_package_registry_access_level_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe QueueBackfillProjectFeaturePackageRegistryAccessLevel do - let_it_be(:batched_migration) { described_class::MIGRATION } +RSpec.describe QueueBackfillProjectFeaturePackageRegistryAccessLevel, feature_category: :package_registry do + let!(:batched_migration) { described_class::MIGRATION } it 'schedules a new batched migration' do reversible_migration do |migration| diff --git a/spec/migrations/queue_backfill_user_details_fields_spec.rb b/spec/migrations/queue_backfill_user_details_fields_spec.rb index 388ac6d1bce..e77a66907de 100644 --- a/spec/migrations/queue_backfill_user_details_fields_spec.rb +++ b/spec/migrations/queue_backfill_user_details_fields_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe QueueBackfillUserDetailsFields do - let_it_be(:batched_migration) { described_class::MIGRATION } +RSpec.describe QueueBackfillUserDetailsFields, feature_category: :users do + let!(:batched_migration) { described_class::MIGRATION } it 'schedules a new batched migration' do reversible_migration do |migration| diff --git a/spec/migrations/queue_populate_projects_star_count_spec.rb b/spec/migrations/queue_populate_projects_star_count_spec.rb index 848136d8005..84565d14d52 100644 --- a/spec/migrations/queue_populate_projects_star_count_spec.rb +++ b/spec/migrations/queue_populate_projects_star_count_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe QueuePopulateProjectsStarCount do - let_it_be(:batched_migration) { described_class::MIGRATION } +RSpec.describe QueuePopulateProjectsStarCount, feature_category: :users do + let!(:batched_migration) { described_class::MIGRATION } it 'schedules a new batched migration' do reversible_migration do |migration| diff --git a/spec/migrations/re_schedule_latest_pipeline_id_population_with_all_security_related_artifact_types_spec.rb b/spec/migrations/re_schedule_latest_pipeline_id_population_with_all_security_related_artifact_types_spec.rb index 45a2772adda..5ebe6787f15 100644 --- a/spec/migrations/re_schedule_latest_pipeline_id_population_with_all_security_related_artifact_types_spec.rb +++ b/spec/migrations/re_schedule_latest_pipeline_id_population_with_all_security_related_artifact_types_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! RSpec.describe ReScheduleLatestPipelineIdPopulationWithAllSecurityRelatedArtifactTypes, - :suppress_gitlab_schemas_validate_connection do + :suppress_gitlab_schemas_validate_connection, feature_category: :vulnerability_management do let(:namespaces) { table(:namespaces) } let(:pipelines) { table(:ci_pipelines) } let(:projects) { table(:projects) } diff --git a/spec/migrations/recount_epic_cache_counts_spec.rb b/spec/migrations/recount_epic_cache_counts_spec.rb index 56aa96cb40c..d065389a726 100644 --- a/spec/migrations/recount_epic_cache_counts_spec.rb +++ b/spec/migrations/recount_epic_cache_counts_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RecountEpicCacheCounts, :migration do +RSpec.describe RecountEpicCacheCounts, :migration, feature_category: :portfolio_management do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_features_spec.rb b/spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_features_spec.rb index 77824a743fb..80ecc23dfbe 100644 --- a/spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_features_spec.rb +++ b/spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_features_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe RecreateIndexSecurityCiBuildsOnNameAndIdParserFeatures, :migration do +RSpec.describe RecreateIndexSecurityCiBuildsOnNameAndIdParserFeatures, :migration, feature_category: :database do let(:db) { described_class.new } let(:pg_class) { table(:pg_class) } let(:pg_index) { table(:pg_index) } diff --git a/spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features_spec.rb b/spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features_spec.rb index 8ec51d86779..c7709764727 100644 --- a/spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features_spec.rb +++ b/spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe RecreateIndexSecurityCiBuildsOnNameAndIdParserWithNewFeatures, :migration do +RSpec.describe RecreateIndexSecurityCiBuildsOnNameAndIdParserWithNewFeatures, :migration, feature_category: :continuous_integration do let(:db) { described_class.new } let(:pg_class) { table(:pg_class) } let(:pg_index) { table(:pg_index) } diff --git a/spec/migrations/remove_duplicate_dast_site_tokens_spec.rb b/spec/migrations/remove_duplicate_dast_site_tokens_spec.rb index fed9941b2a4..2b21dc3b67f 100644 --- a/spec/migrations/remove_duplicate_dast_site_tokens_spec.rb +++ b/spec/migrations/remove_duplicate_dast_site_tokens_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveDuplicateDastSiteTokens do +RSpec.describe RemoveDuplicateDastSiteTokens, feature_category: :dynamic_application_security_testing do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:dast_site_tokens) { table(:dast_site_tokens) } @@ -15,7 +15,7 @@ RSpec.describe RemoveDuplicateDastSiteTokens do context 'when duplicate dast site tokens exists' do # create duplicate dast site token - let_it_be(:duplicate_url) { 'https://about.gitlab.com' } + let!(:duplicate_url) { 'https://about.gitlab.com' } let!(:project2) { projects.create!(id: 2, namespace_id: namespace.id, path: 'project2') } let!(:dast_site_token2) { dast_site_tokens.create!(project_id: project2.id, url: duplicate_url, token: SecureRandom.uuid) } diff --git a/spec/migrations/remove_duplicate_dast_site_tokens_with_same_token_spec.rb b/spec/migrations/remove_duplicate_dast_site_tokens_with_same_token_spec.rb index 57d677af5cf..6cc25b74d02 100644 --- a/spec/migrations/remove_duplicate_dast_site_tokens_with_same_token_spec.rb +++ b/spec/migrations/remove_duplicate_dast_site_tokens_with_same_token_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveDuplicateDastSiteTokensWithSameToken do +RSpec.describe RemoveDuplicateDastSiteTokensWithSameToken, feature_category: :dynamic_application_security_testing do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:dast_site_tokens) { table(:dast_site_tokens) } @@ -15,8 +15,8 @@ RSpec.describe RemoveDuplicateDastSiteTokensWithSameToken do context 'when duplicate dast site tokens exists' do # create duplicate dast site token - let_it_be(:duplicate_token) { 'duplicate_token' } - let_it_be(:other_duplicate_token) { 'other_duplicate_token' } + let!(:duplicate_token) { 'duplicate_token' } + let!(:other_duplicate_token) { 'other_duplicate_token' } let!(:project2) { projects.create!(id: 2, namespace_id: namespace.id, path: 'project2') } let!(:dast_site_token2) { dast_site_tokens.create!(project_id: project2.id, url: 'https://gitlab2.com', token: duplicate_token) } diff --git a/spec/migrations/remove_flowdock_integration_records_spec.rb b/spec/migrations/remove_flowdock_integration_records_spec.rb new file mode 100644 index 00000000000..3f57515d18b --- /dev/null +++ b/spec/migrations/remove_flowdock_integration_records_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'spec_helper' +require Rails.root.join('db/post_migrate/20221129124240_remove_flowdock_integration_records.rb') + +RSpec.describe RemoveFlowdockIntegrationRecords, feature_category: :integrations do + let(:integrations) { table(:integrations) } + + before do + integrations.create!(type_new: 'Integrations::Flowdock') + integrations.create!(type_new: 'SomeOtherType') + end + + it 'removes integrations records of type_new Integrations::Flowdock' do + expect(integrations.count).to eq(2) + + migrate! + + expect(integrations.count).to eq(1) + expect(integrations.first.type_new).to eq('SomeOtherType') + expect(integrations.where(type_new: 'Integrations::Flowdock')).to be_empty + end +end diff --git a/spec/migrations/remove_hipchat_service_records_spec.rb b/spec/migrations/remove_hipchat_service_records_spec.rb index d218b6b23a5..b89572b069e 100644 --- a/spec/migrations/remove_hipchat_service_records_spec.rb +++ b/spec/migrations/remove_hipchat_service_records_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveHipchatServiceRecords do +RSpec.describe RemoveHipchatServiceRecords, feature_category: :integrations do let(:services) { table(:services) } before do diff --git a/spec/migrations/remove_invalid_integrations_spec.rb b/spec/migrations/remove_invalid_integrations_spec.rb index cab2d79998e..52adc087e0a 100644 --- a/spec/migrations/remove_invalid_integrations_spec.rb +++ b/spec/migrations/remove_invalid_integrations_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveInvalidIntegrations, :migration do +RSpec.describe RemoveInvalidIntegrations, :migration, feature_category: :integrations do describe '#up' do let!(:integrations) { table(:integrations) } diff --git a/spec/migrations/remove_not_null_contraint_on_title_from_sprints_spec.rb b/spec/migrations/remove_not_null_contraint_on_title_from_sprints_spec.rb index 198644fe183..91687d8d730 100644 --- a/spec/migrations/remove_not_null_contraint_on_title_from_sprints_spec.rb +++ b/spec/migrations/remove_not_null_contraint_on_title_from_sprints_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveNotNullContraintOnTitleFromSprints, :migration do +RSpec.describe RemoveNotNullContraintOnTitleFromSprints, :migration, feature_category: :team_planning do let(:migration) { described_class.new } let(:namespaces) { table(:namespaces) } let(:sprints) { table(:sprints) } 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 c267e419b42..eabf6271ded 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 @@ -5,7 +5,7 @@ require 'spec_helper' require_migration! require_migration!('add_not_valid_foreign_key_to_group_hooks') -RSpec.describe RemoveRecordsWithoutGroupFromWebhooksTable, schema: 20210330091751 do +RSpec.describe RemoveRecordsWithoutGroupFromWebhooksTable, schema: 20210330091751, feature_category: :integrations do let(:web_hooks) { table(:web_hooks) } let(:groups) { table(:namespaces) } diff --git a/spec/migrations/remove_schedule_and_status_from_pending_alert_escalations_spec.rb b/spec/migrations/remove_schedule_and_status_from_pending_alert_escalations_spec.rb index f595261ff90..86e161cea43 100644 --- a/spec/migrations/remove_schedule_and_status_from_pending_alert_escalations_spec.rb +++ b/spec/migrations/remove_schedule_and_status_from_pending_alert_escalations_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveScheduleAndStatusFromPendingAlertEscalations do +RSpec.describe RemoveScheduleAndStatusFromPendingAlertEscalations, feature_category: :incident_management do let(:escalations) { table(:incident_management_pending_alert_escalations) } let(:schedule_index) { 'index_incident_management_pending_alert_escalations_on_schedule' } let(:schedule_foreign_key) { 'fk_rails_fcbfd9338b' } diff --git a/spec/migrations/remove_wiki_notes_spec.rb b/spec/migrations/remove_wiki_notes_spec.rb index 2ffebdee106..55f58ef7be6 100644 --- a/spec/migrations/remove_wiki_notes_spec.rb +++ b/spec/migrations/remove_wiki_notes_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe RemoveWikiNotes, :migration do +RSpec.describe RemoveWikiNotes, :migration, feature_category: :team_planning do let(:notes) { table(:notes) } it 'removes all wiki notes' do diff --git a/spec/migrations/rename_services_to_integrations_spec.rb b/spec/migrations/rename_services_to_integrations_spec.rb index 812dd5efecb..a90b0bfabd2 100644 --- a/spec/migrations/rename_services_to_integrations_spec.rb +++ b/spec/migrations/rename_services_to_integrations_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe RenameServicesToIntegrations do +RSpec.describe RenameServicesToIntegrations, feature_category: :integrations do let(:migration) { described_class.new } let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } diff --git a/spec/migrations/replace_external_wiki_triggers_spec.rb b/spec/migrations/replace_external_wiki_triggers_spec.rb index 392ef76c5ba..c2bc5c44c77 100644 --- a/spec/migrations/replace_external_wiki_triggers_spec.rb +++ b/spec/migrations/replace_external_wiki_triggers_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe ReplaceExternalWikiTriggers do +RSpec.describe ReplaceExternalWikiTriggers, feature_category: :integrations do let(:migration) { described_class.new } let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } diff --git a/spec/migrations/reschedule_backfill_imported_issue_search_data_spec.rb b/spec/migrations/reschedule_backfill_imported_issue_search_data_spec.rb index 7581c201a59..fe730f452f7 100644 --- a/spec/migrations/reschedule_backfill_imported_issue_search_data_spec.rb +++ b/spec/migrations/reschedule_backfill_imported_issue_search_data_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe RescheduleBackfillImportedIssueSearchData do - let_it_be(:reschedule_migration) { described_class::MIGRATION } +RSpec.describe RescheduleBackfillImportedIssueSearchData, feature_category: :global_search do + let!(:reschedule_migration) { described_class::MIGRATION } def create_batched_migration(max_value:) Gitlab::Database::BackgroundMigration::BatchedMigration @@ -55,12 +55,23 @@ RSpec.describe RescheduleBackfillImportedIssueSearchData do end context 'when an issue is available' do - let_it_be(:namespaces_table) { table(:namespaces) } - let_it_be(:projects_table) { table(:projects) } + let!(:namespaces_table) { table(:namespaces) } + let!(:projects_table) { table(:projects) } let(:namespace) { namespaces_table.create!(name: 'gitlab-org', path: 'gitlab-org') } - let(:project) { projects_table.create!(name: 'gitlab', path: 'gitlab-org/gitlab-ce', namespace_id: namespace.id, project_namespace_id: namespace.id) } # rubocop:disable Layout/LineLength - let(:issue) { table(:issues).create!(project_id: project.id, title: 'test title', description: 'test description') } + + let(:project) do + projects_table.create!( + name: 'gitlab', path: 'gitlab-org/gitlab-ce', namespace_id: namespace.id, project_namespace_id: namespace.id + ) + end + + let(:issue) do + table(:issues).create!( + project_id: project.id, namespace_id: project.project_namespace_id, + title: 'test title', description: 'test description' + ) + end before do create_batched_migration(max_value: max_value) diff --git a/spec/migrations/reschedule_delete_orphaned_deployments_spec.rb b/spec/migrations/reschedule_delete_orphaned_deployments_spec.rb index eb91602388c..bbc4494837a 100644 --- a/spec/migrations/reschedule_delete_orphaned_deployments_spec.rb +++ b/spec/migrations/reschedule_delete_orphaned_deployments_spec.rb @@ -4,7 +4,8 @@ require 'spec_helper' require_migration! -RSpec.describe RescheduleDeleteOrphanedDeployments, :sidekiq, schema: 20210617161348 do +RSpec.describe RescheduleDeleteOrphanedDeployments, :sidekiq, schema: 20210617161348, + feature_category: :continuous_delivery do let!(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') } let!(:project) { table(:projects).create!(namespace_id: namespace.id) } let!(:environment) { table(:environments).create!(name: 'production', slug: 'production', project_id: project.id) } diff --git a/spec/migrations/reschedule_issue_work_item_type_id_backfill_spec.rb b/spec/migrations/reschedule_issue_work_item_type_id_backfill_spec.rb index 126d49790a5..1443ff09241 100644 --- a/spec/migrations/reschedule_issue_work_item_type_id_backfill_spec.rb +++ b/spec/migrations/reschedule_issue_work_item_type_id_backfill_spec.rb @@ -3,11 +3,11 @@ require 'spec_helper' require_migration! -RSpec.describe RescheduleIssueWorkItemTypeIdBackfill, :migration do - let_it_be(:migration) { described_class::MIGRATION } - let_it_be(:interval) { 2.minutes } - let_it_be(:issue_type_enum) { { issue: 0, incident: 1, test_case: 2, requirement: 3, task: 4 } } - let_it_be(:base_work_item_type_ids) do +RSpec.describe RescheduleIssueWorkItemTypeIdBackfill, :migration, feature_category: :team_planning do + let!(:migration) { described_class::MIGRATION } + let!(:interval) { 2.minutes } + let!(:issue_type_enum) { { issue: 0, incident: 1, test_case: 2, requirement: 3, task: 4 } } + let!(:base_work_item_type_ids) do table(:work_item_types).where(namespace_id: nil).order(:base_type).each_with_object({}) do |type, hash| hash[type.base_type] = type.id end diff --git a/spec/migrations/reschedule_migrate_shared_vulnerability_scanners_spec.rb b/spec/migrations/reschedule_migrate_shared_vulnerability_scanners_spec.rb index e8253f39c68..48422de81fe 100644 --- a/spec/migrations/reschedule_migrate_shared_vulnerability_scanners_spec.rb +++ b/spec/migrations/reschedule_migrate_shared_vulnerability_scanners_spec.rb @@ -4,7 +4,7 @@ require "spec_helper" require_migration! -RSpec.describe RescheduleMigrateSharedVulnerabilityScanners, :migration do +RSpec.describe RescheduleMigrateSharedVulnerabilityScanners, :migration, feature_category: :vulnerability_management do include Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers def connection diff --git a/spec/migrations/reset_job_token_scope_enabled_again_spec.rb b/spec/migrations/reset_job_token_scope_enabled_again_spec.rb index 8f9e12852e1..9f1180b6e24 100644 --- a/spec/migrations/reset_job_token_scope_enabled_again_spec.rb +++ b/spec/migrations/reset_job_token_scope_enabled_again_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe ResetJobTokenScopeEnabledAgain do +RSpec.describe ResetJobTokenScopeEnabledAgain, feature_category: :continuous_integration do let(:settings) { table(:project_ci_cd_settings) } let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/reset_job_token_scope_enabled_spec.rb b/spec/migrations/reset_job_token_scope_enabled_spec.rb index fb7bd78c11f..4ce9078246a 100644 --- a/spec/migrations/reset_job_token_scope_enabled_spec.rb +++ b/spec/migrations/reset_job_token_scope_enabled_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe ResetJobTokenScopeEnabled do +RSpec.describe ResetJobTokenScopeEnabled, feature_category: :continuous_integration do let(:settings) { table(:project_ci_cd_settings) } let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/reset_severity_levels_to_new_default_spec.rb b/spec/migrations/reset_severity_levels_to_new_default_spec.rb index c352f1f3cee..83e57b852a0 100644 --- a/spec/migrations/reset_severity_levels_to_new_default_spec.rb +++ b/spec/migrations/reset_severity_levels_to_new_default_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe ResetSeverityLevelsToNewDefault do +RSpec.describe ResetSeverityLevelsToNewDefault, feature_category: :source_code_management do let(:approval_project_rules) { table(:approval_project_rules) } let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/retry_backfill_traversal_ids_spec.rb b/spec/migrations/retry_backfill_traversal_ids_spec.rb index 910be9f2c69..f3658d1b8a3 100644 --- a/spec/migrations/retry_backfill_traversal_ids_spec.rb +++ b/spec/migrations/retry_backfill_traversal_ids_spec.rb @@ -3,10 +3,10 @@ require 'spec_helper' require_migration! -RSpec.describe RetryBackfillTraversalIds, :migration do +RSpec.describe RetryBackfillTraversalIds, :migration, feature_category: :subgroups do include ReloadHelpers - let_it_be(:namespaces_table) { table(:namespaces) } + let!(:namespaces_table) { table(:namespaces) } context 'when BackfillNamespaceTraversalIdsRoots jobs are pending' do before do diff --git a/spec/migrations/sanitize_confidential_note_todos_spec.rb b/spec/migrations/sanitize_confidential_note_todos_spec.rb index 00dece82cc1..142378e07e1 100644 --- a/spec/migrations/sanitize_confidential_note_todos_spec.rb +++ b/spec/migrations/sanitize_confidential_note_todos_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe SanitizeConfidentialNoteTodos do +RSpec.describe SanitizeConfidentialNoteTodos, feature_category: :team_planning do let(:migration) { described_class::MIGRATION } describe '#up' do diff --git a/spec/migrations/schedule_add_primary_email_to_emails_if_user_confirmed_spec.rb b/spec/migrations/schedule_add_primary_email_to_emails_if_user_confirmed_spec.rb index c66ac1bd7e9..98d3e9b7c7c 100644 --- a/spec/migrations/schedule_add_primary_email_to_emails_if_user_confirmed_spec.rb +++ b/spec/migrations/schedule_add_primary_email_to_emails_if_user_confirmed_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleAddPrimaryEmailToEmailsIfUserConfirmed, :sidekiq do +RSpec.describe ScheduleAddPrimaryEmailToEmailsIfUserConfirmed, :sidekiq, feature_category: :users do let(:migration) { described_class.new } let(:users) { table(:users) } diff --git a/spec/migrations/schedule_backfill_cluster_agents_has_vulnerabilities_spec.rb b/spec/migrations/schedule_backfill_cluster_agents_has_vulnerabilities_spec.rb index 675cc332e69..84764c89adb 100644 --- a/spec/migrations/schedule_backfill_cluster_agents_has_vulnerabilities_spec.rb +++ b/spec/migrations/schedule_backfill_cluster_agents_has_vulnerabilities_spec.rb @@ -3,8 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleBackfillClusterAgentsHasVulnerabilities do - let_it_be(:batched_migration) { described_class::MIGRATION } +RSpec.describe ScheduleBackfillClusterAgentsHasVulnerabilities, feature_category: :vulnerability_management do + let!(:batched_migration) { described_class::MIGRATION } it 'schedules background jobs for each batch of cluster agents' do reversible_migration do |migration| diff --git a/spec/migrations/schedule_backfill_draft_status_on_merge_requests_corrected_regex_spec.rb b/spec/migrations/schedule_backfill_draft_status_on_merge_requests_corrected_regex_spec.rb index 9d7651d01ed..8a14bf58698 100644 --- a/spec/migrations/schedule_backfill_draft_status_on_merge_requests_corrected_regex_spec.rb +++ b/spec/migrations/schedule_backfill_draft_status_on_merge_requests_corrected_regex_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleBackfillDraftStatusOnMergeRequestsCorrectedRegex, :sidekiq do +RSpec.describe ScheduleBackfillDraftStatusOnMergeRequestsCorrectedRegex, :sidekiq, feature_category: :code_review do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:merge_requests) { table(:merge_requests) } diff --git a/spec/migrations/schedule_backfilling_the_namespace_id_for_vulnerability_reads_spec.rb b/spec/migrations/schedule_backfilling_the_namespace_id_for_vulnerability_reads_spec.rb index e03096de98d..e547b321c52 100644 --- a/spec/migrations/schedule_backfilling_the_namespace_id_for_vulnerability_reads_spec.rb +++ b/spec/migrations/schedule_backfilling_the_namespace_id_for_vulnerability_reads_spec.rb @@ -4,8 +4,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleBackfillingTheNamespaceIdForVulnerabilityReads do - let_it_be(:migration) { described_class::MIGRATION_NAME } +RSpec.describe ScheduleBackfillingTheNamespaceIdForVulnerabilityReads, feature_category: :vulnerability_management do + let!(:migration) { described_class::MIGRATION_NAME } describe '#up' do it 'schedules background jobs for each batch of vulnerabilities' do diff --git a/spec/migrations/schedule_copy_ci_builds_columns_to_security_scans2_spec.rb b/spec/migrations/schedule_copy_ci_builds_columns_to_security_scans2_spec.rb index 67d54ea92a0..63678a094a7 100644 --- a/spec/migrations/schedule_copy_ci_builds_columns_to_security_scans2_spec.rb +++ b/spec/migrations/schedule_copy_ci_builds_columns_to_security_scans2_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleCopyCiBuildsColumnsToSecurityScans2 do +RSpec.describe ScheduleCopyCiBuildsColumnsToSecurityScans2, feature_category: :dependency_scanning do it 'is a no-op' do migrate! 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 index 888d306f893..ebcc3fda0a3 100644 --- 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 @@ -4,22 +4,22 @@ 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) } +RSpec.describe ScheduleDisableExpirationPoliciesLinkedToNoContainerImages, feature_category: :container_registry 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!(:policy1) { create_expiration_policy(id: 1, enabled: true) } + let!(:policy2) { create_expiration_policy(id: 2, enabled: false) } + let!(:policy3) { create_expiration_policy(id: 3, enabled: false) } + let!(:policy4) { create_expiration_policy(id: 4, enabled: true) } + let!(:policy5) { create_expiration_policy(id: 5, enabled: false) } + let!(:policy6) { create_expiration_policy(id: 6, enabled: false) } + let!(:policy7) { create_expiration_policy(id: 7, enabled: true) } + let!(:policy8) { create_expiration_policy(id: 8, enabled: true) } + let!(:policy9) { create_expiration_policy(id: 9, enabled: true) } it 'schedules background migrations', :aggregate_failures do stub_const("#{described_class}::BATCH_SIZE", 2) diff --git a/spec/migrations/schedule_fix_incorrect_max_seats_used2_spec.rb b/spec/migrations/schedule_fix_incorrect_max_seats_used2_spec.rb index 3720be6cf3e..26764f855b7 100644 --- a/spec/migrations/schedule_fix_incorrect_max_seats_used2_spec.rb +++ b/spec/migrations/schedule_fix_incorrect_max_seats_used2_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleFixIncorrectMaxSeatsUsed2, :migration do +RSpec.describe ScheduleFixIncorrectMaxSeatsUsed2, :migration, feature_category: :purchase do let(:migration_name) { described_class::MIGRATION.to_s.demodulize } describe '#up' do diff --git a/spec/migrations/schedule_fix_incorrect_max_seats_used_spec.rb b/spec/migrations/schedule_fix_incorrect_max_seats_used_spec.rb index 74258f03630..194a1d39ad1 100644 --- a/spec/migrations/schedule_fix_incorrect_max_seats_used_spec.rb +++ b/spec/migrations/schedule_fix_incorrect_max_seats_used_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleFixIncorrectMaxSeatsUsed, :migration do +RSpec.describe ScheduleFixIncorrectMaxSeatsUsed, :migration, feature_category: :purchase do let(:migration) { described_class.new } describe '#up' do diff --git a/spec/migrations/schedule_fixing_security_scan_statuses_spec.rb b/spec/migrations/schedule_fixing_security_scan_statuses_spec.rb new file mode 100644 index 00000000000..c4c7819bda7 --- /dev/null +++ b/spec/migrations/schedule_fixing_security_scan_statuses_spec.rb @@ -0,0 +1,77 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe ScheduleFixingSecurityScanStatuses, :suppress_gitlab_schemas_validate_connection, + feature_category: :vulnerability_management do + let!(:namespaces) { table(:namespaces) } + let!(:projects) { table(:projects) } + let!(:pipelines) { table(:ci_pipelines) } + let!(:builds) { table(:ci_builds) } + let!(:security_scans) { table(:security_scans) } + + let!(:namespace) { namespaces.create!(name: "foo", path: "bar") } + let!(:project) { projects.create!(namespace_id: namespace.id, project_namespace_id: namespace.id) } + let!(:pipeline) do + pipelines.create!(project_id: project.id, ref: 'master', sha: 'adf43c3a', status: 'success', partition_id: 1) + end + + let!(:ci_build) { builds.create!(commit_id: pipeline.id, retried: false, type: 'Ci::Build', partition_id: 1) } + + let!(:security_scan_1) { security_scans.create!(build_id: ci_build.id, scan_type: 1, created_at: 91.days.ago) } + let!(:security_scan_2) { security_scans.create!(build_id: ci_build.id, scan_type: 2) } + + let(:com?) { false } + let(:dev_or_test_env?) { false } + let(:migration) { described_class::MIGRATION } + + before do + allow(::Gitlab).to receive(:com?).and_return(com?) + allow(::Gitlab).to receive(:dev_or_test_env?).and_return(dev_or_test_env?) + + migrate! + end + + describe '#up' do + shared_examples_for 'scheduler for fixing the security scans status' do + it 'schedules background job' do + expect(migration).to have_scheduled_batched_migration( + table_name: :security_scans, + column_name: :id, + interval: 2.minutes, + batch_size: 10_000, + max_batch_size: 50_000, + sub_batch_size: 100, + batch_min_value: security_scan_2.id + ) + end + end + + context 'when the migration does not run on GitLab.com or development environment' do + it 'does not schedule the migration' do + expect('FixSecurityScanStatuses').not_to have_scheduled_batched_migration + end + end + + context 'when the migration runs on GitLab.com' do + let(:com?) { true } + + it_behaves_like 'scheduler for fixing the security scans status' + end + + context 'when the migration runs on dev environment' do + let(:dev_or_test_env?) { true } + + it_behaves_like 'scheduler for fixing the security scans status' + end + end + + describe '#down' do + it 'deletes all batched migration records' do + schema_migrate_down! + + expect(migration).not_to have_scheduled_batched_migration + end + end +end diff --git a/spec/migrations/schedule_populate_requirements_issue_id_spec.rb b/spec/migrations/schedule_populate_requirements_issue_id_spec.rb index 2702c000b60..000c42cc4fc 100644 --- a/spec/migrations/schedule_populate_requirements_issue_id_spec.rb +++ b/spec/migrations/schedule_populate_requirements_issue_id_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe SchedulePopulateRequirementsIssueId do +RSpec.describe SchedulePopulateRequirementsIssueId, feature_category: :requirements_management do include MigrationHelpers::WorkItemTypesHelper let(:issues) { table(:issues) } @@ -48,7 +48,7 @@ RSpec.describe SchedulePopulateRequirementsIssueId do # Create one requirement with issue_id present, to make # sure a job won't be scheduled for it - work_item_type_id = work_item_types_table.find_by(namespace_id: nil, name: 'Issue').id + work_item_type_id = table(:work_item_types).find_by(namespace_id: nil, name: 'Issue').id issue = issues.create!(state_id: 1, work_item_type_id: work_item_type_id) create_requirement(iid: 2, title: 'r 2', issue_id: issue.id) diff --git a/spec/migrations/schedule_purging_stale_security_scans_spec.rb b/spec/migrations/schedule_purging_stale_security_scans_spec.rb index b5a38634b58..b39baa145ff 100644 --- a/spec/migrations/schedule_purging_stale_security_scans_spec.rb +++ b/spec/migrations/schedule_purging_stale_security_scans_spec.rb @@ -3,17 +3,18 @@ require 'spec_helper' require_migration! -RSpec.describe SchedulePurgingStaleSecurityScans do - let_it_be(:namespaces) { table(:namespaces) } - let_it_be(:projects) { table(:projects) } - let_it_be(:pipelines) { table(:ci_pipelines) } - let_it_be(:builds) { table(:ci_builds) } - let_it_be(:security_scans) { table(:security_scans) } - - let_it_be(:namespace) { namespaces.create!(name: "foo", path: "bar") } - let_it_be(:project) { projects.create!(namespace_id: namespace.id, project_namespace_id: namespace.id) } - let_it_be(:pipeline) { pipelines.create!(project_id: project.id, ref: 'master', sha: 'adf43c3a', status: 'success') } - let_it_be(:ci_build) { builds.create!(commit_id: pipeline.id, retried: false, type: 'Ci::Build') } +RSpec.describe SchedulePurgingStaleSecurityScans, :suppress_gitlab_schemas_validate_connection, +feature_category: :vulnerability_management do + let!(:namespaces) { table(:namespaces) } + let!(:projects) { table(:projects) } + let!(:pipelines) { table(:ci_pipelines) } + let!(:builds) { table(:ci_builds) } + let!(:security_scans) { table(:security_scans) } + + let!(:namespace) { namespaces.create!(name: "foo", path: "bar") } + let!(:project) { projects.create!(namespace_id: namespace.id, project_namespace_id: namespace.id) } + let!(:pipeline) { pipelines.create!(project_id: project.id, ref: 'master', sha: 'adf43c3a', status: 'success') } + let!(:ci_build) { builds.create!(commit_id: pipeline.id, retried: false, type: 'Ci::Build') } let!(:security_scan_1) { security_scans.create!(build_id: ci_build.id, scan_type: 1, created_at: 92.days.ago) } let!(:security_scan_2) { security_scans.create!(build_id: ci_build.id, scan_type: 2, created_at: 91.days.ago) } diff --git a/spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb b/spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb index 9b62dd79e08..8903a32285e 100644 --- a/spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb +++ b/spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleRecalculateVulnerabilityFindingSignaturesForFindings, :migration do +RSpec.describe ScheduleRecalculateVulnerabilityFindingSignaturesForFindings, :migration, +feature_category: :vulnerability_management do before do allow(Gitlab).to receive(:ee?).and_return(ee?) stub_const("#{described_class.name}::BATCH_SIZE", 2) @@ -20,21 +21,21 @@ RSpec.describe ScheduleRecalculateVulnerabilityFindingSignaturesForFindings, :mi context 'when the Gitlab instance is EE' do let(:ee?) { true } - let_it_be(:namespaces) { table(:namespaces) } - let_it_be(:projects) { table(:projects) } - let_it_be(:findings) { table(:vulnerability_occurrences) } - let_it_be(:scanners) { table(:vulnerability_scanners) } - let_it_be(:identifiers) { table(:vulnerability_identifiers) } - let_it_be(:vulnerability_finding_signatures) { table(:vulnerability_finding_signatures) } + let!(:namespaces) { table(:namespaces) } + let!(:projects) { table(:projects) } + let!(:findings) { table(:vulnerability_occurrences) } + let!(:scanners) { table(:vulnerability_scanners) } + let!(:identifiers) { table(:vulnerability_identifiers) } + let!(:vulnerability_finding_signatures) { table(:vulnerability_finding_signatures) } - let_it_be(:namespace) { namespaces.create!(name: 'test', path: 'test') } - let_it_be(:project) { projects.create!(namespace_id: namespace.id, name: 'gitlab', path: 'gitlab') } + let!(:namespace) { namespaces.create!(name: 'test', path: 'test') } + let!(:project) { projects.create!(namespace_id: namespace.id, name: 'gitlab', path: 'gitlab') } - let_it_be(:scanner) do + let!(:scanner) do scanners.create!(project_id: project.id, external_id: 'trivy', name: 'Security Scanner') end - let_it_be(:identifier) do + let!(:identifier) do identifiers.create!(project_id: project.id, fingerprint: 'd432c2ad2953e8bd587a3a43b3ce309b5b0154c123', external_type: 'SECURITY_ID', @@ -42,14 +43,14 @@ RSpec.describe ScheduleRecalculateVulnerabilityFindingSignaturesForFindings, :mi name: 'SECURITY_IDENTIFIER 0') end - let_it_be(:finding1) { findings.create!(finding_params) } - let_it_be(:signature1) { vulnerability_finding_signatures.create!(finding_id: finding1.id, algorithm_type: 0, signature_sha: ::Digest::SHA1.digest(SecureRandom.hex(50))) } + let!(:finding1) { findings.create!(finding_params) } + let!(:signature1) { vulnerability_finding_signatures.create!(finding_id: finding1.id, algorithm_type: 0, signature_sha: ::Digest::SHA1.digest(SecureRandom.hex(50))) } - let_it_be(:finding2) { findings.create!(finding_params) } - let_it_be(:signature2) { vulnerability_finding_signatures.create!(finding_id: finding2.id, algorithm_type: 0, signature_sha: ::Digest::SHA1.digest(SecureRandom.hex(50))) } + let!(:finding2) { findings.create!(finding_params) } + let!(:signature2) { vulnerability_finding_signatures.create!(finding_id: finding2.id, algorithm_type: 0, signature_sha: ::Digest::SHA1.digest(SecureRandom.hex(50))) } - let_it_be(:finding3) { findings.create!(finding_params) } - let_it_be(:signature3) { vulnerability_finding_signatures.create!(finding_id: finding3.id, algorithm_type: 0, signature_sha: ::Digest::SHA1.digest(SecureRandom.hex(50))) } + let!(:finding3) { findings.create!(finding_params) } + let!(:signature3) { vulnerability_finding_signatures.create!(finding_id: finding3.id, algorithm_type: 0, signature_sha: ::Digest::SHA1.digest(SecureRandom.hex(50))) } # this migration is now a no-op it 'does not schedule the background jobs', :aggregate_failure do diff --git a/spec/migrations/schedule_security_setting_creation_spec.rb b/spec/migrations/schedule_security_setting_creation_spec.rb index e1b7b540d7f..edabb2a2299 100644 --- a/spec/migrations/schedule_security_setting_creation_spec.rb +++ b/spec/migrations/schedule_security_setting_creation_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleSecuritySettingCreation, :sidekiq do +RSpec.describe ScheduleSecuritySettingCreation, :sidekiq, feature_category: :projects do describe '#up' do let(:projects) { table(:projects) } let(:namespaces) { table(:namespaces) } diff --git a/spec/migrations/schedule_set_correct_vulnerability_state_spec.rb b/spec/migrations/schedule_set_correct_vulnerability_state_spec.rb index 08dccf1f37a..e888a1132c0 100644 --- a/spec/migrations/schedule_set_correct_vulnerability_state_spec.rb +++ b/spec/migrations/schedule_set_correct_vulnerability_state_spec.rb @@ -4,8 +4,8 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleSetCorrectVulnerabilityState do - let_it_be(:migration) { described_class::MIGRATION_NAME } +RSpec.describe ScheduleSetCorrectVulnerabilityState, feature_category: :vulnerability_management do + let!(:migration) { described_class::MIGRATION_NAME } describe '#up' do it 'schedules background jobs for each batch of vulnerabilities' do diff --git a/spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb b/spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb index a81059518e6..99ee9e58f4e 100644 --- a/spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb +++ b/spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb @@ -3,18 +3,18 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleUpdateTimelogsNullSpentAt do - let_it_be(:namespace) { table(:namespaces).create!(name: 'namespace', path: 'namespace') } - let_it_be(:project) { table(:projects).create!(namespace_id: namespace.id) } - let_it_be(:issue) { table(:issues).create!(project_id: project.id) } - let_it_be(:merge_request) { table(:merge_requests).create!(target_project_id: project.id, source_branch: 'master', target_branch: 'feature') } - let_it_be(:timelog1) { create_timelog!(merge_request_id: merge_request.id) } - let_it_be(:timelog2) { create_timelog!(merge_request_id: merge_request.id) } - let_it_be(:timelog3) { create_timelog!(merge_request_id: merge_request.id) } - let_it_be(:timelog4) { create_timelog!(issue_id: issue.id) } - let_it_be(:timelog5) { create_timelog!(issue_id: issue.id) } - - before_all do +RSpec.describe ScheduleUpdateTimelogsNullSpentAt, feature_category: :team_planning do + let!(:namespace) { table(:namespaces).create!(name: 'namespace', path: 'namespace') } + let!(:project) { table(:projects).create!(namespace_id: namespace.id) } + let!(:issue) { table(:issues).create!(project_id: project.id) } + let!(:merge_request) { table(:merge_requests).create!(target_project_id: project.id, source_branch: 'master', target_branch: 'feature') } + let!(:timelog1) { create_timelog!(merge_request_id: merge_request.id) } + let!(:timelog2) { create_timelog!(merge_request_id: merge_request.id) } + let!(:timelog3) { create_timelog!(merge_request_id: merge_request.id) } + let!(:timelog4) { create_timelog!(issue_id: issue.id) } + let!(:timelog5) { create_timelog!(issue_id: issue.id) } + + before do table(:timelogs).where.not(id: timelog3.id).update_all(spent_at: nil) end diff --git a/spec/migrations/schedule_update_timelogs_project_id_spec.rb b/spec/migrations/schedule_update_timelogs_project_id_spec.rb index b9130fd86be..5ce3f7dd36c 100644 --- a/spec/migrations/schedule_update_timelogs_project_id_spec.rb +++ b/spec/migrations/schedule_update_timelogs_project_id_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleUpdateTimelogsProjectId do +RSpec.describe ScheduleUpdateTimelogsProjectId, feature_category: :team_planning do let!(:namespace) { table(:namespaces).create!(name: 'namespace', path: 'namespace') } let!(:project) { table(:projects).create!(namespace_id: namespace.id) } let!(:issue) { table(:issues).create!(project_id: project.id) } 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 2fe739659f0..c9f22c02a0b 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 @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ScheduleUpdateUsersWhereTwoFactorAuthRequiredFromGroup do +RSpec.describe ScheduleUpdateUsersWhereTwoFactorAuthRequiredFromGroup, feature_category: :require_two_factor_authentication_from_group do let(:users) { table(:users) } let!(:user_1) { users.create!(require_two_factor_authentication_from_group: false, name: "user1", email: "user1@example.com", projects_limit: 1) } let!(:user_2) { users.create!(require_two_factor_authentication_from_group: true, name: "user2", email: "user2@example.com", projects_limit: 1) } diff --git a/spec/migrations/set_default_job_token_scope_true_spec.rb b/spec/migrations/set_default_job_token_scope_true_spec.rb index e7c77357318..25f4f07e15a 100644 --- a/spec/migrations/set_default_job_token_scope_true_spec.rb +++ b/spec/migrations/set_default_job_token_scope_true_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe SetDefaultJobTokenScopeTrue, schema: 20210819153805 do +RSpec.describe SetDefaultJobTokenScopeTrue, schema: 20210819153805, feature_category: :continuous_integration do let(:ci_cd_settings) { table(:project_ci_cd_settings) } let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } diff --git a/spec/migrations/set_email_confirmation_setting_before_removing_send_user_confirmation_email_column_spec.rb b/spec/migrations/set_email_confirmation_setting_before_removing_send_user_confirmation_email_column_spec.rb new file mode 100644 index 00000000000..4303713744e --- /dev/null +++ b/spec/migrations/set_email_confirmation_setting_before_removing_send_user_confirmation_email_column_spec.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe SetEmailConfirmationSettingBeforeRemovingSendUserConfirmationEmailColumn, feature_category: :users do + let(:migration) { described_class.new } + let(:application_settings_table) { table(:application_settings) } + + describe '#up' do + context "when 'send_user_confirmation_email' is set to 'true'" do + it "updates 'email_confirmation_setting' to '2' (hard)" do + application_settings_table.create!(send_user_confirmation_email: true, email_confirmation_setting: 0) + + migration.up + + expect(application_settings_table.last.email_confirmation_setting).to eq 2 + end + end + + context "when 'send_user_confirmation_email' is set to 'false'" do + it "updates 'email_confirmation_setting' to '0' (off)" do + application_settings_table.create!(send_user_confirmation_email: false, email_confirmation_setting: 0) + + migration.up + + expect(application_settings_table.last.email_confirmation_setting).to eq 0 + end + end + end + + describe '#down' do + it "updates 'email_confirmation_setting' to default value: '0' (off)" do + application_settings_table.create!(send_user_confirmation_email: true, email_confirmation_setting: 2) + + migration.down + + expect(application_settings_table.last.email_confirmation_setting).to eq 0 + end + end +end diff --git a/spec/migrations/set_email_confirmation_setting_from_send_user_confirmation_email_setting_spec.rb b/spec/migrations/set_email_confirmation_setting_from_send_user_confirmation_email_setting_spec.rb index 761c0ef2fdb..e08aa8679a1 100644 --- a/spec/migrations/set_email_confirmation_setting_from_send_user_confirmation_email_setting_spec.rb +++ b/spec/migrations/set_email_confirmation_setting_from_send_user_confirmation_email_setting_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe SetEmailConfirmationSettingFromSendUserConfirmationEmailSetting do +RSpec.describe SetEmailConfirmationSettingFromSendUserConfirmationEmailSetting, feature_category: :users do let(:migration) { described_class.new } let(:application_settings_table) { table(:application_settings) } diff --git a/spec/migrations/slice_merge_request_diff_commit_migrations_spec.rb b/spec/migrations/slice_merge_request_diff_commit_migrations_spec.rb index b03a5c41a11..fdbd8093fa5 100644 --- a/spec/migrations/slice_merge_request_diff_commit_migrations_spec.rb +++ b/spec/migrations/slice_merge_request_diff_commit_migrations_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe SliceMergeRequestDiffCommitMigrations, :migration do +RSpec.describe SliceMergeRequestDiffCommitMigrations, :migration, feature_category: :code_review do let(:migration) { described_class.new } describe '#up' do diff --git a/spec/migrations/start_backfill_ci_queuing_tables_spec.rb b/spec/migrations/start_backfill_ci_queuing_tables_spec.rb index 08fd244089f..c308a16d5b8 100644 --- a/spec/migrations/start_backfill_ci_queuing_tables_spec.rb +++ b/spec/migrations/start_backfill_ci_queuing_tables_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe StartBackfillCiQueuingTables, :suppress_gitlab_schemas_validate_connection do +RSpec.describe StartBackfillCiQueuingTables, :suppress_gitlab_schemas_validate_connection, +feature_category: :continuous_integration do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:builds) { table(:ci_builds) } diff --git a/spec/migrations/steal_merge_request_diff_commit_users_migration_spec.rb b/spec/migrations/steal_merge_request_diff_commit_users_migration_spec.rb index 4fb4ba61a34..d2cd7a6980d 100644 --- a/spec/migrations/steal_merge_request_diff_commit_users_migration_spec.rb +++ b/spec/migrations/steal_merge_request_diff_commit_users_migration_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe StealMergeRequestDiffCommitUsersMigration, :migration do +RSpec.describe StealMergeRequestDiffCommitUsersMigration, :migration, feature_category: :source_code_management do let(:migration) { described_class.new } describe '#up' do diff --git a/spec/migrations/sync_new_amount_used_for_ci_namespace_monthly_usages_spec.rb b/spec/migrations/sync_new_amount_used_for_ci_namespace_monthly_usages_spec.rb index 9a17f375f82..da8790f4450 100644 --- a/spec/migrations/sync_new_amount_used_for_ci_namespace_monthly_usages_spec.rb +++ b/spec/migrations/sync_new_amount_used_for_ci_namespace_monthly_usages_spec.rb @@ -4,7 +4,8 @@ require 'spec_helper' require_migration! -RSpec.describe SyncNewAmountUsedForCiNamespaceMonthlyUsages, migration: :gitlab_ci do +RSpec.describe SyncNewAmountUsedForCiNamespaceMonthlyUsages, migration: :gitlab_ci, + feature_category: :continuous_integration do let(:namespace_usages) { table(:ci_namespace_monthly_usages) } before do diff --git a/spec/migrations/sync_new_amount_used_for_ci_project_monthly_usages_spec.rb b/spec/migrations/sync_new_amount_used_for_ci_project_monthly_usages_spec.rb index 8d45f1107ea..1c9b2711687 100644 --- a/spec/migrations/sync_new_amount_used_for_ci_project_monthly_usages_spec.rb +++ b/spec/migrations/sync_new_amount_used_for_ci_project_monthly_usages_spec.rb @@ -4,7 +4,8 @@ require 'spec_helper' require_migration! -RSpec.describe SyncNewAmountUsedForCiProjectMonthlyUsages, migration: :gitlab_ci do +RSpec.describe SyncNewAmountUsedForCiProjectMonthlyUsages, migration: :gitlab_ci, + feature_category: :continuous_integration do let(:project_usages) { table(:ci_project_monthly_usages) } before do diff --git a/spec/migrations/toggle_vsa_aggregations_enable_spec.rb b/spec/migrations/toggle_vsa_aggregations_enable_spec.rb index a6850d493b7..5b3e513e9f6 100644 --- a/spec/migrations/toggle_vsa_aggregations_enable_spec.rb +++ b/spec/migrations/toggle_vsa_aggregations_enable_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe ToggleVsaAggregationsEnable, :migration do +RSpec.describe ToggleVsaAggregationsEnable, :migration, feature_category: :value_stream_management do let(:aggregations) { table(:analytics_cycle_analytics_aggregations) } let(:groups) { table(:namespaces) } diff --git a/spec/migrations/update_application_settings_container_registry_exp_pol_worker_capacity_default_spec.rb b/spec/migrations/update_application_settings_container_registry_exp_pol_worker_capacity_default_spec.rb index 842456089fe..d249fcecf66 100644 --- a/spec/migrations/update_application_settings_container_registry_exp_pol_worker_capacity_default_spec.rb +++ b/spec/migrations/update_application_settings_container_registry_exp_pol_worker_capacity_default_spec.rb @@ -3,7 +3,8 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault do +RSpec.describe UpdateApplicationSettingsContainerRegistryExpPolWorkerCapacityDefault, +feature_category: :container_registry do let(:settings) { table(:application_settings) } context 'with no rows in the application_settings table' do diff --git a/spec/migrations/update_application_settings_protected_paths_spec.rb b/spec/migrations/update_application_settings_protected_paths_spec.rb index 21879995f1b..d61eadf9f9c 100644 --- a/spec/migrations/update_application_settings_protected_paths_spec.rb +++ b/spec/migrations/update_application_settings_protected_paths_spec.rb @@ -3,12 +3,13 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateApplicationSettingsProtectedPaths, :aggregate_failures do +RSpec.describe UpdateApplicationSettingsProtectedPaths, :aggregate_failures, +feature_category: :authentication_and_authorization do subject(:migration) { described_class.new } - let_it_be(:application_settings) { table(:application_settings) } - let_it_be(:oauth_paths) { %w[/oauth/authorize /oauth/token] } - let_it_be(:custom_paths) { %w[/foo /bar] } + let!(:application_settings) { table(:application_settings) } + let!(:oauth_paths) { %w[/oauth/authorize /oauth/token] } + let!(:custom_paths) { %w[/foo /bar] } let(:default_paths) { application_settings.column_defaults.fetch('protected_paths') } diff --git a/spec/migrations/update_default_scan_method_of_dast_site_profile_spec.rb b/spec/migrations/update_default_scan_method_of_dast_site_profile_spec.rb index b73aa7016a1..ac7a4171063 100644 --- a/spec/migrations/update_default_scan_method_of_dast_site_profile_spec.rb +++ b/spec/migrations/update_default_scan_method_of_dast_site_profile_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateDefaultScanMethodOfDastSiteProfile do +RSpec.describe UpdateDefaultScanMethodOfDastSiteProfile, feature_category: :dynamic_application_security_testing do let(:namespaces) { table(:namespaces) } let(:projects) { table(:projects) } let(:dast_sites) { table(:dast_sites) } diff --git a/spec/migrations/update_integrations_trigger_type_new_on_insert_spec.rb b/spec/migrations/update_integrations_trigger_type_new_on_insert_spec.rb index 41cf35b40f4..efc051d9a68 100644 --- a/spec/migrations/update_integrations_trigger_type_new_on_insert_spec.rb +++ b/spec/migrations/update_integrations_trigger_type_new_on_insert_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateIntegrationsTriggerTypeNewOnInsert do +RSpec.describe UpdateIntegrationsTriggerTypeNewOnInsert, feature_category: :integrations do let(:migration) { described_class.new } let(:integrations) { table(:integrations) } diff --git a/spec/migrations/update_invalid_member_states_spec.rb b/spec/migrations/update_invalid_member_states_spec.rb index 802634230a9..6ae4b9f3c0f 100644 --- a/spec/migrations/update_invalid_member_states_spec.rb +++ b/spec/migrations/update_invalid_member_states_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateInvalidMemberStates do +RSpec.describe UpdateInvalidMemberStates, feature_category: :subgroups do let(:members) { table(:members) } let(:groups) { table(:namespaces) } let(:projects) { table(:projects) } diff --git a/spec/migrations/update_invalid_web_hooks_spec.rb b/spec/migrations/update_invalid_web_hooks_spec.rb index a65f82d7082..9e69d3637b8 100644 --- a/spec/migrations/update_invalid_web_hooks_spec.rb +++ b/spec/migrations/update_invalid_web_hooks_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' require_migration! -RSpec.describe UpdateInvalidWebHooks do +RSpec.describe UpdateInvalidWebHooks, feature_category: :integrations do let(:web_hooks) { table(:web_hooks) } let(:groups) { table(:namespaces) } let(:projects) { table(:projects) } |