Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-05-25 15:07:22 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-05-25 15:07:22 +0300
commitfc4faf47ac4e5f1ddc40640c42c32405c38c9455 (patch)
treef6d8642f577eda485efc0570300b5da28f0a7dfe /spec
parent91a7f1897e7cb14d60c2aaf3afa76ebdc879d939 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/autocomplete_controller_spec.rb2
-rw-r--r--spec/controllers/dashboard/projects_controller_spec.rb2
-rw-r--r--spec/controllers/explore/projects_controller_spec.rb2
-rw-r--r--spec/controllers/groups/children_controller_spec.rb2
-rw-r--r--spec/controllers/projects/blame_controller_spec.rb8
-rw-r--r--spec/controllers/projects_controller_spec.rb2
-rw-r--r--spec/factories/packages/packages.rb27
-rw-r--r--spec/features/admin/admin_groups_spec.rb2
-rw-r--r--spec/features/admin/admin_projects_spec.rb2
-rw-r--r--spec/features/admin/admin_sees_project_statistics_spec.rb2
-rw-r--r--spec/features/admin/admin_sees_projects_statistics_spec.rb2
-rw-r--r--spec/features/dashboard/archived_projects_spec.rb2
-rw-r--r--spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb2
-rw-r--r--spec/features/dashboard/group_spec.rb2
-rw-r--r--spec/features/dashboard/groups_list_spec.rb2
-rw-r--r--spec/features/dashboard/projects_spec.rb2
-rw-r--r--spec/features/dashboard/user_filters_projects_spec.rb2
-rw-r--r--spec/features/explore/groups_list_spec.rb2
-rw-r--r--spec/features/explore/groups_spec.rb2
-rw-r--r--spec/features/file_uploads/attachment_spec.rb2
-rw-r--r--spec/features/file_uploads/group_import_spec.rb2
-rw-r--r--spec/features/file_uploads/project_import_spec.rb2
-rw-r--r--spec/features/groups/activity_spec.rb2
-rw-r--r--spec/features/groups/board_sidebar_spec.rb2
-rw-r--r--spec/features/groups/empty_states_spec.rb2
-rw-r--r--spec/features/groups/group_page_with_external_authorization_service_spec.rb2
-rw-r--r--spec/features/groups/group_settings_spec.rb2
-rw-r--r--spec/features/groups/issues_spec.rb2
-rw-r--r--spec/features/groups/members/filter_members_spec.rb2
-rw-r--r--spec/features/groups/members/leave_group_spec.rb2
-rw-r--r--spec/features/groups/members/list_members_spec.rb2
-rw-r--r--spec/features/groups/members/manage_groups_spec.rb2
-rw-r--r--spec/features/groups/members/manage_members_spec.rb2
-rw-r--r--spec/features/groups/members/master_adds_member_with_expiration_date_spec.rb2
-rw-r--r--spec/features/groups/members/master_manages_access_requests_spec.rb2
-rw-r--r--spec/features/groups/members/request_access_spec.rb2
-rw-r--r--spec/features/groups/members/search_members_spec.rb2
-rw-r--r--spec/features/groups/members/sort_members_spec.rb2
-rw-r--r--spec/features/groups/members/tabs_spec.rb2
-rw-r--r--spec/features/groups/milestone_spec.rb2
-rw-r--r--spec/features/groups/new_group_page_spec.rb2
-rw-r--r--spec/features/groups/settings/group_badges_spec.rb2
-rw-r--r--spec/features/groups/settings/manage_applications_spec.rb2
-rw-r--r--spec/features/groups/settings/user_searches_in_settings_spec.rb2
-rw-r--r--spec/features/groups/share_lock_spec.rb2
-rw-r--r--spec/features/groups/show_spec.rb2
-rw-r--r--spec/features/groups/user_browse_projects_group_page_spec.rb2
-rw-r--r--spec/features/groups/user_sees_package_sidebar_spec.rb2
-rw-r--r--spec/features/groups/user_sees_users_dropdowns_in_issuables_list_spec.rb2
-rw-r--r--spec/features/groups_spec.rb2
-rw-r--r--spec/features/ics/group_issues_spec.rb2
-rw-r--r--spec/features/ics/project_issues_spec.rb2
-rw-r--r--spec/features/projects/active_tabs_spec.rb2
-rw-r--r--spec/features/projects/activity/rss_spec.rb2
-rw-r--r--spec/features/projects/activity/user_sees_activity_spec.rb2
-rw-r--r--spec/features/projects/activity/user_sees_private_activity_spec.rb2
-rw-r--r--spec/features/projects/blobs/blame_spec.rb2
-rw-r--r--spec/features/projects/blobs/blob_line_permalink_updater_spec.rb2
-rw-r--r--spec/features/projects/blobs/blob_show_spec.rb2
-rw-r--r--spec/features/projects/blobs/edit_spec.rb2
-rw-r--r--spec/features/projects/blobs/shortcuts_blob_spec.rb2
-rw-r--r--spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb2
-rw-r--r--spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb2
-rw-r--r--spec/features/projects/branches/download_buttons_spec.rb2
-rw-r--r--spec/features/projects/branches/new_branch_ref_dropdown_spec.rb2
-rw-r--r--spec/features/projects/branches/user_creates_branch_spec.rb2
-rw-r--r--spec/features/projects/branches/user_deletes_branch_spec.rb2
-rw-r--r--spec/features/projects/branches/user_views_branches_spec.rb2
-rw-r--r--spec/features/projects/branches_spec.rb2
-rw-r--r--spec/features/projects/classification_label_on_project_pages_spec.rb2
-rw-r--r--spec/features/projects/cluster_agents_spec.rb2
-rw-r--r--spec/features/projects/clusters_spec.rb2
-rw-r--r--spec/features/projects/compare_spec.rb2
-rw-r--r--spec/features/projects/container_registry_spec.rb2
-rw-r--r--spec/features/projects/deploy_keys_spec.rb2
-rw-r--r--spec/features/projects/environments/environment_spec.rb2
-rw-r--r--spec/features/projects/environments/environments_spec.rb2
-rw-r--r--spec/features/projects/feature_flag_user_lists/user_deletes_feature_flag_user_list_spec.rb2
-rw-r--r--spec/features/projects/feature_flag_user_lists/user_edits_feature_flag_user_list_spec.rb2
-rw-r--r--spec/features/projects/feature_flag_user_lists/user_sees_feature_flag_user_list_details_spec.rb2
-rw-r--r--spec/features/projects/features_visibility_spec.rb2
-rw-r--r--spec/features/projects/files/dockerfile_dropdown_spec.rb2
-rw-r--r--spec/features/projects/files/download_buttons_spec.rb2
-rw-r--r--spec/features/projects/files/edit_file_soft_wrap_spec.rb2
-rw-r--r--spec/features/projects/files/editing_a_file_spec.rb2
-rw-r--r--spec/features/projects/files/files_sort_submodules_with_folders_spec.rb2
-rw-r--r--spec/features/projects/files/find_file_keyboard_spec.rb2
-rw-r--r--spec/features/projects/files/gitignore_dropdown_spec.rb2
-rw-r--r--spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb2
-rw-r--r--spec/features/projects/files/project_owner_creates_license_file_spec.rb2
-rw-r--r--spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb2
-rw-r--r--spec/features/projects/files/template_selector_menu_spec.rb2
-rw-r--r--spec/features/projects/files/undo_template_spec.rb2
-rw-r--r--spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb2
-rw-r--r--spec/features/projects/files/user_browses_files_spec.rb2
-rw-r--r--spec/features/projects/files/user_browses_lfs_files_spec.rb2
-rw-r--r--spec/features/projects/files/user_creates_directory_spec.rb2
-rw-r--r--spec/features/projects/files/user_creates_files_spec.rb2
-rw-r--r--spec/features/projects/files/user_deletes_files_spec.rb2
-rw-r--r--spec/features/projects/files/user_edits_files_spec.rb2
-rw-r--r--spec/features/projects/files/user_find_file_spec.rb2
-rw-r--r--spec/features/projects/files/user_reads_pipeline_status_spec.rb2
-rw-r--r--spec/features/projects/files/user_replaces_files_spec.rb2
-rw-r--r--spec/features/projects/files/user_searches_for_files_spec.rb2
-rw-r--r--spec/features/projects/files/user_uploads_files_spec.rb2
-rw-r--r--spec/features/projects/fork_spec.rb2
-rw-r--r--spec/features/projects/forks/fork_list_spec.rb2
-rw-r--r--spec/features/projects/gfm_autocomplete_load_spec.rb2
-rw-r--r--spec/features/projects/graph_spec.rb2
-rw-r--r--spec/features/projects/hook_logs/user_reads_log_spec.rb2
-rw-r--r--spec/features/projects/infrastructure_registry_spec.rb2
-rw-r--r--spec/features/projects/issuable_templates_spec.rb2
-rw-r--r--spec/features/projects/jobs/permissions_spec.rb2
-rw-r--r--spec/features/projects/jobs/user_browses_job_spec.rb2
-rw-r--r--spec/features/projects/jobs/user_browses_jobs_spec.rb2
-rw-r--r--spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb2
-rw-r--r--spec/features/projects/jobs_spec.rb2
-rw-r--r--spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb2
-rw-r--r--spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb2
-rw-r--r--spec/features/projects/members/group_members_spec.rb2
-rw-r--r--spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb2
-rw-r--r--spec/features/projects/members/groups_with_access_list_spec.rb2
-rw-r--r--spec/features/projects/members/manage_groups_spec.rb2
-rw-r--r--spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb2
-rw-r--r--spec/features/projects/members/master_manages_access_requests_spec.rb2
-rw-r--r--spec/features/projects/members/member_cannot_request_access_to_his_project_spec.rb2
-rw-r--r--spec/features/projects/members/member_leaves_project_spec.rb2
-rw-r--r--spec/features/projects/members/owner_cannot_leave_project_spec.rb2
-rw-r--r--spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb2
-rw-r--r--spec/features/projects/members/sorting_spec.rb2
-rw-r--r--spec/features/projects/members/tabs_spec.rb2
-rw-r--r--spec/features/projects/members/user_requests_access_spec.rb2
-rw-r--r--spec/features/projects/merge_request_button_spec.rb2
-rw-r--r--spec/features/projects/navbar_spec.rb2
-rw-r--r--spec/features/projects/network_graph_spec.rb2
-rw-r--r--spec/features/projects/new_project_from_template_spec.rb2
-rw-r--r--spec/features/projects/new_project_spec.rb2
-rw-r--r--spec/features/projects/package_files_spec.rb2
-rw-r--r--spec/features/projects/packages_spec.rb2
-rw-r--r--spec/features/projects/pipeline_schedules_spec.rb2
-rw-r--r--spec/features/projects/pipelines/pipeline_spec.rb2
-rw-r--r--spec/features/projects/pipelines/pipelines_spec.rb2
-rw-r--r--spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb2
-rw-r--r--spec/features/projects/remote_mirror_spec.rb2
-rw-r--r--spec/features/projects/settings/branch_names_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/branch_rules_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/external_authorization_service_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/forked_project_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/lfs_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/merge_requests_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/monitor_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/packages_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/pipelines_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/project_badges_spec.rb2
-rw-r--r--spec/features/projects/settings/project_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb2
-rw-r--r--spec/features/projects/settings/registry_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/repository_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/secure_files_spec.rb2
-rw-r--r--spec/features/projects/settings/service_desk_setting_spec.rb2
-rw-r--r--spec/features/projects/settings/user_archives_project_spec.rb2
-rw-r--r--spec/features/projects/settings/user_changes_avatar_spec.rb2
-rw-r--r--spec/features/projects/settings/user_changes_default_branch_spec.rb2
-rw-r--r--spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb2
-rw-r--r--spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/user_manages_project_members_spec.rb2
-rw-r--r--spec/features/projects/settings/user_renames_a_project_spec.rb2
-rw-r--r--spec/features/projects/settings/user_searches_in_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/user_sees_revoke_deploy_token_modal_spec.rb2
-rw-r--r--spec/features/projects/settings/user_tags_project_spec.rb2
-rw-r--r--spec/features/projects/settings/user_transfers_a_project_spec.rb2
-rw-r--r--spec/features/projects/settings/visibility_settings_spec.rb2
-rw-r--r--spec/features/projects/settings/webhooks_settings_spec.rb2
-rw-r--r--spec/features/projects/show/clone_button_spec.rb2
-rw-r--r--spec/features/projects/show/download_buttons_spec.rb2
-rw-r--r--spec/features/projects/show/no_password_spec.rb2
-rw-r--r--spec/features/projects/show/redirects_spec.rb2
-rw-r--r--spec/features/projects/show/rss_spec.rb2
-rw-r--r--spec/features/projects/show/schema_markup_spec.rb2
-rw-r--r--spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb2
-rw-r--r--spec/features/projects/show/user_interacts_with_stars_spec.rb2
-rw-r--r--spec/features/projects/show/user_manages_notifications_spec.rb2
-rw-r--r--spec/features/projects/show/user_sees_collaboration_links_spec.rb2
-rw-r--r--spec/features/projects/show/user_sees_deletion_failure_message_spec.rb2
-rw-r--r--spec/features/projects/show/user_sees_git_instructions_spec.rb2
-rw-r--r--spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb2
-rw-r--r--spec/features/projects/show/user_sees_readme_spec.rb2
-rw-r--r--spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb2
-rw-r--r--spec/features/projects/show/user_uploads_files_spec.rb2
-rw-r--r--spec/features/projects/sourcegraph_csp_spec.rb2
-rw-r--r--spec/features/projects/sub_group_issuables_spec.rb2
-rw-r--r--spec/features/projects/terraform_spec.rb2
-rw-r--r--spec/features/projects/tree/rss_spec.rb2
-rw-r--r--spec/features/projects/user_changes_project_visibility_spec.rb2
-rw-r--r--spec/features/projects/user_creates_project_spec.rb2
-rw-r--r--spec/features/projects/user_sees_sidebar_spec.rb2
-rw-r--r--spec/features/projects/user_sees_user_popover_spec.rb2
-rw-r--r--spec/features/projects/user_sorts_projects_spec.rb2
-rw-r--r--spec/features/projects/user_uses_shortcuts_spec.rb2
-rw-r--r--spec/features/projects/user_views_empty_project_spec.rb2
-rw-r--r--spec/features/projects/view_on_env_spec.rb2
-rw-r--r--spec/features/projects_spec.rb2
-rw-r--r--spec/features/topic_show_spec.rb2
-rw-r--r--spec/features/users/user_browses_projects_on_user_page_spec.rb2
-rw-r--r--spec/finders/group_members_finder_spec.rb2
-rw-r--r--spec/finders/groups/accepting_project_creations_finder_spec.rb2
-rw-r--r--spec/finders/groups/accepting_project_shares_finder_spec.rb2
-rw-r--r--spec/finders/groups/user_groups_finder_spec.rb2
-rw-r--r--spec/finders/members_finder_spec.rb2
-rw-r--r--spec/finders/releases/group_releases_finder_spec.rb2
-rw-r--r--spec/finders/releases_finder_spec.rb24
-rw-r--r--spec/frontend/commit/components/commit_refs_spec.js23
-rw-r--r--spec/frontend/commit/components/refs_list_spec.js15
-rw-r--r--spec/frontend/commit/mock_data.js1
-rw-r--r--spec/frontend/content_editor/components/content_editor_spec.js12
-rw-r--r--spec/frontend/content_editor/components/formatting_toolbar_spec.js11
-rw-r--r--spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js14
-rw-r--r--spec/graphql/mutations/members/bulk_update_base_spec.rb2
-rw-r--r--spec/graphql/resolvers/groups_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/namespace_projects_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/nested_groups_resolver_spec.rb2
-rw-r--r--spec/graphql/types/member_access_level_enum_spec.rb2
-rw-r--r--spec/helpers/namespaces_helper_spec.rb2
-rw-r--r--spec/lib/api/entities/plan_limit_spec.rb3
-rw-r--r--spec/lib/api/helpers/members_helpers_spec.rb2
-rw-r--r--spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb2
-rw-r--r--spec/lib/gitlab/background_migration/nullify_creator_id_column_of_orphaned_projects_spec.rb4
-rw-r--r--spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb2
-rw-r--r--spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb2
-rw-r--r--spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb2
-rw-r--r--spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb2
-rw-r--r--spec/lib/gitlab/metrics/rails_slis_spec.rb2
-rw-r--r--spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb8
-rw-r--r--spec/lib/gitlab/sidekiq_middleware_spec.rb2
-rw-r--r--spec/migrations/20211203091642_add_index_to_projects_on_marked_for_deletion_at_spec.rb2
-rw-r--r--spec/migrations/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner_spec.rb2
-rw-r--r--spec/migrations/20220223124428_schedule_merge_topics_with_same_name_spec.rb2
-rw-r--r--spec/migrations/20220324165436_schedule_backfill_project_settings_spec.rb2
-rw-r--r--spec/migrations/20220331133802_schedule_backfill_topics_title_spec.rb2
-rw-r--r--spec/migrations/20220416054011_schedule_backfill_project_member_namespace_id_spec.rb2
-rw-r--r--spec/migrations/20220506154054_create_sync_namespace_details_trigger_spec.rb2
-rw-r--r--spec/migrations/20220524184149_create_sync_project_namespace_details_trigger_spec.rb2
-rw-r--r--spec/migrations/20220627090231_schedule_disable_legacy_open_source_license_for_inactive_public_projects_spec.rb2
-rw-r--r--spec/migrations/20220627152642_queue_update_delayed_project_removal_to_null_for_user_namespace_spec.rb2
-rw-r--r--spec/migrations/20220628012902_finalise_project_namespace_members_spec.rb2
-rw-r--r--spec/migrations/20220721031446_schedule_disable_legacy_open_source_license_for_one_member_no_repo_projects_spec.rb2
-rw-r--r--spec/migrations/20220722084543_schedule_disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb2
-rw-r--r--spec/migrations/20220722110026_reschedule_set_legacy_open_source_license_available_for_non_public_projects_spec.rb2
-rw-r--r--spec/migrations/20220801155858_schedule_disable_legacy_open_source_licence_for_recent_public_projects_spec.rb2
-rw-r--r--spec/migrations/20220906074449_schedule_disable_legacy_open_source_license_for_projects_less_than_one_mb_spec.rb2
-rw-r--r--spec/migrations/20220921093355_schedule_backfill_namespace_details_spec.rb2
-rw-r--r--spec/migrations/20221002234454_finalize_group_member_namespace_id_migration_spec.rb2
-rw-r--r--spec/migrations/20221004094814_schedule_destroy_invalid_members_spec.rb2
-rw-r--r--spec/migrations/20221018062308_schedule_backfill_project_namespace_details_spec.rb2
-rw-r--r--spec/migrations/20221018095434_schedule_disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb2
-rw-r--r--spec/migrations/20230130073109_nullify_creator_id_of_orphaned_projects_spec.rb2
-rw-r--r--spec/migrations/20230209222452_schedule_remove_project_group_link_with_missing_groups_spec.rb2
-rw-r--r--spec/migrations/20230223065753_finalize_nullify_creator_id_of_orphaned_projects_spec.rb2
-rw-r--r--spec/migrations/backfill_all_project_namespaces_spec.rb2
-rw-r--r--spec/migrations/backfill_member_namespace_id_for_group_members_spec.rb2
-rw-r--r--spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb2
-rw-r--r--spec/migrations/backfill_namespace_id_for_project_routes_spec.rb2
-rw-r--r--spec/migrations/backfill_project_namespaces_for_group_spec.rb2
-rw-r--r--spec/migrations/cleanup_orphaned_routes_spec.rb2
-rw-r--r--spec/migrations/finalize_invalid_member_cleanup_spec.rb2
-rw-r--r--spec/migrations/finalize_orphaned_routes_cleanup_spec.rb2
-rw-r--r--spec/migrations/finalize_project_namespaces_backfill_spec.rb2
-rw-r--r--spec/migrations/finalize_routes_backfilling_for_projects_spec.rb2
-rw-r--r--spec/migrations/fix_and_backfill_project_namespaces_for_projects_with_duplicate_name_spec.rb2
-rw-r--r--spec/migrations/insert_daily_invites_trial_plan_limits_spec.rb2
-rw-r--r--spec/migrations/orphaned_invited_members_cleanup_spec.rb2
-rw-r--r--spec/migrations/update_invalid_member_states_spec.rb2
-rw-r--r--spec/models/group_spec.rb2
-rw-r--r--spec/models/member_spec.rb2
-rw-r--r--spec/models/namespace/traversal_hierarchy_spec.rb2
-rw-r--r--spec/models/namespace_setting_spec.rb2
-rw-r--r--spec/models/namespace_spec.rb2
-rw-r--r--spec/models/packages/package_file_spec.rb2
-rw-r--r--spec/models/packages/package_spec.rb17
-rw-r--r--spec/models/plan_limits_spec.rb1
-rw-r--r--spec/models/preloaders/users_max_access_level_by_project_preloader_spec.rb2
-rw-r--r--spec/models/project_feature_spec.rb2
-rw-r--r--spec/models/project_setting_spec.rb2
-rw-r--r--spec/models/project_spec.rb2
-rw-r--r--spec/models/project_team_spec.rb2
-rw-r--r--spec/policies/concerns/archived_abilities_spec.rb2
-rw-r--r--spec/policies/namespaces/user_namespace_policy_spec.rb2
-rw-r--r--spec/presenters/member_presenter_spec.rb2
-rw-r--r--spec/requests/admin/projects_controller_spec.rb2
-rw-r--r--spec/requests/api/admin/plan_limits_spec.rb12
-rw-r--r--spec/requests/api/badges_spec.rb2
-rw-r--r--spec/requests/api/debian_project_packages_spec.rb1
-rw-r--r--spec/requests/api/graphql/current_user/groups_query_spec.rb2
-rw-r--r--spec/requests/api/graphql/group/group_members_spec.rb2
-rw-r--r--spec/requests/api/graphql/group_query_spec.rb2
-rw-r--r--spec/requests/api/graphql/groups_query_spec.rb2
-rw-r--r--spec/requests/api/graphql/metadata_query_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/groups/update_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb2
-rw-r--r--spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb2
-rw-r--r--spec/requests/api/graphql/namespace/projects_spec.rb2
-rw-r--r--spec/requests/api/graphql/namespace_query_spec.rb2
-rw-r--r--spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb2
-rw-r--r--spec/requests/api/graphql/project/project_members_spec.rb2
-rw-r--r--spec/requests/api/graphql/project_query_spec.rb2
-rw-r--r--spec/requests/api/graphql/user/group_member_query_spec.rb2
-rw-r--r--spec/requests/api/graphql/user/project_member_query_spec.rb2
-rw-r--r--spec/requests/api/graphql/user/starred_projects_query_spec.rb2
-rw-r--r--spec/requests/api/group_avatar_spec.rb2
-rw-r--r--spec/requests/api/groups_spec.rb2
-rw-r--r--spec/requests/api/members_spec.rb2
-rw-r--r--spec/requests/api/namespaces_spec.rb2
-rw-r--r--spec/requests/api/projects_spec.rb2
-rw-r--r--spec/requests/api/releases_spec.rb32
-rw-r--r--spec/requests/api/topics_spec.rb2
-rw-r--r--spec/requests/concerns/planning_hierarchy_spec.rb2
-rw-r--r--spec/requests/dashboard/projects_controller_spec.rb2
-rw-r--r--spec/requests/groups/autocomplete_sources_spec.rb2
-rw-r--r--spec/requests/groups_controller_spec.rb2
-rw-r--r--spec/requests/projects/redirect_controller_spec.rb2
-rw-r--r--spec/requests/projects_controller_spec.rb2
-rw-r--r--spec/services/admin/plan_limits/update_service_spec.rb15
-rw-r--r--spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb2
-rw-r--r--spec/services/authorized_project_update/periodic_recalculate_service_spec.rb2
-rw-r--r--spec/services/authorized_project_update/project_access_changed_service_spec.rb2
-rw-r--r--spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb2
-rw-r--r--spec/services/authorized_project_update/project_recalculate_service_spec.rb2
-rw-r--r--spec/services/groups/autocomplete_service_spec.rb2
-rw-r--r--spec/services/groups/create_service_spec.rb2
-rw-r--r--spec/services/groups/destroy_service_spec.rb2
-rw-r--r--spec/services/groups/group_links/create_service_spec.rb2
-rw-r--r--spec/services/groups/group_links/destroy_service_spec.rb2
-rw-r--r--spec/services/groups/group_links/update_service_spec.rb2
-rw-r--r--spec/services/groups/merge_requests_count_service_spec.rb2
-rw-r--r--spec/services/groups/nested_create_service_spec.rb2
-rw-r--r--spec/services/groups/open_issues_count_service_spec.rb2
-rw-r--r--spec/services/groups/participants_service_spec.rb2
-rw-r--r--spec/services/groups/transfer_service_spec.rb2
-rw-r--r--spec/services/groups/update_service_spec.rb2
-rw-r--r--spec/services/groups/update_shared_runners_service_spec.rb2
-rw-r--r--spec/services/groups/update_statistics_service_spec.rb2
-rw-r--r--spec/services/jira/requests/projects/list_service_spec.rb2
-rw-r--r--spec/services/markup/rendering_service_spec.rb2
-rw-r--r--spec/services/members/approve_access_request_service_spec.rb2
-rw-r--r--spec/services/members/base_service_spec.rb2
-rw-r--r--spec/services/members/create_service_spec.rb2
-rw-r--r--spec/services/members/creator_service_spec.rb2
-rw-r--r--spec/services/members/destroy_service_spec.rb2
-rw-r--r--spec/services/members/groups/creator_service_spec.rb2
-rw-r--r--spec/services/members/import_project_team_service_spec.rb2
-rw-r--r--spec/services/members/invitation_reminder_email_service_spec.rb2
-rw-r--r--spec/services/members/invite_member_builder_spec.rb2
-rw-r--r--spec/services/members/invite_service_spec.rb2
-rw-r--r--spec/services/members/projects/creator_service_spec.rb2
-rw-r--r--spec/services/members/request_access_service_spec.rb2
-rw-r--r--spec/services/members/standard_member_builder_spec.rb2
-rw-r--r--spec/services/members/unassign_issuables_service_spec.rb2
-rw-r--r--spec/services/members/update_service_spec.rb2
-rw-r--r--spec/services/namespace_settings/update_service_spec.rb2
-rw-r--r--spec/services/namespaces/statistics_refresher_service_spec.rb2
-rw-r--r--spec/services/packages/debian/create_package_file_service_spec.rb5
-rw-r--r--spec/services/packages/debian/extract_changes_metadata_service_spec.rb6
-rw-r--r--spec/services/packages/debian/process_changes_service_spec.rb2
-rw-r--r--spec/services/packages/debian/process_package_file_service_spec.rb489
-rw-r--r--spec/services/projects/after_rename_service_spec.rb2
-rw-r--r--spec/services/projects/alerting/notify_service_spec.rb2
-rw-r--r--spec/services/projects/all_issues_count_service_spec.rb2
-rw-r--r--spec/services/projects/all_merge_requests_count_service_spec.rb2
-rw-r--r--spec/services/projects/apple_target_platform_detector_service_spec.rb2
-rw-r--r--spec/services/projects/autocomplete_service_spec.rb2
-rw-r--r--spec/services/projects/batch_open_issues_count_service_spec.rb2
-rw-r--r--spec/services/projects/count_service_spec.rb2
-rw-r--r--spec/services/projects/create_from_template_service_spec.rb2
-rw-r--r--spec/services/projects/create_service_spec.rb2
-rw-r--r--spec/services/projects/destroy_service_spec.rb2
-rw-r--r--spec/services/projects/detect_repository_languages_service_spec.rb2
-rw-r--r--spec/services/projects/download_service_spec.rb2
-rw-r--r--spec/services/projects/fetch_statistics_increment_service_spec.rb2
-rw-r--r--spec/services/projects/group_links/create_service_spec.rb2
-rw-r--r--spec/services/projects/group_links/destroy_service_spec.rb2
-rw-r--r--spec/services/projects/group_links/update_service_spec.rb2
-rw-r--r--spec/services/projects/hashed_storage/base_attachment_service_spec.rb2
-rw-r--r--spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb2
-rw-r--r--spec/services/projects/hashed_storage/migrate_repository_service_spec.rb2
-rw-r--r--spec/services/projects/hashed_storage/migration_service_spec.rb2
-rw-r--r--spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb2
-rw-r--r--spec/services/projects/hashed_storage/rollback_repository_service_spec.rb2
-rw-r--r--spec/services/projects/hashed_storage/rollback_service_spec.rb2
-rw-r--r--spec/services/projects/move_access_service_spec.rb2
-rw-r--r--spec/services/projects/move_notification_settings_service_spec.rb2
-rw-r--r--spec/services/projects/move_project_authorizations_service_spec.rb2
-rw-r--r--spec/services/projects/move_project_group_links_service_spec.rb2
-rw-r--r--spec/services/projects/move_project_members_service_spec.rb2
-rw-r--r--spec/services/projects/move_users_star_projects_service_spec.rb2
-rw-r--r--spec/services/projects/operations/update_service_spec.rb2
-rw-r--r--spec/services/projects/overwrite_project_service_spec.rb2
-rw-r--r--spec/services/projects/participants_service_spec.rb2
-rw-r--r--spec/services/projects/readme_renderer_service_spec.rb2
-rw-r--r--spec/services/projects/record_target_platforms_service_spec.rb2
-rw-r--r--spec/services/projects/transfer_service_spec.rb2
-rw-r--r--spec/services/projects/update_service_spec.rb2
-rw-r--r--spec/services/projects/update_statistics_service_spec.rb2
-rw-r--r--spec/services/reset_project_cache_service_spec.rb2
-rw-r--r--spec/services/system_notes/alert_management_service_spec.rb2
-rw-r--r--spec/services/system_notes/base_service_spec.rb2
-rw-r--r--spec/support/shared_contexts/requests/api/debian_repository_shared_context.rb4
-rw-r--r--spec/support/shared_examples/requests/api/debian_packages_shared_examples.rb12
-rw-r--r--spec/tasks/gitlab/seed/group_seed_rake_spec.rb2
-rw-r--r--spec/views/admin/application_settings/network.html.haml_spec.rb2
-rw-r--r--spec/views/admin/groups/_form.html.haml_spec.rb2
-rw-r--r--spec/views/admin/projects/_form.html.haml_spec.rb2
-rw-r--r--spec/views/explore/projects/page_out_of_bounds.html.haml_spec.rb2
-rw-r--r--spec/views/groups/edit.html.haml_spec.rb2
-rw-r--r--spec/views/groups/group_members/index.html.haml_spec.rb2
-rw-r--r--spec/views/groups/settings/_general.html.haml_spec.rb2
-rw-r--r--spec/views/groups/show.html.haml_spec.rb2
-rw-r--r--spec/views/layouts/group.html.haml_spec.rb2
-rw-r--r--spec/views/layouts/project.html.haml_spec.rb2
-rw-r--r--spec/views/projects/_files.html.haml_spec.rb2
-rw-r--r--spec/views/projects/project_members/index.html.haml_spec.rb2
-rw-r--r--spec/workers/ci/pending_builds/update_group_worker_spec.rb2
-rw-r--r--spec/workers/ci/pending_builds/update_project_worker_spec.rb2
-rw-r--r--spec/workers/disallow_two_factor_for_group_worker_spec.rb2
-rw-r--r--spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb2
-rw-r--r--spec/workers/group_destroy_worker_spec.rb2
-rw-r--r--spec/workers/member_invitation_reminder_emails_worker_spec.rb2
-rw-r--r--spec/workers/packages/debian/process_changes_worker_spec.rb2
-rw-r--r--spec/workers/packages/debian/process_package_file_worker_spec.rb200
-rw-r--r--spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb2
-rw-r--r--spec/workers/projects/record_target_platforms_worker_spec.rb2
430 files changed, 1045 insertions, 711 deletions
diff --git a/spec/controllers/autocomplete_controller_spec.rb b/spec/controllers/autocomplete_controller_spec.rb
index 97729d181b1..4f3045eaa48 100644
--- a/spec/controllers/autocomplete_controller_spec.rb
+++ b/spec/controllers/autocomplete_controller_spec.rb
@@ -248,7 +248,7 @@ RSpec.describe AutocompleteController do
end
end
- context 'GET projects', feature_category: :projects do
+ context 'GET projects', feature_category: :groups_and_projects do
let(:authorized_project) { create(:project) }
let(:authorized_search_project) { create(:project, name: 'rugged') }
diff --git a/spec/controllers/dashboard/projects_controller_spec.rb b/spec/controllers/dashboard/projects_controller_spec.rb
index 893546def5a..7c5fe0cccf5 100644
--- a/spec/controllers/dashboard/projects_controller_spec.rb
+++ b/spec/controllers/dashboard/projects_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Dashboard::ProjectsController, :aggregate_failures, feature_category: :projects do
+RSpec.describe Dashboard::ProjectsController, :aggregate_failures, feature_category: :groups_and_projects do
include ExternalAuthorizationServiceHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/controllers/explore/projects_controller_spec.rb b/spec/controllers/explore/projects_controller_spec.rb
index c2bdb0171e7..e73e115b77d 100644
--- a/spec/controllers/explore/projects_controller_spec.rb
+++ b/spec/controllers/explore/projects_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Explore::ProjectsController, feature_category: :projects do
+RSpec.describe Explore::ProjectsController, feature_category: :groups_and_projects do
shared_examples 'explore projects' do
let(:expected_default_sort) { 'latest_activity_desc' }
diff --git a/spec/controllers/groups/children_controller_spec.rb b/spec/controllers/groups/children_controller_spec.rb
index 2e37ed95c1c..ee8b2dce298 100644
--- a/spec/controllers/groups/children_controller_spec.rb
+++ b/spec/controllers/groups/children_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::ChildrenController, feature_category: :subgroups do
+RSpec.describe Groups::ChildrenController, feature_category: :groups_and_projects do
include ExternalAuthorizationServiceHelpers
let(:group) { create(:group, :public) }
diff --git a/spec/controllers/projects/blame_controller_spec.rb b/spec/controllers/projects/blame_controller_spec.rb
index 50556bdb652..38872b50e7d 100644
--- a/spec/controllers/projects/blame_controller_spec.rb
+++ b/spec/controllers/projects/blame_controller_spec.rb
@@ -28,6 +28,14 @@ RSpec.describe Projects::BlameController, feature_category: :source_code_managem
end
end
+ context 'valid branch, binary file' do
+ let(:id) { 'master/files/images/logo-black.png' }
+
+ it 'redirects' do
+ expect(subject).to redirect_to("/#{project.full_path}/-/blob/master/files/images/logo-black.png")
+ end
+ end
+
context 'invalid branch, valid file' do
let(:id) { 'invalid-branch/files/ruby/missing_file.rb' }
diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb
index d1c4cbbe591..8544ea8524d 100644
--- a/spec/controllers/projects_controller_spec.rb
+++ b/spec/controllers/projects_controller_spec.rb
@@ -2,7 +2,7 @@
require('spec_helper')
-RSpec.describe ProjectsController, feature_category: :projects do
+RSpec.describe ProjectsController, feature_category: :groups_and_projects do
include ExternalAuthorizationServiceHelpers
include ProjectForksHelper
using RSpec::Parameterized::TableSyntax
diff --git a/spec/factories/packages/packages.rb b/spec/factories/packages/packages.rb
index 283df3428db..09f710d545d 100644
--- a/spec/factories/packages/packages.rb
+++ b/spec/factories/packages/packages.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
FactoryBot.define do
factory :package, class: 'Packages::Package' do
project
@@ -72,6 +73,7 @@ FactoryBot.define do
transient do
without_package_files { false }
+ with_changes_file { false }
file_metadatum_trait { processing? ? :unknown : :keep }
published_in { :create }
end
@@ -97,6 +99,9 @@ FactoryBot.define do
create :debian_package_file, :udeb, evaluator.file_metadatum_trait, package: package
create :debian_package_file, :ddeb, evaluator.file_metadatum_trait, package: package
create :debian_package_file, :buildinfo, evaluator.file_metadatum_trait, package: package
+ end
+
+ if evaluator.with_changes_file
create :debian_package_file, :changes, evaluator.file_metadatum_trait, package: package
end
end
@@ -111,6 +116,28 @@ FactoryBot.define do
published_in { nil }
end
end
+
+ factory :debian_temporary_with_files do
+ status { :processing }
+
+ transient do
+ without_package_files { false }
+ with_changes_file { false }
+ file_metadatum_trait { :unknown }
+ published_in { nil }
+ end
+ end
+
+ factory :debian_temporary_with_changes do
+ status { :processing }
+
+ transient do
+ without_package_files { true }
+ with_changes_file { true }
+ file_metadatum_trait { :unknown }
+ published_in { nil }
+ end
+ end
end
factory :helm_package do
diff --git a/spec/features/admin/admin_groups_spec.rb b/spec/features/admin/admin_groups_spec.rb
index 34fe98d22bd..1e3dbd7fea4 100644
--- a/spec/features/admin/admin_groups_spec.rb
+++ b/spec/features/admin/admin_groups_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Admin Groups', feature_category: :subgroups do
+RSpec.describe 'Admin Groups', feature_category: :groups_and_projects do
include Features::MembersHelpers
include Features::InviteMembersModalHelpers
include Spec::Support::Helpers::ModalHelpers
diff --git a/spec/features/admin/admin_projects_spec.rb b/spec/features/admin/admin_projects_spec.rb
index ac2e9de7aee..3454b7af962 100644
--- a/spec/features/admin/admin_projects_spec.rb
+++ b/spec/features/admin/admin_projects_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe "Admin::Projects", feature_category: :projects do
+RSpec.describe "Admin::Projects", feature_category: :groups_and_projects do
include Features::MembersHelpers
include Features::InviteMembersModalHelpers
include Spec::Support::Helpers::ModalHelpers
diff --git a/spec/features/admin/admin_sees_project_statistics_spec.rb b/spec/features/admin/admin_sees_project_statistics_spec.rb
index d3d0625ac43..61e4ef42e12 100644
--- a/spec/features/admin/admin_sees_project_statistics_spec.rb
+++ b/spec/features/admin/admin_sees_project_statistics_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe "Admin > Admin sees project statistics", feature_category: :projects do
+RSpec.describe "Admin > Admin sees project statistics", feature_category: :groups_and_projects do
let(:current_user) { create(:admin) }
before do
diff --git a/spec/features/admin/admin_sees_projects_statistics_spec.rb b/spec/features/admin/admin_sees_projects_statistics_spec.rb
index 82361a985ae..791351c78d0 100644
--- a/spec/features/admin/admin_sees_projects_statistics_spec.rb
+++ b/spec/features/admin/admin_sees_projects_statistics_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe "Admin > Admin sees projects statistics", feature_category: :projects do
+RSpec.describe "Admin > Admin sees projects statistics", feature_category: :groups_and_projects do
let(:current_user) { create(:admin) }
before do
diff --git a/spec/features/dashboard/archived_projects_spec.rb b/spec/features/dashboard/archived_projects_spec.rb
index d3992d34506..b56f942d906 100644
--- a/spec/features/dashboard/archived_projects_spec.rb
+++ b/spec/features/dashboard/archived_projects_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Dashboard Archived Project', feature_category: :projects do
+RSpec.describe 'Dashboard Archived Project', feature_category: :groups_and_projects do
let(:user) { create :user }
let(:project) { create :project }
let(:archived_project) { create(:project, :archived) }
diff --git a/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb b/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb
index 3040c97a16f..c1849cbee83 100644
--- a/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb
+++ b/spec/features/dashboard/group_dashboard_with_external_authorization_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'The group dashboard', :js, feature_category: :subgroups do
+RSpec.describe 'The group dashboard', :js, feature_category: :groups_and_projects do
include ExternalAuthorizationServiceHelpers
include Features::TopNavSpecHelpers
diff --git a/spec/features/dashboard/group_spec.rb b/spec/features/dashboard/group_spec.rb
index f363007f0d7..ea600758607 100644
--- a/spec/features/dashboard/group_spec.rb
+++ b/spec/features/dashboard/group_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Dashboard Group', feature_category: :subgroups do
+RSpec.describe 'Dashboard Group', feature_category: :groups_and_projects do
before do
sign_in(create(:user))
end
diff --git a/spec/features/dashboard/groups_list_spec.rb b/spec/features/dashboard/groups_list_spec.rb
index 7112b30957a..b077b554773 100644
--- a/spec/features/dashboard/groups_list_spec.rb
+++ b/spec/features/dashboard/groups_list_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Dashboard Groups page', :js, feature_category: :subgroups do
+RSpec.describe 'Dashboard Groups page', :js, feature_category: :groups_and_projects do
let(:user) { create :user }
let(:group) { create(:group) }
let(:nested_group) { create(:group, :nested) }
diff --git a/spec/features/dashboard/projects_spec.rb b/spec/features/dashboard/projects_spec.rb
index 32bce32ec6c..04b7f1ca821 100644
--- a/spec/features/dashboard/projects_spec.rb
+++ b/spec/features/dashboard/projects_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Dashboard Projects', feature_category: :projects do
+RSpec.describe 'Dashboard Projects', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project, reload: true) { create(:project, :repository, creator: build(:user)) } # ensure creator != owner to avoid N+1 false-positive
let_it_be(:project2) { create(:project, :public) }
diff --git a/spec/features/dashboard/user_filters_projects_spec.rb b/spec/features/dashboard/user_filters_projects_spec.rb
index 8ec9b98c3b3..bf9fe18ee75 100644
--- a/spec/features/dashboard/user_filters_projects_spec.rb
+++ b/spec/features/dashboard/user_filters_projects_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Dashboard > User filters projects', feature_category: :projects do
+RSpec.describe 'Dashboard > User filters projects', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, name: 'Victorialand', namespace: user.namespace, created_at: 2.seconds.ago, updated_at: 2.seconds.ago) }
let(:user2) { create(:user) }
diff --git a/spec/features/explore/groups_list_spec.rb b/spec/features/explore/groups_list_spec.rb
index 3ffa0dc5b64..39cd3c80307 100644
--- a/spec/features/explore/groups_list_spec.rb
+++ b/spec/features/explore/groups_list_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Explore Groups page', :js, feature_category: :subgroups do
+RSpec.describe 'Explore Groups page', :js, feature_category: :groups_and_projects do
let!(:user) { create :user }
let!(:group) { create(:group) }
let!(:public_group) { create(:group, :public) }
diff --git a/spec/features/explore/groups_spec.rb b/spec/features/explore/groups_spec.rb
index 57a7e8ea523..9a3ae918bb9 100644
--- a/spec/features/explore/groups_spec.rb
+++ b/spec/features/explore/groups_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Explore Groups', :js, feature_category: :subgroups do
+RSpec.describe 'Explore Groups', :js, feature_category: :groups_and_projects do
let(:user) { create :user }
let(:group) { create :group }
let!(:private_project) do
diff --git a/spec/features/file_uploads/attachment_spec.rb b/spec/features/file_uploads/attachment_spec.rb
index cff0c0b52b4..6c433b49b8b 100644
--- a/spec/features/file_uploads/attachment_spec.rb
+++ b/spec/features/file_uploads/attachment_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Upload an attachment', :api, :js, feature_category: :projects do
+RSpec.describe 'Upload an attachment', :api, :js, feature_category: :groups_and_projects do
include_context 'file upload requests helpers'
let_it_be(:project) { create(:project) }
diff --git a/spec/features/file_uploads/group_import_spec.rb b/spec/features/file_uploads/group_import_spec.rb
index f5082e31c06..02e6488f324 100644
--- a/spec/features/file_uploads/group_import_spec.rb
+++ b/spec/features/file_uploads/group_import_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Upload a group export archive', :api, :js, feature_category: :subgroups do
+RSpec.describe 'Upload a group export archive', :api, :js, feature_category: :groups_and_projects do
include_context 'file upload requests helpers'
let_it_be(:user) { create(:user, :admin) }
diff --git a/spec/features/file_uploads/project_import_spec.rb b/spec/features/file_uploads/project_import_spec.rb
index 3934e0319ad..acb4d43a373 100644
--- a/spec/features/file_uploads/project_import_spec.rb
+++ b/spec/features/file_uploads/project_import_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Upload a project export archive', :api, :js, feature_category: :projects do
+RSpec.describe 'Upload a project export archive', :api, :js, feature_category: :groups_and_projects do
include_context 'file upload requests helpers'
let_it_be(:user) { create(:user, :admin) }
diff --git a/spec/features/groups/activity_spec.rb b/spec/features/groups/activity_spec.rb
index 7e592b3f48b..12224566f35 100644
--- a/spec/features/groups/activity_spec.rb
+++ b/spec/features/groups/activity_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group activity page', feature_category: :subgroups do
+RSpec.describe 'Group activity page', feature_category: :groups_and_projects do
let(:user) { create(:group_member, :developer, user: create(:user), group: group).user }
let(:group) { create(:group) }
let(:path) { activity_group_path(group) }
diff --git a/spec/features/groups/board_sidebar_spec.rb b/spec/features/groups/board_sidebar_spec.rb
index 8216bc3249d..6a1b7d20a25 100644
--- a/spec/features/groups/board_sidebar_spec.rb
+++ b/spec/features/groups/board_sidebar_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group Issue Boards', :js, feature_category: :subgroups do
+RSpec.describe 'Group Issue Boards', :js, feature_category: :groups_and_projects do
include BoardHelpers
let(:group) { create(:group) }
diff --git a/spec/features/groups/empty_states_spec.rb b/spec/features/groups/empty_states_spec.rb
index e123e223ae5..30074f421e5 100644
--- a/spec/features/groups/empty_states_spec.rb
+++ b/spec/features/groups/empty_states_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group empty states', feature_category: :subgroups do
+RSpec.describe 'Group empty states', feature_category: :groups_and_projects do
let(:group) { create(:group) }
let(:user) { create(:group_member, :developer, user: create(:user), group: group).user }
diff --git a/spec/features/groups/group_page_with_external_authorization_service_spec.rb b/spec/features/groups/group_page_with_external_authorization_service_spec.rb
index dce5b67d694..5b373aecce8 100644
--- a/spec/features/groups/group_page_with_external_authorization_service_spec.rb
+++ b/spec/features/groups/group_page_with_external_authorization_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'The group page', feature_category: :subgroups do
+RSpec.describe 'The group page', feature_category: :groups_and_projects do
include ExternalAuthorizationServiceHelpers
let(:user) { create(:user) }
diff --git a/spec/features/groups/group_settings_spec.rb b/spec/features/groups/group_settings_spec.rb
index 6443f4a6c38..a248a2b471a 100644
--- a/spec/features/groups/group_settings_spec.rb
+++ b/spec/features/groups/group_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Edit group settings', feature_category: :subgroups do
+RSpec.describe 'Edit group settings', feature_category: :groups_and_projects do
include Spec::Support::Helpers::ModalHelpers
let(:user) { create(:user) }
diff --git a/spec/features/groups/issues_spec.rb b/spec/features/groups/issues_spec.rb
index 6d0d768d356..0d7e9df031c 100644
--- a/spec/features/groups/issues_spec.rb
+++ b/spec/features/groups/issues_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group issues page', feature_category: :subgroups do
+RSpec.describe 'Group issues page', feature_category: :groups_and_projects do
include FilteredSearchHelpers
include DragTo
diff --git a/spec/features/groups/members/filter_members_spec.rb b/spec/features/groups/members/filter_members_spec.rb
index c2ec709576b..bf9efd06a03 100644
--- a/spec/features/groups/members/filter_members_spec.rb
+++ b/spec/features/groups/members/filter_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > Filter members', :js, feature_category: :subgroups do
+RSpec.describe 'Groups > Members > Filter members', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
let(:user) { create(:user) }
diff --git a/spec/features/groups/members/leave_group_spec.rb b/spec/features/groups/members/leave_group_spec.rb
index e1c2d8c0547..d864852e0d4 100644
--- a/spec/features/groups/members/leave_group_spec.rb
+++ b/spec/features/groups/members/leave_group_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > Leave group', feature_category: :subgroups do
+RSpec.describe 'Groups > Members > Leave group', feature_category: :groups_and_projects do
include Features::MembersHelpers
include Spec::Support::Helpers::ModalHelpers
diff --git a/spec/features/groups/members/list_members_spec.rb b/spec/features/groups/members/list_members_spec.rb
index 6e20f92c16b..b16d61a5fe4 100644
--- a/spec/features/groups/members/list_members_spec.rb
+++ b/spec/features/groups/members/list_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > List members', :js, feature_category: :subgroups do
+RSpec.describe 'Groups > Members > List members', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
let(:user1) { create(:user, name: 'John Doe') }
diff --git a/spec/features/groups/members/manage_groups_spec.rb b/spec/features/groups/members/manage_groups_spec.rb
index f9c11dd0183..599b31827da 100644
--- a/spec/features/groups/members/manage_groups_spec.rb
+++ b/spec/features/groups/members/manage_groups_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > Manage groups', :js, feature_category: :subgroups do
+RSpec.describe 'Groups > Members > Manage groups', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
include Features::InviteMembersModalHelpers
include Spec::Support::Helpers::ModalHelpers
diff --git a/spec/features/groups/members/manage_members_spec.rb b/spec/features/groups/members/manage_members_spec.rb
index 2d5a3dbb8f8..3c1425fc9ca 100644
--- a/spec/features/groups/members/manage_members_spec.rb
+++ b/spec/features/groups/members/manage_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > Manage members', feature_category: :subgroups do
+RSpec.describe 'Groups > Members > Manage members', feature_category: :groups_and_projects do
include Features::MembersHelpers
include Features::InviteMembersModalHelpers
include Spec::Support::Helpers::ModalHelpers
diff --git a/spec/features/groups/members/master_adds_member_with_expiration_date_spec.rb b/spec/features/groups/members/master_adds_member_with_expiration_date_spec.rb
index 4f56c807ec8..c2eedfb4063 100644
--- a/spec/features/groups/members/master_adds_member_with_expiration_date_spec.rb
+++ b/spec/features/groups/members/master_adds_member_with_expiration_date_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > Owner adds member with expiration date', :js, feature_category: :subgroups do
+RSpec.describe 'Groups > Members > Owner adds member with expiration date', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
include Features::InviteMembersModalHelpers
diff --git a/spec/features/groups/members/master_manages_access_requests_spec.rb b/spec/features/groups/members/master_manages_access_requests_spec.rb
index 951dc59feca..1b33a28d823 100644
--- a/spec/features/groups/members/master_manages_access_requests_spec.rb
+++ b/spec/features/groups/members/master_manages_access_requests_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > Maintainer manages access requests', feature_category: :subgroups do
+RSpec.describe 'Groups > Members > Maintainer manages access requests', feature_category: :groups_and_projects do
it_behaves_like 'Maintainer manages access requests' do
let(:entity) { create(:group, :public) }
let(:members_page_path) { group_group_members_path(entity) }
diff --git a/spec/features/groups/members/request_access_spec.rb b/spec/features/groups/members/request_access_spec.rb
index 35eb085a195..cd0c9bfe3eb 100644
--- a/spec/features/groups/members/request_access_spec.rb
+++ b/spec/features/groups/members/request_access_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > Request access', feature_category: :subgroups do
+RSpec.describe 'Groups > Members > Request access', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:owner) { create(:user) }
let(:group) { create(:group, :public) }
diff --git a/spec/features/groups/members/search_members_spec.rb b/spec/features/groups/members/search_members_spec.rb
index 80de1cabd1e..ed2e0cd7b09 100644
--- a/spec/features/groups/members/search_members_spec.rb
+++ b/spec/features/groups/members/search_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Search group member', :js, feature_category: :subgroups do
+RSpec.describe 'Search group member', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
let(:user) { create :user }
diff --git a/spec/features/groups/members/sort_members_spec.rb b/spec/features/groups/members/sort_members_spec.rb
index d2e5445deae..fd367b8e763 100644
--- a/spec/features/groups/members/sort_members_spec.rb
+++ b/spec/features/groups/members/sort_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > Sort members', :js, feature_category: :subgroups do
+RSpec.describe 'Groups > Members > Sort members', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
let(:owner) { create(:user, name: 'John Doe', created_at: 5.days.ago, last_activity_on: Date.today) }
diff --git a/spec/features/groups/members/tabs_spec.rb b/spec/features/groups/members/tabs_spec.rb
index 2dc116842b3..cc97b367313 100644
--- a/spec/features/groups/members/tabs_spec.rb
+++ b/spec/features/groups/members/tabs_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > Members > Tabs', :js, feature_category: :subgroups do
+RSpec.describe 'Groups > Members > Tabs', :js, feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
shared_examples 'active "Members" tab' do
diff --git a/spec/features/groups/milestone_spec.rb b/spec/features/groups/milestone_spec.rb
index 376e1e6063f..0a697eaa798 100644
--- a/spec/features/groups/milestone_spec.rb
+++ b/spec/features/groups/milestone_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group milestones', feature_category: :subgroups do
+RSpec.describe 'Group milestones', feature_category: :groups_and_projects do
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project_empty_repo, group: group) }
let_it_be(:user) { create(:group_member, :maintainer, user: create(:user), group: group).user }
diff --git a/spec/features/groups/new_group_page_spec.rb b/spec/features/groups/new_group_page_spec.rb
index 1efdc3fff07..a73dbf998c3 100644
--- a/spec/features/groups/new_group_page_spec.rb
+++ b/spec/features/groups/new_group_page_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'New group page', :js, feature_category: :subgroups do
+RSpec.describe 'New group page', :js, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:parent_group) { create(:group) }
diff --git a/spec/features/groups/settings/group_badges_spec.rb b/spec/features/groups/settings/group_badges_spec.rb
index 07c8451f8fb..4a4cb297fcf 100644
--- a/spec/features/groups/settings/group_badges_spec.rb
+++ b/spec/features/groups/settings/group_badges_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group Badges', feature_category: :subgroups do
+RSpec.describe 'Group Badges', feature_category: :groups_and_projects do
include WaitForRequests
let(:user) { create(:user) }
diff --git a/spec/features/groups/settings/manage_applications_spec.rb b/spec/features/groups/settings/manage_applications_spec.rb
index e7b87cda506..94adeaa14d2 100644
--- a/spec/features/groups/settings/manage_applications_spec.rb
+++ b/spec/features/groups/settings/manage_applications_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User manages applications', feature_category: :subgroups do
+RSpec.describe 'User manages applications', feature_category: :groups_and_projects do
let_it_be(:group) { create(:group) }
let_it_be(:user) { create(:user) }
let_it_be(:new_application_path) { group_settings_applications_path(group) }
diff --git a/spec/features/groups/settings/user_searches_in_settings_spec.rb b/spec/features/groups/settings/user_searches_in_settings_spec.rb
index 374ac236e20..6e94042185d 100644
--- a/spec/features/groups/settings/user_searches_in_settings_spec.rb
+++ b/spec/features/groups/settings/user_searches_in_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User searches group settings', :js, feature_category: :subgroups do
+RSpec.describe 'User searches group settings', :js, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:group) { create(:group) }
diff --git a/spec/features/groups/share_lock_spec.rb b/spec/features/groups/share_lock_spec.rb
index 2f5a5e6ba16..34af5ee8b09 100644
--- a/spec/features/groups/share_lock_spec.rb
+++ b/spec/features/groups/share_lock_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group share with group lock', feature_category: :subgroups do
+RSpec.describe 'Group share with group lock', feature_category: :groups_and_projects do
let(:root_owner) { create(:user) }
let(:root_group) { create(:group) }
diff --git a/spec/features/groups/show_spec.rb b/spec/features/groups/show_spec.rb
index 0f936173e5d..8450322945c 100644
--- a/spec/features/groups/show_spec.rb
+++ b/spec/features/groups/show_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group show page', feature_category: :subgroups do
+RSpec.describe 'Group show page', feature_category: :groups_and_projects do
include Features::InviteMembersModalHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/features/groups/user_browse_projects_group_page_spec.rb b/spec/features/groups/user_browse_projects_group_page_spec.rb
index 38b879bb5b2..c3b8b81da68 100644
--- a/spec/features/groups/user_browse_projects_group_page_spec.rb
+++ b/spec/features/groups/user_browse_projects_group_page_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User browse group projects page', feature_category: :subgroups do
+RSpec.describe 'User browse group projects page', feature_category: :groups_and_projects do
let(:user) { create :user }
let(:group) { create :group }
diff --git a/spec/features/groups/user_sees_package_sidebar_spec.rb b/spec/features/groups/user_sees_package_sidebar_spec.rb
index 64422f5cca5..6a91dfb92bf 100644
--- a/spec/features/groups/user_sees_package_sidebar_spec.rb
+++ b/spec/features/groups/user_sees_package_sidebar_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > sidebar', feature_category: :subgroups do
+RSpec.describe 'Groups > sidebar', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:group) { create(:group) }
diff --git a/spec/features/groups/user_sees_users_dropdowns_in_issuables_list_spec.rb b/spec/features/groups/user_sees_users_dropdowns_in_issuables_list_spec.rb
index e5e30ed1a55..9a3232990ec 100644
--- a/spec/features/groups/user_sees_users_dropdowns_in_issuables_list_spec.rb
+++ b/spec/features/groups/user_sees_users_dropdowns_in_issuables_list_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Groups > User sees users dropdowns in issuables list', :js, feature_category: :subgroups do
+RSpec.describe 'Groups > User sees users dropdowns in issuables list', :js, feature_category: :groups_and_projects do
include FilteredSearchHelpers
let(:group) { create(:group) }
diff --git a/spec/features/groups_spec.rb b/spec/features/groups_spec.rb
index 088b5b11a9a..de4b9964b98 100644
--- a/spec/features/groups_spec.rb
+++ b/spec/features/groups_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group', feature_category: :subgroups do
+RSpec.describe 'Group', feature_category: :groups_and_projects do
let(:user) { create(:user) }
before do
diff --git a/spec/features/ics/group_issues_spec.rb b/spec/features/ics/group_issues_spec.rb
index 70ec156a7b0..164f5df7cc5 100644
--- a/spec/features/ics/group_issues_spec.rb
+++ b/spec/features/ics/group_issues_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Group Issues Calendar Feed', feature_category: :subgroups do
+RSpec.describe 'Group Issues Calendar Feed', feature_category: :groups_and_projects do
describe 'GET /issues' do
let!(:user) do
user = create(:user, email: 'private1@example.com')
diff --git a/spec/features/ics/project_issues_spec.rb b/spec/features/ics/project_issues_spec.rb
index 4bbd966d72a..daad6f1df2f 100644
--- a/spec/features/ics/project_issues_spec.rb
+++ b/spec/features/ics/project_issues_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project Issues Calendar Feed', feature_category: :projects do
+RSpec.describe 'Project Issues Calendar Feed', feature_category: :groups_and_projects do
describe 'GET /issues' do
let!(:user) do
user = create(:user, email: 'private1@example.com')
diff --git a/spec/features/projects/active_tabs_spec.rb b/spec/features/projects/active_tabs_spec.rb
index c27c9530f61..594c2b442aa 100644
--- a/spec/features/projects/active_tabs_spec.rb
+++ b/spec/features/projects/active_tabs_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project active tab', feature_category: :projects do
+RSpec.describe 'Project active tab', feature_category: :groups_and_projects do
let_it_be(:project) { create(:project, :repository, :with_namespace_settings) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/activity/rss_spec.rb b/spec/features/projects/activity/rss_spec.rb
index 5297f30220d..fdb70092917 100644
--- a/spec/features/projects/activity/rss_spec.rb
+++ b/spec/features/projects/activity/rss_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project Activity RSS', feature_category: :projects do
+RSpec.describe 'Project Activity RSS', feature_category: :groups_and_projects do
let(:project) { create(:project, :public) }
let(:user) { project.first_owner }
let(:path) { activity_project_path(project) }
diff --git a/spec/features/projects/activity/user_sees_activity_spec.rb b/spec/features/projects/activity/user_sees_activity_spec.rb
index cfa62415c49..5335b9d0e95 100644
--- a/spec/features/projects/activity/user_sees_activity_spec.rb
+++ b/spec/features/projects/activity/user_sees_activity_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Activity > User sees activity', feature_category: :projects do
+RSpec.describe 'Projects > Activity > User sees activity', feature_category: :groups_and_projects do
let(:project) { create(:project, :repository, :public) }
let(:user) { project.creator }
let(:issue) { create(:issue, project: project) }
diff --git a/spec/features/projects/activity/user_sees_private_activity_spec.rb b/spec/features/projects/activity/user_sees_private_activity_spec.rb
index e0aaf1dbbc3..f475cb6d941 100644
--- a/spec/features/projects/activity/user_sees_private_activity_spec.rb
+++ b/spec/features/projects/activity/user_sees_private_activity_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project > Activity > User sees private activity', :js, feature_category: :projects do
+RSpec.describe 'Project > Activity > User sees private activity', :js, feature_category: :groups_and_projects do
let(:project) { create(:project, :public) }
let(:author) { create(:user) }
let(:user) { create(:user) }
diff --git a/spec/features/projects/blobs/blame_spec.rb b/spec/features/projects/blobs/blame_spec.rb
index 9f061a2ff14..798cd401dac 100644
--- a/spec/features/projects/blobs/blame_spec.rb
+++ b/spec/features/projects/blobs/blame_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'File blame', :js, feature_category: :projects do
+RSpec.describe 'File blame', :js, feature_category: :groups_and_projects do
include TreeHelper
let_it_be(:project) { create(:project, :public, :repository) }
diff --git a/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb b/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb
index 48ee39dad19..f0058e75e52 100644
--- a/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb
+++ b/spec/features/projects/blobs/blob_line_permalink_updater_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Blob button line permalinks (BlobLinePermalinkUpdater)', :js, feature_category: :projects do
+RSpec.describe 'Blob button line permalinks (BlobLinePermalinkUpdater)', :js, feature_category: :groups_and_projects do
include TreeHelper
let(:project) { create(:project, :public, :repository) }
diff --git a/spec/features/projects/blobs/blob_show_spec.rb b/spec/features/projects/blobs/blob_show_spec.rb
index cd1dde55e30..2e63500d36e 100644
--- a/spec/features/projects/blobs/blob_show_spec.rb
+++ b/spec/features/projects/blobs/blob_show_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'File blob', :js, feature_category: :projects do
+RSpec.describe 'File blob', :js, feature_category: :groups_and_projects do
include MobileHelpers
let(:project) { create(:project, :public, :repository) }
diff --git a/spec/features/projects/blobs/edit_spec.rb b/spec/features/projects/blobs/edit_spec.rb
index 7474f416146..3c68f310744 100644
--- a/spec/features/projects/blobs/edit_spec.rb
+++ b/spec/features/projects/blobs/edit_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Editing file blob', :js, feature_category: :projects do
+RSpec.describe 'Editing file blob', :js, feature_category: :groups_and_projects do
include Features::SourceEditorSpecHelpers
include TreeHelper
include Features::BlobSpecHelpers
diff --git a/spec/features/projects/blobs/shortcuts_blob_spec.rb b/spec/features/projects/blobs/shortcuts_blob_spec.rb
index 03276a737da..162066540d9 100644
--- a/spec/features/projects/blobs/shortcuts_blob_spec.rb
+++ b/spec/features/projects/blobs/shortcuts_blob_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Blob shortcuts', :js, feature_category: :projects do
+RSpec.describe 'Blob shortcuts', :js, feature_category: :groups_and_projects do
include TreeHelper
let(:project) { create(:project, :public, :repository) }
let(:path) { project.repository.ls_files(project.repository.root_ref)[0] }
diff --git a/spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb b/spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb
index b723bd5690a..1990526b5fc 100644
--- a/spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb
+++ b/spec/features/projects/blobs/user_follows_pipeline_suggest_nudge_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User follows pipeline suggest nudge spec when feature is enabled', :js, feature_category: :projects do
+RSpec.describe 'User follows pipeline suggest nudge spec when feature is enabled', :js, feature_category: :groups_and_projects do
include CookieHelper
let(:project) { create(:project, :empty_repo) }
diff --git a/spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb b/spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb
index 3b383793de2..3e4ee13269f 100644
--- a/spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb
+++ b/spec/features/projects/blobs/user_views_pipeline_editor_button_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User views pipeline editor button on root ci config file', :js, feature_category: :projects do
+RSpec.describe 'User views pipeline editor button on root ci config file', :js, feature_category: :groups_and_projects do
include Features::BlobSpecHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/features/projects/branches/download_buttons_spec.rb b/spec/features/projects/branches/download_buttons_spec.rb
index 80ccd9c1417..2092af537e8 100644
--- a/spec/features/projects/branches/download_buttons_spec.rb
+++ b/spec/features/projects/branches/download_buttons_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Download buttons in branches page', feature_category: :projects do
+RSpec.describe 'Download buttons in branches page', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:role) { :developer }
let(:status) { 'success' }
diff --git a/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb b/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb
index 9afd8b3263a..0badde99bdb 100644
--- a/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb
+++ b/spec/features/projects/branches/new_branch_ref_dropdown_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'New Branch Ref Dropdown', :js, feature_category: :projects do
+RSpec.describe 'New Branch Ref Dropdown', :js, feature_category: :groups_and_projects do
include ListboxHelpers
let(:user) { create(:user) }
diff --git a/spec/features/projects/branches/user_creates_branch_spec.rb b/spec/features/projects/branches/user_creates_branch_spec.rb
index 5aa10a8d4b0..8d636dacb75 100644
--- a/spec/features/projects/branches/user_creates_branch_spec.rb
+++ b/spec/features/projects/branches/user_creates_branch_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User creates branch', :js, feature_category: :projects do
+RSpec.describe 'User creates branch', :js, feature_category: :groups_and_projects do
include Features::BranchesHelpers
let_it_be(:group) { create(:group, :public) }
diff --git a/spec/features/projects/branches/user_deletes_branch_spec.rb b/spec/features/projects/branches/user_deletes_branch_spec.rb
index 92b5f176d2d..d120ea36a55 100644
--- a/spec/features/projects/branches/user_deletes_branch_spec.rb
+++ b/spec/features/projects/branches/user_deletes_branch_spec.rb
@@ -2,7 +2,7 @@
require "spec_helper"
-RSpec.describe "User deletes branch", :js, feature_category: :projects do
+RSpec.describe "User deletes branch", :js, feature_category: :groups_and_projects do
include Spec::Support::Helpers::ModalHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/features/projects/branches/user_views_branches_spec.rb b/spec/features/projects/branches/user_views_branches_spec.rb
index f0a1ba84ec6..322e1fa0ac1 100644
--- a/spec/features/projects/branches/user_views_branches_spec.rb
+++ b/spec/features/projects/branches/user_views_branches_spec.rb
@@ -2,7 +2,7 @@
require "spec_helper"
-RSpec.describe "User views branches", :js, feature_category: :projects do
+RSpec.describe "User views branches", :js, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project, :repository) }
let_it_be(:user) { project.first_owner }
diff --git a/spec/features/projects/branches_spec.rb b/spec/features/projects/branches_spec.rb
index e1f1a63565c..7cfb7240db6 100644
--- a/spec/features/projects/branches_spec.rb
+++ b/spec/features/projects/branches_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Branches', feature_category: :projects do
+RSpec.describe 'Branches', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :public, :repository) }
let(:repository) { project.repository }
diff --git a/spec/features/projects/classification_label_on_project_pages_spec.rb b/spec/features/projects/classification_label_on_project_pages_spec.rb
index 662b2296234..fc3e2993cc8 100644
--- a/spec/features/projects/classification_label_on_project_pages_spec.rb
+++ b/spec/features/projects/classification_label_on_project_pages_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Classification label on project pages', feature_category: :projects do
+RSpec.describe 'Classification label on project pages', feature_category: :groups_and_projects do
let(:project) do
create(:project, external_authorization_classification_label: 'authorized label')
end
diff --git a/spec/features/projects/cluster_agents_spec.rb b/spec/features/projects/cluster_agents_spec.rb
index 43046db2b6c..baef26e3e63 100644
--- a/spec/features/projects/cluster_agents_spec.rb
+++ b/spec/features/projects/cluster_agents_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'ClusterAgents', :js, feature_category: :projects do
+RSpec.describe 'ClusterAgents', :js, feature_category: :groups_and_projects do
let_it_be(:token) { create(:cluster_agent_token, description: 'feature test token') }
let(:agent) { token.agent }
diff --git a/spec/features/projects/clusters_spec.rb b/spec/features/projects/clusters_spec.rb
index 3fb586bd143..e2737d62749 100644
--- a/spec/features/projects/clusters_spec.rb
+++ b/spec/features/projects/clusters_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Clusters', :js, feature_category: :projects do
+RSpec.describe 'Clusters', :js, feature_category: :groups_and_projects do
include GoogleApi::CloudPlatformHelpers
let(:project) { create(:project) }
diff --git a/spec/features/projects/compare_spec.rb b/spec/features/projects/compare_spec.rb
index 4c13d23559b..3313f6ef3b7 100644
--- a/spec/features/projects/compare_spec.rb
+++ b/spec/features/projects/compare_spec.rb
@@ -2,7 +2,7 @@
require "spec_helper"
-RSpec.describe "Compare", :js, feature_category: :projects do
+RSpec.describe "Compare", :js, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, :repository) }
diff --git a/spec/features/projects/container_registry_spec.rb b/spec/features/projects/container_registry_spec.rb
index 5306a9f15c6..493435d3439 100644
--- a/spec/features/projects/container_registry_spec.rb
+++ b/spec/features/projects/container_registry_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Container Registry', :js, feature_category: :projects do
+RSpec.describe 'Container Registry', :js, feature_category: :groups_and_projects do
include_context 'container registry tags'
let(:user) { create(:user) }
diff --git a/spec/features/projects/deploy_keys_spec.rb b/spec/features/projects/deploy_keys_spec.rb
index bd48fb68304..219e47e3f0e 100644
--- a/spec/features/projects/deploy_keys_spec.rb
+++ b/spec/features/projects/deploy_keys_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project deploy keys', :js, feature_category: :projects do
+RSpec.describe 'Project deploy keys', :js, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project_empty_repo) }
let_it_be(:deploy_keys_project) { create(:deploy_keys_project, project: project) }
diff --git a/spec/features/projects/environments/environment_spec.rb b/spec/features/projects/environments/environment_spec.rb
index 527a146ff73..346268af972 100644
--- a/spec/features/projects/environments/environment_spec.rb
+++ b/spec/features/projects/environments/environment_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Environment', feature_category: :projects do
+RSpec.describe 'Environment', feature_category: :groups_and_projects do
let_it_be(:project) { create(:project, :repository) }
let(:user) { create(:user) }
let(:role) { :developer }
diff --git a/spec/features/projects/environments/environments_spec.rb b/spec/features/projects/environments/environments_spec.rb
index b50fc59ac32..2490b1fde8e 100644
--- a/spec/features/projects/environments/environments_spec.rb
+++ b/spec/features/projects/environments/environments_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Environments page', :js, feature_category: :projects do
+RSpec.describe 'Environments page', :js, feature_category: :groups_and_projects do
include Spec::Support::Helpers::ModalHelpers
let(:project) { create(:project) }
diff --git a/spec/features/projects/feature_flag_user_lists/user_deletes_feature_flag_user_list_spec.rb b/spec/features/projects/feature_flag_user_lists/user_deletes_feature_flag_user_list_spec.rb
index 6383c3196c4..687af894168 100644
--- a/spec/features/projects/feature_flag_user_lists/user_deletes_feature_flag_user_list_spec.rb
+++ b/spec/features/projects/feature_flag_user_lists/user_deletes_feature_flag_user_list_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User deletes feature flag user list', :js, feature_category: :projects do
+RSpec.describe 'User deletes feature flag user list', :js, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
let_it_be(:developer) { create(:user) }
diff --git a/spec/features/projects/feature_flag_user_lists/user_edits_feature_flag_user_list_spec.rb b/spec/features/projects/feature_flag_user_lists/user_edits_feature_flag_user_list_spec.rb
index 8ab9e9baab9..8d0052c4ee1 100644
--- a/spec/features/projects/feature_flag_user_lists/user_edits_feature_flag_user_list_spec.rb
+++ b/spec/features/projects/feature_flag_user_lists/user_edits_feature_flag_user_list_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User edits feature flag user list', :js, feature_category: :projects do
+RSpec.describe 'User edits feature flag user list', :js, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
let_it_be(:developer) { create(:user) }
diff --git a/spec/features/projects/feature_flag_user_lists/user_sees_feature_flag_user_list_details_spec.rb b/spec/features/projects/feature_flag_user_lists/user_sees_feature_flag_user_list_details_spec.rb
index 7614349c5a4..672c4eb714c 100644
--- a/spec/features/projects/feature_flag_user_lists/user_sees_feature_flag_user_list_details_spec.rb
+++ b/spec/features/projects/feature_flag_user_lists/user_sees_feature_flag_user_list_details_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User sees feature flag user list details', :js, feature_category: :projects do
+RSpec.describe 'User sees feature flag user list details', :js, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
let_it_be(:developer) { create(:user) }
diff --git a/spec/features/projects/features_visibility_spec.rb b/spec/features/projects/features_visibility_spec.rb
index 5e0998412ed..b798524b9c4 100644
--- a/spec/features/projects/features_visibility_spec.rb
+++ b/spec/features/projects/features_visibility_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Edit Project Settings', feature_category: :projects do
+RSpec.describe 'Edit Project Settings', feature_category: :groups_and_projects do
let(:member) { create(:user) }
let!(:project) { create(:project, :public, :repository) }
let!(:issue) { create(:issue, project: project) }
diff --git a/spec/features/projects/files/dockerfile_dropdown_spec.rb b/spec/features/projects/files/dockerfile_dropdown_spec.rb
index ec1f03570d9..a74cde35be6 100644
--- a/spec/features/projects/files/dockerfile_dropdown_spec.rb
+++ b/spec/features/projects/files/dockerfile_dropdown_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User wants to add a Dockerfile file', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > User wants to add a Dockerfile file', :js, feature_category: :groups_and_projects do
include Features::SourceEditorSpecHelpers
before do
diff --git a/spec/features/projects/files/download_buttons_spec.rb b/spec/features/projects/files/download_buttons_spec.rb
index 2710e2efa94..9b3d19cfea3 100644
--- a/spec/features/projects/files/download_buttons_spec.rb
+++ b/spec/features/projects/files/download_buttons_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > Download buttons in files tree', feature_category: :projects do
+RSpec.describe 'Projects > Files > Download buttons in files tree', feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:user) { project.creator }
diff --git a/spec/features/projects/files/edit_file_soft_wrap_spec.rb b/spec/features/projects/files/edit_file_soft_wrap_spec.rb
index f6342257847..8f7c09aac69 100644
--- a/spec/features/projects/files/edit_file_soft_wrap_spec.rb
+++ b/spec/features/projects/files/edit_file_soft_wrap_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User uses soft wrap while editing file', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > User uses soft wrap while editing file', :js, feature_category: :groups_and_projects do
before do
project = create(:project, :repository)
user = project.first_owner
diff --git a/spec/features/projects/files/editing_a_file_spec.rb b/spec/features/projects/files/editing_a_file_spec.rb
index 1f928da0427..b4edd5c2729 100644
--- a/spec/features/projects/files/editing_a_file_spec.rb
+++ b/spec/features/projects/files/editing_a_file_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User wants to edit a file', feature_category: :projects do
+RSpec.describe 'Projects > Files > User wants to edit a file', feature_category: :groups_and_projects do
include ProjectForksHelper
let(:project) { create(:project, :repository, :public) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/files/files_sort_submodules_with_folders_spec.rb b/spec/features/projects/files/files_sort_submodules_with_folders_spec.rb
index d791e22e4f8..ce63afe58d1 100644
--- a/spec/features/projects/files/files_sort_submodules_with_folders_spec.rb
+++ b/spec/features/projects/files/files_sort_submodules_with_folders_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User views files page', feature_category: :projects do
+RSpec.describe 'Projects > Files > User views files page', feature_category: :groups_and_projects do
let(:project) { create(:forked_project_with_submodules) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/files/find_file_keyboard_spec.rb b/spec/features/projects/files/find_file_keyboard_spec.rb
index 19813396435..85ecd1c2d96 100644
--- a/spec/features/projects/files/find_file_keyboard_spec.rb
+++ b/spec/features/projects/files/find_file_keyboard_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > Find file keyboard shortcuts', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > Find file keyboard shortcuts', :js, feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/files/gitignore_dropdown_spec.rb b/spec/features/projects/files/gitignore_dropdown_spec.rb
index eedb79167bd..36b02b9b948 100644
--- a/spec/features/projects/files/gitignore_dropdown_spec.rb
+++ b/spec/features/projects/files/gitignore_dropdown_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User wants to add a .gitignore file', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > User wants to add a .gitignore file', :js, feature_category: :groups_and_projects do
include Features::SourceEditorSpecHelpers
before do
diff --git a/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb b/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb
index f2d657b3513..929554ff0d6 100644
--- a/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb
+++ b/spec/features/projects/files/gitlab_ci_yml_dropdown_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User wants to add a .gitlab-ci.yml file', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > User wants to add a .gitlab-ci.yml file', :js, feature_category: :groups_and_projects do
include Features::SourceEditorSpecHelpers
let(:params) { {} }
diff --git a/spec/features/projects/files/project_owner_creates_license_file_spec.rb b/spec/features/projects/files/project_owner_creates_license_file_spec.rb
index 7ac9cb33060..8ec9adaeb9a 100644
--- a/spec/features/projects/files/project_owner_creates_license_file_spec.rb
+++ b/spec/features/projects/files/project_owner_creates_license_file_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > Project owner creates a license file', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > Project owner creates a license file', :js, feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:project_maintainer) { project.first_owner }
diff --git a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
index cfa55eba188..bfe1fd073c5 100644
--- a/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
+++ b/spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Projects > Files > Project owner sees a link to create a license file in empty project', :js,
-feature_category: :projects do
+feature_category: :groups_and_projects do
include Features::WebIdeSpecHelpers
let(:project) { create(:project_empty_repo) }
diff --git a/spec/features/projects/files/template_selector_menu_spec.rb b/spec/features/projects/files/template_selector_menu_spec.rb
index 8dbfa3afb0b..46c4b69bc89 100644
--- a/spec/features/projects/files/template_selector_menu_spec.rb
+++ b/spec/features/projects/files/template_selector_menu_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Template selector menu', :js, feature_category: :projects do
+RSpec.describe 'Template selector menu', :js, feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:user) { create(:user) }
diff --git a/spec/features/projects/files/undo_template_spec.rb b/spec/features/projects/files/undo_template_spec.rb
index 0dfed209ce9..4b6e6b7282c 100644
--- a/spec/features/projects/files/undo_template_spec.rb
+++ b/spec/features/projects/files/undo_template_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > Template Undo Button', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > Template Undo Button', :js, feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb b/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb
index 8b60d21a77e..645bfeb14e3 100644
--- a/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb
+++ b/spec/features/projects/files/user_browses_a_tree_with_a_folder_containing_only_a_folder_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
# This is a regression test for https://gitlab.com/gitlab-org/gitlab-foss/issues/37569
RSpec.describe 'Projects > Files > User browses a tree with a folder containing only a folder', :js,
-feature_category: :projects do
+feature_category: :groups_and_projects do
let(:project) { create(:project, :empty_repo) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/files/user_browses_files_spec.rb b/spec/features/projects/files/user_browses_files_spec.rb
index 9b9c2158432..bb14b9c4e31 100644
--- a/spec/features/projects/files/user_browses_files_spec.rb
+++ b/spec/features/projects/files/user_browses_files_spec.rb
@@ -2,7 +2,7 @@
require "spec_helper"
-RSpec.describe "User browses files", :js, feature_category: :projects do
+RSpec.describe "User browses files", :js, feature_category: :groups_and_projects do
include RepoHelpers
include ListboxHelpers
diff --git a/spec/features/projects/files/user_browses_lfs_files_spec.rb b/spec/features/projects/files/user_browses_lfs_files_spec.rb
index 6b401d6d789..04094ae2d6f 100644
--- a/spec/features/projects/files/user_browses_lfs_files_spec.rb
+++ b/spec/features/projects/files/user_browses_lfs_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User browses LFS files', feature_category: :projects do
+RSpec.describe 'Projects > Files > User browses LFS files', feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/files/user_creates_directory_spec.rb b/spec/features/projects/files/user_creates_directory_spec.rb
index 4dd579ba8e9..070b6dbec7d 100644
--- a/spec/features/projects/files/user_creates_directory_spec.rb
+++ b/spec/features/projects/files/user_creates_directory_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User creates a directory', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > User creates a directory', :js, feature_category: :groups_and_projects do
let(:fork_message) do
"You're not allowed to make changes to this project directly. "\
"A fork of this project has been created that you can make changes in, so you can submit a merge request."
diff --git a/spec/features/projects/files/user_creates_files_spec.rb b/spec/features/projects/files/user_creates_files_spec.rb
index 42aceef256a..7d888aabf53 100644
--- a/spec/features/projects/files/user_creates_files_spec.rb
+++ b/spec/features/projects/files/user_creates_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User creates files', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > User creates files', :js, feature_category: :groups_and_projects do
include Features::SourceEditorSpecHelpers
include Features::BlobSpecHelpers
diff --git a/spec/features/projects/files/user_deletes_files_spec.rb b/spec/features/projects/files/user_deletes_files_spec.rb
index 61152a8badc..c526084b35d 100644
--- a/spec/features/projects/files/user_deletes_files_spec.rb
+++ b/spec/features/projects/files/user_deletes_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User deletes files', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > User deletes files', :js, feature_category: :groups_and_projects do
let(:fork_message) do
"You're not allowed to make changes to this project directly. "\
"A fork of this project has been created that you can make changes in, so you can submit a merge request."
diff --git a/spec/features/projects/files/user_edits_files_spec.rb b/spec/features/projects/files/user_edits_files_spec.rb
index 779257b2e2b..acaeffe5ef4 100644
--- a/spec/features/projects/files/user_edits_files_spec.rb
+++ b/spec/features/projects/files/user_edits_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > User edits files', :js, feature_category: :groups_and_projects do
include Features::SourceEditorSpecHelpers
include ProjectForksHelper
include Features::BlobSpecHelpers
diff --git a/spec/features/projects/files/user_find_file_spec.rb b/spec/features/projects/files/user_find_file_spec.rb
index 9cc2ce6a7b4..5406726eb6e 100644
--- a/spec/features/projects/files/user_find_file_spec.rb
+++ b/spec/features/projects/files/user_find_file_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User find project file', feature_category: :projects do
+RSpec.describe 'User find project file', feature_category: :groups_and_projects do
include ListboxHelpers
let(:user) { create :user }
diff --git a/spec/features/projects/files/user_reads_pipeline_status_spec.rb b/spec/features/projects/files/user_reads_pipeline_status_spec.rb
index 18a5fb71b10..ce3f0541139 100644
--- a/spec/features/projects/files/user_reads_pipeline_status_spec.rb
+++ b/spec/features/projects/files/user_reads_pipeline_status_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'user reads pipeline status', :js, feature_category: :projects do
+RSpec.describe 'user reads pipeline status', :js, feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:user) { create(:user) }
let(:v110_pipeline) { create_pipeline('v1.1.0', 'success') }
diff --git a/spec/features/projects/files/user_replaces_files_spec.rb b/spec/features/projects/files/user_replaces_files_spec.rb
index 9fa3ddf92c6..bd951b974d1 100644
--- a/spec/features/projects/files/user_replaces_files_spec.rb
+++ b/spec/features/projects/files/user_replaces_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User replaces files', :js, feature_category: :projects do
+RSpec.describe 'Projects > Files > User replaces files', :js, feature_category: :groups_and_projects do
include DropzoneHelper
let(:fork_message) do
diff --git a/spec/features/projects/files/user_searches_for_files_spec.rb b/spec/features/projects/files/user_searches_for_files_spec.rb
index b438b203141..25456593fc4 100644
--- a/spec/features/projects/files/user_searches_for_files_spec.rb
+++ b/spec/features/projects/files/user_searches_for_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User searches for files', feature_category: :projects do
+RSpec.describe 'Projects > Files > User searches for files', feature_category: :groups_and_projects do
let(:user) { project.first_owner }
before do
diff --git a/spec/features/projects/files/user_uploads_files_spec.rb b/spec/features/projects/files/user_uploads_files_spec.rb
index 575a6290a32..22c3f73add5 100644
--- a/spec/features/projects/files/user_uploads_files_spec.rb
+++ b/spec/features/projects/files/user_uploads_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Files > User uploads files', feature_category: :projects do
+RSpec.describe 'Projects > Files > User uploads files', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, :repository, name: 'Shop', creator: user) }
let(:project2) { create(:project, :repository, name: 'Another Project', path: 'another-project') }
diff --git a/spec/features/projects/fork_spec.rb b/spec/features/projects/fork_spec.rb
index 39cdc8faa85..7d734d5d2df 100644
--- a/spec/features/projects/fork_spec.rb
+++ b/spec/features/projects/fork_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project fork', feature_category: :projects do
+RSpec.describe 'Project fork', feature_category: :groups_and_projects do
include ListboxHelpers
include ProjectForksHelper
diff --git a/spec/features/projects/forks/fork_list_spec.rb b/spec/features/projects/forks/fork_list_spec.rb
index 18424c18cbc..966147637f5 100644
--- a/spec/features/projects/forks/fork_list_spec.rb
+++ b/spec/features/projects/forks/fork_list_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'listing forks of a project', feature_category: :projects do
+RSpec.describe 'listing forks of a project', feature_category: :groups_and_projects do
include ProjectForksHelper
include ExternalAuthorizationServiceHelpers
diff --git a/spec/features/projects/gfm_autocomplete_load_spec.rb b/spec/features/projects/gfm_autocomplete_load_spec.rb
index bb9f4e121d8..35ab0094d51 100644
--- a/spec/features/projects/gfm_autocomplete_load_spec.rb
+++ b/spec/features/projects/gfm_autocomplete_load_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'GFM autocomplete loading', :js, feature_category: :projects do
+RSpec.describe 'GFM autocomplete loading', :js, feature_category: :groups_and_projects do
let(:project) { create(:project) }
before do
diff --git a/spec/features/projects/graph_spec.rb b/spec/features/projects/graph_spec.rb
index a1f047d9b43..16a3686215f 100644
--- a/spec/features/projects/graph_spec.rb
+++ b/spec/features/projects/graph_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project Graph', :js, feature_category: :projects do
+RSpec.describe 'Project Graph', :js, feature_category: :groups_and_projects do
let(:user) { create :user }
let(:project) { create(:project, :repository, namespace: user.namespace) }
let(:branch_name) { 'master' }
diff --git a/spec/features/projects/hook_logs/user_reads_log_spec.rb b/spec/features/projects/hook_logs/user_reads_log_spec.rb
index 92ddc559cf4..cffa76924f5 100644
--- a/spec/features/projects/hook_logs/user_reads_log_spec.rb
+++ b/spec/features/projects/hook_logs/user_reads_log_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Hook logs', feature_category: :projects do
+RSpec.describe 'Hook logs', feature_category: :groups_and_projects do
let(:project) { create(:project) }
let(:project_hook) { create(:project_hook, project: project) }
let(:web_hook_log) { create(:web_hook_log, web_hook: project_hook, response_body: 'Hello World') }
diff --git a/spec/features/projects/infrastructure_registry_spec.rb b/spec/features/projects/infrastructure_registry_spec.rb
index e1619726c8d..a648a4fc1ce 100644
--- a/spec/features/projects/infrastructure_registry_spec.rb
+++ b/spec/features/projects/infrastructure_registry_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Infrastructure Registry', feature_category: :projects do
+RSpec.describe 'Infrastructure Registry', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project) }
diff --git a/spec/features/projects/issuable_templates_spec.rb b/spec/features/projects/issuable_templates_spec.rb
index 77f88994bfb..72695680809 100644
--- a/spec/features/projects/issuable_templates_spec.rb
+++ b/spec/features/projects/issuable_templates_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'issuable templates', :js, feature_category: :projects do
+RSpec.describe 'issuable templates', :js, feature_category: :groups_and_projects do
include ProjectForksHelper
include CookieHelper
diff --git a/spec/features/projects/jobs/permissions_spec.rb b/spec/features/projects/jobs/permissions_spec.rb
index dce86c9f0a4..e1bcc160092 100644
--- a/spec/features/projects/jobs/permissions_spec.rb
+++ b/spec/features/projects/jobs/permissions_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project Jobs Permissions', feature_category: :projects do
+RSpec.describe 'Project Jobs Permissions', feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
let_it_be_with_reload(:group) { create(:group, name: 'some group') }
diff --git a/spec/features/projects/jobs/user_browses_job_spec.rb b/spec/features/projects/jobs/user_browses_job_spec.rb
index dd57b4117f9..795084f8008 100644
--- a/spec/features/projects/jobs/user_browses_job_spec.rb
+++ b/spec/features/projects/jobs/user_browses_job_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User browses a job', :js, feature_category: :projects do
+RSpec.describe 'User browses a job', :js, feature_category: :groups_and_projects do
include Spec::Support::Helpers::ModalHelpers
let(:user) { create(:user) }
diff --git a/spec/features/projects/jobs/user_browses_jobs_spec.rb b/spec/features/projects/jobs/user_browses_jobs_spec.rb
index 1634f6dee74..d74a3d28068 100644
--- a/spec/features/projects/jobs/user_browses_jobs_spec.rb
+++ b/spec/features/projects/jobs/user_browses_jobs_spec.rb
@@ -8,7 +8,7 @@ def visit_jobs_page
wait_for_requests
end
-RSpec.describe 'User browses jobs', feature_category: :projects do
+RSpec.describe 'User browses jobs', feature_category: :groups_and_projects do
describe 'Jobs', :js do
let(:project) { create(:project, :repository) }
let(:user) { create(:user) }
diff --git a/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb b/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb
index e4394010e8c..41a21b1155b 100644
--- a/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb
+++ b/spec/features/projects/jobs/user_triggers_manual_job_with_variables_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User triggers manual job with variables', :js, feature_category: :projects do
+RSpec.describe 'User triggers manual job with variables', :js, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:user_access_level) { :developer }
let(:project) { create(:project, :repository, namespace: user.namespace) }
diff --git a/spec/features/projects/jobs_spec.rb b/spec/features/projects/jobs_spec.rb
index 796bac2e8e7..01f8f2166ac 100644
--- a/spec/features/projects/jobs_spec.rb
+++ b/spec/features/projects/jobs_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require 'tempfile'
-RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :projects do
+RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :groups_and_projects do
include Gitlab::Routing
include ProjectForksHelper
diff --git a/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb b/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb
index 63dc99efc8f..97b29ee6c91 100644
--- a/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb
+++ b/spec/features/projects/members/group_member_cannot_leave_group_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Group member cannot leave group project', feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Group member cannot leave group project', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:group) { create(:group) }
let(:project) { create(:project, namespace: group) }
diff --git a/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb b/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb
index 07886950b95..6656ca3ef18 100644
--- a/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb
+++ b/spec/features/projects/members/group_member_cannot_request_access_to_his_group_project_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Projects > Members > Group member cannot request access to their group project',
-feature_category: :subgroups do
+feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:group) { create(:group) }
let(:project) { create(:project, namespace: group) }
diff --git a/spec/features/projects/members/group_members_spec.rb b/spec/features/projects/members/group_members_spec.rb
index c0257446a37..3ab84b40e53 100644
--- a/spec/features/projects/members/group_members_spec.rb
+++ b/spec/features/projects/members/group_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects members', :js, feature_category: :subgroups do
+RSpec.describe 'Projects members', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
let(:user) { create(:user) }
diff --git a/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb b/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb
index 7a11ee61c5f..9db34cee5d6 100644
--- a/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb
+++ b/spec/features/projects/members/group_requester_cannot_request_access_to_project_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Projects > Members > Group requester cannot request access to project', :js,
-feature_category: :subgroups do
+feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:owner) { create(:user) }
let(:group) { create(:group, :public) }
diff --git a/spec/features/projects/members/groups_with_access_list_spec.rb b/spec/features/projects/members/groups_with_access_list_spec.rb
index 8238f95fd47..0f80c6cb3b8 100644
--- a/spec/features/projects/members/groups_with_access_list_spec.rb
+++ b/spec/features/projects/members/groups_with_access_list_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Groups with access list', :js, feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Groups with access list', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
include Spec::Support::Helpers::ModalHelpers
include Features::InviteMembersModalHelpers
diff --git a/spec/features/projects/members/manage_groups_spec.rb b/spec/features/projects/members/manage_groups_spec.rb
index 5efb5abefc6..63ff1ba8455 100644
--- a/spec/features/projects/members/manage_groups_spec.rb
+++ b/spec/features/projects/members/manage_groups_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project > Members > Manage groups', :js, feature_category: :subgroups do
+RSpec.describe 'Project > Members > Manage groups', :js, feature_category: :groups_and_projects do
include ActionView::Helpers::DateHelper
include Features::MembersHelpers
include Features::InviteMembersModalHelpers
diff --git a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb
index be778def833..b51259bea23 100644
--- a/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb
+++ b/spec/features/projects/members/master_adds_member_with_expiration_date_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Maintainer adds member with expiration date', :js, feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Maintainer adds member with expiration date', :js, feature_category: :groups_and_projects do
include ActiveSupport::Testing::TimeHelpers
include Features::MembersHelpers
include Features::InviteMembersModalHelpers
diff --git a/spec/features/projects/members/master_manages_access_requests_spec.rb b/spec/features/projects/members/master_manages_access_requests_spec.rb
index cea59679226..04d28022b73 100644
--- a/spec/features/projects/members/master_manages_access_requests_spec.rb
+++ b/spec/features/projects/members/master_manages_access_requests_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Maintainer manages access requests', feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Maintainer manages access requests', feature_category: :groups_and_projects do
it_behaves_like 'Maintainer manages access requests' do
let(:entity) { create(:project, :public, :with_namespace_settings) }
let(:members_page_path) { project_project_members_path(entity) }
diff --git a/spec/features/projects/members/member_cannot_request_access_to_his_project_spec.rb b/spec/features/projects/members/member_cannot_request_access_to_his_project_spec.rb
index dc18ca88c36..91237c334cc 100644
--- a/spec/features/projects/members/member_cannot_request_access_to_his_project_spec.rb
+++ b/spec/features/projects/members/member_cannot_request_access_to_his_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Member cannot request access to their project', feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Member cannot request access to their project', feature_category: :groups_and_projects do
let(:member) { create(:user) }
let(:project) { create(:project) }
diff --git a/spec/features/projects/members/member_leaves_project_spec.rb b/spec/features/projects/members/member_leaves_project_spec.rb
index 91e30b3396e..e0c64547e9f 100644
--- a/spec/features/projects/members/member_leaves_project_spec.rb
+++ b/spec/features/projects/members/member_leaves_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Member leaves project', feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Member leaves project', feature_category: :groups_and_projects do
include Features::MembersHelpers
include Spec::Support::Helpers::ModalHelpers
diff --git a/spec/features/projects/members/owner_cannot_leave_project_spec.rb b/spec/features/projects/members/owner_cannot_leave_project_spec.rb
index 7908fd3a98f..c79d227647a 100644
--- a/spec/features/projects/members/owner_cannot_leave_project_spec.rb
+++ b/spec/features/projects/members/owner_cannot_leave_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Owner cannot leave project', feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Owner cannot leave project', feature_category: :groups_and_projects do
let(:project) { create(:project) }
before do
diff --git a/spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb b/spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb
index b5a862578d3..84cf31b526a 100644
--- a/spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb
+++ b/spec/features/projects/members/owner_cannot_request_access_to_his_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Owner cannot request access to their own project', feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Owner cannot request access to their own project', feature_category: :groups_and_projects do
let(:project) { create(:project) }
before do
diff --git a/spec/features/projects/members/sorting_spec.rb b/spec/features/projects/members/sorting_spec.rb
index 85bf381404c..9747d499ae9 100644
--- a/spec/features/projects/members/sorting_spec.rb
+++ b/spec/features/projects/members/sorting_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Sorting', :js, feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Sorting', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
let(:maintainer) { create(:user, name: 'John Doe', created_at: 5.days.ago, last_activity_on: Date.today) }
diff --git a/spec/features/projects/members/tabs_spec.rb b/spec/features/projects/members/tabs_spec.rb
index 9ee06edc0c1..edd4a51089c 100644
--- a/spec/features/projects/members/tabs_spec.rb
+++ b/spec/features/projects/members/tabs_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > Tabs', :js, feature_category: :subgroups do
+RSpec.describe 'Projects > Members > Tabs', :js, feature_category: :groups_and_projects do
include Features::MembersHelpers
using RSpec::Parameterized::TableSyntax
diff --git a/spec/features/projects/members/user_requests_access_spec.rb b/spec/features/projects/members/user_requests_access_spec.rb
index 11d162fabd4..6f76424e377 100644
--- a/spec/features/projects/members/user_requests_access_spec.rb
+++ b/spec/features/projects/members/user_requests_access_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Members > User requests access', :js, feature_category: :subgroups do
+RSpec.describe 'Projects > Members > User requests access', :js, feature_category: :groups_and_projects do
include Spec::Support::Helpers::ModalHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/features/projects/merge_request_button_spec.rb b/spec/features/projects/merge_request_button_spec.rb
index 56aee469252..e5c927af96c 100644
--- a/spec/features/projects/merge_request_button_spec.rb
+++ b/spec/features/projects/merge_request_button_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Merge Request button', feature_category: :projects do
+RSpec.describe 'Merge Request button', feature_category: :groups_and_projects do
include ProjectForksHelper
let_it_be(:user) { create(:user) }
diff --git a/spec/features/projects/navbar_spec.rb b/spec/features/projects/navbar_spec.rb
index 31f4e9dcf95..97dfeb6fd06 100644
--- a/spec/features/projects/navbar_spec.rb
+++ b/spec/features/projects/navbar_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project navbar', :with_license, feature_category: :projects do
+RSpec.describe 'Project navbar', :with_license, feature_category: :groups_and_projects do
include NavbarStructureHelper
include WaitForRequests
diff --git a/spec/features/projects/network_graph_spec.rb b/spec/features/projects/network_graph_spec.rb
index af976b8ffb0..eff0335c891 100644
--- a/spec/features/projects/network_graph_spec.rb
+++ b/spec/features/projects/network_graph_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project Network Graph', :js, feature_category: :projects do
+RSpec.describe 'Project Network Graph', :js, feature_category: :groups_and_projects do
let(:user) { create :user }
let(:project) { create :project, :repository, namespace: user.namespace }
let(:ref_selector) { '.ref-selector' }
diff --git a/spec/features/projects/new_project_from_template_spec.rb b/spec/features/projects/new_project_from_template_spec.rb
index 97304840010..8e2016ce17e 100644
--- a/spec/features/projects/new_project_from_template_spec.rb
+++ b/spec/features/projects/new_project_from_template_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'New project from template', :js, feature_category: :projects do
+RSpec.describe 'New project from template', :js, feature_category: :groups_and_projects do
let(:user) { create(:user) }
before do
diff --git a/spec/features/projects/new_project_spec.rb b/spec/features/projects/new_project_spec.rb
index 351662af217..9f56c2c1cb0 100644
--- a/spec/features/projects/new_project_spec.rb
+++ b/spec/features/projects/new_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'New project', :js, feature_category: :projects do
+RSpec.describe 'New project', :js, feature_category: :groups_and_projects do
include Features::TopNavSpecHelpers
before do
diff --git a/spec/features/projects/package_files_spec.rb b/spec/features/projects/package_files_spec.rb
index 824b57db7ad..540ad745610 100644
--- a/spec/features/projects/package_files_spec.rb
+++ b/spec/features/projects/package_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'PackageFiles', feature_category: :projects do
+RSpec.describe 'PackageFiles', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project) }
let!(:package) { create(:maven_package, project: project) }
diff --git a/spec/features/projects/packages_spec.rb b/spec/features/projects/packages_spec.rb
index 5d3ebd8bec6..5073c147b6c 100644
--- a/spec/features/projects/packages_spec.rb
+++ b/spec/features/projects/packages_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Packages', feature_category: :projects do
+RSpec.describe 'Packages', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project) }
diff --git a/spec/features/projects/pipeline_schedules_spec.rb b/spec/features/projects/pipeline_schedules_spec.rb
index 22c7e00be6b..358c55376d4 100644
--- a/spec/features/projects/pipeline_schedules_spec.rb
+++ b/spec/features/projects/pipeline_schedules_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Pipeline Schedules', :js, feature_category: :projects do
+RSpec.describe 'Pipeline Schedules', :js, feature_category: :groups_and_projects do
include Spec::Support::Helpers::ModalHelpers
let!(:project) { create(:project, :repository) }
diff --git a/spec/features/projects/pipelines/pipeline_spec.rb b/spec/features/projects/pipelines/pipeline_spec.rb
index f1dfd962334..abc9e3d30fc 100644
--- a/spec/features/projects/pipelines/pipeline_spec.rb
+++ b/spec/features/projects/pipelines/pipeline_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Pipeline', :js, feature_category: :projects do
+RSpec.describe 'Pipeline', :js, feature_category: :groups_and_projects do
include RoutesHelpers
include ProjectForksHelper
include ::ExclusiveLeaseHelpers
diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb
index ae40b0c7a17..b8bb81991fc 100644
--- a/spec/features/projects/pipelines/pipelines_spec.rb
+++ b/spec/features/projects/pipelines/pipelines_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Pipelines', :js, feature_category: :projects do
+RSpec.describe 'Pipelines', :js, feature_category: :groups_and_projects do
include ListboxHelpers
include ProjectForksHelper
include Spec::Support::Helpers::ModalHelpers
diff --git a/spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb b/spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb
index fb7814285b8..0cc105353f5 100644
--- a/spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb
+++ b/spec/features/projects/raw/user_interacts_with_raw_endpoint_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Raw > User interacts with raw endpoint', feature_category: :projects do
+RSpec.describe 'Projects > Raw > User interacts with raw endpoint', feature_category: :groups_and_projects do
include RepoHelpers
let(:user) { create(:user) }
diff --git a/spec/features/projects/remote_mirror_spec.rb b/spec/features/projects/remote_mirror_spec.rb
index aa0c1ead4c0..4f27ba04f37 100644
--- a/spec/features/projects/remote_mirror_spec.rb
+++ b/spec/features/projects/remote_mirror_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project remote mirror', :feature, feature_category: :projects do
+RSpec.describe 'Project remote mirror', :feature, feature_category: :groups_and_projects do
let(:project) { create(:project, :repository, :remote_mirror) }
let(:remote_mirror) { project.remote_mirrors.first }
let(:user) { create(:user) }
diff --git a/spec/features/projects/settings/branch_names_settings_spec.rb b/spec/features/projects/settings/branch_names_settings_spec.rb
index 5d82dff1efd..cc7396513cb 100644
--- a/spec/features/projects/settings/branch_names_settings_spec.rb
+++ b/spec/features/projects/settings/branch_names_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project settings > repositories > Branch names', :js, feature_category: :projects do
+RSpec.describe 'Project settings > repositories > Branch names', :js, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project, :public) }
let(:user) { create(:user) }
diff --git a/spec/features/projects/settings/branch_rules_settings_spec.rb b/spec/features/projects/settings/branch_rules_settings_spec.rb
index 59609fecd93..a6ecfa2d231 100644
--- a/spec/features/projects/settings/branch_rules_settings_spec.rb
+++ b/spec/features/projects/settings/branch_rules_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > Repository > Branch rules settings', feature_category: :projects do
+RSpec.describe 'Projects > Settings > Repository > Branch rules settings', feature_category: :groups_and_projects do
let(:project) { create(:project_empty_repo) }
let(:user) { create(:user) }
let(:role) { :developer }
diff --git a/spec/features/projects/settings/external_authorization_service_settings_spec.rb b/spec/features/projects/settings/external_authorization_service_settings_spec.rb
index a99fd5f9788..4a56e6c8bbf 100644
--- a/spec/features/projects/settings/external_authorization_service_settings_spec.rb
+++ b/spec/features/projects/settings/external_authorization_service_settings_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Projects > Settings > External Authorization Classification Label setting',
-feature_category: :projects do
+feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project_empty_repo) }
diff --git a/spec/features/projects/settings/forked_project_settings_spec.rb b/spec/features/projects/settings/forked_project_settings_spec.rb
index 6b646bcf7d3..c2a5b36a81b 100644
--- a/spec/features/projects/settings/forked_project_settings_spec.rb
+++ b/spec/features/projects/settings/forked_project_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > For a forked project', :js, feature_category: :projects do
+RSpec.describe 'Projects > Settings > For a forked project', :js, feature_category: :groups_and_projects do
include ProjectForksHelper
let(:user) { create(:user) }
let(:original_project) { create(:project) }
diff --git a/spec/features/projects/settings/lfs_settings_spec.rb b/spec/features/projects/settings/lfs_settings_spec.rb
index 1695b49830d..bc5efecfe0d 100644
--- a/spec/features/projects/settings/lfs_settings_spec.rb
+++ b/spec/features/projects/settings/lfs_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > LFS settings', feature_category: :projects do
+RSpec.describe 'Projects > Settings > LFS settings', feature_category: :groups_and_projects do
let(:project) { create(:project) }
let(:user) { create(:user) }
let(:role) { :maintainer }
diff --git a/spec/features/projects/settings/merge_requests_settings_spec.rb b/spec/features/projects/settings/merge_requests_settings_spec.rb
index ca90817b0a4..c6285d0f5c1 100644
--- a/spec/features/projects/settings/merge_requests_settings_spec.rb
+++ b/spec/features/projects/settings/merge_requests_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > Merge requests', feature_category: :projects do
+RSpec.describe 'Projects > Settings > Merge requests', feature_category: :groups_and_projects do
include ProjectForksHelper
let(:user) { create(:user) }
diff --git a/spec/features/projects/settings/monitor_settings_spec.rb b/spec/features/projects/settings/monitor_settings_spec.rb
index a79d04d85d0..c5a5826a778 100644
--- a/spec/features/projects/settings/monitor_settings_spec.rb
+++ b/spec/features/projects/settings/monitor_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > For a forked project', :js, feature_category: :projects do
+RSpec.describe 'Projects > Settings > For a forked project', :js, feature_category: :groups_and_projects do
include ListboxHelpers
let_it_be(:project) { create(:project, :repository, create_templates: :issue) }
diff --git a/spec/features/projects/settings/packages_settings_spec.rb b/spec/features/projects/settings/packages_settings_spec.rb
index bf5c779b109..564a71e9a23 100644
--- a/spec/features/projects/settings/packages_settings_spec.rb
+++ b/spec/features/projects/settings/packages_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > Packages', :js, feature_category: :projects do
+RSpec.describe 'Projects > Settings > Packages', :js, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/settings/pipelines_settings_spec.rb b/spec/features/projects/settings/pipelines_settings_spec.rb
index 51858ddf8c5..ef1c03f4f27 100644
--- a/spec/features/projects/settings/pipelines_settings_spec.rb
+++ b/spec/features/projects/settings/pipelines_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe "Projects > Settings > Pipelines settings", feature_category: :projects do
+RSpec.describe "Projects > Settings > Pipelines settings", feature_category: :groups_and_projects do
let(:project) { create(:project) }
let(:user) { create(:user) }
let(:role) { :developer }
diff --git a/spec/features/projects/settings/project_badges_spec.rb b/spec/features/projects/settings/project_badges_spec.rb
index f4c2265c2c2..1f170300155 100644
--- a/spec/features/projects/settings/project_badges_spec.rb
+++ b/spec/features/projects/settings/project_badges_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project Badges', feature_category: :projects do
+RSpec.describe 'Project Badges', feature_category: :groups_and_projects do
include WaitForRequests
let(:user) { create(:user) }
diff --git a/spec/features/projects/settings/project_settings_spec.rb b/spec/features/projects/settings/project_settings_spec.rb
index 46a41cfc6f1..1c1bbc7e85c 100644
--- a/spec/features/projects/settings/project_settings_spec.rb
+++ b/spec/features/projects/settings/project_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects settings', feature_category: :projects do
+RSpec.describe 'Projects settings', feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb b/spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb
index bdfe6a06dd1..50693dda685 100644
--- a/spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb
+++ b/spec/features/projects/settings/registry_settings_cleanup_tags_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Project > Settings > Packages and registries > Container registry tag expiration policy',
-feature_category: :projects do
+feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project, reload: true) { create(:project, namespace: user.namespace) }
diff --git a/spec/features/projects/settings/registry_settings_spec.rb b/spec/features/projects/settings/registry_settings_spec.rb
index 68e9b0225ea..b8016a5d2df 100644
--- a/spec/features/projects/settings/registry_settings_spec.rb
+++ b/spec/features/projects/settings/registry_settings_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Project > Settings > Packages and registries > Container registry tag expiration policy',
-feature_category: :projects do
+feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project, reload: true) { create(:project, namespace: user.namespace) }
diff --git a/spec/features/projects/settings/repository_settings_spec.rb b/spec/features/projects/settings/repository_settings_spec.rb
index 08abade7d18..a801f633882 100644
--- a/spec/features/projects/settings/repository_settings_spec.rb
+++ b/spec/features/projects/settings/repository_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > Repository settings', feature_category: :projects do
+RSpec.describe 'Projects > Settings > Repository settings', feature_category: :groups_and_projects do
include Features::MirroringHelpers
let(:project) { create(:project_empty_repo) }
diff --git a/spec/features/projects/settings/secure_files_spec.rb b/spec/features/projects/settings/secure_files_spec.rb
index 9afe1f4de54..8ac64287fcb 100644
--- a/spec/features/projects/settings/secure_files_spec.rb
+++ b/spec/features/projects/settings/secure_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Secure Files', :js, feature_category: :projects do
+RSpec.describe 'Secure Files', :js, feature_category: :groups_and_projects do
let(:project) { create(:project) }
let(:user) { create(:user) }
diff --git a/spec/features/projects/settings/service_desk_setting_spec.rb b/spec/features/projects/settings/service_desk_setting_spec.rb
index 74139aa0d7f..c18da56f3ee 100644
--- a/spec/features/projects/settings/service_desk_setting_spec.rb
+++ b/spec/features/projects/settings/service_desk_setting_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Service Desk Setting', :js, :clean_gitlab_redis_cache, feature_category: :projects do
+RSpec.describe 'Service Desk Setting', :js, :clean_gitlab_redis_cache, feature_category: :groups_and_projects do
let(:project) { create(:project_empty_repo, :private, service_desk_enabled: false) }
let(:presenter) { project.present(current_user: user) }
let(:user) { create(:user) }
diff --git a/spec/features/projects/settings/user_archives_project_spec.rb b/spec/features/projects/settings/user_archives_project_spec.rb
index a6aac02d272..e4a5249c678 100644
--- a/spec/features/projects/settings/user_archives_project_spec.rb
+++ b/spec/features/projects/settings/user_archives_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > User archives a project', feature_category: :projects do
+RSpec.describe 'Projects > Settings > User archives a project', feature_category: :groups_and_projects do
let(:user) { create(:user) }
before do
diff --git a/spec/features/projects/settings/user_changes_avatar_spec.rb b/spec/features/projects/settings/user_changes_avatar_spec.rb
index 87043aec9b6..c589366d3df 100644
--- a/spec/features/projects/settings/user_changes_avatar_spec.rb
+++ b/spec/features/projects/settings/user_changes_avatar_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > User changes avatar', feature_category: :projects do
+RSpec.describe 'Projects > Settings > User changes avatar', feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:user) { project.creator }
diff --git a/spec/features/projects/settings/user_changes_default_branch_spec.rb b/spec/features/projects/settings/user_changes_default_branch_spec.rb
index 67ba16a2716..5886699a192 100644
--- a/spec/features/projects/settings/user_changes_default_branch_spec.rb
+++ b/spec/features/projects/settings/user_changes_default_branch_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > User changes default branch', feature_category: :projects do
+RSpec.describe 'Projects > Settings > User changes default branch', feature_category: :groups_and_projects do
include ListboxHelpers
let(:user) { create(:user) }
diff --git a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
index 3a58de9aa7d..0006762a971 100644
--- a/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
+++ b/spec/features/projects/settings/user_interacts_with_deploy_keys_spec.rb
@@ -2,7 +2,7 @@
require "spec_helper"
-RSpec.describe "User interacts with deploy keys", :js, feature_category: :projects do
+RSpec.describe "User interacts with deploy keys", :js, feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb b/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb
index cfefdd54c23..1189f5590f8 100644
--- a/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb
+++ b/spec/features/projects/settings/user_manages_merge_requests_settings_spec.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
require 'spec_helper'
-RSpec.describe 'Projects > Settings > User manages merge request settings', feature_category: :projects do
+RSpec.describe 'Projects > Settings > User manages merge request settings', feature_category: :groups_and_projects do
include ProjectForksHelper
let(:user) { create(:user) }
diff --git a/spec/features/projects/settings/user_manages_project_members_spec.rb b/spec/features/projects/settings/user_manages_project_members_spec.rb
index b7463537fb2..df571e13979 100644
--- a/spec/features/projects/settings/user_manages_project_members_spec.rb
+++ b/spec/features/projects/settings/user_manages_project_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > User manages project members', feature_category: :projects do
+RSpec.describe 'Projects > Settings > User manages project members', feature_category: :groups_and_projects do
include Features::MembersHelpers
include Spec::Support::Helpers::ModalHelpers
include ListboxHelpers
diff --git a/spec/features/projects/settings/user_renames_a_project_spec.rb b/spec/features/projects/settings/user_renames_a_project_spec.rb
index a6b72e7a297..5a58c049601 100644
--- a/spec/features/projects/settings/user_renames_a_project_spec.rb
+++ b/spec/features/projects/settings/user_renames_a_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > User renames a project', feature_category: :projects do
+RSpec.describe 'Projects > Settings > User renames a project', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, namespace: user.namespace, path: 'gitlab', name: 'sample') }
diff --git a/spec/features/projects/settings/user_searches_in_settings_spec.rb b/spec/features/projects/settings/user_searches_in_settings_spec.rb
index 923a6a10671..f0ef4a285ad 100644
--- a/spec/features/projects/settings/user_searches_in_settings_spec.rb
+++ b/spec/features/projects/settings/user_searches_in_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User searches project settings', :js, feature_category: :projects do
+RSpec.describe 'User searches project settings', :js, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository, namespace: user.namespace, pages_https_only: false) }
diff --git a/spec/features/projects/settings/user_sees_revoke_deploy_token_modal_spec.rb b/spec/features/projects/settings/user_sees_revoke_deploy_token_modal_spec.rb
index 65aed4fd06f..1bc5af39f12 100644
--- a/spec/features/projects/settings/user_sees_revoke_deploy_token_modal_spec.rb
+++ b/spec/features/projects/settings/user_sees_revoke_deploy_token_modal_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Repository Settings > User sees revoke deploy token modal', :js, feature_category: :projects do
+RSpec.describe 'Repository Settings > User sees revoke deploy token modal', :js, feature_category: :groups_and_projects do
let(:project) { create(:project, :public, :repository) }
let(:user) { project.creator }
let(:role) { :developer }
diff --git a/spec/features/projects/settings/user_tags_project_spec.rb b/spec/features/projects/settings/user_tags_project_spec.rb
index 43e8e5a2d38..6b616b4abed 100644
--- a/spec/features/projects/settings/user_tags_project_spec.rb
+++ b/spec/features/projects/settings/user_tags_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > User tags a project', :js, feature_category: :projects do
+RSpec.describe 'Projects > Settings > User tags a project', :js, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, namespace: user.namespace) }
let!(:topic) { create(:topic, name: 'topic1') }
diff --git a/spec/features/projects/settings/user_transfers_a_project_spec.rb b/spec/features/projects/settings/user_transfers_a_project_spec.rb
index 53b4ee881f9..97871eed296 100644
--- a/spec/features/projects/settings/user_transfers_a_project_spec.rb
+++ b/spec/features/projects/settings/user_transfers_a_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > User transfers a project', :js, feature_category: :projects do
+RSpec.describe 'Projects > Settings > User transfers a project', :js, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, :repository, namespace: user.namespace) }
let(:group) { create(:group) }
diff --git a/spec/features/projects/settings/visibility_settings_spec.rb b/spec/features/projects/settings/visibility_settings_spec.rb
index 5246eda976b..7d41b60199c 100644
--- a/spec/features/projects/settings/visibility_settings_spec.rb
+++ b/spec/features/projects/settings/visibility_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > Visibility settings', :js, feature_category: :projects do
+RSpec.describe 'Projects > Settings > Visibility settings', :js, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, namespace: user.namespace, visibility_level: 20) }
diff --git a/spec/features/projects/settings/webhooks_settings_spec.rb b/spec/features/projects/settings/webhooks_settings_spec.rb
index e527d0c9c74..5d345c63d60 100644
--- a/spec/features/projects/settings/webhooks_settings_spec.rb
+++ b/spec/features/projects/settings/webhooks_settings_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Settings > Webhook Settings', feature_category: :projects do
+RSpec.describe 'Projects > Settings > Webhook Settings', feature_category: :groups_and_projects do
let(:project) { create(:project) }
let(:user) { create(:user) }
let(:webhooks_path) { project_hooks_path(project) }
diff --git a/spec/features/projects/show/clone_button_spec.rb b/spec/features/projects/show/clone_button_spec.rb
index 48af4bf8277..e3964a37bcf 100644
--- a/spec/features/projects/show/clone_button_spec.rb
+++ b/spec/features/projects/show/clone_button_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > Clone button', feature_category: :projects do
+RSpec.describe 'Projects > Show > Clone button', feature_category: :groups_and_projects do
let_it_be(:admin) { create(:admin) }
let_it_be(:guest) { create(:user) }
let_it_be(:project) { create(:project, :private, :in_group, :repository) }
diff --git a/spec/features/projects/show/download_buttons_spec.rb b/spec/features/projects/show/download_buttons_spec.rb
index e4d50daa6f4..a4df6a56e02 100644
--- a/spec/features/projects/show/download_buttons_spec.rb
+++ b/spec/features/projects/show/download_buttons_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > Download buttons', feature_category: :projects do
+RSpec.describe 'Projects > Show > Download buttons', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:role) { :developer }
let(:status) { 'success' }
diff --git a/spec/features/projects/show/no_password_spec.rb b/spec/features/projects/show/no_password_spec.rb
index 9ead729af83..ff32f779c95 100644
--- a/spec/features/projects/show/no_password_spec.rb
+++ b/spec/features/projects/show/no_password_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'No Password Alert', feature_category: :projects do
+RSpec.describe 'No Password Alert', feature_category: :groups_and_projects do
let_it_be(:message_password_auth_enabled) { 'Your account is authenticated with SSO or SAML. To push and pull over HTTP with Git using this account, you must set a password or set up a Personal Access Token to use instead of a password. For more information, see Clone with HTTPS.' }
let_it_be(:message_password_auth_disabled) { 'Your account is authenticated with SSO or SAML. To push and pull over HTTP with Git using this account, you must set up a Personal Access Token to use instead of a password. For more information, see Clone with HTTPS.' }
diff --git a/spec/features/projects/show/redirects_spec.rb b/spec/features/projects/show/redirects_spec.rb
index d1cb896450f..ef326b92b98 100644
--- a/spec/features/projects/show/redirects_spec.rb
+++ b/spec/features/projects/show/redirects_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > Redirects', feature_category: :projects do
+RSpec.describe 'Projects > Show > Redirects', feature_category: :groups_and_projects do
let(:user) { create :user }
let(:public_project) { create :project, :public }
let(:private_project) { create :project, :private }
diff --git a/spec/features/projects/show/rss_spec.rb b/spec/features/projects/show/rss_spec.rb
index c2e8a844094..f57bb5e8df3 100644
--- a/spec/features/projects/show/rss_spec.rb
+++ b/spec/features/projects/show/rss_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > RSS', feature_category: :projects do
+RSpec.describe 'Projects > Show > RSS', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, :repository, visibility_level: Gitlab::VisibilityLevel::PUBLIC) }
let(:path) { project_path(project) }
diff --git a/spec/features/projects/show/schema_markup_spec.rb b/spec/features/projects/show/schema_markup_spec.rb
index 8262245c5cb..5c1b519bb6e 100644
--- a/spec/features/projects/show/schema_markup_spec.rb
+++ b/spec/features/projects/show/schema_markup_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > Schema Markup', feature_category: :projects do
+RSpec.describe 'Projects > Show > Schema Markup', feature_category: :groups_and_projects do
let_it_be(:project) { create(:project, :repository, :public, :with_avatar, description: 'foobar', topic_list: 'topic1, topic2') }
it 'shows SoftwareSourceCode structured markup', :js do
diff --git a/spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb b/spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb
index 2f33622d218..997a804e6ac 100644
--- a/spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb
+++ b/spec/features/projects/show/user_interacts_with_auto_devops_banner_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe 'Project > Show > User interacts with auto devops implicitly enabled banner',
-feature_category: :projects do
+feature_category: :groups_and_projects do
let(:project) { create(:project, :repository) }
let(:user) { create(:user) }
diff --git a/spec/features/projects/show/user_interacts_with_stars_spec.rb b/spec/features/projects/show/user_interacts_with_stars_spec.rb
index e2166854ba3..e231068cad0 100644
--- a/spec/features/projects/show/user_interacts_with_stars_spec.rb
+++ b/spec/features/projects/show/user_interacts_with_stars_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > User interacts with project stars', feature_category: :projects do
+RSpec.describe 'Projects > Show > User interacts with project stars', feature_category: :groups_and_projects do
let(:project) { create(:project, :public, :repository) }
context 'when user is signed in', :js do
diff --git a/spec/features/projects/show/user_manages_notifications_spec.rb b/spec/features/projects/show/user_manages_notifications_spec.rb
index 8f6535fd4f0..455b931e7f3 100644
--- a/spec/features/projects/show/user_manages_notifications_spec.rb
+++ b/spec/features/projects/show/user_manages_notifications_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > User manages notifications', :js, feature_category: :projects do
+RSpec.describe 'Projects > Show > User manages notifications', :js, feature_category: :groups_and_projects do
let(:project) { create(:project, :public, :repository) }
before do
diff --git a/spec/features/projects/show/user_sees_collaboration_links_spec.rb b/spec/features/projects/show/user_sees_collaboration_links_spec.rb
index 145500a4c63..a86bc0ae97a 100644
--- a/spec/features/projects/show/user_sees_collaboration_links_spec.rb
+++ b/spec/features/projects/show/user_sees_collaboration_links_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > Collaboration links', :js, feature_category: :projects do
+RSpec.describe 'Projects > Show > Collaboration links', :js, feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
let_it_be(:project) { create(:project, :repository, :public) }
diff --git a/spec/features/projects/show/user_sees_deletion_failure_message_spec.rb b/spec/features/projects/show/user_sees_deletion_failure_message_spec.rb
index 876eecfe559..0cc8919d1e9 100644
--- a/spec/features/projects/show/user_sees_deletion_failure_message_spec.rb
+++ b/spec/features/projects/show/user_sees_deletion_failure_message_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > User sees a deletion failure message', feature_category: :projects do
+RSpec.describe 'Projects > Show > User sees a deletion failure message', feature_category: :groups_and_projects do
let(:project) { create(:project, :empty_repo, pending_delete: true) }
before do
diff --git a/spec/features/projects/show/user_sees_git_instructions_spec.rb b/spec/features/projects/show/user_sees_git_instructions_spec.rb
index 022f21f198d..d4a32728fdf 100644
--- a/spec/features/projects/show/user_sees_git_instructions_spec.rb
+++ b/spec/features/projects/show/user_sees_git_instructions_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > User sees Git instructions', feature_category: :projects do
+RSpec.describe 'Projects > Show > User sees Git instructions', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
before do
diff --git a/spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb b/spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb
index 25d241f004e..70e316983d9 100644
--- a/spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb
+++ b/spec/features/projects/show/user_sees_last_commit_ci_status_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > User sees last commit CI status', feature_category: :projects do
+RSpec.describe 'Projects > Show > User sees last commit CI status', feature_category: :groups_and_projects do
let_it_be(:project) { create(:project, :repository, :public) }
it 'shows the project README', :js do
diff --git a/spec/features/projects/show/user_sees_readme_spec.rb b/spec/features/projects/show/user_sees_readme_spec.rb
index a8c91b30f25..36fa800a7cf 100644
--- a/spec/features/projects/show/user_sees_readme_spec.rb
+++ b/spec/features/projects/show/user_sees_readme_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > User sees README', feature_category: :projects do
+RSpec.describe 'Projects > Show > User sees README', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository, :public) }
diff --git a/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb b/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
index 9eb2d109829..41eab966895 100644
--- a/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
+++ b/spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > User sees setup shortcut buttons', feature_category: :projects do
+RSpec.describe 'Projects > Show > User sees setup shortcut buttons', feature_category: :groups_and_projects do
# For "New file", "Add license" functionality,
# see spec/features/projects/files/project_owner_creates_license_file_spec.rb
# see spec/features/projects/files/project_owner_sees_link_to_create_license_file_in_empty_project_spec.rb
diff --git a/spec/features/projects/show/user_uploads_files_spec.rb b/spec/features/projects/show/user_uploads_files_spec.rb
index ed378040ce9..5dde415151b 100644
--- a/spec/features/projects/show/user_uploads_files_spec.rb
+++ b/spec/features/projects/show/user_uploads_files_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > Show > User uploads files', feature_category: :projects do
+RSpec.describe 'Projects > Show > User uploads files', feature_category: :groups_and_projects do
include DropzoneHelper
let(:user) { create(:user) }
diff --git a/spec/features/projects/sourcegraph_csp_spec.rb b/spec/features/projects/sourcegraph_csp_spec.rb
index 4c8dd0a7df0..0e1a0c897e8 100644
--- a/spec/features/projects/sourcegraph_csp_spec.rb
+++ b/spec/features/projects/sourcegraph_csp_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Sourcegraph Content Security Policy', feature_category: :projects do
+RSpec.describe 'Sourcegraph Content Security Policy', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository, namespace: user.namespace) }
diff --git a/spec/features/projects/sub_group_issuables_spec.rb b/spec/features/projects/sub_group_issuables_spec.rb
index 2502d969305..601f88708f4 100644
--- a/spec/features/projects/sub_group_issuables_spec.rb
+++ b/spec/features/projects/sub_group_issuables_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Subgroup Issuables', :js, feature_category: :projects do
+RSpec.describe 'Subgroup Issuables', :js, feature_category: :groups_and_projects do
let!(:group) { create(:group, name: 'group') }
let!(:subgroup) { create(:group, parent: group, name: 'subgroup') }
let!(:project) { create(:project, namespace: subgroup, name: 'project') }
diff --git a/spec/features/projects/terraform_spec.rb b/spec/features/projects/terraform_spec.rb
index b7500b0cfb7..518fa79f003 100644
--- a/spec/features/projects/terraform_spec.rb
+++ b/spec/features/projects/terraform_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Terraform', :js, feature_category: :projects do
+RSpec.describe 'Terraform', :js, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
let_it_be(:terraform_state) { create(:terraform_state, :locked, :with_version, project: project) }
diff --git a/spec/features/projects/tree/rss_spec.rb b/spec/features/projects/tree/rss_spec.rb
index 0b016ee3dd9..176c5d85d93 100644
--- a/spec/features/projects/tree/rss_spec.rb
+++ b/spec/features/projects/tree/rss_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project Tree RSS', feature_category: :projects do
+RSpec.describe 'Project Tree RSS', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, :repository, visibility_level: Gitlab::VisibilityLevel::PUBLIC) }
let(:path) { project_tree_path(project, :master) }
diff --git a/spec/features/projects/user_changes_project_visibility_spec.rb b/spec/features/projects/user_changes_project_visibility_spec.rb
index 64af25aea28..f27a659f65f 100644
--- a/spec/features/projects/user_changes_project_visibility_spec.rb
+++ b/spec/features/projects/user_changes_project_visibility_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User changes public project visibility', :js, feature_category: :projects do
+RSpec.describe 'User changes public project visibility', :js, feature_category: :groups_and_projects do
include ProjectForksHelper
shared_examples 'changing visibility to private' do
diff --git a/spec/features/projects/user_creates_project_spec.rb b/spec/features/projects/user_creates_project_spec.rb
index af0bd932095..484808dcfd1 100644
--- a/spec/features/projects/user_creates_project_spec.rb
+++ b/spec/features/projects/user_creates_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User creates a project', :js, feature_category: :projects do
+RSpec.describe 'User creates a project', :js, feature_category: :groups_and_projects do
let(:user) { create(:user) }
before do
diff --git a/spec/features/projects/user_sees_sidebar_spec.rb b/spec/features/projects/user_sees_sidebar_spec.rb
index 3a6e11356a2..5a744be5d81 100644
--- a/spec/features/projects/user_sees_sidebar_spec.rb
+++ b/spec/features/projects/user_sees_sidebar_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Projects > User sees sidebar', feature_category: :projects do
+RSpec.describe 'Projects > User sees sidebar', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project) { create(:project, :private, public_builds: false, namespace: user.namespace) }
diff --git a/spec/features/projects/user_sees_user_popover_spec.rb b/spec/features/projects/user_sees_user_popover_spec.rb
index 9d8d06c514e..523f1366a14 100644
--- a/spec/features/projects/user_sees_user_popover_spec.rb
+++ b/spec/features/projects/user_sees_user_popover_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User sees user popover', :js, feature_category: :projects do
+RSpec.describe 'User sees user popover', :js, feature_category: :groups_and_projects do
include Features::NotesHelpers
let_it_be(:user) { create(:user, pronouns: 'they/them') }
diff --git a/spec/features/projects/user_sorts_projects_spec.rb b/spec/features/projects/user_sorts_projects_spec.rb
index 6a18d95c840..b80caca5810 100644
--- a/spec/features/projects/user_sorts_projects_spec.rb
+++ b/spec/features/projects/user_sorts_projects_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User sorts projects and order persists', feature_category: :projects do
+RSpec.describe 'User sorts projects and order persists', feature_category: :groups_and_projects do
include CookieHelper
let_it_be(:user) { create(:user) }
diff --git a/spec/features/projects/user_uses_shortcuts_spec.rb b/spec/features/projects/user_uses_shortcuts_spec.rb
index e90e540ae32..77f753b92eb 100644
--- a/spec/features/projects/user_uses_shortcuts_spec.rb
+++ b/spec/features/projects/user_uses_shortcuts_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User uses shortcuts', :js, feature_category: :projects do
+RSpec.describe 'User uses shortcuts', :js, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project, :repository) }
let(:user) { project.first_owner }
diff --git a/spec/features/projects/user_views_empty_project_spec.rb b/spec/features/projects/user_views_empty_project_spec.rb
index e38cfc2273a..cd7bf2e0e0e 100644
--- a/spec/features/projects/user_views_empty_project_spec.rb
+++ b/spec/features/projects/user_views_empty_project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'User views an empty project', feature_category: :projects do
+RSpec.describe 'User views an empty project', feature_category: :groups_and_projects do
include Features::InviteMembersModalHelpers
let_it_be(:project) { create(:project, :empty_repo) }
diff --git a/spec/features/projects/view_on_env_spec.rb b/spec/features/projects/view_on_env_spec.rb
index bf32431fc88..5f502c0297a 100644
--- a/spec/features/projects/view_on_env_spec.rb
+++ b/spec/features/projects/view_on_env_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'View on environment', :js, feature_category: :projects do
+RSpec.describe 'View on environment', :js, feature_category: :groups_and_projects do
let(:branch_name) { 'feature' }
let(:file_path) { 'files/ruby/feature.rb' }
let(:project) { create(:project, :repository) }
diff --git a/spec/features/projects_spec.rb b/spec/features/projects_spec.rb
index 73ee250a8b8..d28fafaac45 100644
--- a/spec/features/projects_spec.rb
+++ b/spec/features/projects_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Project', feature_category: :projects do
+RSpec.describe 'Project', feature_category: :groups_and_projects do
include ProjectForksHelper
include MobileHelpers
diff --git a/spec/features/topic_show_spec.rb b/spec/features/topic_show_spec.rb
index 39b8782ea58..7c2c6c2dd12 100644
--- a/spec/features/topic_show_spec.rb
+++ b/spec/features/topic_show_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Topic show page', feature_category: :projects do
+RSpec.describe 'Topic show page', feature_category: :groups_and_projects do
let_it_be(:topic) { create(:topic, name: 'my-topic', title: 'My Topic', description: 'This is **my** topic https://google.com/ :poop: ```\ncode\n```', avatar: fixture_file_upload("spec/fixtures/dk.png", "image/png")) }
context 'when topic does not exist' do
diff --git a/spec/features/users/user_browses_projects_on_user_page_spec.rb b/spec/features/users/user_browses_projects_on_user_page_spec.rb
index 52ca2397582..ccfb66838c5 100644
--- a/spec/features/users/user_browses_projects_on_user_page_spec.rb
+++ b/spec/features/users/user_browses_projects_on_user_page_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Users > User browses projects on user page', :js, feature_category: :projects do
+RSpec.describe 'Users > User browses projects on user page', :js, feature_category: :groups_and_projects do
let!(:user) { create :user }
let!(:private_project) do
create :project, :private, name: 'private', namespace: user.namespace do |project|
diff --git a/spec/finders/group_members_finder_spec.rb b/spec/finders/group_members_finder_spec.rb
index 4fc49289fa4..4ac4dc3ba37 100644
--- a/spec/finders/group_members_finder_spec.rb
+++ b/spec/finders/group_members_finder_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GroupMembersFinder, '#execute', feature_category: :subgroups do
+RSpec.describe GroupMembersFinder, '#execute', feature_category: :groups_and_projects do
let_it_be(:group) { create(:group) }
let_it_be(:sub_group) { create(:group, parent: group) }
let_it_be(:sub_sub_group) { create(:group, parent: sub_group) }
diff --git a/spec/finders/groups/accepting_project_creations_finder_spec.rb b/spec/finders/groups/accepting_project_creations_finder_spec.rb
index 2ea5577dd90..61d673d6a99 100644
--- a/spec/finders/groups/accepting_project_creations_finder_spec.rb
+++ b/spec/finders/groups/accepting_project_creations_finder_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::AcceptingProjectCreationsFinder, feature_category: :subgroups do
+RSpec.describe Groups::AcceptingProjectCreationsFinder, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:group_where_direct_owner) { create(:group) }
let_it_be(:subgroup_of_group_where_direct_owner) { create(:group, parent: group_where_direct_owner) }
diff --git a/spec/finders/groups/accepting_project_shares_finder_spec.rb b/spec/finders/groups/accepting_project_shares_finder_spec.rb
index 6af3fad2110..f5fd865cf4d 100644
--- a/spec/finders/groups/accepting_project_shares_finder_spec.rb
+++ b/spec/finders/groups/accepting_project_shares_finder_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::AcceptingProjectSharesFinder, feature_category: :subgroups do
+RSpec.describe Groups::AcceptingProjectSharesFinder, feature_category: :groups_and_projects do
subject(:result) { described_class.new(current_user, project, params).execute }
let_it_be_with_reload(:current_user) { create(:user) }
diff --git a/spec/finders/groups/user_groups_finder_spec.rb b/spec/finders/groups/user_groups_finder_spec.rb
index f6df396037c..99974896311 100644
--- a/spec/finders/groups/user_groups_finder_spec.rb
+++ b/spec/finders/groups/user_groups_finder_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::UserGroupsFinder, feature_category: :subgroups do
+RSpec.describe Groups::UserGroupsFinder, feature_category: :groups_and_projects do
describe '#execute' do
let_it_be(:user) { create(:user) }
let_it_be(:root_group) { create(:group, name: 'Root group', path: 'root-group') }
diff --git a/spec/finders/members_finder_spec.rb b/spec/finders/members_finder_spec.rb
index afab4514ce2..4df6197e3b0 100644
--- a/spec/finders/members_finder_spec.rb
+++ b/spec/finders/members_finder_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe MembersFinder, feature_category: :subgroups do
+RSpec.describe MembersFinder, feature_category: :groups_and_projects do
shared_examples '#execute' do
let_it_be(:group) { create(:group) }
let_it_be(:nested_group) { create(:group, parent: group) }
diff --git a/spec/finders/releases/group_releases_finder_spec.rb b/spec/finders/releases/group_releases_finder_spec.rb
index c47477eb3d5..daefc94828b 100644
--- a/spec/finders/releases/group_releases_finder_spec.rb
+++ b/spec/finders/releases/group_releases_finder_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Releases::GroupReleasesFinder, feature_category: :subgroups do
+RSpec.describe Releases::GroupReleasesFinder, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:group) { create(:group) }
let(:project) { create(:project, :repository, group: group) }
diff --git a/spec/finders/releases_finder_spec.rb b/spec/finders/releases_finder_spec.rb
index a3418f08b7d..f836b430f8c 100644
--- a/spec/finders/releases_finder_spec.rb
+++ b/spec/finders/releases_finder_spec.rb
@@ -12,17 +12,7 @@ RSpec.describe ReleasesFinder, feature_category: :release_orchestration do
let_it_be(:v1_0_0) { create(:release, project: project, tag: 'v1.0.0') }
let_it_be(:v1_1_0) { create(:release, project: project, tag: 'v1.1.0') }
- shared_examples_for 'when the user is not part of the project' do
- it 'returns no releases' do
- is_expected.to be_empty
- end
- end
-
- shared_examples_for 'when the user is not part of the group' do
- before do
- allow(Ability).to receive(:allowed?).with(user, :read_release, group).and_return(false)
- end
-
+ shared_examples_for 'when the user is not authorized' do
it 'returns no releases' do
is_expected.to be_empty
end
@@ -57,9 +47,9 @@ RSpec.describe ReleasesFinder, feature_category: :release_orchestration do
describe 'when parent is a project' do
subject { described_class.new(project, user, params).execute(**args) }
- it_behaves_like 'when the user is not part of the project'
+ it_behaves_like 'when the user is not authorized'
- context 'when the user is a project guest' do
+ context 'when the user has guest privileges or higher' do
before do
project.add_guest(user)
@@ -109,11 +99,9 @@ RSpec.describe ReleasesFinder, feature_category: :release_orchestration do
subject { described_class.new([project, project2], user, params).execute(**args) }
- context 'when the user is not part of any project' do
- it_behaves_like 'when the user is not part of the project'
- end
+ it_behaves_like 'when the user is not authorized'
- context 'when the user is only part of one project' do
+ context 'when the user has guest privileges or higher on one project' do
before do
project.add_guest(user)
end
@@ -125,7 +113,7 @@ RSpec.describe ReleasesFinder, feature_category: :release_orchestration do
end
end
- context 'when the user is a guest on all projects' do
+ context 'when the user has guest privileges or higher on all projects' do
before do
project.add_guest(user)
project2.add_guest(user)
diff --git a/spec/frontend/commit/components/commit_refs_spec.js b/spec/frontend/commit/components/commit_refs_spec.js
index 7c35ff1969c..380b2e07842 100644
--- a/spec/frontend/commit/components/commit_refs_spec.js
+++ b/spec/frontend/commit/components/commit_refs_spec.js
@@ -42,7 +42,7 @@ describe('Commit references component', () => {
[containingBranchesQuery, containingBranchesQueryHandler],
]),
provide: {
- fullPath: '/some/project',
+ fullPath: 'some/project',
commitSha: 'xxx',
},
});
@@ -50,13 +50,15 @@ describe('Commit references component', () => {
await waitForPromises();
};
- it('renders component correcrly', async () => {
+ beforeEach(async () => {
await createComponent();
+ });
+
+ it('renders component correcrly', () => {
expect(findRefsLists()).toHaveLength(2);
});
- it('passes props to refs list', async () => {
- await createComponent();
+ it('passes props to refs list', () => {
expect(branchesList().props()).toEqual(refsListPropsMock);
});
@@ -79,4 +81,17 @@ describe('Commit references component', () => {
await createComponent(successQueryHandler(mockOnlyBranchesResponse));
expect(findRefsLists()).toHaveLength(1);
});
+
+ describe('with relative url', () => {
+ beforeEach(async () => {
+ gon.relative_url_root = '/gitlab';
+ await createComponent();
+ });
+
+ it('passes correct urlPart prop to refList', () => {
+ expect(branchesList().props('urlPart')).toBe(
+ `${gon.relative_url_root}${refsListPropsMock.urlPart}`,
+ );
+ });
+ });
});
diff --git a/spec/frontend/commit/components/refs_list_spec.js b/spec/frontend/commit/components/refs_list_spec.js
index d124f4a41b8..594f8827d58 100644
--- a/spec/frontend/commit/components/refs_list_spec.js
+++ b/spec/frontend/commit/components/refs_list_spec.js
@@ -45,12 +45,12 @@ describe('Commit references component', () => {
expect(findCollapseButton().text()).toContain(CONTAINING_COMMIT);
});
- it('Emits event when collapse button is clicked', () => {
+ it('emits event when collapse button is clicked', () => {
findCollapseButton().vm.$emit('click');
expect(wrapper.emitted()[FETCH_CONTAINING_REFS_EVENT]).toHaveLength(1);
});
- it('Renders the list of containing branches or tags when collapse is expanded', () => {
+ it('renders the list of containing branches or tags when collapse is expanded', () => {
createComponent({ containingRefs: containingBranchesMock });
const containingRefsList = findContainingRefs();
expect(containingRefsList.findAllComponents(GlBadge)).toHaveLength(
@@ -58,12 +58,19 @@ describe('Commit references component', () => {
);
});
- it('Does not reneder list of tipping branches or tags if there is no data', () => {
+ it('renders links to refs', () => {
+ const index = 0;
+ const refBadge = findTippingRefs().at(index);
+ const refUrl = `${refsListPropsMock.urlPart}${refsListPropsMock.tippingRefs[index]}`;
+ expect(refBadge.attributes('href')).toBe(refUrl);
+ });
+
+ it('does not reneder list of tipping branches or tags if there is no data', () => {
createComponent({ tippingRefs: [] });
expect(findTippingRefs().exists()).toBe(false);
});
- it('Renders skeleton loader when isLoading prop has true value', () => {
+ it('renders skeleton loader when isLoading prop has true value', () => {
createComponent({ isLoading: true, containingRefs: [] });
expect(findSkeletonLoader().exists()).toBe(true);
});
diff --git a/spec/frontend/commit/mock_data.js b/spec/frontend/commit/mock_data.js
index 1c2bcb17663..9c8f9266986 100644
--- a/spec/frontend/commit/mock_data.js
+++ b/spec/frontend/commit/mock_data.js
@@ -288,4 +288,5 @@ export const refsListPropsMock = {
namespace: 'Branches',
tippingRefs: tippingBranchesMock,
isLoading: false,
+ urlPart: '/some/project/-/commits/',
};
diff --git a/spec/frontend/content_editor/components/content_editor_spec.js b/spec/frontend/content_editor/components/content_editor_spec.js
index 59b46e95c45..0b8321ba8eb 100644
--- a/spec/frontend/content_editor/components/content_editor_spec.js
+++ b/spec/frontend/content_editor/components/content_editor_spec.js
@@ -105,6 +105,18 @@ describe('ContentEditor', () => {
expect(findEditorElement().text()).not.toContain('For quick actions, type /');
});
+ it('displays an attachment button', () => {
+ createWrapper();
+
+ expect(wrapper.findComponent(FormattingToolbar).props().hideAttachmentButton).toBe(false);
+ });
+
+ it('hides the attachment button if attachments are disabled', () => {
+ createWrapper({ disableAttachments: true });
+
+ expect(wrapper.findComponent(FormattingToolbar).props().hideAttachmentButton).toBe(true);
+ });
+
describe('when setting initial content', () => {
it('displays loading indicator', async () => {
createWrapper();
diff --git a/spec/frontend/content_editor/components/formatting_toolbar_spec.js b/spec/frontend/content_editor/components/formatting_toolbar_spec.js
index e04c6a00765..9d835381ff4 100644
--- a/spec/frontend/content_editor/components/formatting_toolbar_spec.js
+++ b/spec/frontend/content_editor/components/formatting_toolbar_spec.js
@@ -12,13 +12,14 @@ describe('content_editor/components/formatting_toolbar', () => {
let wrapper;
let trackingSpy;
- const buildWrapper = () => {
+ const buildWrapper = (props) => {
wrapper = shallowMountExtended(FormattingToolbar, {
stubs: {
GlTabs,
GlTab,
EditorModeSwitcher,
},
+ propsData: props,
});
};
@@ -73,4 +74,12 @@ describe('content_editor/components/formatting_toolbar', () => {
expect(wrapper.findComponent(EditorModeSwitcher).exists()).toBe(true);
});
+
+ describe('when attachment button is hidden', () => {
+ it('does not show the attachment button', () => {
+ buildWrapper({ hideAttachmentButton: true });
+
+ expect(wrapper.findByTestId('attachment').exists()).toBe(false);
+ });
+ });
});
diff --git a/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js b/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js
index 72454c113b0..e54e261b8e4 100644
--- a/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js
+++ b/spec/frontend/vue_shared/components/markdown/markdown_editor_spec.js
@@ -174,6 +174,20 @@ describe('vue_shared/component/markdown/markdown_editor', () => {
});
});
+ describe('when attachments are disabled', () => {
+ beforeEach(() => {
+ buildWrapper({ propsData: { disableAttachments: true } });
+ });
+
+ it('disables canAttachFile', () => {
+ expect(findMarkdownField().props().canAttachFile).toBe(false);
+ });
+
+ it('passes `attach-file` to restrictedToolBarItems', () => {
+ expect(findMarkdownField().props().restrictedToolBarItems).toContain('attach-file');
+ });
+ });
+
describe('disabled', () => {
it('disables markdown field when disabled prop is true', () => {
buildWrapper({ propsData: { disabled: true } });
diff --git a/spec/graphql/mutations/members/bulk_update_base_spec.rb b/spec/graphql/mutations/members/bulk_update_base_spec.rb
index 61a27984824..d7a19e39890 100644
--- a/spec/graphql/mutations/members/bulk_update_base_spec.rb
+++ b/spec/graphql/mutations/members/bulk_update_base_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Mutations::Members::BulkUpdateBase, feature_category: :subgroups do
+RSpec.describe Mutations::Members::BulkUpdateBase, feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/graphql/resolvers/groups_resolver_spec.rb b/spec/graphql/resolvers/groups_resolver_spec.rb
index 9d1ad46ed0e..6a317742349 100644
--- a/spec/graphql/resolvers/groups_resolver_spec.rb
+++ b/spec/graphql/resolvers/groups_resolver_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Resolvers::GroupsResolver, feature_category: :subgroups do
+RSpec.describe Resolvers::GroupsResolver, feature_category: :groups_and_projects do
include GraphqlHelpers
describe '#resolve' do
diff --git a/spec/graphql/resolvers/namespace_projects_resolver_spec.rb b/spec/graphql/resolvers/namespace_projects_resolver_spec.rb
index 07ea98f00c7..5974bf2a7b4 100644
--- a/spec/graphql/resolvers/namespace_projects_resolver_spec.rb
+++ b/spec/graphql/resolvers/namespace_projects_resolver_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Resolvers::NamespaceProjectsResolver, feature_category: :subgroups do
+RSpec.describe Resolvers::NamespaceProjectsResolver, feature_category: :groups_and_projects do
include GraphqlHelpers
let(:current_user) { create(:user) }
diff --git a/spec/graphql/resolvers/nested_groups_resolver_spec.rb b/spec/graphql/resolvers/nested_groups_resolver_spec.rb
index e58edc3fd4b..cc3b276754a 100644
--- a/spec/graphql/resolvers/nested_groups_resolver_spec.rb
+++ b/spec/graphql/resolvers/nested_groups_resolver_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Resolvers::NestedGroupsResolver, feature_category: :subgroups do
+RSpec.describe Resolvers::NestedGroupsResolver, feature_category: :groups_and_projects do
include GraphqlHelpers
describe '#resolve' do
diff --git a/spec/graphql/types/member_access_level_enum_spec.rb b/spec/graphql/types/member_access_level_enum_spec.rb
index 54aef667695..cb079f848e0 100644
--- a/spec/graphql/types/member_access_level_enum_spec.rb
+++ b/spec/graphql/types/member_access_level_enum_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Types::MemberAccessLevelEnum, feature_category: :subgroups do
+RSpec.describe Types::MemberAccessLevelEnum, feature_category: :groups_and_projects do
specify { expect(described_class.graphql_name).to eq('MemberAccessLevel') }
it 'exposes all the existing access levels' do
diff --git a/spec/helpers/namespaces_helper_spec.rb b/spec/helpers/namespaces_helper_spec.rb
index e7c8e40da7f..bc582544d16 100644
--- a/spec/helpers/namespaces_helper_spec.rb
+++ b/spec/helpers/namespaces_helper_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe NamespacesHelper, feature_category: :subgroups do
+RSpec.describe NamespacesHelper, feature_category: :groups_and_projects do
let!(:admin) { create(:admin) }
let!(:admin_project_creation_level) { nil }
let!(:admin_group) do
diff --git a/spec/lib/api/entities/plan_limit_spec.rb b/spec/lib/api/entities/plan_limit_spec.rb
index dd687143aa9..a2d183fd631 100644
--- a/spec/lib/api/entities/plan_limit_spec.rb
+++ b/spec/lib/api/entities/plan_limit_spec.rb
@@ -17,15 +17,16 @@ RSpec.describe API::Entities::PlanLimit do
:ci_registered_group_runners,
:ci_registered_project_runners,
:conan_max_file_size,
+ :enforcement_limit,
:generic_packages_max_file_size,
:helm_max_file_size,
:maven_max_file_size,
+ :notification_limit,
:npm_max_file_size,
:nuget_max_file_size,
:pypi_max_file_size,
:terraform_module_max_file_size,
:storage_size_limit,
- :notification_limit,
:pipeline_hierarchy_size
)
end
diff --git a/spec/lib/api/helpers/members_helpers_spec.rb b/spec/lib/api/helpers/members_helpers_spec.rb
index ee1ae6b1781..3afa36656e9 100644
--- a/spec/lib/api/helpers/members_helpers_spec.rb
+++ b/spec/lib/api/helpers/members_helpers_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe API::Helpers::MembersHelpers, feature_category: :subgroups do
+RSpec.describe API::Helpers::MembersHelpers, feature_category: :groups_and_projects do
let(:helper) do
Class.new.include(described_class).new
end
diff --git a/spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb b/spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb
index b92f1a74551..2f53a5da272 100644
--- a/spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb
+++ b/spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_five_mb_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe Gitlab::BackgroundMigration::DisableLegacyOpenSourceLicenseForProjectsLessThanFiveMb,
:migration,
schema: 20221018095434,
- feature_category: :projects do
+ feature_category: :groups_and_projects do
let(:namespaces_table) { table(:namespaces) }
let(:projects_table) { table(:projects) }
let(:project_settings_table) { table(:project_settings) }
diff --git a/spec/lib/gitlab/background_migration/nullify_creator_id_column_of_orphaned_projects_spec.rb b/spec/lib/gitlab/background_migration/nullify_creator_id_column_of_orphaned_projects_spec.rb
index f671a673a08..facc3c435da 100644
--- a/spec/lib/gitlab/background_migration/nullify_creator_id_column_of_orphaned_projects_spec.rb
+++ b/spec/lib/gitlab/background_migration/nullify_creator_id_column_of_orphaned_projects_spec.rb
@@ -2,8 +2,8 @@
require 'spec_helper'
-RSpec.describe Gitlab::BackgroundMigration::NullifyCreatorIdColumnOfOrphanedProjects, feature_category: :projects,
- schema: 20230130073109 do
+RSpec.describe Gitlab::BackgroundMigration::NullifyCreatorIdColumnOfOrphanedProjects,
+ feature_category: :groups_and_projects, schema: 20230130073109 do
let(:users) { table(:users) }
let(:projects) { table(:projects) }
let(:namespaces) { table(:namespaces) }
diff --git a/spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb b/spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb
index c45c402ab9d..126e928fa77 100644
--- a/spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb
+++ b/spec/lib/gitlab/background_migration/remove_project_group_link_with_missing_groups_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe Gitlab::BackgroundMigration::RemoveProjectGroupLinkWithMissingGroups, :migration,
- feature_category: :subgroups, schema: 20230206172702 do
+ feature_category: :groups_and_projects, schema: 20230206172702 do
let(:projects) { table(:projects) }
let(:namespaces) { table(:namespaces) }
let(:project_group_links) { table(:project_group_links) }
diff --git a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb
index 2cb84e2f02a..370d03b495c 100644
--- a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb
+++ b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_base_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameBase, :delete, feature_category: :subgroups do
+RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameBase, :delete, feature_category: :groups_and_projects do
let(:migration) { FakeRenameReservedPathMigrationV1.new }
let(:subject) { described_class.new(['the-path'], migration) }
diff --git a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb
index 5b5661020b0..b00a1d4a9e1 100644
--- a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb
+++ b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespaces, :delete,
-feature_category: :subgroups do
+feature_category: :groups_and_projects do
let(:migration) { FakeRenameReservedPathMigrationV1.new }
let(:subject) { described_class.new(['the-path'], migration) }
let(:namespace) { create(:group, name: 'the-path') }
diff --git a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb
index 787c9e87038..d2665664fb0 100644
--- a/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb
+++ b/spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_projects_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe Gitlab::Database::RenameReservedPathsMigration::V1::RenameProjects, :delete,
-feature_category: :projects do
+feature_category: :groups_and_projects do
let(:migration) { FakeRenameReservedPathMigrationV1.new }
let(:subject) { described_class.new(['the-path'], migration) }
let(:project) do
diff --git a/spec/lib/gitlab/metrics/rails_slis_spec.rb b/spec/lib/gitlab/metrics/rails_slis_spec.rb
index 32d3b7581f1..ef996f61082 100644
--- a/spec/lib/gitlab/metrics/rails_slis_spec.rb
+++ b/spec/lib/gitlab/metrics/rails_slis_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe Gitlab::Metrics::RailsSlis, feature_category: :error_budgets do
[
{
endpoint_id: "ProjectsController#index",
- feature_category: :projects,
+ feature_category: :groups_and_projects,
request_urgency: :default
}
]
diff --git a/spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb b/spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb
index 25b4544d9d6..16c0fceae3b 100644
--- a/spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb
+++ b/spec/lib/gitlab/sidekiq_middleware/defer_jobs_spec.rb
@@ -33,8 +33,8 @@ RSpec.describe Gitlab::SidekiqMiddleware::DeferJobs, feature_category: :scalabil
describe '#call' do
context 'when sidekiq_defer_jobs feature flag is enabled for a worker' do
before do
- stub_feature_flags("defer_sidekiq_jobs:#{TestDeferredWorker.name}": true)
- stub_feature_flags("defer_sidekiq_jobs:#{UndeferredWorker.name}": false)
+ stub_feature_flags("defer_sidekiq_jobs_#{TestDeferredWorker.name}": true)
+ stub_feature_flags("defer_sidekiq_jobs_#{UndeferredWorker.name}": false)
end
context 'for the affected worker' do
@@ -59,8 +59,8 @@ RSpec.describe Gitlab::SidekiqMiddleware::DeferJobs, feature_category: :scalabil
context 'when sidekiq_defer_jobs feature flag is disabled' do
before do
- stub_feature_flags("defer_sidekiq_jobs:#{TestDeferredWorker.name}": false)
- stub_feature_flags("defer_sidekiq_jobs:#{UndeferredWorker.name}": false)
+ stub_feature_flags("defer_sidekiq_jobs_#{TestDeferredWorker.name}": false)
+ stub_feature_flags("defer_sidekiq_jobs_#{UndeferredWorker.name}": false)
end
it 'runs the job normally' do
diff --git a/spec/lib/gitlab/sidekiq_middleware_spec.rb b/spec/lib/gitlab/sidekiq_middleware_spec.rb
index dabd734aa51..7e53b6598b6 100644
--- a/spec/lib/gitlab/sidekiq_middleware_spec.rb
+++ b/spec/lib/gitlab/sidekiq_middleware_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe Gitlab::SidekiqMiddleware do
shared_examples "a middleware chain" do
before do
configurator.call(chain)
- stub_feature_flags("defer_sidekiq_jobs:#{worker_class.name}": false) # not letting this worker deferring its jobs
+ stub_feature_flags("defer_sidekiq_jobs_#{worker_class.name}": false) # not letting this worker deferring its jobs
end
it "passes through the right middlewares", :aggregate_failures do
enabled_sidekiq_middlewares.each do |middleware|
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 7be54bc13cc..a513e80a510 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, feature_category: :projects do
+RSpec.describe AddIndexToProjectsOnMarkedForDeletionAt, feature_category: :groups_and_projects do
it 'correctly migrates up and down' do
reversible_migration do |migration|
migration.before -> {
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 89583d1050b..3de9d992413 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,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe ScheduleMigratePersonalNamespaceProjectMaintainerToOwner, feature_category: :subgroups do
+RSpec.describe ScheduleMigratePersonalNamespaceProjectMaintainerToOwner, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
describe '#up' 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 425f622581b..0347dd8b88d 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, feature_category: :projects do
+RSpec.describe ScheduleMergeTopicsWithSameName, feature_category: :groups_and_projects do
let(:topics) { table(:topics) }
describe '#up' do
diff --git a/spec/migrations/20220324165436_schedule_backfill_project_settings_spec.rb b/spec/migrations/20220324165436_schedule_backfill_project_settings_spec.rb
index 3fcfb84c214..82187f71ceb 100644
--- a/spec/migrations/20220324165436_schedule_backfill_project_settings_spec.rb
+++ b/spec/migrations/20220324165436_schedule_backfill_project_settings_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe ScheduleBackfillProjectSettings, feature_category: :projects do
+RSpec.describe ScheduleBackfillProjectSettings, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
describe '#up' do
diff --git a/spec/migrations/20220331133802_schedule_backfill_topics_title_spec.rb b/spec/migrations/20220331133802_schedule_backfill_topics_title_spec.rb
index b26cd9688ae..0b6252ffb53 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, feature_category: :projects do
+RSpec.describe ScheduleBackfillTopicsTitle, feature_category: :groups_and_projects do
let(:topics) { table(:topics) }
let!(:topic1) { topics.create!(name: 'topic1') }
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 c81ecc07779..019d17d5fc3 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,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe ScheduleBackfillProjectMemberNamespaceId, feature_category: :subgroups do
+RSpec.describe ScheduleBackfillProjectMemberNamespaceId, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
describe '#up' do
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 3e784761dd4..cc386745547 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, feature_category: :subgroups do
+RSpec.describe CreateSyncNamespaceDetailsTrigger, feature_category: :groups_and_projects do
let(:migration) { described_class.new }
let(:namespaces) { table(:namespaces) }
let(:namespace_details) { table(:namespace_details) }
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 21fddb08771..1b598266f50 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, feature_category: :projects do
+RSpec.describe CreateSyncProjectNamespaceDetailsTrigger, feature_category: :groups_and_projects do
let(:migration) { described_class.new }
let(:projects) { table(:projects) }
let(:namespaces) { table(:namespaces) }
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 edefc378575..4927e61da95 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, feature_category: :projects do
+RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForInactivePublicProjects, feature_category: :groups_and_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 fe46d6a8608..0335ba45993 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, feature_category: :subgroups do
+RSpec.describe QueueUpdateDelayedProjectRemovalToNullForUserNamespace, feature_category: :groups_and_projects 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 fb1a4782f3b..e3ba45ff13b 100644
--- a/spec/migrations/20220628012902_finalise_project_namespace_members_spec.rb
+++ b/spec/migrations/20220628012902_finalise_project_namespace_members_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe FinaliseProjectNamespaceMembers, :migration, feature_category: :subgroups do
+RSpec.describe FinaliseProjectNamespaceMembers, :migration, feature_category: :groups_and_projects do
let(:batched_migrations) { table(:batched_background_migrations) }
let!(:migration) { described_class::MIGRATION }
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 2dff9eb90cd..0701f05057a 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, feature_category: :projects do
+RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForOneMemberNoRepoProjects, feature_category: :groups_and_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 a994ddad850..83c658f700e 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, feature_category: :projects do
+RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForNoIssuesNoRepoProjects, feature_category: :groups_and_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 ab246ea1b10..74638918e02 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, feature_category: :projects do
+RSpec.describe RescheduleSetLegacyOpenSourceLicenseAvailableForNonPublicProjects, feature_category: :groups_and_projects do
context 'when on gitlab.com' do
let(:migration) { described_class::MIGRATION }
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 a9f0bdc8487..f383b4aafea 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
@@ -4,7 +4,7 @@ require 'spec_helper'
require_migration!
RSpec.describe ScheduleDisableLegacyOpenSourceLicenceForRecentPublicProjects,
- schema: 20220801155858, feature_category: :projects do
+ schema: 20220801155858, feature_category: :groups_and_projects do
context 'when on gitlab.com' do
let(:background_migration) { described_class::MIGRATION }
let(:migration) { described_class.new }
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 852748bcdc1..75117b6c9b1 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,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForProjectsLessThanOneMb, feature_category: :projects do
+RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForProjectsLessThanOneMb, feature_category: :groups_and_projects do
let!(:migration) { described_class.new }
let!(:post_migration) { described_class::MIGRATION }
diff --git a/spec/migrations/20220921093355_schedule_backfill_namespace_details_spec.rb b/spec/migrations/20220921093355_schedule_backfill_namespace_details_spec.rb
index 5ac49762dbf..41c4115c6a4 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, feature_category: :subgroups do
+RSpec.describe ScheduleBackfillNamespaceDetails, schema: 20220921093355, feature_category: :groups_and_projects do
context 'when on gitlab.com' do
let(:background_migration) { described_class::MIGRATION }
let(:migration) { described_class.new }
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 632b23a8384..e3adea47273 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,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe FinalizeGroupMemberNamespaceIdMigration, :migration, feature_category: :subgroups do
+RSpec.describe FinalizeGroupMemberNamespaceIdMigration, :migration, feature_category: :groups_and_projects do
let(:batched_migrations) { table(:batched_background_migrations) }
let!(:migration) { described_class::MIGRATION }
diff --git a/spec/migrations/20221004094814_schedule_destroy_invalid_members_spec.rb b/spec/migrations/20221004094814_schedule_destroy_invalid_members_spec.rb
index 8bffa4b9b99..73896cf1cea 100644
--- a/spec/migrations/20221004094814_schedule_destroy_invalid_members_spec.rb
+++ b/spec/migrations/20221004094814_schedule_destroy_invalid_members_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe ScheduleDestroyInvalidMembers, :migration, feature_category: :subgroups do
+RSpec.describe ScheduleDestroyInvalidMembers, :migration, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
describe '#up' 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 4175d9b1ad8..9cca2a5adfc 100644
--- a/spec/migrations/20221018062308_schedule_backfill_project_namespace_details_spec.rb
+++ b/spec/migrations/20221018062308_schedule_backfill_project_namespace_details_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe ScheduleBackfillProjectNamespaceDetails, schema: 20221018062308, feature_category: :projects do
+RSpec.describe ScheduleBackfillProjectNamespaceDetails, schema: 20221018062308, feature_category: :groups_and_projects do
context 'when on gitlab.com' do
let!(:background_migration) { described_class::MIGRATION }
let!(:migration) { described_class.new }
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
index 34bba8ed9c8..ba341ebe5ca 100644
--- 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
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForProjectsLessThanFiveMb, feature_category: :projects do
+RSpec.describe ScheduleDisableLegacyOpenSourceLicenseForProjectsLessThanFiveMb, feature_category: :groups_and_projects do
let!(:migration) { described_class.new }
let!(:post_migration) { described_class::MIGRATION }
diff --git a/spec/migrations/20230130073109_nullify_creator_id_of_orphaned_projects_spec.rb b/spec/migrations/20230130073109_nullify_creator_id_of_orphaned_projects_spec.rb
index 9d4d50fab54..196bacd99ba 100644
--- a/spec/migrations/20230130073109_nullify_creator_id_of_orphaned_projects_spec.rb
+++ b/spec/migrations/20230130073109_nullify_creator_id_of_orphaned_projects_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe NullifyCreatorIdOfOrphanedProjects, feature_category: :projects do
+RSpec.describe NullifyCreatorIdOfOrphanedProjects, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
describe '#up' do
diff --git a/spec/migrations/20230209222452_schedule_remove_project_group_link_with_missing_groups_spec.rb b/spec/migrations/20230209222452_schedule_remove_project_group_link_with_missing_groups_spec.rb
index 13ae12b2774..19c9b209634 100644
--- a/spec/migrations/20230209222452_schedule_remove_project_group_link_with_missing_groups_spec.rb
+++ b/spec/migrations/20230209222452_schedule_remove_project_group_link_with_missing_groups_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe ScheduleRemoveProjectGroupLinkWithMissingGroups, feature_category: :subgroups do
+RSpec.describe ScheduleRemoveProjectGroupLinkWithMissingGroups, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
describe '#up' do
diff --git a/spec/migrations/20230223065753_finalize_nullify_creator_id_of_orphaned_projects_spec.rb b/spec/migrations/20230223065753_finalize_nullify_creator_id_of_orphaned_projects_spec.rb
index e4adf3ca540..006f44de0b7 100644
--- a/spec/migrations/20230223065753_finalize_nullify_creator_id_of_orphaned_projects_spec.rb
+++ b/spec/migrations/20230223065753_finalize_nullify_creator_id_of_orphaned_projects_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
require_migration!
-RSpec.describe FinalizeNullifyCreatorIdOfOrphanedProjects, :migration, feature_category: :projects do
+RSpec.describe FinalizeNullifyCreatorIdOfOrphanedProjects, :migration, feature_category: :groups_and_projects do
let(:batched_migrations) { table(:batched_background_migrations) }
let(:batch_failed_status) { 2 }
let(:batch_finalized_status) { 3 }
diff --git a/spec/migrations/backfill_all_project_namespaces_spec.rb b/spec/migrations/backfill_all_project_namespaces_spec.rb
index 52fa46eea57..5cd499a2988 100644
--- a/spec/migrations/backfill_all_project_namespaces_spec.rb
+++ b/spec/migrations/backfill_all_project_namespaces_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe BackfillAllProjectNamespaces, :migration, feature_category: :subgroups do
+RSpec.describe BackfillAllProjectNamespaces, :migration, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
let(:projects) { table(:projects) }
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 892589dd770..da6ddfe808e 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,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe BackfillMemberNamespaceIdForGroupMembers, feature_category: :subgroups do
+RSpec.describe BackfillMemberNamespaceIdForGroupMembers, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
describe '#up' 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 627b18cd889..8fef4cdc806 100644
--- a/spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb
+++ b/spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe BackfillNamespaceIdForNamespaceRoutes, feature_category: :projects do
+RSpec.describe BackfillNamespaceIdForNamespaceRoutes, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
describe '#up' 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 773c1733a4a..998d5e88b9d 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, feature_category: :subgroups do
+RSpec.describe BackfillNamespaceIdForProjectRoutes, :migration, feature_category: :groups_and_projects do
let(:migration) { described_class::MIGRATION }
describe '#up' do
diff --git a/spec/migrations/backfill_project_namespaces_for_group_spec.rb b/spec/migrations/backfill_project_namespaces_for_group_spec.rb
index b21ed6e1aa2..5f69e37a2ad 100644
--- a/spec/migrations/backfill_project_namespaces_for_group_spec.rb
+++ b/spec/migrations/backfill_project_namespaces_for_group_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe BackfillProjectNamespacesForGroup, feature_category: :subgroups do
+RSpec.describe BackfillProjectNamespacesForGroup, feature_category: :groups_and_projects do
let!(:migration) { described_class::MIGRATION }
let(:projects) { table(:projects) }
diff --git a/spec/migrations/cleanup_orphaned_routes_spec.rb b/spec/migrations/cleanup_orphaned_routes_spec.rb
index a0ce9062c70..439ba5def99 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, feature_category: :projects do
+RSpec.describe CleanupOrphanedRoutes, :migration, feature_category: :groups_and_projects do
let(:migration) { described_class::MIGRATION }
describe '#up' do
diff --git a/spec/migrations/finalize_invalid_member_cleanup_spec.rb b/spec/migrations/finalize_invalid_member_cleanup_spec.rb
index c039edcc319..ace973ea1af 100644
--- a/spec/migrations/finalize_invalid_member_cleanup_spec.rb
+++ b/spec/migrations/finalize_invalid_member_cleanup_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe FinalizeInvalidMemberCleanup, :migration, feature_category: :subgroups do
+RSpec.describe FinalizeInvalidMemberCleanup, :migration, feature_category: :groups_and_projects do
let(:batched_migrations) { table(:batched_background_migrations) }
let!(:migration) { described_class::MIGRATION }
diff --git a/spec/migrations/finalize_orphaned_routes_cleanup_spec.rb b/spec/migrations/finalize_orphaned_routes_cleanup_spec.rb
index 215fdbb05ad..2b26ef2a762 100644
--- a/spec/migrations/finalize_orphaned_routes_cleanup_spec.rb
+++ b/spec/migrations/finalize_orphaned_routes_cleanup_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe FinalizeOrphanedRoutesCleanup, :migration, feature_category: :projects do
+RSpec.describe FinalizeOrphanedRoutesCleanup, :migration, feature_category: :groups_and_projects do
let(:batched_migrations) { table(:batched_background_migrations) }
let!(:migration) { described_class::MIGRATION }
diff --git a/spec/migrations/finalize_project_namespaces_backfill_spec.rb b/spec/migrations/finalize_project_namespaces_backfill_spec.rb
index 880bb6661a4..a63f05bed8d 100644
--- a/spec/migrations/finalize_project_namespaces_backfill_spec.rb
+++ b/spec/migrations/finalize_project_namespaces_backfill_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe FinalizeProjectNamespacesBackfill, :migration, feature_category: :projects do
+RSpec.describe FinalizeProjectNamespacesBackfill, :migration, feature_category: :groups_and_projects do
let(:batched_migrations) { table(:batched_background_migrations) }
let!(:migration) { described_class::MIGRATION }
diff --git a/spec/migrations/finalize_routes_backfilling_for_projects_spec.rb b/spec/migrations/finalize_routes_backfilling_for_projects_spec.rb
index 7618957d2f7..c9972d274ee 100644
--- a/spec/migrations/finalize_routes_backfilling_for_projects_spec.rb
+++ b/spec/migrations/finalize_routes_backfilling_for_projects_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe FinalizeRoutesBackfillingForProjects, :migration, feature_category: :projects do
+RSpec.describe FinalizeRoutesBackfillingForProjects, :migration, feature_category: :groups_and_projects do
let(:batched_migrations) { table(:batched_background_migrations) }
let!(:migration) { described_class::MIGRATION }
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 6b9fb1c6f2c..fdeba216c4f 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, feature_category: :projects do
+RSpec.describe FixAndBackfillProjectNamespacesForProjectsWithDuplicateName, :migration, feature_category: :groups_and_projects do
let(:projects) { table(:projects) }
let(:namespaces) { table(:namespaces) }
diff --git a/spec/migrations/insert_daily_invites_trial_plan_limits_spec.rb b/spec/migrations/insert_daily_invites_trial_plan_limits_spec.rb
index ea1476b94a9..412bb5917e3 100644
--- a/spec/migrations/insert_daily_invites_trial_plan_limits_spec.rb
+++ b/spec/migrations/insert_daily_invites_trial_plan_limits_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
require_migration!
-RSpec.describe InsertDailyInvitesTrialPlanLimits, feature_category: :subgroups do
+RSpec.describe InsertDailyInvitesTrialPlanLimits, feature_category: :groups_and_projects do
let(:plans) { table(:plans) }
let(:plan_limits) { table(:plan_limits) }
let!(:premium_trial_plan) { plans.create!(name: 'premium_trial') }
diff --git a/spec/migrations/orphaned_invited_members_cleanup_spec.rb b/spec/migrations/orphaned_invited_members_cleanup_spec.rb
index 1d4db5306bc..416e1ddd755 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, feature_category: :subgroups do
+RSpec.describe OrphanedInvitedMembersCleanup, :migration, feature_category: :groups_and_projects do
describe '#up', :aggregate_failures do
it 'removes accepted members with no associated user' do
user = create_user!('testuser1')
diff --git a/spec/migrations/update_invalid_member_states_spec.rb b/spec/migrations/update_invalid_member_states_spec.rb
index 6ae4b9f3c0f..2845a703ae3 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, feature_category: :subgroups do
+RSpec.describe UpdateInvalidMemberStates, feature_category: :groups_and_projects do
let(:members) { table(:members) }
let(:groups) { table(:namespaces) }
let(:projects) { table(:projects) }
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index d59c8e253ce..52533a1087c 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Group, feature_category: :subgroups do
+RSpec.describe Group, feature_category: :groups_and_projects do
include ReloadHelpers
include StubGitlabCalls
diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb
index eea96e5e4ae..cf4aa362189 100644
--- a/spec/models/member_spec.rb
+++ b/spec/models/member_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Member, feature_category: :subgroups do
+RSpec.describe Member, feature_category: :groups_and_projects do
include ExclusiveLeaseHelpers
using RSpec::Parameterized::TableSyntax
diff --git a/spec/models/namespace/traversal_hierarchy_spec.rb b/spec/models/namespace/traversal_hierarchy_spec.rb
index b0088e44087..8bfcac50b1a 100644
--- a/spec/models/namespace/traversal_hierarchy_spec.rb
+++ b/spec/models/namespace/traversal_hierarchy_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Namespace::TraversalHierarchy, type: :model, feature_category: :subgroups do
+RSpec.describe Namespace::TraversalHierarchy, type: :model, feature_category: :groups_and_projects do
let!(:root) { create(:group, :with_hierarchy) }
describe '.for_namespace' do
diff --git a/spec/models/namespace_setting_spec.rb b/spec/models/namespace_setting_spec.rb
index 1cbc1696401..9ccb40705c4 100644
--- a/spec/models/namespace_setting_spec.rb
+++ b/spec/models/namespace_setting_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe NamespaceSetting, feature_category: :subgroups, type: :model do
+RSpec.describe NamespaceSetting, feature_category: :groups_and_projects, type: :model do
it_behaves_like 'sanitizable', :namespace_settings, %i[default_branch_name]
# Relationships
diff --git a/spec/models/namespace_spec.rb b/spec/models/namespace_spec.rb
index f7c4e34a6dc..2bb791c90df 100644
--- a/spec/models/namespace_spec.rb
+++ b/spec/models/namespace_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Namespace, feature_category: :subgroups do
+RSpec.describe Namespace, feature_category: :groups_and_projects do
include ProjectForksHelper
include ReloadHelpers
diff --git a/spec/models/packages/package_file_spec.rb b/spec/models/packages/package_file_spec.rb
index c9db1efc64a..055abff9144 100644
--- a/spec/models/packages/package_file_spec.rb
+++ b/spec/models/packages/package_file_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe Packages::PackageFile, type: :model do
let_it_be(:package_file2) { create(:package_file, :xml, file_name: 'ThisIsATest') }
let_it_be(:package_file3) { create(:package_file, :xml, file_name: 'formatted.zip') }
let_it_be(:package_file4) { create(:package_file, :nuget) }
- let_it_be(:debian_package) { create(:debian_package, project: project) }
+ let_it_be(:debian_package) { create(:debian_package, project: project, with_changes_file: true) }
it_behaves_like 'having unique enum values'
it_behaves_like 'destructible', factory: :package_file
diff --git a/spec/models/packages/package_spec.rb b/spec/models/packages/package_spec.rb
index de13732bc54..5dd7a0982be 100644
--- a/spec/models/packages/package_spec.rb
+++ b/spec/models/packages/package_spec.rb
@@ -760,6 +760,23 @@ RSpec.describe Packages::Package, type: :model, feature_category: :package_regis
end
end
+ describe '.debian_incoming_package!' do
+ let!(:debian_package) { create(:debian_package) }
+ let!(:debian_processing_incoming) { create(:debian_incoming, :processing) }
+
+ subject { described_class.debian_incoming_package! }
+
+ context 'when incoming exists' do
+ let!(:debian_incoming) { create(:debian_incoming) }
+
+ it { is_expected.to eq(debian_incoming) }
+ end
+
+ context 'when incoming not found' do
+ it { expect { subject }.to raise_error(ActiveRecord::RecordNotFound) }
+ end
+ end
+
describe '.with_package_type' do
let!(:package1) { create(:terraform_module_package) }
let!(:package2) { create(:npm_package) }
diff --git a/spec/models/plan_limits_spec.rb b/spec/models/plan_limits_spec.rb
index 650b9331365..8b8ffb9d23c 100644
--- a/spec/models/plan_limits_spec.rb
+++ b/spec/models/plan_limits_spec.rb
@@ -14,6 +14,7 @@ RSpec.describe PlanLimits do
describe 'validations' do
it { is_expected.to validate_numericality_of(:notification_limit).only_integer }
+ it { is_expected.to validate_numericality_of(:enforcement_limit).only_integer }
end
describe '#exceeded?' do
diff --git a/spec/models/preloaders/users_max_access_level_by_project_preloader_spec.rb b/spec/models/preloaders/users_max_access_level_by_project_preloader_spec.rb
index f5bc0c8c2f8..653b697aee4 100644
--- a/spec/models/preloaders/users_max_access_level_by_project_preloader_spec.rb
+++ b/spec/models/preloaders/users_max_access_level_by_project_preloader_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Preloaders::UsersMaxAccessLevelByProjectPreloader, feature_category: :projects do
+RSpec.describe Preloaders::UsersMaxAccessLevelByProjectPreloader, feature_category: :groups_and_projects do
let_it_be(:user_1) { create(:user) }
let_it_be(:user_2) { create(:user) }
let_it_be(:user_with_no_access) { create(:user) } # ensures we correctly cache NO_ACCESS
diff --git a/spec/models/project_feature_spec.rb b/spec/models/project_feature_spec.rb
index 87bfdd15773..8dd1f7b1831 100644
--- a/spec/models/project_feature_spec.rb
+++ b/spec/models/project_feature_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe ProjectFeature, feature_category: :projects do
+RSpec.describe ProjectFeature, feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
let_it_be_with_reload(:project) { create(:project) }
diff --git a/spec/models/project_setting_spec.rb b/spec/models/project_setting_spec.rb
index 0a2ead0aa6b..4b2760d7699 100644
--- a/spec/models/project_setting_spec.rb
+++ b/spec/models/project_setting_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe ProjectSetting, type: :model, feature_category: :projects do
+RSpec.describe ProjectSetting, type: :model, feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
it { is_expected.to belong_to(:project) }
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 32158ef9509..6cf7c16124f 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Project, factory_default: :keep, feature_category: :projects do
+RSpec.describe Project, factory_default: :keep, feature_category: :groups_and_projects do
include ProjectForksHelper
include ExternalAuthorizationServiceHelpers
include ReloadHelpers
diff --git a/spec/models/project_team_spec.rb b/spec/models/project_team_spec.rb
index f4cf3130aa9..8fec2eb3386 100644
--- a/spec/models/project_team_spec.rb
+++ b/spec/models/project_team_spec.rb
@@ -2,7 +2,7 @@
require "spec_helper"
-RSpec.describe ProjectTeam, feature_category: :subgroups do
+RSpec.describe ProjectTeam, feature_category: :groups_and_projects do
include ProjectForksHelper
let(:maintainer) { create(:user) }
diff --git a/spec/policies/concerns/archived_abilities_spec.rb b/spec/policies/concerns/archived_abilities_spec.rb
index d4d0498b0a3..648f728c8ac 100644
--- a/spec/policies/concerns/archived_abilities_spec.rb
+++ b/spec/policies/concerns/archived_abilities_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe ArchivedAbilities, feature_category: :projects do
+RSpec.describe ArchivedAbilities, feature_category: :groups_and_projects do
let(:test_class) do
Class.new do
include ArchivedAbilities
diff --git a/spec/policies/namespaces/user_namespace_policy_spec.rb b/spec/policies/namespaces/user_namespace_policy_spec.rb
index 3488f33f15c..41555ca4150 100644
--- a/spec/policies/namespaces/user_namespace_policy_spec.rb
+++ b/spec/policies/namespaces/user_namespace_policy_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Namespaces::UserNamespacePolicy, feature_category: :subgroups do
+RSpec.describe Namespaces::UserNamespacePolicy, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:owner) { create(:user) }
let_it_be(:admin) { create(:admin) }
diff --git a/spec/presenters/member_presenter_spec.rb b/spec/presenters/member_presenter_spec.rb
index 65e23d20051..7850399b711 100644
--- a/spec/presenters/member_presenter_spec.rb
+++ b/spec/presenters/member_presenter_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe MemberPresenter, feature_category: :subgroups do
+RSpec.describe MemberPresenter, feature_category: :groups_and_projects do
let_it_be(:member) { build(:group_member) }
let(:presenter) { described_class.new(member) }
diff --git a/spec/requests/admin/projects_controller_spec.rb b/spec/requests/admin/projects_controller_spec.rb
index 2462152b7c2..16e1827b912 100644
--- a/spec/requests/admin/projects_controller_spec.rb
+++ b/spec/requests/admin/projects_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Admin::ProjectsController, :enable_admin_mode, feature_category: :projects do
+RSpec.describe Admin::ProjectsController, :enable_admin_mode, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project, :public, name: 'test', description: 'test') }
let_it_be(:admin) { create(:admin) }
diff --git a/spec/requests/api/admin/plan_limits_spec.rb b/spec/requests/api/admin/plan_limits_spec.rb
index 48146a40749..cad1111b76b 100644
--- a/spec/requests/api/admin/plan_limits_spec.rb
+++ b/spec/requests/api/admin/plan_limits_spec.rb
@@ -99,15 +99,16 @@ RSpec.describe API::Admin::PlanLimits, 'PlanLimits', feature_category: :shared d
'ci_registered_group_runners': 107,
'ci_registered_project_runners': 108,
'conan_max_file_size': 10,
+ 'enforcement_limit': 15,
'generic_packages_max_file_size': 20,
'helm_max_file_size': 25,
'maven_max_file_size': 30,
+ 'notification_limit': 90,
'npm_max_file_size': 40,
'nuget_max_file_size': 50,
'pypi_max_file_size': 60,
'terraform_module_max_file_size': 70,
'storage_size_limit': 80,
- 'notification_limit': 90,
'pipeline_hierarchy_size': 250
}
@@ -120,15 +121,16 @@ RSpec.describe API::Admin::PlanLimits, 'PlanLimits', feature_category: :shared d
expect(json_response['ci_registered_group_runners']).to eq(107)
expect(json_response['ci_registered_project_runners']).to eq(108)
expect(json_response['conan_max_file_size']).to eq(10)
+ expect(json_response['enforcement_limit']).to eq(15)
expect(json_response['generic_packages_max_file_size']).to eq(20)
expect(json_response['helm_max_file_size']).to eq(25)
expect(json_response['maven_max_file_size']).to eq(30)
+ expect(json_response['notification_limit']).to eq(90)
expect(json_response['npm_max_file_size']).to eq(40)
expect(json_response['nuget_max_file_size']).to eq(50)
expect(json_response['pypi_max_file_size']).to eq(60)
expect(json_response['terraform_module_max_file_size']).to eq(70)
expect(json_response['storage_size_limit']).to eq(80)
- expect(json_response['notification_limit']).to eq(90)
expect(json_response['pipeline_hierarchy_size']).to eq(250)
end
@@ -165,15 +167,16 @@ RSpec.describe API::Admin::PlanLimits, 'PlanLimits', feature_category: :shared d
'ci_registered_group_runners': 't',
'ci_registered_project_runners': 's',
'conan_max_file_size': 'a',
+ 'enforcement_limit': 'e',
'generic_packages_max_file_size': 'b',
'helm_max_file_size': 'h',
'maven_max_file_size': 'c',
+ 'notification_limit': 'n',
'npm_max_file_size': 'd',
'nuget_max_file_size': 'e',
'pypi_max_file_size': 'f',
'terraform_module_max_file_size': 'g',
'storage_size_limit': 'j',
- 'notification_limit': 'm',
'pipeline_hierarchy_size': 'r'
}
@@ -187,15 +190,16 @@ RSpec.describe API::Admin::PlanLimits, 'PlanLimits', feature_category: :shared d
'ci_registered_group_runners is invalid',
'ci_registered_project_runners is invalid',
'conan_max_file_size is invalid',
+ 'enforcement_limit is invalid',
'generic_packages_max_file_size is invalid',
'helm_max_file_size is invalid',
'maven_max_file_size is invalid',
+ 'notification_limit is invalid',
'npm_max_file_size is invalid',
'nuget_max_file_size is invalid',
'pypi_max_file_size is invalid',
'terraform_module_max_file_size is invalid',
'storage_size_limit is invalid',
- 'notification_limit is invalid',
'pipeline_hierarchy_size is invalid'
)
end
diff --git a/spec/requests/api/badges_spec.rb b/spec/requests/api/badges_spec.rb
index 1c09c1129a2..0b340b95b20 100644
--- a/spec/requests/api/badges_spec.rb
+++ b/spec/requests/api/badges_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe API::Badges, feature_category: :projects do
+RSpec.describe API::Badges, feature_category: :groups_and_projects do
let(:maintainer) { create(:user, username: 'maintainer_user') }
let(:developer) { create(:user) }
let(:access_requester) { create(:user) }
diff --git a/spec/requests/api/debian_project_packages_spec.rb b/spec/requests/api/debian_project_packages_spec.rb
index 030962044c6..b1566860ffc 100644
--- a/spec/requests/api/debian_project_packages_spec.rb
+++ b/spec/requests/api/debian_project_packages_spec.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'spec_helper'
RSpec.describe API::DebianProjectPackages, feature_category: :package_registry do
diff --git a/spec/requests/api/graphql/current_user/groups_query_spec.rb b/spec/requests/api/graphql/current_user/groups_query_spec.rb
index 151d07ff0a7..435e5e62f69 100644
--- a/spec/requests/api/graphql/current_user/groups_query_spec.rb
+++ b/spec/requests/api/graphql/current_user/groups_query_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Query current user groups', feature_category: :subgroups do
+RSpec.describe 'Query current user groups', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/requests/api/graphql/group/group_members_spec.rb b/spec/requests/api/graphql/group/group_members_spec.rb
index 26d1fb48408..e56e901466a 100644
--- a/spec/requests/api/graphql/group/group_members_spec.rb
+++ b/spec/requests/api/graphql/group/group_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'getting group members information', feature_category: :subgroups do
+RSpec.describe 'getting group members information', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:parent_group) { create(:group, :public) }
diff --git a/spec/requests/api/graphql/group_query_spec.rb b/spec/requests/api/graphql/group_query_spec.rb
index ce5816999a6..6debe2d3d67 100644
--- a/spec/requests/api/graphql/group_query_spec.rb
+++ b/spec/requests/api/graphql/group_query_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
# Based on spec/requests/api/groups_spec.rb
# Should follow closely in order to ensure all situations are covered
-RSpec.describe 'getting group information', :with_license, feature_category: :subgroups do
+RSpec.describe 'getting group information', :with_license, feature_category: :groups_and_projects do
include GraphqlHelpers
include UploadHelpers
diff --git a/spec/requests/api/graphql/groups_query_spec.rb b/spec/requests/api/graphql/groups_query_spec.rb
index 84c8d3c3388..460cb40b68a 100644
--- a/spec/requests/api/graphql/groups_query_spec.rb
+++ b/spec/requests/api/graphql/groups_query_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'searching groups', :with_license, feature_category: :subgroups do
+RSpec.describe 'searching groups', :with_license, feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/requests/api/graphql/metadata_query_spec.rb b/spec/requests/api/graphql/metadata_query_spec.rb
index 7d1850b1b93..b973e7d4d51 100644
--- a/spec/requests/api/graphql/metadata_query_spec.rb
+++ b/spec/requests/api/graphql/metadata_query_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'getting project information', feature_category: :projects do
+RSpec.describe 'getting project information', feature_category: :groups_and_projects do
include GraphqlHelpers
let(:query) { graphql_query_for('metadata', {}, all_graphql_fields_for('Metadata')) }
diff --git a/spec/requests/api/graphql/mutations/groups/update_spec.rb b/spec/requests/api/graphql/mutations/groups/update_spec.rb
index a9acc593229..b75b2464c22 100644
--- a/spec/requests/api/graphql/mutations/groups/update_spec.rb
+++ b/spec/requests/api/graphql/mutations/groups/update_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'GroupUpdate', feature_category: :subgroups do
+RSpec.describe 'GroupUpdate', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb b/spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb
index f15b52f53a3..1395f7b778f 100644
--- a/spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb
+++ b/spec/requests/api/graphql/mutations/members/groups/bulk_update_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'GroupMemberBulkUpdate', feature_category: :subgroups do
+RSpec.describe 'GroupMemberBulkUpdate', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:parent_group) { create(:group) }
diff --git a/spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb b/spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb
index cbef9715cbe..910e512f6d6 100644
--- a/spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb
+++ b/spec/requests/api/graphql/mutations/members/projects/bulk_update_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'ProjectMemberBulkUpdate', feature_category: :projects do
+RSpec.describe 'ProjectMemberBulkUpdate', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:parent_group) { create(:group) }
diff --git a/spec/requests/api/graphql/namespace/projects_spec.rb b/spec/requests/api/graphql/namespace/projects_spec.rb
index 83edacaf831..a4bc94798be 100644
--- a/spec/requests/api/graphql/namespace/projects_spec.rb
+++ b/spec/requests/api/graphql/namespace/projects_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'getting projects', feature_category: :projects do
+RSpec.describe 'getting projects', feature_category: :groups_and_projects do
include GraphqlHelpers
let(:group) { create(:group) }
diff --git a/spec/requests/api/graphql/namespace_query_spec.rb b/spec/requests/api/graphql/namespace_query_spec.rb
index d12a3875ebf..c0c7c5fee2b 100644
--- a/spec/requests/api/graphql/namespace_query_spec.rb
+++ b/spec/requests/api/graphql/namespace_query_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Query', feature_category: :subgroups do
+RSpec.describe 'Query', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:user) { create(:user) }
diff --git a/spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb b/spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb
index c4843c3cf97..0ca4ec0e363 100644
--- a/spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb
+++ b/spec/requests/api/graphql/project/alert_management/alert/assignees_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'getting Alert Management Alert Assignees', feature_category: :projects do
+RSpec.describe 'getting Alert Management Alert Assignees', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:project) { create(:project) }
diff --git a/spec/requests/api/graphql/project/project_members_spec.rb b/spec/requests/api/graphql/project/project_members_spec.rb
index 1f1d8027592..faeb3ddd693 100644
--- a/spec/requests/api/graphql/project/project_members_spec.rb
+++ b/spec/requests/api/graphql/project/project_members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'getting project members information', feature_category: :projects do
+RSpec.describe 'getting project members information', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:parent_group) { create(:group, :public) }
diff --git a/spec/requests/api/graphql/project_query_spec.rb b/spec/requests/api/graphql/project_query_spec.rb
index 9f51258c163..54f141d9401 100644
--- a/spec/requests/api/graphql/project_query_spec.rb
+++ b/spec/requests/api/graphql/project_query_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'getting project information', feature_category: :projects do
+RSpec.describe 'getting project information', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:group) { create(:group) }
diff --git a/spec/requests/api/graphql/user/group_member_query_spec.rb b/spec/requests/api/graphql/user/group_member_query_spec.rb
index d09cb319877..d317651bd8f 100644
--- a/spec/requests/api/graphql/user/group_member_query_spec.rb
+++ b/spec/requests/api/graphql/user/group_member_query_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'GroupMember', feature_category: :subgroups do
+RSpec.describe 'GroupMember', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:member) { create(:group_member, :developer) }
diff --git a/spec/requests/api/graphql/user/project_member_query_spec.rb b/spec/requests/api/graphql/user/project_member_query_spec.rb
index 1baa7815793..b68e9d653ad 100644
--- a/spec/requests/api/graphql/user/project_member_query_spec.rb
+++ b/spec/requests/api/graphql/user/project_member_query_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'ProjectMember', feature_category: :subgroups do
+RSpec.describe 'ProjectMember', feature_category: :groups_and_projects do
include GraphqlHelpers
let_it_be(:member) { create(:project_member, :developer) }
diff --git a/spec/requests/api/graphql/user/starred_projects_query_spec.rb b/spec/requests/api/graphql/user/starred_projects_query_spec.rb
index 7d4284300d8..07ace6e5dca 100644
--- a/spec/requests/api/graphql/user/starred_projects_query_spec.rb
+++ b/spec/requests/api/graphql/user/starred_projects_query_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Getting starredProjects of the user', feature_category: :projects do
+RSpec.describe 'Getting starredProjects of the user', feature_category: :groups_and_projects do
include GraphqlHelpers
let(:query) do
diff --git a/spec/requests/api/group_avatar_spec.rb b/spec/requests/api/group_avatar_spec.rb
index 9a0e79ee9f8..c8d06aa19dc 100644
--- a/spec/requests/api/group_avatar_spec.rb
+++ b/spec/requests/api/group_avatar_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe API::GroupAvatar, feature_category: :subgroups do
+RSpec.describe API::GroupAvatar, feature_category: :groups_and_projects do
def avatar_path(group)
"/groups/#{ERB::Util.url_encode(group.full_path)}/avatar"
end
diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb
index 84d48b4edb4..2adf71f2a18 100644
--- a/spec/requests/api/groups_spec.rb
+++ b/spec/requests/api/groups_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe API::Groups, feature_category: :subgroups do
+RSpec.describe API::Groups, feature_category: :groups_and_projects do
include GroupAPIHelpers
include UploadHelpers
include WorkhorseHelpers
diff --git a/spec/requests/api/members_spec.rb b/spec/requests/api/members_spec.rb
index 353fddcb08d..f3e5f3ab891 100644
--- a/spec/requests/api/members_spec.rb
+++ b/spec/requests/api/members_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe API::Members, feature_category: :subgroups do
+RSpec.describe API::Members, feature_category: :groups_and_projects do
let_it_be(:maintainer) { create(:user, username: 'maintainer_user') }
let_it_be(:maintainer2) { create(:user, username: 'user-with-maintainer-role') }
let_it_be(:developer) { create(:user) }
diff --git a/spec/requests/api/namespaces_spec.rb b/spec/requests/api/namespaces_spec.rb
index f268a092034..0ad9b3c82ab 100644
--- a/spec/requests/api/namespaces_spec.rb
+++ b/spec/requests/api/namespaces_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe API::Namespaces, :aggregate_failures, feature_category: :subgroups do
+RSpec.describe API::Namespaces, :aggregate_failures, feature_category: :groups_and_projects do
let_it_be(:admin) { create(:admin) }
let_it_be(:user) { create(:user) }
let_it_be(:group1) { create(:group, name: 'group.one') }
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 5dde98ceeef..1b08e7f0dc6 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -46,7 +46,7 @@ RSpec.shared_examples 'languages and percentages JSON response' do
end
end
-RSpec.describe API::Projects, :aggregate_failures, feature_category: :projects do
+RSpec.describe API::Projects, :aggregate_failures, feature_category: :groups_and_projects do
include ProjectForksHelper
include WorkhorseHelpers
include StubRequests
diff --git a/spec/requests/api/releases_spec.rb b/spec/requests/api/releases_spec.rb
index 0b5cc3611bd..a018b91019b 100644
--- a/spec/requests/api/releases_spec.rb
+++ b/spec/requests/api/releases_spec.rb
@@ -791,16 +791,16 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
name: 'New release',
tag_name: 'v0.1',
description: 'Super nice release',
- assets: {
- links: [
- {
- name: 'An example runbook link',
- url: 'https://example.com/runbook',
- link_type: 'runbook',
- filepath: '/permanent/path/to/runbook'
- }
- ]
- }
+ assets: { links: [link_asset] }
+ }
+ end
+
+ let(:link_asset) do
+ {
+ name: 'An example runbook link',
+ url: 'https://example.com/runbook',
+ link_type: 'runbook',
+ filepath: '/permanent/path/to/runbook'
}
end
@@ -906,8 +906,13 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
end
context 'when using `direct_asset_path` for the asset link' do
- before do
- params[:direct_asset_path] = params.delete(:filepath)
+ let(:link_asset) do
+ {
+ name: 'An example runbook link',
+ url: 'https://example.com/runbook',
+ link_type: 'runbook',
+ direct_asset_path: '/permanent/path/to/runbook'
+ }
end
it 'creates a new release successfully' do
@@ -915,8 +920,9 @@ RSpec.describe API::Releases, :aggregate_failures, feature_category: :release_or
post api("/projects/#{project.id}/releases", maintainer), params: params
end.to change { Release.count }.by(1)
- release = project.releases.last
+ expect(response).to have_gitlab_http_status(:created)
+ release = project.releases.last
expect(release.links.last.filepath).to eq('/permanent/path/to/runbook')
end
end
diff --git a/spec/requests/api/topics_spec.rb b/spec/requests/api/topics_spec.rb
index 560f22c94be..0d64a96acb8 100644
--- a/spec/requests/api/topics_spec.rb
+++ b/spec/requests/api/topics_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe API::Topics, :aggregate_failures, feature_category: :projects do
+RSpec.describe API::Topics, :aggregate_failures, feature_category: :groups_and_projects do
include WorkhorseHelpers
let_it_be(:file) { fixture_file_upload('spec/fixtures/dk.png') }
diff --git a/spec/requests/concerns/planning_hierarchy_spec.rb b/spec/requests/concerns/planning_hierarchy_spec.rb
index 89232916936..97b987fa770 100644
--- a/spec/requests/concerns/planning_hierarchy_spec.rb
+++ b/spec/requests/concerns/planning_hierarchy_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe PlanningHierarchy, type: :request, feature_category: :projects do
+RSpec.describe PlanningHierarchy, type: :request, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project, group: group) }
diff --git a/spec/requests/dashboard/projects_controller_spec.rb b/spec/requests/dashboard/projects_controller_spec.rb
index 752799196c9..478804bba29 100644
--- a/spec/requests/dashboard/projects_controller_spec.rb
+++ b/spec/requests/dashboard/projects_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Dashboard::ProjectsController, feature_category: :projects do
+RSpec.describe Dashboard::ProjectsController, feature_category: :groups_and_projects do
context 'token authentication' do
it_behaves_like 'authenticates sessionless user for the request spec', 'index atom', public_resource: false do
let(:url) { dashboard_projects_url(:atom) }
diff --git a/spec/requests/groups/autocomplete_sources_spec.rb b/spec/requests/groups/autocomplete_sources_spec.rb
index e44fb9f6c37..02fb04a4af8 100644
--- a/spec/requests/groups/autocomplete_sources_spec.rb
+++ b/spec/requests/groups/autocomplete_sources_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'groups autocomplete', feature_category: :subgroups do
+RSpec.describe 'groups autocomplete', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be_with_reload(:group) { create(:group, :private) }
diff --git a/spec/requests/groups_controller_spec.rb b/spec/requests/groups_controller_spec.rb
index 7fc14910819..cd4b32e4982 100644
--- a/spec/requests/groups_controller_spec.rb
+++ b/spec/requests/groups_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GroupsController, feature_category: :subgroups do
+RSpec.describe GroupsController, feature_category: :groups_and_projects do
context 'token authentication' do
context 'when public group' do
let_it_be(:public_group) { create(:group, :public) }
diff --git a/spec/requests/projects/redirect_controller_spec.rb b/spec/requests/projects/redirect_controller_spec.rb
index e828c546198..962d8062161 100644
--- a/spec/requests/projects/redirect_controller_spec.rb
+++ b/spec/requests/projects/redirect_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe "Projects::RedirectController requests", feature_category: :projects do
+RSpec.describe "Projects::RedirectController requests", feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
let_it_be(:private_project) { create(:project, :private) }
diff --git a/spec/requests/projects_controller_spec.rb b/spec/requests/projects_controller_spec.rb
index 613f528e8c2..a4cfad32e4a 100644
--- a/spec/requests/projects_controller_spec.rb
+++ b/spec/requests/projects_controller_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe ProjectsController, :with_license, feature_category: :projects do
+RSpec.describe ProjectsController, :with_license, feature_category: :groups_and_projects do
context 'token authentication' do
context 'when public project' do
let_it_be(:public_project) { create(:project, :public) }
diff --git a/spec/services/admin/plan_limits/update_service_spec.rb b/spec/services/admin/plan_limits/update_service_spec.rb
index 45b3ff890f1..4a384b98299 100644
--- a/spec/services/admin/plan_limits/update_service_spec.rb
+++ b/spec/services/admin/plan_limits/update_service_spec.rb
@@ -16,15 +16,16 @@ RSpec.describe Admin::PlanLimits::UpdateService, feature_category: :shared do
ci_registered_group_runners: 107,
ci_registered_project_runners: 108,
conan_max_file_size: 10,
+ enforcement_limit: 15,
generic_packages_max_file_size: 20,
helm_max_file_size: 25,
- maven_max_file_size: 30,
- npm_max_file_size: 40,
- nuget_max_file_size: 50,
- pypi_max_file_size: 60,
- terraform_module_max_file_size: 70,
- storage_size_limit: 80,
- notification_limit: 90,
+ notification_limit: 30,
+ maven_max_file_size: 40,
+ npm_max_file_size: 60,
+ nuget_max_file_size: 60,
+ pypi_max_file_size: 70,
+ terraform_module_max_file_size: 80,
+ storage_size_limit: 90,
pipeline_hierarchy_size: 250
}
end
diff --git a/spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb b/spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb
index e8f86b4d7c5..ca766590ada 100644
--- a/spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb
+++ b/spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe AuthorizedProjectUpdate::FindRecordsDueForRefreshService, feature_category: :projects do
+RSpec.describe AuthorizedProjectUpdate::FindRecordsDueForRefreshService, feature_category: :groups_and_projects do
# We're using let! here so that any expectations for the service class are not
# triggered twice.
let!(:project) { create(:project) }
diff --git a/spec/services/authorized_project_update/periodic_recalculate_service_spec.rb b/spec/services/authorized_project_update/periodic_recalculate_service_spec.rb
index 51cab6d188b..88099e76a8c 100644
--- a/spec/services/authorized_project_update/periodic_recalculate_service_spec.rb
+++ b/spec/services/authorized_project_update/periodic_recalculate_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe AuthorizedProjectUpdate::PeriodicRecalculateService, feature_category: :projects do
+RSpec.describe AuthorizedProjectUpdate::PeriodicRecalculateService, feature_category: :groups_and_projects do
subject(:service) { described_class.new }
describe '#execute' do
diff --git a/spec/services/authorized_project_update/project_access_changed_service_spec.rb b/spec/services/authorized_project_update/project_access_changed_service_spec.rb
index 7c09d7755ca..12c2f7cb5d5 100644
--- a/spec/services/authorized_project_update/project_access_changed_service_spec.rb
+++ b/spec/services/authorized_project_update/project_access_changed_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe AuthorizedProjectUpdate::ProjectAccessChangedService, feature_category: :projects do
+RSpec.describe AuthorizedProjectUpdate::ProjectAccessChangedService, feature_category: :groups_and_projects do
describe '#execute' do
it 'executes projects_authorizations refresh' do
expect(AuthorizedProjectUpdate::ProjectRecalculateWorker).to receive(:bulk_perform_async)
diff --git a/spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb b/spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb
index 7b2dd52810f..9cc31810b84 100644
--- a/spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb
+++ b/spec/services/authorized_project_update/project_recalculate_per_user_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe AuthorizedProjectUpdate::ProjectRecalculatePerUserService, '#execute', feature_category: :projects do
+RSpec.describe AuthorizedProjectUpdate::ProjectRecalculatePerUserService, '#execute', feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
let_it_be(:user) { create(:user) }
let_it_be(:another_user) { create(:user) }
diff --git a/spec/services/authorized_project_update/project_recalculate_service_spec.rb b/spec/services/authorized_project_update/project_recalculate_service_spec.rb
index 8360f3c67ab..4ccbaa3185d 100644
--- a/spec/services/authorized_project_update/project_recalculate_service_spec.rb
+++ b/spec/services/authorized_project_update/project_recalculate_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe AuthorizedProjectUpdate::ProjectRecalculateService, '#execute', feature_category: :projects do
+RSpec.describe AuthorizedProjectUpdate::ProjectRecalculateService, '#execute', feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
subject(:execute) { described_class.new(project).execute }
diff --git a/spec/services/groups/autocomplete_service_spec.rb b/spec/services/groups/autocomplete_service_spec.rb
index 9f55322e72d..4fb14b525ac 100644
--- a/spec/services/groups/autocomplete_service_spec.rb
+++ b/spec/services/groups/autocomplete_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::AutocompleteService, feature_category: :subgroups do
+RSpec.describe Groups::AutocompleteService, feature_category: :groups_and_projects do
let_it_be(:group, refind: true) { create(:group, :nested, :private, avatar: fixture_file_upload('spec/fixtures/dk.png')) }
let_it_be(:sub_group) { create(:group, :private, parent: group) }
diff --git a/spec/services/groups/create_service_spec.rb b/spec/services/groups/create_service_spec.rb
index 84794b5f6f8..2317c6fba61 100644
--- a/spec/services/groups/create_service_spec.rb
+++ b/spec/services/groups/create_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::CreateService, '#execute', feature_category: :subgroups do
+RSpec.describe Groups::CreateService, '#execute', feature_category: :groups_and_projects do
let!(:user) { create(:user) }
let!(:group_params) { { path: "group_path", visibility_level: Gitlab::VisibilityLevel::PUBLIC } }
diff --git a/spec/services/groups/destroy_service_spec.rb b/spec/services/groups/destroy_service_spec.rb
index 7c3710aeeb2..929f7d5b4e3 100644
--- a/spec/services/groups/destroy_service_spec.rb
+++ b/spec/services/groups/destroy_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::DestroyService, feature_category: :subgroups do
+RSpec.describe Groups::DestroyService, feature_category: :groups_and_projects do
let!(:user) { create(:user) }
let!(:group) { create(:group) }
let!(:nested_group) { create(:group, parent: group) }
diff --git a/spec/services/groups/group_links/create_service_spec.rb b/spec/services/groups/group_links/create_service_spec.rb
index ced87421858..8acbcdc77af 100644
--- a/spec/services/groups/group_links/create_service_spec.rb
+++ b/spec/services/groups/group_links/create_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::GroupLinks::CreateService, '#execute', feature_category: :subgroups do
+RSpec.describe Groups::GroupLinks::CreateService, '#execute', feature_category: :groups_and_projects do
let_it_be(:shared_with_group_parent) { create(:group, :private) }
let_it_be(:shared_with_group) { create(:group, :private, parent: shared_with_group_parent) }
let_it_be(:shared_with_group_child) { create(:group, :private, parent: shared_with_group) }
diff --git a/spec/services/groups/group_links/destroy_service_spec.rb b/spec/services/groups/group_links/destroy_service_spec.rb
index 5821ec44192..65f24323f8b 100644
--- a/spec/services/groups/group_links/destroy_service_spec.rb
+++ b/spec/services/groups/group_links/destroy_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::GroupLinks::DestroyService, '#execute', feature_category: :subgroups do
+RSpec.describe Groups::GroupLinks::DestroyService, '#execute', feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:group) { create(:group, :private) }
let_it_be(:shared_group) { create(:group, :private) }
diff --git a/spec/services/groups/group_links/update_service_spec.rb b/spec/services/groups/group_links/update_service_spec.rb
index f17d2f50a02..79fc25e111a 100644
--- a/spec/services/groups/group_links/update_service_spec.rb
+++ b/spec/services/groups/group_links/update_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::GroupLinks::UpdateService, '#execute', feature_category: :subgroups do
+RSpec.describe Groups::GroupLinks::UpdateService, '#execute', feature_category: :groups_and_projects do
let(:user) { create(:user) }
let_it_be(:group) { create(:group, :private) }
diff --git a/spec/services/groups/merge_requests_count_service_spec.rb b/spec/services/groups/merge_requests_count_service_spec.rb
index 32c4c618eda..cdcb344bd40 100644
--- a/spec/services/groups/merge_requests_count_service_spec.rb
+++ b/spec/services/groups/merge_requests_count_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::MergeRequestsCountService, :use_clean_rails_memory_store_caching, feature_category: :subgroups do
+RSpec.describe Groups::MergeRequestsCountService, :use_clean_rails_memory_store_caching, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) }
let_it_be(:group) { create(:group, :public) }
let_it_be(:project) { create(:project, :repository, namespace: group) }
diff --git a/spec/services/groups/nested_create_service_spec.rb b/spec/services/groups/nested_create_service_spec.rb
index 476bc2aa23c..1efb5bf0c9c 100644
--- a/spec/services/groups/nested_create_service_spec.rb
+++ b/spec/services/groups/nested_create_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::NestedCreateService, feature_category: :subgroups do
+RSpec.describe Groups::NestedCreateService, feature_category: :groups_and_projects do
let(:user) { create(:user) }
subject(:service) { described_class.new(user, params) }
diff --git a/spec/services/groups/open_issues_count_service_spec.rb b/spec/services/groups/open_issues_count_service_spec.rb
index 725b913bf15..ef3c86869a0 100644
--- a/spec/services/groups/open_issues_count_service_spec.rb
+++ b/spec/services/groups/open_issues_count_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::OpenIssuesCountService, :use_clean_rails_memory_store_caching, feature_category: :subgroups do
+RSpec.describe Groups::OpenIssuesCountService, :use_clean_rails_memory_store_caching, feature_category: :groups_and_projects do
let_it_be(:group) { create(:group, :public) }
let_it_be(:project) { create(:project, :public, namespace: group) }
let_it_be(:user) { create(:user) }
diff --git a/spec/services/groups/participants_service_spec.rb b/spec/services/groups/participants_service_spec.rb
index 37966a523c2..eee9cfce1b1 100644
--- a/spec/services/groups/participants_service_spec.rb
+++ b/spec/services/groups/participants_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::ParticipantsService, feature_category: :subgroups do
+RSpec.describe Groups::ParticipantsService, feature_category: :groups_and_projects do
describe '#group_members' do
let(:user) { create(:user) }
let(:parent_group) { create(:group) }
diff --git a/spec/services/groups/transfer_service_spec.rb b/spec/services/groups/transfer_service_spec.rb
index 8ee9a75bdf0..a3020241377 100644
--- a/spec/services/groups/transfer_service_spec.rb
+++ b/spec/services/groups/transfer_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::TransferService, :sidekiq_inline, feature_category: :subgroups do
+RSpec.describe Groups::TransferService, :sidekiq_inline, feature_category: :groups_and_projects do
shared_examples 'project namespace path is in sync with project path' do
it 'keeps project and project namespace attributes in sync' do
projects_with_project_namespace.each do |project|
diff --git a/spec/services/groups/update_service_spec.rb b/spec/services/groups/update_service_spec.rb
index 6baa8e5d6b6..2842097199f 100644
--- a/spec/services/groups/update_service_spec.rb
+++ b/spec/services/groups/update_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::UpdateService, feature_category: :subgroups do
+RSpec.describe Groups::UpdateService, feature_category: :groups_and_projects do
let!(:user) { create(:user) }
let!(:private_group) { create(:group, :private) }
let!(:internal_group) { create(:group, :internal) }
diff --git a/spec/services/groups/update_shared_runners_service_spec.rb b/spec/services/groups/update_shared_runners_service_spec.rb
index 48c81f109aa..0acf1ec3d35 100644
--- a/spec/services/groups/update_shared_runners_service_spec.rb
+++ b/spec/services/groups/update_shared_runners_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::UpdateSharedRunnersService, feature_category: :subgroups do
+RSpec.describe Groups::UpdateSharedRunnersService, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:group) { create(:group) }
let(:params) { {} }
diff --git a/spec/services/groups/update_statistics_service_spec.rb b/spec/services/groups/update_statistics_service_spec.rb
index 13a88839de0..6bab36eca89 100644
--- a/spec/services/groups/update_statistics_service_spec.rb
+++ b/spec/services/groups/update_statistics_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Groups::UpdateStatisticsService, feature_category: :subgroups do
+RSpec.describe Groups::UpdateStatisticsService, feature_category: :groups_and_projects do
let_it_be(:group, reload: true) { create(:group) }
let(:statistics) { %w(wiki_size) }
diff --git a/spec/services/jira/requests/projects/list_service_spec.rb b/spec/services/jira/requests/projects/list_service_spec.rb
index 37e9f66d273..f9e3a3e8510 100644
--- a/spec/services/jira/requests/projects/list_service_spec.rb
+++ b/spec/services/jira/requests/projects/list_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Jira::Requests::Projects::ListService, feature_category: :projects do
+RSpec.describe Jira::Requests::Projects::ListService, feature_category: :groups_and_projects do
include AfterNextHelpers
let(:jira_integration) { create(:jira_integration) }
diff --git a/spec/services/markup/rendering_service_spec.rb b/spec/services/markup/rendering_service_spec.rb
index 952ee33da98..1a30fcb648d 100644
--- a/spec/services/markup/rendering_service_spec.rb
+++ b/spec/services/markup/rendering_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Markup::RenderingService, feature_category: :projects do
+RSpec.describe Markup::RenderingService, feature_category: :groups_and_projects do
describe '#execute' do
let_it_be(:project) { create(:project, :repository) }
let_it_be(:user) do
diff --git a/spec/services/members/approve_access_request_service_spec.rb b/spec/services/members/approve_access_request_service_spec.rb
index 6c0d47e98ba..460b1caad5b 100644
--- a/spec/services/members/approve_access_request_service_spec.rb
+++ b/spec/services/members/approve_access_request_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::ApproveAccessRequestService, feature_category: :subgroups do
+RSpec.describe Members::ApproveAccessRequestService, feature_category: :groups_and_projects do
let(:project) { create(:project, :public) }
let(:group) { create(:group, :public) }
let(:current_user) { create(:user) }
diff --git a/spec/services/members/base_service_spec.rb b/spec/services/members/base_service_spec.rb
index 514c25fbc03..09c903bb82b 100644
--- a/spec/services/members/base_service_spec.rb
+++ b/spec/services/members/base_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::BaseService, feature_category: :projects do
+RSpec.describe Members::BaseService, feature_category: :groups_and_projects do
let_it_be(:access_requester) { create(:group_member) }
describe '#resolve_access_request_todos' do
diff --git a/spec/services/members/create_service_spec.rb b/spec/services/members/create_service_spec.rb
index 13f233162cd..c9dee0aadda 100644
--- a/spec/services/members/create_service_spec.rb
+++ b/spec/services/members/create_service_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe Members::CreateService, :aggregate_failures, :clean_gitlab_redis_cache, :clean_gitlab_redis_shared_state, :sidekiq_inline,
- feature_category: :subgroups do
+ feature_category: :groups_and_projects do
let_it_be(:source, reload: true) { create(:project) }
let_it_be(:user) { create(:user) }
let_it_be(:member) { create(:user) }
diff --git a/spec/services/members/creator_service_spec.rb b/spec/services/members/creator_service_spec.rb
index 8191eefbe95..e58d501d02d 100644
--- a/spec/services/members/creator_service_spec.rb
+++ b/spec/services/members/creator_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::CreatorService, feature_category: :subgroups do
+RSpec.describe Members::CreatorService, feature_category: :groups_and_projects do
let_it_be(:source, reload: true) { create(:group, :public) }
let_it_be(:member_type) { GroupMember }
let_it_be(:user) { create(:user) }
diff --git a/spec/services/members/destroy_service_spec.rb b/spec/services/members/destroy_service_spec.rb
index 498b9576875..4218a3297b3 100644
--- a/spec/services/members/destroy_service_spec.rb
+++ b/spec/services/members/destroy_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::DestroyService, feature_category: :subgroups do
+RSpec.describe Members::DestroyService, feature_category: :groups_and_projects do
let(:current_user) { create(:user) }
let(:member_user) { create(:user) }
let(:group) { create(:group, :public) }
diff --git a/spec/services/members/groups/creator_service_spec.rb b/spec/services/members/groups/creator_service_spec.rb
index 4c13106145e..4716bc7485b 100644
--- a/spec/services/members/groups/creator_service_spec.rb
+++ b/spec/services/members/groups/creator_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::Groups::CreatorService, feature_category: :subgroups do
+RSpec.describe Members::Groups::CreatorService, feature_category: :groups_and_projects do
let_it_be(:source, reload: true) { create(:group, :public) }
let_it_be(:source2, reload: true) { create(:group, :public) }
let_it_be(:user) { create(:user) }
diff --git a/spec/services/members/import_project_team_service_spec.rb b/spec/services/members/import_project_team_service_spec.rb
index af9b30aa0b3..7dcdb70f2cd 100644
--- a/spec/services/members/import_project_team_service_spec.rb
+++ b/spec/services/members/import_project_team_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::ImportProjectTeamService, feature_category: :subgroups do
+RSpec.describe Members::ImportProjectTeamService, feature_category: :groups_and_projects do
describe '#execute' do
let_it_be(:source_project) { create(:project) }
let_it_be(:target_project) { create(:project) }
diff --git a/spec/services/members/invitation_reminder_email_service_spec.rb b/spec/services/members/invitation_reminder_email_service_spec.rb
index da23965eabe..2b72a4919b4 100644
--- a/spec/services/members/invitation_reminder_email_service_spec.rb
+++ b/spec/services/members/invitation_reminder_email_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::InvitationReminderEmailService, feature_category: :subgroups do
+RSpec.describe Members::InvitationReminderEmailService, feature_category: :groups_and_projects do
describe 'sending invitation reminders' do
subject { described_class.new(invitation).execute }
diff --git a/spec/services/members/invite_member_builder_spec.rb b/spec/services/members/invite_member_builder_spec.rb
index e7bbec4e0ef..62c33b42fa2 100644
--- a/spec/services/members/invite_member_builder_spec.rb
+++ b/spec/services/members/invite_member_builder_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::InviteMemberBuilder, feature_category: :subgroups do
+RSpec.describe Members::InviteMemberBuilder, feature_category: :groups_and_projects do
let_it_be(:source) { create(:group) }
let_it_be(:existing_member) { create(:group_member) }
diff --git a/spec/services/members/invite_service_spec.rb b/spec/services/members/invite_service_spec.rb
index 22294b3fda5..1c0466980f4 100644
--- a/spec/services/members/invite_service_spec.rb
+++ b/spec/services/members/invite_service_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
RSpec.describe Members::InviteService, :aggregate_failures, :clean_gitlab_redis_shared_state, :sidekiq_inline,
- feature_category: :subgroups do
+ feature_category: :groups_and_projects do
let_it_be(:project, reload: true) { create(:project) }
let_it_be(:user) { project.first_owner }
let_it_be(:project_user) { create(:user) }
diff --git a/spec/services/members/projects/creator_service_spec.rb b/spec/services/members/projects/creator_service_spec.rb
index 7ec7361a285..7f2b1869847 100644
--- a/spec/services/members/projects/creator_service_spec.rb
+++ b/spec/services/members/projects/creator_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::Projects::CreatorService, feature_category: :projects do
+RSpec.describe Members::Projects::CreatorService, feature_category: :groups_and_projects do
let_it_be(:source, reload: true) { create(:project, :public) }
let_it_be(:source2, reload: true) { create(:project, :public) }
let_it_be(:user) { create(:user) }
diff --git a/spec/services/members/request_access_service_spec.rb b/spec/services/members/request_access_service_spec.rb
index ef8ee6492ab..68eef253452 100644
--- a/spec/services/members/request_access_service_spec.rb
+++ b/spec/services/members/request_access_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::RequestAccessService, feature_category: :subgroups do
+RSpec.describe Members::RequestAccessService, feature_category: :groups_and_projects do
let(:user) { create(:user) }
shared_examples 'a service raising Gitlab::Access::AccessDeniedError' do
diff --git a/spec/services/members/standard_member_builder_spec.rb b/spec/services/members/standard_member_builder_spec.rb
index 69b764f3f16..96dda83fe54 100644
--- a/spec/services/members/standard_member_builder_spec.rb
+++ b/spec/services/members/standard_member_builder_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::StandardMemberBuilder, feature_category: :subgroups do
+RSpec.describe Members::StandardMemberBuilder, feature_category: :groups_and_projects do
let_it_be(:source) { create(:group) }
let_it_be(:existing_member) { create(:group_member) }
diff --git a/spec/services/members/unassign_issuables_service_spec.rb b/spec/services/members/unassign_issuables_service_spec.rb
index 37dfbd16c56..9623cef868b 100644
--- a/spec/services/members/unassign_issuables_service_spec.rb
+++ b/spec/services/members/unassign_issuables_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::UnassignIssuablesService, feature_category: :subgroups do
+RSpec.describe Members::UnassignIssuablesService, feature_category: :groups_and_projects do
let_it_be(:group) { create(:group, :private) }
let_it_be(:project) { create(:project, group: group) }
let_it_be(:user, reload: true) { create(:user) }
diff --git a/spec/services/members/update_service_spec.rb b/spec/services/members/update_service_spec.rb
index b94b44c8485..1c4b1abcfdb 100644
--- a/spec/services/members/update_service_spec.rb
+++ b/spec/services/members/update_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Members::UpdateService, feature_category: :subgroups do
+RSpec.describe Members::UpdateService, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project, :public) }
let_it_be(:group) { create(:group, :public) }
let_it_be(:current_user) { create(:user) }
diff --git a/spec/services/namespace_settings/update_service_spec.rb b/spec/services/namespace_settings/update_service_spec.rb
index 5f1ff6746bc..daffae1dda7 100644
--- a/spec/services/namespace_settings/update_service_spec.rb
+++ b/spec/services/namespace_settings/update_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe NamespaceSettings::UpdateService, feature_category: :subgroups do
+RSpec.describe NamespaceSettings::UpdateService, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:group) { create(:group) }
let(:settings) { {} }
diff --git a/spec/services/namespaces/statistics_refresher_service_spec.rb b/spec/services/namespaces/statistics_refresher_service_spec.rb
index 750f98615cc..4c33e5e80d6 100644
--- a/spec/services/namespaces/statistics_refresher_service_spec.rb
+++ b/spec/services/namespaces/statistics_refresher_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Namespaces::StatisticsRefresherService, '#execute', feature_category: :subgroups do
+RSpec.describe Namespaces::StatisticsRefresherService, '#execute', feature_category: :groups_and_projects do
let(:group) { create(:group) }
let(:subgroup) { create(:group, parent: group) }
let(:projects) { create_list(:project, 5, namespace: group) }
diff --git a/spec/services/packages/debian/create_package_file_service_spec.rb b/spec/services/packages/debian/create_package_file_service_spec.rb
index b527bf8c1de..7dfbfa0b429 100644
--- a/spec/services/packages/debian/create_package_file_service_spec.rb
+++ b/spec/services/packages/debian/create_package_file_service_spec.rb
@@ -35,7 +35,6 @@ RSpec.describe Packages::Debian::CreatePackageFileService, feature_category: :pa
expect(::Packages::Debian::ProcessPackageFileWorker).not_to receive(:perform_async)
end
- expect(::Packages::Debian::ProcessChangesWorker).not_to receive(:perform_async)
expect(package_file).to be_valid
expect(package_file.file.read).to start_with('!<arch>')
expect(package_file.size).to eq(1124)
@@ -52,8 +51,8 @@ RSpec.describe Packages::Debian::CreatePackageFileService, feature_category: :pa
shared_examples 'a valid changes' do
it 'creates a new package file', :aggregate_failures do
- expect(::Packages::Debian::ProcessChangesWorker)
- .to receive(:perform_async).with(an_instance_of(Integer), current_user.id)
+ expect(::Packages::Debian::ProcessPackageFileWorker)
+ .to receive(:perform_async).with(an_instance_of(Integer), nil, nil)
expect(package_file).to be_valid
expect(package_file.file.read).to start_with('Format: 1.8')
diff --git a/spec/services/packages/debian/extract_changes_metadata_service_spec.rb b/spec/services/packages/debian/extract_changes_metadata_service_spec.rb
index a22c1fc7acc..68137c3abe1 100644
--- a/spec/services/packages/debian/extract_changes_metadata_service_spec.rb
+++ b/spec/services/packages/debian/extract_changes_metadata_service_spec.rb
@@ -1,13 +1,17 @@
# frozen_string_literal: true
+
require 'spec_helper'
RSpec.describe Packages::Debian::ExtractChangesMetadataService, feature_category: :package_registry do
describe '#execute' do
let_it_be(:incoming) { create(:debian_incoming) }
+ let_it_be(:temp_package) do
+ create(:debian_package, without_package_files: true, with_changes_file: true, project: incoming.project)
+ end
let(:source_file) { incoming.package_files.first }
let(:dsc_file) { incoming.package_files.second }
- let(:changes_file) { incoming.package_files.last }
+ let(:changes_file) { temp_package.package_files.first }
let(:service) { described_class.new(changes_file) }
subject { service.execute }
diff --git a/spec/services/packages/debian/process_changes_service_spec.rb b/spec/services/packages/debian/process_changes_service_spec.rb
index dbfcc359f9c..39b917cf1bc 100644
--- a/spec/services/packages/debian/process_changes_service_spec.rb
+++ b/spec/services/packages/debian/process_changes_service_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe Packages::Debian::ProcessChangesService, feature_category: :packa
let_it_be(:user) { create(:user) }
let_it_be_with_reload(:distribution) { create(:debian_project_distribution, :with_file, suite: 'unstable') }
- let!(:incoming) { create(:debian_incoming, project: distribution.project) }
+ let!(:incoming) { create(:debian_incoming, project: distribution.project, with_changes_file: true) }
let(:package_file) { incoming.package_files.with_file_name('sample_1.2.3~alpha2_amd64.changes').first }
diff --git a/spec/services/packages/debian/process_package_file_service_spec.rb b/spec/services/packages/debian/process_package_file_service_spec.rb
index 7782b5fc1a6..d4e37403b87 100644
--- a/spec/services/packages/debian/process_package_file_service_spec.rb
+++ b/spec/services/packages/debian/process_package_file_service_spec.rb
@@ -3,211 +3,408 @@
require 'spec_helper'
RSpec.describe Packages::Debian::ProcessPackageFileService, feature_category: :package_registry do
+ include ExclusiveLeaseHelpers
+
+ let_it_be(:distribution) { create(:debian_project_distribution, :with_file, suite: 'unstable') }
+
+ let(:debian_file_metadatum) { package_file.debian_file_metadatum }
+ let(:service) { described_class.new(package_file, distribution_name, component_name) }
+
describe '#execute' do
- let_it_be_with_reload(:distribution) { create(:debian_project_distribution, :with_suite, :with_file) }
+ using RSpec::Parameterized::TableSyntax
+
+ subject { service.execute }
+
+ shared_examples 'common validations' do
+ context 'with package file without Debian metadata' do
+ let!(:package_file) { create(:debian_package_file, without_loaded_metadatum: true) }
+
+ let(:expected_error) { ArgumentError }
+ let(:expected_message) { 'package file without Debian metadata' }
+
+ it_behaves_like 'raises error'
+ end
+
+ context 'with already processed package file' do
+ let!(:package_file) { create(:debian_package_file) }
+
+ let(:expected_error) { ArgumentError }
+ let(:expected_message) { 'already processed package file' }
+
+ it_behaves_like 'raises error'
+ end
+
+ context 'without a distribution' do
+ let(:expected_error) { ActiveRecord::RecordNotFound }
+ let(:expected_message) { /^Couldn't find Packages::Debian::ProjectDistribution with / }
+
+ before do
+ # Workaround ActiveRecord cache
+ Packages::Debian::ProjectDistribution.find(distribution.id).delete
+ end
+
+ it_behaves_like 'raises error'
+ end
+
+ context 'when there is a matching published package in another distribution' do
+ let!(:matching_package) do
+ create(
+ :debian_package,
+ project: distribution.project,
+ name: 'sample',
+ version: '1.2.3~alpha2'
+ )
+ end
+
+ let(:expected_error) { ArgumentError }
+
+ let(:expected_message) do
+ "Debian package sample 1.2.3~alpha2 exists in distribution #{matching_package.debian_distribution.codename}"
+ end
+
+ it_behaves_like 'raises error'
+ end
+ end
+
+ shared_examples 'raises error' do
+ it 'raises error', :aggregate_failures do
+ expect(::Packages::Debian::GenerateDistributionWorker).not_to receive(:perform_async)
+ expect { subject }
+ .to not_change(Packages::Package, :count)
+ .and not_change(Packages::PackageFile, :count)
+ .and not_change { Packages::Debian::Publication.count }
+ .and not_change(package.package_files, :count)
+ .and not_change { package.reload.name }
+ .and not_change { package.version }
+ .and not_change { package.status }
+ .and not_change { debian_file_metadatum&.reload&.file_type }
+ .and not_change { debian_file_metadatum&.component }
+ .and raise_error(expected_error, expected_message)
+ end
+ end
- let!(:package) { create(:debian_package, :processing, project: distribution.project, published_in: nil) }
- let(:distribution_name) { distribution.codename }
- let(:component_name) { 'main' }
- let(:debian_file_metadatum) { package_file.debian_file_metadatum }
+ shared_examples 'does nothing' do
+ it 'does nothing', :aggregate_failures do
+ expect(::Packages::Debian::GenerateDistributionWorker).not_to receive(:perform_async)
+ expect { subject }
+ .to not_change(Packages::Package, :count)
+ .and not_change(Packages::PackageFile, :count)
+ .and not_change { Packages::Debian::Publication.count }
+ .and not_change(package.package_files, :count)
+ .and not_change { package.reload.name }
+ .and not_change { package.version }
+ .and not_change { package.status }
+ .and not_change { debian_file_metadatum&.reload&.file_type }
+ .and not_change { debian_file_metadatum&.component }
+ end
+ end
- subject { described_class.new(package_file, distribution_name, component_name) }
+ shared_examples 'updates package and changes file' do
+ it 'updates package and changes file', :aggregate_failures do
+ expect(::Packages::Debian::GenerateDistributionWorker)
+ .to receive(:perform_async).with(:project, distribution.id)
+ expect { subject }
+ .to not_change(Packages::Package, :count)
+ .and not_change(Packages::PackageFile, :count)
+ .and change { Packages::Debian::Publication.count }.by(1)
+ .and change { package.package_files.count }.from(1).to(8)
+ .and change { package.reload.name }.to('sample')
+ .and change { package.version }.to('1.2.3~alpha2')
+ .and change { package.status }.from('processing').to('default')
+ .and change { package.debian_publication }.from(nil)
+ .and change { debian_file_metadatum.file_type }.from('unknown').to('changes')
+ .and not_change { debian_file_metadatum.component }
+ end
+ end
shared_examples 'updates package and package file' do
it 'updates package and package file', :aggregate_failures do
expect(::Packages::Debian::GenerateDistributionWorker)
.to receive(:perform_async).with(:project, distribution.id)
- expect { subject.execute }
+ expect { subject }
.to not_change(Packages::Package, :count)
.and not_change(Packages::PackageFile, :count)
.and change { Packages::Debian::Publication.count }.by(1)
.and not_change(package.package_files, :count)
.and change { package.reload.name }.to('sample')
- .and change { package.reload.version }.to('1.2.3~alpha2')
- .and change { package.reload.status }.from('processing').to('default')
- .and change { package.reload.debian_publication }.from(nil)
+ .and change { package.version }.to('1.2.3~alpha2')
+ .and change { package.status }.from('processing').to('default')
+ .and change { package.debian_publication }.from(nil)
.and change { debian_file_metadatum.file_type }.from('unknown').to(expected_file_type)
.and change { debian_file_metadatum.component }.from(nil).to(component_name)
end
end
- using RSpec::Parameterized::TableSyntax
+ context 'with a changes file' do
+ let!(:incoming) { create(:debian_incoming, project: distribution.project) }
+ let!(:temporary_with_changes) { create(:debian_temporary_with_changes, project: distribution.project) }
+ let(:package) { temporary_with_changes }
- where(:case_name, :expected_file_type, :file_name, :component_name) do
- 'with a deb' | 'deb' | 'libsample0_1.2.3~alpha2_amd64.deb' | 'main'
- 'with an udeb' | 'udeb' | 'sample-udeb_1.2.3~alpha2_amd64.udeb' | 'contrib'
- 'with an ddeb' | 'ddeb' | 'sample-ddeb_1.2.3~alpha2_amd64.ddeb' | 'main'
- end
+ let(:package_file) { temporary_with_changes.package_files.first }
+ let(:distribution_name) { nil }
+ let(:component_name) { nil }
- with_them do
- context 'with Debian package file' do
- let(:package_file) { package.package_files.with_file_name(file_name).first }
+ it_behaves_like 'common validations'
- context 'when there is no matching published package' do
- it_behaves_like 'updates package and package file'
+ context 'with distribution_name' do
+ let(:distribution_name) { distribution.codename }
+ let(:expected_error) { ArgumentError }
+ let(:expected_message) { 'unwanted distribution name' }
- context 'with suite as distribution name' do
- let(:distribution_name) { distribution.suite }
+ it_behaves_like 'raises error'
+ end
- it_behaves_like 'updates package and package file'
- end
+ context 'with component_name' do
+ let(:component_name) { 'main' }
+ let(:expected_error) { ArgumentError }
+ let(:expected_message) { 'unwanted component name' }
+
+ it_behaves_like 'raises error'
+ end
+
+ context 'with crafted file_metadata' do
+ let(:complete_file_metadata) do
+ {
+ file_type: :changes,
+ fields: {
+ 'Source' => 'abc',
+ 'Version' => '1.0',
+ 'Distribution' => 'sid'
+ }
+ }
end
- context 'when there is a matching published package' do
- let!(:matching_package) do
- create(
- :debian_package,
- project: distribution.project,
- published_in: distribution,
- name: 'sample',
- version: '1.2.3~alpha2'
- )
- end
+ let(:expected_error) { ArgumentError }
- it 'reuses existing package and update package file', :aggregate_failures do
- expect(::Packages::Debian::GenerateDistributionWorker)
- .to receive(:perform_async).with(:project, distribution.id)
- expect { subject.execute }
- .to change { Packages::Package.count }.from(2).to(1)
- .and change { Packages::PackageFile.count }.from(16).to(9)
- .and not_change(Packages::Debian::Publication, :count)
- .and change { package.package_files.count }.from(8).to(0)
- .and change { package_file.package }.from(package).to(matching_package)
- .and not_change(matching_package, :name)
- .and not_change(matching_package, :version)
- .and change { debian_file_metadatum.file_type }.from('unknown').to(expected_file_type)
- .and change { debian_file_metadatum.component }.from(nil).to(component_name)
-
- expect { package.reload }
- .to raise_error(ActiveRecord::RecordNotFound)
+ before do
+ allow_next_instance_of(::Packages::Debian::ExtractChangesMetadataService) do |extract_changes_metadata_svc|
+ allow(extract_changes_metadata_svc).to receive(:execute).and_return(file_metadata)
end
end
- context 'when there is a matching published package in another distribution' do
- let!(:matching_package) do
- create(
- :debian_package,
- project: distribution.project,
- name: 'sample',
- version: '1.2.3~alpha2'
- )
- end
+ context 'with missing Source field' do
+ let(:file_metadata) { complete_file_metadata.tap { |m| m[:fields].delete 'Source' } }
+ let(:expected_message) { 'missing Source field' }
- it 'raise ArgumentError', :aggregate_failures do
- expect(::Packages::Debian::GenerateDistributionWorker).not_to receive(:perform_async)
- expect { subject.execute }
- .to not_change(Packages::Package, :count)
- .and not_change(Packages::PackageFile, :count)
- .and not_change(package.package_files, :count)
- .and raise_error(ArgumentError, "Debian package sample 1.2.3~alpha2 exists " \
- "in distribution #{matching_package.debian_distribution.codename}")
- end
+ it_behaves_like 'raises error'
end
- context 'when there is a matching published package pending destruction' do
- let!(:matching_package) do
- create(
- :debian_package,
- :pending_destruction,
- project: distribution.project,
- published_in: distribution,
- name: 'sample',
- version: '1.2.3~alpha2'
- )
- end
+ context 'with missing Version field' do
+ let(:file_metadata) { complete_file_metadata.tap { |m| m[:fields].delete 'Version' } }
+ let(:expected_message) { 'missing Version field' }
+
+ it_behaves_like 'raises error'
+ end
+
+ context 'with missing Distribution field' do
+ let(:file_metadata) { complete_file_metadata.tap { |m| m[:fields].delete 'Distribution' } }
+ let(:expected_message) { 'missing Distribution field' }
- it_behaves_like 'updates package and package file'
+ it_behaves_like 'raises error'
end
end
- end
- context 'without a distribution' do
- let(:package_file) { package.package_files.with_file_name('libsample0_1.2.3~alpha2_amd64.deb').first }
- let(:component_name) { 'main' }
+ context 'when lease is already taken' do
+ before do
+ stub_exclusive_lease_taken(
+ "packages:debian:process_package_file_service:#{distribution.project_id}_sample_1.2.3~alpha2",
+ timeout: Packages::Debian::ProcessPackageFileService::DEFAULT_LEASE_TIMEOUT)
+ end
- before do
- distribution.destroy!
+ it_behaves_like 'does nothing'
end
- it 'raise ActiveRecord::RecordNotFound', :aggregate_failures do
- expect(::Packages::Debian::GenerateDistributionWorker).not_to receive(:perform_async)
- expect { subject.execute }
- .to not_change(Packages::Package, :count)
- .and not_change(Packages::PackageFile, :count)
- .and not_change(package.package_files, :count)
- .and raise_error(ActiveRecord::RecordNotFound)
+ context 'when there is no matching published package' do
+ it_behaves_like 'updates package and changes file'
end
- end
- context 'without distribution name' do
- let!(:package_file) { create(:debian_package_file, without_loaded_metadatum: true) }
- let(:distribution_name) { '' }
+ context 'when there is a matching published package' do
+ let!(:matching_package) do
+ create(
+ :debian_package,
+ project: distribution.project,
+ published_in: distribution,
+ name: 'sample',
+ version: '1.2.3~alpha2'
+ )
+ end
- it 'raise ArgumentError', :aggregate_failures do
- expect(::Packages::Debian::GenerateDistributionWorker).not_to receive(:perform_async)
- expect { subject.execute }
- .to not_change(Packages::Package, :count)
- .and not_change(Packages::PackageFile, :count)
- .and not_change(package.package_files, :count)
- .and raise_error(ArgumentError, 'missing distribution name')
+ it 'reuses existing package and update package file', :aggregate_failures do
+ expect(::Packages::Debian::GenerateDistributionWorker)
+ .to receive(:perform_async).with(:project, distribution.id)
+ expect { subject }
+ .to change { Packages::Package.count }.from(3).to(2)
+ .and not_change { Packages::PackageFile.count }
+ .and not_change(Packages::Debian::Publication, :count)
+ .and change { package.package_files.count }.from(1).to(0)
+ .and change { incoming.package_files.count }.from(7).to(0)
+ .and change { matching_package.package_files.count }.from(7).to(15)
+ .and change { package_file.package }.from(package).to(matching_package)
+ .and not_change(matching_package, :name)
+ .and not_change(matching_package, :version)
+ .and change { debian_file_metadatum.file_type }.from('unknown').to('changes')
+ .and not_change { debian_file_metadatum.component }
+
+ expect { package.reload }
+ .to raise_error(ActiveRecord::RecordNotFound)
+ end
end
- end
- context 'without component name' do
- let!(:package_file) { create(:debian_package_file, without_loaded_metadatum: true) }
- let(:component_name) { '' }
+ context 'when there is a matching published package pending destruction' do
+ let!(:matching_package) do
+ create(
+ :debian_package,
+ :pending_destruction,
+ project: distribution.project,
+ published_in: distribution,
+ name: 'sample',
+ version: '1.2.3~alpha2'
+ )
+ end
- it 'raise ArgumentError', :aggregate_failures do
- expect(::Packages::Debian::GenerateDistributionWorker).not_to receive(:perform_async)
- expect { subject.execute }
- .to not_change(Packages::Package, :count)
- .and not_change(Packages::PackageFile, :count)
- .and not_change(package.package_files, :count)
- .and raise_error(ArgumentError, 'missing component name')
+ it_behaves_like 'updates package and changes file'
end
end
- context 'with package file without Debian metadata' do
- let!(:package_file) { create(:debian_package_file, without_loaded_metadatum: true) }
+ context 'with a package file' do
+ let!(:temporary_with_files) { create(:debian_temporary_with_files, project: distribution.project) }
+ let(:package) { temporary_with_files }
+
+ let(:package_file) { package.package_files.with_file_name('libsample0_1.2.3~alpha2_amd64.deb').first }
+ let(:distribution_name) { distribution.codename }
let(:component_name) { 'main' }
- it 'raise ArgumentError', :aggregate_failures do
- expect(::Packages::Debian::GenerateDistributionWorker).not_to receive(:perform_async)
- expect { subject.execute }
- .to not_change(Packages::Package, :count)
- .and not_change(Packages::PackageFile, :count)
- .and not_change(package.package_files, :count)
- .and raise_error(ArgumentError, 'package file without Debian metadata')
+ where(:case_name, :expected_file_type, :file_name, :component_name) do
+ 'with a deb' | 'deb' | 'libsample0_1.2.3~alpha2_amd64.deb' | 'main'
+ 'with an udeb' | 'udeb' | 'sample-udeb_1.2.3~alpha2_amd64.udeb' | 'contrib'
+ 'with an ddeb' | 'ddeb' | 'sample-ddeb_1.2.3~alpha2_amd64.ddeb' | 'main'
end
- end
- context 'with already processed package file' do
- let_it_be(:package_file) { create(:debian_package_file) }
+ with_them do
+ context 'with Debian package file' do
+ let(:package_file) { package.package_files.with_file_name(file_name).first }
- let(:component_name) { 'main' }
+ it_behaves_like 'common validations'
- it 'raise ArgumentError', :aggregate_failures do
- expect(::Packages::Debian::GenerateDistributionWorker).not_to receive(:perform_async)
- expect { subject.execute }
- .to not_change(Packages::Package, :count)
- .and not_change(Packages::PackageFile, :count)
- .and not_change(package.package_files, :count)
- .and raise_error(ArgumentError, 'already processed package file')
+ context 'without distribution name' do
+ let(:distribution_name) { '' }
+ let(:expected_error) { ArgumentError }
+ let(:expected_message) { 'missing distribution name' }
+
+ it_behaves_like 'raises error'
+ end
+
+ context 'without component name' do
+ let(:component_name) { '' }
+ let(:expected_error) { ArgumentError }
+ let(:expected_message) { 'missing component name' }
+
+ it_behaves_like 'raises error'
+ end
+
+ context 'with invalid package file type' do
+ let(:package_file) { package.package_files.with_file_name('sample_1.2.3~alpha2.tar.xz').first }
+ let(:expected_error) { ArgumentError }
+ let(:expected_message) { 'invalid package file type: source' }
+
+ it_behaves_like 'raises error'
+ end
+
+ context 'when lease is already taken' do
+ before do
+ stub_exclusive_lease_taken(
+ "packages:debian:process_package_file_service:#{distribution.project_id}_sample_1.2.3~alpha2",
+ timeout: Packages::Debian::ProcessPackageFileService::DEFAULT_LEASE_TIMEOUT)
+ end
+
+ it_behaves_like 'does nothing'
+ end
+
+ context 'when there is no matching published package' do
+ it_behaves_like 'updates package and package file'
+
+ context 'with suite as distribution name' do
+ let(:distribution_name) { distribution.suite }
+
+ it_behaves_like 'updates package and package file'
+ end
+ end
+
+ context 'when there is a matching published package' do
+ let!(:matching_package) do
+ create(
+ :debian_package,
+ project: distribution.project,
+ published_in: distribution,
+ name: 'sample',
+ version: '1.2.3~alpha2'
+ )
+ end
+
+ it 'reuses existing package and update package file', :aggregate_failures do
+ expect(::Packages::Debian::GenerateDistributionWorker)
+ .to receive(:perform_async).with(:project, distribution.id)
+ expect { subject }
+ .to change { Packages::Package.count }.from(2).to(1)
+ .and change { Packages::PackageFile.count }.from(14).to(8)
+ .and not_change(Packages::Debian::Publication, :count)
+ .and change { package.package_files.count }.from(7).to(0)
+ .and change { package_file.package }.from(package).to(matching_package)
+ .and not_change(matching_package, :name)
+ .and not_change(matching_package, :version)
+ .and change { debian_file_metadatum.file_type }.from('unknown').to(expected_file_type)
+ .and change { debian_file_metadatum.component }.from(nil).to(component_name)
+
+ expect { package.reload }
+ .to raise_error(ActiveRecord::RecordNotFound)
+ end
+ end
+
+ context 'when there is a matching published package pending destruction' do
+ let!(:matching_package) do
+ create(
+ :debian_package,
+ :pending_destruction,
+ project: distribution.project,
+ published_in: distribution,
+ name: 'sample',
+ version: '1.2.3~alpha2'
+ )
+ end
+
+ it_behaves_like 'updates package and package file'
+ end
+ end
end
end
+ end
+
+ describe '#lease_key' do
+ let(:prefix) { 'packages:debian:process_package_file_service' }
+
+ subject { service.send(:lease_key) }
+
+ context 'with a changes file' do
+ let!(:incoming) { create(:debian_incoming, project: distribution.project) }
+ let!(:temporary_with_changes) { create(:debian_temporary_with_changes, project: distribution.project) }
+ let(:package) { temporary_with_changes }
+
+ let(:package_file) { temporary_with_changes.package_files.first }
+ let(:distribution_name) { nil }
+ let(:component_name) { nil }
+
+ it { is_expected.to eq("#{prefix}:#{distribution.project_id}_sample_1.2.3~alpha2") }
+ end
+
+ context 'with a package file' do
+ let!(:temporary_with_files) { create(:debian_temporary_with_files, project: distribution.project) }
+ let(:package) { temporary_with_files }
- context 'with invalid package file type' do
- let(:package_file) { package.package_files.with_file_name('sample_1.2.3~alpha2.tar.xz').first }
+ let(:package_file) { package.package_files.with_file_name('libsample0_1.2.3~alpha2_amd64.deb').first }
+ let(:distribution_name) { distribution.codename }
let(:component_name) { 'main' }
- it 'raise ArgumentError', :aggregate_failures do
- expect(::Packages::Debian::GenerateDistributionWorker).not_to receive(:perform_async)
- expect { subject.execute }
- .to not_change(Packages::Package, :count)
- .and not_change(Packages::PackageFile, :count)
- .and not_change(package.package_files, :count)
- .and raise_error(ArgumentError, 'invalid package file type: source')
- end
+ it { is_expected.to eq("#{prefix}:#{distribution.project_id}_sample_1.2.3~alpha2") }
end
end
end
diff --git a/spec/services/projects/after_rename_service_spec.rb b/spec/services/projects/after_rename_service_spec.rb
index 3097d6d1498..411ff5662d4 100644
--- a/spec/services/projects/after_rename_service_spec.rb
+++ b/spec/services/projects/after_rename_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::AfterRenameService, feature_category: :projects do
+RSpec.describe Projects::AfterRenameService, feature_category: :groups_and_projects do
let(:legacy_storage) { Storage::LegacyProject.new(project) }
let(:hashed_storage) { Storage::Hashed.new(project) }
let!(:path_before_rename) { project.path }
diff --git a/spec/services/projects/alerting/notify_service_spec.rb b/spec/services/projects/alerting/notify_service_spec.rb
index 8cd9b5d3e00..bbe69e4102f 100644
--- a/spec/services/projects/alerting/notify_service_spec.rb
+++ b/spec/services/projects/alerting/notify_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::Alerting::NotifyService, feature_category: :projects do
+RSpec.describe Projects::Alerting::NotifyService, feature_category: :groups_and_projects do
let_it_be_with_reload(:project) { create(:project) }
let(:payload) { ActionController::Parameters.new(payload_raw).permit! }
diff --git a/spec/services/projects/all_issues_count_service_spec.rb b/spec/services/projects/all_issues_count_service_spec.rb
index e8e08a25c45..0118f0d5e8b 100644
--- a/spec/services/projects/all_issues_count_service_spec.rb
+++ b/spec/services/projects/all_issues_count_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::AllIssuesCountService, :use_clean_rails_memory_store_caching, feature_category: :projects do
+RSpec.describe Projects::AllIssuesCountService, :use_clean_rails_memory_store_caching, feature_category: :groups_and_projects do
let_it_be(:group) { create(:group, :public) }
let_it_be(:project) { create(:project, :public, namespace: group) }
let_it_be(:banned_user) { create(:user, :banned) }
diff --git a/spec/services/projects/all_merge_requests_count_service_spec.rb b/spec/services/projects/all_merge_requests_count_service_spec.rb
index ca10fbc00ad..7f4465fd8e7 100644
--- a/spec/services/projects/all_merge_requests_count_service_spec.rb
+++ b/spec/services/projects/all_merge_requests_count_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::AllMergeRequestsCountService, :use_clean_rails_memory_store_caching, feature_category: :projects do
+RSpec.describe Projects::AllMergeRequestsCountService, :use_clean_rails_memory_store_caching, feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
subject { described_class.new(project) }
diff --git a/spec/services/projects/apple_target_platform_detector_service_spec.rb b/spec/services/projects/apple_target_platform_detector_service_spec.rb
index 787faaa0f79..74a04da9e68 100644
--- a/spec/services/projects/apple_target_platform_detector_service_spec.rb
+++ b/spec/services/projects/apple_target_platform_detector_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::AppleTargetPlatformDetectorService, feature_category: :projects do
+RSpec.describe Projects::AppleTargetPlatformDetectorService, feature_category: :groups_and_projects do
let_it_be(:project) { build(:project) }
subject { described_class.new(project).execute }
diff --git a/spec/services/projects/autocomplete_service_spec.rb b/spec/services/projects/autocomplete_service_spec.rb
index 9d3075874a2..67e715142f8 100644
--- a/spec/services/projects/autocomplete_service_spec.rb
+++ b/spec/services/projects/autocomplete_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::AutocompleteService, feature_category: :projects do
+RSpec.describe Projects::AutocompleteService, feature_category: :groups_and_projects do
describe '#issues' do
describe 'confidential issues' do
let(:author) { create(:user) }
diff --git a/spec/services/projects/batch_open_issues_count_service_spec.rb b/spec/services/projects/batch_open_issues_count_service_spec.rb
index d29115a697f..578c3d066e1 100644
--- a/spec/services/projects/batch_open_issues_count_service_spec.rb
+++ b/spec/services/projects/batch_open_issues_count_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::BatchOpenIssuesCountService, feature_category: :projects do
+RSpec.describe Projects::BatchOpenIssuesCountService, feature_category: :groups_and_projects do
let!(:project_1) { create(:project) }
let!(:project_2) { create(:project) }
diff --git a/spec/services/projects/count_service_spec.rb b/spec/services/projects/count_service_spec.rb
index 71940fa396e..8797f30bed2 100644
--- a/spec/services/projects/count_service_spec.rb
+++ b/spec/services/projects/count_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::CountService, feature_category: :projects do
+RSpec.describe Projects::CountService, feature_category: :groups_and_projects do
let(:project) { build(:project, id: 1) }
let(:service) { described_class.new(project) }
diff --git a/spec/services/projects/create_from_template_service_spec.rb b/spec/services/projects/create_from_template_service_spec.rb
index a3fdb258f75..0d649dee022 100644
--- a/spec/services/projects/create_from_template_service_spec.rb
+++ b/spec/services/projects/create_from_template_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::CreateFromTemplateService, feature_category: :projects do
+RSpec.describe Projects::CreateFromTemplateService, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:template_name) { 'rails' }
let(:project_params) do
diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb
index 1b6971ff897..59db0b47a3c 100644
--- a/spec/services/projects/create_service_spec.rb
+++ b/spec/services/projects/create_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::CreateService, '#execute', feature_category: :projects do
+RSpec.describe Projects::CreateService, '#execute', feature_category: :groups_and_projects do
include ExternalAuthorizationServiceHelpers
let(:user) { create :user }
diff --git a/spec/services/projects/destroy_service_spec.rb b/spec/services/projects/destroy_service_spec.rb
index 7da23a59a58..7aa6980fb24 100644
--- a/spec/services/projects/destroy_service_spec.rb
+++ b/spec/services/projects/destroy_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::DestroyService, :aggregate_failures, :event_store_publisher, feature_category: :projects do
+RSpec.describe Projects::DestroyService, :aggregate_failures, :event_store_publisher, feature_category: :groups_and_projects do
include ProjectForksHelper
include BatchDestroyDependentAssociationsHelper
diff --git a/spec/services/projects/detect_repository_languages_service_spec.rb b/spec/services/projects/detect_repository_languages_service_spec.rb
index 5759f8128d0..29d5569ba76 100644
--- a/spec/services/projects/detect_repository_languages_service_spec.rb
+++ b/spec/services/projects/detect_repository_languages_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::DetectRepositoryLanguagesService, :clean_gitlab_redis_shared_state, feature_category: :projects do
+RSpec.describe Projects::DetectRepositoryLanguagesService, :clean_gitlab_redis_shared_state, feature_category: :groups_and_projects do
let_it_be(:project, reload: true) { create(:project, :repository) }
subject { described_class.new(project) }
diff --git a/spec/services/projects/download_service_spec.rb b/spec/services/projects/download_service_spec.rb
index 52bdbefe01a..e062ee04bf4 100644
--- a/spec/services/projects/download_service_spec.rb
+++ b/spec/services/projects/download_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::DownloadService, feature_category: :projects do
+RSpec.describe Projects::DownloadService, feature_category: :groups_and_projects do
describe 'File service' do
before do
@user = create(:user)
diff --git a/spec/services/projects/fetch_statistics_increment_service_spec.rb b/spec/services/projects/fetch_statistics_increment_service_spec.rb
index 9e24e68fa98..5ad91e142a0 100644
--- a/spec/services/projects/fetch_statistics_increment_service_spec.rb
+++ b/spec/services/projects/fetch_statistics_increment_service_spec.rb
@@ -3,7 +3,7 @@
require 'spec_helper'
module Projects
- RSpec.describe FetchStatisticsIncrementService, feature_category: :projects do
+ RSpec.describe FetchStatisticsIncrementService, feature_category: :groups_and_projects do
let(:project) { create(:project) }
describe '#execute' do
diff --git a/spec/services/projects/group_links/create_service_spec.rb b/spec/services/projects/group_links/create_service_spec.rb
index 4f2f480cf1c..ca2902af472 100644
--- a/spec/services/projects/group_links/create_service_spec.rb
+++ b/spec/services/projects/group_links/create_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::GroupLinks::CreateService, '#execute', feature_category: :subgroups do
+RSpec.describe Projects::GroupLinks::CreateService, '#execute', feature_category: :groups_and_projects do
let_it_be(:user) { create :user }
let_it_be(:group) { create :group }
let_it_be(:project) { create(:project, namespace: create(:namespace, :with_namespace_settings)) }
diff --git a/spec/services/projects/group_links/destroy_service_spec.rb b/spec/services/projects/group_links/destroy_service_spec.rb
index 76bdd536a0d..103aff8c659 100644
--- a/spec/services/projects/group_links/destroy_service_spec.rb
+++ b/spec/services/projects/group_links/destroy_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::GroupLinks::DestroyService, '#execute', feature_category: :subgroups do
+RSpec.describe Projects::GroupLinks::DestroyService, '#execute', feature_category: :groups_and_projects do
let_it_be(:user) { create :user }
let_it_be(:project) { create(:project, :private) }
let_it_be(:group) { create(:group) }
diff --git a/spec/services/projects/group_links/update_service_spec.rb b/spec/services/projects/group_links/update_service_spec.rb
index 4232412cf54..f7607deef04 100644
--- a/spec/services/projects/group_links/update_service_spec.rb
+++ b/spec/services/projects/group_links/update_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::GroupLinks::UpdateService, '#execute', feature_category: :subgroups do
+RSpec.describe Projects::GroupLinks::UpdateService, '#execute', feature_category: :groups_and_projects do
let_it_be(:user) { create :user }
let_it_be(:group) { create :group }
let_it_be(:project) { create :project }
diff --git a/spec/services/projects/hashed_storage/base_attachment_service_spec.rb b/spec/services/projects/hashed_storage/base_attachment_service_spec.rb
index 01036fc2d9c..e32747ad907 100644
--- a/spec/services/projects/hashed_storage/base_attachment_service_spec.rb
+++ b/spec/services/projects/hashed_storage/base_attachment_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::HashedStorage::BaseAttachmentService, feature_category: :projects do
+RSpec.describe Projects::HashedStorage::BaseAttachmentService, feature_category: :groups_and_projects do
let(:project) { create(:project, :repository, storage_version: 0, skip_disk_validation: true) }
subject(:service) { described_class.new(project: project, old_disk_path: project.full_path, logger: nil) }
diff --git a/spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb b/spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb
index 39263506bca..6a87b2fafb9 100644
--- a/spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb
+++ b/spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::HashedStorage::MigrateAttachmentsService, feature_category: :projects do
+RSpec.describe Projects::HashedStorage::MigrateAttachmentsService, feature_category: :groups_and_projects do
subject(:service) { described_class.new(project: project, old_disk_path: project.full_path, logger: nil) }
let(:project) { create(:project, :repository, storage_version: 1, skip_disk_validation: true) }
diff --git a/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb b/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb
index bcc914e72b5..e21d8b6fa83 100644
--- a/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb
+++ b/spec/services/projects/hashed_storage/migrate_repository_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::HashedStorage::MigrateRepositoryService, feature_category: :projects do
+RSpec.describe Projects::HashedStorage::MigrateRepositoryService, feature_category: :groups_and_projects do
let(:gitlab_shell) { Gitlab::Shell.new }
let(:project) { create(:project, :legacy_storage, :repository, :wiki_repo, :design_repo) }
let(:legacy_storage) { Storage::LegacyProject.new(project) }
diff --git a/spec/services/projects/hashed_storage/migration_service_spec.rb b/spec/services/projects/hashed_storage/migration_service_spec.rb
index 89bc55dbaf6..ffbd5c2500a 100644
--- a/spec/services/projects/hashed_storage/migration_service_spec.rb
+++ b/spec/services/projects/hashed_storage/migration_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::HashedStorage::MigrationService, feature_category: :projects do
+RSpec.describe Projects::HashedStorage::MigrationService, feature_category: :groups_and_projects do
let(:project) { create(:project, :empty_repo, :wiki_repo, :legacy_storage) }
let(:logger) { double }
let!(:project_attachment) { build(:file_uploader, project: project) }
diff --git a/spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb b/spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb
index 95491d63df2..d1a68503fa3 100644
--- a/spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb
+++ b/spec/services/projects/hashed_storage/rollback_attachments_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::HashedStorage::RollbackAttachmentsService, feature_category: :projects do
+RSpec.describe Projects::HashedStorage::RollbackAttachmentsService, feature_category: :groups_and_projects do
subject(:service) { described_class.new(project: project, old_disk_path: project.disk_path, logger: nil) }
let(:project) { create(:project, :repository, skip_disk_validation: true) }
diff --git a/spec/services/projects/hashed_storage/rollback_repository_service_spec.rb b/spec/services/projects/hashed_storage/rollback_repository_service_spec.rb
index 19f1856e39a..1e5d4ae4d20 100644
--- a/spec/services/projects/hashed_storage/rollback_repository_service_spec.rb
+++ b/spec/services/projects/hashed_storage/rollback_repository_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::HashedStorage::RollbackRepositoryService, :clean_gitlab_redis_shared_state, feature_category: :projects do
+RSpec.describe Projects::HashedStorage::RollbackRepositoryService, :clean_gitlab_redis_shared_state, feature_category: :groups_and_projects do
let(:gitlab_shell) { Gitlab::Shell.new }
let(:project) { create(:project, :repository, :wiki_repo, :design_repo, storage_version: ::Project::HASHED_STORAGE_FEATURES[:repository]) }
let(:legacy_storage) { Storage::LegacyProject.new(project) }
diff --git a/spec/services/projects/hashed_storage/rollback_service_spec.rb b/spec/services/projects/hashed_storage/rollback_service_spec.rb
index 6d047f856ec..088eb9d2734 100644
--- a/spec/services/projects/hashed_storage/rollback_service_spec.rb
+++ b/spec/services/projects/hashed_storage/rollback_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::HashedStorage::RollbackService, feature_category: :projects do
+RSpec.describe Projects::HashedStorage::RollbackService, feature_category: :groups_and_projects do
let(:project) { create(:project, :empty_repo, :wiki_repo) }
let(:logger) { double }
let!(:project_attachment) { build(:file_uploader, project: project) }
diff --git a/spec/services/projects/move_access_service_spec.rb b/spec/services/projects/move_access_service_spec.rb
index b9244002f6c..a6407ddc849 100644
--- a/spec/services/projects/move_access_service_spec.rb
+++ b/spec/services/projects/move_access_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::MoveAccessService, feature_category: :projects do
+RSpec.describe Projects::MoveAccessService, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:group) { create(:group) }
let(:project_with_access) { create(:project, namespace: user.namespace) }
diff --git a/spec/services/projects/move_notification_settings_service_spec.rb b/spec/services/projects/move_notification_settings_service_spec.rb
index 5ef6e8a0647..e9b523f6273 100644
--- a/spec/services/projects/move_notification_settings_service_spec.rb
+++ b/spec/services/projects/move_notification_settings_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::MoveNotificationSettingsService, feature_category: :projects do
+RSpec.describe Projects::MoveNotificationSettingsService, feature_category: :groups_and_projects do
let(:user) { create(:user) }
let(:project_with_notifications) { create(:project, namespace: user.namespace) }
let(:target_project) { create(:project, namespace: user.namespace) }
diff --git a/spec/services/projects/move_project_authorizations_service_spec.rb b/spec/services/projects/move_project_authorizations_service_spec.rb
index 6cd0b056325..c01a0b2c90e 100644
--- a/spec/services/projects/move_project_authorizations_service_spec.rb
+++ b/spec/services/projects/move_project_authorizations_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::MoveProjectAuthorizationsService, feature_category: :projects do
+RSpec.describe Projects::MoveProjectAuthorizationsService, feature_category: :groups_and_projects do
let!(:user) { create(:user) }
let(:project_with_users) { create(:project, namespace: user.namespace) }
let(:target_project) { create(:project, namespace: user.namespace) }
diff --git a/spec/services/projects/move_project_group_links_service_spec.rb b/spec/services/projects/move_project_group_links_service_spec.rb
index cfd4b51b001..6d6a8b402de 100644
--- a/spec/services/projects/move_project_group_links_service_spec.rb
+++ b/spec/services/projects/move_project_group_links_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::MoveProjectGroupLinksService, feature_category: :projects do
+RSpec.describe Projects::MoveProjectGroupLinksService, feature_category: :groups_and_projects do
let!(:user) { create(:user) }
let(:project_with_groups) { create(:project, namespace: user.namespace) }
let(:target_project) { create(:project, namespace: user.namespace) }
diff --git a/spec/services/projects/move_project_members_service_spec.rb b/spec/services/projects/move_project_members_service_spec.rb
index 364fb7faaf2..d8330863405 100644
--- a/spec/services/projects/move_project_members_service_spec.rb
+++ b/spec/services/projects/move_project_members_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::MoveProjectMembersService, feature_category: :projects do
+RSpec.describe Projects::MoveProjectMembersService, feature_category: :groups_and_projects do
let!(:user) { create(:user) }
let(:project_with_users) { create(:project, namespace: user.namespace) }
let(:target_project) { create(:project, namespace: user.namespace) }
diff --git a/spec/services/projects/move_users_star_projects_service_spec.rb b/spec/services/projects/move_users_star_projects_service_spec.rb
index b99e51d954b..6a01896bd58 100644
--- a/spec/services/projects/move_users_star_projects_service_spec.rb
+++ b/spec/services/projects/move_users_star_projects_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::MoveUsersStarProjectsService, feature_category: :projects do
+RSpec.describe Projects::MoveUsersStarProjectsService, feature_category: :groups_and_projects do
let!(:user) { create(:user) }
let!(:project_with_stars) { create(:project, namespace: user.namespace) }
let!(:target_project) { create(:project, namespace: user.namespace) }
diff --git a/spec/services/projects/operations/update_service_spec.rb b/spec/services/projects/operations/update_service_spec.rb
index 7babaf4d0d8..da45d3c8ebc 100644
--- a/spec/services/projects/operations/update_service_spec.rb
+++ b/spec/services/projects/operations/update_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::Operations::UpdateService, feature_category: :projects do
+RSpec.describe Projects::Operations::UpdateService, feature_category: :groups_and_projects do
let_it_be_with_refind(:project) { create(:project) }
let_it_be(:user) { create(:user) }
diff --git a/spec/services/projects/overwrite_project_service_spec.rb b/spec/services/projects/overwrite_project_service_spec.rb
index b4faf45a1cb..99be630d6f6 100644
--- a/spec/services/projects/overwrite_project_service_spec.rb
+++ b/spec/services/projects/overwrite_project_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::OverwriteProjectService, feature_category: :projects do
+RSpec.describe Projects::OverwriteProjectService, feature_category: :groups_and_projects do
include ProjectForksHelper
let(:user) { create(:user) }
diff --git a/spec/services/projects/participants_service_spec.rb b/spec/services/projects/participants_service_spec.rb
index bd297343879..8c0f68dee4c 100644
--- a/spec/services/projects/participants_service_spec.rb
+++ b/spec/services/projects/participants_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::ParticipantsService, feature_category: :projects do
+RSpec.describe Projects::ParticipantsService, feature_category: :groups_and_projects do
describe '#execute' do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :public) }
diff --git a/spec/services/projects/readme_renderer_service_spec.rb b/spec/services/projects/readme_renderer_service_spec.rb
index 842d75e82ee..4d599a26c22 100644
--- a/spec/services/projects/readme_renderer_service_spec.rb
+++ b/spec/services/projects/readme_renderer_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::ReadmeRendererService, '#execute', feature_category: :projects do
+RSpec.describe Projects::ReadmeRendererService, '#execute', feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
subject(:service) { described_class.new(project, nil, opts) }
diff --git a/spec/services/projects/record_target_platforms_service_spec.rb b/spec/services/projects/record_target_platforms_service_spec.rb
index 17aa7fd7009..7c6907c7a95 100644
--- a/spec/services/projects/record_target_platforms_service_spec.rb
+++ b/spec/services/projects/record_target_platforms_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::RecordTargetPlatformsService, '#execute', feature_category: :projects do
+RSpec.describe Projects::RecordTargetPlatformsService, '#execute', feature_category: :groups_and_projects do
let_it_be(:project) { create(:project) }
let(:detector_service) { Projects::AppleTargetPlatformDetectorService }
diff --git a/spec/services/projects/transfer_service_spec.rb b/spec/services/projects/transfer_service_spec.rb
index 37adc9e4867..46fe7d7bbbe 100644
--- a/spec/services/projects/transfer_service_spec.rb
+++ b/spec/services/projects/transfer_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::TransferService, feature_category: :projects do
+RSpec.describe Projects::TransferService, feature_category: :groups_and_projects do
let_it_be(:group) { create(:group) }
let_it_be(:user) { create(:user) }
let_it_be(:group_integration) { create(:integrations_slack, :group, group: group, webhook: 'http://group.slack.com') }
diff --git a/spec/services/projects/update_service_spec.rb b/spec/services/projects/update_service_spec.rb
index 8f55ee705ab..badbc8b628e 100644
--- a/spec/services/projects/update_service_spec.rb
+++ b/spec/services/projects/update_service_spec.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
require 'spec_helper'
-RSpec.describe Projects::UpdateService, feature_category: :projects do
+RSpec.describe Projects::UpdateService, feature_category: :groups_and_projects do
include ExternalAuthorizationServiceHelpers
include ProjectForksHelper
diff --git a/spec/services/projects/update_statistics_service_spec.rb b/spec/services/projects/update_statistics_service_spec.rb
index f685b86acc0..762378c93ec 100644
--- a/spec/services/projects/update_statistics_service_spec.rb
+++ b/spec/services/projects/update_statistics_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::UpdateStatisticsService, feature_category: :projects do
+RSpec.describe Projects::UpdateStatisticsService, feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
let(:service) { described_class.new(project, nil, statistics: statistics) }
diff --git a/spec/services/reset_project_cache_service_spec.rb b/spec/services/reset_project_cache_service_spec.rb
index 6ae516a5f07..6540b93bcc5 100644
--- a/spec/services/reset_project_cache_service_spec.rb
+++ b/spec/services/reset_project_cache_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe ResetProjectCacheService, feature_category: :projects do
+RSpec.describe ResetProjectCacheService, feature_category: :groups_and_projects do
let(:project) { create(:project) }
let(:user) { create(:user) }
diff --git a/spec/services/system_notes/alert_management_service_spec.rb b/spec/services/system_notes/alert_management_service_spec.rb
index 4d40a6a6cfd..1e3be24b05f 100644
--- a/spec/services/system_notes/alert_management_service_spec.rb
+++ b/spec/services/system_notes/alert_management_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe ::SystemNotes::AlertManagementService, feature_category: :projects do
+RSpec.describe ::SystemNotes::AlertManagementService, feature_category: :groups_and_projects do
let_it_be(:author) { create(:user) }
let_it_be(:project) { create(:project, :repository) }
let_it_be(:noteable) { create(:alert_management_alert, :with_incident, :acknowledged, project: project) }
diff --git a/spec/services/system_notes/base_service_spec.rb b/spec/services/system_notes/base_service_spec.rb
index 6ea4751b613..5c0ecf71d01 100644
--- a/spec/services/system_notes/base_service_spec.rb
+++ b/spec/services/system_notes/base_service_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe SystemNotes::BaseService, feature_category: :projects do
+RSpec.describe SystemNotes::BaseService, feature_category: :groups_and_projects do
let(:noteable) { double }
let(:project) { double }
let(:author) { double }
diff --git a/spec/support/shared_contexts/requests/api/debian_repository_shared_context.rb b/spec/support/shared_contexts/requests/api/debian_repository_shared_context.rb
index ad64e4d5be5..70c3ee48345 100644
--- a/spec/support/shared_contexts/requests/api/debian_repository_shared_context.rb
+++ b/spec/support/shared_contexts/requests/api/debian_repository_shared_context.rb
@@ -50,8 +50,8 @@ RSpec.shared_context 'Debian repository shared context' do |container_type, can_
let_it_be(:public_project_distribution) { public_distribution }
end
- let_it_be(:private_package) { create(:debian_package, project: private_project, published_in: private_project_distribution) }
- let_it_be(:public_package) { create(:debian_package, project: public_project, published_in: public_project_distribution) }
+ let_it_be(:private_package) { create(:debian_package, project: private_project, published_in: private_project_distribution, with_changes_file: true) }
+ let_it_be(:public_package) { create(:debian_package, project: public_project, published_in: public_project_distribution, with_changes_file: true) }
let(:visibility_level) { :public }
diff --git a/spec/support/shared_examples/requests/api/debian_packages_shared_examples.rb b/spec/support/shared_examples/requests/api/debian_packages_shared_examples.rb
index bc7ad570441..5cb6c3d310f 100644
--- a/spec/support/shared_examples/requests/api/debian_packages_shared_examples.rb
+++ b/spec/support/shared_examples/requests/api/debian_packages_shared_examples.rb
@@ -20,17 +20,11 @@ RSpec.shared_examples 'Debian packages upload request' do |status, body = nil|
if status == :created
it 'creates package files', :aggregate_failures do
expect(::Packages::Debian::CreatePackageFileService).to receive(:new).with(package: be_a(Packages::Package), current_user: be_an(User), params: be_an(Hash)).and_call_original
+ expect(::Packages::Debian::ProcessChangesWorker).not_to receive(:perform_async)
- if file_name.end_with? '.changes'
- expect(::Packages::Debian::ProcessChangesWorker).to receive(:perform_async)
- else
- expect(::Packages::Debian::ProcessChangesWorker).not_to receive(:perform_async)
- end
-
- if extra_params[:distribution]
+ if extra_params[:distribution] || file_name.end_with?('.changes')
expect(::Packages::Debian::FindOrCreateIncomingService).not_to receive(:new)
- expect(::Packages::Debian::ProcessPackageFileWorker).to receive(:perform_async)
-
+ expect(::Packages::Debian::ProcessPackageFileWorker).to receive(:perform_async).with(be_a(Integer), extra_params[:distribution], extra_params[:component])
expect { subject }
.to change { container.packages.debian.count }.by(1)
.and not_change { container.packages.debian.where(name: 'incoming').count }
diff --git a/spec/tasks/gitlab/seed/group_seed_rake_spec.rb b/spec/tasks/gitlab/seed/group_seed_rake_spec.rb
index 43351031414..85d81103000 100644
--- a/spec/tasks/gitlab/seed/group_seed_rake_spec.rb
+++ b/spec/tasks/gitlab/seed/group_seed_rake_spec.rb
@@ -2,7 +2,7 @@
require 'rake_helper'
-RSpec.describe 'gitlab:seed:group_seed rake task', :silence_stdout, feature_category: :subgroups do
+RSpec.describe 'gitlab:seed:group_seed rake task', :silence_stdout, feature_category: :groups_and_projects do
let(:username) { 'group_seed' }
let!(:user) { create(:user, username: username) }
let(:task_params) { [2, username] }
diff --git a/spec/views/admin/application_settings/network.html.haml_spec.rb b/spec/views/admin/application_settings/network.html.haml_spec.rb
index 17515dbcc2c..989977bac3e 100644
--- a/spec/views/admin/application_settings/network.html.haml_spec.rb
+++ b/spec/views/admin/application_settings/network.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'admin/application_settings/network.html.haml', feature_category: :projects do
+RSpec.describe 'admin/application_settings/network.html.haml', feature_category: :groups_and_projects do
let_it_be(:admin) { build_stubbed(:admin) }
let_it_be(:application_setting) { build(:application_setting) }
diff --git a/spec/views/admin/groups/_form.html.haml_spec.rb b/spec/views/admin/groups/_form.html.haml_spec.rb
index 87929571a84..34b09a97ccc 100644
--- a/spec/views/admin/groups/_form.html.haml_spec.rb
+++ b/spec/views/admin/groups/_form.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'admin/groups/_form', feature_category: :subgroups do
+RSpec.describe 'admin/groups/_form', feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
let_it_be(:admin) { build(:user, :admin) }
diff --git a/spec/views/admin/projects/_form.html.haml_spec.rb b/spec/views/admin/projects/_form.html.haml_spec.rb
index d36b32a1cbc..5bd73c064d5 100644
--- a/spec/views/admin/projects/_form.html.haml_spec.rb
+++ b/spec/views/admin/projects/_form.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'admin/projects/_form', feature_category: :projects do
+RSpec.describe 'admin/projects/_form', feature_category: :groups_and_projects do
using RSpec::Parameterized::TableSyntax
let_it_be(:admin) { build_stubbed(:admin) }
diff --git a/spec/views/explore/projects/page_out_of_bounds.html.haml_spec.rb b/spec/views/explore/projects/page_out_of_bounds.html.haml_spec.rb
index 1ace28be5b4..36f00ea5393 100644
--- a/spec/views/explore/projects/page_out_of_bounds.html.haml_spec.rb
+++ b/spec/views/explore/projects/page_out_of_bounds.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'explore/projects/page_out_of_bounds.html.haml', feature_category: :projects do
+RSpec.describe 'explore/projects/page_out_of_bounds.html.haml', feature_category: :groups_and_projects do
let(:page_limit) { 10 }
let(:unsafe_param) { 'hacked_using_unsafe_param!' }
diff --git a/spec/views/groups/edit.html.haml_spec.rb b/spec/views/groups/edit.html.haml_spec.rb
index 1400791f12b..f33a4190bf8 100644
--- a/spec/views/groups/edit.html.haml_spec.rb
+++ b/spec/views/groups/edit.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'groups/edit.html.haml', feature_category: :subgroups do
+RSpec.describe 'groups/edit.html.haml', feature_category: :groups_and_projects do
include Devise::Test::ControllerHelpers
before do
diff --git a/spec/views/groups/group_members/index.html.haml_spec.rb b/spec/views/groups/group_members/index.html.haml_spec.rb
index fdc6b09d32a..d7d381ba82b 100644
--- a/spec/views/groups/group_members/index.html.haml_spec.rb
+++ b/spec/views/groups/group_members/index.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'groups/group_members/index', :aggregate_failures, feature_category: :subgroups do
+RSpec.describe 'groups/group_members/index', :aggregate_failures, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) } # rubocop:todo RSpec/FactoryBot/AvoidCreate
let_it_be(:group) { create(:group) } # rubocop:todo RSpec/FactoryBot/AvoidCreate
diff --git a/spec/views/groups/settings/_general.html.haml_spec.rb b/spec/views/groups/settings/_general.html.haml_spec.rb
index 9f16e43be13..13503556046 100644
--- a/spec/views/groups/settings/_general.html.haml_spec.rb
+++ b/spec/views/groups/settings/_general.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'groups/settings/_general.html.haml', feature_category: :subgroups do
+RSpec.describe 'groups/settings/_general.html.haml', feature_category: :groups_and_projects do
describe 'Group Settings README' do
let_it_be(:group) { build_stubbed(:group) }
let_it_be(:user) { build_stubbed(:admin) }
diff --git a/spec/views/groups/show.html.haml_spec.rb b/spec/views/groups/show.html.haml_spec.rb
index ac687f68ef6..c4142f4a245 100644
--- a/spec/views/groups/show.html.haml_spec.rb
+++ b/spec/views/groups/show.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'groups/show', feature_category: :subgroups do
+RSpec.describe 'groups/show', feature_category: :groups_and_projects do
describe 'group README' do
let_it_be(:group) { build_stubbed(:group) }
let_it_be(:readme_project) { build_stubbed(:project, :readme) }
diff --git a/spec/views/layouts/group.html.haml_spec.rb b/spec/views/layouts/group.html.haml_spec.rb
index 0b8f735a1d6..d1f262cda1f 100644
--- a/spec/views/layouts/group.html.haml_spec.rb
+++ b/spec/views/layouts/group.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'layouts/group', feature_category: :subgroups do
+RSpec.describe 'layouts/group', feature_category: :groups_and_projects do
let_it_be(:group) { create(:group) } # rubocop:todo RSpec/FactoryBot/AvoidCreate
let(:invite_member) { true }
diff --git a/spec/views/layouts/project.html.haml_spec.rb b/spec/views/layouts/project.html.haml_spec.rb
index 588828f7bd6..d19c600d9f2 100644
--- a/spec/views/layouts/project.html.haml_spec.rb
+++ b/spec/views/layouts/project.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'layouts/project', feature_category: :projects do
+RSpec.describe 'layouts/project', feature_category: :groups_and_projects do
let(:invite_member) { true }
before do
diff --git a/spec/views/projects/_files.html.haml_spec.rb b/spec/views/projects/_files.html.haml_spec.rb
index 618a0948739..96c6c2bdfab 100644
--- a/spec/views/projects/_files.html.haml_spec.rb
+++ b/spec/views/projects/_files.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'projects/_files', feature_category: :projects do
+RSpec.describe 'projects/_files', feature_category: :groups_and_projects do
let_it_be(:template) { 'projects/files' }
let_it_be(:namespace) { build_stubbed(:namespace) }
let_it_be(:user) { build_stubbed(:user, namespace: namespace) }
diff --git a/spec/views/projects/project_members/index.html.haml_spec.rb b/spec/views/projects/project_members/index.html.haml_spec.rb
index 2fcc5c6935b..7a32a8562e0 100644
--- a/spec/views/projects/project_members/index.html.haml_spec.rb
+++ b/spec/views/projects/project_members/index.html.haml_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'projects/project_members/index', :aggregate_failures, feature_category: :projects do
+RSpec.describe 'projects/project_members/index', :aggregate_failures, feature_category: :groups_and_projects do
let_it_be(:user) { create(:user) } # rubocop:todo RSpec/FactoryBot/AvoidCreate
let_it_be(:project) { create(:project, :empty_repo, :with_namespace_settings).present(current_user: user) } # rubocop:todo RSpec/FactoryBot/AvoidCreate
diff --git a/spec/workers/ci/pending_builds/update_group_worker_spec.rb b/spec/workers/ci/pending_builds/update_group_worker_spec.rb
index c16262c0502..bd278f4c923 100644
--- a/spec/workers/ci/pending_builds/update_group_worker_spec.rb
+++ b/spec/workers/ci/pending_builds/update_group_worker_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Ci::PendingBuilds::UpdateGroupWorker, feature_category: :subgroups do
+RSpec.describe Ci::PendingBuilds::UpdateGroupWorker, feature_category: :groups_and_projects do
describe '#perform' do
let(:worker) { described_class.new }
diff --git a/spec/workers/ci/pending_builds/update_project_worker_spec.rb b/spec/workers/ci/pending_builds/update_project_worker_spec.rb
index 281b4fb920b..d50209fba90 100644
--- a/spec/workers/ci/pending_builds/update_project_worker_spec.rb
+++ b/spec/workers/ci/pending_builds/update_project_worker_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Ci::PendingBuilds::UpdateProjectWorker, feature_category: :projects do
+RSpec.describe Ci::PendingBuilds::UpdateProjectWorker, feature_category: :groups_and_projects do
describe '#perform' do
let(:worker) { described_class.new }
diff --git a/spec/workers/disallow_two_factor_for_group_worker_spec.rb b/spec/workers/disallow_two_factor_for_group_worker_spec.rb
index c732f8a3d00..a7a5a4ae279 100644
--- a/spec/workers/disallow_two_factor_for_group_worker_spec.rb
+++ b/spec/workers/disallow_two_factor_for_group_worker_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe DisallowTwoFactorForGroupWorker, feature_category: :subgroups do
+RSpec.describe DisallowTwoFactorForGroupWorker, feature_category: :groups_and_projects do
let_it_be(:group) { create(:group, require_two_factor_authentication: true) }
let_it_be(:user) { create(:user, require_two_factor_authentication_from_group: true) }
diff --git a/spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb b/spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb
index 7584355deab..e5871ba8c21 100644
--- a/spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb
+++ b/spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe DisallowTwoFactorForSubgroupsWorker, feature_category: :subgroups do
+RSpec.describe DisallowTwoFactorForSubgroupsWorker, feature_category: :groups_and_projects do
let_it_be(:group) { create(:group) }
let_it_be(:subgroup_with_2fa) { create(:group, parent: group, require_two_factor_authentication: true) }
let_it_be(:subgroup_without_2fa) { create(:group, parent: group, require_two_factor_authentication: false) }
diff --git a/spec/workers/group_destroy_worker_spec.rb b/spec/workers/group_destroy_worker_spec.rb
index fba4573718a..1bb2959f980 100644
--- a/spec/workers/group_destroy_worker_spec.rb
+++ b/spec/workers/group_destroy_worker_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe GroupDestroyWorker, feature_category: :subgroups do
+RSpec.describe GroupDestroyWorker, feature_category: :groups_and_projects do
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project, namespace: group) }
let_it_be(:user) { create(:user) }
diff --git a/spec/workers/member_invitation_reminder_emails_worker_spec.rb b/spec/workers/member_invitation_reminder_emails_worker_spec.rb
index 4c6295285ea..0a58939c0f5 100644
--- a/spec/workers/member_invitation_reminder_emails_worker_spec.rb
+++ b/spec/workers/member_invitation_reminder_emails_worker_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe MemberInvitationReminderEmailsWorker, feature_category: :subgroups do
+RSpec.describe MemberInvitationReminderEmailsWorker, feature_category: :groups_and_projects do
describe '#perform' do
subject { described_class.new.perform }
diff --git a/spec/workers/packages/debian/process_changes_worker_spec.rb b/spec/workers/packages/debian/process_changes_worker_spec.rb
index ddd608e768c..435ca33b223 100644
--- a/spec/workers/packages/debian/process_changes_worker_spec.rb
+++ b/spec/workers/packages/debian/process_changes_worker_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Packages::Debian::ProcessChangesWorker, type: :worker, feature_ca
create(:debian_project_distribution, :with_file, codename: FFaker::Lorem.word, suite: 'unstable')
end
- let(:incoming) { create(:debian_incoming, project: distribution.project) }
+ let(:incoming) { create(:debian_incoming, project: distribution.project, with_changes_file: true) }
let(:package_file) { incoming.package_files.with_file_name('sample_1.2.3~alpha2_amd64.changes').first }
let(:worker) { described_class.new }
diff --git a/spec/workers/packages/debian/process_package_file_worker_spec.rb b/spec/workers/packages/debian/process_package_file_worker_spec.rb
index 6010f4eac27..1ef3119ecd3 100644
--- a/spec/workers/packages/debian/process_package_file_worker_spec.rb
+++ b/spec/workers/packages/debian/process_package_file_worker_spec.rb
@@ -3,119 +3,147 @@
require 'spec_helper'
RSpec.describe Packages::Debian::ProcessPackageFileWorker, type: :worker, feature_category: :package_registry do
- let_it_be_with_reload(:distribution) { create(:debian_project_distribution, :with_file) }
- let_it_be_with_reload(:package) do
- create(:debian_package, :processing, project: distribution.project, published_in: nil)
+ shared_examples 'returns early without error' do
+ it 'returns early without error' do
+ expect(Gitlab::ErrorTracking).not_to receive(:log_exception)
+ expect(::Packages::Debian::ProcessPackageFileService).not_to receive(:new)
+
+ subject
+ end
end
- let(:distribution_name) { distribution.codename }
- let(:debian_file_metadatum) { package_file.debian_file_metadatum }
- let(:worker) { described_class.new }
+ let_it_be_with_reload(:distribution) { create(:debian_project_distribution, :with_file) }
+ let_it_be_with_reload(:incoming) { create(:debian_incoming, project: distribution.project) }
+ let_it_be_with_reload(:temp_with_changes) { create(:debian_temporary_with_changes, project: distribution.project) }
+ let_it_be_with_reload(:temp_with_files) { create(:debian_temporary_with_files, project: distribution.project) }
describe '#perform' do
+ let(:package) { temp_with_files }
+ let(:package_file) { package.package_files.with_file_name('libsample0_1.2.3~alpha2_amd64.deb').first }
+ let(:debian_file_metadatum) { package_file.debian_file_metadatum }
+ let(:worker) { described_class.new }
+
let(:package_file_id) { package_file.id }
+ let(:distribution_name) { distribution.codename }
+ let(:component_name) { 'main' }
subject { worker.perform(package_file_id, distribution_name, component_name) }
- shared_examples 'returns early without error' do
- it 'returns early without error' do
- expect(Gitlab::ErrorTracking).not_to receive(:log_exception)
- expect(::Packages::Debian::ProcessPackageFileService).not_to receive(:new)
+ context 'with non existing package file' do
+ let(:package_file_id) { non_existing_record_id }
- subject
- end
+ it_behaves_like 'returns early without error'
end
- using RSpec::Parameterized::TableSyntax
+ context 'with nil package file id' do
+ let(:package_file_id) { nil }
- where(:case_name, :expected_file_type, :file_name, :component_name) do
- 'with a deb' | 'deb' | 'libsample0_1.2.3~alpha2_amd64.deb' | 'main'
- 'with an udeb' | 'udeb' | 'sample-udeb_1.2.3~alpha2_amd64.udeb' | 'contrib'
- 'with a ddeb' | 'ddeb' | 'sample-ddeb_1.2.3~alpha2_amd64.ddeb' | 'main'
+ it_behaves_like 'returns early without error'
end
- with_them do
- context 'with Debian package file' do
- let(:package_file) { package.package_files.with_file_name(file_name).first }
-
- context 'with mocked service' do
- it 'calls ProcessPackageFileService' do
- expect(Gitlab::ErrorTracking).not_to receive(:log_exception)
- expect_next_instance_of(::Packages::Debian::ProcessPackageFileService) do |service|
- expect(service).to receive(:execute)
- .with(no_args)
- end
-
- subject
- end
- end
+ context 'with already processed package file' do
+ let_it_be(:package_file) { create(:debian_package_file) }
- context 'when the service raises an error' do
- let(:package_file) { package.package_files.with_file_name('sample_1.2.3~alpha2.tar.xz').first }
-
- it 'marks the package as errored', :aggregate_failures do
- expect(Gitlab::ErrorTracking).to receive(:log_exception).with(
- instance_of(ArgumentError),
- package_file_id: package_file_id,
- distribution_name: distribution_name,
- component_name: component_name
- )
- expect { subject }
- .to not_change(Packages::Package, :count)
- .and not_change { Packages::PackageFile.count }
- .and not_change { package.package_files.count }
- .and change { package_file.reload.status }.to('error')
- .and change { package.reload.status }.from('processing').to('error')
- end
- end
+ it_behaves_like 'returns early without error'
+ end
- it_behaves_like 'an idempotent worker' do
- let(:job_args) { [package_file.id, distribution_name, component_name] }
-
- it 'sets the Debian file type as deb', :aggregate_failures do
- expect(::Packages::Debian::GenerateDistributionWorker)
- .to receive(:perform_async).with(:project, distribution.id)
- expect(Gitlab::ErrorTracking).not_to receive(:log_exception)
-
- # Using subject inside this block will process the job multiple times
- expect { subject }
- .to not_change(Packages::Package, :count)
- .and not_change(Packages::PackageFile, :count)
- .and change { Packages::Debian::Publication.count }.by(1)
- .and not_change(package.package_files, :count)
- .and change { package.reload.name }.to('sample')
- .and change { package.version }.to('1.2.3~alpha2')
- .and change { package.status }.from('processing').to('default')
- .and change { package.debian_publication }.from(nil)
- .and change { debian_file_metadatum.reload.file_type }.from('unknown').to(expected_file_type)
- .and change { debian_file_metadatum.component }.from(nil).to(component_name)
- end
+ context 'with mocked service' do
+ it 'calls ProcessPackageFileService' do
+ expect(Gitlab::ErrorTracking).not_to receive(:log_exception)
+ expect_next_instance_of(::Packages::Debian::ProcessPackageFileService) do |service|
+ expect(service).to receive(:execute)
+ .with(no_args)
end
+
+ subject
end
end
- context 'with already processed package file' do
- let_it_be(:package_file) { create(:debian_package_file) }
-
- let(:component_name) { 'main' }
-
- it_behaves_like 'returns early without error'
+ context 'when the service raises an error' do
+ let(:package_file) { package.package_files.with_file_name('sample_1.2.3~alpha2.tar.xz').first }
+
+ it 'marks the package as errored', :aggregate_failures do
+ expect(Gitlab::ErrorTracking).to receive(:log_exception).with(
+ instance_of(ArgumentError),
+ package_file_id: package_file_id,
+ distribution_name: distribution_name,
+ component_name: component_name
+ )
+ expect { subject }
+ .to not_change(Packages::Package, :count)
+ .and not_change { Packages::PackageFile.count }
+ .and not_change { package.package_files.count }
+ .and change { package_file.reload.status }.to('error')
+ .and change { package.reload.status }.from('processing').to('error')
+ end
end
- context 'with a deb' do
- let(:package_file) { package.package_files.with_file_name('libsample0_1.2.3~alpha2_amd64.deb').first }
- let(:component_name) { 'main' }
+ context 'with a Debian changes file' do
+ let(:package) { temp_with_changes }
+ let(:package_file) { package.package_files.first }
+ let(:distribution_name) { nil }
+ let(:component_name) { nil }
- context 'with non existing package file' do
- let(:package_file_id) { non_existing_record_id }
+ before do
+ distribution.update! suite: 'unstable'
+ end
- it_behaves_like 'returns early without error'
+ it_behaves_like 'an idempotent worker' do
+ let(:job_args) { [package_file.id, distribution_name, component_name] }
+
+ it 'sets the Debian file type to changes', :aggregate_failures do
+ expect(::Packages::Debian::GenerateDistributionWorker)
+ .to receive(:perform_async).with(:project, distribution.id)
+ expect(Gitlab::ErrorTracking).not_to receive(:log_exception)
+
+ # Using subject inside this block will process the job multiple times
+ expect { subject }
+ .to not_change(Packages::Package, :count)
+ .and not_change(Packages::PackageFile, :count)
+ .and change { Packages::Debian::Publication.count }.by(1)
+ .and change { package.package_files.count }.from(1).to(8)
+ .and change { package.reload.name }.to('sample')
+ .and change { package.version }.to('1.2.3~alpha2')
+ .and change { package.status }.from('processing').to('default')
+ .and change { package.debian_publication }.from(nil)
+ .and change { debian_file_metadatum.reload.file_type }.from('unknown').to('changes')
+ .and not_change { debian_file_metadatum.component }
+ end
end
+ end
+
+ using RSpec::Parameterized::TableSyntax
- context 'with nil package file id' do
- let(:package_file_id) { nil }
+ where(:case_name, :expected_file_type, :file_name, :component_name) do
+ 'with a deb' | 'deb' | 'libsample0_1.2.3~alpha2_amd64.deb' | 'main'
+ 'with an udeb' | 'udeb' | 'sample-udeb_1.2.3~alpha2_amd64.udeb' | 'contrib'
+ 'with a ddeb' | 'ddeb' | 'sample-ddeb_1.2.3~alpha2_amd64.ddeb' | 'main'
+ end
- it_behaves_like 'returns early without error'
+ with_them do
+ let(:package_file) { package.package_files.with_file_name(file_name).first }
+
+ it_behaves_like 'an idempotent worker' do
+ let(:job_args) { [package_file.id, distribution_name, component_name] }
+
+ it 'sets the correct Debian file type', :aggregate_failures do
+ expect(::Packages::Debian::GenerateDistributionWorker)
+ .to receive(:perform_async).with(:project, distribution.id)
+ expect(Gitlab::ErrorTracking).not_to receive(:log_exception)
+
+ # Using subject inside this block will process the job multiple times
+ expect { subject }
+ .to not_change(Packages::Package, :count)
+ .and not_change(Packages::PackageFile, :count)
+ .and change { Packages::Debian::Publication.count }.by(1)
+ .and not_change(package.package_files, :count)
+ .and change { package.reload.name }.to('sample')
+ .and change { package.version }.to('1.2.3~alpha2')
+ .and change { package.status }.from('processing').to('default')
+ .and change { package.debian_publication }.from(nil)
+ .and change { debian_file_metadatum.reload.file_type }.from('unknown').to(expected_file_type)
+ .and change { debian_file_metadatum.component }.from(nil).to(component_name)
+ end
end
end
end
diff --git a/spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb b/spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb
index 1379b6785eb..da2d35e97d8 100644
--- a/spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb
+++ b/spec/workers/projects/finalize_project_statistics_refresh_worker_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::FinalizeProjectStatisticsRefreshWorker, feature_category: :projects do
+RSpec.describe Projects::FinalizeProjectStatisticsRefreshWorker, feature_category: :groups_and_projects do
let_it_be(:record) { create(:project_build_artifacts_size_refresh, :finalizing) }
describe '#perform' do
diff --git a/spec/workers/projects/record_target_platforms_worker_spec.rb b/spec/workers/projects/record_target_platforms_worker_spec.rb
index 0e106fe32f9..ecb6aab7349 100644
--- a/spec/workers/projects/record_target_platforms_worker_spec.rb
+++ b/spec/workers/projects/record_target_platforms_worker_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Projects::RecordTargetPlatformsWorker, feature_category: :projects do
+RSpec.describe Projects::RecordTargetPlatformsWorker, feature_category: :groups_and_projects do
include ExclusiveLeaseHelpers
let_it_be(:swift) { create(:programming_language, name: 'Swift') }