There was an error fetching the job.
rspec unit pg13-as-if-foss single-db 25/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.9.0~beta.115.g598a7c91 (598a7c91)2 on green-1.shared-gitlab-org.runners-manager.gitlab.com/default Mf8beF5G, system ID: s_673deea48c2a3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:13 ...8Pulling docker image postgres:13 ...9Using docker image sha256:dd421ca1f7f13d81c5c145d77d97d8d84cd0e6f1e045936ee506ce0f50ee397a for postgres:13 with digest postgres@sha256:00f455399f30cc3f2fe4185476601438b7a4959c74653665582d7c313a783d51 ...10Starting service redis:6.2-alpine ...11Pulling docker image redis:6.2-alpine ...12Using docker image sha256:3616f0c0705d2a35d30dde109daf3cbe58ae7284121aafa6f5cfa987db98d1a8 for redis:6.2-alpine with digest redis@sha256:edddbcad5a41d58df2f142d68439922f1860ea902903d016257337c3342f30fc ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:7a1b51158a1ee23b080b514ce6ebbf52ac51585877198fb52709e5cd01805a77 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13@sha256:412d55913d43377094427ced549cb422ed2f2c7223e6a605d0d3e0151cb892b0 ...18Running on runner-mf8bef5g-project-278964-concurrent-0 via runner-mf8bef5g-shared-gitlab-org-1680167578-e0da852f...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 135903, done. 25remote: Counting objects: 100% (135903/135903), done. 26remote: Compressing objects: 100% (88560/88560), done. 27remote: Total 135903 (delta 58315), reused 94618 (delta 42152), pack-reused 0 28Receiving objects: 100% (135903/135903), 121.35 MiB | 31.93 MiB/s, done.29Resolving deltas: 100% (58315/58315), done.31 * [new ref] refs/pipelines/822866544 -> refs/pipelines/82286654432Checking out 523abdde as detached HEAD (ref is refs/merge-requests/116270/merge)...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...37cache.zip is up to date 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-3.0-16...40cache.zip is up to date 41Successfully extracted cache43Downloading artifacts for compile-test-assets as-if-foss (4031138200)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138200 responseStatus=200 OK token=64_iic2b45Downloading artifacts for detect-tests (4031138213)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138213 responseStatus=200 OK token=64_iic2b47Downloading artifacts for retrieve-tests-metadata (4031138217)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138217 responseStatus=200 OK token=64_iic2b49Downloading artifacts for setup-test-env (4031138204)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138204 responseStatus=200 OK token=64_iic2b52Using docker image sha256:7a1b51158a1ee23b080b514ce6ebbf52ac51585877198fb52709e5cd01805a77 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.18-rust-1.65-node-16.14-postgresql-13@sha256:412d55913d43377094427ced549cb422ed2f2c7223e6a605d0d3e0151cb892b0 ...53$ echo $FOSS_ONLY54155$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb56$ export GOPATH=$CI_PROJECT_DIR/.go57$ mkdir -p $GOPATH58$ source scripts/utils.sh59$ source scripts/prepare_build.sh710Using decomposed database config (config/database.yml.postgresql)711Geo DB won't be set up.712$ setup_db_user_only713CREATE ROLE714GRANT715==> 'setup_db_user_only' succeeded in 0 seconds.716$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes717Dropped database 'gitlabhq_test'718Created database 'gitlabhq_test'719==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 34 seconds.720$ setup_db_praefect721SELECT pg_catalog.set_config('search_path', '', false);722CREATE DATABASE praefect_test ENCODING 'UTF8';723==> 'setup_db_praefect' succeeded in 0 seconds.724$ source ./scripts/rspec_helpers.sh725$ run_timed_command "gem install knapsack --no-document"726$ gem install knapsack --no-document727Successfully installed knapsack-4.0.07281 gem installed729==> 'gem install knapsack --no-document' succeeded in 1 seconds.730$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"834$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"835SKIP_FLAKY_TESTS_AUTOMATICALLY: false836RETRY_FAILED_TESTS_IN_NEW_PROCESS: true837KNAPSACK_GENERATE_REPORT: 838FLAKY_RSPEC_GENERATE_REPORT: 839KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb840KNAPSACK_LOG_LEVEL: debug841KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13-as-if-foss_single-db_25_28_report.json842FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json843FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13-as-if-foss_single-db_25_28_report.json844NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13-as-if-foss_single-db_25_28_report.json845SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13-as-if-foss_single-db_25_28_report.txt846CRYSTALBALL: 847Knapsack node specs:848spec/models/namespace_spec.rb849spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb850spec/models/project_team_spec.rb851spec/services/projects/overwrite_project_service_spec.rb852spec/workers/packages/debian/generate_distribution_worker_spec.rb853spec/models/concerns/deployment_platform_spec.rb854spec/lib/banzai/filter/references/label_reference_filter_spec.rb855spec/services/projects/alerting/notify_service_spec.rb856spec/policies/project_statistics_policy_spec.rb857spec/finders/merge_request_target_project_finder_spec.rb858spec/models/protected_branch_spec.rb859spec/routing/routing_spec.rb860spec/lib/banzai/reference_parser/snippet_parser_spec.rb861spec/lib/gitlab/email/message/repository_push_spec.rb862spec/models/error_tracking/project_error_tracking_setting_spec.rb863spec/services/projects/lfs_pointers/lfs_download_service_spec.rb864spec/lib/gitlab/background_migration/backfill_namespace_id_for_project_route_spec.rb865spec/graphql/mutations/merge_requests/set_locked_spec.rb866spec/models/integrations/drone_ci_spec.rb867spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb868spec/services/system_notes/merge_requests_service_spec.rb869spec/models/concerns/deprecated_assignee_spec.rb870spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb871spec/policies/blob_policy_spec.rb872spec/lib/gitlab/gitaly_client/commit_service_spec.rb873spec/scripts/trigger-build_spec.rb874spec/lib/gitlab/database/with_lock_retries_spec.rb875spec/routing/import_routing_spec.rb876spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb877spec/graphql/resolvers/todos_resolver_spec.rb878spec/graphql/features/authorization_spec.rb879spec/finders/cluster_ancestors_finder_spec.rb880spec/lib/atlassian/jira_connect/client_spec.rb881spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb882spec/helpers/members_helper_spec.rb883spec/presenters/ci/build_presenter_spec.rb884spec/services/groups/autocomplete_service_spec.rb885spec/models/project_authorization_spec.rb886spec/graphql/mutations/releases/create_spec.rb887spec/views/projects/edit.html.haml_spec.rb888spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb889spec/models/snippet_input_action_spec.rb890spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb891spec/services/security/ci_configuration/container_scanning_create_service_spec.rb892spec/models/incident_management/timeline_event_spec.rb893spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb894spec/services/namespace_settings/update_service_spec.rb895spec/services/repositories/housekeeping_service_spec.rb896spec/services/incident_management/incidents/create_service_spec.rb897spec/lib/gitlab/ci/config/entry/cache_spec.rb898spec/models/ci/resource_spec.rb899spec/lib/gitlab/ci/config/entry/variable_spec.rb900spec/helpers/sidebars_helper_spec.rb901spec/workers/merge_requests/create_pipeline_worker_spec.rb902spec/lib/gitlab/email/reply_parser_spec.rb903spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb904spec/graphql/types/group_type_spec.rb905spec/models/network/graph_spec.rb906spec/lib/gitlab/database/background_migration/prometheus_metrics_spec.rb907spec/services/ci/create_pipeline_service/cache_spec.rb908spec/lib/gitlab_edition_spec.rb909spec/services/ci/create_pipeline_service/include_spec.rb910spec/finders/protected_branches_finder_spec.rb911spec/services/projects/import_export/parallel_export_service_spec.rb912spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb913spec/lib/gitlab/database/load_balancing/session_spec.rb914spec/models/packages/maven/metadatum_spec.rb915spec/graphql/resolvers/group_packages_resolver_spec.rb916spec/config/settings_spec.rb917spec/db/production/settings_spec.rb918spec/lib/gitlab/database/bulk_update_spec.rb919spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb920spec/tasks/gitlab/praefect_rake_spec.rb921spec/presenters/label_presenter_spec.rb922spec/graphql/types/alert_management/prometheus_integration_type_spec.rb923spec/workers/repository_update_remote_mirror_worker_spec.rb924spec/services/ci/create_pipeline_service/logger_spec.rb925spec/lib/gitlab/kubernetes/helm/v3/install_command_spec.rb926spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb927spec/finders/releases/evidence_pipeline_finder_spec.rb928spec/lib/gitlab/github_import/markdown/attachment_spec.rb929spec/services/ci/build_report_result_service_spec.rb930spec/views/layouts/terms.html.haml_spec.rb931spec/services/users/create_service_spec.rb932spec/models/deployment_cluster_spec.rb933spec/lib/gitlab/ci/templates/Jobs/sast_iac_gitlab_ci_yaml_spec.rb934spec/lib/gitlab/git/blame_spec.rb935spec/views/search/show.html.haml_spec.rb936spec/services/merge_requests/mergeability/logger_spec.rb937spec/lib/gitlab/kubernetes/helm/v3/delete_command_spec.rb938spec/lib/gitlab/email/failure_handler_spec.rb939spec/services/packages/debian/create_distribution_service_spec.rb940spec/services/web_hooks/log_execution_service_spec.rb941spec/lib/gitlab/github_import/importer/events/changed_label_spec.rb942spec/lib/gitlab/database/reindexing/coordinator_spec.rb943spec/workers/ci/retry_pipeline_worker_spec.rb944spec/services/terraform/states/trigger_destroy_service_spec.rb945spec/lib/gitlab/database/async_indexes/index_creator_spec.rb946spec/lib/gitlab/ci/templates/Jobs/code_quality_gitlab_ci_yaml_spec.rb947spec/lib/gitlab/sidekiq_config/worker_spec.rb948spec/workers/every_sidekiq_worker_spec.rb949spec/tasks/gitlab/shell_rake_spec.rb950spec/services/authorized_project_update/project_recalculate_service_spec.rb951spec/helpers/instance_configuration_helper_spec.rb952spec/lib/gitlab/import_export/uploads_saver_spec.rb953spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb954spec/services/ci/job_token_scope/add_project_service_spec.rb955spec/graphql/mutations/terraform/state/unlock_spec.rb956spec/lib/api/every_api_endpoint_spec.rb957spec/lib/gitlab/otp_key_rotator_spec.rb958spec/lib/gitlab/gitaly_client/call_spec.rb959spec/services/ci/daily_build_group_report_result_service_spec.rb960spec/models/blob_viewer/license_spec.rb961spec/services/markdown_content_rewriter_service_spec.rb962spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb963spec/policies/clusters/agents/activity_event_policy_spec.rb964spec/lib/sidebars/user_settings/menus/saved_replies_menu_spec.rb965spec/components/pajamas/checkbox_tag_component_spec.rb966spec/lib/gitlab/usage/metrics/instrumentations/count_users_with_ml_candidates_metric_spec.rb967spec/lib/gitlab/github_import/importer/events/changed_reviewer_spec.rb968spec/models/packages/debian/project_architecture_spec.rb969spec/finders/bulk_imports/imports_finder_spec.rb970spec/lib/gitlab/database/reindexing/reindex_action_spec.rb971spec/services/notes/resolve_service_spec.rb972spec/lib/gitlab/kubernetes_spec.rb973spec/models/snippet_input_action_collection_spec.rb974spec/lib/bulk_imports/common/pipelines/entity_finisher_spec.rb975spec/lib/gitlab/jwt_token_spec.rb976spec/lib/gitlab/diff/line_mapper_spec.rb977spec/lib/gitlab/github_import/importer/events/changed_milestone_spec.rb978spec/services/merge_requests/pushed_branches_service_spec.rb979spec/lib/gitlab/ci/status/build/action_spec.rb980spec/routing/notifications_routing_spec.rb981spec/lib/banzai/filter/inline_observability_filter_spec.rb982spec/views/events/event/_common.html.haml_spec.rb983spec/models/users/credit_card_validation_spec.rb984spec/services/events/destroy_service_spec.rb985spec/lib/api/entities/ml/mlflow/run_spec.rb986spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb987spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb988spec/services/ci/append_build_trace_service_spec.rb989spec/serializers/rollout_statuses/ingress_entity_spec.rb990spec/initializers/6_validations_spec.rb991spec/lib/gitlab/database/postgresql_adapter/empty_query_ping_spec.rb992spec/workers/terraform/states/destroy_worker_spec.rb993spec/lib/mattermost/client_spec.rb994spec/models/concerns/cross_database_modification_spec.rb995spec/lib/gitlab/url_blockers/url_allowlist_spec.rb996spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb997spec/lib/gitlab/data_builder/feature_flag_spec.rb998spec/presenters/packages/pypi/simple_index_presenter_spec.rb999spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb1000spec/serializers/cluster_entity_spec.rb1001spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb1002spec/serializers/ci/dag_pipeline_serializer_spec.rb1003spec/models/preloaders/group_root_ancestor_preloader_spec.rb1004spec/services/import/github/notes/create_service_spec.rb1005spec/lib/gitlab/ci/config/entry/include/rules_spec.rb1006spec/workers/pipeline_notification_worker_spec.rb1007spec/lib/gitlab/sourcegraph_spec.rb1008spec/services/customer_relations/organizations/update_service_spec.rb1009spec/services/spam/akismet_mark_as_spam_service_spec.rb1010spec/rubocop/cop/migration/migration_record_spec.rb1011spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb1012spec/lib/gitlab/sql/intersect_spec.rb1013spec/serializers/container_repository_entity_spec.rb1014spec/views/layouts/snippets.html.haml_spec.rb1015spec/graphql/types/ci_configuration/sast/type_spec.rb1016spec/models/concerns/from_set_operator_spec.rb1017spec/lib/gitlab/memory/jemalloc_spec.rb1018spec/lib/gitlab/ci/status/preparing_spec.rb1019spec/uploaders/object_storage/cdn_spec.rb1020spec/services/projects/batch_open_issues_count_service_spec.rb1021spec/lib/gitlab/database/type/json_pg_safe_spec.rb1022spec/lib/gitlab/github_import/representation/user_spec.rb1023spec/models/concerns/file_store_mounter_spec.rb1024spec/workers/snippets/update_repository_storage_worker_spec.rb1025spec/lib/backup/database_backup_error_spec.rb1026spec/serializers/container_tag_entity_spec.rb1027spec/services/system_notes/base_service_spec.rb1028spec/views/admin/application_settings/network.html.haml_spec.rb1029spec/lib/gitlab/manifest_import/metadata_spec.rb1030spec/lib/gitlab/kroki_spec.rb1031spec/lib/gitlab/memory/reports/jemalloc_stats_spec.rb1032spec/lib/gitlab/gitlab_import/importer_spec.rb1033spec/lib/gitlab/import_export/design_repo_restorer_spec.rb1034spec/models/concerns/web_hooks/has_web_hooks_spec.rb1035spec/serializers/import/gitlab_provider_repo_entity_spec.rb1036spec/tooling/lib/tooling/test_map_packer_spec.rb1037spec/lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter_spec.rb1038spec/lib/gitlab/database/migration_helpers/announce_database_spec.rb1039spec/lib/gitlab/view/presenter/simple_spec.rb1040spec/graphql/types/commit_signatures/ssh_signature_type_spec.rb1041spec/validators/any_field_validator_spec.rb1042spec/lib/banzai/filter/normalize_source_filter_spec.rb1043spec/presenters/milestone_presenter_spec.rb1044spec/lib/gitlab/auth/otp/strategies/devise_spec.rb1045spec/support_specs/time_travel_spec.rb1046spec/lib/bitbucket_server/collection_spec.rb1047spec/lib/gitlab/ci/pipeline/chain/cancel_pending_pipelines_spec.rb1048spec/helpers/terms_helper_spec.rb1049spec/lib/gitlab/kubernetes/kubeconfig/entry/cluster_spec.rb1050spec/lib/banzai/pipeline/email_pipeline_spec.rb1051spec/lib/gitlab/audit/deploy_token_author_spec.rb1052spec/views/import/gitlab_projects/new.html.haml_spec.rb1053spec/models/ci/pipeline_config_spec.rb1054spec/lib/sidebars/projects/super_sidebar_menus/manage_menu_spec.rb1055spec/lib/gitlab/cross_project_access/check_collection_spec.rb1056spec/graphql/types/custom_emoji_type_spec.rb1057spec/models/protected_branch/merge_access_level_spec.rb1058spec/lib/gitlab/ci/config/external/mapper/normalizer_spec.rb1059spec/graphql/types/merge_request_sort_enum_spec.rb1060spec/initializers/microsoft_graph_mailer_spec.rb1061spec/lib/gitlab/github_import/logger_spec.rb1062spec/lib/gitlab/gitaly_client/util_spec.rb1063spec/models/concerns/vulnerability_finding_helpers_spec.rb1064spec/lib/gitlab/with_request_store_spec.rb1065spec/graphql/types/projects/service_type_enum_spec.rb1066spec/validators/iso8601_date_validator_spec.rb1067spec/graphql/types/packages/helm/dependency_type_spec.rb1068spec/graphql/types/ci_configuration/sast/entity_type_spec.rb1069spec/graphql/types/tree/tree_type_spec.rb1070spec/rubocop/cop/rspec/feature_category_on_shared_examples_spec.rb1071spec/lib/gitlab/database/schema_validation/validators/missing_indexes_spec.rb1072spec/lib/gitlab/utils/error_message_spec.rb1073spec/graphql/types/ci/test_report_total_type_spec.rb1074spec/serializers/personal_access_token_entity_spec.rb1075spec/graphql/types/commit_action_mode_enum_spec.rb1076spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb1077spec/graphql/types/work_items/widgets/notes_type_spec.rb1078spec/workers/concerns/repository_check_queue_spec.rb1079Filter specs:1080Running specs:1081Running all node tests without filter1082spec/models/namespace_spec.rb1083spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb1084spec/models/project_team_spec.rb1085spec/services/projects/overwrite_project_service_spec.rb1086spec/workers/packages/debian/generate_distribution_worker_spec.rb1087spec/models/concerns/deployment_platform_spec.rb1088spec/lib/banzai/filter/references/label_reference_filter_spec.rb1089spec/services/projects/alerting/notify_service_spec.rb1090spec/policies/project_statistics_policy_spec.rb1091spec/finders/merge_request_target_project_finder_spec.rb1092spec/models/protected_branch_spec.rb1093spec/routing/routing_spec.rb1094spec/lib/banzai/reference_parser/snippet_parser_spec.rb1095spec/lib/gitlab/email/message/repository_push_spec.rb1096spec/models/error_tracking/project_error_tracking_setting_spec.rb1097spec/services/projects/lfs_pointers/lfs_download_service_spec.rb1098spec/lib/gitlab/background_migration/backfill_namespace_id_for_project_route_spec.rb1099spec/graphql/mutations/merge_requests/set_locked_spec.rb1100spec/models/integrations/drone_ci_spec.rb1101spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb1102spec/services/system_notes/merge_requests_service_spec.rb1103spec/models/concerns/deprecated_assignee_spec.rb1104spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb1105spec/policies/blob_policy_spec.rb1106spec/lib/gitlab/gitaly_client/commit_service_spec.rb1107spec/scripts/trigger-build_spec.rb1108spec/lib/gitlab/database/with_lock_retries_spec.rb1109spec/routing/import_routing_spec.rb1110spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb1111spec/graphql/resolvers/todos_resolver_spec.rb1112spec/graphql/features/authorization_spec.rb1113spec/finders/cluster_ancestors_finder_spec.rb1114spec/lib/atlassian/jira_connect/client_spec.rb1115spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb1116spec/helpers/members_helper_spec.rb1117spec/presenters/ci/build_presenter_spec.rb1118spec/services/groups/autocomplete_service_spec.rb1119spec/models/project_authorization_spec.rb1120spec/graphql/mutations/releases/create_spec.rb1121spec/views/projects/edit.html.haml_spec.rb1122spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb1123spec/models/snippet_input_action_spec.rb1124spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb1125spec/services/security/ci_configuration/container_scanning_create_service_spec.rb1126spec/models/incident_management/timeline_event_spec.rb1127spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb1128spec/services/namespace_settings/update_service_spec.rb1129spec/services/repositories/housekeeping_service_spec.rb1130spec/services/incident_management/incidents/create_service_spec.rb1131spec/lib/gitlab/ci/config/entry/cache_spec.rb1132spec/models/ci/resource_spec.rb1133spec/lib/gitlab/ci/config/entry/variable_spec.rb1134spec/helpers/sidebars_helper_spec.rb1135spec/workers/merge_requests/create_pipeline_worker_spec.rb1136spec/lib/gitlab/email/reply_parser_spec.rb1137spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb1138spec/graphql/types/group_type_spec.rb1139spec/models/network/graph_spec.rb1140spec/lib/gitlab/database/background_migration/prometheus_metrics_spec.rb1141spec/services/ci/create_pipeline_service/cache_spec.rb1142spec/lib/gitlab_edition_spec.rb1143spec/services/ci/create_pipeline_service/include_spec.rb1144spec/finders/protected_branches_finder_spec.rb1145spec/services/projects/import_export/parallel_export_service_spec.rb1146spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb1147spec/lib/gitlab/database/load_balancing/session_spec.rb1148spec/models/packages/maven/metadatum_spec.rb1149spec/graphql/resolvers/group_packages_resolver_spec.rb1150spec/config/settings_spec.rb1151spec/db/production/settings_spec.rb1152spec/lib/gitlab/database/bulk_update_spec.rb1153spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb1154spec/tasks/gitlab/praefect_rake_spec.rb1155spec/presenters/label_presenter_spec.rb1156spec/graphql/types/alert_management/prometheus_integration_type_spec.rb1157spec/workers/repository_update_remote_mirror_worker_spec.rb1158spec/services/ci/create_pipeline_service/logger_spec.rb1159spec/lib/gitlab/kubernetes/helm/v3/install_command_spec.rb1160spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb1161spec/finders/releases/evidence_pipeline_finder_spec.rb1162spec/lib/gitlab/github_import/markdown/attachment_spec.rb1163spec/services/ci/build_report_result_service_spec.rb1164spec/views/layouts/terms.html.haml_spec.rb1165spec/services/users/create_service_spec.rb1166spec/models/deployment_cluster_spec.rb1167spec/lib/gitlab/ci/templates/Jobs/sast_iac_gitlab_ci_yaml_spec.rb1168spec/lib/gitlab/git/blame_spec.rb1169spec/views/search/show.html.haml_spec.rb1170spec/services/merge_requests/mergeability/logger_spec.rb1171spec/lib/gitlab/kubernetes/helm/v3/delete_command_spec.rb1172spec/lib/gitlab/email/failure_handler_spec.rb1173spec/services/packages/debian/create_distribution_service_spec.rb1174spec/services/web_hooks/log_execution_service_spec.rb1175spec/lib/gitlab/github_import/importer/events/changed_label_spec.rb1176spec/lib/gitlab/database/reindexing/coordinator_spec.rb1177spec/workers/ci/retry_pipeline_worker_spec.rb1178spec/services/terraform/states/trigger_destroy_service_spec.rb1179spec/lib/gitlab/database/async_indexes/index_creator_spec.rb1180spec/lib/gitlab/ci/templates/Jobs/code_quality_gitlab_ci_yaml_spec.rb1181spec/lib/gitlab/sidekiq_config/worker_spec.rb1182spec/workers/every_sidekiq_worker_spec.rb1183spec/tasks/gitlab/shell_rake_spec.rb1184spec/services/authorized_project_update/project_recalculate_service_spec.rb1185spec/helpers/instance_configuration_helper_spec.rb1186spec/lib/gitlab/import_export/uploads_saver_spec.rb1187spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb1188spec/services/ci/job_token_scope/add_project_service_spec.rb1189spec/graphql/mutations/terraform/state/unlock_spec.rb1190spec/lib/api/every_api_endpoint_spec.rb1191spec/lib/gitlab/otp_key_rotator_spec.rb1192spec/lib/gitlab/gitaly_client/call_spec.rb1193spec/services/ci/daily_build_group_report_result_service_spec.rb1194spec/models/blob_viewer/license_spec.rb1195spec/services/markdown_content_rewriter_service_spec.rb1196spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb1197spec/policies/clusters/agents/activity_event_policy_spec.rb1198spec/lib/sidebars/user_settings/menus/saved_replies_menu_spec.rb1199spec/components/pajamas/checkbox_tag_component_spec.rb1200spec/lib/gitlab/usage/metrics/instrumentations/count_users_with_ml_candidates_metric_spec.rb1201spec/lib/gitlab/github_import/importer/events/changed_reviewer_spec.rb1202spec/models/packages/debian/project_architecture_spec.rb1203spec/finders/bulk_imports/imports_finder_spec.rb1204spec/lib/gitlab/database/reindexing/reindex_action_spec.rb1205spec/services/notes/resolve_service_spec.rb1206spec/lib/gitlab/kubernetes_spec.rb1207spec/models/snippet_input_action_collection_spec.rb1208spec/lib/bulk_imports/common/pipelines/entity_finisher_spec.rb1209spec/lib/gitlab/jwt_token_spec.rb1210spec/lib/gitlab/diff/line_mapper_spec.rb1211spec/lib/gitlab/github_import/importer/events/changed_milestone_spec.rb1212spec/services/merge_requests/pushed_branches_service_spec.rb1213spec/lib/gitlab/ci/status/build/action_spec.rb1214spec/routing/notifications_routing_spec.rb1215spec/lib/banzai/filter/inline_observability_filter_spec.rb1216spec/views/events/event/_common.html.haml_spec.rb1217spec/models/users/credit_card_validation_spec.rb1218spec/services/events/destroy_service_spec.rb1219spec/lib/api/entities/ml/mlflow/run_spec.rb1220spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb1221spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb1222spec/services/ci/append_build_trace_service_spec.rb1223spec/serializers/rollout_statuses/ingress_entity_spec.rb1224spec/initializers/6_validations_spec.rb1225spec/lib/gitlab/database/postgresql_adapter/empty_query_ping_spec.rb1226spec/workers/terraform/states/destroy_worker_spec.rb1227spec/lib/mattermost/client_spec.rb1228spec/models/concerns/cross_database_modification_spec.rb1229spec/lib/gitlab/url_blockers/url_allowlist_spec.rb1230spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb1231spec/lib/gitlab/data_builder/feature_flag_spec.rb1232spec/presenters/packages/pypi/simple_index_presenter_spec.rb1233spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb1234spec/serializers/cluster_entity_spec.rb1235spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb1236spec/serializers/ci/dag_pipeline_serializer_spec.rb1237spec/models/preloaders/group_root_ancestor_preloader_spec.rb1238spec/services/import/github/notes/create_service_spec.rb1239spec/lib/gitlab/ci/config/entry/include/rules_spec.rb1240spec/workers/pipeline_notification_worker_spec.rb1241spec/lib/gitlab/sourcegraph_spec.rb1242spec/services/customer_relations/organizations/update_service_spec.rb1243spec/services/spam/akismet_mark_as_spam_service_spec.rb1244spec/rubocop/cop/migration/migration_record_spec.rb1245spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb1246spec/lib/gitlab/sql/intersect_spec.rb1247spec/serializers/container_repository_entity_spec.rb1248spec/views/layouts/snippets.html.haml_spec.rb1249spec/graphql/types/ci_configuration/sast/type_spec.rb1250spec/models/concerns/from_set_operator_spec.rb1251spec/lib/gitlab/memory/jemalloc_spec.rb1252spec/lib/gitlab/ci/status/preparing_spec.rb1253spec/uploaders/object_storage/cdn_spec.rb1254spec/services/projects/batch_open_issues_count_service_spec.rb1255spec/lib/gitlab/database/type/json_pg_safe_spec.rb1256spec/lib/gitlab/github_import/representation/user_spec.rb1257spec/models/concerns/file_store_mounter_spec.rb1258spec/workers/snippets/update_repository_storage_worker_spec.rb1259spec/lib/backup/database_backup_error_spec.rb1260spec/serializers/container_tag_entity_spec.rb1261spec/services/system_notes/base_service_spec.rb1262spec/views/admin/application_settings/network.html.haml_spec.rb1263spec/lib/gitlab/manifest_import/metadata_spec.rb1264spec/lib/gitlab/kroki_spec.rb1265spec/lib/gitlab/memory/reports/jemalloc_stats_spec.rb1266spec/lib/gitlab/gitlab_import/importer_spec.rb1267spec/lib/gitlab/import_export/design_repo_restorer_spec.rb1268spec/models/concerns/web_hooks/has_web_hooks_spec.rb1269spec/serializers/import/gitlab_provider_repo_entity_spec.rb1270spec/tooling/lib/tooling/test_map_packer_spec.rb1271spec/lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter_spec.rb1272spec/lib/gitlab/database/migration_helpers/announce_database_spec.rb1273spec/lib/gitlab/view/presenter/simple_spec.rb1274spec/graphql/types/commit_signatures/ssh_signature_type_spec.rb1275spec/validators/any_field_validator_spec.rb1276spec/lib/banzai/filter/normalize_source_filter_spec.rb1277spec/presenters/milestone_presenter_spec.rb1278spec/lib/gitlab/auth/otp/strategies/devise_spec.rb1279spec/support_specs/time_travel_spec.rb1280spec/lib/bitbucket_server/collection_spec.rb1281spec/lib/gitlab/ci/pipeline/chain/cancel_pending_pipelines_spec.rb1282spec/helpers/terms_helper_spec.rb1283spec/lib/gitlab/kubernetes/kubeconfig/entry/cluster_spec.rb1284spec/lib/banzai/pipeline/email_pipeline_spec.rb1285spec/lib/gitlab/audit/deploy_token_author_spec.rb1286spec/views/import/gitlab_projects/new.html.haml_spec.rb1287spec/models/ci/pipeline_config_spec.rb1288spec/lib/sidebars/projects/super_sidebar_menus/manage_menu_spec.rb1289spec/lib/gitlab/cross_project_access/check_collection_spec.rb1290spec/graphql/types/custom_emoji_type_spec.rb1291spec/models/protected_branch/merge_access_level_spec.rb1292spec/lib/gitlab/ci/config/external/mapper/normalizer_spec.rb1293spec/graphql/types/merge_request_sort_enum_spec.rb1294spec/initializers/microsoft_graph_mailer_spec.rb1295spec/lib/gitlab/github_import/logger_spec.rb1296spec/lib/gitlab/gitaly_client/util_spec.rb1297spec/models/concerns/vulnerability_finding_helpers_spec.rb1298spec/lib/gitlab/with_request_store_spec.rb1299spec/graphql/types/projects/service_type_enum_spec.rb1300spec/validators/iso8601_date_validator_spec.rb1301spec/graphql/types/packages/helm/dependency_type_spec.rb1302spec/graphql/types/ci_configuration/sast/entity_type_spec.rb1303spec/graphql/types/tree/tree_type_spec.rb1304spec/rubocop/cop/rspec/feature_category_on_shared_examples_spec.rb1305spec/lib/gitlab/database/schema_validation/validators/missing_indexes_spec.rb1306spec/lib/gitlab/utils/error_message_spec.rb1307spec/graphql/types/ci/test_report_total_type_spec.rb1308spec/serializers/personal_access_token_entity_spec.rb1309spec/graphql/types/commit_action_mode_enum_spec.rb1310spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb1311spec/graphql/types/work_items/widgets/notes_type_spec.rb1312spec/workers/concerns/repository_check_queue_spec.rb1313Running all node tests without filter1314Running all node tests without filter1315Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec.xml --tag ~quarantine --tag ~level:background_migration --default-path spec -- spec/models/namespace_spec.rb spec/services/ci/pipeline_processing/atomic_processing_service_spec.rb spec/models/project_team_spec.rb spec/services/projects/overwrite_project_service_spec.rb spec/workers/packages/debian/generate_distribution_worker_spec.rb spec/models/concerns/deployment_platform_spec.rb spec/lib/banzai/filter/references/label_reference_filter_spec.rb spec/services/projects/alerting/notify_service_spec.rb spec/policies/project_statistics_policy_spec.rb spec/finders/merge_request_target_project_finder_spec.rb spec/models/protected_branch_spec.rb spec/routing/routing_spec.rb spec/lib/banzai/reference_parser/snippet_parser_spec.rb spec/lib/gitlab/email/message/repository_push_spec.rb spec/models/error_tracking/project_error_tracking_setting_spec.rb spec/services/projects/lfs_pointers/lfs_download_service_spec.rb spec/lib/gitlab/background_migration/backfill_namespace_id_for_project_route_spec.rb spec/graphql/mutations/merge_requests/set_locked_spec.rb spec/models/integrations/drone_ci_spec.rb spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb spec/services/system_notes/merge_requests_service_spec.rb spec/models/concerns/deprecated_assignee_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb spec/policies/blob_policy_spec.rb spec/lib/gitlab/gitaly_client/commit_service_spec.rb spec/scripts/trigger-build_spec.rb spec/lib/gitlab/database/with_lock_retries_spec.rb spec/routing/import_routing_spec.rb spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb spec/graphql/resolvers/todos_resolver_spec.rb spec/graphql/features/authorization_spec.rb spec/finders/cluster_ancestors_finder_spec.rb spec/lib/atlassian/jira_connect/client_spec.rb spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb spec/helpers/members_helper_spec.rb spec/presenters/ci/build_presenter_spec.rb spec/services/groups/autocomplete_service_spec.rb spec/models/project_authorization_spec.rb spec/graphql/mutations/releases/create_spec.rb spec/views/projects/edit.html.haml_spec.rb spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb spec/models/snippet_input_action_spec.rb spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb spec/services/security/ci_configuration/container_scanning_create_service_spec.rb spec/models/incident_management/timeline_event_spec.rb spec/services/merge_requests/delete_non_latest_diffs_service_spec.rb spec/services/namespace_settings/update_service_spec.rb spec/services/repositories/housekeeping_service_spec.rb spec/services/incident_management/incidents/create_service_spec.rb spec/lib/gitlab/ci/config/entry/cache_spec.rb spec/models/ci/resource_spec.rb spec/lib/gitlab/ci/config/entry/variable_spec.rb spec/helpers/sidebars_helper_spec.rb spec/workers/merge_requests/create_pipeline_worker_spec.rb spec/lib/gitlab/email/reply_parser_spec.rb spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb spec/graphql/types/group_type_spec.rb spec/models/network/graph_spec.rb spec/lib/gitlab/database/background_migration/prometheus_metrics_spec.rb spec/services/ci/create_pipeline_service/cache_spec.rb spec/lib/gitlab_edition_spec.rb spec/services/ci/create_pipeline_service/include_spec.rb spec/finders/protected_branches_finder_spec.rb spec/services/projects/import_export/parallel_export_service_spec.rb spec/lib/gitlab/sidekiq_migrate_jobs_spec.rb spec/lib/gitlab/database/load_balancing/session_spec.rb spec/models/packages/maven/metadatum_spec.rb spec/graphql/resolvers/group_packages_resolver_spec.rb spec/config/settings_spec.rb spec/db/production/settings_spec.rb spec/lib/gitlab/database/bulk_update_spec.rb spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb spec/tasks/gitlab/praefect_rake_spec.rb spec/presenters/label_presenter_spec.rb spec/graphql/types/alert_management/prometheus_integration_type_spec.rb spec/workers/repository_update_remote_mirror_worker_spec.rb spec/services/ci/create_pipeline_service/logger_spec.rb spec/lib/gitlab/kubernetes/helm/v3/install_command_spec.rb spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb spec/finders/releases/evidence_pipeline_finder_spec.rb spec/lib/gitlab/github_import/markdown/attachment_spec.rb spec/services/ci/build_report_result_service_spec.rb spec/views/layouts/terms.html.haml_spec.rb spec/services/users/create_service_spec.rb spec/models/deployment_cluster_spec.rb spec/lib/gitlab/ci/templates/Jobs/sast_iac_gitlab_ci_yaml_spec.rb spec/lib/gitlab/git/blame_spec.rb spec/views/search/show.html.haml_spec.rb spec/services/merge_requests/mergeability/logger_spec.rb spec/lib/gitlab/kubernetes/helm/v3/delete_command_spec.rb spec/lib/gitlab/email/failure_handler_spec.rb spec/services/packages/debian/create_distribution_service_spec.rb spec/services/web_hooks/log_execution_service_spec.rb spec/lib/gitlab/github_import/importer/events/changed_label_spec.rb spec/lib/gitlab/database/reindexing/coordinator_spec.rb spec/workers/ci/retry_pipeline_worker_spec.rb spec/services/terraform/states/trigger_destroy_service_spec.rb spec/lib/gitlab/database/async_indexes/index_creator_spec.rb spec/lib/gitlab/ci/templates/Jobs/code_quality_gitlab_ci_yaml_spec.rb spec/lib/gitlab/sidekiq_config/worker_spec.rb spec/workers/every_sidekiq_worker_spec.rb spec/tasks/gitlab/shell_rake_spec.rb spec/services/authorized_project_update/project_recalculate_service_spec.rb spec/helpers/instance_configuration_helper_spec.rb spec/lib/gitlab/import_export/uploads_saver_spec.rb spec/lib/gitlab/metrics/dashboard/validator/errors_spec.rb spec/services/ci/job_token_scope/add_project_service_spec.rb spec/graphql/mutations/terraform/state/unlock_spec.rb spec/lib/api/every_api_endpoint_spec.rb spec/lib/gitlab/otp_key_rotator_spec.rb spec/lib/gitlab/gitaly_client/call_spec.rb spec/services/ci/daily_build_group_report_result_service_spec.rb spec/models/blob_viewer/license_spec.rb spec/services/markdown_content_rewriter_service_spec.rb spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb spec/policies/clusters/agents/activity_event_policy_spec.rb spec/lib/sidebars/user_settings/menus/saved_replies_menu_spec.rb spec/components/pajamas/checkbox_tag_component_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_users_with_ml_candidates_metric_spec.rb spec/lib/gitlab/github_import/importer/events/changed_reviewer_spec.rb spec/models/packages/debian/project_architecture_spec.rb spec/finders/bulk_imports/imports_finder_spec.rb spec/lib/gitlab/database/reindexing/reindex_action_spec.rb spec/services/notes/resolve_service_spec.rb spec/lib/gitlab/kubernetes_spec.rb spec/models/snippet_input_action_collection_spec.rb spec/lib/bulk_imports/common/pipelines/entity_finisher_spec.rb spec/lib/gitlab/jwt_token_spec.rb spec/lib/gitlab/diff/line_mapper_spec.rb spec/lib/gitlab/github_import/importer/events/changed_milestone_spec.rb spec/services/merge_requests/pushed_branches_service_spec.rb spec/lib/gitlab/ci/status/build/action_spec.rb spec/routing/notifications_routing_spec.rb spec/lib/banzai/filter/inline_observability_filter_spec.rb spec/views/events/event/_common.html.haml_spec.rb spec/models/users/credit_card_validation_spec.rb spec/services/events/destroy_service_spec.rb spec/lib/api/entities/ml/mlflow/run_spec.rb spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_created_spec.rb spec/services/ci/append_build_trace_service_spec.rb spec/serializers/rollout_statuses/ingress_entity_spec.rb spec/initializers/6_validations_spec.rb spec/lib/gitlab/database/postgresql_adapter/empty_query_ping_spec.rb spec/workers/terraform/states/destroy_worker_spec.rb spec/lib/mattermost/client_spec.rb spec/models/concerns/cross_database_modification_spec.rb spec/lib/gitlab/url_blockers/url_allowlist_spec.rb spec/rubocop/cop/migration/add_columns_to_wide_tables_spec.rb spec/lib/gitlab/data_builder/feature_flag_spec.rb spec/presenters/packages/pypi/simple_index_presenter_spec.rb spec/lib/gitlab/legacy_github_import/user_formatter_spec.rb spec/serializers/cluster_entity_spec.rb spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb spec/serializers/ci/dag_pipeline_serializer_spec.rb spec/models/preloaders/group_root_ancestor_preloader_spec.rb spec/services/import/github/notes/create_service_spec.rb spec/lib/gitlab/ci/config/entry/include/rules_spec.rb spec/workers/pipeline_notification_worker_spec.rb spec/lib/gitlab/sourcegraph_spec.rb spec/services/customer_relations/organizations/update_service_spec.rb spec/services/spam/akismet_mark_as_spam_service_spec.rb spec/rubocop/cop/migration/migration_record_spec.rb spec/lib/banzai/filter/table_of_contents_tag_filter_spec.rb spec/lib/gitlab/sql/intersect_spec.rb spec/serializers/container_repository_entity_spec.rb spec/views/layouts/snippets.html.haml_spec.rb spec/graphql/types/ci_configuration/sast/type_spec.rb spec/models/concerns/from_set_operator_spec.rb spec/lib/gitlab/memory/jemalloc_spec.rb spec/lib/gitlab/ci/status/preparing_spec.rb spec/uploaders/object_storage/cdn_spec.rb spec/services/projects/batch_open_issues_count_service_spec.rb spec/lib/gitlab/database/type/json_pg_safe_spec.rb spec/lib/gitlab/github_import/representation/user_spec.rb spec/models/concerns/file_store_mounter_spec.rb spec/workers/snippets/update_repository_storage_worker_spec.rb spec/lib/backup/database_backup_error_spec.rb spec/serializers/container_tag_entity_spec.rb spec/services/system_notes/base_service_spec.rb spec/views/admin/application_settings/network.html.haml_spec.rb spec/lib/gitlab/manifest_import/metadata_spec.rb spec/lib/gitlab/kroki_spec.rb spec/lib/gitlab/memory/reports/jemalloc_stats_spec.rb spec/lib/gitlab/gitlab_import/importer_spec.rb spec/lib/gitlab/import_export/design_repo_restorer_spec.rb spec/models/concerns/web_hooks/has_web_hooks_spec.rb spec/serializers/import/gitlab_provider_repo_entity_spec.rb spec/tooling/lib/tooling/test_map_packer_spec.rb spec/lib/gitlab/metrics/dashboard/stages/metric_endpoint_inserter_spec.rb spec/lib/gitlab/database/migration_helpers/announce_database_spec.rb spec/lib/gitlab/view/presenter/simple_spec.rb spec/graphql/types/commit_signatures/ssh_signature_type_spec.rb spec/validators/any_field_validator_spec.rb spec/lib/banzai/filter/normalize_source_filter_spec.rb spec/presenters/milestone_presenter_spec.rb spec/lib/gitlab/auth/otp/strategies/devise_spec.rb spec/support_specs/time_travel_spec.rb spec/lib/bitbucket_server/collection_spec.rb spec/lib/gitlab/ci/pipeline/chain/cancel_pending_pipelines_spec.rb spec/helpers/terms_helper_spec.rb spec/lib/gitlab/kubernetes/kubeconfig/entry/cluster_spec.rb spec/lib/banzai/pipeline/email_pipeline_spec.rb spec/lib/gitlab/audit/deploy_token_author_spec.rb spec/views/import/gitlab_projects/new.html.haml_spec.rb spec/models/ci/pipeline_config_spec.rb spec/lib/sidebars/projects/super_sidebar_menus/manage_menu_spec.rb spec/lib/gitlab/cross_project_access/check_collection_spec.rb spec/graphql/types/custom_emoji_type_spec.rb spec/models/protected_branch/merge_access_level_spec.rb spec/lib/gitlab/ci/config/external/mapper/normalizer_spec.rb spec/graphql/types/merge_request_sort_enum_spec.rb spec/initializers/microsoft_graph_mailer_spec.rb spec/lib/gitlab/github_import/logger_spec.rb spec/lib/gitlab/gitaly_client/util_spec.rb spec/models/concerns/vulnerability_finding_helpers_spec.rb spec/lib/gitlab/with_request_store_spec.rb spec/graphql/types/projects/service_type_enum_spec.rb spec/validators/iso8601_date_validator_spec.rb spec/graphql/types/packages/helm/dependency_type_spec.rb spec/graphql/types/ci_configuration/sast/entity_type_spec.rb spec/graphql/types/tree/tree_type_spec.rb spec/rubocop/cop/rspec/feature_category_on_shared_examples_spec.rb spec/lib/gitlab/database/schema_validation/validators/missing_indexes_spec.rb spec/lib/gitlab/utils/error_message_spec.rb spec/graphql/types/ci/test_report_total_type_spec.rb spec/serializers/personal_access_token_entity_spec.rb spec/graphql/types/commit_action_mode_enum_spec.rb spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb spec/graphql/types/work_items/widgets/notes_type_spec.rb spec/workers/concerns/repository_check_queue_spec.rb/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: already initialized constant Gitlab::APP_DIRS_PATTERN1316/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: previous definition of APP_DIRS_PATTERN was here1317/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: already initialized constant Gitlab::VERSION1318/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: previous definition of VERSION was here1319/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: already initialized constant Gitlab::INSTALLATION_TYPE1320/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: previous definition of INSTALLATION_TYPE was here1321/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: already initialized constant Gitlab::HTTP_PROXY_ENV_VARS1322/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: previous definition of HTTP_PROXY_ENV_VARS was here1323Run options: exclude {:quarantine=>true, :level=>"background_migration"}1324Test environment set up in 0.686807424 seconds1325Namespace1326 associations1327 is expected to have many projects1328 is expected to have many project_statistics1329 is expected to belong to parent required: false1330 is expected to have many children1331 is expected to have one root_storage_statistics1332 is expected to have one aggregation_schedule1333 is expected to have one namespace_settings1334 is expected to have one namespace_details1335 is expected to have one namespace_statistics1336 is expected to have many custom_emoji1337 is expected to have one package_setting_relation1338 is expected to have one onboarding_progress1339 is expected to have one admin_note1340 is expected to have many pending_builds1341 is expected to have one namespace_route1342 is expected to have many namespace_members1343 is expected to have one cluster_enabled_grant1344 is expected to have many work_items1345 is expected to have many achievements1346 is expected to have many namespace_commit_emails class_name => Users::NamespaceCommitEmail1347 is expected to have many cycle_analytics_stages1348 is expected to have many value_streams1349 is expected to have one ci_cd_settings class_name => NamespaceCiCdSetting inverse_of => namespace1350 #children1351 excludes project namespaces1352 validations1353 is expected to validate that :name cannot be empty/falsy1354 is expected to validate that the length of :name is at most 2551355 is expected to validate that the length of :description is at most 2551356 is expected to validate that :path cannot be empty/falsy1357 is expected to validate that the length of :path is at most 2551358 is expected to validate that :owner cannot be empty/falsy1359 is expected to validate that :max_artifacts_size looks like an integer greater than 01360 validating the parent of a namespace1361 parent_type: nil, child_type: user_sti_name, error: nil1362 validates namespace parent1363 parent_type: nil, child_type: group_sti_name, error: nil1364 validates namespace parent1365 parent_type: nil, child_type: project_sti_name, error: "must be set for a project namespace"1366 validates namespace parent1367 parent_type: project_sti_name, child_type: user_sti_name, error: "project namespace cannot be the parent of another namespace"1368 validates namespace parent1369 parent_type: project_sti_name, child_type: group_sti_name, error: "project namespace cannot be the parent of another namespace"1370 validates namespace parent1371 parent_type: project_sti_name, child_type: project_sti_name, error: "project namespace cannot be the parent of another namespace"1372 validates namespace parent1373 parent_type: group_sti_name, child_type: user_sti_name, error: "cannot be used for user namespace"1374 validates namespace parent1375 parent_type: group_sti_name, child_type: group_sti_name, error: nil1376 validates namespace parent1377 parent_type: group_sti_name, child_type: project_sti_name, error: nil1378 validates namespace parent1379 parent_type: user_sti_name, child_type: user_sti_name, error: "cannot be used for user namespace"1380 validates namespace parent1381 parent_type: user_sti_name, child_type: group_sti_name, error: "user namespace cannot be the parent of another namespace"1382 validates namespace parent1383 parent_type: user_sti_name, child_type: project_sti_name, error: nil1384 validates namespace parent1385 #nesting_level_allowed1386 for a group1387 does not allow too deep nesting1388 behaves like validations called by different namespace types1389 namespace_type: :namespace, call_validation: true1390 conditionally runs given validation1391 namespace_type: :group, call_validation: true1392 conditionally runs given validation1393 namespace_type: :user_namespace, call_validation: true1394 conditionally runs given validation1395 namespace_type: :project_namespace, call_validation: false1396 conditionally runs given validation1397 reserved path validation1398 nested group1399 is expected not to be valid1400 rejects nested paths1401 is case insensitive1402 is expected not to be valid1403 top-level group1404 is expected to be valid1405 path validator1406 namespace_type: project_sti_name, path: "j", valid: true1407 validates namespace path1408 namespace_type: project_sti_name, path: "path.", valid: false1409 validates namespace path1410 namespace_type: project_sti_name, path: ".path", valid: false1411 validates namespace path1412 namespace_type: project_sti_name, path: "path.git", valid: false1413 validates namespace path1414 namespace_type: project_sti_name, path: "namespace__path", valid: false1415 validates namespace path1416 namespace_type: project_sti_name, path: "blob", valid: false1417 validates namespace path1418 namespace_type: group_sti_name, path: "j", valid: false1419 validates namespace path1420 namespace_type: group_sti_name, path: "path.", valid: false1421 validates namespace path1422 namespace_type: group_sti_name, path: ".path", valid: false1423 validates namespace path1424 namespace_type: group_sti_name, path: "path.git", valid: false1425 validates namespace path1426 namespace_type: group_sti_name, path: "namespace__path", valid: false1427 validates namespace path1428 namespace_type: group_sti_name, path: "blob", valid: true1429 validates namespace path1430 namespace_type: user_sti_name, path: "j", valid: false1431 validates namespace path1432 namespace_type: user_sti_name, path: "path.", valid: false1433 validates namespace path1434 namespace_type: user_sti_name, path: ".path", valid: false1435 validates namespace path1436 namespace_type: user_sti_name, path: "path.git", valid: false1437 validates namespace path1438 namespace_type: user_sti_name, path: "namespace__path", valid: false1439 validates namespace path1440 namespace_type: user_sti_name, path: "blob", valid: true1441 validates namespace path1442 when path starts or ends with a special character1443 does not raise validation error for path for existing namespaces1444 when restrict_special_characters_in_namespace_path feature flag is disabled1445 allows special character at the start or end of project namespace path1446 1 char path length1447 with user namespace1448 does not allow to update path to single char1449 allows updating other attributes for existing record1450 with project namespace1451 allows to update path to single char1452 ReferencePatternValidation1453 is expected to match "@group1"1454 is expected to match "@group1/group2/group3"1455 is expected to match "@1234/1234/1234"1456 is expected to match "@.q-w_e"1457 #to_reference_base1458 namespace: parent, full: false, from: nil, result: nil1459 returns correct path1460 namespace: parent, full: true, from: nil, result: lazy { parent.full_path }1461 returns correct path1462 namespace: parent, full: false, from: group, result: lazy { parent.path }1463 returns correct path1464 namespace: parent, full: true, from: group, result: lazy { parent.full_path }1465 returns correct path1466 namespace: parent, full: false, from: parent, result: nil1467 returns correct path1468 namespace: parent, full: true, from: parent, result: lazy { parent.full_path }1469 returns correct path1470 namespace: parent, full: false, from: project, result: lazy { parent.path }1471 returns correct path1472 namespace: parent, full: true, from: project, result: lazy { parent.full_path }1473 returns correct path1474 namespace: parent, full: false, from: project_namespace, result: lazy { parent.path }1475 returns correct path1476 namespace: parent, full: true, from: project_namespace, result: lazy { parent.full_path }1477 returns correct path1478 namespace: parent, full: false, from: another_group, result: lazy { parent.full_path }1479 returns correct path1480 namespace: parent, full: true, from: another_group, result: lazy { parent.full_path }1481 returns correct path1482 namespace: parent, full: false, from: another_namespace_project, result: lazy { parent.full_path }1483 returns correct path1484 namespace: parent, full: true, from: another_namespace_project, result: lazy { parent.full_path }1485 returns correct path1486 namespace: parent, full: false, from: another_namespace_project_namespace, result: lazy { parent.full_path }1487 returns correct path1488 namespace: parent, full: true, from: another_namespace_project_namespace, result: lazy { parent.full_path }1489 returns correct path1490 namespace: parent, full: false, from: user_namespace, result: lazy { parent.full_path }1491 returns correct path1492 namespace: parent, full: true, from: user_namespace, result: lazy { parent.full_path }1493 returns correct path1494 namespace: group, full: false, from: nil, result: nil1495 returns correct path1496 namespace: group, full: true, from: nil, result: lazy { group.full_path }1497 returns correct path1498 namespace: group, full: false, from: group, result: nil1499 returns correct path1500 namespace: group, full: true, from: group, result: lazy { group.full_path }1501 returns correct path1502 namespace: group, full: false, from: parent, result: lazy { group.path }1503 returns correct path1504 namespace: group, full: true, from: parent, result: lazy { group.full_path }1505 returns correct path1506 namespace: group, full: false, from: project, result: lazy { group.path }1507 returns correct path1508 namespace: group, full: true, from: project, result: lazy { group.full_path }1509 returns correct path1510 namespace: group, full: false, from: project_namespace, result: lazy { group.path }1511 returns correct path1512 namespace: group, full: true, from: project_namespace, result: lazy { group.full_path }1513 returns correct path1514 namespace: group, full: false, from: another_group, result: lazy { group.full_path }1515 returns correct path1516 namespace: group, full: true, from: another_group, result: lazy { group.full_path }1517 returns correct path1518 namespace: group, full: false, from: another_namespace_project, result: lazy { group.full_path }1519 returns correct path1520 namespace: group, full: true, from: another_namespace_project, result: lazy { group.full_path }1521 returns correct path1522 namespace: group, full: false, from: another_namespace_project_namespace, result: lazy { group.full_path }1523 returns correct path1524 namespace: group, full: true, from: another_namespace_project_namespace, result: lazy { group.full_path }1525 returns correct path1526 namespace: group, full: false, from: user_namespace, result: lazy { group.full_path }1527 returns correct path1528 namespace: group, full: true, from: user_namespace, result: lazy { group.full_path }1529 returns correct path1530 namespace: project_namespace, full: false, from: nil, result: nil1531 returns correct path1532 namespace: project_namespace, full: true, from: nil, result: lazy { project_namespace.full_path }1533 returns correct path1534 namespace: project_namespace, full: false, from: group, result: lazy { project_namespace.path }1535 returns correct path1536 namespace: project_namespace, full: true, from: group, result: lazy { project_namespace.full_path }1537 returns correct path1538 namespace: project_namespace, full: false, from: parent, result: lazy { project_namespace.full_path }1539 returns correct path1540 namespace: project_namespace, full: true, from: parent, result: lazy { project_namespace.full_path }1541 returns correct path1542 namespace: project_namespace, full: false, from: project, result: nil1543 returns correct path1544 namespace: project_namespace, full: true, from: project, result: lazy { project_namespace.full_path }1545 returns correct path1546 namespace: project_namespace, full: false, from: project_namespace, result: nil1547 returns correct path1548 namespace: project_namespace, full: true, from: project_namespace, result: lazy { project_namespace.full_path }1549 returns correct path1550 namespace: project_namespace, full: false, from: another_group, result: lazy { project_namespace.full_path }1551 returns correct path1552 namespace: project_namespace, full: true, from: another_group, result: lazy { project_namespace.full_path }1553 returns correct path1554 namespace: project_namespace, full: false, from: another_namespace_project, result: lazy { project_namespace.full_path }1555 returns correct path1556 namespace: project_namespace, full: true, from: another_namespace_project, result: lazy { project_namespace.full_path }1557 returns correct path1558 namespace: project_namespace, full: false, from: another_namespace_project_namespace, result: lazy { project_namespace.full_path }1559 returns correct path1560 namespace: project_namespace, full: true, from: another_namespace_project_namespace, result: lazy { project_namespace.full_path }1561 returns correct path1562 namespace: project_namespace, full: false, from: user_namespace, result: lazy { project_namespace.full_path }1563 returns correct path1564 namespace: project_namespace, full: true, from: user_namespace, result: lazy { project_namespace.full_path }1565 returns correct path1566 namespace: user_namespace, full: false, from: nil, result: nil1567 returns correct path1568 namespace: user_namespace, full: true, from: nil, result: lazy { user_namespace.full_path }1569 returns correct path1570 namespace: user_namespace, full: false, from: user_namespace, result: nil1571 returns correct path1572 namespace: user_namespace, full: true, from: user_namespace, result: lazy { user_namespace.full_path }1573 returns correct path1574 namespace: user_namespace, full: false, from: group, result: lazy { user_namespace.full_path }1575 returns correct path1576 namespace: user_namespace, full: true, from: group, result: lazy { user_namespace.full_path }1577 returns correct path1578 namespace: user_namespace, full: false, from: parent, result: lazy { user_namespace.full_path }1579 returns correct path1580 namespace: user_namespace, full: true, from: parent, result: lazy { user_namespace.full_path }1581 returns correct path1582 namespace: user_namespace, full: false, from: project, result: lazy { user_namespace.full_path }1583 returns correct path1584 namespace: user_namespace, full: true, from: project, result: lazy { user_namespace.full_path }1585 returns correct path1586 namespace: user_namespace, full: false, from: project_namespace, result: lazy { user_namespace.full_path }1587 returns correct path1588 namespace: user_namespace, full: true, from: project_namespace, result: lazy { user_namespace.full_path }1589 returns correct path1590 namespace: user_namespace, full: false, from: another_group, result: lazy { user_namespace.full_path }1591 returns correct path1592 namespace: user_namespace, full: true, from: another_group, result: lazy { user_namespace.full_path }1593 returns correct path1594 namespace: user_namespace, full: false, from: another_namespace_project, result: lazy { user_namespace.full_path }1595 returns correct path1596 namespace: user_namespace, full: true, from: another_namespace_project, result: lazy { user_namespace.full_path }1597 returns correct path1598 namespace: user_namespace, full: false, from: another_namespace_project_namespace, result: lazy { user_namespace.full_path }1599 returns correct path1600 namespace: user_namespace, full: true, from: another_namespace_project_namespace, result: lazy { user_namespace.full_path }1601 returns correct path1602 handling STI1603 creating a Group1604 is the correct type of namespace1605 creating a ProjectNamespace1606 is the correct type of namespace1607 creating a UserNamespace1608 is the correct type of namespace1609 unable to create a Namespace with nil type1610 raises ActiveRecord::NotNullViolation1611 creating an unknown Namespace type1612 creates a default Namespace1613 scopes1614 .by_parent1615 includes correct namespaces1616 .filter_by_path1617 includes correct namespaces1618 filters case-insensitive1619 .sorted_by_similarity_and_parent_id_desc1620 returns exact matches and top level groups first1621 .without_project_namespaces1622 excludes project namespaces1623 .with_shared_runners_enabled1624 when shared runners are enabled for namespace1625 returns a namespace inheriting shared runners1626 when shared runners are disabled for namespace1627 does not return a namespace not inheriting shared runners1628 delegate1629 is expected to delegate #owner_name to the #owner object as #name, allowing #owner to return nil1630 is expected to delegate #avatar_url to the #owner object, allowing #owner to return nil1631 is expected to delegate #prevent_sharing_groups_outside_hierarchy to the #namespace_settings object, allowing #namespace_settings to return nil1632 is expected to delegate #runner_registration_enabled to the #namespace_settings object1633 is expected to delegate #runner_registration_enabled? to the #namespace_settings object1634 is expected to delegate #allow_runner_registration_token to the #namespace_settings object1635 is expected to delegate #allow_runner_registration_token? to the #namespace_settings object1636 is expected to delegate #maven_package_requests_forwarding to the #package_settings object1637 is expected to delegate #pypi_package_requests_forwarding to the #package_settings object1638 is expected to delegate #npm_package_requests_forwarding to the #package_settings object1639 is expected to delegate #prevent_sharing_groups_outside_hierarchy= to the #namespace_settings object passing arguments [:args], allowing #namespace_settings to return nil1640 is expected to delegate #runner_registration_enabled= to the #namespace_settings object passing arguments [:args]1641 is expected to delegate #allow_runner_registration_token= to the #namespace_settings object passing arguments [:args]1642 Respond to1643 is expected to respond to #human_name1644 is expected to respond to #to_param1645 is expected to respond to #has_parent?1646 inclusions1647 is expected to includes the Gitlab::VisibilityLevel module1648 is expected to includes the Namespaces::Traversal::Recursive module1649 is expected to includes the Namespaces::Traversal::Linear module1650 is expected to includes the Namespaces::Traversal::RecursiveScopes module1651 is expected to includes the Namespaces::Traversal::LinearScopes module1652 #traversal_ids1653 when namespace not persisted1654 returns []1655 when namespace just saved1656 returns value that matches database1657 when namespace loaded from database1658 returns database value1659 when parent is nil1660 returns []1661 when made a child group1662 returns database value1663 when root_ancestor changes1664 resets root_ancestor memo1665 within a transaction1666 is not defined yet1667 traversal scopes1668 recursive1669 behaves like namespace traversal scopes1670 .as_ids1671 is expected to contain exactly 147 and 1501672 .order_by_depth1673 ascending1674 is expected to eq [#<Group id:149 @group26/group27/group28>, #<Group id:148 @group26/group27>, #<Group id:147 @group26>]1675 descending1676 is expected to eq [#<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>]1677 .normal_select1678 is expected to eq ["id", "name", "path", "owner_id", "created_at", "updated_at", "type", "description", "avatar", "memb...d", "shared_runners_enabled", "allow_descendants_override_disabled_shared_runners", "traversal_ids"]1679 .roots1680 use_traversal_ids_roots feature flag is true1681 not make recursive queries1682 behaves like .roots1683 with only sub-groups1684 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1685 with only root groups1686 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1687 with all groups1688 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1689 use_traversal_ids_roots feature flag is false1690 makes recursive queries1691 behaves like .roots1692 with only sub-groups1693 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1694 with only root groups1695 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1696 with all groups1697 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1698 .self_and_ancestors1699 use_traversal_ids_ancestor_scopes feature flag is true1700 not make recursive queries1701 behaves like .self_and_ancestors1702 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:150 @group29>, and #<Group id:151 @group29/group30>1703 when include_self is false1704 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1705 when hierarchy_order is ascending1706 is expected to contain exactly #<Group id:148 @group26/group27>, #<Group id:151 @group29/group30>, #<Group id:147 @group26>, and #<Group id:150 @group29>1707 is expected to contain exactly #<Group id:148 @group26/group27> and #<Group id:151 @group29/group30>1708 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1709 when hierarchy_order is descending1710 is expected to contain exactly #<Group id:148 @group26/group27>, #<Group id:151 @group29/group30>, #<Group id:147 @group26>, and #<Group id:150 @group29>1711 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1712 is expected to contain exactly #<Group id:148 @group26/group27> and #<Group id:151 @group29/group30>1713 with offset and limit1714 is expected to contain exactly #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1715 with upto1716 is expected to contain exactly #<Group id:149 @group26/group27/group28>1717 use_traversal_ids_ancestor_scopes feature flag is false1718 makes recursive queries1719 behaves like .self_and_ancestors1720 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:150 @group29>, and #<Group id:151 @group29/group30>1721 when include_self is false1722 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1723 when hierarchy_order is ascending1724 is expected to contain exactly #<Group id:148 @group26/group27>, #<Group id:151 @group29/group30>, #<Group id:147 @group26>, and #<Group id:150 @group29>1725 is expected to contain exactly #<Group id:148 @group26/group27> and #<Group id:151 @group29/group30>1726 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1727 when hierarchy_order is descending1728 is expected to contain exactly #<Group id:148 @group26/group27>, #<Group id:151 @group29/group30>, #<Group id:147 @group26>, and #<Group id:150 @group29>1729 is expected to contain exactly #<Group id:147 @group26> and #<Group id:150 @group29>1730 is expected to contain exactly #<Group id:148 @group26/group27> and #<Group id:151 @group29/group30>1731 with offset and limit1732 is expected to contain exactly #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1733 with upto1734 is expected to contain exactly #<Group id:149 @group26/group27/group28>1735 .self_and_ancestor_ids1736 use_traversal_ids_ancestor_scopes feature flag is true1737 makes recursive queries1738 behaves like .self_and_ancestor_ids1739 is expected to contain exactly 147, 148, 150, and 1511740 when include_self is false1741 is expected to contain exactly 147 and 1501742 with offset and limit1743 is expected to contain exactly 150, 151, and 1521744 use_traversal_ids_ancestor_scopes feature flag is false1745 makes recursive queries1746 behaves like .self_and_ancestor_ids1747 is expected to contain exactly 147, 148, 150, and 1511748 when include_self is false1749 is expected to contain exactly 147 and 1501750 with offset and limit1751 is expected to contain exactly 150, 151, and 1521752 .self_and_descendants1753 is expected to contain exactly #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1754 with duplicate descendants1755 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>, #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1756 when include_self is false1757 is expected to contain exactly #<Group id:149 @group26/group27/group28> and #<Group id:152 @group29/group30/group31>1758 with duplicate descendants1759 is expected to contain exactly #<Group id:148 @group26/group27> and #<Group id:149 @group26/group27/group28>1760 with offset and limit1761 is expected to contain exactly #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1762 with nested query groups1763 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>, #<Group id:201 @group26/group32>, and #<Group id:202 @group26/group32/group33>1764 .self_and_descendant_ids1765 is expected to contain exactly 148, 149, 151, and 1521766 when include_self is false1767 is expected to contain exactly 149 and 1521768 with offset and limit1769 is expected to contain exactly 150, 151, and 1521770 .self_and_hierarchy1771 behaves like .self_and_hierarchy1772 with ancestors only1773 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>, #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1774 with descendants only1775 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>, #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1776 nodes with both ancestors and descendants1777 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>, #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1778 with duplicate base groups1779 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, and #<Group id:149 @group26/group27/group28>1780 use_traversal_ids_for_self_and_hierarchy_scopes feature flag is false1781 makes recursive queries1782 behaves like .self_and_hierarchy1783 with ancestors only1784 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>, #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1785 with descendants only1786 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>, #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1787 nodes with both ancestors and descendants1788 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, #<Group id:149 @group26/group27/group28>, #<Group id:150 @group29>, #<Group id:151 @group29/group30>, and #<Group id:152 @group29/group30/group31>1789 with duplicate base groups1790 is expected to contain exactly #<Group id:147 @group26>, #<Group id:148 @group26/group27>, and #<Group id:149 @group26/group27/group28>1791 linear1792 behaves like namespace traversal scopes1793 .as_ids1794 is expected to contain exactly 215 and 2181795 .order_by_depth1796 ascending1797 is expected to eq [#<Group id:217 @group34/group35/group36>, #<Group id:216 @group34/group35>, #<Group id:215 @group34>]1798 descending1799 is expected to eq [#<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>]1800 .normal_select1801 is expected to eq ["id", "name", "path", "owner_id", "created_at", "updated_at", "type", "description", "avatar", "memb...d", "shared_runners_enabled", "allow_descendants_override_disabled_shared_runners", "traversal_ids"]1802 .roots1803 use_traversal_ids_roots feature flag is true1804 not make recursive queries1805 behaves like .roots1806 with only sub-groups1807 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1808 with only root groups1809 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1810 with all groups1811 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1812 use_traversal_ids_roots feature flag is false1813 makes recursive queries1814 behaves like .roots1815 with only sub-groups1816 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1817 with only root groups1818 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1819 with all groups1820 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1821 .self_and_ancestors1822 use_traversal_ids_ancestor_scopes feature flag is true1823 not make recursive queries1824 behaves like .self_and_ancestors1825 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:218 @group37>, and #<Group id:219 @group37/group38>1826 when include_self is false1827 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1828 when hierarchy_order is ascending1829 is expected to contain exactly #<Group id:216 @group34/group35>, #<Group id:219 @group37/group38>, #<Group id:215 @group34>, and #<Group id:218 @group37>1830 is expected to contain exactly #<Group id:216 @group34/group35> and #<Group id:219 @group37/group38>1831 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1832 when hierarchy_order is descending1833 is expected to contain exactly #<Group id:216 @group34/group35>, #<Group id:219 @group37/group38>, #<Group id:215 @group34>, and #<Group id:218 @group37>1834 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1835 is expected to contain exactly #<Group id:216 @group34/group35> and #<Group id:219 @group37/group38>1836 with offset and limit1837 is expected to contain exactly #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1838 with upto1839 is expected to contain exactly #<Group id:217 @group34/group35/group36>1840 use_traversal_ids_ancestor_scopes feature flag is false1841 makes recursive queries1842 behaves like .self_and_ancestors1843 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:218 @group37>, and #<Group id:219 @group37/group38>1844 when include_self is false1845 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1846 when hierarchy_order is ascending1847 is expected to contain exactly #<Group id:216 @group34/group35>, #<Group id:219 @group37/group38>, #<Group id:215 @group34>, and #<Group id:218 @group37>1848 is expected to contain exactly #<Group id:216 @group34/group35> and #<Group id:219 @group37/group38>1849 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1850 when hierarchy_order is descending1851 is expected to contain exactly #<Group id:216 @group34/group35>, #<Group id:219 @group37/group38>, #<Group id:215 @group34>, and #<Group id:218 @group37>1852 is expected to contain exactly #<Group id:215 @group34> and #<Group id:218 @group37>1853 is expected to contain exactly #<Group id:216 @group34/group35> and #<Group id:219 @group37/group38>1854 with offset and limit1855 is expected to contain exactly #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1856 with upto1857 is expected to contain exactly #<Group id:217 @group34/group35/group36>1858 .self_and_ancestor_ids1859 use_traversal_ids_ancestor_scopes feature flag is true1860 makes recursive queries1861 behaves like .self_and_ancestor_ids1862 is expected to contain exactly 215, 216, 218, and 2191863 when include_self is false1864 is expected to contain exactly 215 and 2181865 with offset and limit1866 is expected to contain exactly 218, 219, and 2201867 use_traversal_ids_ancestor_scopes feature flag is false1868 makes recursive queries1869 behaves like .self_and_ancestor_ids1870 is expected to contain exactly 215, 216, 218, and 2191871 when include_self is false1872 is expected to contain exactly 215 and 2181873 with offset and limit1874 is expected to contain exactly 218, 219, and 2201875 .self_and_descendants1876 is expected to contain exactly #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1877 with duplicate descendants1878 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>, #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1879 when include_self is false1880 is expected to contain exactly #<Group id:217 @group34/group35/group36> and #<Group id:220 @group37/group38/group39>1881 with duplicate descendants1882 is expected to contain exactly #<Group id:216 @group34/group35> and #<Group id:217 @group34/group35/group36>1883 with offset and limit1884 is expected to contain exactly #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1885 with nested query groups1886 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>, #<Group id:269 @group34/group40>, and #<Group id:270 @group34/group40/group41>1887 .self_and_descendant_ids1888 is expected to contain exactly 216, 217, 219, and 2201889 when include_self is false1890 is expected to contain exactly 217 and 2201891 with offset and limit1892 is expected to contain exactly 218, 219, and 2201893 .self_and_hierarchy1894 behaves like .self_and_hierarchy1895 with ancestors only1896 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>, #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1897 with descendants only1898 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>, #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1899 nodes with both ancestors and descendants1900 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>, #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1901 with duplicate base groups1902 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, and #<Group id:217 @group34/group35/group36>1903 use_traversal_ids_for_self_and_hierarchy_scopes feature flag is false1904 makes recursive queries1905 behaves like .self_and_hierarchy1906 with ancestors only1907 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>, #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1908 with descendants only1909 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>, #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1910 nodes with both ancestors and descendants1911 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, #<Group id:217 @group34/group35/group36>, #<Group id:218 @group37>, #<Group id:219 @group37/group38>, and #<Group id:220 @group37/group38/group39>1912 with duplicate base groups1913 is expected to contain exactly #<Group id:215 @group34>, #<Group id:216 @group34/group35>, and #<Group id:217 @group34/group35/group36>1914 .self_and_descendants1915 behaves like does not make recursive queries1916 is expected not to make queries matching /WITH RECURSIVE/1917 when feature flag :use_traversal_ids is disabled1918 behaves like makes recursive queries1919 is expected to make queries matching /WITH RECURSIVE/1920 when feature flag :use_traversal_ids_for_descendants_scopes is disabled1921 behaves like makes recursive queries1922 is expected to make queries matching /WITH RECURSIVE/1923 .self_and_descendant_ids1924 behaves like does not make recursive queries1925 is expected not to make queries matching /WITH RECURSIVE/1926 when feature flag :use_traversal_ids is disabled1927 behaves like makes recursive queries1928 is expected to make queries matching /WITH RECURSIVE/1929 when feature flag :use_traversal_ids_for_descendants_scopes is disabled1930 behaves like makes recursive queries1931 is expected to make queries matching /WITH RECURSIVE/1932 traversal_ids on create1933 is expected to eq [286]1934 is expected to eq [288, 289]1935 is expected to eq 11936 is expected to eq 11937 traversal_ids on update1938 creates a Namespaces::SyncEvent using triggers1939 creates sync_events using database trigger on the table1940 does not create sync_events using database trigger on the table when only the parent_id has changed1941 triggers the callback sync_traversal_ids on the namespace1942 calls schedule_sync_event_worker on the updated namespace1943 when parent_id is changed1944 sets the traversal_ids attribute1945 after_commit :expire_child_caches1946 expires the child caches when updated1947 expires on name changes1948 expires on path changes1949 expires on parent changes1950 doesn't expire on other field changes1951 #owner_required?1952 is expected to be falsey1953 is expected to be falsey1954 is expected to be truthy1955 #visibility_level_field1956 is expected to eq :visibility_level1957 #to_param1958 is expected to eq "namespace300"1959 #human_name1960 is expected to eq "Sidney Jones309"1961 #any_project_has_container_registry_tags?1962 returns true if there is a project with container registry tags1963 returns false if there is no project with container registry tags1964 #first_project_with_container_registry_tags1965 when Gitlab API is not supported1966 returns the project1967 returns no project1968 does not cause N+1 query in fetching registries1969 when Gitlab API is supported1970 calls and returns GitlabApiClient.one_project_with_container_registry_tag1971 when the feature flag use_sub_repositories_api is disabled1972 returns the project1973 returns no project1974 does not cause N+1 query in fetching registries1975 #container_repositories_size_cache_key1976 returns the correct cache key1977 #container_repositories_size1978 on gitlab.com1979 gitlab_api_supported: nil, no_container_repositories: nil, all_migrated: nil, returned_size: nil, expected_result: nil1980 is expected to eq nil1981 caches the result when all migrated1982 gitlab_api_supported: false, no_container_repositories: nil, all_migrated: nil, returned_size: nil, expected_result: nil1983 is expected to eq nil1984 caches the result when all migrated1985 gitlab_api_supported: true, no_container_repositories: true, all_migrated: nil, returned_size: nil, expected_result: 01986 is expected to eq 01987 caches the result when all migrated1988 gitlab_api_supported: true, no_container_repositories: false, all_migrated: false, returned_size: nil, expected_result: nil1989 is expected to eq nil1990 caches the result when all migrated1991 gitlab_api_supported: true, no_container_repositories: false, all_migrated: true, returned_size: 555, expected_result: 5551992 is expected to eq 5551993 caches the result when all migrated1994 gitlab_api_supported: true, no_container_repositories: false, all_migrated: true, returned_size: nil, expected_result: nil1995 is expected to eq nil1996 caches the result when all migrated1997 not on gitlab.com1998 is expected to eq nil1999 for a sub-group2000 is expected to eq nil2001 #all_container_repositories2002 with personal namespace2003 with no project2004 is expected to contain exactly2005 with projects2006 returns container repositories2007 with subgroups2008 with no project2009 is expected to contain exactly2010 with projects2011 returns container repositories2012 #any_project_with_shared_runners_enabled?2013 when a child project has shared runners enabled2014 is expected to eq true2015 when all child projects have shared runners disabled2016 is expected to eq false2017 .search2018 returns namespaces with a matching name2019 returns namespaces with a partially matching name2020 returns namespaces with a matching name regardless of the casing2021 returns namespaces with a matching path2022 returns namespaces with a partially matching path2023 returns namespaces with a matching path regardless of the casing2024 returns namespaces with a matching route path2025 returns namespaces with a partially matching route path2026 returns namespaces with a matching route path regardless of the casing2027 with project namespaces2028 does not return project namespace2029 does not return project namespace when including parents2030 .with_statistics2031 sums all project storage counters in the namespace2032 correctly handles namespaces without projects2033 .top_most2034 only contains root namespaces2035 #move_dir2036 legacy storage2037 raises error when directory exists2038 moves dir if path changed2039 behaves like namespace restrictions2040 when any project has container images2041 raises an error about not movable project2042 when #write_projects_repository_config raises an error2043 in test environment2044 raises an exception2045 in production environment2046 does not cancel later callbacks2047 project is without repository storage feature2048 behaves like move_dir without repository storage feature2049 calls namespace service2050 behaves like move_dir without repository storage feature2051 calls namespace service2052 project has repository storage feature2053 behaves like move_dir with repository storage feature2054 does not call namespace service2055 behaves like move_dir with repository storage feature2056 does not call namespace service2057 with subgroups2058 renaming child2059 when no projects have pages deployed2060 moves the repository and uploads2061 renaming parent2062 when no projects have pages deployed2063 moves the repository and uploads2064 moving from one parent to another2065 when no projects have pages deployed2066 moves the repository and uploads2067 moving from having a parent to root2068 when no projects have pages deployed2069 moves the repository and uploads2070 moving from root to having a parent2071 when no projects have pages deployed2072 moves the repository and uploads2073 hashed storage2074 repository directory remains unchanged if path changed2075 behaves like namespace restrictions2076 when any project has container images2077 raises an error about not movable project2078 for each project inside the namespace2079 updates project full path in .git/config2080 updates the project storage location2081 #rm_dir callback2082 legacy storage2083 renames its dirs when deleted2084 schedules the namespace for deletion2085 in sub-groups2086 renames its dirs when deleted2087 schedules the namespace for deletion2088 hashed storage2089 has no repositories base directories to remove2090 .find_by_path_or_name2091 is expected to eq #<Namespaces::UserNamespace id:538 @woW>2092 is expected to eq #<Namespaces::UserNamespace id:540 @woW>2093 is expected to eq nil2094 .clean_path2095 cleans the path and makes sure it's available2096 .clean_name2097 when the name complies with the group name regex2098 returns the name as is2099 when the name does not comply with the group name regex2100 sanitizes the name by replacing all invalid char sequences with a space2101 #default_branch_protection2102 for a namespace2103 returns the instance level setting2104 for a group2105 that has not altered the default value2106 returns the instance level setting2107 that has altered the default value2108 returns the group level setting2109 #use_traversal_ids?2110 when use_traversal_ids feature flag is true2111 is expected to eq true2112 behaves like disabled feature flag when traversal_ids is blank2113 is expected to eq false2114 when use_traversal_ids feature flag is false2115 is expected to eq false2116 #use_traversal_ids_for_ancestors?2117 when use_traversal_ids_for_ancestors? feature flag is true2118 is expected to eq true2119 behaves like disabled feature flag when traversal_ids is blank2120 is expected to eq false2121 when use_traversal_ids_for_ancestors? feature flag is false2122 is expected to eq false2123 when use_traversal_ids? feature flag is false2124 is expected to eq false2125 #use_traversal_ids_for_ancestors_upto?2126 when use_traversal_ids_for_ancestors_upto feature flag is true2127 is expected to eq true2128 behaves like disabled feature flag when traversal_ids is blank2129 is expected to eq false2130 when use_traversal_ids_for_ancestors_upto feature flag is false2131 is expected to eq false2132 when use_traversal_ids? feature flag is false2133 is expected to eq false2134 #use_traversal_ids_for_self_and_hierarchy?2135 is expected to eq true2136 behaves like disabled feature flag when traversal_ids is blank2137 is expected to eq false2138 when use_traversal_ids_for_self_and_hierarchy feature flag is false2139 is expected to eq false2140 when use_traversal_ids? feature flag is false2141 is expected to eq false2142 #users_with_descendants2143 returns member users on every nest level without duplication2144 #user_ids_for_project_authorizations2145 returns the user IDs for which to refresh authorizations2146 #all_projects2147 when recursive approach is disabled2148 when namespace is a group2149 is expected to contain exactly #<Project id:71 group84/group85/project71>> and #<Project id:70 group84/project70>>2150 is expected to contain exactly #<Project id:71 group84/group85/project71>>2151 when namespace is a user namespace2152 is expected to contain exactly #<Project id:73 namespace420/project73>>2153 with use_traversal_ids feature flag enabled2154 calls self_and_descendant_ids2155 when namespace is a group2156 is expected to contain exactly #<Project id:76 group87/group88/project76>> and #<Project id:75 group87/project75>>2157 is expected to contain exactly #<Project id:76 group87/group88/project76>>2158 when namespace is a user namespace2159 is expected to contain exactly #<Project id:78 namespace425/project78>>2160 with use_traversal_ids feature flag disabled2161 when namespace is a group2162 is expected to contain exactly #<Project id:81 group89/group90/project81>> and #<Project id:80 group89/project80>>2163 is expected to contain exactly #<Project id:81 group89/group90/project81>>2164 when namespace is a user namespace2165 is expected to contain exactly #<Project id:83 namespace429/project83>>2166 refreshing project access on updating share_with_group_lock2167 calls AuthorizedProjectUpdate::ProjectRecalculateWorker to update project authorizations2168 updates authorizations leading to users from shared groups losing access2169 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations2170 when the feature flag `specialized_worker_for_group_lock_update_auth_recalculation` is disabled2171 updates authorizations leading to users from shared groups losing access2172 updates the authorizations in a non-blocking manner2173 #share_with_group_lock with subgroups2174 when creating a subgroup2175 under a parent with "Share with group lock" enabled2176 enables "Share with group lock" on the subgroup2177 under a parent with "Share with group lock" disabled2178 does not enable "Share with group lock" on the subgroup2179 when enabling the parent group "Share with group lock"2180 the subgroup "Share with group lock" becomes enabled2181 when disabling the parent group "Share with group lock" (which was already enabled)2182 and the subgroup "Share with group lock" is enabled2183 the subgroup "Share with group lock" does not change2184 but the subgroup "Share with group lock" is disabled2185 the subgroup "Share with group lock" does not change2186 when a group is transferred into a root group2187 when the root group "Share with group lock" is enabled2188 when the subgroup "Share with group lock" is enabled2189 the subgroup "Share with group lock" does not change2190 when the subgroup "Share with group lock" is disabled2191 the subgroup "Share with group lock" becomes enabled2192 when the root group "Share with group lock" is disabled2193 when the subgroup "Share with group lock" is enabled2194 the subgroup "Share with group lock" does not change2195 when the subgroup "Share with group lock" is disabled2196 the subgroup "Share with group lock" does not change2197 #find_fork_of?2198 knows if there is a direct fork in the namespace2199 knows when there is as fork-of-fork in the namespace2200 with request store enabled2201 only queries once2202 #root_ancestor2203 with persisted root group2204 returns root_ancestor for root group without a query2205 returns root_ancestor for nested group with a single query2206 returns the top most ancestor2207 with not persisted root group2208 returns root_ancestor for root group without a query2209 returns the top most ancestor2210 when parent is changed2211 by object2212 is expected to change `group.root_ancestor` from #<Group id:712 @group128> to #<Group id:713 @group129>2213 by id2214 is expected to change `group.root_ancestor` from #<Group id:715 @group130> to #<Group id:716 @group131>2215 within a transaction2216 with a persisted parent2217 is expected to eq #<Group id:718 @group132>2218 with a non-persisted parent2219 is expected to eq #<Group id:721 @group134>2220 without a parent2221 is expected to eq #<Group id:724 @group136>2222 #full_path_before_last_save2223 when the group has no parent2224 returns the path before last save2225 when a parent is assigned to a group with no previous parent2226 returns the path before last save2227 when a parent is removed from the group2228 returns the parent full path2229 when changing parents2230 returns the previous parent full path2231 #auto_devops_enabled2232 with users2233 when auto devops is explicitly enabled2234 is expected to eq true2235 when auto devops is explicitly disabled2236 is expected to eq false2237 #user_namespace?2238 when type is a user2239 is expected to be truthy2240 when type is a group2241 is expected to be falsy2242 #bot_user_namespace?2243 when owner is a bot user user2244 is expected to be truthy2245 when owner is a non-bot user2246 is expected to be falsy2247 when type is a group2248 is expected to be falsy2249 #aggregation_scheduled?2250 with an aggregation scheduled association2251 is expected to be truthy2252 without an aggregation scheduled association2253 is expected to be falsy2254 #emails_disabled?2255 when not a subgroup2256 returns false2257 returns true2258 does not query the db when there is no parent group2259 when a subgroup2260 returns false2261 when ancestor emails are disabled2262 returns true2263 #emails_enabled?2264 without a persisted namespace_setting object2265 is the opposite of emails_disabled2266 with a persisted namespace_setting object2267 is the opposite of emails_disabled2268 #any_project_with_pages_deployed?2269 returns true if any project nested under the group has pages deployed2270 #has_parent?2271 returns true when the group has a parent2272 returns true when the group has an unsaved parent2273 returns false when the group has no parent2274 #closest_setting2275 when setting is of non-boolean type2276 root_setting: 100, child_setting: 200, result: 2002277 behaves like fetching closest setting2278 returns closest non-nil value2279 root_setting: 100, child_setting: nil, result: 1002280 behaves like fetching closest setting2281 returns closest non-nil value2282 root_setting: nil, child_setting: nil, result: nil2283 behaves like fetching closest setting2284 returns closest non-nil value2285 when setting is of boolean type2286 root_setting: true, child_setting: false, result: false2287 behaves like fetching closest setting2288 returns closest non-nil value2289 root_setting: true, child_setting: nil, result: true2290 behaves like fetching closest setting2291 returns closest non-nil value2292 root_setting: nil, child_setting: nil, result: nil2293 behaves like fetching closest setting2294 returns closest non-nil value2295 #paid?2296 returns false for a root namespace with a free plan2297 #shared_runners_setting2298 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: true, shared_runners_setting: "enabled"2299 returns the result2300 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: false, shared_runners_setting: "enabled"2301 returns the result2302 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: true, shared_runners_setting: "disabled_and_overridable"2303 returns the result2304 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: false, shared_runners_setting: "disabled_and_unoverridable"2305 returns the result2306 #shared_runners_setting_higher_than?2307 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: true, other_setting: "enabled", result: false2308 returns the result2309 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_with_override", result: true2310 returns the result2311 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_and_overridable", result: true2312 returns the result2313 shared_runners_enabled: true, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_and_unoverridable", result: true2314 returns the result2315 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: true, other_setting: "enabled", result: false2316 returns the result2317 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_with_override", result: false2318 returns the result2319 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_and_overridable", result: false2320 returns the result2321 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: true, other_setting: "disabled_and_unoverridable", result: true2322 returns the result2323 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: false, other_setting: "enabled", result: false2324 returns the result2325 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: false, other_setting: "disabled_with_override", result: false2326 returns the result2327 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: false, other_setting: "disabled_and_overridable", result: false2328 returns the result2329 shared_runners_enabled: false, allow_descendants_override_disabled_shared_runners: false, other_setting: "disabled_and_unoverridable", result: false2330 returns the result2331 validation #changing_shared_runners_enabled_is_allowed2332 without a parent2333 is valid2334 with a parent2335 when namespace is a group2336 when parent has shared runners disabled2337 is invalid2338 when parent has shared runners disabled but allows override2339 is valid2340 when parent has shared runners enabled2341 is valid2342 behaves like validations called by different namespace types2343 namespace_type: :namespace, call_validation: true2344 conditionally runs given validation2345 namespace_type: :group, call_validation: true2346 conditionally runs given validation2347 namespace_type: :user_namespace, call_validation: true2348 conditionally runs given validation2349 namespace_type: :project_namespace, call_validation: false2350 conditionally runs given validation2351 validation #changing_allow_descendants_override_disabled_shared_runners_is_allowed2352 when namespace is a group2353 without a parent2354 with shared runners disabled2355 is valid2356 with shared runners enabled2357 is invalid2358 with a parent2359 when parent does not allow shared runners2360 is invalid2361 when parent allows shared runners and setting to true2362 is valid2363 when parent allows shared runners and setting to false2364 is valid2365 behaves like validations called by different namespace types2366 namespace_type: :namespace, call_validation: true2367 conditionally runs given validation2368 namespace_type: :group, call_validation: true2369 conditionally runs given validation2370 namespace_type: :user_namespace, call_validation: true2371 conditionally runs given validation2372 namespace_type: :project_namespace, call_validation: false2373 conditionally runs given validation2374 #root?2375 when is subgroup2376 returns false2377 when is root2378 returns true2379 #recent?2380 when created more than 90 days ago2381 is expected to equal false2382 when created less than 90 days ago2383 is expected to equal true2384 behaves like it has loose foreign keys2385 has at least one loose foreign key definition2386 has the deletion trigger present2387 records record deletions2388 cleans up record deletions2389 Namespaces::SyncEvent2390 when creating the namespace2391 creates a namespaces_sync_event record2392 enqueues ProcessSyncEventsWorker2393 when updating namespace parent_id2394 creates a namespaces_sync_event record2395 creates a namespaces_sync_event for the parent and all the descendent namespaces2396 enqueues ProcessSyncEventsWorker2397 when updating namespace other attribute2398 creates a namespaces_sync_event record2399 in the same transaction2400 when updating different parent_id2401 creates two namespaces_sync_event records2402 when updating the same parent_id2403 creates one namespaces_sync_event record2404 storage_enforcement_date2405 returns correct date2406 when :storage_banner_bypass_date_check is enabled2407 returns the current date2408 serialization2409 behaves like blocks unsafe serialization2410 blocks as_json2411 blocks to_json2412 #certificate_based_clusters_enabled?2413 with ff disabled2414 with a cluster_enabled_grant2415 is truthy2416 without a cluster_enabled_grant2417 is falsy2418 with ff enabled2419 with a cluster_enabled_grant2420 is truthy2421 without a cluster_enabled_grant2422 is truthy2423Ci::PipelineProcessing::AtomicProcessingService2424 Pipeline Processing Service Tests With Yaml2425 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build2_build1_rules_out_test_needs_build1_with_optional.yml"2426 follows transitions2427 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails.yml"2428 follows transitions2429 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_is_delayed_and_needs_test.yml"2430 follows transitions2431 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_is_manual_and_needs_test.yml"2432 follows transitions2433 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_needs_test.yml"2434 follows transitions2435 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_deploy_needs_test_when_always.yml"2436 follows transitions2437 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_other_build_succeeds_deploy_needs_one_build_and_test.yml"2438 follows transitions2439 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_other_build_succeeds_deploy_needs_one_build_and_test_when_always.yml"2440 follows transitions2441 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_always.yml"2442 follows transitions2443 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_fails_with_allow_failure.yml"2444 follows transitions2445 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_on_failure.yml"2446 follows transitions2447 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_test_on_failure_deploy_needs_test.yml"2448 follows transitions2449 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_fails_with_allow_failure_test_on_failure.yml"2450 follows transitions2451 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_rules_out_test_needs_build_with_optional.yml"2452 follows transitions2453 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeds_test_manual_allow_failure_true_deploy_needs_both.yml"2454 follows transitions2455 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeds_test_manual_allow_failure_true_deploy_needs_test.yml"2456 follows transitions2457 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeeds_test_on_failure.yml"2458 follows transitions2459 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_succeeds_test_on_failure_deploy_needs_test.yml"2460 follows transitions2461 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_test_manual_review_deploy.yml"2462 follows transitions2463 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_build_test_two_manual_review_test_staging_production.yml"2464 follows transitions2465 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_builds_succeed_test_on_failure_deploy_needs_one_build_and_test.yml"2466 follows transitions2467 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_builds_succeed_test_on_failure_deploy_needs_one_build_and_test_when_always.yml"2468 follows transitions2469 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_deploy_needs_empty.yml"2470 follows transitions2471 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_same_stage_with_fail_and_retry_1.yml"2472 follows transitions2473 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_same_stage_with_fail_and_retry_2.yml"2474 follows transitions2475 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_same_stage_with_subsequent_manual_jobs.yml"2476 follows transitions2477 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_same_stages.yml"2478 follows transitions2479 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_fails_with_allow_failure.yml"2480 follows transitions2481 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false.yml"2482 follows transitions2483 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false_deploy_always.yml"2484 follows transitions2485 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false_deploy_on_failure.yml"2486 follows transitions2487 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_false_other_test_succeeds_deploy_needs_both.yml"2488 follows transitions2489 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_deploy_always.yml"2490 follows transitions2491 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_deploy_on_failure.yml"2492 follows transitions2493 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_fails.yml"2494 follows transitions2495 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_other_test_succeeds_deploy_needs_both.yml"2496 follows transitions2497 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_allow_failure_true_succeeds.yml"2498 follows transitions2499 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_post_test_needs_deploy_is_stage.yml"2500 follows transitions2501 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_same_and_different_stage_needs.yml"2502 follows transitions2503 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/dag_test_manual_same_stage_needs.yml"2504 follows transitions2505 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_fails.yml"2506 follows transitions2507 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_fails_test_on_failure.yml"2508 follows transitions2509 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_fails_with_allow_failure_test_on_failure.yml"2510 follows transitions2511 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_succeeds_test_manual_allow_failure_true.yml"2512 follows transitions2513 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_succeeds_test_on_failure.yml"2514 follows transitions2515 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_build_test_manual_review_deploy.yml"2516 follows transitions2517 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_one_test_succeeds_one_manual_test_fails_and_retry_manual_build.yml"2518 follows transitions2519 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_one_test_succeeds_one_manual_test_fails_and_retry_pipeline.yml"2520 follows transitions2521 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_false.yml"2522 follows transitions2523 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_true.yml"2524 follows transitions2525 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_true_deploy_always.yml"2526 follows transitions2527 test_file_path: "/builds/gitlab-org/gitlab/spec/services/ci/pipeline_processing/test_cases/stage_test_manual_allow_failure_true_deploy_on_failure.yml"2528 follows transitions2529 Pipeline Processing Service2530 when simple pipeline is defined2531 processes a pipeline2532 does not process pipeline if existing stage is running2533 custom stage with first job allowed to fail2534 automatically triggers a next stage when build finishes2535 when optional manual actions are defined2536 when builds are successful2537 properly processes the pipeline2538 when test job fails2539 properly processes the pipeline2540 when test and test_failure jobs fail2541 properly processes the pipeline2542 when deploy job fails2543 properly processes the pipeline2544 when build is canceled in the second stage2545 does not schedule builds after build has been canceled2546 when listing optional manual actions2547 returns only for skipped builds2548 when delayed jobs are defined2549 when the scene is timed incremental rollout2550 when builds are successful2551 properly processes the pipeline2552 when build job fails2553 properly processes the pipeline2554 when rollout 10% is unscheduled2555 properly processes the pipeline2556 when user plays rollout 10%2557 schedules rollout100%2558 when rollout 10% fails2559 properly processes the pipeline2560 when user retries rollout 10%2561 does not schedule rollout10% again2562 when rollout 10% is played immidiately2563 properly processes the pipeline2564 when only one scheduled job exists in a pipeline2565 properly processes the pipeline2566 when there are two delayed jobs in a stage2567 blocks the stage until all scheduled jobs finished2568 when a delayed job is allowed to fail2569 blocks the stage and continues after it failed2570 when an exception is raised during a persistent ref creation2571 process the pipeline2572 when there are manual action in earlier stages2573 when first stage has only optional manual actions2574 starts from the second stage2575 when second stage has only optional manual actions2576 skips second stage and continues on third stage2577 when there are only manual actions in stages2578 processes all jobs until blocking actions encountered2579 when there is only one manual action2580 skips the pipeline2581 when the action was played2582 queues the action and pipeline2583 when blocking manual actions are defined2584 when first stage succeeds2585 blocks pipeline on stage with first manual action2586 when first stage fails2587 does not take blocking action into account2588 when pipeline is promoted sequentially up to the end2589 properly processes entire pipeline2590 when second stage has only on_failure jobs2591 skips second stage and continues on third stage2592 when failed build in the middle stage is retried2593 when failed build is the only unsuccessful build in the stage2594 does trigger builds in the next stage2595 when builds with auto-retries are configured2596 automatically retries builds in a valid order2597 when pipeline with needs is created2598 when linux:* finishes first it runs it out of order2599 when one of the jobs is run on a failure2600 when another job in build phase fails first2601 does skip linux:notify2602 when linux:build job fails first2603 does run linux:notify2604 when there is a job scheduled with dag but no need (needs: [])2605 runs deploy_pages without waiting prior stages2606 when a needed job is skipped2607 skips the jobs depending on it2608 when a needed job is manual2609 makes deploy DAG to be skipped2610 when a bridge job has parallel:matrix config2611 creates pipeline with bridges, then passes the matrix variables to downstream jobs2612 when a bridge job has invalid downstream project2613 creates a pipeline, then fails the bridge job2614 when the dependency is stage-independent2615 processes subsequent jobs in the correct order when playing first job2616ProjectTeam2617 personal project2618 members collection2619 is expected to include #<User id:583 @user55>2620 is expected not to include #<User id:589 @user60>2621 is expected not to include #<User id:592 @user62>2622 is expected not to include #<User id:598 @user67>2623 access methods2624 is expected to be truthy2625 is expected to be falsey2626 is expected to be falsey2627 is expected to be falsey2628 is expected to be falsey2629 is expected to be truthy2630 is expected to be truthy2631 is expected to be falsey2632 is expected to be falsey2633 group project2634 members collection2635 is expected to include #<User id:641 @user100>2636 is expected to include #<User id:645 @user103>2637 is expected to include #<User id:652 @user109>2638 is expected not to include #<User id:656 @user112>2639 is expected not to include #<User id:663 @user118>2640 access methods2641 is expected to be truthy2642 is expected to be truthy2643 is expected to be truthy2644 is expected to be falsey2645 is expected to be falsey2646 is expected to be falsey2647 is expected to be truthy2648 is expected to be truthy2649 is expected to be falsey2650 is expected to be falsey2651 owner methods2652 personal project2653 is expected to contain exactly #<User id:717 @namespace625>2654 is expected to be truthy2655 group project2656 is expected to contain exactly #<User id:719 @user162> and #<User id:720 @user163>2657 is expected to be truthy2658 is expected to be truthy2659 #fetch_members2660 personal project2661 returns project members2662 returns project members of a specified level2663 returns invited members of a group2664 returns invited members of a group of a specified level2665 group project2666 returns project members2667 returns project members of a specified level2668 #find_member2669 personal project2670 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2671 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2672 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2673 is expected to be nil2674 is expected to be nil2675 group project2676 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2677 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2678 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2679 is expected to be nil2680 is expected to be nil2681 #members_in_project_and_ancestors2682 group project2683 filters out users who are not members of the project2684 #members_with_access_levels2685 with access_levels2686 filters members who have given access levels2687 without access_levels2688 returns empty array2689 #add_members2690 add the given users to the team2691 when `tasks_to_be_done` and `tasks_project_id` are passed2692 creates a member_task with the correct attributes2693 #add_member2694 add the given user to the team2695 #human_max_access2696 returns Maintainer role2697 returns Owner role2698 #contributor?2699 when user is a member of project2700 is expected to equal false2701 is expected to equal false2702 is expected to equal false2703 when user has at least one merge request merged into default_branch2704 is expected to equal true2705 is expected to equal false2706 #max_member_access2707 personal project2708 when project is not shared with group2709 is expected to eq 402710 is expected to eq 202711 is expected to eq 102712 is expected to eq 02713 is expected to eq 02714 when project is shared with group2715 is expected to eq 302716 is expected to eq 202717 is expected to eq 02718 is expected to eq 02719 but share_with_group_lock is true2720 is expected to eq 02721 is expected to eq 02722 group project2723 is expected to eq 402724 is expected to eq 202725 is expected to eq 102726 is expected to eq 02727 is expected to eq 02728 #purge_member_access_cache_for_user_id2729 removes cached max access for user from store2730 #member?2731 returns false for no user2732 returns true for personal projects of the user2733 returns true for projects of groups the user is a member of2734 returns true for projects for which the user is a member of2735 returns true for projects shared on a group the user is a member of2736 checks for the correct minimum level access2737 #contribution_check_for_user_ids2738 does not perform extra queries when asked for users who have already been found2739 only requests the extra users when uncached users are passed2740 returns correct contributors2741 #max_member_access_for_user_ids2742 with RequestStore enabled2743 returns correct roles for different users2744 does not perform extra queries when asked for users who have already been found2745 only requests the extra users when uncached users are passed2746 with RequestStore disabled2747 returns correct roles for different users2748Projects::OverwriteProjectService2749 #execute2750 when project does not have any relation2751 behaves like overwrite actions2752 moves deploy keys2753 moves notification settings2754 moves users stars2755 moves project group links2756 moves memberships and authorizations2757 schedules original project for deletion2758 renames the project2759 renames source project to temp name2760 moves lfs objects relationships2761 is expected to eq 32762 when project rename fails2763 source rename2764 moves relations back to source project and raises an exception2765 new project rename2766 moves relations back, renames source project back to original name and raises2767 when project with elements2768 behaves like overwrite actions2769 moves deploy keys2770 moves notification settings2771 moves users stars2772 moves project group links2773 moves memberships and authorizations2774 schedules original project for deletion2775 renames the project2776 renames source project to temp name2777 moves lfs objects relationships2778 is expected to eq 32779 when project rename fails2780 source rename2781 moves relations back to source project and raises an exception2782 new project rename2783 moves relations back, renames source project back to original name and raises2784 forks2785 when moving a root forked project2786 moves the descendant forks2787 updates the fork network2788 when moving a intermediate forked project2789 moves the descendant forks2790 moves the ascendant fork2791 does not update fork network2792 if an exception is raised2793 rollbacks changes2794 removes fork network member2795Packages::Debian::GenerateDistributionWorker2796 #perform2797 for project2798 with mocked service2799 calls GenerateDistributionService2800 with non existing distribution id2801 returns early without error2802 with nil distribution id2803 returns early without error2804 with valid parameters2805 behaves like an idempotent worker2806 is labeled as idempotent2807 performs multiple times sequentially without raising an exception2808 behaves like Generate Debian Distribution and component files2809 with Debian components and architectures2810 generates Debian distribution and component files2811 without components and architectures2812 generates minimal distribution2813 for group2814 with mocked service2815 calls GenerateDistributionService2816 with non existing distribution id2817 returns early without error2818 with nil distribution id2819 returns early without error2820 with valid parameters2821 behaves like an idempotent worker2822 is labeled as idempotent2823 performs multiple times sequentially without raising an exception2824 behaves like Generate Debian Distribution and component files2825 with Debian components and architectures2826 generates Debian distribution and component files2827 without components and architectures2828 generates minimal distribution2829DeploymentPlatform2830 #deployment_platform2831 multiple clusters2832 multiple clusters use the same management project2833 behaves like matching environment scope2834 returns environment specific cluster2835 behaves like certificate_based_clusters is disabled2836 is expected to be nil2837 when project does not have a cluster but has group clusters2838 when environment scope is exactly matched2839 behaves like matching environment scope2840 returns environment specific cluster2841 behaves like certificate_based_clusters is disabled2842 is expected to be nil2843 when environment scope is matched by wildcard2844 behaves like matching environment scope2845 returns environment specific cluster2846 behaves like certificate_based_clusters is disabled2847 is expected to be nil2848 when environment scope does not match2849 behaves like not matching environment scope2850 returns default cluster2851 behaves like certificate_based_clusters is disabled2852 is expected to be nil2853 when group belongs to a parent group2854 when parent_group has a cluster with default scope2855 behaves like matching environment scope2856 returns environment specific cluster2857 behaves like certificate_based_clusters is disabled2858 is expected to be nil2859 when parent_group has a cluster that is an exact match2860 behaves like matching environment scope2861 returns environment specific cluster2862 behaves like certificate_based_clusters is disabled2863 is expected to be nil2864 with instance clusters2865 when environment scope is exactly matched2866 behaves like matching environment scope2867 returns environment specific cluster2868 behaves like certificate_based_clusters is disabled2869 is expected to be nil2870 when environment scope is matched by wildcard2871 behaves like matching environment scope2872 returns environment specific cluster2873 behaves like certificate_based_clusters is disabled2874 is expected to be nil2875 when environment scope does not match2876 behaves like not matching environment scope2877 returns default cluster2878 behaves like certificate_based_clusters is disabled2879 is expected to be nil2880 when environment is specified2881 when environment scope is exactly matched2882 behaves like matching environment scope2883 returns environment specific cluster2884 behaves like certificate_based_clusters is disabled2885 is expected to be nil2886 when environment scope is matched by wildcard2887 behaves like matching environment scope2888 returns environment specific cluster2889 behaves like certificate_based_clusters is disabled2890 is expected to be nil2891 when environment scope does not match2892 behaves like not matching environment scope2893 returns default cluster2894 behaves like certificate_based_clusters is disabled2895 is expected to be nil2896 when environment scope has _2897 does not treat it as wildcard2898 when environment name contains an underscore2899 matches literally for _2900 when environment scope has %2901 does not treat it as wildcard2902 when environment name contains a percent char2903 matches literally for %2904 when perfectly matched cluster exists2905 returns perfectly matched cluster as highest precedence2906 with multiple clusters and multiple environments2907 returns the appropriate cluster2908 with no Kubernetes configuration on CI/CD, no Kubernetes Service2909 is expected to be nil2910 when project is the cluster's management project2911 returns the cluster with management project2912 when project has configured kubernetes from CI/CD > Clusters2913 returns the Kubernetes platform2914 with a group level kubernetes cluster2915 returns the Kubernetes platform from the project cluster2916 when group has configured kubernetes cluster2917 returns the Kubernetes platform2918 when project is the cluster's management project2919 returns the cluster with management project2920 when project is not the cluster's management project2921 returns the group cluster2922 when child group has configured kubernetes cluster2923 returns the Kubernetes platform for the child group2924 deeply nested group2925 returns most nested group cluster Kubernetes platform2926 cluster in the middle of hierarchy is disabled2927 returns closest enabled Kubenetes platform2928 when instance has configured kubernetes cluster2929 returns the Kubernetes platform2930Banzai::Filter::References::LabelReferenceFilter2931 requires project context2932 ignores valid references contained inside 'pre' element2933 ignores valid references contained inside 'code' element2934 ignores valid references contained inside 'a' element2935 ignores valid references contained inside 'style' element2936 includes default classes2937 avoids N+1 cached queries2938 includes a data-project attribute2939 includes a data-label attribute2940 includes protocol when :only_path not present2941 does not include protocol when :only_path true2942 links to issue list when :label_url_method is not present2943 links to merge request list when `label_url_method: :project_merge_requests_url`2944 behaves like HTML text with references2945 preserves escaped HTML text and adds valid references2946 preserves escaped HTML text if there are no valid references2947 project that does not exist referenced2948 does not link reference2949 label span element2950 includes default classes2951 includes a style attribute2952 Integer-based references2953 links to a valid reference2954 links with adjacent text2955 ignores invalid label IDs2956 String-based single-word references2957 links to a valid reference2958 links with adjacent text2959 ignores invalid label names2960 String-based single-word references that begin with a digit2961 links to a valid reference2962 links with adjacent text2963 ignores invalid label names2964 String-based single-word references with special characters2965 links to a valid reference2966 does not include trailing punctuation2967 ignores invalid label names2968 String-based multi-word references in quotes2969 links to a valid reference2970 links with adjacent text2971 ignores invalid label names2972 String-based multi-word references that begin with a digit2973 links to a valid reference2974 links with adjacent text2975 ignores invalid label names2976 String-based multi-word references with special characters in quotes2977 links to a valid reference2978 links with adjacent text2979 ignores invalid label names2980 References with html entities2981 links to a valid reference2982 ignores invalid label names and escapes entities2983 consecutive references2984 separated with a comma2985 links to valid references2986 separated with a space2987 links to valid references2988 edge cases2989 gracefully handles non-references matching the pattern2990 referencing a label in a link href2991 links to a valid reference2992 links with adjacent text2993 includes a data-project attribute2994 includes a data-label attribute2995 group label references2996 without project reference2997 links to a valid reference2998 links with adjacent text2999 ignores invalid label names3000 with project reference3001 links to a valid reference3002 links with adjacent text3003 ignores invalid label names3004 cross-project / cross-namespace complete reference3005 links to a valid reference3006 has valid color3007 has valid link text3008 has valid text3009 ignores invalid IDs on the referenced label3010 cross-project / same-namespace complete reference3011 links to a valid reference3012 has valid color3013 has valid link text3014 has valid text3015 ignores invalid IDs on the referenced label3016 cross-project shorthand reference3017 links to a valid reference3018 has valid color3019 has valid link text3020 has valid text3021 ignores invalid IDs on the referenced label3022 cross group label references3023 points to referenced project issues page3024 has valid color3025 has valid link text3026 has valid text3027 ignores invalid IDs on the referenced label3028 when group name has HTML entities3029 escapes the HTML entities3030 cross-project / same-group_label complete reference3031 points to referenced project issues page3032 has valid color3033 has valid link text3034 has valid text3035 ignores invalid IDs on the referenced label3036 same project / same group_label complete reference3037 points to referenced project issues page3038 has valid color3039 has valid link text3040 has valid text3041 ignores invalid IDs on the referenced label3042 same project / same group_label shorthand reference3043 points to referenced project issues page3044 has valid color3045 has valid link text3046 has valid text3047 ignores invalid IDs on the referenced label3048 group context3049 points to the page defined in label_url_method3050 finds labels also in ancestor groups3051 points to referenced project issues page3052 checking N+13053 does not have N+1 per multiple references per project3054 has N+1 for multiple unique project/group references3055Projects::Alerting::NotifyService3056 #execute3057 with HTTP integration3058 with valid token3059 with valid payload3060 passes the integration to alert processing3061 behaves like processes new firing alert3062 behaves like creates an alert management alert or errors3063 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3064 creates AlertManagement::Alert3065 executes the alert service hooks3066 and fails to save3067 writes a warning to the log3068 behaves like alerts service responds with an error3069 is expected to eq :bad_request3070 behaves like creates expected system notes for alert3071 for new_alert3072 behaves like processes incident issues if enabled3073 is expected to be success3074 with incident setting disabled3075 behaves like does not process incident issues3076 is expected not to receive perform_async(*(any args)) 0 times3077 behaves like sends alert notification emails if enabled3078 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3079 with email setting disabled3080 behaves like does not send alert notification emails3081 is expected not to receive new(*(any args)) 0 times3082 for an existing alert with the same fingerprint3083 which is triggered3084 behaves like adds an alert management alert event3085 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3086 behaves like does not create an alert management alert3087 is expected not to change `AlertManagement::Alert.count`3088 behaves like sends alert notification emails if enabled3089 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3090 with email setting disabled3091 behaves like does not send alert notification emails3092 is expected not to receive new(*(any args)) 0 times3093 behaves like processes incident issues if enabled3094 is expected to be success3095 with issue3096 behaves like does not process incident issues3097 is expected not to receive perform_async(*(any args)) 0 times3098 with incident setting disabled3099 behaves like does not process incident issues3100 is expected not to receive perform_async(*(any args)) 0 times3101 behaves like does not create an alert management alert3102 is expected not to change `AlertManagement::Alert.count`3103 behaves like does not create a system note for alert3104 is expected not to change `Note.count`3105 with an existing resolved alert as well3106 behaves like adds an alert management alert event3107 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3108 behaves like does not create an alert management alert3109 is expected not to change `AlertManagement::Alert.count`3110 behaves like sends alert notification emails if enabled3111 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3112 with email setting disabled3113 behaves like does not send alert notification emails3114 is expected not to receive new(*(any args)) 0 times3115 behaves like processes incident issues if enabled3116 is expected to be success3117 with issue3118 behaves like does not process incident issues3119 is expected not to receive perform_async(*(any args)) 0 times3120 with incident setting disabled3121 behaves like does not process incident issues3122 is expected not to receive perform_async(*(any args)) 0 times3123 behaves like does not create an alert management alert3124 is expected not to change `AlertManagement::Alert.count`3125 behaves like does not create a system note for alert3126 is expected not to change `Note.count`3127 which is acknowledged3128 behaves like adds an alert management alert event3129 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3130 behaves like does not create an alert management alert3131 is expected not to change `AlertManagement::Alert.count`3132 behaves like processes incident issues if enabled3133 is expected to be success3134 with issue3135 behaves like does not process incident issues3136 is expected not to receive perform_async(*(any args)) 0 times3137 with incident setting disabled3138 behaves like does not process incident issues3139 is expected not to receive perform_async(*(any args)) 0 times3140 behaves like does not create an alert management alert3141 is expected not to change `AlertManagement::Alert.count`3142 behaves like does not create a system note for alert3143 is expected not to change `Note.count`3144 behaves like does not send alert notification emails3145 is expected not to receive new(*(any args)) 0 times3146 which is ignored3147 behaves like adds an alert management alert event3148 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3149 behaves like does not create an alert management alert3150 is expected not to change `AlertManagement::Alert.count`3151 behaves like processes incident issues if enabled3152 is expected to be success3153 with issue3154 behaves like does not process incident issues3155 is expected not to receive perform_async(*(any args)) 0 times3156 with incident setting disabled3157 behaves like does not process incident issues3158 is expected not to receive perform_async(*(any args)) 0 times3159 behaves like does not create an alert management alert3160 is expected not to change `AlertManagement::Alert.count`3161 behaves like does not create a system note for alert3162 is expected not to change `Note.count`3163 behaves like does not send alert notification emails3164 is expected not to receive new(*(any args)) 0 times3165 which is resolved3166 behaves like creates an alert management alert or errors3167 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3168 creates AlertManagement::Alert3169 executes the alert service hooks3170 and fails to save3171 writes a warning to the log3172 behaves like alerts service responds with an error3173 is expected to eq :bad_request3174 behaves like creates expected system notes for alert3175 for new_alert3176 behaves like processes incident issues if enabled3177 is expected to be success3178 with incident setting disabled3179 behaves like does not process incident issues3180 is expected not to receive perform_async(*(any args)) 0 times3181 behaves like sends alert notification emails if enabled3182 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3183 with email setting disabled3184 behaves like does not send alert notification emails3185 is expected not to receive new(*(any args)) 0 times3186 behaves like properly assigns the alert properties3187 is expected to match {"project_id"=>597, "title"=>"alert title", "started_at"=>Thu, 30 Mar 2023 11:51:46.000000000 UTC +00:00, "severity"=>"low", "status"=>0, "events"=>1, "domain"=>"operations", "hosts"=>["1.1.1.1", "2.2.2.2"], "payload"=>{"title"=>"alert title", "start_time"=>"2023-03-30T11:51:46Z", "end_time"=>nil, "severity"=>"low", "monitoring_tool"=>"GitLab RSpec", "service"=>"GitLab Test Suite", "description"=>"Very detailed description", "hosts"=>["1.1.1.1", "2.2.2.2"], "fingerprint"=>"testing", "gitlab_environment_name"=>"environment1"}, "issue_id"=>nil, "description"=>"Very detailed description", "monitoring_tool"=>"GitLab RSpec", "service"=>"GitLab Test Suite", "fingerprint"=>"dc724af18fbdd4e59189f5fe768a5f8311527050", "environment_id"=>1, "ended_at"=>nil, "prometheus_alert_id"=>nil}3188 when another alert is saved at the same time3189 finds the other alert and increments the counter3190 when another alert is saved before the validation runes3191 finds the other alert and increments the counter3192 with partial payload3193 assigns the alert properties3194 behaves like creates an alert management alert or errors3195 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3196 creates AlertManagement::Alert3197 executes the alert service hooks3198 and fails to save3199 writes a warning to the log3200 behaves like alerts service responds with an error3201 is expected to eq :bad_request3202 behaves like creates expected system notes for alert3203 for new_alert3204 behaves like processes incident issues if enabled3205 is expected to be success3206 with incident setting disabled3207 behaves like does not process incident issues3208 is expected not to receive perform_async(*(any args)) 0 times3209 behaves like sends alert notification emails if enabled3210 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3211 with email setting disabled3212 behaves like does not send alert notification emails3213 is expected not to receive new(*(any args)) 0 times3214 with existing alert with matching payload3215 behaves like creates an alert management alert or errors3216 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}3217 creates AlertManagement::Alert3218 executes the alert service hooks3219 and fails to save3220 writes a warning to the log3221 behaves like alerts service responds with an error3222 is expected to eq :bad_request3223 behaves like creates expected system notes for alert3224 for new_alert3225 behaves like processes incident issues if enabled3226 is expected to be success3227 with incident setting disabled3228 behaves like does not process incident issues3229 is expected not to receive perform_async(*(any args)) 0 times3230 behaves like sends alert notification emails if enabled3231 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3232 with email setting disabled3233 behaves like does not send alert notification emails3234 is expected not to receive new(*(any args)) 0 times3235 with resolving payload3236 behaves like processes recovery alert3237 seen for the first time3238 behaves like alerts service responds with an error and takes no actions3239 is expected to eq :bad_request3240 behaves like does not create an alert management alert3241 is expected not to change `AlertManagement::Alert.count`3242 behaves like does not create a system note for alert3243 is expected not to change `Note.count`3244 behaves like does not process incident issues3245 is expected not to receive perform_async(*(any args)) 0 times3246 behaves like does not send alert notification emails3247 is expected not to receive new(*(any args)) 0 times3248 for an existing alert with the same fingerprint3249 which is triggered3250 behaves like resolves an existing alert management alert3251 sets the end time and status3252 behaves like creates expected system notes for alert3253 for recovery_alert, resolve_alert3254 behaves like sends alert notification emails if enabled3255 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3256 with email setting disabled3257 behaves like does not send alert notification emails3258 is expected not to receive new(*(any args)) 0 times3259 behaves like closes related incident if enabled3260 with incident3261 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 13262 without incident3263 is expected not to receive perform_async(*(any args)) 0 times3264 with incident setting disabled3265 behaves like does not close related incident3266 with incident3267 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`3268 without incident3269 is expected not to receive perform_async(*(any args)) 0 times3270 behaves like does not create an alert management alert3271 is expected not to change `AlertManagement::Alert.count`3272 behaves like does not process incident issues3273 is expected not to receive perform_async(*(any args)) 0 times3274 behaves like does not add an alert management alert event3275 is expected not to change `alert.reload.events`3276 which is ignored3277 behaves like resolves an existing alert management alert3278 sets the end time and status3279 behaves like creates expected system notes for alert3280 for recovery_alert, resolve_alert3281 behaves like sends alert notification emails if enabled3282 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3283 with email setting disabled3284 behaves like does not send alert notification emails3285 is expected not to receive new(*(any args)) 0 times3286 behaves like closes related incident if enabled3287 with incident3288 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 13289 without incident3290 is expected not to receive perform_async(*(any args)) 0 times3291 with incident setting disabled3292 behaves like does not close related incident3293 with incident3294 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`3295 without incident3296 is expected not to receive perform_async(*(any args)) 0 times3297 behaves like does not create an alert management alert3298 is expected not to change `AlertManagement::Alert.count`3299 behaves like does not process incident issues3300 is expected not to receive perform_async(*(any args)) 0 times3301 behaves like does not add an alert management alert event3302 is expected not to change `alert.reload.events`3303 which is acknowledged3304 behaves like resolves an existing alert management alert3305 sets the end time and status3306 behaves like creates expected system notes for alert3307 for recovery_alert, resolve_alert3308 behaves like sends alert notification emails if enabled3309 is expected to receive prometheus_alerts_fired(*(any args)) 1 time3310 with email setting disabled3311 behaves like does not send alert notification emails3312 is expected not to receive new(*(any args)) 0 times3313 behaves like closes related incident if enabled3314 with incident3315 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 13316 without incident3317 is expected not to receive perform_async(*(any args)) 0 times3318 with incident setting disabled3319 behaves like does not close related incident3320 with incident3321 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`3322 without incident3323 is expected not to receive perform_async(*(any args)) 0 times3324 behaves like does not create an alert management alert3325 is expected not to change `AlertManagement::Alert.count`3326 behaves like does not process incident issues3327 is expected not to receive perform_async(*(any args)) 0 times3328 behaves like does not add an alert management alert event3329 is expected not to change `alert.reload.events`3330 which is resolved3331 behaves like alerts service responds with an error and takes no actions3332 is expected to eq :bad_request3333 behaves like does not create an alert management alert3334 is expected not to change `AlertManagement::Alert.count`3335 behaves like does not create a system note for alert3336 is expected not to change `Note.count`3337 behaves like does not process incident issues3338 is expected not to receive perform_async(*(any args)) 0 times3339 behaves like does not send alert notification emails3340 is expected not to receive new(*(any args)) 0 times3341 with overlong payload3342 behaves like alerts service responds with an error and takes no actions3343 is expected to eq :bad_request3344 behaves like does not create an alert management alert3345 is expected not to change `AlertManagement::Alert.count`3346 behaves like does not create a system note for alert3347 is expected not to change `Note.count`3348 behaves like does not process incident issues3349 is expected not to receive perform_async(*(any args)) 0 times3350 behaves like does not send alert notification emails3351 is expected not to receive new(*(any args)) 0 times3352 with inactive integration3353 behaves like alerts service responds with an error and takes no actions3354 is expected to eq :forbidden3355 behaves like does not create an alert management alert3356 is expected not to change `AlertManagement::Alert.count`3357 behaves like does not create a system note for alert3358 is expected not to change `Note.count`3359 behaves like does not process incident issues3360 is expected not to receive perform_async(*(any args)) 0 times3361 behaves like does not send alert notification emails3362 is expected not to receive new(*(any args)) 0 times3363 with invalid token3364 behaves like alerts service responds with an error and takes no actions3365 is expected to eq :unauthorized3366 behaves like does not create an alert management alert3367 is expected not to change `AlertManagement::Alert.count`3368 behaves like does not create a system note for alert3369 is expected not to change `Note.count`3370 behaves like does not process incident issues3371 is expected not to receive perform_async(*(any args)) 0 times3372 behaves like does not send alert notification emails3373 is expected not to receive new(*(any args)) 0 times3374 without HTTP integration3375 behaves like alerts service responds with an error and takes no actions3376 is expected to eq :forbidden3377 behaves like does not create an alert management alert3378 is expected not to change `AlertManagement::Alert.count`3379 behaves like does not create a system note for alert3380 is expected not to change `Note.count`3381 behaves like does not process incident issues3382 is expected not to receive perform_async(*(any args)) 0 times3383 behaves like does not send alert notification emails3384 is expected not to receive new(*(any args)) 0 times3385ProjectStatisticsPolicy3386 #rules3387 project_type: :public, user_type: :unauthenticated, outcome: false3388 is expected to eq false3389 when the user is external3390 is expected to eq false3391 project_type: :public, user_type: :non_member, outcome: false3392 is expected to eq false3393 when the user is external3394 is expected to eq false3395 project_type: :public, user_type: :guest, outcome: false3396 is expected to eq false3397 when the user is external3398 is expected to eq false3399 project_type: :public, user_type: :reporter, outcome: true3400 is expected to eq true3401 when the user is external3402 is expected to eq true3403 project_type: :public, user_type: :developer, outcome: true3404 is expected to eq true3405 when the user is external3406 is expected to eq true3407 project_type: :public, user_type: :maintainer, outcome: true3408 is expected to eq true3409 when the user is external3410 is expected to eq true3411 project_type: :private, user_type: :unauthenticated, outcome: false3412 is expected to eq false3413 when the user is external3414 is expected to eq false3415 project_type: :private, user_type: :non_member, outcome: false3416 is expected to eq false3417 when the user is external3418 is expected to eq false3419 project_type: :private, user_type: :guest, outcome: false3420 is expected to eq false3421 when the user is external3422 is expected to eq false3423 project_type: :private, user_type: :reporter, outcome: true3424 is expected to eq true3425 when the user is external3426 is expected to eq true3427 project_type: :private, user_type: :developer, outcome: true3428 is expected to eq true3429 when the user is external3430 is expected to eq true3431 project_type: :private, user_type: :maintainer, outcome: true3432 is expected to eq true3433 when the user is external3434 is expected to eq true3435 project_type: :internal, user_type: :unauthenticated, outcome: false3436 is expected to eq false3437 when the user is external3438 is expected to eq false3439 project_type: :internal, user_type: :non_member, outcome: false3440 is expected to eq false3441 when the user is external3442 is expected to eq false3443 project_type: :internal, user_type: :guest, outcome: false3444 is expected to eq false3445 when the user is external3446 is expected to eq false3447 project_type: :internal, user_type: :reporter, outcome: true3448 is expected to eq true3449 when the user is external3450 is expected to eq true3451 project_type: :internal, user_type: :developer, outcome: true3452 is expected to eq true3453 when the user is external3454 is expected to eq true3455 project_type: :internal, user_type: :maintainer, outcome: true3456 is expected to eq true3457 when the user is external3458 is expected to eq true3459MergeRequestTargetProjectFinder3460 public projects3461 behaves like finding related projects3462 finds sibling projects and base project3463 does not include projects that have merge requests turned off by default3464 includes projects that have merge requests turned off by default with a more-permissive project feature3465 does not contain archived projects3466 does not include routes by default3467 includes routes when requested3468 private projects3469 only finds the projects the user is a member of3470 when the user is a member of all projects3471 behaves like finding related projects3472 finds sibling projects and base project3473 does not include projects that have merge requests turned off by default3474 includes projects that have merge requests turned off by default with a more-permissive project feature3475 does not contain archived projects3476 does not include routes by default3477 includes routes when requested3478 searching3479 returns all projects with empty search3480 returns forked project with search string3481 returns no projects with search for project that does no exist3482ProtectedBranch3483 Associations3484 is expected to belong to project required: false3485 is expected to belong to group required: false3486 Validation3487 is expected to validate that :name cannot be empty/falsy3488 uniqueness3489 is expected to validate that :name is case-sensitively unique within the scope of :project_id and :namespace_id3490 when the protected_branch was saved previously3491 is expected not to validate that :name is case-sensitively unique3492 and name is changed3493 is expected to validate that :name is case-sensitively unique within the scope of :project_id and :namespace_id3494 #validate_either_project_or_top_group3495 when protected branch does not have project or group association3496 validate failed3497 when protected branch is associated with both project and group3498 validate failed3499 when protected branch is associated with a subgroup3500 validate failed3501 set a group3502 when associated with group3503 create successfully3504 when associated with other namespace3505 create failed with `ActiveRecord::AssociationTypeMismatch`3506 #matches?3507 when the protected branch setting is not a wildcard3508 returns true for branch names that are an exact match3509 returns false for branch names that are not an exact match3510 when the protected branch name contains wildcard(s)3511 when there is a single '*'3512 returns true for branch names matching the wildcard3513 returns false for branch names not matching the wildcard3514 when the wildcard contains regex symbols other than a '*'3515 returns true for branch names matching the wildcard3516 returns false for branch names not matching the wildcard3517 when there are '*'s at either end3518 returns true for branch names matching the wildcard3519 returns false for branch names not matching the wildcard3520 when there are arbitrarily placed '*'s3521 returns true for branch names matching the wildcard3522 returns false for branch names not matching the wildcard3523 #matching3524 for direct matches3525 returns a list of protected branches matching the given branch name3526 accepts a list of protected branches to search from, so as to avoid a DB call3527 for wildcard matches3528 returns a list of protected branches matching the given branch name3529 accepts a list of protected branches to search from, so as to avoid a DB call3530 #protected?3531 existing project3532 returns true when the branch matches a protected branch via direct match3533 returns true when the branch matches a protected branch via wildcard match3534 returns false when the branch does not match a protected branch via direct match3535 returns false when the branch does not match a protected branch via wildcard match3536 returns false when branch name is nil3537 with caching3538 correctly invalidates a cache3539 correctly uses the cached version3540 when project is updated3541 does not invalidate a cache3542 when other project protected branch is updated3543 does not invalidate the current project cache3544 new project3545 when the group has set their own default_branch_protection level3546 default_branch_protection_level: 0, result: false3547 protects the default branch based on the default branch protection setting of the group3548 default_branch_protection_level: 1, result: false3549 protects the default branch based on the default branch protection setting of the group3550 default_branch_protection_level: 3, result: true3551 protects the default branch based on the default branch protection setting of the group3552 default_branch_protection_level: 2, result: true3553 protects the default branch based on the default branch protection setting of the group3554 when the group has not set their own default_branch_protection level3555 default_branch_protection_level: 0, result: false3556 protects the default branch based on the instance level default branch protection setting3557 default_branch_protection_level: 1, result: false3558 protects the default branch based on the instance level default branch protection setting3559 default_branch_protection_level: 3, result: true3560 protects the default branch based on the instance level default branch protection setting3561 default_branch_protection_level: 2, result: true3562 protects the default branch based on the instance level default branch protection setting3563 #allow_force_push?3564 when feature flag disabled3565 when the attr allow_force_push is true3566 returns true3567 when the attr allow_force_push is false3568 returns false3569 when feature flag enabled3570 group_level_value: true, project_level_value: false, result: true3571 returns result3572 group_level_value: false, project_level_value: true, result: false3573 returns result3574 group_level_value: true, project_level_value: nil, result: true3575 returns result3576 group_level_value: false, project_level_value: nil, result: false3577 returns result3578 group_level_value: nil, project_level_value: nil, result: false3579 returns result3580 #any_protected?3581 existing project3582 returns true when any of the branch names match a protected branch via direct match3583 returns true when any of the branch matches a protected branch via wildcard match3584 returns false when none of branches does not match a protected branch via direct match3585 returns false when none of the branches does not match a protected branch via wildcard match3586 .protected_refs3587 when feature flag enabled3588 call `all_protected_branches`3589 when feature flag disabled3590 call `protected_branches`3591 .by_name3592 returns protected branches with a matching name3593 returns protected branches with a partially matching name3594 returns protected branches with a matching name regardless of the casing3595 returns nothing when nothing matches3596 return nothing when query is blank3597 .get_ids_by_name3598 returns the id for each protected branch matching name3599 .downcase_humanized_name3600 returns downcase humanized name3601 .default_branch?3602 when the name matches the default branch3603 is expected to be default branch3604 when the name does not match the default branch3605 is expected not to be default branch3606 when a wildcard name matches the default branch3607 is expected not to be default branch3608 #group_level?3609 when entity is a Group3610 is expected to be group level3611 when entity is a Project3612 is expected not to be group level3613UsersController routing3614 to #show3615 to #gpg_keys3616 to #groups3617 to #projects3618 to #contributed3619 to #snippets3620 to #ssh_keys3621 to #calendar3622 to #calendar_activities3623SearchController routing3624 to #show3625Mounted Apps routing3626 to API3627SnippetsController routing3628 to #raw3629 to #index3630 to #new3631 to #edit3632 to #show3633 to #raw from unscoped routing3634 behaves like redirecting a legacy path3635 redirects /snippets/1 to /-/snippets/13636HelpController routing3637 to #index3638 to #show3639ProfilesController routing3640 to #account3641 to #audit_log3642 to #reset_feed_token3643 to #show3644Profiles::PreferencesController routing3645 to #show3646 to #update3647Profiles::KeysController routing3648 to #index3649 to #create3650 to #show3651 to #destroy3652Profiles::GpgKeysController routing3653 to #index3654 to #create3655 to #destroy3656Profiles::EmailsController routing3657 to #index3658 to #create3659 to #destroy3660Profiles::AvatarsController routing3661 to #destroy3662DashboardController routing3663 to #index3664 to #issues3665 to #calendar_issues3666 to #merge_requests3667RootController routing3668 to #index3669Authentication routing3670 GET /users/sign_in3671 POST /users/sign_in3672 POST /users/sign_out3673 POST /users/password3674 GET /users/password/new3675 GET /users/password/edit3676 PUT /users/password3677 with LDAP configured3678 POST /users/auth/ldapmain/callback3679 with LDAP sign-in disabled3680 prevents POST /users/auth/ldapmain/callback3681 with multiple LDAP providers configured3682 POST /users/auth/ldapmain/callback3683 POST /users/auth/ldapsecondary/callback3684HealthCheckController routing3685 to #index3686 also supports passing checks in the url3687InvitesController routing3688 to #show3689AbuseReportsController routing3690 to #new3691SentNotificationsController routing3692 to #unsubscribe3693AutocompleteController routing3694 to #users3695 to #projects3696 to #award_emojis3697 to #merge_request_target_branches3698SandboxController routing3699 to #mermaid3700Snippets::BlobsController routing3701 to #raw3702RunnerSetupController routing3703 to #platforms3704JwksController routing3705 to #index3706Banzai::ReferenceParser::SnippetParser3707 #nodes_visible_to_user3708 when a project is public and the snippets feature is enabled for everyone3709 avoids N+1 cached queries3710 creates a reference for guest for a public snippet3711 creates a reference for a regular user for a public snippet3712 creates a reference for a regular user for an internal snippet3713 does not create a reference for an external user for an internal snippet3714 creates a reference for a project member for a private snippet3715 does not create a reference for a regular user for a private snippet3716 when a project is public and the snippets feature is enabled for project team members3717 creates a reference for a project member for a public snippet3718 does not create a reference for guest for a public snippet3719 does not create a reference for a regular user for a public snippet3720 creates a reference for a project member for an internal snippet3721 does not create a reference for a regular user for an internal snippet3722 creates a reference for a project member for a private snippet3723 does not create a reference for a regular user for a private snippet3724 when a project is internal and the snippets feature is enabled for everyone3725 does not create a reference for guest for a public snippet3726 does not create a reference for an external user for a public snippet3727 creates a reference for a regular user for a public snippet3728 creates a reference for a regular user for an internal snippet3729 does not create a reference for an external user for an internal snippet3730 creates a reference for a project member for a private snippet3731 does not create a reference for a regular user for a private snippet3732 when a project is internal and the snippets feature is enabled for project team members3733 creates a reference for a project member for a public snippet3734 does not create a reference for guest for a public snippet3735 does not create reference for a regular user for a public snippet3736 creates a reference for a project member for an internal snippet3737 does not create a reference for a regular user for an internal snippet3738 creates a reference for a project member for a private snippet3739 does not create reference for a regular user for a private snippet3740 when a project is private and the snippets feature is enabled for project team members3741 creates a reference for a project member for a public snippet3742 does not create a reference for guest for a public snippet3743 does not create a reference for a regular user for a public snippet3744 creates a reference for a project member for an internal snippet3745 does not create a reference for a regular user for an internal snippet3746 creates a reference for a project member for a private snippet3747 does not create a reference for a regular user for a private snippet3748 #referenced_by3749 when the link has a data-snippet attribute3750 using an existing snippet ID3751 returns an Array of snippets3752 using a non-existing snippet ID3753 returns an empty Array3754Gitlab::Email::Message::RepositoryPush3755 new commits have been pushed to repository3756 #project3757 is expected to eq #<Project id:759 my_group/project735>>3758 is expected to be an instance of Project3759 #project_namespace3760 is expected to eq #<Group id:3307 @my_group>3761 is expected to be a kind of Namespace(id: integer, name: string, path: string, owner_id: integer, created_at: datetime, updated_a...abled: boolean, allow_descendants_override_disabled_shared_runners: boolean, traversal_ids: integer)3762 #project_name_with_namespace3763 is expected to eq "my_group / project739"3764 #author3765 is expected to eq #<User id:2006 @user1058>3766 is expected to be an instance of User3767 #author_name3768 is expected to eq "Author"3769 #commits3770 is expected to be a kind of CommitCollection3771 is expected to all be an instance of Commit3772 #diffs3773 is expected to all be an instance of Gitlab::Diff::File3774 #diffs_count3775 is expected to eq 93776 #compare3777 is expected to be an instance of Compare3778 #compare_timeout3779 is expected to eq false3780 #reverse_compare?3781 is expected to eq false3782 #disable_diffs?3783 is expected to eq false3784 #send_from_committer_email?3785 is expected to eq true3786 #action_name3787 is expected to eq "pushed to"3788 #ref_name3789 is expected to eq "master"3790 #ref_type3791 is expected to eq "branch"3792 #target_url3793 is expected to include "compare"3794 is expected to include "2f63565e7aac07bcdadb654e253078b727143ec4"3795 is expected to include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"3796 #subject3797 is expected to include "[Git][my_group/project758]"3798 is expected to include "6 commits"3799 is expected to include "Ruby files modified"3800ErrorTracking::ProjectErrorTrackingSetting3801 Associations3802 is expected to belong to project required: false3803 Validations3804 is expected to validate that the length of :api_url is at most 2553805 is expected to allow :api_url to be ‹"http://gitlab.com/api/0/projects/project1/something"›3806 is expected not to allow :api_url to be ‹"http://gitlab.com/api/0/projects/project1/something€"›3807 disallows non-booleans in enabled column3808 allows booleans in enabled column3809 rejects invalid api_urls3810 fails validation without org and project slugs3811 presence validations3812 enabled: true, integrated: true, token: nil, api_url: nil, valid?: true3813 is expected to eq true3814 enabled: true, integrated: false, token: nil, api_url: nil, valid?: false3815 is expected to eq false3816 enabled: true, integrated: false, token: nil, api_url: "http://example.com/api/0/projects/org-slug/proj-slug/", valid?: false3817 is expected to eq false3818 enabled: true, integrated: false, token: "token", api_url: nil, valid?: false3819 is expected to eq false3820 enabled: true, integrated: false, token: "token", api_url: "http://example.com/api/0/projects/org-slug/proj-slug/", valid?: true3821 is expected to eq true3822 enabled: false, integrated: false, token: nil, api_url: nil, valid?: true3823 is expected to eq true3824 enabled: false, integrated: false, token: nil, api_url: "http://example.com/api/0/projects/org-slug/proj-slug/", valid?: true3825 is expected to eq true3826 enabled: false, integrated: false, token: "token", api_url: nil, valid?: true3827 is expected to eq true3828 enabled: false, integrated: false, token: "token", api_url: "http://example.com/api/0/projects/org-slug/proj-slug/", valid?: true3829 is expected to eq true3830 Callbacks3831 after_save :create_client_key!3832 without client key3833 creates a new client key3834 with sentry backend3835 does not create a new client key3836 when feature disabled3837 does not create a new client key3838 when client key already exists3839 does not create a new client key3840 before_validation :reset_token3841 when a token was previously set3842 resets token if url changed3843 does not reset token if new url is set together with the same token3844 does not reset token if new url is set together with a new token3845 .extract_sentry_external_url3846 when passing a URL3847 is expected to eq "https://sentrytest.gitlab.com/sentry-org/sentry-project"3848 when passing nil3849 is expected to be nil3850 #sentry_external_url3851 returns the correct url3852 #sentry_client3853 is expected to be a kind of ErrorTracking::SentryClient3854 is expected to have attributes {:token => "access_token_123", :url => "https://sentrytest.gitlab.com/api/0/projects/sentry-org/sentry-project"}3855 #list_sentry_issues3856 when cached3857 returns cached issues3858 when not cached3859 returns nil3860 client errors3861 exception: ErrorTracking::SentryClient::Error, error_type: "non_20x_response_from_sentry", error_message: "something"3862 returns an error3863 exception: ErrorTracking::SentryClient::MissingKeysError, error_type: "missing_keys_in_sentry_response", error_message: "something"3864 returns an error3865 exception: ErrorTracking::SentryClient::ResponseInvalidSizeError, error_type: "invalid_size_of_sentry_response", error_message: "something"3866 returns an error3867 exception: ErrorTracking::SentryClient::Issue::BadRequestError, error_type: "bad_request_for_sentry_api", error_message: "something"3868 returns an error3869 exception: StandardError, error_type: nil, error_message: "Unexpected Error"3870 returns an error3871 #list_sentry_projects3872 calls sentry client3873 #issue_details3874 when cached3875 is expected to eq {:issue=>#<Gitlab::ErrorTracking::DetailedError:0x00007f29af2c56c0 @id="1", @title="title", @type="er..., @first_release_version="12345678", @tags={:level=>"error", :logger=>"rails"}, @gitlab_commit=nil>}3876 is expected to eq "12345678"3877 is expected to eq nil3878 is expected to eq nil3879 when release version is nil3880 is expected to eq nil3881 is expected to eq nil3882 when repo commit matches first relase version3883 is expected to eq "12345678"3884 is expected to eq "/namespace969/project761/-/commit/12345678"3885 when not cached3886 is expected not to receive sentry_client(*(any args)) 0 times3887 is expected to be nil3888 #issue_latest_event3889 returns the error event3890 #update_issue3891 when sentry response is successful3892 returns the successful response3893 when sentry raises an error3894 returns the successful response3895 when sentry_project_id is not set3896 when sentry_project_id is not set3897 tries to backfill it from sentry API3898 when the project cannot be found on sentry3899 raises error3900 when mismatching sentry_project_id is detected3901 raises error3902 passing parameters to sentry client3903 returns the successful response3904 slugs3905 behaves like slug from api_url3906 when api_url is correct3907 returns slug3908 when api_url is blank3909 returns nil3910 behaves like slug from api_url3911 when api_url is correct3912 returns slug3913 when api_url is blank3914 returns nil3915 names from api_url3916 behaves like name from api_url3917 when name is present in DB3918 returns name from DB3919 when name is null in DB3920 titleizes and returns slug from api_url3921 returns nil when api_url is incorrect3922 returns nil when api_url is blank3923 behaves like name from api_url3924 when name is present in DB3925 returns name from DB3926 when name is null in DB3927 titleizes and returns slug from api_url3928 returns nil when api_url is incorrect3929 returns nil when api_url is blank3930 .build_api_url_from3931 correctly builds api_url with slugs3932 correctly builds api_url without slugs3933 does not raise exception with invalid url3934 returns nil when api_host is blank3935 #api_host3936 when api_url exists3937 extracts the api_host from api_url3938 when api_url is nil3939 returns nil3940 #expire_issues_cache3941 clears the cache3942 #sentry_enabled3943 enabled: true, integrated: false, sentry_enabled: true3944 is expected to eq true3945 enabled: true, integrated: true, sentry_enabled: false3946 is expected to eq false3947 enabled: true, integrated: true, sentry_enabled: false3948 is expected to eq false3949 enabled: false, integrated: false, sentry_enabled: false3950 is expected to eq false3951 #integrated_enabled?3952 enabled: true, integrated: false, integrated_enabled: false3953 is expected to eq false3954 enabled: false, integrated: true, integrated_enabled: false3955 is expected to eq false3956 enabled: true, integrated: true, integrated_enabled: true3957 is expected to eq true3958 #gitlab_dsn3959 is expected to eq "http://glet_a07d698174e32ed57399fb7fe006ef43@localhost/api/v4/error_tracking/collector/785"3960Projects::LfsPointers::LfsDownloadService3961 #execute3962 when file download succeeds3963 has the same oid3964 has the same size3965 stores the content3966 streams the download3967 skips read_total_timeout3968 behaves like lfs object is created3969 creates and associate the LFS object to project3970 returns success result3971 behaves like lfs temporal file is removed3972 is expected to equal false3973 when file downloading response code is not success3974 raise StandardError exception3975 behaves like no lfs object is created3976 is expected not to change `LfsObject.count`3977 returns error result3978 an error is logged3979 behaves like lfs temporal file is removed3980 is expected to equal false3981 when file downloading request timeout few times3982 retries to get LFS object 3 times before raising exception3983 behaves like no lfs object is created3984 is expected not to change `LfsObject.count`3985 returns error result3986 an error is logged3987 behaves like lfs temporal file is removed3988 is expected to equal false3989 when file download returns a redirect3990 correctly stores lfs object3991 behaves like lfs object is created3992 creates and associate the LFS object to project3993 returns success result3994 behaves like lfs temporal file is removed3995 is expected to equal false3996 when downloaded lfs file has a different size3997 raise SizeError exception3998 behaves like no lfs object is created3999 is expected not to change `LfsObject.count`4000 returns error result4001 an error is logged4002 behaves like lfs temporal file is removed4003 is expected to equal false4004 when downloaded lfs file has a different oid4005 raise OidError exception4006 behaves like no lfs object is created4007 is expected not to change `LfsObject.count`4008 returns error result4009 an error is logged4010 behaves like lfs temporal file is removed4011 is expected to equal false4012 when an lfs object with the same oid already exists4013 does not update the file attached to the existing LfsObject4014 behaves like no lfs object is created4015 is expected not to change `LfsObject.count`4016 returns error result4017 an error is logged4018 behaves like lfs temporal file is removed4019 is expected to equal false4020 when credentials present4021 the request adds authorization headers4022 when Authorization header is present4023 request uses the header auth4024 when localhost requests are allowed4025 behaves like lfs object is created4026 creates and associate the LFS object to project4027 returns success result4028 behaves like lfs temporal file is removed4029 is expected to equal false4030 when a bad URL is used4031 download_link: "/etc/passwd"4032 does not download the file4033 download_link: "ftp://example.com"4034 does not download the file4035 download_link: "http://127.0.0.2"4036 does not download the file4037 download_link: "http://192.168.2.120"4038 does not download the file4039 when the URL points to a redirected URL4040 that is blocked4041 redirect_link: "ftp://example.com"4042 behaves like no lfs object is created4043 is expected not to change `LfsObject.count`4044 returns error result4045 an error is logged4046 behaves like lfs temporal file is removed4047 is expected to equal false4048 redirect_link: "http://127.0.0.2"4049 behaves like no lfs object is created4050 is expected not to change `LfsObject.count`4051 returns error result4052 an error is logged4053 behaves like lfs temporal file is removed4054 is expected to equal false4055 redirect_link: "http://192.168.2.120"4056 behaves like no lfs object is created4057 is expected not to change `LfsObject.count`4058 returns error result4059 an error is logged4060 behaves like lfs temporal file is removed4061 is expected to equal false4062 that is not blocked4063 behaves like lfs object is created4064 creates and associate the LFS object to project4065 returns success result4066 behaves like lfs temporal file is removed4067 is expected to equal false4068 when the lfs object attributes are invalid4069 does not download the file4070 behaves like no lfs object is created4071 is expected not to change `LfsObject.count`4072 returns error result4073 an error is logged4074 behaves like lfs temporal file is removed4075 is expected to equal false4076 when a large lfs object with the same oid already exists4077 and first fragments are the same4078 returns success4079 links existing lfs object to the project4080 when lfs_link_existing_object feature flag disabled4081 does not call link_existing_lfs_object!4082 and first fragments diverges4083 raises oid mismatch error4084 does not change lfs objects4085Mutations::MergeRequests::SetLocked4086 is expected to require graphql authorizations :update_merge_request4087 #resolve4088 behaves like permission level for merge request mutation is correctly verified4089 when the user is not a project member4090 behaves like when the user does not have access to the resource4091 raises an error4092 even if assigned to the merge request4093 does not modify merge request4094 even if reviewer of the merge request4095 raises an error4096 even if author of the merge request4097 raises an error4098 when the user is a project member4099 with guest role4100 behaves like when the user does not have access to the resource4101 raises an error4102 even if assigned to the merge request4103 does not modify merge request4104 even if reviewer of the merge request4105 raises an error4106 even if author of the merge request4107 raises an error4108 with reporter role4109 behaves like when the user does not have access to the resource4110 raises an error4111 even if assigned to the merge request4112 does not modify merge request4113 even if reviewer of the merge request4114 raises an error4115 even if author of the merge request4116 raises an error4117 when the user can update the merge request4118 returns the merge request as discussion locked4119 returns errors merge request could not be updated4120 when passing locked as false4121 unlocks the discussion4122Integrations::DroneCi4123 behaves like Integrations::BaseCi4124 default values4125 is expected to eq :ci4126 behaves like Integrations::ResetSecretFields4127 #exposing_secrets_fields4128 returns an array of strings4129 #reset_secret_fields?4130 returns false if no exposing field has changed4131 returns true if any exposing field has changed4132 validation callback4133 when an exposing field has changed4134 clears all secret fields4135 when a secret field has been updated4136 does not clear this secret field4137 when a secret field has been updated with the same value4138 does not clear this secret field4139 when no exposing field has changed4140 does not clear any secret fields4141 validations4142 active4143 is expected to validate that :token cannot be empty/falsy4144 is expected to validate that :drone_url cannot be empty/falsy4145 behaves like issue tracker integration URL attribute4146 is expected to allow :drone_url to be ‹"https://example.com"›4147 is expected not to allow :drone_url to be ‹"example.com"›4148 is expected not to allow :drone_url to be ‹"ftp://example.com"›4149 is expected not to allow :drone_url to be ‹"herp-and-derp"›4150 inactive4151 is expected not to validate that :token cannot be empty/falsy4152 is expected not to validate that :drone_url cannot be empty/falsy4153 accessors4154 is expected to respond to #enable_ssl_verification4155 is expected to respond to #enable_ssl_verification?4156 #initialize_properties4157 enables the setting by default4158 does not enable the setting if the record is already persisted4159 does not enable the setting if a custom value was set4160 #fields4161 inserts the checkbox field after the first URL field, or at the end4162 does not insert the field repeatedly4163 #enable_ssl_verification4164 returns true for a known hostname4165 returns true for new records4166 returns false for an unknown hostname4167 returns false for a HTTP URL4168 returns false for an invalid URL4169 returns the persisted value if present4170 behaves like Integrations::HasWebHook4171 does not create a hook if project is not present4172 associations4173 is expected to have one service_hook inverse_of => integration4174 callbacks4175 calls #update_web_hook! when enabled4176 does not call #update_web_hook! when disabled4177 does not call #update_web_hook! when validation fails4178 #hook_url4179 returns a string4180 #url_variables4181 returns a hash4182 #hook_ssl_verification4183 returns a boolean4184 delegates to #enable_ssl_verification if the concern is included4185 #update_web_hook!4186 creates or updates a service hook4187 raises an error if the service hook could not be saved4188 does not attempt to save the service hook if there are no changes4189 #execute_web_hook!4190 creates the webhook if necessary and executes it4191 raises an error if the service hook could not be saved4192 integration page/path methods4193 is expected to eq "http://drone.example.com/gitlab/namespace986/project/redirect/commits/2ab7834c?branch=dev"4194 is expected to eq "http://drone.example.com/gitlab/namespace986/project/commits/2ab7834c?branch=dev&access_token=secret"4195 #commit_status4196 returns the contents of the reactive cache4197 #calculate_reactive_cache4198 #commit_status4199 sets commit status to :error when status is 5004200 sets commit status to :error when status is 4044201 sets commit status to :error with a Net::OpenTimeout error4202 sets commit status to :error with a Net::ReadTimeout error4203 sets commit status to :error with a Net::WriteTimeout error4204 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error4205 sets commit status to :error with a EOFError error4206 sets commit status to :error with a SocketError error4207 sets commit status to :error with a OpenSSL::SSL::SSLError error4208 sets commit status to :error with a OpenSSL::OpenSSLError error4209 sets commit status to :error with a Errno::ECONNRESET error4210 sets commit status to :error with a Errno::ECONNREFUSED error4211 sets commit status to :error with a Errno::EHOSTUNREACH error4212 sets commit status to :error with a Errno::ENETUNREACH error4213 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error4214 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error4215 sets commit status to :error with a Net::HTTPBadResponse error4216 sets commit status to :canceled when returned status is "killed"4217 sets commit status to :failed when returned status is "failure"4218 sets commit status to :failed when returned status is "error"4219 sets commit status to "success" when returned status is "success"4220 execute4221 executes the webhook4222 does not try to execute the webhook if the integration is not in a project4223Gitlab::GithubImport::Importer::PullRequestImporter4224 #execute4225 imports the pull request4226 #create_merge_request4227 when the author could be found4228 imports the pull request with the pull request author as the merge request author4229 returns the created merge request4230 when the source and target branch are identical4231 uses a generated source branch name for the merge request4232 when the import fails due to a foreign key error4233 does not raise any errors4234 when the merge request already exists4235 returns the existing merge request4236 when the author could not be found4237 imports the pull request with the project creator as the merge request author4238 when merge request is invalid4239 fails validation4240 #set_merge_request_assignees4241 when pull request has an assignee4242 sets merge request assignees4243 when pull request does not have any assignees4244 does not set merge request assignees4245 #insert_git_data4246 does not create the source branch if merge request is merged4247 creates a merge request diff and sets it as the latest4248 creates the merge request diff commits4249 when merge request is open4250 creates the source branch4251 is able to retry on pre-receive errors4252 ignores Git command errors when creating a branch4253 ignores Git PreReceive errors when creating a branch4254 when the merge request exists4255 creates the merge request diffs if they do not yet exist4256SystemNotes::MergeRequestsService4257 .merge_when_pipeline_succeeds4258 posts the 'merge when pipeline succeeds' system note4259 behaves like a system note4260 has the correct attributes4261 .cancel_merge_when_pipeline_succeeds4262 posts the 'merge when pipeline succeeds' system note4263 behaves like a system note4264 has the correct attributes4265 .abort_merge_when_pipeline_succeeds4266 posts the 'merge when pipeline succeeds' system note4267 behaves like a system note4268 has the correct attributes4269 .handle_merge_request_draft4270 adding draft note4271 sets the note text4272 behaves like a system note4273 has the correct attributes4274 removing draft note4275 sets the note text4276 behaves like a system note4277 has the correct attributes4278 .add_merge_request_draft_from_commit4279 posts the 'marked this merge request as draft from commit' system note4280 behaves like a system note4281 has the correct attributes4282 .resolve_all_discussions4283 sets the note text4284 behaves like a system note4285 has the correct attributes4286 .diff_discussion_outdated4287 behaves like a system note4288 has the correct attributes4289 when the change_position is valid for the discussion4290 creates a new note in the discussion4291 links to the diff in the system note4292 discussion is on an image4293 links to the diff in the system note4294 when the change_position does not point to a valid version4295 creates a new note in the discussion4296 does not create a link4297 .change_branch4298 behaves like a system note4299 has the correct attributes4300 when target branch name changed4301 on update4302 sets the note text4303 on delete4304 sets the note text4305 for invalid event_type4306 raises exception4307 .change_branch_presence4308 behaves like a system note4309 has the correct attributes4310 when source branch deleted4311 sets the note text4312 .new_issue_branch4313 branch_project is set4314 behaves like a system note for new issue branch4315 behaves like a system note4316 has the correct attributes4317 when a branch is created from the new branch button4318 sets the note text4319 branch_project is not set4320 behaves like a system note for new issue branch4321 behaves like a system note4322 has the correct attributes4323 when a branch is created from the new branch button4324 sets the note text4325 .new_merge_request4326 sets the new merge request note text4327 behaves like a system note4328 has the correct attributes4329 .picked_into_branch4330 posts the 'picked merge request' system note4331 links the merge request and the cherry-pick commit4332 behaves like a system note4333 has the correct attributes4334 #approve_mr4335 behaves like a system note4336 has the correct attributes4337 when merge request approved4338 sets the note text4339DeprecatedAssignee4340 #assignee_id=4341 creates the merge_request_assignees relation4342 nullifies the assignee_id column4343 when relation already exists4344 overwrites existing assignees4345 #assignee=4346 creates the merge_request_assignees relation4347 nullifies the assignee_id column4348 when relation already exists4349 overwrites existing assignees4350 #assignee_id4351 returns the first assignee ID4352 #assignees4353 when assignee_id exists and there is no relation4354 creates the relation4355 nullifies the assignee_id4356 when DB is read-only4357 returns a users relation4358 returns an empty relation if no assignee_id is set4359 #assignee_ids4360 when assignee_id exists and there is no relation4361 creates the relation4362 nullifies the assignee_id4363 when DB is read-only4364 returns a list of user IDs4365 returns an empty relation if no assignee_id is set4366BlobPolicy4367 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 14368 grants permission4369 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 14370 grants permission4371 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 14372 grants permission4373 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 14374 grants permission4375 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 14376 grants permission4377 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 14378 grants permission4379 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 14380 grants permission4381 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 04382 grants permission4383 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 14384 grants permission4385 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 14386 grants permission4387 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 04388 grants permission4389 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 04390 grants permission4391 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 04392 grants permission4393 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 04394 grants permission4395 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 04396 grants permission4397 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 04398 grants permission4399 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 14400 grants permission4401 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 14402 grants permission4403 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 14404 grants permission4405 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 14406 grants permission4407 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 14408 grants permission4409 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 04410 grants permission4411 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 14412 grants permission4413 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 04414 grants permission4415 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 14416 grants permission4417 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 14418 grants permission4419 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 04420 grants permission4421 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 04422 grants permission4423 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 04424 grants permission4425 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 04426 grants permission4427 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 04428 grants permission4429 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 04430 grants permission4431 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 14432 grants permission4433 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 04434 grants permission4435 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 14436 grants permission4437 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 04438 grants permission4439 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 04440 grants permission4441 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 04442 grants permission4443 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 04444 grants permission4445 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 04446 grants permission4447 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 04448 grants permission4449 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 04450 grants permission4451Gitlab::GitalyClient::CommitService4452 #diff_from_parent4453 returns a Gitlab::GitalyClient::DiffStitcher4454 encodes paths correctly4455 when a commit has a parent4456 sends an RPC request with the parent ID as left commit4457 when a commit does not have a parent4458 sends an RPC request with empty tree ref as left commit4459 when given a whitespace param4460 and the param is true4461 uses the ignore all white spaces const4462 and the param is false4463 does not set a whitespace param4464 when given no whitespace param4465 does not set a whitespace param4466 #commit_deltas4467 when a commit has a parent4468 sends an RPC request with the parent ID as left commit4469 when a commit does not have a parent4470 sends an RPC request with empty tree ref as left commit4471 #diff_stats4472 sends an RPC request and returns the stats4473 #find_changed_paths4474 sends an RPC request and returns the stats4475 #tree_entries4476 sends a get_tree_entries message with default limit4477 with UTF-8 params strings4478 handles string encodings correctly4479 with pagination parameters4480 responds with a pagination cursor4481 #commit_count4482 sends a commit_count message4483 with UTF-8 params strings4484 handles string encodings correctly4485 #find_commit4486 sends an RPC request4487 caching4488 when passed revision is a branch name4489 calls Gitaly4490 when passed revision is a commit ID4491 returns a cached commit4492 when caching of the ref name is enabled4493 caches negative entries4494 returns a cached commit4495 #list_commits4496 behaves like a ListCommits request4497 sends a list_commits message4498 with multiple revisions4499 behaves like a ListCommits request4500 sends a list_commits message4501 with reverse: true4502 behaves like a ListCommits request4503 sends a list_commits message4504 with commit message, author, before and after4505 behaves like a ListCommits request4506 sends a list_commits message4507 #list_new_commits4508 with hook environment4509 reject commits which exist in target repository4510 behaves like a #list_all_commits message4511 sends a list_all_commits message4512 keep commits which do not exist in target repository4513 behaves like a #list_all_commits message4514 sends a list_all_commits message4515 mixed existing and nonexisting commits4516 behaves like a #list_all_commits message4517 sends a list_all_commits message4518 without hook environment4519 behaves like a #list_commits message4520 sends a list_commits message4521 #commit_stats4522 sends an RPC request4523 #find_commits4524 sends an RPC request with NONE when default4525 sends an RPC request4526 sends an RPC request with an author4527 #object_existence_map4528 with empty request4529 behaves like a CheckObjectsExistRequest4530 returns expected results4531 when revision exists4532 behaves like a CheckObjectsExistRequest4533 returns expected results4534 when revision does not exist4535 behaves like a CheckObjectsExistRequest4536 returns expected results4537 when request contains mixed revisions4538 behaves like a CheckObjectsExistRequest4539 returns expected results4540 when requesting many revisions4541 behaves like a CheckObjectsExistRequest4542 returns expected results4543 #commits_by_message4544 when only the query is provided4545 sends an RPC request with the correct payload4546 when all arguments are provided4547 sends an RPC request with the correct payload4548 when limit and offset are not integers4549 sends an RPC request with the correct payload4550 when revision and path contain non-ASCII characters4551 sends an RPC request with the correct payload4552 #list_commits_by_ref_name4553 lists latest commits grouped by a ref name4554 #raw_blame4555 without a range4556 blames a whole file4557 with a range4558 blames part of a file4559Trigger4560 # order random4561 Trigger::CNG4562 #variables4563 does not include redundant variables4564 invokes the trigger with expected variables4565 TRIGGER_BRANCH4566 when CNG_BRANCH is not set4567 sets TRIGGER_BRANCH to master4568 when CNG_BRANCH is set4569 sets TRIGGER_BRANCH to cng_branch4570 when CI_COMMIT_REF_NAME is a stable branch4571 sets TRIGGER_BRANCH to the corresponding stable branch4572 GITLAB_VERSION4573 when CI_COMMIT_SHA is set4574 sets GITLAB_VERSION to CI_COMMIT_SHA4575 GITLAB_TAG4576 when CI_COMMIT_TAG is set4577 sets GITLAB_TAG to true4578 when CI_COMMIT_TAG is nil4579 sets GITLAB_TAG to nil4580 CE_PIPELINE4581 when Trigger.ee? is true4582 sets CE_PIPELINE to nil4583 when Trigger.ee? is false4584 sets CE_PIPELINE to true4585 EE_PIPELINE4586 when Trigger.ee? is true4587 sets EE_PIPELINE to true4588 when Trigger.ee? is false4589 sets EE_PIPELINE to nil4590 GITLAB_REF_SLUG4591 when CI_COMMIT_TAG is set4592 sets GITLAB_REF_SLUG to CI_COMMIT_REF_NAME4593 when CI_COMMIT_TAG is nil4594 sets GITLAB_REF_SLUG to CI_COMMIT_SHA4595 #version_param_value4596 raw_version: "1.2.3", expected_version: "v1.2.3"4597 when set in ENV4598 includes the version from ENV4599 raw_version: "1.2.3-rc1", expected_version: "v1.2.3-rc1"4600 when set in ENV4601 includes the version from ENV4602 raw_version: "1.2.3-ee", expected_version: "v1.2.3-ee"4603 when set in ENV4604 includes the version from ENV4605 raw_version: "1.2.3-rc1-ee", expected_version: "v1.2.3-rc1-ee"4606 when set in ENV4607 includes the version from ENV4608 Trigger::DatabaseTesting4609 #variables4610 invokes the trigger with expected variables4611 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is set4612 sets TOP_UPSTREAM_SOURCE_SHA to ci_merge_request_source_branch_sha4613 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is set as empty4614 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA4615 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is not set4616 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA4617 #invoke!4618 invokes the trigger with expected variables4619 #downstream_project_path4620 when GITLABCOM_DATABASE_TESTING_PROJECT_PATH is set4621 triggers the pipeline on the correct project4622 #ref4623 when GITLABCOM_DATABASE_TESTING_TRIGGER_REF is set4624 triggers the pipeline on the correct ref4625 when no MR notes with the identifier exist yet4626 posts a new note4627 Trigger::Base4628 #invoke!4629 when required methods aren't defined4630 raises a NotImplementedError4631 when required methods are defined4632 waits for downstream pipeline4633 when env variable `FOO_BAR_BRANCH` does not exist4634 triggers the pipeline on the correct project and branch4635 when env variable `FOO_BAR_BRANCH` exists4636 triggers the pipeline on the correct project and branch4637 #variables4638 includes simple forwarded variables4639 #base_variables4640 when CI_COMMIT_TAG is set4641 sets GITLAB_REF_SLUG to CI_COMMIT_REF_NAME4642 when CI_COMMIT_TAG is nil4643 sets GITLAB_REF_SLUG to CI_COMMIT_REF_SLUG4644 when TRIGGERED_USER is set4645 sets TRIGGERED_USER to triggered_user4646 when TRIGGERED_USER is not set4647 sets TRIGGERED_USER to GITLAB_USER_NAME4648 when CI_COMMIT_SHA is set4649 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA4650 #version_file_variables4651 version_file: "GITALY_SERVER_VERSION", version: "1"4652 when set in ENV4653 includes the version from ENV4654 when set in a file4655 includes the version from the file4656 version_file: "GITLAB_ELASTICSEARCH_INDEXER_VERSION", version: "2"4657 when set in ENV4658 includes the version from ENV4659 when set in a file4660 includes the version from the file4661 version_file: "GITLAB_KAS_VERSION", version: "3"4662 when set in ENV4663 includes the version from ENV4664 when set in a file4665 includes the version from the file4666 version_file: "GITLAB_PAGES_VERSION", version: "4"4667 when set in ENV4668 includes the version from ENV4669 when set in a file4670 includes the version from the file4671 version_file: "GITLAB_SHELL_VERSION", version: "5"4672 when set in ENV4673 includes the version from ENV4674 when set in a file4675 includes the version from the file4676 version_file: "GITLAB_WORKHORSE_VERSION", version: "6"4677 when set in ENV4678 includes the version from ENV4679 when set in a file4680 includes the version from the file4681 Trigger::Docs4682 #variables4683 BRANCH_CE4684 when CI_PROJECT_PATH is gitlab-org/gitlab-foss4685 sets BRANCH_CE to CI_COMMIT_REF_NAME4686 BRANCH_EE4687 when CI_PROJECT_PATH is gitlab-org/gitlab4688 sets BRANCH_EE to CI_COMMIT_REF_NAME4689 BRANCH_RUNNER4690 when CI_PROJECT_PATH is gitlab-org/gitlab-runner4691 sets BRANCH_RUNNER to CI_COMMIT_REF_NAME4692 BRANCH_OMNIBUS4693 when CI_PROJECT_PATH is gitlab-org/omnibus-gitlab4694 sets BRANCH_OMNIBUS to CI_COMMIT_REF_NAME4695 BRANCH_CHARTS4696 when CI_PROJECT_PATH is gitlab-org/charts/gitlab4697 sets BRANCH_CHARTS to CI_COMMIT_REF_NAME4698 REVIEW_SLUG4699 when CI_MERGE_REQUEST_IID is set4700 sets REVIEW_SLUG4701 when CI_MERGE_REQUEST_IID is not set4702 sets REVIEW_SLUG4703 .access_token4704 when DOCS_PROJECT_API_TOKEN is set4705 returns the docs-specific access token4706 when DOCS_PROJECT_API_TOKEN is not set4707 returns the default access token4708 #invoke!4709 #downstream_project_path4710 when DOCS_PROJECT_PATH is set4711 triggers the pipeline on the correct project4712 #ref4713 when DOCS_BRANCH is set4714 triggers the pipeline on the correct ref4715 #cleanup!4716 when stopping the environment succeeds4717 displays a success message4718 when stopping the environment fails4719 displays a failure message4720Gitlab::Database::WithLockRetries4721 #run4722 requires block4723 when DISABLE_LOCK_RETRIES is set4724 executes the passed block without retrying4725 when lock retry is enabled4726 lock_fiber4727 acquires lock successfully4728 after 3 iterations4729 behaves like retriable exclusive lock on `projects`4730 succeeds executing the given block4731 setting the idle transaction timeout4732 when there is no outer transaction: disable_ddl_transaction! is set in the migration4733 does not disable the idle transaction timeout4734 when there is outer transaction: disable_ddl_transaction! is not set in the migration4735 disables the idle transaction timeout so the code can sleep and retry4736 after the retries are exhausted4737 when there is no outer transaction: disable_ddl_transaction! is set in the migration4738 does not disable the lock_timeout4739 when there is outer transaction: disable_ddl_transaction! is not set in the migration4740 disables the lock_timeout4741 after the retries, without setting lock_timeout4742 behaves like retriable exclusive lock on `projects`4743 succeeds executing the given block4744 after the retries, when requested to raise an error4745 raises an error instead of waiting indefinitely for the lock4746 when statement timeout is reached4747 raises QueryCanceled error4748 restore local database variables4749 is expected not to change `connection.execute("SHOW lock_timeout").to_a`4750 is expected not to change `connection.execute("SHOW idle_in_transaction_session_timeout").to_a`4751 casting durations correctly4752 executes `SET LOCAL lock_timeout` using the configured timeout value in milliseconds4753 calls `sleep` after the first iteration fails, using the configured sleep time4754 Stop using subtransactions - allow_savepoints: false4755 prevents running inside already open transaction4756 does not raise the error if not inside open transaction4757Import::GithubController routing4758 to #personal_access_token4759 to #cancel_all4760 to #counts4761 behaves like importer routing4762 to #create4763 to #new4764 to #status4765 to #callback4766 to #jobs4767 to #realtime_changes4768Import::GiteaController routing4769 to #personal_access_token4770 behaves like importer routing4771 to #create4772 to #new4773 to #status4774 to #callback4775 to #jobs4776 to #realtime_changes4777Import::GitlabController routing4778 behaves like importer routing4779 to #create4780 to #new4781 to #status4782 to #callback4783 to #jobs4784 to #realtime_changes4785Import::BitbucketController routing4786 behaves like importer routing4787 to #create4788 to #new4789 to #status4790 to #callback4791 to #jobs4792 to #realtime_changes4793Import::BitbucketServerController routing4794 behaves like importer routing4795 to #create4796 to #new4797 to #status4798 to #callback4799 to #jobs4800 to #realtime_changes4801Import::FogbugzController routing4802 to #callback4803 to #new_user_map4804 to #create_user_map4805 behaves like importer routing4806 to #create4807 to #new4808 to #status4809 to #callback4810 to #jobs4811 to #realtime_changes4812Import::GitlabProjectsController routing4813 to #create4814 to #new4815Import::PhabricatorController routing4816 to #create4817 to #new4818Import::GithubGroupsController routing4819 to #status4820Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers4821 #queue_batched_background_migration4822 creates the database record for the migration4823 when such migration already exists4824 does not create duplicate migration4825 when the job interval is lower than the minimum4826 sets the job interval to the minimum value4827 when additional arguments are passed to the method4828 when the job class provides job_arguments_count4829 when defined job arguments for the job class does not match provided arguments4830 raises an error4831 when defined job arguments for the job class match provided arguments4832 saves the arguments on the database record4833 when the job class does not provide job_arguments_count4834 does not raise an error4835 when the max_value is not given4836 when records exist in the database4837 creates the record with the current max value4838 creates the record with an active status4839 when the database is empty4840 sets the max value to the min value4841 creates the record with a finished status4842 when gitlab_schema is not given4843 fetches gitlab_schema from the migration context4844 #finalize_batched_background_migration4845 finalizes the migration4846 when the migration does not exist4847 raises an exception4848 when within transaction4849 does raise an exception4850 when running migration in reconfigured ActiveRecord::Base context4851 behaves like reconfigures connection stack4852 when restrict_gitlab_migration is set to gitlab_ci4853 finalizes the migration (PENDING: Skipping because none of the extra databases [:ci, :main_clusterwide] are setup)4854 when restrict_gitlab_migration is set to gitlab_main4855 does not find any migrations (PENDING: Skipping because none of the extra databases [:ci, :main_clusterwide] are setup)4856 when no restrict is set4857 does not find any migrations (PENDING: Skipping because none of the extra databases [:ci, :main_clusterwide] are setup)4858 when within transaction4859 does raise an exception4860 #delete_batched_background_migration4861 when migration exists4862 deletes it4863 when migration does not exist4864 does nothing4865 #gitlab_schema_from_context4866 when allowed_gitlab_schemas is not available4867 defaults to :gitlab_main4868 when allowed_gitlab_schemas is available4869 uses schema from allowed_gitlab_schema4870 #ensure_batched_background_migration_is_finished4871 raises an error when migration exists and is not marked as finished4872 does not raise error when migration exists and is marked as finished4873 finalizes the migration4874 when specified migration does not exist4875 when DBLAB_ENVIRONMENT is not set4876 logs a warning4877 when DBLAB_ENVIRONMENT is set4878 raises an error4879 when within transaction4880 does raise an exception4881 when the flag finalize is false4882 does not finalize the migration4883Resolvers::TodosResolver4884 is expected to have nullable GraphQL type TodoConnection4885 #resolve4886 calls TodosFinder4887 when using no filter4888 returns pending todos4889 when using filters4890 returns the todos for multiple states4891 returns the todos for multiple filters4892 returns the todos for single filter4893 returns the todos for multiple groups4894 returns the todos for multiple authors4895 returns the todos for multiple actions4896 returns the todos for multiple projects4897 when no target is provided4898 returns no todos4899 when target user is not the current user4900 returns no todos4901 when request is for a todo target4902 returns only the todos for the target4903DeclarativePolicy authorization in GraphQL4904 Field authorizations4905 with a single permission4906 returns the protected field when user has permission4907 returns nil when user is not authorized4908 with a collection of permissions4909 returns the protected field when user has all permissions4910 returns nil when user only has one of the permissions4911 returns nil when user only has the other of the permissions4912 returns nil when user has neither of the required permissions4913 Field authorizations when field is a built in type4914 with a single permission4915 returns the protected field when user has permission4916 returns nil when user is not authorized4917 with a collection of permissions4918 returns the protected field when user has all permissions4919 returns nil when user only has one of the permissions4920 returns nil when user only has none of the permissions4921 Type authorizations4922 with a single permission4923 returns the protected field when user has permission4924 returns nil when user is not authorized4925 with a collection of permissions4926 returns the protected field when user has all permissions4927 returns nil when user only has one of the permissions4928 returns nil when user only has the other of the permissions4929 returns nil when user has neither of the required permissions4930 type and field authorizations together4931 returns the protected field when user has all permissions4932 returns nil when user only has one of the permissions4933 returns nil when user only has the other of the permissions4934 returns nil when user has neither of the required permissions4935 resolver and field authorizations together4936 when the resolver authorizes the object4937 returns the protected field when user has all permissions4938 returns nil when user only has one of the permissions4939 returns nil when user only has the other of the permissions4940 returns nil when user has neither of the required permissions4941 when the resolver is a subclass of one that authorizes the object4942 returns the protected field when user has all permissions4943 returns nil when user only has one of the permissions4944 returns nil when user only has the other of the permissions4945 returns nil when user has neither of the required permissions4946 when the resolver is a subclass of one that authorizes the object, extra permission4947 when the field does not define any permissions4948 returns the protected field when user has all permissions4949 returns nil when user only has one of the permissions4950 returns nil when user only has the other of the permissions4951 returns nil when user has neither of the required permissions4952 when the resolver does not authorize the object, but instead calls authorized_find!4953 returns the protected field when user has all permissions4954 returns nil when user only has one of the permissions4955 returns nil when user only has the other of the permissions4956 returns nil when user has neither of the required permissions4957 when the resolver calls authorized_find!, but does not list any permissions4958 raises a configuration error4959 when type authorizations when applied to a relay connection4960 returns only the elements visible to the user4961 returns nil when user is not authorized4962 limiting connections with multiple objects4963 only checks permissions for the first object4964 type authorizations when applied to a basic connection4965 returns the protected field when user has permission4966 returns nil when user is not authorized4967 Authorizations on active record relations4968 renders the issues the user has access to4969 does not check access on fields that will not be rendered4970 Authorization on GraphQL::Execution::Execute::SKIP4971 skips redaction4972ClusterAncestorsFinder#execute4973 for a project4974 returns the project clusters followed by group clusters4975 nested groups4976 returns the project clusters followed by group clusters ordered ascending the hierarchy4977 user cannot read clusters for clusterable4978 returns nothing4979 for a group4980 returns the list of group clusters4981 nested groups4982 returns the list of group clusters ordered ascending the hierarchy4983 for an instance4984 when admin mode is enabled4985 returns the list of instance clusters4986 when admin mode is disabled4987 returns nothing4988Atlassian::JiraConnect::Client4989 .generate_update_sequence_id4990 returns unix time in microseconds as integer4991 #send_info4992 calls more specific methods as appropriate4993 only calls methods that we need to call4994 raises an argument error if there is nothing to send (probably a typo?)4995 #handle_response4996 when the response is 200 OK4997 yields to the block4998 when the response is 202 accepted4999 yields to the block5000 when the response is 400 bad request5001 extracts the errors messages5002 when the response is 401 forbidden5003 reports that our JWT is wrong5004 when the response is 4035005 reports that the App is misconfigured5006 when the response is 4135007 extracts the errors messages5008 when the response is 4295009 reports that we exceeded the rate limit5010 when the response is 5035011 reports that the service is unavailable5012 when the response is anything else5013 reports that this was unanticipated5014 #request_body_schema5015 with valid JSON request body5016 returns the request body5017 with invalid JSON request body5018 reports the invalid json5019 #store_deploy_info5020 calls the API with auth headers5021 only sends information about relevant MRs5022 does not call the API if there is nothing to report5023 when there are errors5024 reports the errors5025 #store_ff_info5026 calls the API with auth headers5027 only sends information about relevant MRs5028 does not call the API if there is nothing to report5029 when there are errors5030 reports the errors5031 #store_build_info5032 calls the API with auth headers5033 only sends information about relevant MRs5034 does not call the API if there is nothing to report5035 avoids N+1 database queries (PENDING: https://gitlab.com/gitlab-org/gitlab/-/issues/292818)5036 when there are errors5037 reports the errors5038 #store_dev_info5039 calls the API with auth headers5040 avoids N+1 database queries5041 #user_info5042 with a successful response5043 returns a JiraUser instance5044 with a failed response5045 returns nil5046Deploy-ECS.gitlab-ci.yml5047 the created pipeline5048 creates the expected jobs5049 behaves like no pipeline yaml error5050 does not have any error5051 when the DAST template is also included5052 does not have any error5053 when running a pipeline for a branch5054 creates the expected jobs5055 behaves like no pipeline yaml error5056 does not have any error5057 when deploying to ECS Fargate5058 creates the expected jobs5059MembersHelper5060 #remove_member_message5061 is expected to eq "Are you sure you want to remove Sidney Jones2344 from the Sidney Jones2343 / project881 project?"5062 is expected to eq "Are you sure you want to revoke the invitation for to join the Sidney Jones2346 / project883 project?"5063 is expected to eq "Are you sure you want to deny Sidney Jones2350's request to join the Sidney Jones2349 / project885 project?"5064 is expected to eq "Are you sure you want to withdraw your access request for the Sidney Jones2351 / project886 project?"5065 is expected to eq "Are you sure you want to remove Sidney Jones2353 from the group563 group and any subresources?"5066 is expected to eq "Are you sure you want to revoke the invitation for to join the group565 group?"5067 is expected to eq "Are you sure you want to deny Sidney Jones2355's request to join the group567 group?"5068 is expected to eq "Are you sure you want to withdraw your access request for the group568 group?"5069 an accepted user invitation with no user associated5070 logs an exception and shows orphaned status5071 a pending member invitation with no user associated5072 does not error when there is an invitation for the requestor5073 #remove_member_title5074 is expected to eq "Remove user from project"5075 is expected to eq "Deny access request from project"5076 is expected to eq "Remove user from group and any subresources"5077 is expected to eq "Deny access request from group"5078 #leave_confirmation_message5079 is expected to eq "Are you sure you want to leave the \"Sidney Jones2368 / project892\" project?"5080 is expected to eq "Are you sure you want to leave the \"group574\" group?"5081 #localized_tasks_to_be_done_choices5082 has a translation for all `TASKS_TO_BE_DONE` keys5083 #member_request_access_link5084 returns request link for project members5085 returns the request link for group members5086Ci::BuildPresenter5087 inherits from Gitlab::View::Presenter::Delegated5088 #initialize5089 takes a build and optional params5090 exposes build5091 forwards missing methods to build5092 #status_title5093 when build is auto-canceled5094 shows that the build is auto-canceled5095 when build failed5096 returns the reason of failure5097 when build has failed && retried5098 does not include retried title5099 when build has failed and is allowed to5100 returns the reason of failure5101 For any other build5102 returns the status5103 quack like a Ci::Build permission-wise5104 user is not allowed5105 returns false5106 user is allowed5107 returns true5108 #trigger_variables5109 when variable is stored in ci_pipeline_variables5110 when pipeline is triggered by trigger API5111 returns variables5112 when pipeline is not triggered by trigger API5113 does not return variables5114 when variable is stored in ci_trigger_requests.variables5115 returns variables5116 #execute_in5117 when build is scheduled5118 when schedule is not expired5119 returns execution time5120 when schedule is expired5121 returns execution time5122 when build is not delayed5123 does not return execution time5124 #callout_failure_message5125 returns a verbose failure reason5126Groups::AutocompleteService5127 #labels_as_hash5128 returns labels from own group and ancestor groups5129 #issues5130 returns issues in group and subgroups5131 returns only confidential issues if confidential_only is true5132 #merge_requests5133 returns merge requests in group and subgroups5134 #milestones5135 returns milestones from group5136 returns milestones from groups and subgroups5137 returns only milestones that user can read5138 when group is public5139 returns milestones from groups and subgroups5140ProjectAuthorization5141 unique user, project authorizations5142 with duplicate user and project authorization5143 is expected to be invalid5144 after validation5145 contains duplicate error5146 with multiple access levels for the same user and project5147 is expected to be invalid5148 after validation5149 contains duplicate error5150 relations5151 is expected to belong to user required: false5152 is expected to belong to project required: false5153 validations5154 is expected to validate that :project cannot be empty/falsy5155 is expected to validate that :user cannot be empty/falsy5156 is expected to validate that :access_level cannot be empty/falsy5157 is expected to validate that :access_level is either ‹10›, ‹20›, ‹30›, ‹40›, or ‹50›5158 .insert_all5159 skips duplicates and inserts the remaining rows without error5160 .insert_all_in_batches5161 when the total number of records to be inserted is greater than the batch size5162 inserts the rows in batches, as per the `per_batch` size, with a delay between each batch5163 behaves like logs the detail5164 logs the detail5165 when the GitLab installation does not have a replica database configured5166 behaves like inserts the rows in batches, as per the `per_batch` size, without a delay between each batch5167 is expected to contain exactly [2408, 945, 40], [2408, 946, 40], and [2408, 947, 40]5168 behaves like does not log any detail5169 does not log any detail5170 when the total number of records to be inserted is less than the batch size5171 behaves like inserts the rows in batches, as per the `per_batch` size, without a delay between each batch5172 is expected to contain exactly [2408, 945, 40], [2408, 946, 40], and [2408, 947, 40]5173 behaves like does not log any detail5174 does not log any detail5175 .delete_all_in_batches_for_project5176 when the total number of records to be removed is greater than the batch size5177 removes the project authorizations of the specified users in the current project, with a delay between each batch5178 behaves like logs the detail5179 logs the detail5180 when the GitLab installation does not have a replica database configured5181 behaves like removes the project authorizations of the specified users in the current project, without a delay between each batch5182 is expected not to include 2413, 2414, and 24155183 behaves like does not log any detail5184 does not log any detail5185 when the total number of records to be removed is less than the batch size5186 behaves like removes the project authorizations of the specified users in the current project, without a delay between each batch5187 is expected not to include 2413, 2414, and 24155188 behaves like does not log any detail5189 does not log any detail5190 .delete_all_in_batches_for_user5191 when the total number of records to be removed is greater than the batch size5192 removes the project authorizations of the specified projects from the current user, with a delay between each batch5193 behaves like logs the detail5194 logs the detail5195 when the GitLab installation does not have a replica database configured5196 behaves like removes the project authorizations of the specified projects from the current user, without a delay between each batch5197 is expected not to include 949, 950, and 9515198 behaves like does not log any detail5199 does not log any detail5200 when the total number of records to be removed is less than the batch size5201 behaves like removes the project authorizations of the specified projects from the current user, without a delay between each batch5202 is expected not to include 949, 950, and 9515203 behaves like does not log any detail5204 does not log any detail5205Mutations::Releases::Create5206 #resolve5207 when the current user has access to create releases5208 returns no errors5209 creates the release with the correct tag5210 creates the release with the correct name5211 creates the release with the correct description5212 creates the release with the correct released_at5213 creates the release with the correct created_at5214 creates the release with the correct milestone associations5215 asset links5216 creates a single asset link5217 creates the link with the correct name5218 creates the link with the correct url5219 creates the link with the correct link type5220 creates the link with the correct direct filepath5221 with protected tag5222 when user has access to the protected tag5223 does not have errors5224 when user does not have access to the protected tag5225 has an access error5226 when the current user doesn't have access to create releases5227 raises an error5228projects/edit5229 project export disabled5230 does not display the project export option5231 forking5232 project is not a fork5233 hides the remove fork relationship settings5234 project is a fork5235 shows the remove fork relationship settings to an authorized user5236 hides the fork relationship settings from an unauthorized user5237 hides the fork source from an unauthorized user5238 shows the fork source to an authorized user5239 prompt user about registration features5240 when service ping is enabled5241 behaves like does not render registration features prompt5242 does not render a placeholder input with registration features message5243 with no license and service ping disabled5244 behaves like renders registration features prompt5245 renders a placeholder input with registration features message5246 pages menu entry callout5247 with feature flag disabled5248 does not show a callout5249 with feature flag enabled5250 does show a callout5251Gitlab::UsageDataCounters::HLLRedisCounter5252 .known_events5253 returns ce events5254 known_events5255 .track_event5256 with redis_hll_tracking5257 tracks the event when feature enabled5258 does not track the event with feature flag disabled5259 when usage_ping is disabled5260 does not track the event5261 when usage_ping is enabled5262 tracks event when using symbol5263 tracks events with multiple values5264 raise error if metrics don't have same aggregation5265 raise error if metrics of unknown event5266 reports an error if Feature.enabled raise an error5267 when Rails environment is production5268 reports only UnknownEvent exception5269 for weekly events5270 sets the keys in Redis to expire5271 for daily events5272 sets the keys in Redis to expire5273 .track_event_in_context5274 with valid contex5275 increments context event counter5276 tracks events with multiple values5277 with empty context5278 does not increment a counter5279 when sending invalid context5280 does not increment a counter5281 .unique_events5282 returns 0 if there are no keys for the given events5283 raise error if metrics don't have same aggregation5284 when data for the last complete week5285 is expected to eq 15286 when data for the last 4 complete weeks5287 is expected to eq 25288 when data for the week 4 weeks ago5289 is expected to eq 15290 when using symbol as parameter5291 is expected to eq 15292 when using daily aggregation5293 is expected to eq 25294 is expected to eq 35295 is expected to eq 15296 when no slot is set5297 is expected to eq 15298 when data crosses into new year5299 does not raise error5300 .weekly_redis_keys5301 returns 1 key for last for week5302 returns 4 key for last for weeks5303 start_date: "2020-12-21", end_date: "2020-12-21", keys: []5304 returns the correct keys5305 start_date: "2020-12-21", end_date: "2020-12-20", keys: []5306 returns the correct keys5307 start_date: "2020-12-21", end_date: "2020-11-21", keys: []5308 returns the correct keys5309 start_date: "2021-01-01", end_date: "2020-12-28", keys: []5310 returns the correct keys5311 start_date: "2020-12-21", end_date: "2020-12-28", keys: lazy { [week_one] }5312 returns the correct keys5313 start_date: "2020-12-21", end_date: "2021-01-01", keys: lazy { [week_one] }5314 returns the correct keys5315 start_date: "2020-12-27", end_date: "2021-01-01", keys: lazy { [week_one] }5316 returns the correct keys5317 start_date: "2020-12-26", end_date: "2021-01-04", keys: lazy { [week_one, week_two] }5318 returns the correct keys5319 start_date: "2020-12-26", end_date: "2021-01-11", keys: lazy { [week_one, week_two, week_three] }5320 returns the correct keys5321 start_date: "2020-12-26", end_date: "2021-01-17", keys: lazy { [week_one, week_two, week_three] }5322 returns the correct keys5323 start_date: "2020-12-26", end_date: "2021-01-18", keys: lazy { [week_one, week_two, week_three, week_four] }5324 returns the correct keys5325 context level tracking5326 with correct arguments5327 event_names: ["event_name_1"], context: "default", value: 25328 is expected to eq 25329 event_names: ["event_name_1"], context: "", value: 05330 is expected to eq 05331 event_names: ["event_name_2"], context: "", value: 05332 is expected to eq 05333 with invalid context5334 raise error5335 .calculate_events_union5336 calculates union of given events5337 returns 0 if there are no keys for given events5338 .weekly_time_range5339 return hash with weekly time range boundaries5340 .monthly_time_range5341 return hash with monthly time range boundaries5342SnippetInputAction5343 validations5344 action: :create, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5345 is expected to equal true5346 action: :move, file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5347 is expected to equal true5348 action: :delete, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5349 is expected to equal true5350 action: :update, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5351 is expected to equal true5352 action: :foo, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5353 is expected to include :action5354 action: "create", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5355 is expected to equal true5356 action: "move", file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5357 is expected to equal true5358 action: "delete", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5359 is expected to equal true5360 action: "update", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5361 is expected to equal true5362 action: "foo", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5363 is expected to include :action5364 action: nil, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5365 is expected to include :action5366 action: "", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5367 is expected to include :action5368 action: :move, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: false, invalid_field: :previous_path5369 is expected to include :previous_path5370 action: :move, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: false, invalid_field: :previous_path5371 is expected to include :previous_path5372 action: :move, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5373 is expected to include :file_path5374 action: :move, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5375 is expected to equal true5376 action: :move, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5377 is expected to equal true5378 action: :move, file_path: nil, content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5379 is expected to equal true5380 action: :move, file_path: "foobar", content: nil, previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5381 is expected to equal true5382 action: :move, file_path: "foobar", content: "", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5383 is expected to equal true5384 action: :create, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5385 is expected to include :content5386 action: :create, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5387 is expected to include :content5388 action: :create, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5389 is expected to equal true5390 action: :create, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5391 is expected to equal true5392 action: :update, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5393 is expected to include :content5394 action: :update, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5395 is expected to include :content5396 action: :update, file_path: "other", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5397 is expected to include :file_path5398 action: :update, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: true, invalid_field: nil5399 is expected to equal true5400 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: true, invalid_field: nil5401 is expected to equal true5402 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :update, is_valid: true, invalid_field: nil5403 is expected to equal true5404 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "update", is_valid: true, invalid_field: nil5405 is expected to equal true5406 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update], is_valid: true, invalid_field: nil5407 is expected to equal true5408 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update, :create], is_valid: true, invalid_field: nil5409 is expected to equal true5410 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :create, is_valid: false, invalid_field: :action5411 is expected to include :action5412 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "create", is_valid: false, invalid_field: :action5413 is expected to include :action5414 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:create], is_valid: false, invalid_field: :action5415 is expected to include :action5416 action: :foo, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :foo, is_valid: false, invalid_field: :action5417 is expected to include :action5418 #to_commit_action5419 transforms attributes to commit action5420 action is update5421 when previous_path is present5422 returns the existing previous_path5423 when previous_path is not present5424 assigns the file_path to the previous_path5425AutoMerge::MergeWhenPipelineSucceedsService5426 #available_for?5427 is expected to be truthy5428 memoizes the result5429 when the head pipeline succeeded5430 is expected to be falsy5431 when the user does not have permission to merge5432 is expected to be falsy5433 #execute5434 first time enabling5435 sets the params, merge_user, and flag5436 creates a system note5437 already approved5438 updates the merge params5439 #process5440 when triggered by pipeline with valid ref and sha5441 merges all merge requests with merge when the pipeline succeeds enabled5442 when triggered by an old pipeline5443 does not merge request5444 when triggered by pipeline from a different branch5445 does not merge request5446 when pipeline is merge request pipeline5447 merges the associated merge request5448 #cancel5449 resets all the pipeline succeeds params5450 posts a system note5451 #abort5452 posts a system note5453 pipeline integration5454 when there are multiple stages in the pipeline5455 doesn't merge if any of stages failed5456 merges when all stages succeeded5457Security::CiConfiguration::ContainerScanningCreateService5458 #execute5459 user does not belong to project5460 returns an error status5461 does not track a snowplow event5462 user belongs to project5463 does track the snowplow event5464 raises exception if the user does not have permission to create a new branch5465 when exception is raised5466 when branch was created5467 tries to rm branch5468 when branch was not created5469 does not try to rm branch5470 with no parameters5471 returns the path to create a new merge request5472 when the project has a non-default ci config file5473 does track the snowplow event5474 when existing ci config contains anchors/aliases5475 fails with error5476 when parsing existing ci config gives a Psych error5477 fails with error5478 when parsing existing ci config gives any other error5479 is successful5480 when the project is empty5481 returns an error5482IncidentManagement::TimelineEvent5483 # order random5484 .order_occurred_at_asc_id_asc5485 sorts timeline events by occurred_at5486 when two events occured at the same time5487 sorts timeline events by occurred_at then sorts by id5488 validations5489 is expected to validate that :project cannot be empty/falsy5490 is expected to validate that :incident cannot be empty/falsy5491 is expected to validate that :note cannot be empty/falsy5492 is expected to validate that the length of :note is at most 2805493 is expected to validate that the length of :note is at most 100005494 is expected to validate that the length of :note_html is at most 100005495 is expected to validate that :occurred_at cannot be empty/falsy5496 is expected to validate that :action cannot be empty/falsy5497 is expected to validate that the length of :action is at most 1285498 associations5499 is expected to belong to project required: false5500 is expected to belong to author required: false5501 is expected to belong to incident required: false5502 is expected to belong to updated_by_user required: false5503 is expected to belong to promoted_from_note required: false5504 is expected to have many timeline_event_tag_links class_name => IncidentManagement::TimelineEventTagLink5505 is expected to have many timeline_event_tags class_name => IncidentManagement::TimelineEventTag through timeline_event_tag_links5506 #cache_markdown_field5507 on create5508 updates note_html5509 on update5510 updates note_html5511MergeRequests::DeleteNonLatestDiffsService5512 #execute5513 schedules non-latest merge request diffs removal5514 schedules no removal if it is already cleaned5515 schedules no removal if it is empty5516 schedules no removal if there is no non-latest diffs5517NamespaceSettings::UpdateService5518 #execute5519 group has no namespace_settings5520 builds out a new namespace_settings record5521 group has a namespace_settings5522 doesn't create a new namespace_setting record5523 updating :default_branch_name5524 changes settings5525 updating :resource_access_token_creation_allowed5526 when user is a group owner5527 changes settings5528 when user is not a group owner5529 does not change settings5530 returns the group owner error5531 validating settings param for root group5532 setting_key: :prevent_sharing_groups_outside_hierarchy, setting_changes_from: false, setting_changes_to: true5533 when user is not a group owner5534 does not change settings5535 returns the group owner error5536 with a subgroup5537 does not change settings5538 when user is a group owner5539 changes settings5540 setting_key: :new_user_signups_cap, setting_changes_from: nil, setting_changes_to: 1005541 when user is not a group owner5542 does not change settings5543 returns the group owner error5544 with a subgroup5545 does not change settings5546 when user is a group owner5547 changes settings5548Repositories::HousekeepingService5549 behaves like housekeeps repository5550 with a clean redis state5551 #execute5552 enqueues a sidekiq job5553 yields the block if given5554 resets counter after execution5555 runs the task specifically requested5556 when no lease can be obtained5557 does not enqueue a job5558 does not reset pushes_since_gc5559 does not yield5560 task type5561 goes through all three housekeeping tasks, executing only the highest task when there is overlap5562 #needed?5563 when the count is low enough5564 when the count is high enough5565 when incremental repack period is not multiple of gc period5566 #increment!5567 increments the pushes_since_gc counter5568 behaves like housekeeps repository5569 with a clean redis state5570 #execute5571 enqueues a sidekiq job5572 yields the block if given5573 resets counter after execution5574 runs the task specifically requested5575 when no lease can be obtained5576 does not enqueue a job5577 does not reset pushes_since_gc5578 does not yield5579 task type5580 goes through all three housekeeping tasks, executing only the highest task when there is overlap5581 #needed?5582 when the count is low enough5583 when the count is high enough5584 when incremental repack period is not multiple of gc period5585 #increment!5586 increments the pushes_since_gc counter5587IncidentManagement::Incidents::CreateService5588 # order random5589 #execute5590 when incident has title and description5591 responds with success5592 creates an incident issue5593 created issue has correct attributes5594 behaves like incident issue5595 has incident as issue type5596 with default severity5597 sets the correct severity level to "unknown"5598 with severity5599 severity: "critical", incident_severity: "critical"5600 sets the correct severity level5601 severity: "high", incident_severity: "high"5602 sets the correct severity level5603 severity: "medium", incident_severity: "medium"5604 sets the correct severity level5605 severity: "low", incident_severity: "low"5606 sets the correct severity level5607 severity: "unknown", incident_severity: "unknown"5608 sets the correct severity level5609 with an alert5610 when the alert is valid5611 associates the alert with the incident5612 when the alert is not valid5613 does not associate the alert with the incident5614 when incident has no title5615 does not create an issue5616 responds with errors5617 result payload contains an Issue object5618 with alert5619 the alert prevents the issue from saving5620 responds with errors5621Gitlab::Ci::Config::Entry::Cache5622 validations5623 when entry config value is correct5624 #value5625 behaves like hash key value5626 returns hash value5627 with files5628 behaves like hash key value5629 returns hash value5630 with files and prefix5631 behaves like hash key value5632 returns hash value5633 with prefix5634 key is nil5635 with option `unprotect` specified5636 returns true5637 with `policy`5638 policy: "pull-push", result: "pull-push"5639 is expected to include {:policy => "pull-push"}5640 policy: "push", result: "push"5641 is expected to include {:policy => "push"}5642 policy: "pull", result: "pull"5643 is expected to include {:policy => "pull"}5644 policy: "unknown", result: "unknown"5645 is expected to include {:policy => "unknown"}5646 without `policy`5647 assigns policy to default5648 with `when`5649 when_config: "on_success", result: "on_success"5650 is expected to include {:when => "on_success"}5651 when_config: "on_failure", result: "on_failure"5652 is expected to include {:when => "on_failure"}5653 when_config: "always", result: "always"5654 is expected to include {:when => "always"}5655 when_config: "unknown", result: "unknown"5656 is expected to include {:when => "unknown"}5657 without `when`5658 assigns when to default5659 #valid?5660 is expected to be valid5661 with files5662 is expected to be valid5663 with `policy`5664 policy: "pull-push", valid: true5665 returns expected validity5666 policy: "push", valid: true5667 returns expected validity5668 policy: "pull", valid: true5669 returns expected validity5670 policy: "unknown", valid: false5671 returns expected validity5672 with `when`5673 when_config: "on_success", valid: true5674 returns expected validity5675 when_config: "on_failure", valid: true5676 returns expected validity5677 when_config: "always", valid: true5678 returns expected validity5679 when_config: "unknown", valid: false5680 returns expected validity5681 with key missing5682 #value5683 sets key with the default5684 when entry value is not correct5685 #errors5686 when is not a hash5687 reports errors with config value5688 when descendants are invalid5689 with invalid keys5690 reports error with descendants5691 with empty key5692 reports error with descendants5693 with invalid files5694 reports error with descendants5695 with prefix without files5696 reports error with descendants5697 when there is an unknown key present5698 reports error with descendants5699 when there is an unknown key present5700 reports error with descendants5701 when the `when` keyword is not a valid string5702 when `when` is unknown5703 returns error5704 when it is an array5705 returns error5706 when it is a boolean5707 returns error5708 when the `policy` keyword is not a valid string5709 when `policy` is unknown5710 returns error5711 when it is an array5712 returns error5713 when it is a boolean5714 returns error5715Ci::Resource5716 .free5717 returns free resources5718 .retained5719 returns the resource if it's retained5720 returns empty if it's not retained5721 .retained_by5722 returns retained resources5723 .stale_processables5724 when the processable is running5725 returns empty5726 and doomed5727 returns empty5728 returns the stale prosessable a few minutes later5729Gitlab::Ci::Config::Entry::Variable5730 # order random5731 ComplexVariable5732 when config is a hash with description5733 when metadata allowed_value_data is not provided5734 #valid?5735 is expected not to be valid5736 #errors5737 is expected to include "var1 config must be a string"5738 when metadata allowed_value_data is (value, description)5739 #valid?5740 is expected to be valid5741 #value5742 is expected to eq "value"5743 #value_with_data5744 is expected to eq {:value=>"value"}5745 #value_with_prefill_data5746 is expected to eq {:description=>"description", :value=>"value"}5747 when config value is a symbol5748 #value5749 is expected to eq "value"5750 #value_with_data5751 is expected to eq {:value=>"value"}5752 #value_with_prefill_data5753 is expected to eq {:description=>"description", :value=>"value"}5754 when config value is an integer5755 #value5756 is expected to eq "123"5757 #value_with_data5758 is expected to eq {:value=>"123"}5759 #value_with_prefill_data5760 is expected to eq {:description=>"description", :value=>"123"}5761 when config description is a symbol5762 #value5763 is expected to eq "value"5764 #value_with_data5765 is expected to eq {:value=>"value"}5766 #value_with_prefill_data5767 is expected to eq {:description=>:description, :value=>"value"}5768 when metadata allowed_value_data is (value, xyz)5769 #valid?5770 is expected not to be valid5771 #errors5772 is expected to include "var1 config uses invalid data keys: description"5773 when config is a hash without description5774 when metadata allowed_value_data is not provided5775 #valid?5776 is expected not to be valid5777 #errors5778 is expected to include "var1 config must be a string"5779 when metadata allowed_value_data is (value, description)5780 #valid?5781 is expected to be valid5782 #value5783 is expected to eq "value"5784 #value_with_data5785 is expected to eq {:value=>"value"}5786 #value_with_prefill_data5787 is expected to eq {:value=>"value"}5788 when config is a hash with expand5789 when metadata allowed_value_data is not provided5790 #valid?5791 is expected not to be valid5792 #errors5793 is expected to include "var1 config must be a string"5794 when metadata allowed_value_data is (value, expand)5795 #valid?5796 is expected to be valid5797 #value5798 is expected to eq "value"5799 #value_with_data5800 is expected to eq {:raw=>true, :value=>"value"}5801 when config expand is true5802 #value_with_data5803 is expected to eq {:raw=>false, :value=>"value"}5804 when config expand is a string5805 #valid?5806 is expected not to be valid5807 #errors5808 is expected to include "var1 config expand should be a boolean value"5809 when metadata allowed_value_data is (value, xyz)5810 #valid?5811 is expected not to be valid5812 #errors5813 is expected to include "var1 config uses invalid data keys: expand"5814 when config is a hash with options5815 when there is no metadata5816 #valid?5817 is expected not to be valid5818 #errors5819 is expected to include "var1 config must be a string"5820 when options are allowed5821 #valid?5822 is expected to be valid5823 #value5824 is expected to eq "value"5825 #value_with_data5826 is expected to eq {:value=>"value"}5827 #value_with_prefill_data5828 is expected to eq {:options=>["value", "value2"], :value=>"value"}5829 SimpleVariable5830 when config is a string5831 #valid?5832 is expected to be valid5833 #value5834 is expected to eq "value"5835 when config is an integer5836 #valid?5837 is expected to be valid5838 #value5839 is expected to eq "1"5840 when config is an array5841 #valid?5842 is expected not to be valid5843 #errors5844 is expected to include "variable definition must be either a string or a hash"5845SidebarsHelper5846 #sidebar_tracking_attributes_by_object5847 when object is a project5848 returns tracking attrs for project5849 when object is a group5850 returns tracking attrs for group5851 when object is a user5852 returns tracking attrs for user5853 when object is something else5854 is expected to eq {}5855 #super_sidebar_context5856 returns sidebar values from user5857 returns "Merge requests" menu5858 returns "Create new" menu groups without headers5859 returns "Create new" menu groups with headers5860 current context5861 when current context is a project5862 returns project context5863 when current context is a group5864 returns group context5865 when current context is not tracked5866 returns no context5867 context switcher persistent links5868 when user is not an admin5869 returns only the public links5870 when user is an admin5871 returns public links and admin area link5872 #super_sidebar_nav_panel5873 returns Project Panel for project nav5874 returns Group Panel for group nav5875 returns User Settings Panel for profile nav5876 returns User profile Panel for user profile nav5877 returns "Your Work" Panel for your_work nav5878 returns "Your Work" Panel as a fallback5879MergeRequests::CreatePipelineWorker5880 #perform5881 when the objects exist5882 calls the merge request create pipeline service and calls update head pipeline5883 when push options are passed as Hash to the worker5884 calls the merge request create pipeline service and calls update head pipeline5885 when the project does not exist5886 behaves like when object does not exist5887 does not call the create pipeline service5888 when the user does not exist5889 behaves like when object does not exist5890 does not call the create pipeline service5891 when the merge request does not exist5892 behaves like when object does not exist5893 does not call the create pipeline service5894Gitlab::Email::ReplyParser5895 #execute5896 returns an empty string if the message is blank5897 returns an empty string if the message is not an email5898 returns an empty string if there is no reply content5899 properly renders plaintext-only email5900 properly renders html-only email with table and blockquote5901 supports a Dutch reply5902 removes an 'on date wrote' quoting line5903 handles multiple paragraphs5904 handles multiple paragraphs when parsing html5905 handles newlines5906 handles inline reply5907 properly renders email reply from gmail web client5908 properly renders email reply from iOS default mail client5909 properly renders email reply from Android 5 gmail client5910 properly renders email reply from Windows 8.1 Metro default mail client5911 properly renders email reply from MS Outlook client5912 properly renders html-only email from MS Outlook5913 does not wrap links with no href in unnecessary brackets5914 does not trim reply if trim_reply option is false5915 appends trimmed reply when when append_reply option is true5916 when allow_only_quotes is true5917 returns quoted text from email5918 properly renders email reply from gmail web client5919 when feature flag is enabled5920 is expected to eq "### This is a reply from standard GMail in Google Chrome.\n\nThe quick brown fox jumps over the lazy...ary>\nTwo</summary>\nSome details</details>\n\nTest reply.\n\nFirst paragraph.\n\nSecond paragraph."5921 when feature flag is disabled5922 is expected to eq "### This is a reply from standard GMail in Google Chrome.\n\nThe quick brown fox jumps over the lazy...img [Miro]One Some details Two Some details\n\nTest reply.\n\nFirst paragraph.\n\nSecond paragraph."5923 non-UTF-8 content5924 parses body under UTF-8 encoding5925 charset is absent and reply trimming is disabled5926 parses body under UTF-8 encoding5927 multipart email5928 parses body under UTF-8 encoding5929PagesDomains::ObtainLetsEncryptCertificateService5930 when there is no acme order5931 creates acme order and schedules next step5932 when there is expired acme order5933 removes acme order and creates new one5934 there is an order in 'pending' status5935 does not raise errors5936 there is an order in 'processing' status5937 does not raise errors5938 when order is ready5939 request certificate and schedules next step5940 when order is valid5941 saves private_key and certificate for domain5942 marks certificate as gitlab_provided5943 removes order from database5944 when order is invalid5945 saves error to domain and deletes acme order5946 sends notification5947Types::GroupType5948 is expected to expose permissions using Types::PermissionTypes::Group5949 is expected to eq "Group"5950 is expected to require graphql authorizations :read_group5951 has the expected fields5952 boards field5953 returns boards5954 members field5955 is expected to have graphql type #<Class:0x00007f29d4a48698>5956 is expected to have graphql resolver Resolvers::GroupMembersResolver5957 timelogs field5958 finds timelogs between start time and end time5959 contact_state_counts field5960 is expected to have graphql type Types::CustomerRelations::ContactStateCountsType5961 is expected to have graphql resolver Resolvers::Crm::ContactStateCountsResolver5962 organization_state_counts field5963 is expected to have graphql type Types::CustomerRelations::OrganizationStateCountsType5964 is expected to have graphql resolver Resolvers::Crm::OrganizationStateCountsResolver5965 releases field5966 is expected to have graphql type #<Class:0x00007f29ceb86998>5967 is expected to have graphql resolver Resolvers::GroupReleasesResolver5968 behaves like a GraphQL type with labels5969 has label fields5970 label field5971 is expected to have graphql type Types::LabelType5972 is expected to have graphql arguments :title5973 labels field5974 is expected to have graphql type #<Class:0x00007f29ce5c0040>5975 is expected to have graphql arguments :search_term, :includeAncestorGroups, :includeDescendantGroups, and :onlyGroupLabels5976 milestones5977 avoids N+1 queries5978Network::Graph5979 #initialize5980 has initialized5981 when disable_network_graph_note_counts is disabled5982 initializes the notes hash5983 #commits5984 returns a list of commits5985 sorts commits by commit date (descending)5986 sorts children before parents for commits with the same timestamp5987Gitlab::Database::BackgroundMigration::PrometheusMetrics5988 #track5989 reports batch_size5990 reports sub_batch_size5991 reports interval5992 reports job duration5993 increments updated tuples (currently based on batch_size)5994 reports migrated tuples5995 reports the total tuple count for the migration5996 reports last updated at timestamp5997 reports summary of query timings5998 when the tracking record does not having timing metrics5999 does not attempt to report query timings6000Ci::CreatePipelineService6001 cache6002 with cache:key6003 uses the provided key6004 with cache:key:files6005 when file.lock exists6006 builds a cache key6007 when file.lock does not exist6008 uses default cache key6009 with cache:key:files and prefix6010 when file.lock exists6011 builds a cache key6012 when file.lock does not exist6013 uses default cache key6014 with too many files6015 has errors6016GitlabEdition6017 .root6018 returns the root path of the app6019 .path_glob6020 ee: false, jh: false, path: nil, expected: ""6021 is expected to eq "/builds/gitlab-org/gitlab/"6022 ee: true, jh: false, path: nil, expected: "{,ee/}"6023 is expected to eq "/builds/gitlab-org/gitlab/{,ee/}"6024 ee: true, jh: true, path: nil, expected: "{,ee/,jh/}"6025 is expected to eq "/builds/gitlab-org/gitlab/{,ee/,jh/}"6026 ee: false, jh: true, path: nil, expected: "{,ee/,jh/}"6027 is expected to eq "/builds/gitlab-org/gitlab/{,ee/,jh/}"6028 ee: false, jh: false, path: "app/models", expected: "app/models"6029 is expected to eq "/builds/gitlab-org/gitlab/app/models"6030 ee: true, jh: false, path: "app/models", expected: "{,ee/}app/models"6031 is expected to eq "/builds/gitlab-org/gitlab/{,ee/}app/models"6032 ee: true, jh: true, path: "app/models", expected: "{,ee/,jh/}app/models"6033 is expected to eq "/builds/gitlab-org/gitlab/{,ee/,jh/}app/models"6034 ee: false, jh: true, path: "app/models", expected: "{,ee/,jh/}app/models"6035 is expected to eq "/builds/gitlab-org/gitlab/{,ee/,jh/}app/models"6036 .extension_path_prefixes6037 ee: false, jh: false, expected: ""6038 is expected to eq ""6039 ee: true, jh: false, expected: "{,ee/}"6040 is expected to eq "{,ee/}"6041 ee: true, jh: true, expected: "{,ee/,jh/}"6042 is expected to eq "{,ee/,jh/}"6043 ee: false, jh: true, expected: "{,ee/,jh/}"6044 is expected to eq "{,ee/,jh/}"6045 .extensions6046 when .jh? is true6047 returns %w[ee jh]6048 when .ee? is true6049 returns %w[ee]6050 when neither .jh? and .ee? are true6051 returns the extensions according to the current edition6052 .ee? and .jh?6053 .ee?6054 when EE6055 when using FOSS_ONLY=16056 returns not to be EE6057 when using FOSS_ONLY=06058 returns to be EE6059 when using default FOSS_ONLY6060 returns to be EE6061 when CE6062 returns not to be EE6063 .jh?6064 when JH6065 when using default FOSS_ONLY and EE_ONLY6066 returns to be JH6067 when using FOSS_ONLY=16068 returns not to be JH6069 when using EE_ONLY=16070 returns not to be JH6071Ci::CreatePipelineService6072 include:6073 with a local file6074 behaves like including the file6075 includes the job in the file6076 with a local file with rules with a project variable6077 when the rules matches6078 behaves like including the file6079 includes the job in the file6080 when the rules does not match6081 behaves like not including the file6082 does not include the job in the file6083 with a local file with rules with a predefined pipeline variable6084 when the rules matches6085 behaves like including the file6086 includes the job in the file6087 when the rules does not match6088 behaves like not including the file6089 does not include the job in the file6090 with a local file with rules with a run pipeline variable6091 when the rules matches6092 behaves like including the file6093 includes the job in the file6094 when the rules does not match6095 behaves like not including the file6096 does not include the job in the file6097ProtectedBranchesFinder6098 #execute6099 behaves like execute by entity6100 returns all protected branches of project by default6101 when search param is present6102 filters by search param6103 when there are more protected branches than the limit6104 returns limited protected branches of project6105 behaves like execute by entity6106 returns all protected branches of project by default6107 when search param is present6108 filters by search param6109 when there are more protected branches than the limit6110 returns limited protected branches of project6111Projects::ImportExport::ParallelExportService6112 # order random6113 #execute6114 creates a project export archive file6115 logs export progress6116 executes after export stragegy on export success6117 ensures files are cleaned up6118 when export fails6119 notifies the error to the user6120 when after export stragegy fails6121 notifies the error to the user6122Gitlab::SidekiqMigrateJobs6123 #migrate_set6124 scheduled jobs6125 behaves like processing a set6126 when the set is empty6127 returns the number of scanned and migrated jobs6128 when the set is not empty6129 returns the number of scanned and migrated jobs6130 when there are no matching jobs6131 does not change any queue names6132 when there are matching jobs6133 migrates only the workers matching the given worker from the set6134 allows migrating multiple workers at once6135 allows migrating multiple workers to the same queue6136 does not try to migrate jobs that are removed from the set during the migration6137 does not try to migrate unmatched jobs that are added to the set during the migration6138 iterates through the entire set of jobs6139 logs output at the start, finish, and every LOG_FREQUENCY jobs6140 retried jobs6141 behaves like processing a set6142 when the set is empty6143 returns the number of scanned and migrated jobs6144 when the set is not empty6145 returns the number of scanned and migrated jobs6146 when there are no matching jobs6147 does not change any queue names6148 when there are matching jobs6149 migrates only the workers matching the given worker from the set6150 allows migrating multiple workers at once6151 allows migrating multiple workers to the same queue6152 does not try to migrate jobs that are removed from the set during the migration6153 does not try to migrate unmatched jobs that are added to the set during the migration6154 iterates through the entire set of jobs6155 logs output at the start, finish, and every LOG_FREQUENCY jobs6156 #migrate_queues6157 with all workers mapped to default queue6158 behaves like migrating queues6159 migrates the jobs to the correct destination queue6160 with custom mapping to different queues6161 behaves like migrating queues6162 migrates the jobs to the correct destination queue6163 with illegal JSON payload6164 behaves like migrating queues6165 migrates the jobs to the correct destination queue6166 when multiple workers are in the same queue6167 when the queue exists in mappings6168 behaves like migrating queues6169 migrates the jobs to the correct destination queue6170 when the queue doesnt exist in mappings6171 behaves like migrating queues6172 migrates the jobs to the correct destination queue6173Gitlab::Database::LoadBalancing::Session6174 .current6175 returns the current session6176 .clear_session6177 clears the current session6178 .without_sticky_writes6179 ignores sticky write events sent by a connection proxy6180 still is aware of write that happened6181 #use_primary?6182 returns true when the primary should be used6183 returns false when a secondary should be used6184 returns true when a write was performed6185 #use_primary6186 uses primary during block6187 continues using primary when write was performed6188 when primary was used before6189 restores state after use6190 when primary was not used6191 restores state after use6192 #performed_write?6193 returns true if a write was performed6194 #ignore_writes6195 ignores write events6196 does not prevent using primary if an exception is raised6197 #use_replicas_for_read_queries6198 sets the flag inside the block6199 restores state after use6200 when primary was used before6201 sets the flag inside the block6202 when a write query is performed before6203 sets the flag inside the block6204 #fallback_to_replicas_for_ambiguous_queries6205 sets the flag inside the block6206 restores state after use6207 when primary was used before6208 uses primary during block6209 when a write was performed before6210 uses primary during block6211 when primary was used inside the block6212 uses primary aterward6213 restores state after use6214 when a write was performed inside the block6215 uses primary aterward6216 restores state after use6217Packages::Maven::Metadatum6218 relationships6219 is expected to belong to package required: false6220 validations6221 is expected to validate that :package cannot be empty/falsy6222 #app_name6223 is expected to allow :app_name to be ‹"my-app"›6224 is expected not to allow :app_name to be ‹"my/app"›6225 is expected not to allow :app_name to be ‹"my(app)"›6226 #app_group6227 is expected to allow :app_group to be ‹"my.domain.com"›6228 is expected not to allow :app_group to be ‹"my/domain/com"›6229 is expected not to allow :app_group to be ‹"my(domain)"›6230 #path6231 is expected to allow :path to be ‹"my/domain/com/my-app"›6232 is expected to allow :path to be ‹"my/domain/com/my-app/1.0-SNAPSHOT"›6233 is expected not to allow :path to be ‹"my(domain)com.my-app"›6234 #maven_package_type6235 will not allow a package with a different package_type6236 with a package6237 .for_package_ids6238 is expected to contain exactly #<Packages::Maven::Metadatum id: 1, package_id: 42, created_at: "2023-03-30 11:59:48.546193208 +0000"...y.app", app_name: "my-app", app_version: "1.0-SNAPSHOT", path: "my/company/app/my-app/1.0-SNAPSHOT">, #<Packages::Maven::Metadatum id: 2, package_id: 42, created_at: "2023-03-30 11:59:48.552159297 +0000"...y.app", app_name: "my-app", app_version: "1.0-SNAPSHOT", path: "my/company/app/my-app/1.0-SNAPSHOT">, and #<Packages::Maven::Metadatum id: 3, package_id: 42, created_at: "2023-03-30 11:59:48.556384277 +0000"...y.app", app_name: "my-app", app_version: "1.0-SNAPSHOT", path: "my/company/app/my-app/1.0-SNAPSHOT">6239 .order_created6240 is expected to eq [#<Packages::Maven::Metadatum id: 4, package_id: 42, created_at: "2023-03-30 11:59:48.594433764 +0000....app", app_name: "my-app", app_version: "1.0-SNAPSHOT", path: "my/company/app/my-app/1.0-SNAPSHOT">]6241 .pluck_app_name6242 is expected to contain exactly "one", "two", and "three"6243 .with_path6244 is expected to contain exactly #<Packages::Maven::Metadatum id: 12, package_id: 42, created_at: "2023-03-30 11:59:48.693087437 +0000...7 +0000", app_group: "my.company.app", app_name: "my-app", app_version: "1.0-SNAPSHOT", path: "two">6245Resolvers::GroupPackagesResolver6246 #resolve6247 behaves like group and projects packages resolver6248 without sort6249 returns the proper packages6250 with sorting and filtering6251 CREATED_DESC6252 is expected to eq [#<Packages::Package id: 47, project_id: 1043, created_at: "2023-03-30 10:59:50.367603511 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 2556, status: "default", last_downloaded_at: nil>]6253 NAME_DESC6254 is expected to eq [#<Packages::Package id: 47, project_id: 1043, created_at: "2023-03-30 10:59:50.367603511 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 2556, status: "default", last_downloaded_at: nil>]6255 VERSION_DESC6256 is expected to eq [#<Packages::Package id: 47, project_id: 1043, created_at: "2023-03-30 10:59:50.367603511 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 2556, status: "default", last_downloaded_at: nil>]6257 TYPE_ASC6258 is expected to eq [#<Packages::Package id: 47, project_id: 1043, created_at: "2023-03-30 10:59:50.367603511 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 2556, status: "default", last_downloaded_at: nil>]6259 CREATED_ASC6260 is expected to eq [#<Packages::Package id: 45, project_id: 1043, created_at: "2023-03-29 11:59:49.355971741 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 2556, status: "error", last_downloaded_at: nil>]6261 NAME_ASC6262 is expected to eq [#<Packages::Package id: 45, project_id: 1043, created_at: "2023-03-29 11:59:49.355971741 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 2556, status: "error", last_downloaded_at: nil>]6263 VERSION_ASC6264 is expected to eq [#<Packages::Package id: 45, project_id: 1043, created_at: "2023-03-29 11:59:49.355971741 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 2556, status: "error", last_downloaded_at: nil>]6265 TYPE_DESC6266 is expected to eq [#<Packages::Package id: 45, project_id: 1043, created_at: "2023-03-29 11:59:49.355971741 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 2556, status: "error", last_downloaded_at: nil>]6267 filter by package_name6268 is expected to eq [#<Packages::Package id: 45, project_id: 1043, created_at: "2023-03-29 11:59:49.355971741 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 2556, status: "default", last_downloaded_at: nil>]6269 filter by package_type6270 is expected to eq [#<Packages::Package id: 45, project_id: 1043, created_at: "2023-03-29 11:59:49.355971741 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 2556, status: "default", last_downloaded_at: nil>]6271 filter by status6272 is expected to eq [#<Packages::Package id: 47, project_id: 1043, created_at: "2023-03-30 10:59:50.367603511 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 2556, status: "error", last_downloaded_at: nil>]6273 include_versionless6274 is expected to include #<Packages::Package id: 49, project_id: 1043, created_at: "2023-03-30 11:58:51.094280360 +0000", upda..., version: nil, package_type: "maven", creator_id: 2556, status: "default", last_downloaded_at: nil>6275 project_path sorting6276 filter by package_name6277 is expected to eq [#<Packages::Package id: 53, project_id: 1047, created_at: "2023-03-30 11:59:52.373255891 +0000", upd...1.5-SNAPSHOT", package_type: "maven", creator_id: 2556, status: "default", last_downloaded_at: nil>]6278 filter by package_type6279 is expected to eq [#<Packages::Package id: 50, project_id: 1043, created_at: "2023-03-30 11:59:52.354915932 +0000", upd...1.8-SNAPSHOT", package_type: "maven", creator_id: 2561, status: "default", last_downloaded_at: nil>]6280Settings6281 omniauth6282 defaults to enabled6283 .load_dynamic_cron_schedules!6284 generates a valid cron schedule6285 .build_ci_component_fqdn6286 host: "acme.com", port: 9090, relative_url: "/gitlab", result: "acme.com:9090/gitlab/"6287 is expected to eq "acme.com:9090/gitlab/"6288 host: "acme.com", port: 443, relative_url: "/gitlab", result: "acme.com/gitlab/"6289 is expected to eq "acme.com/gitlab/"6290 host: "acme.com", port: 443, relative_url: "", result: "acme.com/"6291 is expected to eq "acme.com/"6292 host: "acme.com", port: 9090, relative_url: "", result: "acme.com:9090/"6293 is expected to eq "acme.com:9090/"6294 host: "test", port: 9090, relative_url: "", result: "test:9090/"6295 is expected to eq "test:9090/"6296 .attr_encrypted_db_key_base_truncated6297 is a string with maximum 32 bytes size6298 .attr_encrypted_db_key_base_126299 when db key base secret is less than 12 bytes6300 expands db key base secret to 12 bytes6301 when key has multiple multi-byte UTF chars exceeding 12 bytes6302 does not use more than 32 bytes6303 .attr_encrypted_db_key_base_326304 when db key base secret is less than 32 bytes6305 expands db key base secret to 32 bytes6306 when db key base secret is 32 bytes6307 returns original value6308 when db key base contains multi-byte UTF character6309 does not use more than 32 bytes6310 when db key base multi-byte UTF chars exceeding 32 bytes6311 does not use more than 32 bytes6312 .cron_for_service_ping6313 returns correct crontab for some manually calculated example6314 returns min, hour, day in the valid range6315 .encrypted6316 defaults to using the encrypted_settings_key_base for the key6317 returns empty encrypted config when a key has not been set6318 .microsoft_graph_mailer6319 defaults6320 .repositories6321 sets up storage settings6322 .build_sidekiq_routing_rules6323 input_rules: nil, result: [["*", nil]]6324 is expected to eq [["*", nil]]6325 input_rules: [], result: [["*", nil]]6326 is expected to eq [["*", nil]]6327 input_rules: [["name=foobar", "foobar"]], result: [["name=foobar", "foobar"]]6328 is expected to eq [["name=foobar", "foobar"]]6329seed production settings6330 GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN is set in the environment6331Saved Runner Registration Token6332Saved CI JWT signing key6333 writes the token to the database6334 GITLAB_PROMETHEUS_METRICS_ENABLED is set in the environment6335 GITLAB_PROMETHEUS_METRICS_ENABLED is true6336Saved Prometheus metrics enabled flag6337Saved CI JWT signing key6338 prometheus_metrics_enabled is set to true6339 GITLAB_PROMETHEUS_METRICS_ENABLED is false6340Saved Prometheus metrics enabled flag6341Saved CI JWT signing key6342 prometheus_metrics_enabled is set to false6343 GITLAB_PROMETHEUS_METRICS_ENABLED is default6344Saved CI JWT signing key6345 prometheus_metrics_enabled is set to true6346 CI JWT signing key6347Saved CI JWT signing key6348 writes valid RSA key to the database6349Gitlab::Database::BulkUpdate6350 is possible to update all objects in a single query6351 is possible to update heterogeneous sets6352 error states6353 does not raise errors on valid inputs6354 expects a non-empty list of column names6355 expects all columns to be symbols6356 expects all columns to be valid columns on the tables6357 refuses to set ID6358 expects a non-empty mapping6359 expects all map values to be Hash instances6360 validates prepared_statements support6361 prepared_statements: false6362 sets multiple values6363 prepared_statements: true6364 sets multiple values6365Gitlab::Auth::OAuth::AuthHash6366 defaults6367 is expected to eq "ldap"6368 is expected to eql "CN=Onur Küçük,OU=Test,DC=example,DC=net"6369 is expected to eql "onur.küçük_ABC-123@example.net"6370 is expected to eql "oküçük"6371 is expected to eql "Onur Küçük"6372 is expected not to be empty6373 is expected to eq "some locality, some country"6374 email not provided6375 generates a temp email6376 username not provided6377 takes the first part of the email as username6378 name not provided6379 concats first and lastname as the name6380 custom username field provided6381 uses the custom field for the username6382 uses the default claim for the username when the custom claim is not found6383 uses the default claim for the username when the custom claim is empty6384 uses the default claim for the username when the custom claim is nil6385 auth_hash constructed with ASCII-8BIT encoding6386 forces utf8 encoding on uid6387 forces utf8 encoding on provider6388 forces utf8 encoding on name6389 forces utf8 encoding on username6390 forces utf8 encoding on email6391 forces utf8 encoding on password6392gitlab:praefect:replicas6393 replicas6394 when a valid project id is used as the argument6395 calls praefect info service's replicas method6396 prints out the expected row6397 when a non existent project id is used as the argument6398 does not call praefect info service's replicas method6399 when replicas throws an exception6400 aborts with the correct error message6401LabelPresenter6402 #edit_path6403 with group label6404 is expected to eq "/groups/group614/-/labels/1057/edit"6405 with project label6406 is expected to eq "/group614/project1071/-/labels/1058/edit"6407 with an admin label6408 is expected to eq "/admin/labels/1059/edit"6409 #destroy_path6410 with group label6411 is expected to eq "/groups/group614/-/labels/1060"6412 with project label6413 is expected to eq "/group614/project1071/-/labels/1061"6414 with an admin label6415 is expected to eq "/admin/labels/1062"6416 #filter_path6417 with group as context subject6418 is expected to eq "/groups/group614/-/issues?label_name%5B%5D=label107"6419 with project as context subject6420 is expected to eq "/group614/project1071/-/issues?label_name%5B%5D=label108"6421 #can_subscribe_to_label_in_different_levels?6422 returns true for group labels in project context6423 returns false for project labels in project context6424 #project_label?6425 with group label6426 is expected to be falsey6427 with project label6428 is expected to be truthy6429 #subject_name6430 with group label6431 is expected to eq "group614"6432 with project label6433 is expected to eq "project1071"6434 with an admin label6435 is expected to be nil6436 #subject_full_name6437 with group label6438 is expected to eq "group614"6439 with project label6440 is expected to eq "group614 / project1071"6441 with an admin label6442 is expected to be nil6443Types::AlertManagement::PrometheusIntegrationType6444 is expected to eq "AlertManagementPrometheusIntegration"6445 is expected to require graphql authorizations :admin_project6446 resolvers6447 behaves like has field with value6448 correctly renders the field6449 behaves like has field with value6450 correctly renders the field6451 behaves like has field with value6452 correctly renders the field6453 behaves like has field with value6454 correctly renders the field6455 behaves like has field with value6456 correctly renders the field6457 with alerting setting6458 behaves like has field with value6459 correctly renders the field6460 a group integration6461 field: id6462 is redacted6463 field: type6464 is redacted6465 field: name6466 is redacted6467 field: active6468 is redacted6469 field: token6470 is redacted6471 field: url6472 is redacted6473 field: apiUrl6474 is redacted6475RepositoryUpdateRemoteMirrorWorker6476 is labeled as idempotent6477 performs multiple times sequentially without raising an exception6478 #perform6479 calls out to the service to perform the update6480 does not do anything if the mirror was already updated6481 schedules a retry when the mirror is marked for retrying6482 clears the lease if there was an unexpected exception6483 retries 3 times for the worker to finish before rescheduling6484Ci::CreatePipelineService6485 pipeline logger6486 when the duration is under the threshold6487 does not create a log entry but it collects the data6488 when the durations exceeds the threshold6489 creates a log entry6490 when the pipeline is not persisted6491 creates a log entry6492 when the feature flag is disabled6493 does not create a log entry6494 when the size exceeds the threshold6495 creates a log entry6496 pipeline includes count6497 when the includes count exceeds the maximum6498 creates a log entry6499 when the includes count does not exceed the maximum6500 does not create a log entry but it collects the data6501 when the includes data is nil6502 does not create a log entry6503 when the pipeline config_metadata is nil6504 does not create a log entry but it collects the data6505Gitlab::Kubernetes::Helm::V3::InstallCommand6506 behaves like helm command generator6507 #generate_script6508 returns appropriate command6509 when rbac is true6510 behaves like helm command generator6511 #generate_script6512 returns appropriate command6513 when there is a pre-install script6514 behaves like helm command generator6515 #generate_script6516 returns appropriate command6517 when there is a post-install script6518 behaves like helm command generator6519 #generate_script6520 returns appropriate command6521 when there is no version6522 behaves like helm command generator6523 #generate_script6524 returns appropriate command6525 behaves like helm command6526 HELM_VERSION6527 is expected to match /\d+\.\d+\.\d+/6528 #env6529 is expected to be a kind of Hash6530 #rbac?6531 rbac is enabled6532 is expected to be truthy6533 rbac is not enabled6534 is expected to be falsey6535 #pod_resource6536 rbac is enabled6537 is expected to be an instance of Kubeclient::Resource6538 generates a pod that uses the tiller serviceAccountName6539 rbac is not enabled6540 is expected to be an instance of Kubeclient::Resource6541 generates a pod that uses the default serviceAccountName6542 #config_map_resource6543 returns a KubeClient resource with config map content for the application6544 #service_account_resource6545 rbac is enabled6546 generates a Kubeclient resource for the tiller ServiceAccount6547 rbac is not enabled6548 generates nothing6549 #cluster_role_binding_resource6550 rbac is enabled6551 generates a Kubeclient resource for the ClusterRoleBinding for tiller6552 binds the account in #service_account_resource6553 rbac is not enabled6554 generates nothing6555Groups::ProjectsRequiringAuthorizationsRefresh::OnTransferFinder6556 #execute6557 projects requiring authorizations refresh when a group is transferred (here, `Group B`)6558 includes only the expected projects6559Releases::EvidencePipelineFinder#execute6560 when the tag is passed6561 returns the evidence pipeline6562 when the ref is passed6563 returns the evidence pipeline6564 empty params6565 returns nil6566 params[:evidence_pipeline] is present6567 returns the passed evidence pipeline6568Gitlab::GithubImport::Markdown::Attachment6569 # order random6570 #inspect6571 returns attachment basic info6572 #doc_belongs_to_project?6573 when url relates to this project6574 is expected to eq true6575 when url is not related to this project6576 is expected to eq false6577 when url is a part of project blob6578 is expected to eq false6579 .from_markdown6580 when it's a doc attachment6581 returns instance with attachment info6582 when type is not in whitelist6583 is expected to eq nil6584 when domain name is unknown6585 is expected to eq nil6586 when URL is blank6587 is expected to eq nil6588 when it's an image attachment6589 returns instance with attachment info6590 when type is not in whitelist6591 is expected to eq nil6592 when domain name is unknown6593 is expected to eq nil6594 when URL is blank6595 is expected to eq nil6596 when it's an inline html node6597 returns instance with attachment info6598 when image src is not present6599 is expected to eq nil6600 #media?6601 when it is a media link6602 is expected to eq true6603 when it is not a media link6604 is expected to eq false6605 #part_of_project_blob?6606 when url is a part of project blob6607 is expected to eq true6608 when url is not a part of project blob6609 is expected to eq false6610Ci::BuildReportResultService6611 #execute6612 when build is finished6613 creates a build report result entry6614 tracks unique test cases parsed6615 and build has test report parsing errors6616 creates a build report result entry with suite error6617 does not track unique test cases parsed6618 when data has already been persisted6619 raises an error and do not persist the same data twice6620 when build is running and test report does not exist6621 does not persist data6622layouts/terms6623 behaves like a layout which reflects the application theme setting6624 as a themed layout6625 when no theme is explicitly selected6626 renders with the default theme6627 when user is authenticated & has selected a specific theme6628 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">6629 renders with the Indigo theme6630 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">6631 renders with the Light Indigo theme6632 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">6633 renders with the Blue theme6634 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">6635 renders with the Light Blue theme6636 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">6637 renders with the Green theme6638 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">6639 renders with the Light Green theme6640 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">6641 renders with the Red theme6642 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">6643 renders with the Light Red theme6644 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">6645 renders with the Gray theme6646 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">6647 renders with the Light Gray theme6648 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">6649 renders with the Dark Mode (alpha) theme6650Users::CreateService6651 #execute6652 with an admin user6653 when required parameters are provided6654 returns a persisted user6655 persists the given attributes6656 user is not confirmed if skip_confirmation param is not present6657 logs the user creation6658 executes system hooks6659 does not send a notification email6660 when the current_user is not persisted6661 persists the given attributes and sets created_by_id to nil6662 when force_random_password parameter is true6663 generates random password6664 when password_automatically_set parameter is true6665 persists the given attributes6666 when skip_confirmation parameter is true6667 confirms the user6668 when reset_password parameter is true6669 resets password even if a password parameter is given6670 sends a notification email6671 with nil user6672 persists the given attributes6673DeploymentCluster6674 is expected to belong to deployment required: true6675 is expected to belong to cluster required: true6676 is expected to have attributes {:cluster_id => 255, :deployment_id => 10, :kubernetes_namespace => "an-example-namespace"}6677 loose foreign key on deployment_clusters.cluster_id6678 behaves like cleanup by a loose foreign key6679 cleans up (delete or nullify) the model6680Jobs/SAST-IaC.gitlab-ci.yml6681 the created pipeline6682 on feature branch6683 creates the kics-iac-sast job6684 on merge request6685 has no jobs6686 SAST_DISABLED is set6687 on default branch6688 has no jobs6689 on feature branch6690 has no jobs6691Gitlab::Git::Blame6692 blaming a file6693 has the right number of lines6694 blaming a range6695 only returns the range6696 ISO-8859 encoding6697 converts to UTF-86698 unknown encoding6699 converts to UTF-86700 renamed file6701 includes the previous path6702search/show6703 when search term is supplied6704 renders the results partial6705 when the search page is opened6706 displays the title6707 does not render the results partial6708 unfurling support6709 search with full count6710 renders meta tags for a group6711 renders meta tags for both group and project6712 search without full count6713 renders meta tags for a group6714 renders meta tags for both group and project6715MergeRequests::Mergeability::Logger6716 # order random6717 #instrument6718 raises an error when block is not provided6719 when enabled6720 returns the block's value6721 records durations of instrumented operations6722 with multiple observations6723 records durations of instrumented operations6724 when its a query6725 with a single query6726 includes SQL metrics6727 with multiple queries6728 includes SQL metrics6729Gitlab::Kubernetes::Helm::V3::DeleteCommand6730 behaves like helm command generator6731 #generate_script6732 returns appropriate command6733 #pod_name6734 is expected to eq "uninstall-app-name"6735 behaves like helm command6736 HELM_VERSION6737 is expected to match /\d+\.\d+\.\d+/6738 #env6739 is expected to be a kind of Hash6740 #rbac?6741 rbac is enabled6742 is expected to be truthy6743 rbac is not enabled6744 is expected to be falsey6745 #pod_resource6746 rbac is enabled6747 is expected to be an instance of Kubeclient::Resource6748 generates a pod that uses the tiller serviceAccountName6749 rbac is not enabled6750 is expected to be an instance of Kubeclient::Resource6751 generates a pod that uses the default serviceAccountName6752 #config_map_resource6753 returns a KubeClient resource with config map content for the application6754 #service_account_resource6755 rbac is enabled6756 generates a Kubeclient resource for the tiller ServiceAccount6757 rbac is not enabled6758 generates nothing6759 #cluster_role_binding_resource6760 rbac is enabled6761 generates a Kubeclient resource for the ClusterRoleBinding for tiller6762 binds the account in #service_account_resource6763 rbac is not enabled6764 generates nothing6765 #delete_command6766 deletes the release6767Gitlab::Email::FailureHandler6768 email processing errors6769 error: Gitlab::Email::UnknownIncomingEmail, message: "We couldn't figure out what the email is for", can_retry: false6770 sends out a rejection email for Gitlab::Email::UnknownIncomingEmail6771 strips out the body before passing to EmailRejectionMailer6772 error: Gitlab::Email::SentNotificationNotFoundError, message: "We couldn't figure out what the email is in reply to", can_retry: false6773 sends out a rejection email for Gitlab::Email::SentNotificationNotFoundError6774 strips out the body before passing to EmailRejectionMailer6775 error: Gitlab::Email::ProjectNotFound, message: "We couldn't find the project", can_retry: false6776 sends out a rejection email for Gitlab::Email::ProjectNotFound6777 strips out the body before passing to EmailRejectionMailer6778 error: Gitlab::Email::EmptyEmailError, message: "It appears that the email is blank", can_retry: true6779 sends out a rejection email for Gitlab::Email::EmptyEmailError6780 strips out the body before passing to EmailRejectionMailer6781 error: Gitlab::Email::UserNotFoundError, message: "We couldn't figure out what user corresponds to the email", can_retry: false6782 sends out a rejection email for Gitlab::Email::UserNotFoundError6783 strips out the body before passing to EmailRejectionMailer6784 error: Gitlab::Email::UserBlockedError, message: "Your account has been blocked", can_retry: false6785 sends out a rejection email for Gitlab::Email::UserBlockedError6786 strips out the body before passing to EmailRejectionMailer6787 error: Gitlab::Email::UserNotAuthorizedError, message: "You are not allowed to perform this action", can_retry: false6788 sends out a rejection email for Gitlab::Email::UserNotAuthorizedError6789 strips out the body before passing to EmailRejectionMailer6790 error: Gitlab::Email::NoteableNotFoundError, message: "The thread you are replying to no longer exists", can_retry: false6791 sends out a rejection email for Gitlab::Email::NoteableNotFoundError6792 strips out the body before passing to EmailRejectionMailer6793 error: Gitlab::Email::InvalidAttachment, message: "Could not deal with that", can_retry: false6794 sends out a rejection email for Gitlab::Email::InvalidAttachment6795 strips out the body before passing to EmailRejectionMailer6796 error: Gitlab::Email::InvalidRecordError, message: "The note could not be created for the following reasons", can_retry: true6797 sends out a rejection email for Gitlab::Email::InvalidRecordError6798 strips out the body before passing to EmailRejectionMailer6799 error: Gitlab::Email::EmailTooLarge, message: "it is too large", can_retry: false6800 sends out a rejection email for Gitlab::Email::EmailTooLarge6801 strips out the body before passing to EmailRejectionMailer6802 non-processing errors6803 error: Gitlab::Email::AutoGeneratedEmailError6804 does not send a rejection email for6805 error: #<ActiveRecord::StatementTimeout: StatementTimeout>6806 does not send a rejection email for StatementTimeout6807 error: #<RateLimitedService::RateLimitedError: RateLimitedService::RateLimitedError>6808 does not send a rejection email for RateLimitedService::RateLimitedError6809Packages::Debian::CreateDistributionService6810 within a projet6811 behaves like Debian Create Distribution Service6812 with only the codename param6813 behaves like Create Debian Distribution6814 returns ServiceResponse6815 with codename, components and architectures6816 behaves like Create Debian Distribution6817 returns ServiceResponse6818 with invalid suite6819 behaves like Create Debian Distribution6820 returns ServiceResponse6821 with invalid component name6822 behaves like Create Debian Distribution6823 returns ServiceResponse6824 with invalid architecture name6825 behaves like Create Debian Distribution6826 returns ServiceResponse6827 within a group6828 behaves like Debian Create Distribution Service6829 with only the codename param6830 behaves like Create Debian Distribution6831 returns ServiceResponse6832 with codename, components and architectures6833 behaves like Create Debian Distribution6834 returns ServiceResponse6835 with invalid suite6836 behaves like Create Debian Distribution6837 returns ServiceResponse6838 with invalid component name6839 behaves like Create Debian Distribution6840 returns ServiceResponse6841 with invalid architecture name6842 behaves like Create Debian Distribution6843 returns ServiceResponse6844WebHooks::LogExecutionService6845 #execute6846 logs the data6847 updates the last failure6848 obtaining an exclusive lease6849 updates failure state using a lease that ensures fresh state is written6850 when a lease cannot be obtained6851 response_category: :ok, executable: true, needs_updating: false6852 raises an error if the hook needs to be updated6853 response_category: :ok, executable: false, needs_updating: true6854 raises an error if the hook needs to be updated6855 response_category: :failed, executable: true, needs_updating: true6856 raises an error if the hook needs to be updated6857 response_category: :failed, executable: false, needs_updating: false6858 raises an error if the hook needs to be updated6859 response_category: :error, executable: true, needs_updating: true6860 raises an error if the hook needs to be updated6861 response_category: :error, executable: false, needs_updating: false6862 raises an error if the hook needs to be updated6863 when response_category is :ok6864 does not increment the failure count6865 does not change the disabled_until attribute6866 when the hook had previously failed6867 resets the failure count6868 when response_category is :failed6869 increments the failure count6870 does not change the disabled_until attribute6871 does not allow the failure count to overflow6872 when response_category is :error6873 backs off6874 with url_variables6875 logs the data and masks response headers6876 with X-Gitlab-Token6877 redacts the token6878Gitlab::GithubImport::Importer::Events::ChangedLabel6879 with Issue6880 when importing event with associated label6881 when importing a labeled event6882 behaves like new event6883 creates a new label event6884 when importing an unlabeled event6885 behaves like new event6886 creates a new label event6887 when importing event without associated label6888 behaves like new event6889 creates a new label event6890 with MergeRequest6891 when importing event with associated label6892 when importing a labeled event6893 behaves like new event6894 creates a new label event6895 when importing an unlabeled event6896 behaves like new event6897 creates a new label event6898 when importing event without associated label6899 behaves like new event6900 creates a new label event6901Gitlab::Database::Reindexing::Coordinator6902 #perform6903 when executed during the weekend6904 locking6905 acquires a lock while reindexing6906 does not perform reindexing actions if lease is not granted6907 notifications6908 sends #notify_start before reindexing6909 sends #notify_end after reindexing and updating the action is done6910 action tracking6911 calls #finish on the action6912 upon error, it still calls finish and raises the error6913 when executed during the week6914 does not start reindexing6915 #drop6916 when executed during the weekend6917 when exclusive lease is granted6918 drops the index with lock retries6919 when exclusive lease is not granted6920 does not drop the index6921 when executed during the week6922 does not start reindexing6923Ci::RetryPipelineWorker6924 #perform6925 when pipeline exists6926 when user exists6927 retries the pipeline6928 when user does not exist6929 does not retry the pipeline6930 when pipeline does not exist6931 returns nil6932Terraform::States::TriggerDestroyService6933 #execute6934 marks the state as deleted and schedules a cleanup worker6935 within a database transaction6936 does not raise an EnqueueFromTransactionError6937 user does not have permission6938 does not modify the state6939 state is locked6940 does not modify the state6941Gitlab::Database::AsyncIndexes::IndexCreator6942 #perform6943 creates the index while controlling statement timeout6944 removes the index preparation record from postgres_async_indexes6945 skips logic if not able to acquire exclusive lease6946 logs messages around execution6947 when the index already exists6948 skips index creation6949 removes the index preparation record from postgres_async_indexes6950 logs an appropriate message6951Jobs/Code-Quality.gitlab-ci.yml6952 the created pipeline6953 on master6954 creates the code_quality job6955 on another branch6956 creates the code_quality job6957 on tag6958 creates the code_quality job6959 on merge request6960 has no jobs6961 CODE_QUALITY_DISABLED is set6962 on master6963 has no jobs6964 on another branch6965 has no jobs6966 on tag6967 has no jobs6968Gitlab::SidekiqConfig::Worker6969 #ee?6970 returns the EE status set on creation6971 #jh?6972 returns the JH status set on creation6973 #==6974 defines two workers as equal if their YAML representations are equal6975 returns true when a worker is compared with its YAML representation6976 delegations6977 delegates feature_category_not_owned? to the worker class6978 delegates generated_queue_name to the worker class6979 delegates get_feature_category to the worker class6980 delegates get_weight to the worker class6981 delegates get_worker_resource_boundary to the worker class6982 delegates get_urgency to the worker class6983 delegates queue_namespace to the worker class6984 delegates worker_has_external_dependencies? to the worker class6985 sorting6986 sorts queues with a namespace before those without a namespace6987 sorts alphabetically by queue6988 YAML encoding6989 encodes the worker in YAML as a hash of the queue6990 #namespace_and_weight6991 returns a namespace, weight pair for the worker6992 #queue_and_weight6993 returns a queue, weight pair for the worker6994Every Sidekiq worker6995 does not use the default queue6996 uses the cronjob queue when the worker runs as a cronjob6997 has its queue in Gitlab::SidekiqConfig::QUEUE_CONFIG_PATHS6998 has its queue or namespace in config/sidekiq_queues.yml6999 has a value for loggable_arguments7000 feature category declarations7001 has a feature_category attribute7002 has a feature_category that maps to a value in feature_categories.yml7003 is (exclusively) memory-bound or high urgency, not both7004 has (exclusively) external dependencies or is high urgency, not both7005 retries7006 uses the default number of retries for new jobs7007 uses zero retries for cronjobs7008 uses specified numbers of retries for workers with exceptions encoded here7009gitlab:shell rake tasks7010 install task7011 installs and compiles gitlab-shell7012 setup task7013 writes authorized keys into the file7014AuthorizedProjectUpdate::ProjectRecalculateService#execute7015 returns success7016 when there are no changes to be made7017 does not change authorizations7018 when there are changes to be made7019 when addition is required7020 adds a new authorization record7021 adds a new authorization record with the correct access level7022 when removal is required7023 removes the authorization record7024 when an update in access level is required7025 updates the authorization of the user to the correct access level7026InstanceConfigurationHelper7027 #instance_configuration_cell_html7028 boolean are valid values to display7029 if not block is passed7030 returns the parameter if present7031 returns "-" if the parameter is blank7032 if a block is passed7033 returns the result of the block7034 returns "-" if the parameter is blank7035 #instance_configuration_human_size_cell7036 returns "-" if the parameter is blank7037 accepts the value in bytes7038 returns the value in human size readable format7039 #instance_configuration_disabled_cell_html7040 returns "-" if parameter is 07041 return parameter if not 07042Gitlab::ImportExport::UploadsSaver7043 bundle a project Git repo7044 legacy storage7045 saves the uploads successfully7046 copies the uploads to the export path7047 hashed storage7048 saves the uploads successfully7049 copies the uploads to the export path7050Gitlab::Metrics::Dashboard::Validator::Errors7051 Gitlab::Metrics::Dashboard::Validator::Errors::SchemaValidationError7052 empty error hash7053 uses default error message7054 formatted message7055 for root object7056 when required keys are missing7057 is expected to eq "root is missing required keys: one"7058 when there is type mismatch7059 on type: null7060 is expected to eq "'property_name' at root is not of type: null"7061 on type: string7062 is expected to eq "'property_name' at root is not of type: string"7063 on type: boolean7064 is expected to eq "'property_name' at root is not of type: boolean"7065 on type: integer7066 is expected to eq "'property_name' at root is not of type: integer"7067 on type: number7068 is expected to eq "'property_name' at root is not of type: number"7069 on type: array7070 is expected to eq "'property_name' at root is not of type: array"7071 on type: object7072 is expected to eq "'property_name' at root is not of type: object"7073 for nested object7074 when required keys are missing7075 is expected to eq "/nested_objects/0 is missing required keys: two"7076 when there is type mismatch7077 on type: null7078 is expected to eq "'property_name' at /nested_objects/0 is not of type: null"7079 on type: string7080 is expected to eq "'property_name' at /nested_objects/0 is not of type: string"7081 on type: boolean7082 is expected to eq "'property_name' at /nested_objects/0 is not of type: boolean"7083 on type: integer7084 is expected to eq "'property_name' at /nested_objects/0 is not of type: integer"7085 on type: number7086 is expected to eq "'property_name' at /nested_objects/0 is not of type: number"7087 on type: array7088 is expected to eq "'property_name' at /nested_objects/0 is not of type: array"7089 on type: object7090 is expected to eq "'property_name' at /nested_objects/0 is not of type: object"7091 when data does not match pattern7092 is expected to eq "'property_name' at /nested_objects/0 does not match pattern: aa.*"7093 when data does not match format7094 is expected to eq "'property_name' at /nested_objects/0 does not match format: date-time"7095 when data is not const7096 is expected to eq "'property_name' at /nested_objects/0 is not: \"one\""7097 when data is not included in enum7098 is expected to eq "'property_name' at /nested_objects/0 is not one of: [\"one\", \"two\"]"7099 when data is not included in enum7100 is expected to eq "'property_name' at /nested_objects/0 is invalid: error_type=unknown"7101 Gitlab::Metrics::Dashboard::Validator::Errors::DuplicateMetricIds7102 has custom error message7103Ci::JobTokenScope::AddProjectService7104 #execute7105 behaves like editable job token scope7106 when user does not have permissions to edit the job token scope7107 behaves like returns error7108 returns an error response7109 when user has permissions to edit the job token scope7110 when target project is not provided7111 behaves like returns error7112 returns an error response7113 when target project is provided7114 when user does not have permissions to read the target project7115 behaves like returns error7116 returns an error response7117 when user has permissions on source and target projects7118 behaves like adds project7119 adds the project to the scope7120 when token scope is disabled7121 creates an outbound link by default7122 behaves like adds project7123 adds the project to the scope7124 when direction is specified7125 when the direction is outbound7126 is expected to eq "outbound"7127 when the direction is inbound7128 is expected to eq "inbound"7129 when target project is same as the source project7130 behaves like returns error7131 returns an error response7132Mutations::Terraform::State::Unlock7133 is expected to eq "TerraformStateUnlock"7134 is expected to require graphql authorizations :admin_terraform_state7135 #resolve7136 user does not have permission7137 raises an error7138 user has permission7139 unlocks the state7140 state is already unlocked7141 does not modify the state7142 with invalid params7143 raises an error7144Every API endpoint7145 feature categories7146 has feature categories7147 recognizes the feature categories7148 has no routes with multiple paths7149 doesn't define or exclude categories on removed actions7150Gitlab::OtpKeyRotator7151 #rotate!7152 stores the calculated values in a spreadsheet7153 new key is too short7154 is expected to raise ArgumentError7155 new key is the same as the old key7156 is expected to raise ArgumentError7157 #rollback!7158 updates rows to the old value7159Gitlab::GitalyClient::Call7160 #call7161 when the response is not an enumerator7162 returns the response7163 stores timings and call details7164 when err7165 stores timings and call details7166 when the response is an enumerator7167 returns a consumable enumerator7168 time measurements7169 records full rpc stream consumption7170 records partial rpc stream consumption7171 when err7172 records partial rpc stream consumption7173Ci::DailyBuildGroupReportResultService#execute7174 creates daily code coverage record for each job in the pipeline that has coverage value7175 creates a project_ci_feature_usage record for the pipeline project7176 when there are multiple builds with the same group name that report coverage7177 creates daily code coverage record with the average as the value7178 when there is an existing daily code coverage for the matching date, project, ref_path, and group name7179 updates the existing record's coverage value and last_pipeline_id7180 does not create a new project_ci_feature_usage record for the pipeline project7181 when the ID of the pipeline is older than the last_pipeline_id7182 updates the existing daily code coverage records7183 when pipeline has no builds with coverage7184 does nothing7185 when pipeline ref_path is the project default branch7186 sets default branch to true7187 creates a project_ci_feature_usage record for the pipeline project for default branch7188 when pipeline ref_path is not the project default branch7189 sets default branch to false7190BlobViewer::License7191 #license7192 returns the blob project repository license7193 #render_error7194 when there is no license7195 returns :unknown_license7196 when there is a license7197 returns nil7198MarkdownContentRewriterService7199 #initialize7200 raises an error if source_parent is not a Project7201 raises an error if field does not have cached markdown7202 #execute7203 when content does not need a rewrite7204 returns original content and cached html7205 when content needs a rewrite7206 calls the rewriter classes successfully7207 when content has references7208 rewrites content7209 when content contains an upload7210 rewrites content7211 #safe_to_copy_markdown?7212 when content has references7213 is expected to eq false7214 when content has uploaded file references7215 is expected to eq false7216 when content does not have references or uploads7217 is expected to eq true7218Gitlab::Kubernetes::Helm::V2::BaseCommand7219 HELM_VERSION7220 is expected to match /^2\.\d+\.\d+$/7221 #env7222 is expected to include {:TILLER_NAMESPACE => "gitlab-managed-apps"}7223 behaves like helm command generator7224 #generate_script7225 returns appropriate command7226 #pod_name7227 is expected to eq "install-test-class-name"7228 behaves like helm command7229 HELM_VERSION7230 is expected to match /\d+\.\d+\.\d+/7231 #env7232 is expected to be a kind of Hash7233 #rbac?7234 rbac is enabled7235 is expected to be truthy7236 rbac is not enabled7237 is expected to be falsey7238 #pod_resource7239 rbac is enabled7240 is expected to be an instance of Kubeclient::Resource7241 generates a pod that uses the tiller serviceAccountName7242 rbac is not enabled7243 is expected to be an instance of Kubeclient::Resource7244 generates a pod that uses the default serviceAccountName7245 #config_map_resource7246 returns a KubeClient resource with config map content for the application7247 #service_account_resource7248 rbac is enabled7249 generates a Kubeclient resource for the tiller ServiceAccount7250 rbac is not enabled7251 generates nothing7252 #cluster_role_binding_resource7253 rbac is enabled7254 generates a Kubeclient resource for the ClusterRoleBinding for tiller7255 binds the account in #service_account_resource7256 rbac is not enabled7257 generates nothing7258Clusters::Agents::ActivityEventPolicy7259 rules7260 reporter7261 is expected to be disallowed :admin_cluster7262 is expected to be disallowed :read_cluster7263 developer7264 is expected to be disallowed :admin_cluster7265 is expected to be allowed :read_cluster7266 maintainer7267 is expected to be allowed :admin_cluster7268 is expected to be allowed :read_cluster7269Sidebars::UserSettings::Menus::SavedRepliesMenu7270 # order random7271 behaves like User settings menu7272 does not contain any sub menu7273 renders the correct link7274 renders the correct title7275 renders the correct icon7276 defines correct active route7277 #render?7278 when saved replies are enabled7279 when user is logged in7280 does not render7281 when user is not logged in7282 does not render7283 when saved replies are disabled7284 when user is logged in7285 renders7286 when user is not logged in7287 does not render7288Pajamas::CheckboxTagComponent7289 with default options7290 renders unchecked checkbox with value of `1`7291 does not render help text7292 with custom options7293 renders checked checkbox with value of `yes`7294 adds CSS class to label7295 with `help_text` slot7296 renders unchecked checkbox with value of `1`7297 renders help text7298Gitlab::Usage::Metrics::Instrumentations::CountUsersWithMlCandidatesMetric7299 # order random7300 behaves like a correct instrumented metric value and query7301 behaves like a correct instrumented metric value7302 has correct value7303 behaves like a correct instrumented metric query7304 has correct generate query7305Gitlab::GithubImport::Importer::Events::ChangedReviewer7306 # order random7307 #execute7308 behaves like process review_requested & review_request_removed MR events7309 when importing a review_requested event7310 behaves like create expected notes7311 creates expected note7312 creates expected system note metadata7313 when importing a review_request_removed event7314 behaves like create expected notes7315 creates expected note7316 creates expected system note metadata7317Packages::Debian::ProjectArchitecture7318 behaves like Debian Distribution Architecture7319 relationships7320 is expected to belong to distribution class_name => Packages::Debian::ProjectDistribution required: false inverse_of => architectures7321 is expected to have many files class_name => Packages::Debian::ProjectComponentFile inverse_of => architecture7322 validations7323 #distribution7324 is expected to validate that :distribution cannot be empty/falsy7325 #name7326 is expected to validate that :name cannot be empty/falsy7327 is expected to allow :name to be ‹"amd64"›7328 is expected to allow :name to be ‹"kfreebsd-i386"›7329 is expected not to allow :name to be ‹"-a"›7330 is expected not to allow :name to be ‹"AMD64"›7331 scopes7332 .ordered_by_name7333 is expected to contain exactly #<Packages::Debian::ProjectArchitecture id: 9, created_at: "2023-03-30 12:01:21.427523000 +0000", updated_at: "2023-03-30 12:01:21.427523000 +0000", distribution_id: 6, name: "name1"> and #<Packages::Debian::ProjectArchitecture id: 10, created_at: "2023-03-30 12:01:21.432281195 +0000", updated_at: "2023-03-30 12:01:21.432281195 +0000", distribution_id: 6, name: "name2">7334 .with_distribution7335 is expected to contain exactly #<Packages::Debian::ProjectArchitecture id: 9, created_at: "2023-03-30 12:01:21.427523000 +0000", updated_at: "2023-03-30 12:01:21.427523000 +0000", distribution_id: 6, name: "name1"> and #<Packages::Debian::ProjectArchitecture id: 10, created_at: "2023-03-30 12:01:21.432281195 +0000", updated_at: "2023-03-30 12:01:21.432281195 +0000", distribution_id: 6, name: "name2">7336 .with_name7337 is expected to contain exactly #<Packages::Debian::ProjectArchitecture id: 9, created_at: "2023-03-30 12:01:21.427523000 +0000", updated_at: "2023-03-30 12:01:21.427523000 +0000", distribution_id: 6, name: "name1"> and #<Packages::Debian::ProjectArchitecture id: 11, created_at: "2023-03-30 12:01:21.630880321 +0000", updated_at: "2023-03-30 12:01:21.630880321 +0000", distribution_id: 7, name: "name1">7338BulkImports::ImportsFinder7339 #execute7340 returns a list of imports associated with user7341 when status is specified7342 returns a list of import entities filtered by status7343 when invalid status is specified7344 does not filter entities by status7345 when order is specifed7346 when order is specified as asc7347 returns entities sorted ascending7348 when order is specified as desc7349 returns entities sorted descending7350Gitlab::Database::Reindexing::ReindexAction7351 is expected to be a kind of Gitlab::Database::SharedModel(abstract)7352 .create_for7353 creates a new record for the given index7354 #finish7355 sets #action_end7356 sets #ondisk_size_bytes_end after reloading the index record7357 saves the record7358 setting #state7359 sets #state to finished if not given7360 sets #state to finished if not set to started7361 does not change state if set to failed7362Notes::ResolveService7363 #execute7364 resolves the note7365 sends notifications if all discussions are resolved7366Gitlab::Kubernetes7367 #container_exec_url7368 is expected to eq "wss"7369 is expected to eq "example.com"7370 is expected to eq "/api/v1/namespaces/default/pods/pod1/exec"7371 is expected to eq "container=container1&stderr=true&stdin=true&stdout=true&tty=true&command=sh&command=-c&command=bash+%7C%7C+sh"7372 with a HTTP API URL7373 is expected to eq "ws"7374 with a path prefix in the API URL7375 is expected to eq "/prefix/api/v1/namespaces/default/pods/pod1/exec"7376 with arguments that need urlencoding7377 is expected to eq "/api/v1/namespaces/default%20namespace/pods/pod%201/exec"7378 is expected to match /\Acontainer=container\+1&/7379 #filter_by_label7380 returns matching labels7381 #filter_by_annotation7382 returns matching labels7383 #filter_by_project_environment7384 returns matching env label7385 #filter_by_legacy_label7386 returns matching labels7387 #to_kubeconfig7388 is expected to eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"certificate-authority-data"=>"UEVN", "server"=>"https..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}7389 when CA PEM is not provided7390 is expected to eq {"apiVersion"=>"v1", "clusters"=>[{"cluster"=>{"server"=>"https://kube.domain.com"}, "name"=>"gitlab-..."gitlab-deploy", "kind"=>"Config", "users"=>[{"name"=>"gitlab-deploy", "user"=>{"token"=>"TOKEN"}}]}7391 when token is not provided7392 is expected to be nil7393 #add_terminal_auth7394 adds authentication parameters to a hash7395SnippetInputActionCollection7396 is expected to delegate #empty? to the #actions object7397 is expected to delegate #any? to the #actions object7398 is expected to delegate #[] to the #actions object7399 #to_commit_actions7400 translates all actions to commit actions7401 #valid?7402 returns true7403 when any of the actions is invalid7404 returns false7405 when allowed_actions param is passed7406 builds SnippetInputAction with that param7407BulkImports::Common::Pipelines::EntityFinisher7408WARNING: An expectation of `:try` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/lib/bulk_imports/common/pipelines/entity_finisher_spec.rb:27:in `block (2 levels) in <top (required)>'.7409 updates the entity status to finished7410 when entity is in a final finished or failed state7411 does nothing7412 does nothing7413 when all entity trackers failed7414 marks entity as failed7415Gitlab::JWTToken7416 behaves like a gitlab jwt token7417 #secret7418 is expected to eq "9b9dbfd8170dafb0bbe69ddb0b792641d72142ac3fd8069b3e9574d2d05f3430"7419 #decode7420 with a custom payload7421 returns the correct token7422 returns nil and logs the exception after expiration7423Gitlab::Diff::LineMapper7424 #old_to_new7425 with a diff file7426 returns the new line number for the old line number7427 without a diff file7428 returns the same line number7429 #new_to_old7430 with a diff file7431 returns the old line number for the new line number7432 without a diff file7433 returns the same line number7434Gitlab::GithubImport::Importer::Events::ChangedMilestone7435 #execute7436 with Issue7437 when importing a milestoned event7438 behaves like new event7439 creates a new milestone event7440 when importing demilestoned event7441 behaves like new event7442 creates a new milestone event7443 with MergeRequest7444 when importing a milestoned event7445 behaves like new event7446 creates a new milestone event7447 when importing demilestoned event7448 behaves like new event7449 creates a new milestone event7450MergeRequests::PushedBranchesService7451 when branches pushed7452 returns only branches which have a open and closed merge request7453 when tags pushed7454 returns empty result without any SQL query performed7455Gitlab::Ci::Status::Build::Action7456 #label7457 when status has action7458 does not append text7459 when status does not have action7460 appends text about action not allowed7461 .matches?7462 when build is playable action7463 is a correct match7464 when build is not playable action7465 does not match7466 #badge_tooltip7467 returns the status7468notifications routing7469 routes to #show7470 routes to #update7471 routes to group #update7472Banzai::Filter::InlineObservabilityFilter7473 # order random7474 #filter?7475 when the document contains a valid observability link7476 leaves the original link unchanged7477 appends an observability charts placeholder7478 with duplicate URLs7479 embeddable_url: "not-nil"7480 calls Gitlab::Observability.embeddable_url only once7481 embeddable_url: nil7482 calls Gitlab::Observability.embeddable_url only once7483 when the embeddable url is nil7484 behaves like does not embed observabilty7485 leaves the original link unchanged7486 does not append an observability charts placeholder7487 when the document has an unrecognised link7488 does not build the embeddable url7489 behaves like does not embed observabilty7490 leaves the original link unchanged7491 does not append an observability charts placeholder7492 when feature flag is disabled7493 does not build the embeddable url7494 behaves like does not embed observabilty7495 leaves the original link unchanged7496 does not append an observability charts placeholder7497events/event/_common.html.haml7498 # order random7499 when it is an issue event7500 renders the correct url7501 uses issue_type for the target_name7502 when it is a work item event7503 renders the correct url with iid7504 uses issue_type for the target_name7505Users::CreditCardValidation7506 is expected to belong to user required: false7507 is expected to validate that the length of :holder_name is at most 507508 is expected to validate that the length of :network is at most 327509 is expected to validate that :last_digits looks like a number less than or equal to 99997510 .similar_records7511 returns matches with the same last_digits, expiration and network, ordered by credit_card_validated_at7512 #similar_holder_names_count7513 when holder_name is present7514 returns the count of cards with similar case insensitive holder names7515 when holder_name is nil7516 returns 07517Events::DestroyService7518 #execute7519 deletes the events7520 batch delete7521 splits delete queries into batches7522 when an error is raised while deleting the records7523 returns error7524 does not delete events7525API::Entities::Ml::Mlflow::Run7526 # order random7527 presents the params7528 presents metrics correctly7529 has run key7530 presents the metrics7531 has the id7532 presents params correctly7533 when candidate has no metrics7534 returns empty data7535 when candidate has no params7536 data is empty7537Users::MigrateRecordsToGhostUserInBatchesService7538 # order random7539 #execute7540 stops when execution time limit reached7541 calls Users::MigrateRecordsToGhostUserService7542 process jobs ordered by the consume_after timestamp7543 reschedules job in case of an error7544Gitlab::Analytics::CycleAnalytics::StageEvents::IssueCreated7545 behaves like value stream analytics event7546 is expected to be a kind of String7547 is expected to be a kind of Symbol7548 is expected to include ApplicationRecord(abstract)7549 is expected to respond to #timestamp_projection7550 is expected to respond to #html_description7551 is expected to be a kind of Array7552 #apply_query_customization7553 expects an ActiveRecord::Relation object as argument and returns a modified version of it7554 #hash_code7555 returns a hash that uniquely identifies an event7556 does not differ when the same object is built with the same params7557 behaves like LEFT JOIN-able value stream analytics event7558 can use the event as LEFT JOIN7559 when looking at the record with data7560 contains the timestamp expression7561 when looking at the record without data7562 returns nil for the timestamp expression7563Ci::AppendBuildTraceService7564 build trace append is successful7565 returns a correct stream size and status code7566 when could not correctly append to a trace7567 responds with content range violation and data stored7568 logs exception if build has live trace7569 when the trace size is exceeded7570 returns 403 status code7571 when debug_trace param is provided7572 when sending the first trace7573 updates build metadata debug_trace_enabled7574 when sending the second trace7575 does not update build metadata debug_trace_enabled7576RolloutStatuses::IngressEntity7577 exposes canary weight75786_validations7579 validate_storages_config7580 with correct settings7581 passes through7582 with invalid storage names7583 throws an error7584Gitlab::Database::PostgresqlAdapter::EmptyQueryPing7585 #active?7586 uses an empty query to check liveness7587 returns true if no error was signaled7588 returns false when an error occurs7589Terraform::States::DestroyWorker7590 #perform7591 calls the deletion service7592 state no longer exists7593 completes without error7594Mattermost::Client7595 JSON parse error7596 yields an error on malformed JSON7597/builds/gitlab-org/gitlab/spec/lib/mattermost/client_spec.rb:12: warning: redefining constant Struct::Request7598 shows a client error if the request was unsuccessful7599CrossDatabaseModification7600 .transaction7601 adds the current gitlab schema to gitlab_transactions_stack7602 yields7603Gitlab::UrlBlockers::UrlAllowlist7604 #domain_allowed?7605 returns true if domains present in allowlist7606 returns false when domain is blank7607 with ports7608 returns true if domain and ports present in allowlist7609 #ip_allowed?7610 returns true if ips present in allowlist7611 returns false when ip is blank7612 with ip ranges in allowlist7613 does not allowlist ipv4 range when not in allowlist7614 allowlists all ipv4s in the range when in allowlist7615 does not allowlist ipv6 range when not in allowlist7616 allowlists all ipv6s in the range when in allowlist7617 does not allowlist IPs outside the range7618 with ports7619 returns true if ip and ports present in allowlist7620RuboCop::Cop::Migration::AddColumnsToWideTables7621 # order random7622 when outside of a migration7623 does not register any offenses7624 when in a migration7625 with wide tables7626 registers an offense when adding a column to a wide table7627 registers an offense when adding a column with default to a wide table7628 registers an offense when adding a reference7629 registers an offense when adding timestamps7630 register no offense when using other method7631 with a regular table7632 registers no offense for notes7633Gitlab::DataBuilder::FeatureFlag7634 .build7635 is expected to be a kind of Hash7636 is expected to eq "feature_flag"7637 contains the correct object attributes7638Packages::Pypi::SimpleIndexPresenter7639 #body7640 for project7641 behaves like pypi package presenter7642 version: ">=2.7", expected_version: ">=2.7"7643 contains links for all packages7644 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>"7645 contains links for all packages7646 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0"7647 contains links for all packages7648 for group7649 behaves like pypi package presenter7650 version: ">=2.7", expected_version: ">=2.7"7651 contains links for all packages7652 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>"7653 contains links for all packages7654 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0"7655 contains links for all packages7656 with package files pending destruction7657 is expected not to include "package_pending_destruction"7658Gitlab::LegacyGithubImport::UserFormatter7659 #gitlab_id7660 returns nil when GitHub user is not a GitLab user7661 when GitHub user is a GitLab user7662 return GitLab user id when user associated their account with GitHub7663 returns GitLab user id when user confirmed primary email matches GitHub email7664 returns GitLab user id when user unconfirmed primary email matches GitHub email7665 returns GitLab user id when user confirmed secondary email matches GitHub email7666 returns nil when user unconfirmed secondary email matches GitHub email7667ClusterEntity7668 #as_json7669 when provider type is gcp7670 when status is creating7671 has corresponded data7672 when status is errored7673 has corresponded data7674 when provider type is user7675 has corresponded data7676Gitlab::GithubImport::Importer::PullRequestsMergedByImporter7677 is expected to includes the Gitlab::GithubImport::ParallelScheduling module7678 #representation_class7679 is expected to eq Gitlab::GithubImport::Representation::PullRequest7680 #importer_class7681 is expected to eq Gitlab::GithubImport::Importer::PullRequestMergedByImporter7682 #collection_method7683 is expected to eq :pull_requests_merged_by7684 #id_for_already_imported_cache7685 is expected to eq 17686 #each_object_to_import7687 fetches the merged pull requests data7688 skips cached merge requests7689Ci::DagPipelineSerializer7690 #represent7691 includes stages7692 matches schema7693Preloaders::GroupRootAncestorPreloader7694 when the preloader is used7695 when no additional preloads are provided7696 behaves like executes N matching DB queries7697 executes the specified root_ancestor queries7698 strong_memoizes the correct root_ancestor7699 when additional preloads are provided7700 behaves like executes N matching DB queries7701 executes the specified root_ancestor queries7702 strong_memoizes the correct root_ancestor7703 when the preloader is not used7704 behaves like executes N matching DB queries7705 executes the specified root_ancestor queries7706 strong_memoizes the correct root_ancestor7707Import::Github::Notes::CreateService7708 does not support quick actions7709Gitlab::Ci::Config::Entry::Include::Rules7710 .new7711 with an "if"7712 behaves like a valid config7713 is expected to be valid7714 when composed7715 is expected to be valid7716 with a "changes"7717 when composed7718 behaves like an invalid config7719 is expected not to be valid7720 has errors7721 with a list of two rules7722 behaves like a valid config7723 is expected to be valid7724 when composed7725 is expected to be valid7726 without an array7727 behaves like an invalid config7728 is expected not to be valid7729 has errors7730 #value7731 with an "if"7732 is expected to eq [{:if=>"$THIS == \"that\""}]7733 with a list of two rules7734 is expected to eq [{:if=>"$THIS == \"that\""}, {:if=>"$SKIP"}]7735PipelineNotificationWorker7736 #execute7737 calls NotificationService#pipeline_finished when the pipeline exists7738 does nothing when the pipeline does not exist7739 when the user is blocked7740 does nothing7741 behaves like worker with data consistency7742 .get_data_consistency_feature_flag_enabled?7743 returns true7744 .get_data_consistency7745 returns correct data consistency7746Gitlab::Sourcegraph7747 .feature_conditional?7748 when feature is enabled globally7749 is expected to be falsey7750 when feature is enabled only to a resource7751 is expected to be truthy7752 .feature_available?7753 when feature is enabled globally7754 is expected to be truthy7755 when feature is enabled only to a resource7756 is expected to be truthy7757 when feature is disabled7758 is expected to be falsey7759 .feature_enabled?7760 when feature is enabled globally7761 is expected to be truthy7762 when feature is enabled only to a resource7763 for the same resource7764 is expected to be truthy7765 for a different resource7766 is expected to be falsey7767CustomerRelations::Organizations::UpdateService7768 #execute7769 when the user has no permission7770 returns an error7771 when user has permission7772 when name is changed7773 updates the organization7774 when activating7775 updates the contact7776 when deactivating7777 updates the organization7778 when the organization is invalid7779 returns an error7780Spam::AkismetMarkAsSpamService7781 #execute7782 when the spammable object is not submittable7783 does not submit as spam7784 spam is submitted successfully7785 submits as spam7786 updates the spammable object's user agent detail as being submitted as spam7787 when Akismet does not consider it spam7788 does not update the spammable object as spam7789RuboCop::Cop::Migration::MigrationRecord7790 # order random7791 in migration7792 in an old migration7793 behaves like a disabled cop7794 does not register any offenses7795 that is recent7796 adds an offense if inheriting from ApplicationRecord7797 adds an offense if inheriting from ::ApplicationRecord7798 outside of a migration7799 behaves like a disabled cop7800 does not register any offenses7801 outside of a migration7802 behaves like a disabled cop7803 does not register any offenses7804 in migration7805 in an old migration7806 behaves like a disabled cop7807 does not register any offenses7808 that is recent7809 adds an offense if inheriting from ActiveRecord::Base7810 adds an offense if inheriting from ::ActiveRecord::Base7811Banzai::Filter::TableOfContentsTagFilter7812 table of contents7813 [[_TOC_]] as tag7814 behaves like table of contents tag7815 replaces toc tag with ToC result7816 handles an empty ToC result7817 [[_toc_]] as tag7818 behaves like table of contents tag7819 replaces toc tag with ToC result7820 handles an empty ToC result7821 [TOC] as tag7822 behaves like table of contents tag7823 replaces toc tag with ToC result7824 handles an empty ToC result7825 [toc] as tag7826 behaves like table of contents tag7827 replaces toc tag with ToC result7828 handles an empty ToC result7829Gitlab::SQL::Intersect7830 behaves like SQL set operator7831 .operator_keyword7832 is expected to eq "INTERSECT"7833 #to_sql7834 returns a String joining relations together using a INTERSECT7835 skips Model.none segments7836 uses INTERSECT ALL when removing duplicates is disabled7837 returns `NULL` if all relations are empty7838 when uneven select values are used7839 raises error7840 remove_order parameter7841 when remove_order: true7842 removes the ORDER BY from the query7843 when remove_order: false7844 does not remove the ORDER BY from the query7845ContainerRepositoryEntity7846 exposes required informations7847 when project is not preset in the request7848 uses project from the object7849 when user can manage repositories7850 exposes destroy_path7851 when user cannot manage repositories7852 does not expose destroy_path7853layouts/snippets7854 # order random7855 sidebar7856 when signed in7857 renders the "Your work" sidebar7858 when not signed in7859 renders no sidebar7860Types::CiConfiguration::Sast::Type7861 is expected to eq "SastCiConfiguration"7862 is expected to have graphql fields :global, :pipeline, and :analyzers7863FromSetOperator7864 when set operator method already exists7865 is expected to raise RuntimeError7866 with members7867 as array7868 is expected not to make queries7869 behaves like set operator called with correct members7870 is expected to receive new([#<ActiveRecord::Relation [#<Group id:4622 @group641>]>, #<ActiveRecord::Relation [#<Group id:4623 @group642>]>], anything) 1 time7871 as multiple parameters7872 is expected not to make queries7873 behaves like set operator called with correct members7874 is expected to receive new([#<ActiveRecord::Relation [#<Group id:4622 @group641>]>, #<ActiveRecord::Relation [#<Group id:4623 @group642>]>], anything) 1 time7875Gitlab::Memory::Jemalloc7876 when jemalloc is loaded7877 with JSON format7878 .stats7879 returns stats JSON7880 .dump_stats7881 writes stats JSON file7882 with text format7883 .stats7884 returns a text report7885 .dump_stats7886 writes stats text file7887 with unsupported format7888 .stats7889 raises an error7890 .dump_stats7891 raises an error7892 when jemalloc is not loaded7893 .stats7894 returns empty string7895 .dump_stats7896 does nothing7897Gitlab::Ci::Status::Preparing7898 #text7899 is expected to eq "preparing"7900 #label7901 is expected to eq "preparing"7902 #icon7903 is expected to eq "status_preparing"7904 #favicon7905 is expected to eq "favicon_status_preparing"7906 #group7907 is expected to eq "preparing"7908 #details_path7909 is expected to be nil7910ObjectStorage::CDN7911 # order random7912 with CDN config7913 with a known CDN provider7914 #cdn_enabled_url7915 calls #cdn_signed_url7916 #use_cdn?7917 returns true7918 #cdn_signed_url7919 returns a URL7920 with an unknown CDN provider7921 raises an error7922 without CDN config7923 #cdn_enabled_url7924 calls #url7925 #use_cdn?7926 returns false7927Projects::BatchOpenIssuesCountService7928 #refresh_cache_and_retrieve_data7929 when cache is clean7930 refreshes cache keys correctly7931Gitlab::Database::Type::JsonPgSafe7932 #serialize7933 value: nil, json: nil7934 is expected to eq nil7935 value: 1, json: "1"7936 is expected to eq "1"7937 value: 1.0, json: "1.0"7938 is expected to eq "1.0"7939 value: "str\u0000ing\u0000", json: "\"string\""7940 is expected to eq "\"string\""7941 value: ["\u0000arr", "a\u0000y"], json: "[\"arr\",\"ay\"]"7942 is expected to eq "[\"arr\",\"ay\"]"7943 value: {"key\u0000"=>"value\u0000\u0000"}, json: "{\"key\":\"value\"}"7944 is expected to eq "{\"key\":\"value\"}"7945Gitlab::GithubImport::Representation::User7946 .from_api_response7947 behaves like a User7948 returns an instance of User7949 the returned User7950 includes the user ID7951 includes the username7952 .from_json_hash7953 behaves like a User7954 returns an instance of User7955 the returned User7956 includes the user ID7957 includes the username7958FileStoreMounter7959 # order random7960 .mount_file_store_uploader7961 skip_store_file: true, file_field: :file7962 defines instance methods and registers a callback7963 skip_store_file: false, file_field: :file7964 defines instance methods and registers a callback7965 skip_store_file: false, file_field: :signed_file7966 defines instance methods and registers a callback7967 skip_store_file: true, file_field: :signed_file7968 defines instance methods and registers a callback7969 with an unknown file_field7970 is expected to raise ArgumentError with "file_field not allowed: unknown"7971 with an instance7972 #update_file_store7973 calls update column7974 #store_file_now!7975 calls the dynamic functions7976Snippets::UpdateRepositoryStorageWorker7977 behaves like an update storage move worker7978 has the `until_executed` deduplicate strategy7979 #perform7980 without repository storage move7981 calls the update repository storage service7982 with repository storage move7983 calls the update repository storage service7984Backup::DatabaseBackupError7985 is expected to respond to #config7986 is expected to respond to #db_file_name7987 expects exception message to include database file7988 expects exception message to include database paths being back-up7989ContainerTagEntity7990 exposes required informations7991 when user can manage repositories7992 exposes destroy_path7993 when user cannot manage repositories7994 does not expose destroy_path7995SystemNotes::BaseService7996 #noteable7997 is expected to eq #<Double (anonymous)>7998 returns nil if no arguments are given7999 #project8000 is expected to eq #<Double (anonymous)>8001 returns nil if no arguments are given8002 #author8003 is expected to eq #<Double (anonymous)>8004 returns nil if no arguments are given8005admin/application_settings/network.html.haml8006 # order random8007 for Projects API rate limit8008 renders the `projects_api_rate_limit_unauthenticated` field8009 when the feature flag `rate_limit_for_unauthenticated_projects_api_access` is turned off8010 does not render the `projects_api_rate_limit_unauthenticated` field8011Gitlab::ManifestImport::Metadata8012 #save8013 stores data in Redis with an expiry of EXPIRY_TIME8014 #repositories8015 allows repositories to round-trip with symbol keys8016 uses the fallback when there is nothing in Redis8017 #group_id8018 returns the group ID as an integer8019 uses the fallback when there is nothing in Redis8020Gitlab::Kroki8021 .formats8022 enabled_formats: "", expected_formats: ["bytefield", "c4plantuml", "d2", "dbml", "diagramsnet", "ditaa", "erd", "graphviz", "nomnoml", "pikchr", "plantuml", "structurizr", "svgbob", "umlet", "vega", "vegalite", "wavedrom"]8023 returns the expected formats8024 enabled_formats: "blockdiag", expected_formats: ["bytefield", "c4plantuml", "d2", "dbml", "diagramsnet", "ditaa", "erd", "graphviz", "nomnoml", "pikchr", "plantuml", "structurizr", "svgbob", "umlet", "vega", "vegalite", "wavedrom", "actdiag", "blockdiag", "nwdiag", "packetdiag", "rackdiag", "seqdiag"]8025 returns the expected formats8026 enabled_formats: "bpmn", expected_formats: ["bytefield", "c4plantuml", "d2", "dbml", "diagramsnet", "ditaa", "erd", "graphviz", "nomnoml", "pikchr", "plantuml", "structurizr", "svgbob", "umlet", "vega", "vegalite", "wavedrom", "bpmn"]8027 returns the expected formats8028 enabled_formats: "excalidraw", expected_formats: ["bytefield", "c4plantuml", "d2", "dbml", "diagramsnet", "ditaa", "erd", "graphviz", "nomnoml", "pikchr", "plantuml", "structurizr", "svgbob", "umlet", "vega", "vegalite", "wavedrom", "excalidraw"]8029 returns the expected formats8030Gitlab::Memory::Reports::JemallocStats8031 .run8032 when :report_jemalloc_stats ops FF is enabled8033 dumps jemalloc stats to the given writer8034 when :report_jemalloc_stats ops FF is disabled8035 does not run the report8036 .active?8037 when :report_jemalloc_stats ops FF is enabled8038 is expected to equal true8039 when :report_jemalloc_stats ops FF is disabled8040 is expected to equal false8041Gitlab::GitlabImport::Importer8042 #execute8043 persists issues8044Gitlab::ImportExport::DesignRepoRestorer8045 bundle a design Git repo8046 restores the repo successfully8047WebHooks::HasWebHooks8048 # order random8049 last_webhook_failure8050 is expected to eq nil8051 when there was an older failure8052 is expected to eq "2023-02-28T12:02:15Z"8053 #last_failure_redis_key8054 is expected to eq "web_hooks:last_failure:minimal_test_class-1"8055Import::GitlabProviderRepoEntity8056 behaves like exposes required fields for import entity8057 exposes required fields8058 correctly exposes id8059 correctly exposes full name8060 correctly exposes sanitized name8061 correctly exposes provider link8062Tooling::TestMapPacker8063 #pack8064 compacts list of test files into a prefix tree8065 does nothing to empty hash8066 #unpack8067 unpack prefix tree into list of test files8068 does nothing to empty hash8069Gitlab::Metrics::Dashboard::Stages::MetricEndpointInserter8070 #transform!8071 generates prometheus_endpoint_path without newlines8072 includes a path for the prometheus endpoint with each metric8073 works when query/query_range is a number8074Gitlab::Database::MigrationHelpers::AnnounceDatabase8075 #announce8076 prefixes message with database name8077 #say8078 prefixes message with database name8079 prefixes subitem message with database name8080 #write8081 does not prefix empty write8082Gitlab::View::Presenter::Simple8083 includes Gitlab::View::Presenter::Base8084 #initialize8085 takes arbitrary key/values and exposes them8086 override the presentee attributes8087 delegation8088 does not forward missing methods to subject8089Types::CommitSignatures::SshSignatureType8090 # order random8091 is expected to include Types::CommitSignatureInterface8092 is expected to require graphql authorizations :download_code8093 is expected to eq "SshSignature"8094 contains attributes related to SSH signatures8095AnyFieldValidator8096 when validation is instantiated correctly8097 raises an error if no fields are defined8098 validates if only one field is present8099 when validation is missing the fields parameter8100 raises an error8101Banzai::Filter::NormalizeSourceFilter8102 removes the UTF8 BOM from the beginning of the text8103 does not remove those characters from anywhere else in the text8104MilestonePresenter8105 #milestone_path8106 returns correct path8107Gitlab::Auth::Otp::Strategies::Devise8108 calls Devise8109time travel8110 :freeze_time8111 freezes time around a spec example8112 :time_travel_to8113 time-travels to the specified date8114 time-travels to the specified date & time8115BitbucketServer::Collection8116 #current_page8117 returns 18118 #prev_page8119 returns nil8120 #next_page8121 returns 28122Gitlab::Ci::Pipeline::Chain::CancelPendingPipelines8123 #perform!8124 enqueues CancelRedundantPipelinesWorker8125TermsHelper8126 #terms_data8127 returns correct json8128Gitlab::Kubernetes::Kubeconfig::Entry::Cluster8129 #to_h8130 is expected to eq {:cluster=>{:server=>"url"}, :name=>"name"}8131 with a certificate8132 is expected to eq {:cluster=>{:"certificate-authority-data"=>"Y2VydGlmaWNhdGU=", :server=>"url"}, :name=>"name"}8133Banzai::Pipeline::EmailPipeline8134 .filters8135 returns the expected type8136 excludes ImageLazyLoadFilter8137 shows punycode for autolinks8138Gitlab::Audit::DeployTokenAuthor8139 #initialize8140 sets correct attributes8141 sets default name when it is not provided8142import/gitlab_projects/new.html.haml8143 when the user has no other namespaces8144 adds a namespace_id hidden field tag with the namespace id as value8145 when the user can select other namespaces8146 shows a namespace_id select8147Ci::PipelineConfig8148 is expected to belong to pipeline required: false8149 is expected to validate that :pipeline cannot be empty/falsy8150 is expected to validate that :content cannot be empty/falsy8151Sidebars::Projects::SuperSidebarMenus::ManageMenu8152 # order random8153 has title and sprite_icon8154 defines list of NilMenuItem placeholders8155Gitlab::CrossProjectAccess::CheckCollection8156 #add_collection8157 merges the checks of 2 collections8158 #should_run?8159 returns true if one of the check says it should run8160 returns false if one of the check says it should be skipped8161Types::CustomEmojiType8162 is expected to eq "CustomEmoji"8163 is expected to require graphql authorizations :read_custom_emoji8164 is expected to have graphql fields :id, :name, :url, and :external8165ProtectedBranch::MergeAccessLevel8166 is expected to validate that :access_level is either ‹40›, ‹30›, or ‹0›8167Gitlab::Ci::Config::External::Mapper::Normalizer8168 # order random8169 #process8170 converts locations to canonical form8171Types::MergeRequestSortEnum8172 is expected to eq "MergeRequestSort"8173 exposes all the existing issue sort values8174 behaves like common sort values8175 exposes all the existing common sort values8176microsoft_graph_mailer initializer for GitLab8177 # order random8178 when microsoft_graph_mailer is disabled8179 does not configure ActionMailer8180 when microsoft_graph_mailer is enabled8181 configures ActionMailer8182Gitlab::GithubImport::Logger8183 #format_message8184 formats strings8185 formats hashes8186Gitlab::GitalyClient::Util8187 .repository8188 creates a Gitaly::Repository with the given data8189VulnerabilityFindingHelpers8190 #requires_manual_resolution?8191 returns false if the finding does not require manual resolution8192 returns true when the finding requires manual resolution8193Gitlab::WithRequestStore8194 #with_request_store8195 starts a request store and yields control8196 only starts a request store once when nested8197Types::Projects::ServiceTypeEnum8198 exposes all the existing project services8199 coerces values correctly8200Iso8601DateValidator8201 # order random8202 passes a valid date8203 errors on an invalid date8204Types::Packages::Helm::DependencyType8205 is expected to eq "PackageHelmDependencyType"8206 includes helm dependency fields8207Types::CiConfiguration::Sast::EntityType8208 is expected to eq "SastCiConfigurationEntity"8209 is expected to have graphql fields :field, :label, :description, :type, :options, :default_value, :value, and :size8210Types::Tree::TreeType8211 is expected to eq "Tree"8212 is expected to have graphql fields :trees, :submodules, :blobs, and :last_commit8213RuboCop::Cop::RSpec::FeatureCategoryOnSharedExamples8214 # order random8215 flags feature category in shared example8216 does not flag if feature category is missing8217Gitlab::Database::SchemaValidation::Validators::MissingIndexes8218 # order random8219 returns index inconsistencies8220Gitlab::Utils::ErrorMessage8221 # order random8222 error message8223 returns input prefixed with UF:8224Types::Ci::TestReportTotalType8225 is expected to eq "TestReportTotal"8226 contains attributes related to a pipeline test report summary8227PersonalAccessTokenEntity8228 has the correct attributes8229Types::CommitActionModeEnum8230 is expected to eq "CommitActionMode"8231 exposes all the existing commit actions8232Gitlab::APIAuthentication::SentThroughBuilder8233 #sent_through8234 adds a strategy for each of locators x resolvers8235Types::WorkItems::Widgets::NotesType8236 # order random8237 exposes the expected fields8238RepositoryCheckQueue8239 disables retrying of failed jobs8240Pending: (Failures listed here are expected and do not affect your suite's status)8241 1) Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers#finalize_batched_background_migration when running migration in reconfigured ActiveRecord::Base context behaves like reconfigures connection stack when restrict_gitlab_migration is set to gitlab_ci finalizes the migration8242 # Skipping because none of the extra databases [:ci, :main_clusterwide] are setup8243 Failure/Error: expect(Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas).to receive(:require_dml_mode!)8244 (Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas (class)).require_dml_mode!(*(any args))8245 expected: 1 time with any arguments8246 received: 0 times with any arguments8247 Shared Example Group: "reconfigures connection stack" called from ./spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb:2948248 # ./spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb:261:in `block (3 levels) in <top (required)>'8249 # ./spec/support/shared_examples/lib/gitlab/database/reestablished_connection_stack_shared_examples.rb:18:in `block (3 levels) in <top (required)>'8250 # ./spec/support/helpers/database/multiple_databases_helpers.rb:105:in `with_reestablished_active_record_base'8251 # ./spec/support/shared_examples/lib/gitlab/database/reestablished_connection_stack_shared_examples.rb:17:in `block (2 levels) in <top (required)>'8252 # ./spec/spec_helper.rb:438:in `block (3 levels) in <top (required)>'8253 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8254 # ./spec/spec_helper.rb:430:in `block (2 levels) in <top (required)>'8255 # ./spec/spec_helper.rb:426:in `block (3 levels) in <top (required)>'8256 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'8257 # ./spec/spec_helper.rb:426:in `block (2 levels) in <top (required)>'8258 # ./spec/spec_helper.rb:240:in `block (2 levels) in <top (required)>'8259 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8260 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8261 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8262 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8263 2) Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers#finalize_batched_background_migration when running migration in reconfigured ActiveRecord::Base context behaves like reconfigures connection stack when restrict_gitlab_migration is set to gitlab_main does not find any migrations8264 # Skipping because none of the extra databases [:ci, :main_clusterwide] are setup8265 Failure/Error: expect(Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas).to receive(:require_dml_mode!)8266 (Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas (class)).require_dml_mode!(*(any args))8267 expected: 1 time with any arguments8268 received: 0 times with any arguments8269 Shared Example Group: "reconfigures connection stack" called from ./spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb:2948270 # ./spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb:261:in `block (3 levels) in <top (required)>'8271 # ./spec/support/shared_examples/lib/gitlab/database/reestablished_connection_stack_shared_examples.rb:18:in `block (3 levels) in <top (required)>'8272 # ./spec/support/helpers/database/multiple_databases_helpers.rb:105:in `with_reestablished_active_record_base'8273 # ./spec/support/shared_examples/lib/gitlab/database/reestablished_connection_stack_shared_examples.rb:17:in `block (2 levels) in <top (required)>'8274 # ./spec/spec_helper.rb:438:in `block (3 levels) in <top (required)>'8275 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8276 # ./spec/spec_helper.rb:430:in `block (2 levels) in <top (required)>'8277 # ./spec/spec_helper.rb:426:in `block (3 levels) in <top (required)>'8278 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'8279 # ./spec/spec_helper.rb:426:in `block (2 levels) in <top (required)>'8280 # ./spec/spec_helper.rb:240:in `block (2 levels) in <top (required)>'8281 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8282 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8283 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8284 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8285 3) Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers#finalize_batched_background_migration when running migration in reconfigured ActiveRecord::Base context behaves like reconfigures connection stack when no restrict is set does not find any migrations8286 # Skipping because none of the extra databases [:ci, :main_clusterwide] are setup8287 Failure/Error: expect(Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas).to receive(:require_dml_mode!)8288 (Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas (class)).require_dml_mode!(*(any args))8289 expected: 1 time with any arguments8290 received: 0 times with any arguments8291 Shared Example Group: "reconfigures connection stack" called from ./spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb:2948292 # ./spec/lib/gitlab/database/migrations/batched_background_migration_helpers_spec.rb:261:in `block (3 levels) in <top (required)>'8293 # ./spec/support/shared_examples/lib/gitlab/database/reestablished_connection_stack_shared_examples.rb:18:in `block (3 levels) in <top (required)>'8294 # ./spec/support/helpers/database/multiple_databases_helpers.rb:105:in `with_reestablished_active_record_base'8295 # ./spec/support/shared_examples/lib/gitlab/database/reestablished_connection_stack_shared_examples.rb:17:in `block (2 levels) in <top (required)>'8296 # ./spec/spec_helper.rb:438:in `block (3 levels) in <top (required)>'8297 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8298 # ./spec/spec_helper.rb:430:in `block (2 levels) in <top (required)>'8299 # ./spec/spec_helper.rb:426:in `block (3 levels) in <top (required)>'8300 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'8301 # ./spec/spec_helper.rb:426:in `block (2 levels) in <top (required)>'8302 # ./spec/spec_helper.rb:240:in `block (2 levels) in <top (required)>'8303 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8304 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8305 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8306 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8307 4) Atlassian::JiraConnect::Client#store_build_info avoids N+1 database queries8309 Failure/Error:8310 expect do8311 subject.send(:store_build_info, project: project, pipelines: pipelines)8312 end.not_to exceed_query_limit(baseline)8313 Expected a maximum of 14 queries, got 15:8314 Query Diff:8315 -----------8316 SELECT "merge_requests".* FROM "merge_requests" WHERE "merge_requests"."source_project_id" = 893 AND "merge_requests"."source_branch" = 'master' AND (EXISTS (SELECT 1 FROM "merge_request_diffs"...8317 -- (expected: 0, got: 1)8318 INNER JOIN "merge_request_diff_commits" ON "merge_request_diff_commits"."merge_request_diff_id" = "merge_request_diffs"."id" WHERE (merge_requests.latest_merge_request_diff_id = merge_request_diffs.id) AND "merge_request_diff_commits"."sha" = '\xb83d6e391c22777fca1ed3012fce84f633d7fed0'))8319 # ./spec/lib/atlassian/jira_connect/client_spec.rb:416:in `block (3 levels) in <top (required)>'8320 # ./spec/lib/atlassian/jira_connect/client_spec.rb:25:in `block (3 levels) in <top (required)>'8321 # ./spec/lib/atlassian/jira_connect/client_spec.rb:25:in `block (2 levels) in <top (required)>'8322 # ./spec/spec_helper.rb:438:in `block (3 levels) in <top (required)>'8323 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8324 # ./spec/spec_helper.rb:430:in `block (2 levels) in <top (required)>'8325 # ./spec/spec_helper.rb:426:in `block (3 levels) in <top (required)>'8326 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'8327 # ./spec/spec_helper.rb:426:in `block (2 levels) in <top (required)>'8328 # ./spec/spec_helper.rb:240:in `block (2 levels) in <top (required)>'8329 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8330 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8331 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8332 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8333Finished in 21 minutes 59 seconds (files took 58.24 seconds to load)83343495 examples, 0 failures, 4 pending8335Randomized with seed 228058336[TEST PROF INFO] Time spent in factories: 11:17.475 (50.36% of total time)8337RSpec exited with 0.8338No examples to retry, congrats!8340Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8341Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8343Uploading artifacts...8344coverage/: found 5 matching artifact files and directories 8345crystalball/: found 2 matching artifact files and directories 8346WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8347knapsack/: found 3 matching artifact files and directories 8348WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8349rspec/: found 12 matching artifact files and directories 8350WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8351log/*.log: found 15 matching artifact files and directories 8352WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138922/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8353WARNING: Retrying... context=artifacts-uploader error=request redirected8354Uploading artifacts as "archive" to coordinator... 201 Created id=4031138922 responseStatus=201 Created token=64_iic2b8355Uploading artifacts...8356rspec/junit_rspec.xml: found 1 matching artifact files and directories 8357WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138922/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8358WARNING: Retrying... context=artifacts-uploader error=request redirected8359Uploading artifacts as "junit" to coordinator... 201 Created id=4031138922 responseStatus=201 Created token=64_iic2b8361Job succeeded