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

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.9.0~beta.212.g8ccc65e7 (8ccc65e7)2 on green-4.private.runners-manager.gitlab.com/gitlab.com/gitlab-org rpvz2FF9, system ID: s_d704414ba02a3 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-rpvz2ff9-project-278964-concurrent-0 via runner-rpvz2ff9-private-1680166931-30da106c...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.55 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_AivUJ45Downloading artifacts for detect-tests (4031138213)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138213 responseStatus=200 OK token=64_AivUJ47Downloading artifacts for retrieve-tests-metadata (4031138217)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138217 responseStatus=200 OK token=64_AivUJ49Downloading artifacts for setup-test-env (4031138204)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138204 responseStatus=200 OK token=64_AivUJ52Using 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)711Enabling ci connection (database_tasks: false) in config/database.yml712Geo DB won't be set up.713$ setup_db_user_only714CREATE ROLE715GRANT716==> 'setup_db_user_only' succeeded in 1 seconds.717$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes718Dropped database 'gitlabhq_test'719Created database 'gitlabhq_test'720==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 40 seconds.721$ setup_db_praefect722SELECT pg_catalog.set_config('search_path', '', false);723CREATE DATABASE praefect_test ENCODING 'UTF8';724$ source ./scripts/rspec_helpers.sh725==> 'setup_db_praefect' succeeded in 0 seconds.726$ run_timed_command "gem install knapsack --no-document"727$ gem install knapsack --no-document728Successfully installed knapsack-4.0.07291 gem installed730==> 'gem install knapsack --no-document' succeeded in 0 seconds.731$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"835$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"836SKIP_FLAKY_TESTS_AUTOMATICALLY: false837RETRY_FAILED_TESTS_IN_NEW_PROCESS: true838KNAPSACK_GENERATE_REPORT: 839FLAKY_RSPEC_GENERATE_REPORT: 840KNAPSACK_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.rb841KNAPSACK_LOG_LEVEL: debug842KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13-as-if-foss_single-db-ci-connection_26_28_report.json843FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json844FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13-as-if-foss_single-db-ci-connection_26_28_report.json845NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13-as-if-foss_single-db-ci-connection_26_28_report.json846SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13-as-if-foss_single-db-ci-connection_26_28_report.txt847CRYSTALBALL: 848Knapsack node specs:849spec/services/merge_requests/push_options_handler_service_spec.rb850spec/services/merge_requests/build_service_spec.rb851spec/lib/gitlab/auth_spec.rb852spec/models/clusters/platforms/kubernetes_spec.rb853spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb854spec/services/application_settings/update_service_spec.rb855spec/lib/gitlab/asciidoc_spec.rb856spec/services/issues/clone_service_spec.rb857spec/policies/wiki_page_policy_spec.rb858spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb859spec/lib/gitlab/http_spec.rb860spec/lib/feature_spec.rb861spec/models/gpg_key_spec.rb862spec/models/merge_request_diff_file_spec.rb863spec/policies/group_member_policy_spec.rb864spec/services/verify_pages_domain_service_spec.rb865spec/lib/gitlab/background_migration/backfill_group_features_spec.rb866spec/helpers/gitlab_routing_helper_spec.rb867spec/routing/group_routing_spec.rb868spec/services/work_items/create_service_spec.rb869spec/models/suggestion_spec.rb870spec/finders/clusters/knative_services_finder_spec.rb871spec/models/project_setting_spec.rb872spec/models/operations/feature_flags/user_list_spec.rb873spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb874spec/lib/gitlab/ci/templates/npm_spec.rb875spec/finders/metrics/dashboards/annotations_finder_spec.rb876spec/services/groups/create_service_spec.rb877spec/services/merge_requests/request_review_service_spec.rb878spec/helpers/auto_devops_helper_spec.rb879spec/services/groups/group_links/create_service_spec.rb880spec/services/merge_requests/conflicts/resolve_service_spec.rb881spec/lib/gitlab/email/handler/create_issue_handler_spec.rb882spec/services/projects/hashed_storage/rollback_repository_service_spec.rb883spec/validators/addressable_url_validator_spec.rb884spec/lib/feature/gitaly_spec.rb885spec/models/release_highlight_spec.rb886spec/lib/gitlab/ci/build/image_spec.rb887spec/tasks/gitlab/packages/events_rake_spec.rb888spec/services/merge_requests/remove_approval_service_spec.rb889spec/lib/gitlab/graphql/pagination/active_record_array_connection_spec.rb890spec/lib/gitlab/import_export/merge_request_parser_spec.rb891spec/serializers/analytics_build_entity_spec.rb892spec/lib/gitlab/background_migration/rebalance_partition_id_spec.rb893spec/models/ci/commit_with_pipeline_spec.rb894spec/lib/gitlab/usage/metrics/instrumentations/jira_active_integrations_metric_spec.rb895spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb896spec/models/ci/build_trace_metadata_spec.rb897spec/lib/gitlab/database/count_spec.rb898spec/scripts/review_apps/automated_cleanup_spec.rb899spec/policies/board_policy_spec.rb900spec/lib/gitlab/sanitizers/exif_spec.rb901spec/helpers/timeboxes_helper_spec.rb902spec/tasks/gitlab/web_hook_rake_spec.rb903spec/models/concerns/ci/maskable_spec.rb904spec/services/users/refresh_authorized_projects_service_spec.rb905spec/lib/gitlab/ci/pipeline/expression/lexeme/or_spec.rb906spec/lib/gitlab/ci/trace/archive_spec.rb907spec/services/uploads/destroy_service_spec.rb908spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb909spec/lib/gitlab/ci/runner_releases_spec.rb910spec/lib/gitlab/web_hooks/rate_limiter_spec.rb911spec/lib/gitlab/lfs/client_spec.rb912spec/graphql/types/snippets/blob_type_spec.rb913spec/lib/gitlab/ci/ansi2json/line_spec.rb914spec/models/ci/runner_namespace_spec.rb915spec/lib/gitlab/content_security_policy/config_loader_spec.rb916spec/lib/system_check/simple_executor_spec.rb917spec/lib/gitlab/gitaly_client/ref_service_spec.rb918spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb919spec/finders/metrics/users_starred_dashboards_finder_spec.rb920spec/models/x509_issuer_spec.rb921spec/models/group_label_spec.rb922spec/services/design_management/generate_image_versions_service_spec.rb923spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb924spec/views/layouts/signup_onboarding.html.haml_spec.rb925spec/graphql/resolvers/ci/all_jobs_resolver_spec.rb926spec/services/ci/compare_reports_base_service_spec.rb927spec/models/analytics/usage_trends/measurement_spec.rb928spec/services/draft_notes/destroy_service_spec.rb929spec/views/layouts/_head.html.haml_spec.rb930spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb931spec/lib/safe_zip/extract_params_spec.rb932spec/models/concerns/ci/has_variable_spec.rb933spec/services/projects/move_project_authorizations_service_spec.rb934spec/models/ci/job_variable_spec.rb935spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb936spec/models/project_repository_spec.rb937spec/workers/merge_requests/close_issue_worker_spec.rb938spec/workers/projects/import_export/parallel_project_export_worker_spec.rb939spec/lib/api/ci/helpers/runner_spec.rb940spec/views/projects/diffs/_viewer.html.haml_spec.rb941spec/helpers/award_emoji_helper_spec.rb942spec/lib/gitlab/ci/reports/coverage_report_generator_spec.rb943spec/graphql/resolvers/user_notes_count_resolver_spec.rb944spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb945spec/graphql/resolvers/nested_groups_resolver_spec.rb946spec/components/pajamas/alert_component_spec.rb947spec/lib/banzai/reference_parser/mentioned_group_parser_spec.rb948spec/lib/gitlab/local_and_remote_storage_migration/pages_deployment_migrater_spec.rb949spec/workers/ci/pipeline_artifacts/coverage_report_worker_spec.rb950spec/lib/api/entities/ci/pipeline_spec.rb951spec/finders/merge_request/metrics_finder_spec.rb952spec/serializers/test_report_summary_entity_spec.rb953spec/lib/sidebars/user_profile/menus/overview_menu_spec.rb954spec/services/import/bitbucket_server_service_spec.rb955spec/lib/gitlab/instrumentation/redis_base_spec.rb956spec/models/error_tracking/error_event_spec.rb957spec/workers/create_pipeline_worker_spec.rb958spec/services/users/unban_service_spec.rb959spec/workers/clusters/cleanup/project_namespace_worker_spec.rb960spec/support_specs/database/multiple_databases_helpers_spec.rb961spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb962spec/lib/gitlab/background_migration/prune_stale_project_export_jobs_spec.rb963spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb964spec/lib/gitlab/config/entry/factory_spec.rb965spec/graphql/mutations/clusters/agents/delete_spec.rb966spec/views/projects/pipelines/show.html.haml_spec.rb967spec/models/group_deploy_token_spec.rb968spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb969spec/lib/gitlab/phabricator_import/project_creator_spec.rb970spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb971spec/lib/initializer_connections_spec.rb972spec/lib/banzai/filter/footnote_filter_spec.rb973spec/rubocop/cop/inject_enterprise_edition_module_spec.rb974spec/views/projects/environments/terminal.html.haml_spec.rb975spec/policies/alert_management/http_integration_policy_spec.rb976spec/services/snippets/update_repository_storage_service_spec.rb977spec/rubocop/cop/gitlab/rails_logger_spec.rb978spec/views/shared/issuable/_sidebar.html.haml_spec.rb979spec/workers/clusters/agents/delete_expired_events_worker_spec.rb980spec/models/blob_viewer/base_spec.rb981spec/workers/propagate_integration_project_worker_spec.rb982spec/lib/gitlab/highlight_spec.rb983spec/workers/repository_check/dispatch_worker_spec.rb984spec/workers/packages/cleanup_package_file_worker_spec.rb985spec/lib/gitlab/auth/saml/config_spec.rb986spec/graphql/types/packages/nuget/metadatum_type_spec.rb987spec/lib/gitlab/inactive_projects_deletion_warning_tracker_spec.rb988spec/models/dependency_proxy/group_setting_spec.rb989spec/rubocop/cop_todo_spec.rb990spec/graphql/types/todoable_interface_spec.rb991spec/lib/error_tracking/collector/sentry_auth_parser_spec.rb992spec/models/integrations/base_issue_tracker_spec.rb993spec/rubocop/cop/migration/with_lock_retries_with_change_spec.rb994spec/models/concerns/limitable_spec.rb995spec/graphql/types/ci/pipeline_message_type_spec.rb996spec/services/ci/abort_pipelines_service_spec.rb997spec/views/events/event/_push.html.haml_spec.rb998spec/graphql/types/tree/type_enum_spec.rb999spec/services/achievements/award_service_spec.rb1000spec/lib/gitlab/ci/reports/security/reports_spec.rb1001spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb1002spec/services/issues/base_service_spec.rb1003spec/serializers/deploy_keys/deploy_key_entity_spec.rb1004spec/lib/gitlab/database/load_balancing/service_discovery/sampler_spec.rb1005spec/services/issues/after_create_service_spec.rb1006spec/lib/backup/file_backup_error_spec.rb1007spec/lib/gitlab/ci/build/releaser_spec.rb1008spec/lib/gitlab/github_import/importer/events/reopened_spec.rb1009spec/lib/gitlab/github_import/parallel_importer_spec.rb1010spec/finders/groups/accepting_project_transfers_finder_spec.rb1011spec/workers/ci/build_schedule_worker_spec.rb1012spec/services/projects/readme_renderer_service_spec.rb1013spec/lib/gitlab/usage/metrics/instrumentations/count_users_associating_milestones_to_releases_metric_spec.rb1014spec/graphql/mutations/customer_relations/contacts/update_spec.rb1015spec/services/packages/helm/extract_file_metadata_service_spec.rb1016spec/models/ml/candidate_metric_spec.rb1017spec/rubocop/cop/migration/sidekiq_queue_migrate_spec.rb1018spec/serializers/user_entity_spec.rb1019spec/services/ci/runners/assign_runner_service_spec.rb1020spec/lib/gitlab/database/similarity_score_spec.rb1021spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_ml_experiments_metric_spec.rb1022spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb1023spec/lib/gitlab/render_timeout_spec.rb1024spec/rubocop/cop/api/base_spec.rb1025spec/lib/gitlab/database/schema_validation/runner_spec.rb1026spec/lib/gitlab/quick_actions/substitution_definition_spec.rb1027spec/models/concerns/x509_serial_number_attribute_spec.rb1028spec/haml_lint/linter/inline_javascript_spec.rb1029spec/views/shared/_milestones_sort_dropdown.html.haml_spec.rb1030spec/helpers/external_link_helper_spec.rb1031spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb1032spec/lib/gitlab/ci/pipeline/chain/metrics_spec.rb1033spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb1034spec/workers/ci/create_cross_project_pipeline_worker_spec.rb1035spec/graphql/types/key_type_spec.rb1036spec/lib/banzai/filter/service_desk_upload_link_filter_spec.rb1037spec/models/design_management/repository_spec.rb1038spec/lib/gitlab/database/migrations/extension_helpers_spec.rb1039spec/services/groups/update_statistics_service_spec.rb1040spec/lib/gitlab/usage_data_counters/vscode_extension_activity_unique_counter_spec.rb1041spec/lib/gitlab/search/abuse_validators/no_abusive_term_length_validator_spec.rb1042spec/models/groups/feature_setting_spec.rb1043spec/lib/gitlab/usage_data_counters/search_counter_spec.rb1044spec/graphql/types/merge_requests/author_type_spec.rb1045spec/workers/gitlab/github_import/attachments/import_merge_request_worker_spec.rb1046spec/lib/gitlab/import_export/recursive_merge_folders_spec.rb1047spec/serializers/runner_entity_spec.rb1048spec/experiments/force_company_trial_experiment_spec.rb1049spec/rubocop/cop/gitlab/json_spec.rb1050spec/graphql/types/ci_configuration/sast/analyzers_entity_input_type_spec.rb1051spec/lib/gitlab/metrics/elasticsearch_rack_middleware_spec.rb1052spec/lib/gitlab/ci/build/port_spec.rb1053spec/views/devise/confirmations/almost_there.html.haml_spec.rb1054spec/rubocop/cop/migration/remove_concurrent_index_spec.rb1055spec/rubocop/cop/graphql/gid_expected_type_spec.rb1056spec/workers/pages_domain_verification_worker_spec.rb1057spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb1058spec/lib/gitlab/graphql/tracers/timer_tracer_spec.rb1059spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb1060spec/graphql/types/packages/helm/file_metadatum_type_spec.rb1061spec/rubocop/cop/ban_catch_throw_spec.rb1062spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb1063spec/lib/gitlab/memory/watchdog/monitor_state_spec.rb1064spec/workers/ci/schedule_delete_objects_cron_worker_spec.rb1065spec/workers/todos_destroyer/destroyed_issuable_worker_spec.rb1066spec/rubocop/cop/gitlab/deprecate_track_redis_hll_event_spec.rb1067spec/serializers/ci/lint/result_entity_spec.rb1068spec/graphql/types/users/namespace_commit_email_type_spec.rb1069spec/serializers/remote_mirror_entity_spec.rb1070spec/lib/gitlab/quick_actions/dsl_spec.rb1071spec/graphql/types/packages/cleanup/keep_duplicated_package_files_enum_spec.rb1072spec/helpers/plan_limits_helper_spec.rb1073spec/serializers/access_token_entity_base_spec.rb1074spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb1075spec/lib/gitlab/database/schema_validation/validators/missing_triggers_spec.rb1076spec/lib/gitlab/ci/status/core_spec.rb1077spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb1078spec/helpers/tooling/visual_review_helper_spec.rb1079spec/initializers/remove_active_job_execute_callback_spec.rb1080Filter specs:1081Running specs:1082Running all node tests without filter1083spec/services/merge_requests/push_options_handler_service_spec.rb1084spec/services/merge_requests/build_service_spec.rb1085spec/lib/gitlab/auth_spec.rb1086spec/models/clusters/platforms/kubernetes_spec.rb1087spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb1088spec/services/application_settings/update_service_spec.rb1089spec/lib/gitlab/asciidoc_spec.rb1090spec/services/issues/clone_service_spec.rb1091spec/policies/wiki_page_policy_spec.rb1092spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb1093spec/lib/gitlab/http_spec.rb1094spec/lib/feature_spec.rb1095spec/models/gpg_key_spec.rb1096spec/models/merge_request_diff_file_spec.rb1097spec/policies/group_member_policy_spec.rb1098spec/services/verify_pages_domain_service_spec.rb1099spec/lib/gitlab/background_migration/backfill_group_features_spec.rb1100spec/helpers/gitlab_routing_helper_spec.rb1101spec/routing/group_routing_spec.rb1102spec/services/work_items/create_service_spec.rb1103spec/models/suggestion_spec.rb1104spec/finders/clusters/knative_services_finder_spec.rb1105spec/models/project_setting_spec.rb1106spec/models/operations/feature_flags/user_list_spec.rb1107spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb1108spec/lib/gitlab/ci/templates/npm_spec.rb1109spec/finders/metrics/dashboards/annotations_finder_spec.rb1110spec/services/groups/create_service_spec.rb1111spec/services/merge_requests/request_review_service_spec.rb1112spec/helpers/auto_devops_helper_spec.rb1113spec/services/groups/group_links/create_service_spec.rb1114spec/services/merge_requests/conflicts/resolve_service_spec.rb1115spec/lib/gitlab/email/handler/create_issue_handler_spec.rb1116spec/services/projects/hashed_storage/rollback_repository_service_spec.rb1117spec/validators/addressable_url_validator_spec.rb1118spec/lib/feature/gitaly_spec.rb1119spec/models/release_highlight_spec.rb1120spec/lib/gitlab/ci/build/image_spec.rb1121spec/tasks/gitlab/packages/events_rake_spec.rb1122spec/services/merge_requests/remove_approval_service_spec.rb1123spec/lib/gitlab/graphql/pagination/active_record_array_connection_spec.rb1124spec/lib/gitlab/import_export/merge_request_parser_spec.rb1125spec/serializers/analytics_build_entity_spec.rb1126spec/lib/gitlab/background_migration/rebalance_partition_id_spec.rb1127spec/models/ci/commit_with_pipeline_spec.rb1128spec/lib/gitlab/usage/metrics/instrumentations/jira_active_integrations_metric_spec.rb1129spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb1130spec/models/ci/build_trace_metadata_spec.rb1131spec/lib/gitlab/database/count_spec.rb1132spec/scripts/review_apps/automated_cleanup_spec.rb1133spec/policies/board_policy_spec.rb1134spec/lib/gitlab/sanitizers/exif_spec.rb1135spec/helpers/timeboxes_helper_spec.rb1136spec/tasks/gitlab/web_hook_rake_spec.rb1137spec/models/concerns/ci/maskable_spec.rb1138spec/services/users/refresh_authorized_projects_service_spec.rb1139spec/lib/gitlab/ci/pipeline/expression/lexeme/or_spec.rb1140spec/lib/gitlab/ci/trace/archive_spec.rb1141spec/services/uploads/destroy_service_spec.rb1142spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb1143spec/lib/gitlab/ci/runner_releases_spec.rb1144spec/lib/gitlab/web_hooks/rate_limiter_spec.rb1145spec/lib/gitlab/lfs/client_spec.rb1146spec/graphql/types/snippets/blob_type_spec.rb1147spec/lib/gitlab/ci/ansi2json/line_spec.rb1148spec/models/ci/runner_namespace_spec.rb1149spec/lib/gitlab/content_security_policy/config_loader_spec.rb1150spec/lib/system_check/simple_executor_spec.rb1151spec/lib/gitlab/gitaly_client/ref_service_spec.rb1152spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb1153spec/finders/metrics/users_starred_dashboards_finder_spec.rb1154spec/models/x509_issuer_spec.rb1155spec/models/group_label_spec.rb1156spec/services/design_management/generate_image_versions_service_spec.rb1157spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb1158spec/views/layouts/signup_onboarding.html.haml_spec.rb1159spec/graphql/resolvers/ci/all_jobs_resolver_spec.rb1160spec/services/ci/compare_reports_base_service_spec.rb1161spec/models/analytics/usage_trends/measurement_spec.rb1162spec/services/draft_notes/destroy_service_spec.rb1163spec/views/layouts/_head.html.haml_spec.rb1164spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb1165spec/lib/safe_zip/extract_params_spec.rb1166spec/models/concerns/ci/has_variable_spec.rb1167spec/services/projects/move_project_authorizations_service_spec.rb1168spec/models/ci/job_variable_spec.rb1169spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb1170spec/models/project_repository_spec.rb1171spec/workers/merge_requests/close_issue_worker_spec.rb1172spec/workers/projects/import_export/parallel_project_export_worker_spec.rb1173spec/lib/api/ci/helpers/runner_spec.rb1174spec/views/projects/diffs/_viewer.html.haml_spec.rb1175spec/helpers/award_emoji_helper_spec.rb1176spec/lib/gitlab/ci/reports/coverage_report_generator_spec.rb1177spec/graphql/resolvers/user_notes_count_resolver_spec.rb1178spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb1179spec/graphql/resolvers/nested_groups_resolver_spec.rb1180spec/components/pajamas/alert_component_spec.rb1181spec/lib/banzai/reference_parser/mentioned_group_parser_spec.rb1182spec/lib/gitlab/local_and_remote_storage_migration/pages_deployment_migrater_spec.rb1183spec/workers/ci/pipeline_artifacts/coverage_report_worker_spec.rb1184spec/lib/api/entities/ci/pipeline_spec.rb1185spec/finders/merge_request/metrics_finder_spec.rb1186spec/serializers/test_report_summary_entity_spec.rb1187spec/lib/sidebars/user_profile/menus/overview_menu_spec.rb1188spec/services/import/bitbucket_server_service_spec.rb1189spec/lib/gitlab/instrumentation/redis_base_spec.rb1190spec/models/error_tracking/error_event_spec.rb1191spec/workers/create_pipeline_worker_spec.rb1192spec/services/users/unban_service_spec.rb1193spec/workers/clusters/cleanup/project_namespace_worker_spec.rb1194spec/support_specs/database/multiple_databases_helpers_spec.rb1195spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb1196spec/lib/gitlab/background_migration/prune_stale_project_export_jobs_spec.rb1197spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb1198spec/lib/gitlab/config/entry/factory_spec.rb1199spec/graphql/mutations/clusters/agents/delete_spec.rb1200spec/views/projects/pipelines/show.html.haml_spec.rb1201spec/models/group_deploy_token_spec.rb1202spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb1203spec/lib/gitlab/phabricator_import/project_creator_spec.rb1204spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb1205spec/lib/initializer_connections_spec.rb1206spec/lib/banzai/filter/footnote_filter_spec.rb1207spec/rubocop/cop/inject_enterprise_edition_module_spec.rb1208spec/views/projects/environments/terminal.html.haml_spec.rb1209spec/policies/alert_management/http_integration_policy_spec.rb1210spec/services/snippets/update_repository_storage_service_spec.rb1211spec/rubocop/cop/gitlab/rails_logger_spec.rb1212spec/views/shared/issuable/_sidebar.html.haml_spec.rb1213spec/workers/clusters/agents/delete_expired_events_worker_spec.rb1214spec/models/blob_viewer/base_spec.rb1215spec/workers/propagate_integration_project_worker_spec.rb1216spec/lib/gitlab/highlight_spec.rb1217spec/workers/repository_check/dispatch_worker_spec.rb1218spec/workers/packages/cleanup_package_file_worker_spec.rb1219spec/lib/gitlab/auth/saml/config_spec.rb1220spec/graphql/types/packages/nuget/metadatum_type_spec.rb1221spec/lib/gitlab/inactive_projects_deletion_warning_tracker_spec.rb1222spec/models/dependency_proxy/group_setting_spec.rb1223spec/rubocop/cop_todo_spec.rb1224spec/graphql/types/todoable_interface_spec.rb1225spec/lib/error_tracking/collector/sentry_auth_parser_spec.rb1226spec/models/integrations/base_issue_tracker_spec.rb1227spec/rubocop/cop/migration/with_lock_retries_with_change_spec.rb1228spec/models/concerns/limitable_spec.rb1229spec/graphql/types/ci/pipeline_message_type_spec.rb1230spec/services/ci/abort_pipelines_service_spec.rb1231spec/views/events/event/_push.html.haml_spec.rb1232spec/graphql/types/tree/type_enum_spec.rb1233spec/services/achievements/award_service_spec.rb1234spec/lib/gitlab/ci/reports/security/reports_spec.rb1235spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb1236spec/services/issues/base_service_spec.rb1237spec/serializers/deploy_keys/deploy_key_entity_spec.rb1238spec/lib/gitlab/database/load_balancing/service_discovery/sampler_spec.rb1239spec/services/issues/after_create_service_spec.rb1240spec/lib/backup/file_backup_error_spec.rb1241spec/lib/gitlab/ci/build/releaser_spec.rb1242spec/lib/gitlab/github_import/importer/events/reopened_spec.rb1243spec/lib/gitlab/github_import/parallel_importer_spec.rb1244spec/finders/groups/accepting_project_transfers_finder_spec.rb1245spec/workers/ci/build_schedule_worker_spec.rb1246spec/services/projects/readme_renderer_service_spec.rb1247spec/lib/gitlab/usage/metrics/instrumentations/count_users_associating_milestones_to_releases_metric_spec.rb1248spec/graphql/mutations/customer_relations/contacts/update_spec.rb1249spec/services/packages/helm/extract_file_metadata_service_spec.rb1250spec/models/ml/candidate_metric_spec.rb1251spec/rubocop/cop/migration/sidekiq_queue_migrate_spec.rb1252spec/serializers/user_entity_spec.rb1253spec/services/ci/runners/assign_runner_service_spec.rb1254spec/lib/gitlab/database/similarity_score_spec.rb1255spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_ml_experiments_metric_spec.rb1256spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb1257spec/lib/gitlab/render_timeout_spec.rb1258spec/rubocop/cop/api/base_spec.rb1259spec/lib/gitlab/database/schema_validation/runner_spec.rb1260spec/lib/gitlab/quick_actions/substitution_definition_spec.rb1261spec/models/concerns/x509_serial_number_attribute_spec.rb1262spec/haml_lint/linter/inline_javascript_spec.rb1263spec/views/shared/_milestones_sort_dropdown.html.haml_spec.rb1264spec/helpers/external_link_helper_spec.rb1265spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb1266spec/lib/gitlab/ci/pipeline/chain/metrics_spec.rb1267spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb1268spec/workers/ci/create_cross_project_pipeline_worker_spec.rb1269spec/graphql/types/key_type_spec.rb1270spec/lib/banzai/filter/service_desk_upload_link_filter_spec.rb1271spec/models/design_management/repository_spec.rb1272spec/lib/gitlab/database/migrations/extension_helpers_spec.rb1273spec/services/groups/update_statistics_service_spec.rb1274spec/lib/gitlab/usage_data_counters/vscode_extension_activity_unique_counter_spec.rb1275spec/lib/gitlab/search/abuse_validators/no_abusive_term_length_validator_spec.rb1276spec/models/groups/feature_setting_spec.rb1277spec/lib/gitlab/usage_data_counters/search_counter_spec.rb1278spec/graphql/types/merge_requests/author_type_spec.rb1279spec/workers/gitlab/github_import/attachments/import_merge_request_worker_spec.rb1280spec/lib/gitlab/import_export/recursive_merge_folders_spec.rb1281spec/serializers/runner_entity_spec.rb1282spec/experiments/force_company_trial_experiment_spec.rb1283spec/rubocop/cop/gitlab/json_spec.rb1284spec/graphql/types/ci_configuration/sast/analyzers_entity_input_type_spec.rb1285spec/lib/gitlab/metrics/elasticsearch_rack_middleware_spec.rb1286spec/lib/gitlab/ci/build/port_spec.rb1287spec/views/devise/confirmations/almost_there.html.haml_spec.rb1288spec/rubocop/cop/migration/remove_concurrent_index_spec.rb1289spec/rubocop/cop/graphql/gid_expected_type_spec.rb1290spec/workers/pages_domain_verification_worker_spec.rb1291spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb1292spec/lib/gitlab/graphql/tracers/timer_tracer_spec.rb1293spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb1294spec/graphql/types/packages/helm/file_metadatum_type_spec.rb1295spec/rubocop/cop/ban_catch_throw_spec.rb1296spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb1297spec/lib/gitlab/memory/watchdog/monitor_state_spec.rb1298spec/workers/ci/schedule_delete_objects_cron_worker_spec.rb1299spec/workers/todos_destroyer/destroyed_issuable_worker_spec.rb1300spec/rubocop/cop/gitlab/deprecate_track_redis_hll_event_spec.rb1301spec/serializers/ci/lint/result_entity_spec.rb1302spec/graphql/types/users/namespace_commit_email_type_spec.rb1303spec/serializers/remote_mirror_entity_spec.rb1304spec/lib/gitlab/quick_actions/dsl_spec.rb1305spec/graphql/types/packages/cleanup/keep_duplicated_package_files_enum_spec.rb1306spec/helpers/plan_limits_helper_spec.rb1307spec/serializers/access_token_entity_base_spec.rb1308spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb1309spec/lib/gitlab/database/schema_validation/validators/missing_triggers_spec.rb1310spec/lib/gitlab/ci/status/core_spec.rb1311spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb1312spec/helpers/tooling/visual_review_helper_spec.rb1313spec/initializers/remove_active_job_execute_callback_spec.rb1314Running all node tests without filter1315Running all node tests without filter1316Running 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/services/merge_requests/push_options_handler_service_spec.rb spec/services/merge_requests/build_service_spec.rb spec/lib/gitlab/auth_spec.rb spec/models/clusters/platforms/kubernetes_spec.rb spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb spec/services/application_settings/update_service_spec.rb spec/lib/gitlab/asciidoc_spec.rb spec/services/issues/clone_service_spec.rb spec/policies/wiki_page_policy_spec.rb spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb spec/lib/gitlab/http_spec.rb spec/lib/feature_spec.rb spec/models/gpg_key_spec.rb spec/models/merge_request_diff_file_spec.rb spec/policies/group_member_policy_spec.rb spec/services/verify_pages_domain_service_spec.rb spec/lib/gitlab/background_migration/backfill_group_features_spec.rb spec/helpers/gitlab_routing_helper_spec.rb spec/routing/group_routing_spec.rb spec/services/work_items/create_service_spec.rb spec/models/suggestion_spec.rb spec/finders/clusters/knative_services_finder_spec.rb spec/models/project_setting_spec.rb spec/models/operations/feature_flags/user_list_spec.rb spec/lib/gitlab/legacy_github_import/pull_request_formatter_spec.rb spec/lib/gitlab/ci/templates/npm_spec.rb spec/finders/metrics/dashboards/annotations_finder_spec.rb spec/services/groups/create_service_spec.rb spec/services/merge_requests/request_review_service_spec.rb spec/helpers/auto_devops_helper_spec.rb spec/services/groups/group_links/create_service_spec.rb spec/services/merge_requests/conflicts/resolve_service_spec.rb spec/lib/gitlab/email/handler/create_issue_handler_spec.rb spec/services/projects/hashed_storage/rollback_repository_service_spec.rb spec/validators/addressable_url_validator_spec.rb spec/lib/feature/gitaly_spec.rb spec/models/release_highlight_spec.rb spec/lib/gitlab/ci/build/image_spec.rb spec/tasks/gitlab/packages/events_rake_spec.rb spec/services/merge_requests/remove_approval_service_spec.rb spec/lib/gitlab/graphql/pagination/active_record_array_connection_spec.rb spec/lib/gitlab/import_export/merge_request_parser_spec.rb spec/serializers/analytics_build_entity_spec.rb spec/lib/gitlab/background_migration/rebalance_partition_id_spec.rb spec/models/ci/commit_with_pipeline_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/jira_active_integrations_metric_spec.rb spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb spec/models/ci/build_trace_metadata_spec.rb spec/lib/gitlab/database/count_spec.rb spec/scripts/review_apps/automated_cleanup_spec.rb spec/policies/board_policy_spec.rb spec/lib/gitlab/sanitizers/exif_spec.rb spec/helpers/timeboxes_helper_spec.rb spec/tasks/gitlab/web_hook_rake_spec.rb spec/models/concerns/ci/maskable_spec.rb spec/services/users/refresh_authorized_projects_service_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexeme/or_spec.rb spec/lib/gitlab/ci/trace/archive_spec.rb spec/services/uploads/destroy_service_spec.rb spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb spec/lib/gitlab/ci/runner_releases_spec.rb spec/lib/gitlab/web_hooks/rate_limiter_spec.rb spec/lib/gitlab/lfs/client_spec.rb spec/graphql/types/snippets/blob_type_spec.rb spec/lib/gitlab/ci/ansi2json/line_spec.rb spec/models/ci/runner_namespace_spec.rb spec/lib/gitlab/content_security_policy/config_loader_spec.rb spec/lib/system_check/simple_executor_spec.rb spec/lib/gitlab/gitaly_client/ref_service_spec.rb spec/lib/gitlab/ci/pipeline/chain/evaluate_workflow_rules_spec.rb spec/finders/metrics/users_starred_dashboards_finder_spec.rb spec/models/x509_issuer_spec.rb spec/models/group_label_spec.rb spec/services/design_management/generate_image_versions_service_spec.rb spec/lib/gitlab/middleware/handle_malformed_strings_spec.rb spec/views/layouts/signup_onboarding.html.haml_spec.rb spec/graphql/resolvers/ci/all_jobs_resolver_spec.rb spec/services/ci/compare_reports_base_service_spec.rb spec/models/analytics/usage_trends/measurement_spec.rb spec/services/draft_notes/destroy_service_spec.rb spec/views/layouts/_head.html.haml_spec.rb spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb spec/lib/safe_zip/extract_params_spec.rb spec/models/concerns/ci/has_variable_spec.rb spec/services/projects/move_project_authorizations_service_spec.rb spec/models/ci/job_variable_spec.rb spec/lib/gitlab/auth/two_factor_auth_verifier_spec.rb spec/models/project_repository_spec.rb spec/workers/merge_requests/close_issue_worker_spec.rb spec/workers/projects/import_export/parallel_project_export_worker_spec.rb spec/lib/api/ci/helpers/runner_spec.rb spec/views/projects/diffs/_viewer.html.haml_spec.rb spec/helpers/award_emoji_helper_spec.rb spec/lib/gitlab/ci/reports/coverage_report_generator_spec.rb spec/graphql/resolvers/user_notes_count_resolver_spec.rb spec/lib/gitlab/prometheus/queries/matched_metric_query_spec.rb spec/graphql/resolvers/nested_groups_resolver_spec.rb spec/components/pajamas/alert_component_spec.rb spec/lib/banzai/reference_parser/mentioned_group_parser_spec.rb spec/lib/gitlab/local_and_remote_storage_migration/pages_deployment_migrater_spec.rb spec/workers/ci/pipeline_artifacts/coverage_report_worker_spec.rb spec/lib/api/entities/ci/pipeline_spec.rb spec/finders/merge_request/metrics_finder_spec.rb spec/serializers/test_report_summary_entity_spec.rb spec/lib/sidebars/user_profile/menus/overview_menu_spec.rb spec/services/import/bitbucket_server_service_spec.rb spec/lib/gitlab/instrumentation/redis_base_spec.rb spec/models/error_tracking/error_event_spec.rb spec/workers/create_pipeline_worker_spec.rb spec/services/users/unban_service_spec.rb spec/workers/clusters/cleanup/project_namespace_worker_spec.rb spec/support_specs/database/multiple_databases_helpers_spec.rb spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb spec/lib/gitlab/background_migration/prune_stale_project_export_jobs_spec.rb spec/workers/metrics/dashboard/sync_dashboards_worker_spec.rb spec/lib/gitlab/config/entry/factory_spec.rb spec/graphql/mutations/clusters/agents/delete_spec.rb spec/views/projects/pipelines/show.html.haml_spec.rb spec/models/group_deploy_token_spec.rb spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb spec/lib/gitlab/phabricator_import/project_creator_spec.rb spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb spec/lib/initializer_connections_spec.rb spec/lib/banzai/filter/footnote_filter_spec.rb spec/rubocop/cop/inject_enterprise_edition_module_spec.rb spec/views/projects/environments/terminal.html.haml_spec.rb spec/policies/alert_management/http_integration_policy_spec.rb spec/services/snippets/update_repository_storage_service_spec.rb spec/rubocop/cop/gitlab/rails_logger_spec.rb spec/views/shared/issuable/_sidebar.html.haml_spec.rb spec/workers/clusters/agents/delete_expired_events_worker_spec.rb spec/models/blob_viewer/base_spec.rb spec/workers/propagate_integration_project_worker_spec.rb spec/lib/gitlab/highlight_spec.rb spec/workers/repository_check/dispatch_worker_spec.rb spec/workers/packages/cleanup_package_file_worker_spec.rb spec/lib/gitlab/auth/saml/config_spec.rb spec/graphql/types/packages/nuget/metadatum_type_spec.rb spec/lib/gitlab/inactive_projects_deletion_warning_tracker_spec.rb spec/models/dependency_proxy/group_setting_spec.rb spec/rubocop/cop_todo_spec.rb spec/graphql/types/todoable_interface_spec.rb spec/lib/error_tracking/collector/sentry_auth_parser_spec.rb spec/models/integrations/base_issue_tracker_spec.rb spec/rubocop/cop/migration/with_lock_retries_with_change_spec.rb spec/models/concerns/limitable_spec.rb spec/graphql/types/ci/pipeline_message_type_spec.rb spec/services/ci/abort_pipelines_service_spec.rb spec/views/events/event/_push.html.haml_spec.rb spec/graphql/types/tree/type_enum_spec.rb spec/services/achievements/award_service_spec.rb spec/lib/gitlab/ci/reports/security/reports_spec.rb spec/rubocop/cop/gitlab/module_with_instance_variables_spec.rb spec/services/issues/base_service_spec.rb spec/serializers/deploy_keys/deploy_key_entity_spec.rb spec/lib/gitlab/database/load_balancing/service_discovery/sampler_spec.rb spec/services/issues/after_create_service_spec.rb spec/lib/backup/file_backup_error_spec.rb spec/lib/gitlab/ci/build/releaser_spec.rb spec/lib/gitlab/github_import/importer/events/reopened_spec.rb spec/lib/gitlab/github_import/parallel_importer_spec.rb spec/finders/groups/accepting_project_transfers_finder_spec.rb spec/workers/ci/build_schedule_worker_spec.rb spec/services/projects/readme_renderer_service_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_users_associating_milestones_to_releases_metric_spec.rb spec/graphql/mutations/customer_relations/contacts/update_spec.rb spec/services/packages/helm/extract_file_metadata_service_spec.rb spec/models/ml/candidate_metric_spec.rb spec/rubocop/cop/migration/sidekiq_queue_migrate_spec.rb spec/serializers/user_entity_spec.rb spec/services/ci/runners/assign_runner_service_spec.rb spec/lib/gitlab/database/similarity_score_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_ml_experiments_metric_spec.rb spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb spec/lib/gitlab/render_timeout_spec.rb spec/rubocop/cop/api/base_spec.rb spec/lib/gitlab/database/schema_validation/runner_spec.rb spec/lib/gitlab/quick_actions/substitution_definition_spec.rb spec/models/concerns/x509_serial_number_attribute_spec.rb spec/haml_lint/linter/inline_javascript_spec.rb spec/views/shared/_milestones_sort_dropdown.html.haml_spec.rb spec/helpers/external_link_helper_spec.rb spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb spec/lib/gitlab/ci/pipeline/chain/metrics_spec.rb spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb spec/workers/ci/create_cross_project_pipeline_worker_spec.rb spec/graphql/types/key_type_spec.rb spec/lib/banzai/filter/service_desk_upload_link_filter_spec.rb spec/models/design_management/repository_spec.rb spec/lib/gitlab/database/migrations/extension_helpers_spec.rb spec/services/groups/update_statistics_service_spec.rb spec/lib/gitlab/usage_data_counters/vscode_extension_activity_unique_counter_spec.rb spec/lib/gitlab/search/abuse_validators/no_abusive_term_length_validator_spec.rb spec/models/groups/feature_setting_spec.rb spec/lib/gitlab/usage_data_counters/search_counter_spec.rb spec/graphql/types/merge_requests/author_type_spec.rb spec/workers/gitlab/github_import/attachments/import_merge_request_worker_spec.rb spec/lib/gitlab/import_export/recursive_merge_folders_spec.rb spec/serializers/runner_entity_spec.rb spec/experiments/force_company_trial_experiment_spec.rb spec/rubocop/cop/gitlab/json_spec.rb spec/graphql/types/ci_configuration/sast/analyzers_entity_input_type_spec.rb spec/lib/gitlab/metrics/elasticsearch_rack_middleware_spec.rb spec/lib/gitlab/ci/build/port_spec.rb spec/views/devise/confirmations/almost_there.html.haml_spec.rb spec/rubocop/cop/migration/remove_concurrent_index_spec.rb spec/rubocop/cop/graphql/gid_expected_type_spec.rb spec/workers/pages_domain_verification_worker_spec.rb spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb spec/lib/gitlab/graphql/tracers/timer_tracer_spec.rb spec/lib/gitlab/metrics/dashboard/transformers/yml/v1/prometheus_metrics_spec.rb spec/graphql/types/packages/helm/file_metadatum_type_spec.rb spec/rubocop/cop/ban_catch_throw_spec.rb spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb spec/lib/gitlab/memory/watchdog/monitor_state_spec.rb spec/workers/ci/schedule_delete_objects_cron_worker_spec.rb spec/workers/todos_destroyer/destroyed_issuable_worker_spec.rb spec/rubocop/cop/gitlab/deprecate_track_redis_hll_event_spec.rb spec/serializers/ci/lint/result_entity_spec.rb spec/graphql/types/users/namespace_commit_email_type_spec.rb spec/serializers/remote_mirror_entity_spec.rb spec/lib/gitlab/quick_actions/dsl_spec.rb spec/graphql/types/packages/cleanup/keep_duplicated_package_files_enum_spec.rb spec/helpers/plan_limits_helper_spec.rb spec/serializers/access_token_entity_base_spec.rb spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb spec/lib/gitlab/database/schema_validation/validators/missing_triggers_spec.rb spec/lib/gitlab/ci/status/core_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb spec/helpers/tooling/visual_review_helper_spec.rb spec/initializers/remove_active_job_execute_callback_spec.rb/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: already initialized constant Gitlab::APP_DIRS_PATTERN1317/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: previous definition of APP_DIRS_PATTERN was here1318/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: already initialized constant Gitlab::VERSION1319/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: previous definition of VERSION was here1320/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: already initialized constant Gitlab::INSTALLATION_TYPE1321/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: previous definition of INSTALLATION_TYPE was here1322/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: already initialized constant Gitlab::HTTP_PROXY_ENV_VARS1323/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: previous definition of HTTP_PROXY_ENV_VARS was here1324Run options: exclude {:quarantine=>true, :level=>"background_migration"}1325Test environment set up in 0.489280074 seconds1326MergeRequests::PushOptionsHandlerService1327 `create` push option1328 with a new branch1329 behaves like a service that can create a merge request1330 creates a merge request with the correct target branch1331 when project has been forked1332 sets the correct source and target project1333 with an existing branch but no open MR1334 behaves like a service that can create a merge request1335 creates a merge request with the correct target branch1336 when project has been forked1337 sets the correct source and target project1338 with an existing branch that has a merge request open1339 behaves like a service that does not create a merge request1340 is expected not to change `MergeRequest.count`1341 behaves like with a deleted branch1342 behaves like a service that does nothing1343 is expected not to change `MergeRequest.count`1344 is expected not to change `MergeRequest.maximum(:updated_at)`1345 behaves like with the project default branch1346 behaves like a service that does nothing1347 is expected not to change `MergeRequest.count`1348 is expected not to change `MergeRequest.maximum(:updated_at)`1349 `merge_when_pipeline_succeeds` push option1350 with a new branch1351 adds an error to the service1352 behaves like a service that does not create a merge request1353 is expected not to change `MergeRequest.count`1354 when coupled with the `create` push option1355 behaves like a service that can create a merge request1356 creates a merge request with the correct target branch1357 when project has been forked1358 sets the correct source and target project1359 behaves like a service that can set the merge request to merge when pipeline succeeds1360 sets auto_merge_enabled1361 with an existing branch but no open MR1362 adds an error to the service1363 behaves like a service that does not create a merge request1364 is expected not to change `MergeRequest.count`1365 when coupled with the `create` push option1366 behaves like a service that can create a merge request1367 creates a merge request with the correct target branch1368 when project has been forked1369 sets the correct source and target project1370 behaves like a service that can set the merge request to merge when pipeline succeeds1371 sets auto_merge_enabled1372 with an existing branch that has a merge request open1373 behaves like a service that does not create a merge request1374 is expected not to change `MergeRequest.count`1375 behaves like a service that can set the merge request to merge when pipeline succeeds1376 sets auto_merge_enabled1377 behaves like with a deleted branch1378 behaves like a service that does nothing1379 is expected not to change `MergeRequest.count`1380 is expected not to change `MergeRequest.maximum(:updated_at)`1381 behaves like with the project default branch1382 behaves like a service that does nothing1383 is expected not to change `MergeRequest.count`1384 is expected not to change `MergeRequest.maximum(:updated_at)`1385 `remove_source_branch` push option1386 with a new branch1387 adds an error to the service1388 behaves like a service that does not create a merge request1389 is expected not to change `MergeRequest.count`1390 when coupled with the `create` push option1391 behaves like a service that can create a merge request1392 creates a merge request with the correct target branch1393 when project has been forked1394 sets the correct source and target project1395 behaves like a service that can remove the source branch when it is merged1396 returns true to force_remove_source_branch?1397 with an existing branch but no open MR1398 adds an error to the service1399 behaves like a service that does not create a merge request1400 is expected not to change `MergeRequest.count`1401 when coupled with the `create` push option1402 behaves like a service that can create a merge request1403 creates a merge request with the correct target branch1404 when project has been forked1405 sets the correct source and target project1406 behaves like a service that can remove the source branch when it is merged1407 returns true to force_remove_source_branch?1408 with an existing branch that has a merge request open1409 behaves like a service that does not create a merge request1410 is expected not to change `MergeRequest.count`1411 behaves like a service that can remove the source branch when it is merged1412 returns true to force_remove_source_branch?1413 behaves like with a deleted branch1414 behaves like a service that does nothing1415 is expected not to change `MergeRequest.count`1416 is expected not to change `MergeRequest.maximum(:updated_at)`1417 behaves like with the project default branch1418 behaves like a service that does nothing1419 is expected not to change `MergeRequest.count`1420 is expected not to change `MergeRequest.maximum(:updated_at)`1421 `target` push option1422 with a new branch1423 adds an error to the service1424 behaves like a service that does not create a merge request1425 is expected not to change `MergeRequest.count`1426 when coupled with the `create` push option1427 behaves like a service that can create a merge request1428 creates a merge request with the correct target branch1429 when project has been forked1430 sets the correct source and target project1431 behaves like a service that can set the target of a merge request1432 sets the target_branch1433 with an existing branch but no open MR1434 adds an error to the service1435 behaves like a service that does not create a merge request1436 is expected not to change `MergeRequest.count`1437 when coupled with the `create` push option1438 behaves like a service that can create a merge request1439 creates a merge request with the correct target branch1440 when project has been forked1441 sets the correct source and target project1442 behaves like a service that can set the target of a merge request1443 sets the target_branch1444 with an existing branch that has a merge request open1445 behaves like a service that does not create a merge request1446 is expected not to change `MergeRequest.count`1447 behaves like a service that can set the target of a merge request1448 sets the target_branch1449 behaves like with a deleted branch1450 behaves like a service that does nothing1451 is expected not to change `MergeRequest.count`1452 is expected not to change `MergeRequest.maximum(:updated_at)`1453 behaves like with the project default branch1454 behaves like a service that does nothing1455 is expected not to change `MergeRequest.count`1456 is expected not to change `MergeRequest.maximum(:updated_at)`1457 `title` push option1458 with a new branch1459 adds an error to the service1460 behaves like a service that does not create a merge request1461 is expected not to change `MergeRequest.count`1462 when coupled with the `create` push option1463 behaves like a service that can create a merge request1464 creates a merge request with the correct target branch1465 when project has been forked1466 sets the correct source and target project1467 behaves like a service that can set the title of a merge request1468 sets the title1469 with an existing branch but no open MR1470 adds an error to the service1471 behaves like a service that does not create a merge request1472 is expected not to change `MergeRequest.count`1473 when coupled with the `create` push option1474 behaves like a service that can create a merge request1475 creates a merge request with the correct target branch1476 when project has been forked1477 sets the correct source and target project1478 behaves like a service that can set the title of a merge request1479 sets the title1480 with an existing branch that has a merge request open1481 behaves like a service that does not create a merge request1482 is expected not to change `MergeRequest.count`1483 behaves like a service that can set the title of a merge request1484 sets the title1485 behaves like with a deleted branch1486 behaves like a service that does nothing1487 is expected not to change `MergeRequest.count`1488 is expected not to change `MergeRequest.maximum(:updated_at)`1489 behaves like with the project default branch1490 behaves like a service that does nothing1491 is expected not to change `MergeRequest.count`1492 is expected not to change `MergeRequest.maximum(:updated_at)`1493 `description` push option1494 with a new branch1495 adds an error to the service1496 behaves like a service that does not create a merge request1497 is expected not to change `MergeRequest.count`1498 when coupled with the `create` push option1499 behaves like a service that can create a merge request1500 creates a merge request with the correct target branch1501 when project has been forked1502 sets the correct source and target project1503 behaves like a service that can set the description of a merge request1504 sets the description1505 with an existing branch but no open MR1506 adds an error to the service1507 behaves like a service that does not create a merge request1508 is expected not to change `MergeRequest.count`1509 when coupled with the `create` push option1510 behaves like a service that can create a merge request1511 creates a merge request with the correct target branch1512 when project has been forked1513 sets the correct source and target project1514 behaves like a service that can set the description of a merge request1515 sets the description1516 with an existing branch that has a merge request open1517 behaves like a service that does not create a merge request1518 is expected not to change `MergeRequest.count`1519 behaves like a service that can set the description of a merge request1520 sets the description1521 with a multiline description1522 behaves like a service that does not create a merge request1523 is expected not to change `MergeRequest.count`1524 behaves like a service that can set the multiline description of a merge request1525 sets the multiline description1526 behaves like with a deleted branch1527 behaves like a service that does nothing1528 is expected not to change `MergeRequest.count`1529 is expected not to change `MergeRequest.maximum(:updated_at)`1530 behaves like with the project default branch1531 behaves like a service that does nothing1532 is expected not to change `MergeRequest.count`1533 is expected not to change `MergeRequest.maximum(:updated_at)`1534 `draft` push option1535 with a new branch1536 adds an error to the service1537 behaves like a service that does not create a merge request1538 is expected not to change `MergeRequest.count`1539 when coupled with the `create` push option1540 behaves like a service that can create a merge request1541 creates a merge request with the correct target branch1542 when project has been forked1543 sets the correct source and target project1544 behaves like a service that can set the draft of a merge request1545 sets the draft1546 with an existing branch but no open MR1547 adds an error to the service1548 behaves like a service that does not create a merge request1549 is expected not to change `MergeRequest.count`1550 when coupled with the `create` push option1551 behaves like a service that can create a merge request1552 creates a merge request with the correct target branch1553 when project has been forked1554 sets the correct source and target project1555 behaves like a service that can set the draft of a merge request1556 sets the draft1557 with an existing branch that has a merge request open1558 behaves like a service that does not create a merge request1559 is expected not to change `MergeRequest.count`1560 behaves like a service that can set the draft of a merge request1561 sets the draft1562 draft title provided while `draft` push option is set to false1563 behaves like a service that can create a merge request1564 creates a merge request with the correct target branch1565 when project has been forked1566 sets the correct source and target project1567 behaves like a service that can set the draft of a merge request1568 sets the draft1569 behaves like with a deleted branch1570 behaves like a service that does nothing1571 is expected not to change `MergeRequest.count`1572 is expected not to change `MergeRequest.maximum(:updated_at)`1573 behaves like with the project default branch1574 behaves like a service that does nothing1575 is expected not to change `MergeRequest.count`1576 is expected not to change `MergeRequest.maximum(:updated_at)`1577 `label` push option1578 with a new branch1579 adds an error to the service1580 behaves like a service that does not create a merge request1581 is expected not to change `MergeRequest.count`1582 when coupled with the `create` push option1583 behaves like a service that can create a merge request1584 creates a merge request with the correct target branch1585 when project has been forked1586 sets the correct source and target project1587 behaves like a service that can change labels of a merge request1588 changes label count1589 with an existing branch but no open MR1590 adds an error to the service1591 behaves like a service that does not create a merge request1592 is expected not to change `MergeRequest.count`1593 when coupled with the `create` push option1594 behaves like a service that can create a merge request1595 creates a merge request with the correct target branch1596 when project has been forked1597 sets the correct source and target project1598 behaves like a service that can change labels of a merge request1599 changes label count1600 with an existing branch that has a merge request open1601 behaves like a service that does not create a merge request1602 is expected not to change `MergeRequest.count`1603 behaves like a service that can change labels of a merge request1604 changes label count1605 behaves like with a deleted branch1606 behaves like a service that does nothing1607 is expected not to change `MergeRequest.count`1608 is expected not to change `MergeRequest.maximum(:updated_at)`1609 behaves like with the project default branch1610 behaves like a service that does nothing1611 is expected not to change `MergeRequest.count`1612 is expected not to change `MergeRequest.maximum(:updated_at)`1613 `unlabel` push option1614 with a new branch1615 adds an error to the service1616 behaves like a service that does not create a merge request1617 is expected not to change `MergeRequest.count`1618 when coupled with the `create` push option1619 behaves like a service that can create a merge request1620 creates a merge request with the correct target branch1621 when project has been forked1622 sets the correct source and target project1623 behaves like a service that can change labels of a merge request1624 changes label count1625 with an existing branch but no open MR1626 adds an error to the service1627 behaves like a service that does not create a merge request1628 is expected not to change `MergeRequest.count`1629 when coupled with the `create` push option1630 behaves like a service that can create a merge request1631 creates a merge request with the correct target branch1632 when project has been forked1633 sets the correct source and target project1634 behaves like a service that can change labels of a merge request1635 changes label count1636 with an existing branch that has a merge request open1637 behaves like a service that does not create a merge request1638 is expected not to change `MergeRequest.count`1639 behaves like a service that can change labels of a merge request1640 changes label count1641 behaves like with a deleted branch1642 behaves like a service that does nothing1643 is expected not to change `MergeRequest.count`1644 is expected not to change `MergeRequest.maximum(:updated_at)`1645 behaves like with the project default branch1646 behaves like a service that does nothing1647 is expected not to change `MergeRequest.count`1648 is expected not to change `MergeRequest.maximum(:updated_at)`1649 `milestone` push option1650 with a valid milestone1651 with a new branch1652 adds an error to the service1653 behaves like a service that does not create a merge request1654 is expected not to change `MergeRequest.count`1655 when coupled with the `create` push option1656 behaves like a service that can create a merge request1657 creates a merge request with the correct target branch1658 when project has been forked1659 sets the correct source and target project1660 behaves like a service that can set the milestone of a merge request1661 sets the milestone1662 with an existing branch but no open MR1663 adds an error to the service1664 behaves like a service that does not create a merge request1665 is expected not to change `MergeRequest.count`1666 when coupled with the `create` push option1667 behaves like a service that can create a merge request1668 creates a merge request with the correct target branch1669 when project has been forked1670 sets the correct source and target project1671 behaves like a service that can set the milestone of a merge request1672 sets the milestone1673 with an existing branch that has a merge request open1674 behaves like a service that does not create a merge request1675 is expected not to change `MergeRequest.count`1676 behaves like a service that can set the milestone of a merge request1677 sets the milestone1678 behaves like with a deleted branch1679 behaves like a service that does nothing1680 is expected not to change `MergeRequest.count`1681 is expected not to change `MergeRequest.maximum(:updated_at)`1682 behaves like with the project default branch1683 behaves like a service that does nothing1684 is expected not to change `MergeRequest.count`1685 is expected not to change `MergeRequest.maximum(:updated_at)`1686 with invalid milestone1687 behaves like a service that can set the milestone of a merge request1688 sets the milestone1689 with an ancestor milestone1690 with immediate parent milestone1691 behaves like a service that can create a merge request1692 creates a merge request with the correct target branch1693 when project has been forked1694 sets the correct source and target project1695 behaves like a service that can set the milestone of a merge request1696 sets the milestone1697 with multi-level ancestor milestone1698 behaves like a service that can create a merge request1699 creates a merge request with the correct target branch1700 when project has been forked1701 sets the correct source and target project1702 behaves like a service that can set the milestone of a merge request1703 sets the milestone1704 `assign` push option1705 behaves like with a new branch1706 adds an error to the service1707 behaves like a service that does not create a merge request1708 is expected not to change `MergeRequest.count`1709 behaves like when coupled with the `create` push option1710 behaves like a service that can create a merge request1711 creates a merge request with the correct target branch1712 when project has been forked1713 sets the correct source and target project1714 behaves like a service that can change assignees of a merge request1715 changes assignee count1716 behaves like with an existing branch but no open MR1717 adds an error to the service1718 behaves like a service that does not create a merge request1719 is expected not to change `MergeRequest.count`1720 behaves like when coupled with the `create` push option1721 behaves like a service that can create a merge request1722 creates a merge request with the correct target branch1723 when project has been forked1724 sets the correct source and target project1725 behaves like a service that can change assignees of a merge request1726 changes assignee count1727 behaves like with an existing branch that has a merge request open in foss1728 behaves like a service that does not create a merge request1729 is expected not to change `MergeRequest.count`1730 behaves like a service that can change assignees of a merge request1731 changes assignee count1732 behaves like with a deleted branch1733 behaves like a service that does nothing1734 is expected not to change `MergeRequest.count`1735 is expected not to change `MergeRequest.maximum(:updated_at)`1736 behaves like with the project default branch1737 behaves like a service that does nothing1738 is expected not to change `MergeRequest.count`1739 is expected not to change `MergeRequest.maximum(:updated_at)`1740 when passing in usernames1741 behaves like with an existing branch that has a merge request open in foss1742 behaves like a service that does not create a merge request1743 is expected not to change `MergeRequest.count`1744 behaves like a service that can change assignees of a merge request1745 changes assignee count1746 `unassign` push option1747 behaves like with a new branch1748 adds an error to the service1749 behaves like a service that does not create a merge request1750 is expected not to change `MergeRequest.count`1751 behaves like when coupled with the `create` push option1752 behaves like a service that can create a merge request1753 creates a merge request with the correct target branch1754 when project has been forked1755 sets the correct source and target project1756 behaves like a service that can change assignees of a merge request1757 changes assignee count1758 behaves like with an existing branch but no open MR1759 adds an error to the service1760 behaves like a service that does not create a merge request1761 is expected not to change `MergeRequest.count`1762 behaves like when coupled with the `create` push option1763 behaves like a service that can create a merge request1764 creates a merge request with the correct target branch1765 when project has been forked1766 sets the correct source and target project1767 behaves like a service that can change assignees of a merge request1768 changes assignee count1769 behaves like with an existing branch that has a merge request open in foss1770 behaves like a service that does not create a merge request1771 is expected not to change `MergeRequest.count`1772 behaves like a service that can change assignees of a merge request1773 changes assignee count1774 behaves like with a deleted branch1775 behaves like a service that does nothing1776 is expected not to change `MergeRequest.count`1777 is expected not to change `MergeRequest.maximum(:updated_at)`1778 behaves like with the project default branch1779 behaves like a service that does nothing1780 is expected not to change `MergeRequest.count`1781 is expected not to change `MergeRequest.maximum(:updated_at)`1782 when passing in usernames1783 behaves like with an existing branch that has a merge request open in foss1784 behaves like a service that does not create a merge request1785 is expected not to change `MergeRequest.count`1786 behaves like a service that can change assignees of a merge request1787 changes assignee count1788 multiple pushed branches1789 creates a merge request per branch1790 when there are too many pushed branches1791 records an error1792 no push options1793 behaves like a service that does nothing1794 is expected not to change `MergeRequest.count`1795 is expected not to change `MergeRequest.maximum(:updated_at)`1796 no user1797 records an error1798 unauthorized user1799 records an error1800 handling unexpected exceptions1801 records an error1802 writes to Gitlab::AppLogger1803 when target is not a valid branch name1804 records an error1805 when MRs are not enabled1806 records an error1807 when MR has ActiveRecord errors1808 adds the error to its errors property1809MergeRequests::BuildService1810 #execute1811 calls the compare service with the correct arguments1812 does not assign force_remove_source_branch1813 with force_remove_source_branch parameter when the user is authorized1814 assigns force_remove_source_branch1815 with project setting remove_source_branch_after_merge false1816 assigns force_remove_source_branch1817 with project setting remove_source_branch_after_merge true1818 assigns force_remove_source_branch1819 with force_remove_source_branch parameter false1820 does not assign force_remove_source_branch1821 missing source branch1822 behaves like forbids the merge request from being created1823 returns that the merge request cannot be created1824 adds an error message to the merge request1825 when target branch is missing1826 when source branch1827 is not the repository default branch1828 creates compare object with target branch as default branch1829 behaves like allows the merge request to be created1830 is expected to eq true1831 the repository default branch1832 behaves like forbids the merge request from being created1833 returns that the merge request cannot be created1834 adds an error message to the merge request1835 when source project is different from the target project1836 creates compare object with target branch as default branch1837 behaves like allows the merge request to be created1838 is expected to eq true1839 same source and target branch1840 behaves like forbids the merge request from being created1841 returns that the merge request cannot be created1842 adds an error message to the merge request1843 no commits in the diff1844 adds a Draft prefix to the merge request title1845 behaves like allows the merge request to be created1846 is expected to eq true1847 one commit in the diff1848 uses the title of the commit as the title of the merge request1849 uses the description of the commit as the description of the merge request1850 behaves like allows the merge request to be created1851 is expected to eq true1852 behaves like with a Default.md template1853 the template description is preferred1854 merge request already has a description set1855 keeps the description from the initial params1856 commit has no description1857 uses the title of the commit as the title of the merge request1858 sets the description to nil1859 behaves like with a Default.md template1860 the template description is preferred1861 when the source branch matches an issue1862 factory: :jira_integration, source_branch: "FOO-123-fix-issue", closing_message: "Closes FOO-123"1863 uses the title of the commit as the title of the merge request1864 appends the closing description1865 a Default.md template is defined1866 appends the closing description to a Default.md template1867 factory: :jira_integration, source_branch: "fix-issue", closing_message: nil1868 uses the title of the commit as the title of the merge request1869 appends the closing description1870 a Default.md template is defined1871 appends the closing description to a Default.md template1872 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", closing_message: "Closes #123"1873 uses the title of the commit as the title of the merge request1874 appends the closing description1875 a Default.md template is defined1876 appends the closing description to a Default.md template1877 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", closing_message: nil1878 uses the title of the commit as the title of the merge request1879 appends the closing description1880 a Default.md template is defined1881 appends the closing description to a Default.md template1882 factory: nil, source_branch: "123-fix-issue", closing_message: "Closes #123"1883 uses the title of the commit as the title of the merge request1884 appends the closing description1885 a Default.md template is defined1886 appends the closing description to a Default.md template1887 factory: nil, source_branch: "fix-issue", closing_message: nil1888 uses the title of the commit as the title of the merge request1889 appends the closing description1890 a Default.md template is defined1891 appends the closing description to a Default.md template1892 when the source branch matches an internal issue1893 assigns the issue label and milestone1894 when milestone_id and label_ids are shared in the params1895 assigns milestone_id and label_ids instead of issue labels and milestone1896 when a milestone is from another project1897 sets milestone to nil1898 no multi-line commit messages in the diff1899 uses the title of the branch as the merge request title1900 does not add a description1901 behaves like allows the merge request to be created1902 is expected to eq true1903 behaves like with a Default.md template1904 the template description is preferred1905 merge request already has a description set1906 keeps the description from the initial params1907 a Default.md template is defined1908 keeps the description from the initial params1909 when the source branch matches an issue1910 factory: :jira_integration, source_branch: "FOO-123-fix-issue", title: "Resolve FOO-123 \"Fix issue\"", closing_message: "Closes FOO-123"1911 sets the correct title1912 sets the closing description1913 a Default.md template is defined1914 appends the closing description to a Default.md template1915 factory: :jira_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1916 sets the correct title1917 sets the closing description1918 a Default.md template is defined1919 appends the closing description to a Default.md template1920 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", title: "Resolve #123 \"Fix issue\"", closing_message: "Closes #123"1921 sets the correct title1922 sets the closing description1923 a Default.md template is defined1924 appends the closing description to a Default.md template1925 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1926 sets the correct title1927 sets the closing description1928 a Default.md template is defined1929 appends the closing description to a Default.md template1930 factory: nil, source_branch: "123-fix-issue", title: "Resolve \"A bug\"", closing_message: "Closes #123"1931 sets the correct title1932 sets the closing description1933 a Default.md template is defined1934 appends the closing description to a Default.md template1935 factory: nil, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1936 sets the correct title1937 sets the closing description1938 a Default.md template is defined1939 appends the closing description to a Default.md template1940 factory: nil, source_branch: "124-fix-issue", title: "124 fix issue", closing_message: nil1941 sets the correct title1942 sets the closing description1943 a Default.md template is defined1944 appends the closing description to a Default.md template1945 a multi-line commit message in the diff1946 uses the first line of the first multi-line commit message as the title1947 adds the remaining lines of the first multi-line commit message as the description1948 behaves like allows the merge request to be created1949 is expected to eq true1950 behaves like with a Default.md template1951 the template description is preferred1952 when the source branch matches an issue1953 factory: :jira_integration, source_branch: "FOO-123-fix-issue", title: "Resolve FOO-123 \"Fix issue\"", closing_message: "Closes FOO-123"1954 sets the correct title1955 sets the closing description1956 a Default.md template is defined1957 appends the closing description to a Default.md template1958 factory: :jira_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1959 sets the correct title1960 sets the closing description1961 a Default.md template is defined1962 appends the closing description to a Default.md template1963 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", title: "Resolve #123 \"Fix issue\"", closing_message: "Closes #123"1964 sets the correct title1965 sets the closing description1966 a Default.md template is defined1967 appends the closing description to a Default.md template1968 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1969 sets the correct title1970 sets the closing description1971 a Default.md template is defined1972 appends the closing description to a Default.md template1973 factory: nil, source_branch: "123-fix-issue", title: "Resolve \"A bug\"", closing_message: "Closes #123"1974 sets the correct title1975 sets the closing description1976 a Default.md template is defined1977 appends the closing description to a Default.md template1978 factory: nil, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1979 sets the correct title1980 sets the closing description1981 a Default.md template is defined1982 appends the closing description to a Default.md template1983 factory: nil, source_branch: "124-fix-issue", title: "124 fix issue", closing_message: nil1984 sets the correct title1985 sets the closing description1986 a Default.md template is defined1987 appends the closing description to a Default.md template1988 when the issue is not accessible to user1989 uses the first line of the first multi-line commit message as the title1990 adds the remaining lines of the first multi-line commit message as the description1991 when the issue is confidential1992 uses the first line of the first multi-line commit message as the title1993 adds the remaining lines of the first multi-line commit message as the description1994 source branch does not exist1995 behaves like forbids the merge request from being created1996 returns that the merge request cannot be created1997 adds an error message to the merge request1998 target branch does not exist1999 behaves like forbids the merge request from being created2000 returns that the merge request cannot be created2001 adds an error message to the merge request2002 both source and target branches do not exist2003 behaves like forbids the merge request from being created2004 returns that the merge request cannot be created2005 adds an error message to the merge request2006 upstream project has disabled merge requests2007 sets target project correctly2008 target_project is set and accessible by current_user2009 sets target project correctly2010 target_project is set but not accessible by current_user2011 sets target project correctly2012 target_project is set but repo is not accessible by current_user2013 sets target project correctly2014 source_project is set and accessible by current_user2015 sets source project correctly2016 source_project is set but not accessible by current_user2017 sets source project correctly2018 source_project is set but the user cannot create merge requests from the project2019 sets the source_project correctly2020 target_project is not in the fork network of source_project2021 adds an error to the merge request2022 target_project is in the fork network of source project but no longer accessible2023 sets the target_project correctly2024 when specifying target branch in the description2025 sets the attribute from the quick actions2026 when assigning labels2027 for members with less than developer access2028 is not allowed2029 for users allowed to assign labels2030 for labels in the project2031 is allowed for developers2032 for unrelated labels2033 only assigns related labels2034 #assign_description_from_repository_template2035 performs no action if the merge request description is not blank2036 when a Default template is not found2037 does not modify the merge request description2038 when a Default template is found2039 when its contents cannot be retrieved2040 does not modify the merge request description2041 when its contents can be retrieved2042 modifies the merge request description2043 #replace_variables_in_description2044 when the merge request description is blank2045 does not update the description2046 when the merge request description contains template variables2047 when there are multiple commits in the diff2048 replaces the variables in the description2049 when there are no commits in the diff2050 replaces the variables in the description2051Gitlab::Auth2052 constants2053 API_SCOPES contains all scopes for API access2054 ADMIN_SCOPES contains all scopes for ADMIN access2055 REPOSITORY_SCOPES contains all scopes for REPOSITORY access2056 OPENID_SCOPES contains all scopes for OpenID Connect2057 DEFAULT_SCOPES contains all default scopes2058 available_scopes2059 contains all non-default scopes2060 contains for non-admin user all non-default scopes without ADMIN access2061 contains for admin user all non-default scopes with ADMIN access2062 optional_scopes contains all non-default scopes2063 with feature flag disabled2064 contains all non-default scopes2065 contains for admin user all non-default scopes with ADMIN access2066 optional_scopes contains all non-default scopes2067 registry_scopes2068 when registry is disabled2069 is empty2070 when registry is enabled2071 contains all registry related scopes2072 find_for_git_client2073 recognizes other ci services2074 recognizes master passwords2075 allows user authenticating from the same ip2076 blocks user authenticating from two distinct ips2077 returns double nil for invalid credentials2078 throws an error suggesting user create a PAT when internal auth is disabled2079 rate limiting2080 when IP is already banned2081 raises an IpBlacklisted exception2082 for CI registry user2083 skips rate limiting for successful auth2084 skips rate limiting for failed auth2085 for other users2086 resets rate limit for successful auth2087 rate limits a user by unique IPs2088 registers failure for failed auth2089 build token2090 for running build2091 recognises user-less build2092 recognises user token2093 recognises project level bot access token2094 recognises group level bot access token2095 fails with blocked user token2096 username is not gitlab-ci-token2097 fails to authenticate2098 for created build2099 denies authentication2100 for waiting_for_resource build2101 denies authentication2102 for preparing build2103 denies authentication2104 for pending build2105 denies authentication2106 for success build2107 denies authentication2108 for failed build2109 denies authentication2110 for canceled build2111 denies authentication2112 for skipped build2113 denies authentication2114 for manual build2115 denies authentication2116 for scheduled build2117 denies authentication2118 while using LFS authenticate2119 recognizes user lfs tokens2120 recognizes deploy key lfs tokens2121 does not try password auth before oauth2122 grants deploy key write permissions2123 does not grant deploy key write permissions2124 while using OAuth tokens as passwords2125 does not try password auth before oauth2126 with specified scopes2127 scopes: "api", abilities: [:read_project, :download_code, :read_container_image, :push_code, :create_container_image, :admin_container_image]2128 authenticates with correct abilities2129 scopes: "read_api", abilities: [:read_project, :download_code, :read_container_image]2130 authenticates with correct abilities2131 scopes: "read_repository", abilities: [:download_code]2132 authenticates with correct abilities2133 scopes: "write_repository", abilities: [:download_code, :push_code]2134 authenticates with correct abilities2135 scopes: "read_user", abilities: []2136 authenticates with correct abilities2137 scopes: "sudo", abilities: []2138 authenticates with correct abilities2139 scopes: "openid", abilities: []2140 authenticates with correct abilities2141 scopes: "profile", abilities: []2142 authenticates with correct abilities2143 scopes: "email", abilities: []2144 authenticates with correct abilities2145 blocked user2146 behaves like an oauth failure2147 fails2148 orphaned token2149 behaves like an oauth failure2150 fails2151 while using personal access tokens as passwords2152 succeeds for personal access tokens with the `api` scope2153 succeeds for personal access tokens with the `read_repository` scope2154 succeeds for personal access tokens with the `write_repository` scope2155 succeeds if it is an impersonation token2156 fails if it is an impersonation token but impersonation is blocked2157 limits abilities based on scope2158 fails if password is nil2159 updates last_used_at column if token is valid2160 when registry is enabled2161 succeeds for personal access tokens with the `read_registry` scope2162 when user is blocked2163 fails if user is blocked2164 when using a resource access token2165 when using a personal namespace project access token2166 when the token belongs to the project2167 behaves like with a valid access token2168 successfully authenticates the project bot2169 successfully authenticates the project bot with a nil project2170 behaves like with an invalid access token2171 fails for a non-member2172 when project bot user is blocked2173 fails for a blocked project bot2174 when in a group namespace2175 when using a project access token2176 when token user belongs to the project2177 behaves like with a valid access token2178 successfully authenticates the project bot2179 successfully authenticates the project bot with a nil project2180 behaves like with an invalid access token2181 fails for a non-member2182 when project bot user is blocked2183 fails for a blocked project bot2184 when using a group access token2185 when the token belongs to the group2186 behaves like with a valid access token2187 successfully authenticates the project bot2188 successfully authenticates the project bot with a nil project2189 behaves like with an invalid access token2190 fails for a non-member2191 when project bot user is blocked2192 fails for a blocked project bot2193 when the token belongs to a group via project share2194 behaves like with a valid access token2195 successfully authenticates the project bot2196 successfully authenticates the project bot with a nil project2197 while using regular user and password2198 fails for a blocked user2199 goes through lfs authentication2200 goes through oauth authentication when the username is oauth22201 when 2fa is enabled globally2202 fails if grace period expired2203 goes through if grace period is not expired yet2204 when 2fa is enabled personally2205 fails2206 while using deploy tokens2207 when deploy token and user have the same username2208 succeeds for the token2209 succeeds for the user2210 when deploy tokens have the same username2211 and belong to the same project2212 succeeds for the right token2213 fails for the wrong token2214 and belong to different projects2215 succeeds for the right token2216 fails for the wrong token2217 when the deploy token has read_repository as scope2218 succeeds when login and token are valid2219 succeeds when custom login and token are valid2220 does not attempt to rate limit unique IPs for a deploy token2221 fails when login is not valid2222 fails when token is not valid2223 fails if token is nil2224 fails if token is not related to project2225 fails if token has been revoked2226 when the deploy token is of group type2227 succeeds when login and a group deploy token are valid2228 fails if token is not related to group2229 when the deploy token has read_registry as a scope2230 when registry enabled2231 succeeds when login and a project token are valid2232 behaves like registry token scope2233 fails when login is not valid2234 fails when token is not valid2235 fails if token is nil2236 fails if token is not related to project2237 fails if token has been revoked2238 behaves like deploy token with disabled feature2239 when registry disabled2240 fails when login and token are valid2241 when repository is disabled2242 fails when login and token are valid2243 when the deploy token has write_registry as a scope2244 when registry enabled2245 succeeds when login and a project token are valid2246 behaves like registry token scope2247 fails when login is not valid2248 fails when token is not valid2249 fails if token is nil2250 fails if token is not related to project2251 fails if token has been revoked2252 behaves like deploy token with disabled feature2253 when registry disabled2254 fails when login and token are valid2255 when repository is disabled2256 fails when login and token are valid2257 #build_access_token_check2258 for running build2259 executes query using primary database2260 find_with_user_password2261 finds user by valid login/password2262 finds user by valid email/password with case-insensitive email2263 finds user by valid username/password with case-insensitive username2264 does not find user with invalid password2265 does not find user with invalid login2266 allows user authenticating from the same ip2267 blocks user authenticating from two distinct ips2268 finds the user in deactivated state2269 does not find user in blocked state2270 does not find user in locked state2271 does not find user in ldap_blocked state2272 does not find user in blocked_pending_approval state2273 with increment_failed_attempts2274 increments failed_attempts when true and password is incorrect2275 resets failed_attempts when true and password is correct2276 does not increment failed_attempts by default2277 when the database is read-only2278 does not increment failed_attempts when true and password is incorrect2279 does not reset failed_attempts when true and password is correct2280 with ldap enabled2281 tries to autheticate with db before ldap2282 does not find user by using ldap as fallback to for authentication2283 find new user by using ldap as fallback to for authentication2284 with password authentication disabled for Git2285 does not find user by valid login/password2286 with ldap enabled2287 does not find non-ldap user by valid login/password2288 .resource_bot_scopes2289 is expected to include :api and :read_api2290 is expected to include :read_repository and :write_repository2291 is expected to include nil2292Clusters::Platforms::Kubernetes2293 is expected to belong to cluster required: false2294 is expected to be a kind of Gitlab::Kubernetes2295 is expected to respond to #ca_pem2296 is expected to validate that :namespace is not ‹"gitlab-managed-apps"›2297 is expected to validate that :api_url cannot be empty/falsy2298 is expected to validate that :token cannot be empty/falsy2299 is expected to delegate #enabled? to the #cluster object2300 is expected to delegate #provided_by_user? to the #cluster object2301 is expected to nullify if blank :namespace2302 behaves like having unique enum values2303 has unique values in "authorization_type"2304 default values2305 is expected to eq "rbac"2306 before_validation2307 when namespace includes upper case2308 converts to lower case2309 validation2310 when validates namespace2311 when namespace is nil2312 is expected to be truthy2313 when namespace is longer than 632314 is expected to be falsey2315 when namespace includes invalid character2316 is expected to be falsey2317 when namespace is vaild2318 is expected to be truthy2319 for group cluster2320 is expected to be falsey2321 when validates api_url2322 when api_url is invalid url2323 is expected to be falsey2324 when api_url is nil2325 is expected to be falsey2326 when api_url is valid url2327 is expected to be truthy2328 when api_url is localhost2329 is expected to be falsey2330 Application settings allows local requests2331 is expected to be truthy2332 when validates token2333 when token is nil2334 is expected to be falsey2335 ca_cert2336 with a valid certificate2337 is expected to be truthy2338 with an invalid certificate2339 is expected to be falsey2340 but the certificate is not being updated2341 is expected to be truthy2342 with no certificate2343 is expected to be truthy2344 when using reserved namespaces2345 when no namespace is manually assigned2346 is expected to be valid2347 when no reserved namespace is assigned2348 is expected to be valid2349 when reserved namespace is assigned2350 is expected not to be valid2351 #kubeclient2352 is expected to be an instance of Gitlab::Kubernetes::KubeClient2353 ca_pem is a single certificate2354 adds it to cert_store2355 ca_pem is a chain2356 fixture_path: "spec/fixtures/clusters/root_certificate.pem"2357 includes chain of certificates2358 fixture_path: "spec/fixtures/clusters/intermediate_certificate.pem"2359 includes chain of certificates2360 fixture_path: "spec/fixtures/clusters/leaf_certificate.pem"2361 includes chain of certificates2362 #rbac?2363 is expected to be truthy2364 #predefined_variables2365 is expected to include {:key => "KUBE_URL", :value => "https://kubernetes.example.com", :public => true}2366 platform has a CA certificate2367 is expected to include {:key => "KUBE_CA_PEM", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true}2368 is expected to include {:key => "KUBE_CA_PEM_FILE", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true, :file => true}2369 cluster is managed by project2370 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2371 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}2372 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2373 kubernetes namespace exists2374 is expected to include {:key => :fake_key, :value => "fake_value"}2375 kubernetes namespace does not exist2376 is expected not to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2377 is expected not to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}2378 is expected not to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2379 cluster is unmanaged2380 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2381 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}2382 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2383 custom namespace is provided2384 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}2385 is expected to include {:key => "KUBE_NAMESPACE", :value => "custom-namespace"}2386 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}2387 cluster variables2388 is expected to include {:key => :fake_key, :value => "fake_value"}2389 #terminals2390 with invalid pods2391 returns no terminals2392 with valid pods2393 returns terminals2394 uses max session time from settings2395 #calculate_reactive_cache_for2396 when kubernetes responds with valid deployments2397 on a project level cluster2398 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}2399 when reading ingress raises NoMethodError2400 when version request succeeds2401 when server min version is < 232402 does not raise error2403 returns empty array for the K8s component keys2404 when server min version is >= 232405 does raise error2406 when the version request fails2407 tracks error and returns empty arrays2408 on a group level cluster2409 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}2410 on an instance level cluster2411 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}2412 when the kubernetes integration is disabled2413 is expected to be nil2414 when there are ignored K8s connections errors2415 Gitlab::UrlBlocker::BlockedUrlError2416 does not raise error2417 returns empty array for the K8s component keys2418 logs the error2419 Kubeclient::HttpError2420 does not raise error2421 returns empty array for the K8s component keys2422 logs the error2423 Errno::ECONNREFUSED2424 does not raise error2425 returns empty array for the K8s component keys2426 logs the error2427 URI::InvalidURIError2428 does not raise error2429 returns empty array for the K8s component keys2430 logs the error2431 Errno::EHOSTUNREACH2432 does not raise error2433 returns empty array for the K8s component keys2434 logs the error2435 OpenSSL::X509::StoreError2436 does not raise error2437 returns empty array for the K8s component keys2438 logs the error2439 OpenSSL::SSL::SSLError2440 does not raise error2441 returns empty array for the K8s component keys2442 logs the error2443 when kubernetes responds with 500s2444 does not raise kubeclient http error2445 when kubernetes responds with 404s2446 is expected to eq {:deployments=>[], :ingresses=>[], :pods=>[]}2447 #rollout_status2448 legacy deployments based on app label2449 only legacy deployments2450 contains nothing2451 deployment with no pods2452 returns a valid status with matching deployments2453 new deployment based on annotations2454 contains only matching deployments2455 with no deployments but there are pods2456 returns an empty array2457 with valid deployments2458 creates a matching RolloutStatus2459 with canary ingress2460 has canary ingress2461 with empty list of deployments2462 creates a matching RolloutStatus2463 when the pod track does not match the deployment track2464 does not return the pod2465 when the pod track is not stable2466 the pod is not stable2467 when the pod track is stable2468 the pod is stable2469 when the pod track is not provided2470 the pod is stable2471 when the number of matching pods does not match the number of replicas2472 returns a pending pod for each missing replica2473 when pending pods are returned for missing replicas2474 returns the correct track for the pending pods2475 when two deployments with the same track are missing instances2476 returns the correct number of pending pods2477 with multiple matching deployments2478 returns each pod once2479 when cache keys are defaulted2480 does not raise error2481 #ingresses2482 when there is an ingress in the namespace2483 returns an ingress2484 when there are no ingresss in the namespace2485 returns nothing2486 #patch_ingress2487 when there is an ingress in the namespace2488 returns an ingress2489 when there are no ingresss in the namespace2490 raises an error2491 #authorization_type2492 behaves like having enum with nil value2493 has enum with nil value2494layouts/nav/sidebar/_project2495 behaves like has nav sidebar2496 has collapsed nav sidebar on mobile2497 Project context2498 has a link to the project path2499 Project information2500 has a link to the project activity path2501 Activity2502 has a link to the project activity path2503 Labels2504 has a link to the labels path2505 Members2506 has a link to the members page2507 Repository2508 has a link to the project tree path2509 Files2510 has a link to the project tree path2511 Commits2512 has a link to the fully qualified project commits path2513 Branches2514 has a link to the project branches path2515 Tags2516 has a link to the project tags path2517 Contributor statistics2518 has a link to the project contributors path2519 Graph2520 has a link to the project graph path2521 Compare revisions2522 has a link to the project compare path2523 Issues2524 has a link to the issue list path2525 shows pill with the number of open issues2526 Issue List2527 has a link to the issue list path2528 Issue Boards2529 has a link to the issue boards path2530 Service Desk2531 has a link to the service desk path2532 Milestones2533 has a link to the milestones path2534 External Issue Tracker2535 with custom external issue tracker2536 when external issue tracker is configured and active2537 has a link to the external issue tracker2538 when external issue tracker is not configured and active2539 does not have a link to the external issue tracker2540 with Jira issue tracker2541 has a link to the Jira issue tracker2542 Merge Requests2543 has a link to the merge request list path2544 shows pill with the number of merge requests2545 CI/CD2546 has a link to pipelines page2547 Artifacts2548 has a link to the artifacts page2549 Jobs2550 has a link to the jobs page2551 Pipeline Schedules2552 has a link to the pipeline schedules page2553 Pipelines2554 has a link to the pipelines page2555 Pipeline Editor2556 with a current_ref2557 has a link to the pipeline editor2558 with the default_branch2559 has a link to the pipeline editor2560 when user cannot access pipeline editor2561 does not has a link to the pipeline editor2562 Security and Compliance2563 when user does not have permissions2564 top level navigation link is not visible2565 when user has permissions2566 top level navigation link is visible2567 security configuration link is visible2568 Deployments2569 Feature Flags2570 has a link to the feature flags page2571 when the user does not have access2572 does not have a link to the feature flags page2573 Environments2574 has a link to the environments page2575 when the user does not have access2576 does not have a link to the environments page2577 Releases2578 has a link to the project releases path2579 Monitor2580 top level navigation link is visible for user with permissions2581 Metrics Dashboard2582 has a link to the metrics dashboard page2583 when the user does not have access2584 does not have a link to the metrics page2585 Error Tracking2586 has a link to the error tracking page2587 when the user does not have access2588 does not have a link to the error tracking page2589 Alert Management2590 has a link to the alert management page2591 when the user does not have access2592 does not have a link to the alert management page2593 Incidents2594 has a link to the incidents page2595 when the user does not have access2596 does not have a link to the incidents page2597 Infrastructure2598 Terraform2599 has a link to the terraform page2600 when the user does not have access2601 does not have a link to the terraform page2602 Kubernetes clusters2603 has a link to the kubernetes page2604 when the user does not have access2605 does not have a link to the kubernetes page2606 Google Cloud2607 has a link to the google cloud page2608 when the user does not have access2609 does not have a link to the google cloud page2610 Packages and Registries2611 top level navigation link is visible and points to package registry page2612 Packages Registry2613 shows link to package registry page2614 when packages config setting is not enabled2615 does not show link to package registry page2616 Container Registry2617 shows link to container registry page2618 when container config setting is not enabled2619 does not show link to package registry page2620 Infrastructure Registry2621 shows link to infrastructure registry page2622 when package registry config is disabled2623 does not show link to package registry page2624 Analytics2625 top level navigation link is visible points to the value stream page2626 CI/CD2627 has a link to the CI/CD analytics page2628 when user does not have access2629 does not have a link to the CI/CD analytics page2630 Repository2631 has a link to the repository analytics page2632 when user does not have access2633 does not have a link to the repository analytics page2634 Value stream2635 has a link to the value stream page2636 when user does not have access2637 does not have a link to the value stream page2638 Confluence2639 when the Confluence integration is active2640 shows the Confluence link2641 does not show the GitLab wiki link2642 when it is disabled2643 does not show the Confluence link2644 shows the GitLab wiki link2645 Wiki2646 when wiki is enabled2647 shows the wiki tab with the wiki internal link2648 when wiki is disabled2649 does not show the wiki link2650 External Wiki2651 when it is active2652 shows the external wiki tab with the external wiki service link2653 when it is disabled2654 does not show the external wiki link2655 Snippets2656 when user can access snippets2657 shows Snippets link2658 when user cannot access snippets2659 does not show Snippets link2660 Settings2661 General2662 has a link to the General settings2663 Integrations2664 has a link to the Integrations settings2665 WebHooks2666 has a link to the WebHooks settings2667 Access Tokens2668 self-managed instance2669 has a link to the Access Tokens settings2670 gitlab.com2671 has a link to the Access Tokens settings2672 Repository2673 has a link to the Repository settings2674 CI/CD2675 when project is archived2676 does not have a link to the CI/CD settings2677 when project is not archived2678 has a link to the CI/CD settings2679 Monitor2680 when project is archived2681 does not have a link to the Monitor settings2682 when project is not archived active2683 has a link to the Monitor settings2684 Pages2685 when pages are enabled2686 has a link to the Pages settings2687 when pages are not enabled2688 does not have a link to the Pages settings2689 Packages and registries2690 when registry is enabled2691 has a link to the Package and registry settings2692 when registry is not enabled2693 does not have a link to the Package and registry settings2694 when packages config is enabled2695 has a link to the Package and registry settings2696 Usage Quotas2697 has a link to Usage Quotas2698 Hidden menus2699 has a link to the Activity page2700 has a link to the Graph page2701 has a link to the New Issue page2702 has a link to the Jobs page2703 has a link to the Commits page2704 has a link to the Issue Boards page2705 behaves like sidebar includes snowplow attributes2706 is expected to have visible css ".nav-sidebar[data-track-action=\"render\"][data-track-label=\"projects_side_navigation\"][data-track-property=\"projects_side_navigation\"]"2707 Collapsed menu items2708 does not render the collapsed top menu as a link2709ApplicationSettings::UpdateService2710 updating terms2711 when the passed terms are blank2712 does not create terms2713 when passing terms2714 creates the terms2715 does not create terms if they are the same as the existing ones2716 updates terms if they already existed2717 only queries once when the terms are changed2718 updating outbound_local_requests_whitelist2719 when params is blank2720 does not add to allowlist2721 when param add_to_outbound_local_requests_whitelist contains values2722 adds to allowlist2723 when param outbound_local_requests_allowlist_raw is passed2724 overwrites the existing allowlist2725 markdown cache invalidators2726 behaves like invalidates markdown cache2727 increments cache2728 behaves like invalidates markdown cache2729 increments cache2730 behaves like invalidates markdown cache2731 increments cache2732 behaves like invalidates markdown cache2733 increments cache2734 behaves like invalidates markdown cache2735 increments cache2736 when also setting the local_markdown_version2737 does not increment2738 do not invalidate if value does not change2739 does not increment2740 performance bar settings2741 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: "", previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: nil, expected_valid: true2742 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2743 adds errors to the model for invalid params2744 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: "", previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: nil, expected_valid: true2745 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2746 adds errors to the model for invalid params2747 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: nil, previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: nil, expected_valid: true2748 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2749 adds errors to the model for invalid params2750 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: nil, previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: nil, expected_valid: true2751 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2752 adds errors to the model for invalid params2753 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: "foo", previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: nil, expected_valid: false2754 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2755 adds errors to the model for invalid params2756 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: "foo", previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: 42000000, expected_valid: false2757 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2758 adds errors to the model for invalid params2759 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: "group_a", previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: 42000000, expected_valid: true2760 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2761 adds errors to the model for invalid params2762 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: "group_b", previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: 43000000, expected_valid: true2763 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2764 adds errors to the model for invalid params2765 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: "group_b/", previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: 43000000, expected_valid: true2766 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2767 adds errors to the model for invalid params2768 params_performance_bar_enabled: true, params_performance_bar_allowed_group_path: "group_a", previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: 42000000, expected_valid: true2769 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2770 adds errors to the model for invalid params2771 params_performance_bar_enabled: false, params_performance_bar_allowed_group_path: "", previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: nil, expected_valid: true2772 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2773 adds errors to the model for invalid params2774 params_performance_bar_enabled: false, params_performance_bar_allowed_group_path: "", previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: nil, expected_valid: true2775 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2776 adds errors to the model for invalid params2777 params_performance_bar_enabled: false, params_performance_bar_allowed_group_path: nil, previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: nil, expected_valid: true2778 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2779 adds errors to the model for invalid params2780 params_performance_bar_enabled: false, params_performance_bar_allowed_group_path: nil, previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: nil, expected_valid: true2781 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2782 adds errors to the model for invalid params2783 params_performance_bar_enabled: false, params_performance_bar_allowed_group_path: "foo", previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: nil, expected_valid: true2784 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2785 adds errors to the model for invalid params2786 params_performance_bar_enabled: false, params_performance_bar_allowed_group_path: "foo", previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: nil, expected_valid: true2787 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2788 adds errors to the model for invalid params2789 params_performance_bar_enabled: false, params_performance_bar_allowed_group_path: "group_a", previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: nil, expected_valid: true2790 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2791 adds errors to the model for invalid params2792 params_performance_bar_enabled: false, params_performance_bar_allowed_group_path: "group_b", previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: nil, expected_valid: true2793 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2794 adds errors to the model for invalid params2795 params_performance_bar_enabled: false, params_performance_bar_allowed_group_path: "group_a", previous_performance_bar_allowed_group_id: 42000000, expected_performance_bar_allowed_group_id: nil, expected_valid: true2796 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2797 adds errors to the model for invalid params2798 params_performance_bar_enabled: nil, params_performance_bar_allowed_group_path: "", previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: nil, expected_valid: true2799 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2800 adds errors to the model for invalid params2801 params_performance_bar_enabled: nil, params_performance_bar_allowed_group_path: "foo", previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: nil, expected_valid: false2802 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2803 adds errors to the model for invalid params2804 params_performance_bar_enabled: nil, params_performance_bar_allowed_group_path: "group_a", previous_performance_bar_allowed_group_id: nil, expected_performance_bar_allowed_group_id: 42000000, expected_valid: true2805 sets performance_bar_allowed_group_id when present and performance_bar_enabled == true2806 adds errors to the model for invalid params2807 when :performance_bar_allowed_group_path is not present2808 does not change the performance bar settings2809 when :performance_bar_enabled is not present2810 implicitly defaults to true2811 when external authorization is enabled2812 does not validate labels if external authorization gets disabled2813 does validate labels if external authorization gets enabled2814 does validate labels if external authorization is left unchanged2815 does not save the settings with an error if the service denies access2816 saves the setting when the user has access to the label2817 does not validate the label if it was not passed2818 when raw_blob_request_limit is passsed2819 updates raw_blob_request_limit value2820 when protected path settings are passed2821 updates protected path settings2822 when general rate limits are passed2823 updates general throttle settings2824 when package registry rate limits are passed2825 updates package registry throttle settings2826 when files API rate limits are passed2827 updates files API throttle settings2828 when deprecated API rate limits are passed2829 updates deprecated API throttle settings2830 when git lfs rate limits are passed2831 updates git lfs throttle settings2832 when issues_create_limit is passed2833 updates issues_create_limit value2834 when users_get_by_id_limit and users_get_by_id_limit_allowlist_raw are passed2835 updates users_get_by_id_limit and users_get_by_id_limit_allowlist value2836 when require_admin_approval_after_user_signup changes2837 when it goes from enabled to disabled2838 calls ApproveBlockedPendingApprovalUsersWorker2839 when it goes from disabled to enabled2840 does not call ApproveBlockedPendingApprovalUsersWorker2841Gitlab::Asciidoc2842 without project2843 converts the input using Asciidoctor and default options2844 with asciidoc_opts2845 merges the options with default ones2846 with requested path2847 ignores {docname} when not available2848 sets {docname} for root2849 sets {docname} for just a filename2850 sets {docname} for a directory2851 sets {docname} for a complete path2852 XSS2853 does not convert dangerous link with extra attribute into HTML2854 does not convert dangerous link with unsafe scheme into HTML2855 does not convert dangerous image with onerror into HTML2856asciidoctor: WARNING: <stdin>: line 1: unterminated listing block2857 does not convert dangerous fenced code with inline script into HTML2858 does not allow locked attributes to be overridden2859 images2860 does lazy load and link image2861 does not automatically link image if link is explicitly defined2862 with admonition2863 preserves classes2864 with passthrough2865 removes non heading ids2866 removes non footnote def ids2867 removes non footnote ref ids2868 with footnotes2869 preserves ids and links2870 with section anchors2871 preserves ids and links2872 with xrefs2873 preserves ids2874 with checklist2875 preserves classes2876 with marks2877 preserves classes2878 with fenced block2879 highlights syntax2880 with listing block2881 highlights syntax2882 with stem block2883 does not apply syntax highlighting2884 external links2885 adds the `rel` attribute to the link2886 LaTex code2887 adds class js-render-math to the output2888 outfilesuffix2889 defaults to adoc2890 with mermaid diagrams2891 adds class js-render-mermaid to the output2892 applies subs in diagram block2893 with Kroki enabled2894 converts a graphviz diagram to image2895 does not convert a blockdiag diagram to image2896 does not allow kroki-plantuml-include to be overridden2897 does not allow kroki-server-url to be overridden2898 with Kroki and BlockDiag (additional format) enabled2899 converts a blockdiag diagram to image2900 with project2901 include directive2902 cyclic imports2903 completes successfully2904 with path to non-existing file2905 renders Unresolved directive placeholder2906 with path to a binary file2907 does not read the blob2908 renders Unresolved directive placeholder2909 with path to file in external storage2910 does not read the blob2911 renders Unresolved directive placeholder2912 with path to a textual file2913 when requested path is a file in the repo2914 the file is specified by absolute path2915 includes content of the file2916 the file is specified by relative path2917 includes content of the file2918 the file is specified by relative path with leading ./2919 includes content of the file2920 the file is specified by relative path to a file up one directory2921 includes content of the file2922 the file is specified by relative path for a file up multiple directories2923 includes content of the file2924 without a commit (only ref)2925 the file is specified by absolute path2926 includes content of the file2927 the file is specified by relative path2928 includes content of the file2929 the file is specified by relative path with leading ./2930 includes content of the file2931 the file is specified by relative path to a file up one directory2932 includes content of the file2933 the file is specified by relative path for a file up multiple directories2934 includes content of the file2935 when requested path is a directory in the repo2936 the file is specified by absolute path2937 includes content of the file2938 the file is specified by relative path2939 includes content of the file2940 the file is specified by relative path with leading ./2941 includes content of the file2942 the file is specified by relative path to a file up one directory2943 includes content of the file2944 the file is specified by relative path for a file up multiple directories2945 includes content of the file2946 without a commit (only ref)2947 the file is specified by absolute path2948 includes content of the file2949 the file is specified by relative path2950 includes content of the file2951 the file is specified by relative path with leading ./2952 includes content of the file2953 the file is specified by relative path to a file up one directory2954 includes content of the file2955 the file is specified by relative path for a file up multiple directories2956 includes content of the file2957 when repository is passed into the context2958 when the file exists2959 is expected to include "<p>Content from wiki</p>"2960 when the file does not exist2961 is expected to include "[ERROR: include::wiki_file.adoc[] - unresolved directive]"2962 recursive includes with relative paths2963 includes content of the included files recursively2964Issues::CloneService2965 #execute2966 issue movable2967 when issue creation fails2968 raises a clone error2969 generic issue2970 creates a new issue in the selected project2971 copies issue title2972 copies issue description2973 adds system note to old issue at the end2974 adds system note to new issue at the start2975 keeps old issue open2976 persists new issue2977 persists all changes2978 sets the current user as author2979 creates a new internal id for issue2980 sets created_at of new issue to the time of clone2981 does not set moved_issue2982 when copying comments2983 does not create extra system notes2984 issue with system notes and resource events2985 does not copy system notes and resource events2986 issue with award emoji2987 does not copy the award emoji2988 issue with milestone2989 copies the milestone and creates a resource_milestone_event2990 issue with label2991 copies the label and creates a resource_label_event2992 issue with due date2993 keeps the same due date2994 issue with assignee2995 preserves assignee with access to the new issue2996 ignores assignee without access to the new issue2997 issue is confidential2998 preserves the confidential flag2999 moving to same project3000 also works3001 project issue hooks3002 executes project issue hooks3003 issue with notes3004 does not copy notes3005 when copying comments3006 copies existing notes in order3007 issue with a design3008 calls CopyDesignCollection::QueueService3009 logs if QueueService returns an error3010 copies the design and its notes3011 issue relative position3012 behaves like copy or reset relative position3013 when moved to a project within same group hierarchy3014 does not reset the relative_position3015 when moved to a project in a different group hierarchy3016 does reset the relative_position3017 clone permissions3018 target project is pending deletion3019 is expected to raise Issues::CloneService::CloneError with message matching /pending deletion/3020 user is reporter in both projects3021 is expected not to raise Exception3022 user is reporter only in new project3023 is expected to raise StandardError with message matching /permissions/3024 user is reporter only in old project3025 is expected to raise StandardError with message matching /permissions/3026 user is reporter in one project and guest in another3027 is expected to raise StandardError with message matching /permissions/3028 issue is not persisted3029 is expected to raise StandardError with message matching /permissions/3030WikiPagePolicy3031 when user is a direct project member3032 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13033 grants the expected permissions3034 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13035 grants the expected permissions3036 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13037 grants the expected permissions3038 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13039 grants the expected permissions3040 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13041 grants the expected permissions3042 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 13043 grants the expected permissions3044 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13045 grants the expected permissions3046 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03047 grants the expected permissions3048 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13049 grants the expected permissions3050 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13051 grants the expected permissions3052 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03053 grants the expected permissions3054 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03055 grants the expected permissions3056 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03057 grants the expected permissions3058 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03059 grants the expected permissions3060 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03061 grants the expected permissions3062 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03063 grants the expected permissions3064 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13065 grants the expected permissions3066 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13067 grants the expected permissions3068 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13069 grants the expected permissions3070 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13071 grants the expected permissions3072 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13073 grants the expected permissions3074 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 03075 grants the expected permissions3076 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13077 grants the expected permissions3078 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03079 grants the expected permissions3080 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13081 grants the expected permissions3082 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13083 grants the expected permissions3084 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03085 grants the expected permissions3086 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03087 grants the expected permissions3088 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03089 grants the expected permissions3090 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03091 grants the expected permissions3092 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03093 grants the expected permissions3094 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03095 grants the expected permissions3096 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13097 grants the expected permissions3098 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03099 grants the expected permissions3100 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13101 grants the expected permissions3102 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13103 grants the expected permissions3104 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03105 grants the expected permissions3106 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03107 grants the expected permissions3108 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03109 grants the expected permissions3110 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03111 grants the expected permissions3112 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03113 grants the expected permissions3114 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03115 grants the expected permissions3116 when user is an inherited member from the group3117 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13118 grants the expected permissions3119 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13120 grants the expected permissions3121 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13122 grants the expected permissions3123 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13124 grants the expected permissions3125 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13126 grants the expected permissions3127 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 13128 grants the expected permissions3129 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13130 grants the expected permissions3131 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03132 grants the expected permissions3133 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13134 grants the expected permissions3135 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13136 grants the expected permissions3137 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03138 grants the expected permissions3139 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03140 grants the expected permissions3141 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03142 grants the expected permissions3143 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03144 grants the expected permissions3145 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03146 grants the expected permissions3147 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03148 grants the expected permissions3149 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13150 grants the expected permissions3151 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13152 grants the expected permissions3153 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13154 grants the expected permissions3155 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13156 grants the expected permissions3157 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13158 grants the expected permissions3159 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 03160 grants the expected permissions3161 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13162 grants the expected permissions3163 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03164 grants the expected permissions3165 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13166 grants the expected permissions3167 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13168 grants the expected permissions3169 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03170 grants the expected permissions3171 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03172 grants the expected permissions3173 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03174 grants the expected permissions3175 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03176 grants the expected permissions3177 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03178 grants the expected permissions3179 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03180 grants the expected permissions3181 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13182 grants the expected permissions3183 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03184 grants the expected permissions3185 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13186 grants the expected permissions3187 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13188 grants the expected permissions3189 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03190 grants the expected permissions3191 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03192 grants the expected permissions3193 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03194 grants the expected permissions3195 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03196 grants the expected permissions3197 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03198 grants the expected permissions3199 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03200 grants the expected permissions3201Gitlab::HTTP3202 calls a block3203 when allow_local_requests3204 sends the request to the correct URI3205 when not allow_local_requests3206 sends the request to the correct URI3207 when reading the response is too slow3208 raises an error3209 and timeout option is greater than DEFAULT_READ_TOTAL_TIMEOUT3210 does not raise an error3211 and stream_body option is truthy3212 does not raise an error3213 allow_local_requests_from_web_hooks_and_services is3214 disabled3215 deny requests to localhost3216 deny requests to private network3217 if allow_local_requests set to true3218 override the global value and allow requests to localhost or private network3219 enabled3220 allow requests to localhost3221 allow requests to private network3222 if allow_local_requests set to false3223 override the global value and ban requests to localhost or private network3224 handle redirect loops3225 handles GET requests3226 handles POST requests3227 handles PUT requests3228 handles DELETE requests3229 handles HEAD requests3230 setting default timeouts3231 when no timeouts are set3232 sets default open and read and write timeouts3233 when :timeout is set3234 does not set any default timeouts3235 when :open_timeout is set3236 only sets default read and write timeout3237 when :read_timeout is set3238 only sets default open and write timeout3239 when :write_timeout is set3240 only sets default open and read timeout3241 .try_get3242 with Net::OpenTimeout3243 with path3244 handles requests without extra_log_info3245 handles requests with extra_log_info as hash3246 handles requests with extra_log_info as proc3247 with path and options3248 handles requests without extra_log_info3249 handles requests with extra_log_info as hash3250 handles requests with extra_log_info as proc3251 with path, options, and block3252 handles requests without extra_log_info3253 handles requests with extra_log_info as hash3254 handles requests with extra_log_info as proc3255 with Net::ReadTimeout3256 with path3257 handles requests without extra_log_info3258 handles requests with extra_log_info as hash3259 handles requests with extra_log_info as proc3260 with path and options3261 handles requests without extra_log_info3262 handles requests with extra_log_info as hash3263 handles requests with extra_log_info as proc3264 with path, options, and block3265 handles requests without extra_log_info3266 handles requests with extra_log_info as hash3267 handles requests with extra_log_info as proc3268 with Net::WriteTimeout3269 with path3270 handles requests without extra_log_info3271 handles requests with extra_log_info as hash3272 handles requests with extra_log_info as proc3273 with path and options3274 handles requests without extra_log_info3275 handles requests with extra_log_info as hash3276 handles requests with extra_log_info as proc3277 with path, options, and block3278 handles requests without extra_log_info3279 handles requests with extra_log_info as hash3280 handles requests with extra_log_info as proc3281 with Gitlab::HTTP::ReadTotalTimeout3282 with path3283 handles requests without extra_log_info3284 handles requests with extra_log_info as hash3285 handles requests with extra_log_info as proc3286 with path and options3287 handles requests without extra_log_info3288 handles requests with extra_log_info as hash3289 handles requests with extra_log_info as proc3290 with path, options, and block3291 handles requests without extra_log_info3292 handles requests with extra_log_info as hash3293 handles requests with extra_log_info as proc3294 with EOFError3295 with path3296 handles requests without extra_log_info3297 handles requests with extra_log_info as hash3298 handles requests with extra_log_info as proc3299 with path and options3300 handles requests without extra_log_info3301 handles requests with extra_log_info as hash3302 handles requests with extra_log_info as proc3303 with path, options, and block3304 handles requests without extra_log_info3305 handles requests with extra_log_info as hash3306 handles requests with extra_log_info as proc3307 with SocketError3308 with path3309 handles requests without extra_log_info3310 handles requests with extra_log_info as hash3311 handles requests with extra_log_info as proc3312 with path and options3313 handles requests without extra_log_info3314 handles requests with extra_log_info as hash3315 handles requests with extra_log_info as proc3316 with path, options, and block3317 handles requests without extra_log_info3318 handles requests with extra_log_info as hash3319 handles requests with extra_log_info as proc3320 with OpenSSL::SSL::SSLError3321 with path3322 handles requests without extra_log_info3323 handles requests with extra_log_info as hash3324 handles requests with extra_log_info as proc3325 with path and options3326 handles requests without extra_log_info3327 handles requests with extra_log_info as hash3328 handles requests with extra_log_info as proc3329 with path, options, and block3330 handles requests without extra_log_info3331 handles requests with extra_log_info as hash3332 handles requests with extra_log_info as proc3333 with OpenSSL::OpenSSLError3334 with path3335 handles requests without extra_log_info3336 handles requests with extra_log_info as hash3337 handles requests with extra_log_info as proc3338 with path and options3339 handles requests without extra_log_info3340 handles requests with extra_log_info as hash3341 handles requests with extra_log_info as proc3342 with path, options, and block3343 handles requests without extra_log_info3344 handles requests with extra_log_info as hash3345 handles requests with extra_log_info as proc3346 with Errno::ECONNRESET3347 with path3348 handles requests without extra_log_info3349 handles requests with extra_log_info as hash3350 handles requests with extra_log_info as proc3351 with path and options3352 handles requests without extra_log_info3353 handles requests with extra_log_info as hash3354 handles requests with extra_log_info as proc3355 with path, options, and block3356 handles requests without extra_log_info3357 handles requests with extra_log_info as hash3358 handles requests with extra_log_info as proc3359 with Errno::ECONNREFUSED3360 with path3361 handles requests without extra_log_info3362 handles requests with extra_log_info as hash3363 handles requests with extra_log_info as proc3364 with path and options3365 handles requests without extra_log_info3366 handles requests with extra_log_info as hash3367 handles requests with extra_log_info as proc3368 with path, options, and block3369 handles requests without extra_log_info3370 handles requests with extra_log_info as hash3371 handles requests with extra_log_info as proc3372 with Errno::EHOSTUNREACH3373 with path3374 handles requests without extra_log_info3375 handles requests with extra_log_info as hash3376 handles requests with extra_log_info as proc3377 with path and options3378 handles requests without extra_log_info3379 handles requests with extra_log_info as hash3380 handles requests with extra_log_info as proc3381 with path, options, and block3382 handles requests without extra_log_info3383 handles requests with extra_log_info as hash3384 handles requests with extra_log_info as proc3385 with Errno::ENETUNREACH3386 with path3387 handles requests without extra_log_info3388 handles requests with extra_log_info as hash3389 handles requests with extra_log_info as proc3390 with path and options3391 handles requests without extra_log_info3392 handles requests with extra_log_info as hash3393 handles requests with extra_log_info as proc3394 with path, options, and block3395 handles requests without extra_log_info3396 handles requests with extra_log_info as hash3397 handles requests with extra_log_info as proc3398 with Gitlab::HTTP::BlockedUrlError3399 with path3400 handles requests without extra_log_info3401 handles requests with extra_log_info as hash3402 handles requests with extra_log_info as proc3403 with path and options3404 handles requests without extra_log_info3405 handles requests with extra_log_info as hash3406 handles requests with extra_log_info as proc3407 with path, options, and block3408 handles requests without extra_log_info3409 handles requests with extra_log_info as hash3410 handles requests with extra_log_info as proc3411 with Gitlab::HTTP::RedirectionTooDeep3412 with path3413 handles requests without extra_log_info3414 handles requests with extra_log_info as hash3415 handles requests with extra_log_info as proc3416 with path and options3417 handles requests without extra_log_info3418 handles requests with extra_log_info as hash3419 handles requests with extra_log_info as proc3420 with path, options, and block3421 handles requests without extra_log_info3422 handles requests with extra_log_info as hash3423 handles requests with extra_log_info as proc3424 with Net::HTTPBadResponse3425 with path3426 handles requests without extra_log_info3427 handles requests with extra_log_info as hash3428 handles requests with extra_log_info as proc3429 with path and options3430 handles requests without extra_log_info3431 handles requests with extra_log_info as hash3432 handles requests with extra_log_info as proc3433 with path, options, and block3434 handles requests without extra_log_info3435 handles requests with extra_log_info as hash3436 handles requests with extra_log_info as proc3437Feature3438 .feature_flags_available?3439 returns false on connection error3440 returns false when connection is not active3441 returns false when the flipper table does not exist3442 returns false on NoDatabaseError3443 .get3444 returns the Flipper feature3445 .persisted_names3446 returns the names of the persisted features3447 returns an empty Array when no features are presisted3448 caches the feature names when request store is active3449 fetches all flags once in a single query3450 .persisted_name?3451 when the feature is persisted3452 returns true when feature name is a string3453 returns true when feature name is a symbol3454 when the feature is not persisted3455 returns false when feature name is a string3456 returns false when feature name is a symbol3457 .all3458 returns the Flipper features as an array3459 .flipper3460 when request store is inactive3461 memoizes the Flipper instance but does not not enable Flipper memoization3462 when request store is active3463 memoizes the Flipper instance3464 .register_feature_groups3465 registers expected groups3466 .enabled?3467 returns false (and tracks / raises exception for dev) for undefined feature3468 returns false for undefined feature with default_enabled_if_undefined: false3469 returns true for undefined feature with default_enabled_if_undefined: true3470 returns false for existing disabled feature in the database3471 returns true for existing enabled feature in the database3472 is expected to eq #<ActiveSupport::Cache::MemoryStore entries=0, size=0, options={:compress=>false}>3473 is expected to eq <ActiveSupport::Cache::NullStore>3474 caches the status in L1 and L2 caches3475 returns the default value when the database does not exist3476 when using redis cache3477 does not make recursive feature-flag calls3478 when self-recursive3479 returns the default value3480 detects self recursion3481 when deeply recursive3482 detects deep recursion3483 logging is enabled3484 does not log feature_flag_state_logs3485 logs other feature flags3486 cached feature flag3487 caches the status in L1 cache for the first minute3488 caches the status in L2 cache after 2 minutes3489 fetches the status after an hour3490 with a group member3491 is true for all group members3492 is false for any other actor3493 with gitlab_team_members feature group3494 delegates check to FeatureGroups::GitlabTeamMembers3495 with an individual actor3496 returns true when same actor is informed3497 returns false when different actor is informed3498 returns false when no actor is informed3499 with invalid actor3500 when is dev_or_test_env3501 does raise exception3502 validates usage of feature flag with YAML definition3503 when usage is correct3504 when invalid type is used3505 when default_enabled: is false in the YAML definition3506 reads the default from the YAML definition3507 when default_enabled: is true in the YAML definition3508 reads the default from the YAML definition3509 and feature has been disabled3510 is not enabled3511 with a cached value and the YAML definition is changed thereafter3512 reads new default value3513 when YAML definition does not exist for an optional type3514 when in dev or test environment3515 raises an error for dev3516 when in production3517 when database exists3518 checks the persisted status and returns false3519 when database does not exist3520 returns false without checking the status in the database3521 .disable?3522 returns true (and tracks / raises exception for dev) for undefined feature3523 returns true for undefined feature with default_enabled_if_undefined: false3524 returns false for undefined feature with default_enabled_if_undefined: true3525 returns true for existing disabled feature in the database3526 returns false for existing enabled feature in the database3527 .enable3528 returns true3529 behaves like logging3530 logs the event3531 when thing is an actor3532 behaves like logging3533 logs the event3534 .disable3535 returns true3536 behaves like logging3537 logs the event3538 when thing is an actor3539 behaves like logging3540 logs the event3541 when the feature flag was enabled for this actor3542 marks this thing as disabled3543 does not change the global value3544 is possible to re-enable the feature3545 when the feature flag is enabled globally3546 does not mark this thing as disabled3547 does not change the global value3548 opt_out3549 when thing is an actor3550 marks this thing as disabled3551 does not change the global value3552 stores the opt-out information as a gate3553 behaves like logging3554 logs the event3555 when thing is a group3556 has no effect3557 remove_opt_out3558 when thing is an actor3559 re-enables this thing3560 does not change the global value3561 removes the opt-out information3562 behaves like logging3563 logs the event3564 when thing is a group3565 has no effect3566 .enable_percentage_of_time3567 behaves like logging3568 logs the event3569 when the flag is on3570 fails with InvalidOperation3571 .disable_percentage_of_time3572 behaves like logging3573 logs the event3574 .enable_percentage_of_actors3575 behaves like logging3576 logs the event3577 when the flag is on3578 fails with InvalidOperation3579 .disable_percentage_of_actors3580 behaves like logging3581 logs the event3582 .remove3583 behaves like logging3584 logs the event3585 for a non-persisted feature3586 returns nil3587 returns true, and cleans up3588 .log_feature_flag_states?3589 when flag is feature_flag_state_logs3590 is expected to be falsey3591 when flag is old3592 is expected to be falsey3593 when flag is old while log_state_changes is not present3594 is expected to be falsey3595 when flag is old but log_state_changes is true3596 is expected to be truthy3597 when flag is new and not feature_flag_state_logs3598 is expected to be truthy3599 when milestone is nil3600 is expected to be falsey3601 caching with stale reads from the database3602 gives the correct value when enabling for an additional actor3603 gives the correct value when enabling for percentage of time3604 gives the correct value when disabling the flag3605 gives the correct value when deleting the flag3606 Feature::Target3607 #targets3608 returns all found targets3609 when repository target works with different types of repositories3610 returns all found targets3611GpgKey3612 associations3613 is expected to belong to user required: false3614 is expected to have many subkeys3615 validation3616 is expected to validate that :user cannot be empty/falsy3617 is expected to validate that :key cannot be empty/falsy3618 is expected to validate that :key is case-sensitively unique3619 is expected to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey\n-----END PGP PUBLIC KEY BLOCK-----"›3620 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey"›3621 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----\nkey\n-----BEGIN PGP PUBLIC KEY BLOCK-----"›3622 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK-----"›3623 is expected not to allow :key to be ‹"-----BEGIN PGP PUBLIC KEY BLOCK-----"›3624 is expected not to allow :key to be ‹"-----END PGP PUBLIC KEY BLOCK-----"›3625 is expected not to allow :key to be ‹"key\n-----END PGP PUBLIC KEY BLOCK-----"›3626 is expected not to allow :key to be ‹"BEGIN PGP"›3627 callbacks3628 extract_fingerprint3629 extracts the fingerprint from the gpg key3630 extract_primary_keyid3631 extracts the primary keyid from the gpg key3632 generate_subkeys3633 extracts the subkeys from the gpg key3634 #key=3635 strips white spaces3636 does not strip when the key is nil3637 #user_infos3638 returns the user infos from the gpg key3639 #verified_user_infos3640 returns the user infos if it is verified3641 returns an empty array if the user info is not verified3642 #emails_with_verified_status3643 email is verified if the user has the matching email3644 #verified?3645 returns true if one of the email addresses in the key belongs to the user3646 returns false if none of the email addresses in the key does not belong to the user3647 verified_and_belongs_to_email?3648 returns false if none of the email addresses in the key does not belong to the user3649 returns false if one of the email addresses in the key belongs to the user and does not match the provided email3650 returns true if one of the email addresses in the key belongs to the user and matches the provided email3651 returns true if one of the email addresses in the key belongs to the user and case-insensitively matches the provided email3652 #revoke3653 invalidates all associated gpg signatures and destroys the key3654 deletes all the associated subkeys3655 invalidates all signatures associated to the subkeys3656MergeRequestDiffFile3657 behaves like a BulkInsertSafe model3658 when calling class methods directly3659 raises an error when method is not bulk-insert safe3660 does not raise an error when method is bulk-insert safe3661 .bulk_insert!3662 when all items are valid3663 inserts them all3664 returns an empty array3665 when some items are invalid3666 does not insert any of them and raises an error3667 inserts them anyway when bypassing validations3668 #diff3669 when diff is not stored3670 when the diff is marked as binary3671 unpacks from base 643672 invalid base643673 returns the raw diff3674 when the diff is not marked as binary3675 returns the raw diff3676 when diff is stored in DB3677 returns UTF-8 string3678 when diff is stored in external storage3679 returns UTF-8 string3680 #utf8_diff3681 does not raise error when the diff is binary3682 calls #diff once3683 externally stored diff caching3684 when external diff is not cached3685 caches external diffs3686 when external diff is already cached3687 reads diff from cached external diff3688 when the diff is marked as binary3689 when the diff is marked as binary3690 unpacks from base 643691 invalid base643692 returns the raw diff3693 when the diff is not marked as binary3694 returns the raw diff3695 when content responds to #encoding3696 encodes content to utf8 encoding3697 when content is blank3698 returns an empty string3699 when exception is raised3700 falls back to #diff3701 when diff is not stored externally3702 calls #diff3703 when exception is raised3704 logs exception and returns an empty string3705GroupMemberPolicy3706 with anonymous user3707 is expected to be allowed :read_group3708 design management is enabled3709 is expected to be allowed :read_design_activity3710 for a private group3711 is expected not to be allowed :destroy_group_member3712 for an internal group3713 is expected not to be allowed :destroy_group_member3714 with guest user, for own membership3715 is expected not to be allowed :update_group_member3716 is expected to be allowed :destroy_group_member3717 with guest user, for other membership3718 is expected not to be allowed :update_group_member3719 is expected to be allowed :read_group3720 for access requests3721 for own access request3722 is expected to be allowed :withdraw_member_access_request3723 for another user's access request3724 is expected not to be allowed :withdraw_member_access_request3725 for own, valid membership3726 is expected not to be allowed :withdraw_member_access_request3727 with bot user3728 is expected to be allowed :destroy_project_bot_member3729 with anonymous bot user3730 is expected not to be allowed :destroy_project_bot_member3731 with owner3732 with group with one owner3733 is expected not to be allowed :destroy_group_member3734 is expected to be allowed :read_group3735 with group with bot user owner3736 is expected not to be allowed :destroy_group_member3737 with group with more than one owner3738 is expected to be allowed :destroy_group_member3739 is expected not to be allowed :destroy_project_bot_member3740 with group with owners from a parent3741 when top-level group3742 with group sharing3743 is expected not to be allowed :destroy_group_member3744 is expected to be allowed :read_group3745 when subgroup3746 is expected to be allowed :destroy_group_member3747 is expected to be allowed :read_group3748 with blocked owner3749 is expected not to be allowed :destroy_group_member3750 is expected not to be allowed :read_group3751 with group with bot user owner3752 is expected not to be allowed :destroy_group_member3753 is expected not to be allowed :read_group3754 with group with more than one blocked owner3755 is expected to be allowed :destroy_group_member3756VerifyPagesDomainService3757 #execute3758 domain_sym: :domain, code_sym: :verification_code3759 when domain is disabled(or new)3760 when txt record contains verification code3761 verifies and enables the domain3762 when txt record contains verification code with other text3763 verifies and enables the domain3764 when txt record does not contain verification code3765 unverifies domain3766 disables domain and shedules it for removal in 1 week3767 when txt record does not contain verification code3768 unverifies domain3769 disables domain and shedules it for removal in 1 week3770 when no txt records are present3771 unverifies domain3772 disables domain and shedules it for removal in 1 week3773 when domain is verified3774 when txt record contains verification code3775 verifies and enables the domain3776 when txt record contains verification code with other text3777 verifies and enables the domain3778 when txt record does not contain verification code3779 unverifies but does not disable domain3780 does not schedule domain for removal3781 when no txt records are present3782 unverifies but does not disable domain3783 does not schedule domain for removal3784 when domain is expired3785 when the right code is present3786 verifies and enables the domain3787 when the right code is not present3788 unverifies domain3789 disables domain and shedules it for removal in 1 week3790 when domain is disabled and scheduled for removal3791 when the right code is present3792 verifies and enables domain3793 prevent domain from being removed3794 when the right code is not present3795 keeps domain scheduled for removal but does not change removal time3796 invalid domain3797 can be disabled3798 domain_sym: :domain, code_sym: :keyed_verification_code3799 when domain is disabled(or new)3800 when txt record contains verification code3801 verifies and enables the domain3802 when txt record contains verification code with other text3803 verifies and enables the domain3804 when txt record does not contain verification code3805 unverifies domain3806 disables domain and shedules it for removal in 1 week3807 when txt record does not contain verification code3808 unverifies domain3809 disables domain and shedules it for removal in 1 week3810 when no txt records are present3811 unverifies domain3812 disables domain and shedules it for removal in 1 week3813 when domain is verified3814 when txt record contains verification code3815 verifies and enables the domain3816 when txt record contains verification code with other text3817 verifies and enables the domain3818 when txt record does not contain verification code3819 unverifies but does not disable domain3820 does not schedule domain for removal3821 when no txt records are present3822 unverifies but does not disable domain3823 does not schedule domain for removal3824 when domain is expired3825 when the right code is present3826 verifies and enables the domain3827 when the right code is not present3828 unverifies domain3829 disables domain and shedules it for removal in 1 week3830 when domain is disabled and scheduled for removal3831 when the right code is present3832 verifies and enables domain3833 prevent domain from being removed3834 when the right code is not present3835 keeps domain scheduled for removal but does not change removal time3836 invalid domain3837 can be disabled3838 domain_sym: :verification_domain, code_sym: :verification_code3839 when domain is disabled(or new)3840 when txt record contains verification code3841 verifies and enables the domain3842 when txt record contains verification code with other text3843 verifies and enables the domain3844 when txt record does not contain verification code3845 unverifies domain3846 disables domain and shedules it for removal in 1 week3847 when txt record does not contain verification code3848 unverifies domain3849 disables domain and shedules it for removal in 1 week3850 when no txt records are present3851 unverifies domain3852 disables domain and shedules it for removal in 1 week3853 when domain is verified3854 when txt record contains verification code3855 verifies and enables the domain3856 when txt record contains verification code with other text3857 verifies and enables the domain3858 when txt record does not contain verification code3859 unverifies but does not disable domain3860 does not schedule domain for removal3861 when no txt records are present3862 unverifies but does not disable domain3863 does not schedule domain for removal3864 when domain is expired3865 when the right code is present3866 verifies and enables the domain3867 when the right code is not present3868 unverifies domain3869 disables domain and shedules it for removal in 1 week3870 when domain is disabled and scheduled for removal3871 when the right code is present3872 verifies and enables domain3873 prevent domain from being removed3874 when the right code is not present3875 keeps domain scheduled for removal but does not change removal time3876 invalid domain3877 can be disabled3878 domain_sym: :verification_domain, code_sym: :keyed_verification_code3879 when domain is disabled(or new)3880 when txt record contains verification code3881 verifies and enables the domain3882 when txt record contains verification code with other text3883 verifies and enables the domain3884 when txt record does not contain verification code3885 unverifies domain3886 disables domain and shedules it for removal in 1 week3887 when txt record does not contain verification code3888 unverifies domain3889 disables domain and shedules it for removal in 1 week3890 when no txt records are present3891 unverifies domain3892 disables domain and shedules it for removal in 1 week3893 when domain is verified3894 when txt record contains verification code3895 verifies and enables the domain3896 when txt record contains verification code with other text3897 verifies and enables the domain3898 when txt record does not contain verification code3899 unverifies but does not disable domain3900 does not schedule domain for removal3901 when no txt records are present3902 unverifies but does not disable domain3903 does not schedule domain for removal3904 when domain is expired3905 when the right code is present3906 verifies and enables the domain3907 when the right code is not present3908 unverifies domain3909 disables domain and shedules it for removal in 1 week3910 when domain is disabled and scheduled for removal3911 when the right code is present3912 verifies and enables domain3913 prevent domain from being removed3914 when the right code is not present3915 keeps domain scheduled for removal but does not change removal time3916 invalid domain3917 can be disabled3918 timeout behaviour3919 sets a timeout on the DNS query3920 email notifications3921 factory: nil, verification_succeeds: true, expected_notification: nil3922 sends a notification if appropriate3923 factory: nil, verification_succeeds: false, expected_notification: :verification_failed3924 sends a notification if appropriate3925 factory: :reverify, verification_succeeds: true, expected_notification: nil3926 sends a notification if appropriate3927 factory: :reverify, verification_succeeds: false, expected_notification: :verification_failed3928 sends a notification if appropriate3929 factory: :unverified, verification_succeeds: true, expected_notification: :verification_succeeded3930 sends a notification if appropriate3931 factory: :unverified, verification_succeeds: false, expected_notification: nil3932 sends a notification if appropriate3933 factory: :expired, verification_succeeds: true, expected_notification: nil3934 sends a notification if appropriate3935 factory: :expired, verification_succeeds: false, expected_notification: :disabled3936 sends a notification if appropriate3937 factory: :disabled, verification_succeeds: true, expected_notification: :enabled3938 sends a notification if appropriate3939 factory: :disabled, verification_succeeds: false, expected_notification: nil3940 sends a notification if appropriate3941 pages verification disabled3942 skips email notifications3943 no verification code3944 returns an error3945 pages domain verification is disabled3946 extends domain validity by unconditionally reverifying3947 does not shorten any grace period3948GitlabRoutingHelper3949 Project URL helpers3950 #project_member_path3951 is expected to eq "/namespace425/project463/-/project_members/654"3952 #request_access_project_members_path3953 is expected to eq "/namespace426/project464/-/project_members/request_access"3954 #leave_project_members_path3955 is expected to eq "/namespace427/project465/-/project_members/leave"3956 #approve_access_request_project_member_path3957 is expected to eq "/namespace428/project466/-/project_members/656/approve_access_request"3958 #resend_invite_project_member_path3959 is expected to eq "/namespace429/project467/-/project_members/658/resend_invite"3960 Group URL helpers3961 #group_members_url3962 is expected to eq "http://test.host/groups/group221/-/group_members"3963 #group_member_path3964 is expected to eq "/groups/group222/-/group_members/659"3965 #request_access_group_members_path3966 is expected to eq "/groups/group223/-/group_members/request_access"3967 #leave_group_members_path3968 is expected to eq "/groups/group224/-/group_members/leave"3969 #approve_access_request_group_member_path3970 is expected to eq "/groups/group225/-/group_members/660/approve_access_request"3971 #resend_invite_group_member_path3972 is expected to eq "/groups/group226/-/group_members/661/resend_invite"3973 #preview_markdown_path3974 returns group preview markdown path for a group parent3975 returns group preview markdown path for a group parent with args3976 returns project preview markdown path for a project parent3977 returns snippet preview markdown path for a personal snippet3978 returns project preview markdown path for a project snippet3979 #edit_milestone_path3980 returns group milestone edit path when given entity parent is a Group3981 returns project milestone edit path when given entity parent is not a Group3982 members helpers3983 #source_members_url3984 returns a url to the memberships page for a group membership3985 returns a url to the memberships page for a project membership3986 artifacts3987 #fast_download_project_job_artifacts_path3988 matches the Rails download path3989 when given parameters3990 adds them to the path3991 #fast_keep_project_job_artifacts_path3992 matches the Rails keep path3993 #fast_browse_project_job_artifacts_path3994 matches the Rails browse path3995 snippets3996 #gitlab_snippet_path3997 returns the personal snippet path3998 returns the project snippet path3999 #gitlab_snippet_url4000 returns the personal snippet url4001 returns the project snippet url4002 #gitlab_raw_snippet_path4003 returns the raw personal snippet path4004 returns the raw project snippet path4005 #gitlab_raw_snippet_blob_path4006 behaves like snippet blob raw path4007 for PersonalSnippets4008 returns the raw personal snippet blob path4009 for ProjectSnippets4010 returns the raw project snippet blob path4011 when an argument is set4012 is expected to eq "/-/snippets/5/raw/test-ref/.gitattributes?inline=true"4013 without a ref4014 uses the root ref4015 #gitlab_raw_snippet_url4016 returns the raw personal snippet url4017 returns the raw project snippet url4018 #gitlab_raw_snippet_blob_url4019 behaves like snippet blob raw url4020 for PersonalSnippets4021 returns the raw personal snippet blob url4022 for ProjectSnippets4023 returns the raw project snippet blob url4024 when an argument is set4025 is expected to eq "http://test.host/-/snippets/5/raw/snippet-test-ref/.gitattributes?inline=true"4026 without a ref4027 uses the root ref4028 when snippet does not have a repository4029 uses the instance deafult branch4030 #gitlab_raw_snippet_url4031 returns the raw personal snippet url4032 returns the raw project snippet url4033 #gitlab_snippet_notes_path4034 returns the notes path for the personal snippet4035 #gitlab_snippet_notes_url4036 returns the notes url for the personal snippet4037 #gitlab_snippet_note_path4038 returns the note path for the personal snippet4039 #gitlab_snippet_note_url4040 returns the note url for the personal snippet4041 #gitlab_toggle_award_emoji_snippet_note_path4042 returns the note award emoji path for the personal snippet4043 #gitlab_toggle_award_emoji_snippet_note_url4044 returns the note award emoji url for the personal snippet4045 #gitlab_toggle_award_emoji_snippet_path4046 returns the award emoji path for the personal snippet4047 #gitlab_toggle_award_emoji_snippet_url4048 returns the award url for the personal snippet4049 #gitlab_dashboard_snippets_path4050 returns the personal snippets dashboard path4051 returns the project snippets dashboard path4052 wikis4053 #wiki_page_path4054 returns the url for the wiki page4055 releases4056 #release_url4057 returns the url for the release page4058 GraphQL ETag paths4059 with pipelines4060 returns an ETag path for a pipeline sha4061 returns an ETag path for pipelines4062Groups routing4063 complex group path with dot4064 to #show4065 also supports nested groups4066 also display group#show on the short path4067 to #details4068 to #activity4069 to #issues4070 to #members4071 to #labels4072 to #milestones4073 to #runner_setup_scripts4074 routes to the avatars controller4075 routes to the boards controller4076 routes to the harbor repositories controller4077 routes to the harbor artifacts controller4078 routes to the harbor tags controller4079 routes to the observability controller explore method4080 routes to the observability controller datasources method4081 routes to the usage quotas controller4082 group path starting with help4083 to #show4084 also supports nested groups4085 also display group#show on the short path4086 to #details4087 to #activity4088 to #issues4089 to #members4090 to #labels4091 to #milestones4092 to #runner_setup_scripts4093 routes to the avatars controller4094 routes to the boards controller4095 routes to the harbor repositories controller4096 routes to the harbor artifacts controller4097 routes to the harbor tags controller4098 routes to the observability controller explore method4099 routes to the observability controller datasources method4100 routes to the usage quotas controller4101 group path starting with projects4102 to #show4103 also supports nested groups4104 also display group#show on the short path4105 to #details4106 to #activity4107 to #issues4108 to #members4109 to #labels4110 to #milestones4111 to #runner_setup_scripts4112 routes to the avatars controller4113 routes to the boards controller4114 routes to the harbor repositories controller4115 routes to the harbor artifacts controller4116 routes to the harbor tags controller4117 routes to the observability controller explore method4118 routes to the observability controller datasources method4119 routes to the usage quotas controller4120 dependency proxy for containers4121 routes to #authenticate4122 routes to #upload_manifest4123 routes to #upload_blob4124 routes to #upload_manifest_authorize4125 routes to #upload_blob_authorize4126 image name without namespace4127 routes to #manifest4128 routes to #blob4129 does not route to #blob with an invalid sha4130 does not route to #blob with an invalid image4131 image name with namespace4132 routes to #manifest4133 routes to #blob4134WorkItems::CreateService4135 behaves like creates work item in container4136 #execute4137 when user is not allowed to create a work item in the container4138 is expected to be error4139 returns an access error4140 when params are valid4141 created instance is a WorkItem4142 calls NewIssueWorker with correct arguments4143 when params are invalid4144 is expected to be error4145 returns validation errors4146 does not execute after-create transaction widgets4147 checking spam4148 executes SpamActionService4149 behaves like work item widgetable service4150 executes callbacks for expected widgets4151 hierarchy widget4152 when user can admin parent link4153 when parent is valid work item4154 creates new work item and sets parent reference4155 when parent type is invalid4156 behaves like fails creating work item and returns errors4157 does not create new work item if parent can not be set4158 when user cannot admin parent link4159 behaves like fails creating work item and returns errors4160 does not create new work item if parent can not be set4161 behaves like creates work item in container4162 #execute4163 when user is not allowed to create a work item in the container4164 is expected to be error4165 returns an access error4166 when params are valid4167 created instance is a WorkItem4168 calls NewIssueWorker with correct arguments4169 when params are invalid4170 is expected to be error4171 returns validation errors4172 does not execute after-create transaction widgets4173 checking spam4174 executes SpamActionService4175 behaves like work item widgetable service4176 executes callbacks for expected widgets4177 hierarchy widget4178 when user can admin parent link4179 when parent is valid work item4180 creates new work item and sets parent reference4181 when parent type is invalid4182 behaves like fails creating work item and returns errors4183 does not create new work item if parent can not be set4184 when user cannot admin parent link4185 behaves like fails creating work item and returns errors4186 does not create new work item if parent can not be set4187 behaves like creates work item in container4188 #execute4189 when user is not allowed to create a work item in the container4190 is expected to be error4191 returns an access error4192 when params are valid4193 created instance is a WorkItem4194 calls NewIssueWorker with correct arguments4195 when params are invalid4196 is expected to be error4197 returns validation errors4198 does not execute after-create transaction widgets4199 checking spam4200 executes SpamActionService4201 behaves like work item widgetable service4202 executes callbacks for expected widgets4203 hierarchy widget4204 when user can admin parent link4205 when parent is valid work item4206 creates new work item and sets parent reference4207 when parent type is invalid4208 behaves like fails creating work item and returns errors4209 does not create new work item if parent can not be set4210 when user cannot admin parent link4211 behaves like fails creating work item and returns errors4212 does not create new work item if parent can not be set4213Suggestion4214 associations4215 is expected to belong to note required: false4216 validations4217 is expected to validate that :note cannot be empty/falsy4218 when importing4219 is expected not to validate that :note cannot be empty/falsy4220 when suggestion is applied4221 is expected to validate that :commit_id cannot be empty/falsy4222 #diff_lines4223 returns parsed diff lines4224 #appliable?4225 when inapplicable_reason is nil4226 is expected to be truthy4227 when inapplicable_reason is not nil4228 is expected to be falsey4229 #inapplicable_reason4230 when suggestion is already applied4231 is expected to eq "Can't apply this suggestion."4232 when merge request was merged4233 is expected to eq "This merge request was merged. To apply this suggestion, edit this file directly."4234 when merge request is closed4235 is expected to eq "This merge request is closed. To apply this suggestion, edit this file directly."4236 when source branch is deleted4237 is expected to eq "Can't apply as the source branch was deleted."4238 when outdated4239 and content is outdated4240 behaves like outdated suggestion4241 and suggestion is for a single line4242 is expected to eq "Can't apply as this line was changed in a more recent version."4243 and suggestion is for multiple lines4244 is expected to eq "Can't apply as these lines were changed in a more recent version."4245 and note is outdated4246 behaves like outdated suggestion4247 and suggestion is for a single line4248 is expected to eq "Can't apply as this line was changed in a more recent version."4249 and suggestion is for multiple lines4250 is expected to eq "Can't apply as these lines were changed in a more recent version."4251 when suggestion has the same content4252 is expected to eq "This suggestion already matches its content."4253 when file is .ipynb4254 is expected to eq "This file was modified for readability, and can't accept suggestions. Edit it directly."4255 when applicable4256 is expected to be nil4257 #single_line?4258 when suggestion is for a single line4259 is expected to eq true4260 when suggestion is for multiple lines4261 is expected to eq false4262Clusters::KnativeServicesFinder4263 #service_pod_details4264 behaves like a cached data4265 has an unintialized cache4266 when using synchronous reactive cache4267 when there are functions for cluster namespace4268 is expected not to be blank4269 when there are no functions for cluster namespace4270 is expected to be blank4271 #services4272 behaves like a cached data4273 has an unintialized cache4274 when using synchronous reactive cache4275 when there are functions for cluster namespace4276 is expected not to be blank4277 when there are no functions for cluster namespace4278 is expected to be blank4279 #knative_detected4280 when knative is installed4281 is expected to be truthy4282 discovers knative installation4283 when knative is not installed4284 is expected to be falsy4285 does not discover knative installation4286ProjectSetting4287 is expected to belong to project required: false4288 default values4289 is expected to be truthy4290 scopes4291 returns project setting for the given projects4292 validations4293 is expected not to allow :target_platforms to be ‹nil›4294 is expected to allow :target_platforms to be ‹[]›4295 is expected to validate that the length of :issue_branch_template is at most 2554296 is expected not to allow :suggested_reviewers_enabled to be ‹nil›4297 is expected to allow :suggested_reviewers_enabled to be ‹true›4298 is expected to allow :suggested_reviewers_enabled to be ‹false›4299 allows any combination of the allowed target platforms4300 is expected not to allow :target_platforms to be ‹[nil]›4301 is expected not to allow :target_platforms to be ‹["not_allowed"]›4302 is expected not to allow :target_platforms to be ‹[:invalid]›4303 validates uniqueness of pages_unique_domain4304 when pages_unique_domain is required4305 is not required if pages_unique_domain_enabled is false4306 is required when pages_unique_domain_enabled is true4307 is required if it is already saved in the database4308 target_platforms=4309 stringifies and sorts4310 #human_squash_option4311 squash_option: "never", human_squash_option: "Do not allow"4312 is expected to eq "Do not allow"4313 squash_option: "always", human_squash_option: "Require"4314 is expected to eq "Require"4315 squash_option: "default_on", human_squash_option: "Encourage"4316 is expected to eq "Encourage"4317 squash_option: "default_off", human_squash_option: "Allow"4318 is expected to eq "Allow"4319 #show_diff_preview_in_email?4320 when a project is a top-level namespace4321 when show_diff_preview_in_email is disabled4322 returns false4323 when show_diff_preview_in_email is enabled4324 returns true4325 #emails_enabled?4326 when a project does not have a parent group4327 returns true4328 returns false when updating project settings4329 when a project has a parent group4330 when emails have been disabled in parent group4331 returns false4332 when emails are enabled in parent group4333 returns true4334 returns false when disabled at the project4335 when a parent group has a parent group4336 when show_diff_preview_in_email is disabled for the parent group4337 returns false4338 when all ancestors have enabled diff previews4339 returns true4340Operations::FeatureFlags::UserList4341 validations4342 is expected to validate that :project cannot be empty/falsy4343 is expected to validate that :name cannot be empty/falsy4344 is expected to validate that :name is case-sensitively unique within the scope of :project_id4345 is expected to validate that the length of :name is between 1 and 2554346 user_xids4347 valid_value: ""4348 is valid with a string of comma separated values4349 valid_value: "sam"4350 is valid with a string of comma separated values4351 valid_value: "1"4352 is valid with a string of comma separated values4353 valid_value: "a"4354 is valid with a string of comma separated values4355 valid_value: "uuid-of-some-kind"4356 is valid with a string of comma separated values4357 valid_value: "sam,fred,tom,jane,joe,mike"4358 is valid with a string of comma separated values4359 valid_value: "gitlab@example.com"4360 is valid with a string of comma separated values4361 valid_value: "123,4"4362 is valid with a string of comma separated values4363 valid_value: "UPPER,Case,charActeRS"4364 is valid with a string of comma separated values4365 valid_value: "0"4366 is valid with a string of comma separated values4367 valid_value: "$valid$email#2345\#$%..{}+=-)?\\/@example.com"4368 is valid with a string of comma separated values4369 valid_value: "spaces allowed"4370 is valid with a string of comma separated values4371 valid_value: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"4372 is valid with a string of comma separated values4373 valid_value: "a,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,ccc"4374 is valid with a string of comma separated values4375 valid_value: "many spaces"4376 is valid with a string of comma separated values4377 typecast_value: 14378 automatically casts values of other types4379 typecast_value: 2.54380 automatically casts values of other types4381 typecast_value: {}4382 automatically casts values of other types4383 typecast_value: []4384 automatically casts values of other types4385 invalid_value: nil4386 is invalid4387 invalid_value: "123\n456"4388 is invalid4389 invalid_value: "1,2,3,12\t3"4390 is invalid4391 invalid_value: "\n"4392 is invalid4393 invalid_value: "\n\r"4394 is invalid4395 invalid_value: "joe\r,sam"4396 is invalid4397 invalid_value: "1,2,2"4398 is invalid4399 invalid_value: "1,,2"4400 is invalid4401 invalid_value: "1,2,,,,"4402 is invalid4403 invalid_value: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"4404 is invalid4405 invalid_value: "1, ,2"4406 is invalid4407 invalid_value: "tim, ,7"4408 is invalid4409 invalid_value: " "4410 is invalid4411 invalid_value: " "4412 is invalid4413 invalid_value: " ,1"4414 is invalid4415 invalid_value: "1, "4416 is invalid4417 invalid_value: " leading,1"4418 is invalid4419 invalid_value: "1,trailing "4420 is invalid4421 invalid_value: "1, both ,2"4422 is invalid4423 url_helpers4424 generates paths based on the internal id4425 #destroy4426 deletes the model if it is not associated with any feature flag strategies4427 does not delete the model if it is associated with a feature flag strategy4428 .for_name_like4429 returns a found name4430 returns an empty array when no lists match the query4431 behaves like AtomicInternalId4432 .has_internal_id4433 Module inclusion4434 is expected to includes the AtomicInternalId module4435 Validation4436 when presence validation is required4437 when creating an object4438 raises an error if the internal id is blank4439 when updating an object4440 raises an error if the internal id is blank4441 when presence validation is not required4442 when creating an object4443 does not raise an error if the internal id is blank (PENDING: No reason given)4444 when updating an object4445 does not raise an error if the internal id is blank (PENDING: No reason given)4446 Creating an instance4447 saves a new instance properly4448 internal id generation4449 calls InternalId.generate_next and sets internal id attribute4450 does not overwrite an existing internal id4451 when the instance has an internal ID set4452 calls InternalId.update_last_value and sets the `last_value` to that of the instance4453 unsetting the instance internal id on rollback4454 when the internal id has been changed4455 when the internal id is automatically set4456 clears it on the instance4457 when the internal id is manually set4458 does not clear it on the instance4459 when the internal id has not been changed4460 preserves the value on the instance4461 supply of internal ids4462 provides a persistent supply of IID values, sensitive to the current state4463 #reset_scope_internal_id_attribute4464 rewinds the allocated IID4465 allocates the same IID4466Gitlab::LegacyGithubImport::PullRequestFormatter4467 when importing a GitHub project4468 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#attributes4469 when pull request is open4470 returns formatted attributes4471 when pull request is closed4472 returns formatted attributes4473 when pull request is merged4474 returns formatted attributes4475 when it is assigned to someone4476 returns nil as assignee_id when is not a GitLab user4477 returns GitLab user id associated with GitHub id as assignee_id4478 returns GitLab user id associated with GitHub email as assignee_id4479 when author is a GitLab user4480 returns project creator_id as author_id when is not a GitLab user4481 returns GitLab user id associated with GitHub id as author_id4482 returns GitLab user id associated with GitHub email as author_id4483 returns description without created at tag line4484 when it has a milestone4485 returns nil when milestone does not exist4486 returns milestone when it exists4487 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#number4488 returns pull request number4489 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#source_branch_name4490 when source branch exists4491 returns branch ref4492 when source branch does not exist4493 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4494 when source branch is from a fork4495 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4496 when source branch is from a deleted fork4497 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4498 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#target_branch_name4499 when target branch exists4500 returns branch ref4501 when target branch does not exist4502 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4503 when importing a Gitea project4504 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#attributes4505 when pull request is open4506 returns formatted attributes4507 when pull request is closed4508 returns formatted attributes4509 when pull request is merged4510 returns formatted attributes4511 when it is assigned to someone4512 returns nil as assignee_id when is not a GitLab user4513 returns GitLab user id associated with GitHub id as assignee_id4514 returns GitLab user id associated with GitHub email as assignee_id4515 when author is a GitLab user4516 returns project creator_id as author_id when is not a GitLab user4517 returns GitLab user id associated with GitHub id as author_id4518 returns GitLab user id associated with GitHub email as author_id4519 returns description without created at tag line4520 when it has a milestone4521 returns nil when milestone does not exist4522 returns milestone when it exists4523 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#number4524 returns pull request number4525 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#source_branch_name4526 when source branch exists4527 returns branch ref4528 when source branch does not exist4529 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4530 when source branch is from a fork4531 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4532 when source branch is from a deleted fork4533 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4534 behaves like Gitlab::LegacyGithubImport::PullRequestFormatter#target_branch_name4535 when target branch exists4536 returns branch ref4537 when target branch does not exist4538 prefixes branch name with gh-:short_sha/:number/:user pattern to avoid collision4539 #valid?4540 when source, and target repos are not a fork4541 returns true4542 when source repo is a fork4543 returns true4544 when target repo is a fork4545 returns true4546 #cross_project?4547 when source and target repositories are different4548 returns true4549 when source repository does not exist anymore4550 returns true4551 when source and target repositories are the same4552 returns false4553 #source_branch_exists?4554 returns false when is a cross_project4555 #url4556 return raw url4557 #opened?4558 returns true when state is "open"4559npm.gitlab-ci.yml4560 the created pipeline4561 on default branch4562 when package.json has been changed4563 behaves like publish job created4564 creates a pipeline with a single job: publish4565 when package.json does not exist or has not been changed4566 behaves like no pipeline created4567 does not create a pipeline because the only job (publish) is not created4568 when the branch name is v1.0.04569 behaves like publish job created4570 creates a pipeline with a single job: publish4571 when the tag name is v1.0.04572 behaves like publish job created4573 creates a pipeline with a single job: publish4574 when the branch name is v2.1.0-alpha4575 behaves like publish job created4576 creates a pipeline with a single job: publish4577 when the tag name is v2.1.0-alpha4578 behaves like publish job created4579 creates a pipeline with a single job: publish4580 when the branch name is patch-14581 behaves like no pipeline created4582 does not create a pipeline because the only job (publish) is not created4583 when the tag name is patch-14584 behaves like no pipeline created4585 does not create a pipeline because the only job (publish) is not created4586 when the branch name is my-feature-branch4587 behaves like no pipeline created4588 does not create a pipeline because the only job (publish) is not created4589 when the tag name is my-feature-branch4590 behaves like no pipeline created4591 does not create a pipeline because the only job (publish) is not created4592 when the branch name is v14593 behaves like no pipeline created4594 does not create a pipeline because the only job (publish) is not created4595 when the tag name is v14596 behaves like no pipeline created4597 does not create a pipeline because the only job (publish) is not created4598 when the branch name is v1.04599 behaves like no pipeline created4600 does not create a pipeline because the only job (publish) is not created4601 when the tag name is v1.04602 behaves like no pipeline created4603 does not create a pipeline because the only job (publish) is not created4604 when the branch name is 2.1.04605 behaves like no pipeline created4606 does not create a pipeline because the only job (publish) is not created4607 when the tag name is 2.1.04608 behaves like no pipeline created4609 does not create a pipeline because the only job (publish) is not created4610Metrics::Dashboards::AnnotationsFinder4611 #execute4612 there are no annotations records4613 returns empty array4614 with annotation records4615 loads annotations4616 when the from filter is present4617 loads only younger annotations4618 when the to filter is present4619 loads only older annotations4620 when from and to filters are present4621 and to is bigger than from4622 loads only annotations assigned to this interval4623 and from is bigger than to4624 ignores to parameter and returns annotations starting at from filter4625 when from or to filters are empty strings4626 ignores this parameters4627 dashboard environment is missing4628 returns empty relation4629Groups::CreateService#execute4630 visibility level restrictions4631 create groups without restricted visibility level4632 is expected to be persisted4633 cannot create group with restricted visibility level4634 is expected not to be persisted4635 when `setup_for_company:true` is passed4636 creates group with the specified setup_for_company4637 creating a group with `default_branch_protection` attribute4638 for users who have the ability to create a group with `default_branch_protection`4639 creates group with the specified branch protection level4640 for users who do not have the ability to create a group with `default_branch_protection`4641 does not create the group with the specified branch protection level4642 creating a group with `allow_mfa_for_subgroups` attribute4643 creates group without error4644 creating a top level group4645 when user can create a group4646 is expected to be persisted4647 with before_commit callback4648 behaves like has sync-ed traversal_ids4649 is expected to eq [2091]4650 when user can not create a group4651 is expected not to be persisted4652 creating subgroup4653 as group owner4654 is expected to be persisted4655 behaves like has sync-ed traversal_ids4656 is expected to eq [2097, 2098]4657 as guest4658 does not save group and returns an error4659 as owner4660 is expected to be persisted4661 as maintainer4662 is expected to be persisted4663 when visibility level is passed as a string4664 assigns the correct visibility level4665 creating a mattermost team4666 create the chat team with the group4667 creating a setting record4668 create the settings record connected to the group4669 creating a details record4670 create the details record connected to the group4671 create service for the group4672 with an active instance-level integration4673 creates a service from the instance-level integration4674 with an active group-level integration4675 creates a service from the group-level integration4676 with an active subgroup4677 creates a service from the subgroup-level integration4678 shared runners configuration4679 parent group present4680 shared_runners_config: true, descendants_override_disabled_shared_runners_config: false4681 creates group following the parent config4682 shared_runners_config: false, descendants_override_disabled_shared_runners_config: false4683 creates group following the parent config4684 shared_runners_config: false, descendants_override_disabled_shared_runners_config: true4685 creates group following the parent config4686 root group4687 follows default config4688MergeRequests::RequestReviewService4689 #execute4690 invalid permissions4691 behaves like failed service execution4692 returns an error4693 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4694 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4695 reviewer does not exist4696 behaves like failed service execution4697 returns an error4698 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated4699 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times4700 reviewer exists4701 returns success4702 updates reviewers state4703 sends email to reviewer4704 creates a new todo for the reviewer4705 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated4706 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:161 namespace612/project645!1>) 1 time4707AutoDevopsHelper4708 .show_auto_devops_callout?4709 when auto devops is implicitly enabled4710 is expected to eq false4711 when auto devops is not implicitly enabled4712 is expected to eq true4713 when the banner is disabled by feature flag4714 is expected to be falsy4715 when dismissed4716 is expected to eq false4717 when user cannot admin project4718 is expected to eq false4719 when auto devops is enabled system-wide4720 is expected to eq false4721 when auto devops is explicitly enabled for project4722 is expected to eq false4723 when auto devops is explicitly disabled for project4724 is expected to eq false4725 when master contains a .gitlab-ci.yml file4726 is expected to eq false4727 when another service is enabled4728 is expected to eq false4729 #auto_devops_settings_path4730 returns auto devops settings path4731 #badge_for_auto_devops_scope4732 when receiver is a group4733 when explicitly enabled4734 is expected to eq "group enabled"4735 when explicitly disabled4736 is expected to be nil4737 when auto devops is implicitly enabled4738 by instance4739 is expected to eq "instance enabled"4740 with groups4741 when auto devops is enabled on parent4742 is expected to eq "group enabled"4743 when auto devops is enabled on parent group4744 is expected to eq "group enabled"4745 when auto devops disabled set on parent group4746 is expected to be nil4747 when receiver is a project4748 when auto devops is enabled at project level4749 is expected to be nil4750 when auto devops is disabled at project level4751 is expected to be nil4752 when auto devops is implicitly enabled4753 by instance4754 is expected to eq "instance enabled"4755 with groups4756 when auto devops is enabled on group level4757 is expected to eq "group enabled"4758 when auto devops is enabled on root group4759 is expected to eq "group enabled"4760 when auto devops is implicitly disabled4761 by instance4762 is expected to be nil4763 with groups4764 when auto devops is disabled on group level4765 is expected to be nil4766 when root group is enabled and parent disabled4767 is expected to be nil4768Groups::GroupLinks::CreateService#execute4769 when user has proper membership to share a group4770 behaves like shareable4771 adds group to another group4772 when sharing outside the hierarchy is disabled4773 behaves like not shareable4774 does not share and returns an error4775 when group is inside hierarchy4776 behaves like shareable4777 adds group to another group (FAILED - 1)47791st Try error in ./spec/services/groups/group_links/create_service_spec.rb:35:4780expected: :success4781 got: :error4782(compared using ==)4783Diff:4784@@ -1 +1 @@4785-:success4786+:error4788RSpec::Retry: 2nd try ./spec/services/groups/group_links/create_service_spec.rb:354789 project authorizations based on group hierarchies4790 project authorizations refresh4791 is executed only for the direct members of the group4792 project authorizations4793 group user4794 create proper authorizations4795 parent group user4796 create proper authorizations4797 child group user4798 create proper authorizations4799 user does not have access to group4800 behaves like not shareable4801 does not share and returns an error4802 user does not have admin access to shared group4803 behaves like not shareable4804 does not share and returns an error4805 when group is blank4806 does not share and returns an error4807 when shared_with_group is blank4808 behaves like not shareable4809 does not share and returns an error4810MergeRequests::Conflicts::ResolveService4811 #execute4812 with section params4813 when the source and target project are the same4814 creates a commit with the message4815 creates a commit with the correct parents4816 when some files have trailing newlines4817 preserves trailing newlines from our side of the conflicts4818 when the source project is a fork and does not contain the HEAD of the target branch4819 creates a commit with the message4820 creates a commit with the correct parents4821 with content and sections params4822 creates a commit with the message4823 creates a commit with the correct parents4824 sets the content to the content given4825 when a resolution section is missing4826 raises a ResolutionError error4827 when the content of a file is unchanged4828 raises a ResolutionError error4829 when a file is missing4830 raises a ResolutionError error4831Gitlab::Email::Handler::CreateIssueHandler4832 behaves like reply processing shared examples4833 when the user could not be found4834 raises a UserNotFoundError4835 when the user is not authorized to the project4836 raises a ProjectNotFound4837 when email key4838 matches the new format4839 matches the legacy format4840 doesn't match either format4841 when everything is fine4842 behaves like a new issue4843 creates a new issue4844 creates a new issue with legacy email address4845 behaves like a new issue4846 creates a new issue4847 when the reply is blank4848 creates a new issue4849 when there are quotes in email4850 creates a new issue4851 when all lines of email are quotes4852 creates email with correct body4853 something is wrong4854 raises a RateLimitedService::RateLimitedError4855 when the issue could not be saved4856 raises an InvalidIssueError4857 when we can't find the incoming_email_token4858 raises an UserNotFoundError4859 when project is private4860 raises a ProjectNotFound if the user is not a member4861 when project ID is invalid4862 raises a ProjectNotFound4863Projects::HashedStorage::RollbackRepositoryService4864 #execute4865 works even when project validation fails4866 repository lock4867 tries to lock the repository4868 fails when a git operation is in progress4869 when repository doesnt exist on disk4870 skips the disk change but decrease the version4871 when succeeds4872 renames project, wiki and design repositories4873 updates project to be legacy and not read-only4874 move operation is called for both repositories4875 writes project full path to gitaly4876 when exception happens4877 handles OpenSSL::Cipher::CipherError4878 ensures rollback when OpenSSL::Cipher::CipherError4879 handles Gitlab::Git::CommandError4880 ensures rollback when Gitlab::Git::CommandError4881 when one move fails4882 rolls repositories back to original name4883 when rollback fails4884 does not try to move nil repository over existing4885AddressableUrlValidator4886 #validate4887 with no options4888 allows http,https schemes by default4889 checks that the url structure is valid4890 with schemes4891 allows urls with the defined schemes4892 add error if the url scheme does not match the selected ones4893 validations4894 returns error when url is nil4895 returns error when url is empty4896 allows urls with encoded CR or LF characters4897 does not allow urls with CR or LF characters4898 provides all arguments to UrlBlocker.validate!4899 by default4900 does not block urls pointing to localhost4901 does not block urls pointing to the local network4902 does block nil urls4903 does block blank urls4904 strips urls4905 allows urls that cannot be resolved4906 when message is set4907 does block nil url with provided error message4908 when blocked_message is set4909 blocks url with provided error message4910 when allow_nil is set to true4911 does not block nil urls4912 when allow_blank is set to true4913 does not block blank urls4914 when allow_localhost is set to false4915 blocks urls pointing to localhost4916 when allow_setting_local_requests is set to true4917 does not block urls pointing to localhost4918 when allow_local_network is set to false4919 blocks urls pointing to the local network4920 when allow_setting_local_requests is set to true4921 does not block urls pointing to local network4922 when ports is4923 empty4924 does not block any port4925 set4926 blocks urls with a different port4927 when enforce_user is4928 true4929 checks user format4930 false (default)4931 does not check user format4932 when ascii_only is4933 true4934 prevents unicode characters4935 false (default)4936 does not prevent unicode characters4937 when deny_all_requests_except_allowed is4938 true4939 prevents the url4940 false4941 allows the url4942 not given4943 when app setting is true4944 prevents the url4945 when app setting is false4946 allows the url4947 when enforce_sanitization is4948 true4949 prevents unsafe urls4950 prevents unsafe internal urls4951 allows safe urls4952 false4953 allows unsafe urls4954 when dns_rebind_protection is4955 true4956 raises error4957 false4958 allows urls that cannot be resolved4959Feature::Gitaly4960 .enabled_for_any?4961 when the flag is set globally4962 when the gate is closed4963 returns false4964 when the flag defaults to on4965 returns true4966 when the flag is enabled for a particular project4967 returns true for that project4968 returns false for any other project4969 returns false when no project is passed4970 when the flag is enabled for a particular repository4971 returns true for that repository4972 returns false for any other repository4973 returns false when no repository is passed4974 when the flag is checked with multiple input actors4975 returns true if any of the flag is enabled for any of the input actors4976 returns false if any of the flag is not enabled for any of the input actors4977 .server_feature_flags4978 returns a hash of flags starting with the prefix, with dashes instead of underscores4979 when a project is passed4980 returns the value for the flag on the given project4981 when a repository is passed4982 returns the value for the flag on the given repository4983 when a user is passed4984 returns the value for the flag on the given user4985 when a group is passed4986 returns the value for the flag on the given group4987 when multiple actors are passed4988 returns the corresponding enablement status for actors4989 when table does not exist4990 returns an empty Hash4991 .user_actor4992 when user is passed in4993 returns a actor wrapper from user4994 when called without user and user_id is available in application context4995 returns a actor wrapper from user_id4996 when called without user and user_id is absent from application context4997 returns nil4998 when something else is passed4999 returns nil5000 .project_actor5001 when project is passed in5002 returns a actor wrapper from project5003 when something else is passed in5004 returns nil5005 .group_actor5006 when project is passed in5007 returns a actor wrapper from project's group5008 when something else is passed in5009 returns nil5010ReleaseHighlight5011 .paginated5012 with page param5013 when there is another page of results5014 responds with paginated results5015 when there is NOT another page of results5016 responds with paginated results and no next_page5017 when that specific page does not exist5018 returns nil5019 with no page param5020 uses multiple levels of cache5021 returns platform specific items5022 parses the description as markdown and returns html, and links are target="_blank"5023 logs an error if theres an error parsing markdown for an item, and skips it5024 when Gitlab.com5025 responds with a different set of data5026 YAML parsing throws an exception5027 fails gracefully and logs an error5028 .most_recent_item_count5029 uses process memory cache5030 when recent release items exist5031 returns the count from the most recent file5032 when recent release items do NOT exist5033 returns nil5034 .most_recent_version_digest5035 uses process memory cache5036 when recent release items exist5037 returns a digest from the release of the first item of the most recent file5038 when recent release items do NOT exist5039 returns nil5040 .load_items5041 whats new for all tiers5042 returns all items5043 whats new for current tier only5044 returns items with package=Free5045 QueryResult5046 responds to map5047 .current_package5048 returns Free5049 .file_paths5050 joins relative file paths with the root path to avoid caching the root url5051Gitlab::Ci::Build::Image5052 #from_image5053 when image is defined in job5054 when image is defined as string5055 fabricates an object of the proper class5056 populates fabricated object with the proper name attribute5057 does not populate the ports5058 when image is defined as hash5059 fabricates an object of the proper class5060 populates fabricated object with the proper attributes5061 populates the ports5062 when image name is empty5063 does not fabricate an object5064 when image is not defined in job5065 does not fabricate an object5066 #from_services5067 when services are defined in job5068 when service is defined as string5069 fabricates an non-empty array of objects5070 populates fabricated objects with the proper name attributes5071 does not populate the ports5072 when service is defined as hash5073 fabricates an non-empty array of objects5074 populates fabricated objects with the proper attributes5075 when service image name is empty5076 fabricates an empty array5077 when services are not defined in job5078 fabricates an empty array5079gitlab:packages:events namespace rake task5080 generate_unique5081 excludes guest events5082 includes `maven` scope5083 includes `npm` scope5084 includes `conan` scope5085 includes `nuget` scope5086 includes `pypi` scope5087 includes `composer` scope5088 includes `generic` scope5089 includes `golang` scope5090 includes `debian` scope5091 includes `rubygems` scope5092 includes `helm` scope5093 includes `terraform_module` scope5094 includes `rpm` scope5095 includes `container` scope5096 includes `tag` scope5097 includes `dependency_proxy` scope5098 excludes some event types5099 generate_counts5100 includes `maven` scope5101 includes `npm` scope5102 includes `conan` scope5103 includes `nuget` scope5104 includes `pypi` scope5105 includes `composer` scope5106 includes `generic` scope5107 includes `golang` scope5108 includes `debian` scope5109 includes `rubygems` scope5110 includes `helm` scope5111 includes `terraform_module` scope5112 includes `rpm` scope5113 includes `container` scope5114 includes `tag` scope5115 includes `dependency_proxy` scope5116 excludes some event types5117MergeRequests::RemoveApprovalService5118 #execute5119 with a user who has approved5120 removes the approval5121 creates an unapproval note, triggers a web hook, and sends a notification5122 tracks merge request unapprove action5123 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated5124 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:176 namespace692/project730!1>) 1 time5125 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated5126 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:177 namespace693/project731!1>) 1 time5127 behaves like triggers GraphQL subscription mergeRequestApprovalStateUpdated5128 is expected to receive merge_request_approval_state_updated(#<MergeRequest id:178 namespace694/project732!1>) 1 time5129 with a user who has not approved5130 does not create an unapproval note and triggers web hook5131 does not track merge request unapprove action5132 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated5133 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times5134 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated5135 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times5136 behaves like does not trigger GraphQL subscription mergeRequestApprovalStateUpdated5137 is expected not to receive merge_request_approval_state_updated(*(any args)) 0 times5138Gitlab::Graphql::Pagination::ActiveRecordArrayConnection5139 behaves like a connection with collection methods5140 responds to to_a5141 responds to size5142 responds to map5143 responds to include?5144 responds to empty?5145 behaves like a redactable connection5146 no redactor set5147 contains the unwanted item5148 does not redact more than once5149 redactor is set5150 does not contain the unwanted item5151 does not redact more than once5152 #nodes5153 is expected to contain exactly #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: nil>, #<Packages::BuildInfo id: 2, package_id: 2, pipeline_id: nil>, and #<Packages::BuildInfo id: 3, package_id: 3, pipeline_id: nil>5154 with first set5155 is expected to contain exactly #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: nil> and #<Packages::BuildInfo id: 2, package_id: 2, pipeline_id: nil>5156 with last set5157 is expected to contain exactly #<Packages::BuildInfo id: 2, package_id: 2, pipeline_id: nil> and #<Packages::BuildInfo id: 3, package_id: 3, pipeline_id: nil>5158 #next_page?5159 before: nil, first: nil, max_page_size: nil, result: false5160 is expected to eq false5161 before: 1, first: nil, max_page_size: nil, result: true5162 is expected to eq true5163 before: nil, first: 1, max_page_size: nil, result: true5164 is expected to eq true5165 before: nil, first: 10, max_page_size: nil, result: false5166 is expected to eq false5167 before: nil, first: 1, max_page_size: 1, result: true5168 is expected to eq true5169 before: nil, first: 1, max_page_size: 10, result: true5170 is expected to eq true5171 before: nil, first: 10, max_page_size: 10, result: false5172 is expected to eq false5173 #previous_page?5174 after: nil, last: nil, max_page_size: nil, result: false5175 is expected to eq false5176 after: 1, last: nil, max_page_size: nil, result: true5177 is expected to eq true5178 after: nil, last: 1, max_page_size: nil, result: true5179 is expected to eq true5180 after: nil, last: 10, max_page_size: nil, result: false5181 is expected to eq false5182 after: nil, last: 1, max_page_size: 1, result: true5183 is expected to eq true5184 after: nil, last: 1, max_page_size: 10, result: true5185 is expected to eq true5186 after: nil, last: 10, max_page_size: 10, result: false5187 is expected to eq false5188 #cursor_for5189 is expected to eq "eyJpZCI6IjEifQ"5190 with a BatchLoader::GraphQL item5191 is expected to eq "eyJpZCI6IjE0ODgifQ"5192 #dup5193 properly handles items duplication5194Gitlab::ImportExport::MergeRequestParser5195 has a source branch5196 has a target branch5197 fork merge request5198 parses a MR that has no source branch5199 parses a MR that is closed5200 parses a MR that is merged5201 when the merge request has diffs5202 when the diff is invalid5203 sets the diff to empty diff5204AnalyticsBuildEntity5205 build with an author5206 contains the URL5207 contains the author5208 contains the project path5209 contains the namespace full path5210 does not contain sensitive information5211 contains the right started at5212 contains the duration5213 no started at or finished at date5214 does not blow up5215 shows the right message5216 shows the right total time5217 no started at date5218 does not blow up5219 shows the right message5220 shows the right total time5221 no finished at date5222 does not blow up5223 shows the right message5224 shows the right total time5225Ci::CommitWithPipeline5226 #last_pipeline5227 returns last pipeline5228 #lazy_latest_pipeline5229 executes only 1 SQL query5230 #latest_pipeline5231 without ref argument5232 behaves like fetching latest pipeline5233 returns the latest pipeline for the project5234 returns the memoized pipeline for the key of5235 when a particular ref is specified5236 behaves like fetching latest pipeline5237 returns the latest pipeline for the project5238 returns the memoized pipeline for the key of master5239 #latest_pipeline_for_project5240 returns the latest pipeline of the commit for the given ref and project5241 #set_latest_pipeline_for_ref5242 sets the latest pipeline for a given reference5243 #status5244 returns the status of the latest pipeline for the given ref5245 returns nil when latest pipeline is not present for the given ref5246 returns the status of the latest pipeline when no ref is given5247Gitlab::Usage::Metrics::Instrumentations::JiraActiveIntegrationsMetric5248 # order random5249 raises an exception if option has invalid value5250 raises an exception if option is not present5251 behaves like a correct instrumented metric value and query5252 behaves like a correct instrumented metric value5253 has correct value5254 behaves like a correct instrumented metric query5255 has correct generate query5256Gitlab::Metrics::Samplers::RubySampler5257 behaves like metrics sampler5258 when sampling interval is passed explicitly5259 is expected to eq 425260 when sampling interval is passed through the environment5261 is expected to eq 425262 when no sampling interval is passed anywhere5263 uses the hardcoded default5264 #start5265 calls the sample method on the sampler thread5266 with warmup set to true5267 calls the sample method first on the caller thread5268 #safe_sample5269 calls #sample once5270 when sampling fails with error5271 recovers from errors5272 with logger5273 logs errors5274 #initialize5275 sets process_start_time_seconds5276 when not setting a prefix5277 does not prepend metrics with that prefix5278 when using custom prefix5279 prepends metrics with that prefix5280 #sample5281 adds a metric containing the process total resident memory bytes5282 adds a metric containing the process anonymous resident memory bytes5283 adds a metric containing the process file backed resident memory bytes5284 adds a metric containing the process unique and proportional memory bytes5285 adds a metric containing the amount of open file descriptors5286 adds a metric containing the process total cpu time5287 adds a metric containing the process max file descriptors5288 clears any GC profiles5289 when USS+PSS sampling is disabled via environment5290 does not sample USS or PSS5291 #sample_gc5292 re-enables GC::Profiler if needed5293 observes GC cycles time5294 adds a metric containing garbage collection statistics5295 adds a heap fragmentation metric5296Ci::BuildTraceMetadata5297 is expected to belong to build required: false5298 is expected to belong to trace_artifact required: false5299 is expected to validate that :build cannot be empty/falsy5300 is expected to validate that :archival_attempts cannot be empty/falsy5301 #can_attempt_archival_now?5302 when archival_attempts is over the limit5303 is expected to be falsey5304 when last_archival_attempt_at is not set5305 is expected to be truthy5306 when last_archival_attempt_at is set5307 is expected to be truthy5308 when last_archival_attempt_at is too close5309 is expected to be falsey5310 #archival_attempts_available?5311 when archival_attempts is over the limit5312 is expected to be falsey5313 when archival_attempts is at the limit5314 is expected to be truthy5315 #increment_archival_attempts!5316 increments the attempts5317 updates the last_archival_attempt_at timestamp5318 #track_archival!5319 stores the artifact id and timestamp5320 .find_or_upsert_for!5321 creates a new record5322 with existing records5323 returns the existing record5324 #remote_checksum_valid?5325 checksum: nil, remote_checksum: nil, result: false5326 is expected to eq false5327 checksum: nil, remote_checksum: "a", result: false5328 is expected to eq false5329 checksum: "a", remote_checksum: nil, result: false5330 is expected to eq false5331 checksum: "a", remote_checksum: "b", result: false5332 is expected to eq false5333 checksum: "b", remote_checksum: "a", result: false5334 is expected to eq false5335 checksum: "a", remote_checksum: "a", result: true5336 is expected to eq true5337 partitioning5338 assigns the same partition id as the one that build has (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)5339Gitlab::Database::Count5340 .approximate_counts5341 fallbacks5342 gets results from first strategy5343 gets more results from second strategy if some counts are missing5344 does not get more results as soon as all counts are present5345 default strategies5346 with a read-only database5347 only uses the ExactCountStrategy5348 with a read-write database5349 uses the available strategies5350ReviewApps::AutomatedCleanup5351 # order random5352 .parse_args5353 when no arguments are provided5354 returns the default options5355 --dry-run5356 when no DRY_RUN variable is provided5357 raises an error5358 when the DRY_RUN variable is not set to true5359 returns the default options5360 when the DRY_RUN variable is set to true5361 returns the correct dry_run value5362 when the short version of the flag is used5363 returns the correct dry_run value5364 #perform_stale_namespace_cleanup!5365 performs Kubernetes cleanup for review apps namespaces5366 behaves like the days argument is an integer in the correct range5367 when days is nil5368 raises an error5369 when days is zero5370 raises an error5371 when days is above 3655372 raises an error5373 when days is a string5374 does not raise an error5375 when days is a float5376 does not raise an error5377 when the dry-run flag is true5378 does not delete anything5379 #perform_stale_pvc_cleanup!5380 performs Kubernetes cleanup by created at5381 behaves like the days argument is an integer in the correct range5382 when days is nil5383 raises an error5384 when days is zero5385 raises an error5386 when days is above 3655387 raises an error5388 when days is a string5389 does not raise an error5390 when days is a float5391 does not raise an error5392 when the dry-run flag is true5393 does not delete anything5394 #perform_helm_releases_cleanup!5395 behaves like the days argument is an integer in the correct range5396 when days is nil5397 raises an error5398 when days is zero5399 raises an error5400 when days is above 3655401 raises an error5402 when days is a string5403 does not raise an error5404 when days is a float5405 does not raise an error5406 when the helm release is not a review-app release5407 behaves like does not delete the helm release5408 does not delete the helm release5409 does not delete the associated k8s namespace5410 when the helm release is a review-app release5411 when the helm release was deployed recently enough5412 when the helm release is in failed state5413 behaves like deletes the helm release5414 deletes the helm release5415 deletes the associated k8s namespace5416 when the dry-run flag is true5417 behaves like does nothing on a dry run5418 behaves like does not delete the helm release5419 does not delete the helm release5420 does not delete the associated k8s namespace5421 when the helm release is not in failed state5422 behaves like does not delete the helm release5423 does not delete the helm release5424 does not delete the associated k8s namespace5425 when the helm release was deployed a while ago5426 when the helm release is in failed state5427 behaves like deletes the helm release5428 deletes the helm release5429 deletes the associated k8s namespace5430 when the helm release is not in failed state5431 behaves like deletes the helm release5432 deletes the helm release5433 deletes the associated k8s namespace5434BoardPolicy5435 group board5436 user has access5437 is expected to be allowed :read_issue5438 user does not have access5439 is expected not to be allowed :read_issue5440 project board5441 user has access5442 is expected to be allowed :read_issue5443 user does not have access5444 is expected not to be allowed :read_issue5445 create_non_backlog_issues5446 for project boards5447 when user can admin project issues5448 allows to add non backlog issues from issue board5449 when user cannot admin project issues5450 does not allow to add non backlog issues from issue board5451 for group boards5452 when user is at least reporter in one of the child projects5453 allows to add non backlog issues from issue board5454 when user is not a reporter from any child projects5455 does not allow to add non backlog issues from issue board5456Gitlab::Sanitizers::Exif5457 #batch_clean5458 filters only jpg/tiff images by filename5459 with image uploads5460 processes all uploads if range ID is not set5461 processes only uploads in the selected range5462 processes only uploads for the selected uploader5463 processes only uploads created since specified date5464 pauses if sleep_time is set5465 #clean5466 no dry run5467 removes exif from the image5468 ignores image without exif5469 raises an error if the exiftool fails with an error5470 for files that do not have the correct MIME type5471 cleans only jpg/tiff images with the correct mime types5472 dry run5473 doesn't change the image5474 #clean_existing_path5475 no dry run5476 removes exif from the image5477 ignores image without exif5478 raises an error if the exiftool fails with an error5479 for files that do not have the correct MIME type from file5480 cleans only jpg/tiff images with the correct mime types5481 skip_unallowed_types is false5482 for files that do not have the correct MIME type from input content5483 raises an error if not jpg/tiff images with the correct mime types5484 for files that do not have the correct MIME type from input content5485 raises an error if not jpg/tiff images with the correct mime types5486 skip_unallowed_types is true5487 for files that do not have the correct MIME type from input content5488 cleans only jpg/tiff images with the correct mime types5489 for files that do not have the correct MIME type from input content5490 cleans only jpg/tiff images with the correct mime types5491 dry run5492 doesn't change the image5493 #extra_tags5494 returns a list of keys for exif file5495 returns an empty list for file with only whitelisted and ignored tags5496TimeboxesHelper5497 #timebox_date_range5498 milestone5499 is expected to be nil5500 is expected to eq "expires on Mar 31, 2023"5501 is expected to eq "expired on Mar 29, 2023"5502 is expected to eq "starts on Mar 31, 2023"5503 is expected to eq "started on Mar 29, 2023"5504 is expected to eq "Mar 29, 2023–Mar 31, 2023"5505 #group_milestone_route5506 when in subgroup5507 generates correct url despite assigned @group5508 #recent_releases_with_counts5509 returns releases with counts5510 #milestone_status_string5511 milestone: lazy { milestone_expired }, status: "Expired"5512 returns status string5513 milestone: lazy { milestone_closed }, status: "Closed"5514 returns status string5515 milestone: lazy { milestone_closed_and_expired }, status: "Closed"5516 returns status string5517 milestone: lazy { milestone_upcoming }, status: "Upcoming"5518 returns status string5519 milestone: lazy { milestone_open }, status: "Open"5520 returns status string5521 #milestone_badge_variant5522 milestone: lazy { milestone_expired }, variant: :warning5523 returns badge variant5524 milestone: lazy { milestone_closed }, variant: :danger5525 returns badge variant5526 milestone: lazy { milestone_closed_and_expired }, variant: :danger5527 returns badge variant5528 milestone: lazy { milestone_upcoming }, variant: :neutral5529 returns badge variant5530 milestone: lazy { milestone_open }, variant: :success5531 returns badge variant5532gitlab:web_hook namespace rake tasks5533 gitlab:web_hook:add5534 adds a web hook to all projects5535 adds a web hook to projects in the specified namespace5536 raises an error if an unknown namespace is specified5537 gitlab:web_hook:rm5538 complains if URL is not provided5539 removes a web hook from all projects by URL5540 removes a web hook from projects in the specified namespace by URL5541 raises an error if an unknown namespace is specified5542 gitlab:web_hook:list5543 lists all web hooks5544 lists web hooks in a particular namespace5545Ci::Maskable5546 masked value validations5547 when variable is masked and expanded5548 is expected not to allow :value to be ‹"hello"›5549 is expected not to allow :value to be ‹"hello world"›5550 is expected not to allow :value to be ‹"hello$VARIABLEworld"›5551 is expected not to allow :value to be ‹"hello\\rworld"›5552 is expected to allow :value to be ‹"helloworld"›5553 when method :raw is not defined5554 evaluates masked variables as expanded5555 when variable is masked and raw5556 is expected not to allow :value to be ‹"hello"›5557 is expected not to allow :value to be ‹"hello world"›5558 is expected to allow :value to be ‹"hello\\rworld"›5559 is expected to allow :value to be ‹"hello$VARIABLEworld"›5560 is expected to allow :value to be ‹"helloworld!!!"›5561 is expected to allow :value to be ‹"hell******world"›5562 is expected to allow :value to be ‹"helloworld123"›5563 when variable is not masked5564 is expected to allow :value to be ‹"hello"›5565 is expected to allow :value to be ‹"hello world"›5566 is expected to allow :value to be ‹"hello$VARIABLEworld"›5567 is expected to allow :value to be ‹"hello\\rworld"›5568 is expected to allow :value to be ‹"helloworld"›5569 Regexes5570 with MASK_AND_RAW_REGEX5571 does not match strings shorter than 8 letters5572 does not match strings with spaces5573 does not match strings that span more than one line5574 matches valid strings5575 with REGEX5576 does not match strings shorter than 8 letters5577 does not match strings with spaces5578 does not match strings with shell variables5579 does not match strings with escape characters5580 does not match strings that span more than one line5581 does not match strings using unsupported characters5582 matches valid strings5583 #to_runner_variable5584 exposes the masked attribute5585Users::RefreshAuthorizedProjectsService5586 #execute5587 refreshes the authorizations using a lease5588 callbacks5589 incorrect_auth_found_callback callback5590 is called5591 missing_auth_found_callback callback5592 is called5593 #execute_without_lease5594 updates the authorized projects of the user5595 sets the access level of a project to the highest available level5596 returns a User5597 #update_authorizations5598 removes authorizations that should be removed5599 inserts authorizations that should be added5600 logs the details of the refresh5601 when there are no rows to add and remove5602 does not change authorizations5603Gitlab::Ci::Pipeline::Expression::Lexeme::Or5604 .build5605 creates a new instance of the token5606 with non-evaluable operands5607 raises an operator error5608 .type5609 is an operator5610 .precedence5611 has a precedence5612 #evaluate5613 when left and right are truthy5614 left_value: true, right_value: 15615 is expected to be truthy5616 is expected to eq true5617 left_value: true, right_value: "a"5618 is expected to be truthy5619 is expected to eq true5620 left_value: 1, right_value: true5621 is expected to be truthy5622 is expected to eq 15623 left_value: 1, right_value: "a"5624 is expected to be truthy5625 is expected to eq 15626 left_value: "a", right_value: true5627 is expected to be truthy5628 is expected to eq "a"5629 left_value: "a", right_value: 15630 is expected to be truthy5631 is expected to eq "a"5632 when left or right is truthy5633 left_value: true, right_value: false5634 is expected to be truthy5635 left_value: true, right_value: "a"5636 is expected to be truthy5637 left_value: false, right_value: true5638 is expected to be truthy5639 left_value: false, right_value: "a"5640 is expected to be truthy5641 left_value: "a", right_value: true5642 is expected to be truthy5643 left_value: "a", right_value: false5644 is expected to be truthy5645 when left and right are falsey5646 left_value: false, right_value: nil5647 is expected to be falsey5648 is expected to eq nil5649 left_value: nil, right_value: false5650 is expected to be falsey5651 is expected to eq false5652Gitlab::Ci::Trace::Archive5653 with transactional fixtures5654 #execute5655 computes and assigns checksum5656 validating artifact checksum5657 when the object store is disabled5658 behaves like skips validations5659 behaves like valid5660 does not count as invalid5661 behaves like local checksum only5662 generates only local checksum5663 with FIPS enabled5664 does not generate md5 checksums5665 behaves like valid5666 does not count as invalid5667 with direct_upload enabled5668 checksums match5669 behaves like valid5670 does not count as invalid5671 when the checksum does not match5672 counts as invalid5673 with FIPS enabled5674 does not generate md5 checksums5675 behaves like valid5676 does not count as invalid5677 with FIPS enabled5678 does not generate md5 checksums5679 behaves like valid5680 does not count as invalid5681 without transactional fixtures5682 #execute!5683 does not upload the trace inside a database transaction5684Uploads::DestroyService5685 #execute5686 when user is nil5687 behaves like upload not found5688 does not delete any upload5689 returns an error5690 when user cannot destroy upload5691 behaves like upload not found5692 does not delete any upload5693 returns an error5694 when user can destroy upload5695 deletes the upload5696 returns success response5697 when upload is not found5698 behaves like upload not found5699 does not delete any upload5700 returns an error5701 when upload secret is not found5702 behaves like upload not found5703 does not delete any upload5704 returns an error5705 when upload secret has invalid format5706 behaves like upload not found5707 does not delete any upload5708 returns an error5709 when unknown model is used5710 raises an error5711 when upload belongs to other model5712 behaves like upload not found5713 does not delete any upload5714 returns an error5715 when upload destroy fails5716 returns error5717Resolvers::DesignManagement::Version::DesignAtVersionResolver5718 #resolve5719 passing combinations of arguments5720 passing no arguments5721 behaves like a bad argument5722 generates an error5723 passing all arguments5724 behaves like a bad argument5725 generates an error5726 passing any two arguments5727 behaves like a bad argument5728 generates an error5729 passing id5730 finds the design5731 when the user cannot see designs5732 returns nothing5733 passing design_id5734 finds the design5735 when the user cannot see designs5736 returns nothing5737 passing filename5738 finds the design5739 when the user cannot see designs5740 returns nothing5741 attempting to retrieve an object not visible at this version5742 passing id5743 does not find the design5744 passing design_id5745 does not find the design5746 passing filename5747 does not find the design5748Gitlab::Ci::RunnerReleases5749 caching behavior5750 when request results in timeout5751 behaves like requests that follow cache status5752 almost 5 seconds later5753 returns cached releases5754 after 5 seconds5755 checks new releases5756 behaves like a service implementing exponential backoff5757 performs exponential backoff on requests5758 behaves like a service implementing exponential backoff5759 performs exponential backoff on requests5760 when response is nil5761 behaves like requests that follow cache status5762 almost 5 seconds later5763 returns cached releases5764 after 5 seconds5765 checks new releases5766 behaves like a service implementing exponential backoff5767 performs exponential backoff on requests5768 when response is not nil5769 behaves like requests that follow cache status5770 almost 1 day later5771 returns cached releases5772 after 1 day5773 checks new releases5774 #releases5775 when response is nil5776 returns nil5777 when response is not nil5778 returns parsed and sorted Gitlab::VersionInfo objects5779 when fetching runner releases is disabled5780 returns nil5781 when response contains unexpected input type5782 is expected to be nil5783 when response contains unexpected input array5784 is expected to be nil5785 #releases_by_minor5786 when response is nil5787 returns nil5788 when response is not nil5789 returns parsed and grouped Gitlab::VersionInfo objects5790 when fetching runner releases is disabled5791 returns nil5792 when response contains unexpected input type5793 is expected to be nil5794 when response contains unexpected input array5795 is expected to be nil5796 #enabled?5797 is expected to be enabled5798 when fetching runner releases is disabled5799 is expected not to be enabled5800Gitlab::WebHooks::RateLimiter5801 #rate_limit!5802 when there is no plan limit5803 hook: project_hook5804 behaves like a hook that is never rate limited5805 is expected to eq false5806 hook: system_hook5807 behaves like a hook that is never rate limited5808 is expected to eq false5809 hook: integration_hook5810 behaves like a hook that is never rate limited5811 is expected to eq false5812 when there is a plan limit5813 hook: project_hook, limitless_hook_type: false5814 rate limits the hook, returning true when rate limited5815 hook: system_hook, limitless_hook_type: true5816 behaves like a hook that is never rate limited5817 is expected to eq false5818 hook: integration_hook, limitless_hook_type: true5819 behaves like a hook that is never rate limited5820 is expected to eq false5821 rate limit scope5822 rate limits all hooks from the same namespace5823 #rate_limited?5824 when no plan limit has been defined5825 hook: project_hook5826 is expected to eq false5827 hook: system_hook5828 is expected to eq false5829 hook: integration_hook5830 is expected to eq false5831 when there is a plan limit5832 when hook is not rate-limited5833 hook: project_hook5834 is expected to eq false5835 hook: system_hook5836 is expected to eq false5837 hook: integration_hook5838 is expected to eq false5839 when hook is rate-limited5840 hook: project_hook, limitless_hook_type: false5841 is expected to eq true5842 hook: system_hook, limitless_hook_type: true5843 is expected to eq false5844 hook: integration_hook, limitless_hook_type: true5845 is expected to eq false5846Gitlab::Lfs::Client5847 #batch5848 server returns 200 OK5849 makes a successful batch request5850 server returns 400 error5851 raises an error5852 server returns 500 error5853 raises an error5854 server returns an exotic transfer method5855 raises an error5856 #upload5857 server returns 200 OK to an authenticated request5858 makes an HTTP PUT with expected parameters5859 server returns 200 OK with a chunked transfer request5860 makes an HTTP PUT with expected parameters5861 server returns 200 OK with a username and password in the URL5862 makes an HTTP PUT with expected parameters5863 no credentials in client5864 server returns 200 OK with credentials in URL5865 makes an HTTP PUT with expected parameters5866 server returns 200 OK to an unauthenticated request5867 makes an HTTP PUT with expected parameters5868 request is not marked as authenticated but includes an authorization header5869 prefers the provided authorization header5870 LFS object has no file5871 makes an HTTP PUT with expected parameters5872 server returns 400 error5873 raises an error5874 server returns 500 error5875 raises an error5876 #verify5877 server returns 200 OK to an authenticated request5878 makes an HTTP POST with expected parameters5879 server returns 200 OK with a username and password in the URL5880 makes an HTTP PUT with expected parameters5881 server returns 200 OK to an unauthenticated request5882 makes an HTTP POST with expected parameters5883 request is not marked as authenticated but includes an authorization header5884 prefers the provided authorization header5885 server returns 400 error5886 raises an error5887 server returns 500 error5888 raises an error5889Types::Snippets::BlobType5890 has the correct fields5891 richData5892 is expected to match (be nullable)5893 behaves like a field from the snippet blob presenter5894 resolves using the presenter5895 plainData5896 is expected to match (be nullable)5897 behaves like a field from the snippet blob presenter5898 resolves using the presenter5899 rawPlainData5900 is expected to match (be nullable)5901 behaves like a field from the snippet blob presenter5902 resolves using the presenter5903 rawPath5904 is expected to match (be non null)5905 behaves like a field from the snippet blob presenter5906 resolves using the presenter5907 size5908 is expected to match (be non null)5909 behaves like a field from the snippet blob presenter5910 resolves using the presenter5911 binary5912 is expected to match (be non null)5913 behaves like a field from the snippet blob presenter5914 resolves using the presenter5915 name5916 is expected to match (be nullable)5917 behaves like a field from the snippet blob presenter5918 resolves using the presenter5919 path5920 is expected to match (be nullable)5921 behaves like a field from the snippet blob presenter5922 resolves using the presenter5923 simpleViewer5924 is expected to match (be non null)5925 behaves like a field from the snippet blob presenter5926 resolves using the presenter5927 richViewer5928 is expected to match (be nullable)5929 behaves like a field from the snippet blob presenter5930 resolves using the presenter5931 mode5932 is expected to match (be nullable)5933 behaves like a field from the snippet blob presenter5934 resolves using the presenter5935 externalStorage5936 is expected to match (be nullable)5937 behaves like a field from the snippet blob presenter5938 resolves using the presenter5939 renderedAsText5940 is expected to match (be non null)5941 behaves like a field from the snippet blob presenter5942 resolves using the presenter5943Gitlab::Ci::Ansi2json::Line5944 #<<5945 appends new data to the current segment5946 #style5947 when style is passed to the initializer5948 returns the same style5949 when style is not passed to the initializer5950 returns the default style5951 #update_style5952 sets the style5953 #add_section5954 appends a new section to the list5955 #set_section_options5956 sets the current section's options5957 #set_as_section_header5958 change the section_header to true5959 #set_section_duration5960 duration: nil, result: "00:00"5961 is expected to eq "00:00"5962 duration: "string", result: "00:00"5963 is expected to eq "00:00"5964 duration: 0 seconds, result: "00:00"5965 is expected to eq "00:00"5966 duration: 7 seconds, result: "00:07"5967 is expected to eq "00:07"5968 duration: 75, result: "01:15"5969 is expected to eq "01:15"5970 duration: 1 minute and 15 seconds, result: "01:15"5971 is expected to eq "01:15"5972 duration: 13 hours, 14 minutes, and 15 seconds, result: "13:14:15"5973 is expected to eq "13:14:15"5974 duration: 1 day, 13 hours, 14 minutes, and 15 seconds, result: "37:14:15"5975 is expected to eq "37:14:15"5976 duration: 1.7976931348623157e+308, result: "8765:00:00"5977 is expected to eq "8765:00:00"5978 duration: 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, result: "8765:00:00"5979 is expected to eq "8765:00:00"5980 #flush_current_segment!5981 when current segment is not empty5982 adds the segment to the list5983 updates the current segment pointer propagating the style5984 when current segment is empty5985 does not add any segments to the list5986 does not change the current segment5987 #to_h5988 when sections are present5989 when section header is set5990 serializes the attributes set5991 when section duration is set5992 serializes the attributes set5993 when there are no sections5994 serializes the attributes set5995Ci::RunnerNamespace5996 behaves like includes Limitable concern5997 #exceeds_limits?5998 without plan limits configured5999 is expected to eq false6000 without plan limits configured6001 is expected to eq false6002 with an existing model6003 is expected to eq true6004 validations6005 is expected to be a kind of Limitable6006 without plan limits configured6007 can create new models6008 with plan limits configured6009 can create new models6010 with an existing model6011 cannot create new models exceeding the plan limits6012 behaves like cleanup by a loose foreign key6013 cleans up (delete or nullify) the model6014 .for_runner6015 with runner ids6016 returns requested runner namespaces6017 with runners6018 returns requested runner namespaces6019Gitlab::ContentSecurityPolicy::ConfigLoader6020 .default_enabled6021 is enabled6022 when in production6023 is disabled6024 .default_directives6025 returns default directives6026 the images-src directive6027 can be loaded from anywhere6028 the media-src directive6029 can be loaded from anywhere6030 adds all websocket origins to support Safari6031 with insecure domain6032 with secure domain6033 with custom port6034 with custom port and secure domain6035 when CDN host is defined6036 adds CDN host to CSP6037 Zuora directives6038 when on SaaS6039 adds Zuora host to CSP6040 when is not Gitlab.com?6041 does not add Zuora host to CSP6042 when sentry is configured6043 when legacy sentry is configured6044 adds legacy sentry path to CSP6045 when sentry is configured6046 adds new sentry path to CSP6047 when sentry settings are from older schemas and sentry setting are missing6048 config is backwards compatible, does not add sentry path to CSP6049 when legacy sentry and sentry are both configured6050 adds both sentry paths to CSP6051 when CUSTOMER_PORTAL_URL is set6052 adds CUSTOMER_PORTAL_URL to CSP6053 letter_opener application URL6054 when in production6055 does not add letter_opener to CSP6056 when in development6057 adds letter_opener to CSP6058 Snowplow Micro event collector6059 when in production6060 does not add Snowplow Micro URL to connect-src6061 when in development6062 adds Snowplow Micro URL with trailing slash to connect-src6063 when not enabled using config6064 does not add Snowplow Micro URL to connect-src6065 when REVIEW_APPS_ENABLED is set6066 adds gitlab-org/gitlab merge requests API endpoint to CSP6067 #load6068 sets the policy properly6069 ignores malformed policy statements6070 returns default values for directives not defined by the user or with <default_value> and disables directives set to false6071SystemCheck::SimpleExecutor6072 #component6073 returns stored component name6074 #checks6075 returns a set of classes6076 #<<6077 appends a new check to the Set6078 inserts unique itens only6079 errors out when passing multiple items6080 #execute6081 runs included checks6082 #run_check6083 prints check name6084 when check pass6085 prints yes6086 when check fails6087 prints no6088 displays error message from #show_error6089 when check implements #repair!6090 executes #repair!6091 when repair succeeds6092 does not execute #show_error6093 when repair fails6094 does not execute #show_error6095 when check implements skip?6096 executes #skip? method6097 displays .skip_reason6098 displays #skip_reason6099 does not execute #check when #skip? is true6100 when implements a #multi_check6101 executes #multi_check method6102 does not execute #check method6103 when check implements #skip?6104 executes #skip? method6105 when there is an exception6106 rescues the exception6107Gitlab::GitalyClient::RefService6108 #branches6109 sends a find_all_branches message6110 #remote_branches6111 sends a find_all_remote_branches message6112 concatenates and returns the response branches as Gitlab::Git::Branch objects6113 #merged_branches6114 sends a find_all_branches message6115 #find_branch6116 sends a find_branch message6117 when Gitaly returns a ambiguios reference error6118 raises an UnknownRef error6119 #find_tag6120 sends a find_tag message6121 when tag is empty6122 does not send a fing_tag message6123 when Gitaly returns an Internal error6124 raises an Internal error6125 when Gitaly returns a tag_not_found error6126 raises an UnknownRef error6127 #default_branch_name6128 sends a find_default_branch_name message6129 #local_branches6130 when local_branches variable is not set6131 behaves like common examples6132 sends a find_local_branches message6133 parses and sends the sort parameter6134 translates known mismatches on sort param values6135 uses default sort by name6136 when local_branches variable is set6137 behaves like common examples6138 sends a find_local_branches message6139 parses and sends the sort parameter6140 translates known mismatches on sort param values6141 uses default sort by name6142 #tags6143 sends a find_all_tags message6144 with sorting option6145 sends a correct find_all_tags message6146 with semantic version sorting6147 sends a correct find_all_tags message6148 when sorting option is invalid6149 uses default sort by name6150 with pagination option6151 sends a correct find_all_tags message6152 #branch_names_contains_sha6153 sends a list_branch_names_containing_commit message6154 #get_tag_messages6155 sends a get_tag_messages message6156 #get_tag_signatures6157 sends a get_tag_signatures message6158 #ref_exists?6159 sends a ref_exists message6160 #delete_refs6161 sends a delete_refs message6162 with a references locked error6163 raises ReferencesLockedError6164 with a invalid format error6165 raises InvalidRefFormatError6166 #list_refs6167 sends a list_refs message6168 accepts a patterns argument6169 accepts a pointing_at_oids argument6170 accepts a peel_tags argument6171 #find_refs_by_oid6172 sends a find_refs_by_oid message6173 filters by ref_patterns6174Gitlab::Ci::Pipeline::Chain::EvaluateWorkflowRules6175 #perform!6176 when pipeline has been skipped by workflow configuration6177 does not save the pipeline6178 breaks the chain6179 attaches an error to the pipeline6180 saves workflow_rules_result6181 when pipeline has not been skipped by workflow configuration6182 continues the pipeline processing chain6183 does not skip the pipeline6184 attaches no errors6185 saves workflow_rules_result6186Metrics::UsersStarredDashboardsFinder6187 #execute6188 there are no starred dashboard records6189 returns empty array6190 with annotation records6191 user without read access to project6192 returns empty relation6193 user with read access to project6194 loads starred dashboards6195 when the dashboard_path filter is present6196 loads filtered starred dashboards6197X509Issuer6198 validation6199 is expected to validate that :subject_key_identifier cannot be empty/falsy6200 is expected to validate that :subject cannot be empty/falsy6201 is expected to validate that :crl_url cannot be empty/falsy6202 .safe_create!6203 creates a new issuer if it was not found6204 assigns the correct attributes when creating6205 validators6206 accepts correct subject_key_identifier6207 rejects invalid subject_key_identifier6208 accepts valid crl_url6209 rejects invalid crl_url6210GroupLabel6211 relationships6212 is expected to belong to group required: false6213 validations6214 is expected to validate that :group cannot be empty/falsy6215 #subject6216 aliases group to subject6217 #to_reference6218 using id6219 returns a String reference to the object6220 using name6221 returns a String reference to the object6222 uses id when name contains double quote6223 cross-project6224 returns a String reference to the object6225 using invalid format6226 raises error6227 #preloaded_parent_container6228 when group is loaded6229 does not invoke a DB query6230 when parent_container is loaded6231 does not invoke a DB query6232 when none of them are loaded6233 invokes a DB query6234DesignManagement::GenerateImageVersionsService6235 #execute6236 generates the image6237 skips generating image versions if the mime type is not whitelisted6238 skips generating image versions if the design file size is too large6239 returns the status6240 returns the version6241 logs if the raw image cannot be found6242 when an error is encountered when generating the image versions6243 CarrierWave::IntegrityError6244 logs the exception6245 logs the error6246 CarrierWave::UploadError6247 logs the error6248 tracks the error6249Gitlab::Middleware::HandleMalformedStrings6250 does not modify the env6251 in the URL6252 rejects null bytes6253 rejects escaped null bytes6254 rejects malformed strings6255 rejects escaped malformed strings6256 in authorization headers6257 does not reject correct non-basic-auth tokens6258 does not reject correct encoded password with special characters6259 behaves like rejecting invalid input6260 rejects problematic input in the password6261 rejects problematic input in the username6262 rejects problematic input in non-basic-auth tokens6263 behaves like rejecting invalid input6264 rejects problematic input in the password6265 rejects problematic input in the username6266 rejects problematic input in non-basic-auth tokens6267 behaves like rejecting invalid input6268 rejects problematic input in the password6269 rejects problematic input in the username6270 rejects problematic input in non-basic-auth tokens6271 in params6272 with null byte6273 gives up and does not reject too deeply nested params6274 behaves like checks params6275 rejects bad params in a top level param6276 rejects bad params for hashes with strings6277 rejects bad params for arrays with strings6278 rejects bad params for arrays containing hashes with string values6279 with malformed strings6280 behaves like checks params6281 rejects bad params in a top level param6282 rejects bad params for hashes with strings6283 rejects bad params for arrays with strings6284 rejects bad params for arrays containing hashes with string values6285 without problematic input6286 does not error for strings6287 does not error with no params6288layouts/signup_onboarding6289 behaves like a layout which reflects the application theme setting6290 as a themed layout6291 when no theme is explicitly selected6292 renders with the default theme6293 when user is authenticated & has selected a specific theme6294 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">6295 renders with the Indigo theme6296 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">6297 renders with the Light Indigo theme6298 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">6299 renders with the Blue theme6300 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">6301 renders with the Light Blue theme6302 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">6303 renders with the Green theme6304 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">6305 renders with the Light Green theme6306 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">6307 renders with the Red theme6308 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">6309 renders with the Light Red theme6310 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">6311 renders with the Gray theme6312 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">6313 renders with the Light Gray theme6314 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">6315 renders with the Dark Mode (alpha) theme6316Resolvers::Ci::AllJobsResolver6317 # order random6318 #resolve6319 with admin6320 when admin mode setting is disabled6321 behaves like executes as admin6322 with statuses argument6323 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.698817643 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 75, name: "Job One", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 828, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|6/aFXfyYzQ4od6L1clq/ZbfM2PrAx2Mm+r9rQvCLQpuErf/ns...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 73, stage_id: 73, partition_id: 100, tag_list: nil> and #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.951210703 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 76, name: "Job Two", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 829, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|lbRCbPZADjfUSW2vauzHP4zq0oM7UBTb6PK+c0jAw27QrYdzL...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 74, stage_id: 74, partition_id: 100, tag_list: nil>6324 with multiple statuses6325 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.698817643 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 75, name: "Job One", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 828, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|6/aFXfyYzQ4od6L1clq/ZbfM2PrAx2Mm+r9rQvCLQpuErf/ns...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 73, stage_id: 73, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.951210703 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 76, name: "Job Two", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 829, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|lbRCbPZADjfUSW2vauzHP4zq0oM7UBTb6PK+c0jAw27QrYdzL...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 74, stage_id: 74, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "failed", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:37.221270931 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 77, name: "Job Three", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 830, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|2Tidqnu7Rk1z0JIQZYK8O9k50FlR3J98ifioOSnuvbTDV1INV...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 75, stage_id: 75, partition_id: 100, tag_list: nil>6326 without statuses argument6327 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.698817643 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 75, name: "Job One", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 828, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|6/aFXfyYzQ4od6L1clq/ZbfM2PrAx2Mm+r9rQvCLQpuErf/ns...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 73, stage_id: 73, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.951210703 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 76, name: "Job Two", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 829, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|lbRCbPZADjfUSW2vauzHP4zq0oM7UBTb6PK+c0jAw27QrYdzL...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 74, stage_id: 74, partition_id: 100, tag_list: nil>, #<Ci::Build status: "failed", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:37.221270931 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 77, name: "Job Three", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 830, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|2Tidqnu7Rk1z0JIQZYK8O9k50FlR3J98ifioOSnuvbTDV1INV...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 75, stage_id: 75, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:37.469859161 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 78, name: "Job Three", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 831, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|IAOX6YtVF1g+awVlfeQNJJxKphs2F37aSASmAqdCg8TSpJgQV...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 76, stage_id: 76, partition_id: 100, tag_list: nil>6328 when admin mode setting is enabled6329 when in admin mode6330 behaves like executes as admin6331 with statuses argument6332 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.698817643 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 75, name: "Job One", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 828, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|6/aFXfyYzQ4od6L1clq/ZbfM2PrAx2Mm+r9rQvCLQpuErf/ns...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 73, stage_id: 73, partition_id: 100, tag_list: nil> and #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.951210703 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 76, name: "Job Two", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 829, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|lbRCbPZADjfUSW2vauzHP4zq0oM7UBTb6PK+c0jAw27QrYdzL...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 74, stage_id: 74, partition_id: 100, tag_list: nil>6333 with multiple statuses6334 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.698817643 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 75, name: "Job One", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 828, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|6/aFXfyYzQ4od6L1clq/ZbfM2PrAx2Mm+r9rQvCLQpuErf/ns...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 73, stage_id: 73, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.951210703 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 76, name: "Job Two", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 829, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|lbRCbPZADjfUSW2vauzHP4zq0oM7UBTb6PK+c0jAw27QrYdzL...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 74, stage_id: 74, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "failed", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:37.221270931 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 77, name: "Job Three", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 830, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|2Tidqnu7Rk1z0JIQZYK8O9k50FlR3J98ifioOSnuvbTDV1INV...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 75, stage_id: 75, partition_id: 100, tag_list: nil>6335 without statuses argument6336 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.698817643 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 75, name: "Job One", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 828, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|6/aFXfyYzQ4od6L1clq/ZbfM2PrAx2Mm+r9rQvCLQpuErf/ns...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 73, stage_id: 73, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:36.951210703 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 76, name: "Job Two", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 829, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|lbRCbPZADjfUSW2vauzHP4zq0oM7UBTb6PK+c0jAw27QrYdzL...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 74, stage_id: 74, partition_id: 100, tag_list: nil>, #<Ci::Build status: "failed", finished_at: "2023-03-30 08:53:29.000000000 +0000", created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:37.221270931 +0000", started_at: "2023-03-30 08:51:29.000000000 +0000", runner_id: nil, coverage: nil, commit_id: 77, name: "Job Three", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 830, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|2Tidqnu7Rk1z0JIQZYK8O9k50FlR3J98ifioOSnuvbTDV1INV...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 75, stage_id: 75, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-03-30 08:50:29.000000000 +0000", updated_at: "2023-03-30 12:01:37.469859161 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 78, name: "Job Three", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: nil, type: "Ci::Build", target_url: nil, description: nil, project_id: 831, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2023-03-30 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|IAOX6YtVF1g+awVlfeQNJJxKphs2F37aSASmAqdCg8TSpJgQV...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 76, stage_id: 76, partition_id: 100, tag_list: nil>6337 when not in admin mode6338 is expected to be empty6339 with unauthorized user6340 is expected to be empty6341Ci::CompareReportsBaseService6342 #latest?6343 when cache key is latest6344 is expected to be truthy6345 when cache key is outdated6346 is expected to be falsy6347 when cache key is empty6348 is expected to be falsy6349 #execute6350 when base_pipeline is running6351 is expected to eq {:key=>[82, 2023-03-30 12:01:42.360186663 +0000, 83, 2023-03-30 12:01:42.394318040 +0000], :status=>:parsing}6352Analytics::UsageTrends::Measurement6353 validation6354 is expected to validate that :recorded_at cannot be empty/falsy6355 is expected to validate that :identifier cannot be empty/falsy6356 is expected to validate that :count cannot be empty/falsy6357 is expected to validate that :recorded_at is case-sensitively unique within the scope of :identifier6358 identifiers enum6359 maps to the correct values6360 scopes6361 .order_by_latest6362 is expected to eq [#<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2023-03-28 12:01:42.961296676 +0000", identifier: "projects">, #<Analytics::UsageTrends::Measurement id: 7, count: 1000, recorded_at: "2023-03-25 12:01:42.966035145 +0000", identifier: "groups">, #<Analytics::UsageTrends::Measurement id: 5, count: 1000, recorded_at: "2023-03-20 12:01:42.954497626 +0000", identifier: "projects">]6363 .with_identifier6364 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 5, count: 1000, recorded_at: "2023-03-20 12:01:42.954497626 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2023-03-28 12:01:42.961296676 +0000", identifier: "projects">6365 .recorded_after6366 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 6, count: 1000, recorded_at: "2023-03-28 12:01:42.961296676 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 7, count: 1000, recorded_at: "2023-03-25 12:01:42.966035145 +0000", identifier: "groups">6367 when nil is given6368 does not apply filtering6369 .recorded_before6370 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 5, count: 1000, recorded_at: "2023-03-20 12:01:42.954497626 +0000", identifier: "projects"> and #<Analytics::UsageTrends::Measurement id: 7, count: 1000, recorded_at: "2023-03-25 12:01:42.966035145 +0000", identifier: "groups">6371 when nil is given6372 does not apply filtering6373 .identifier_query_mapping6374 is expected to be a kind of Hash6375 .identifier_min_max_queries6376 is expected to be a kind of Hash6377 .measurement_identifier_values6378 is expected to eq 116379 .find_latest_or_fallback6380 with usage statistics6381 returns the latest stored measurement6382 without usage statistics6383 returns the realtime query of the measurement6384DraftNotes::DestroyService6385 destroys a single draft note6386 destroys all draft notes for a user in a merge request6387 diff highlight cache clearing6388 when destroying all draft notes of a user6389 clears highlighting cache if unfold required for any6390 when destroying one draft note6391 clears highlighting cache if unfold required6392layouts/_head6393 escapes HTML-safe strings in page_title6394 escapes HTML-safe strings in page_description6395 escapes HTML-safe strings in page_image6396DEPRECATION WARNING: The asset "highlight/themes/solarised-light.css" is not present in the asset pipeline.6397Falling back to an asset that may be in the public folder.6398This behavior is deprecated and will be removed.6399To bypass the asset pipeline and preserve this behavior,6400use the `skip_pipeline: true` option.6401 (called from block in _app_views_layouts__loading_hints_html_haml__3471983559286800669_368605140 at /builds/gitlab-org/gitlab/app/views/layouts/_loading_hints.html.haml:13)6402DEPRECATION WARNING: The asset "highlight/themes/solarised-light.css" is not present in the asset pipeline.6403Falling back to an asset that may be in the public folder.6404This behavior is deprecated and will be removed.6405To bypass the asset pipeline and preserve this behavior,6406use the `skip_pipeline: true` option.6407 (called from stylesheet_link_tag_defer at /builds/gitlab-org/gitlab/app/helpers/application_helper.rb:277)6408 adds selected syntax highlight stylesheet6409 when an asset_host is set6410 adds a link dns-prefetch tag6411 adds a link preconnect tag6412 when a Matomo config is set6413 add a Matomo Javascript6414 when matomo_disable_cookies is true6415 disables cookies6416Gitlab::Metrics::Samplers::ThreadsSampler6417 behaves like metrics sampler6418 when sampling interval is passed explicitly6419 is expected to eq 426420 when sampling interval is passed through the environment6421 is expected to eq 426422 when no sampling interval is passed anywhere6423 uses the hardcoded default6424 #start6425 calls the sample method on the sampler thread6426 with warmup set to true6427 calls the sample method first on the caller thread6428 #safe_sample6429 calls #sample once6430 when sampling fails with error6431 recovers from errors6432 with logger6433 logs errors6434 #sample6435 sets the gauge for the concurrency total6436 thread counts6437 reports if any of the threads per group uses the db6438 thread names6439 thread_names: [nil], expected_names: ["unnamed"]6440 is expected to receive set({:thread_name=>"unnamed", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time6441 thread_names: ["puma threadpool 1", "puma threadpool 001", "puma threadpool 002"], expected_names: ["puma threadpool"]6442 is expected to receive set({:thread_name=>"puma threadpool", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time6443 thread_names: ["sidekiq_worker_thread"], expected_names: ["sidekiq_worker_thread"]6444 is expected to receive set({:thread_name=>"sidekiq_worker_thread", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time6445 thread_names: ["some_sampler", "some_exporter"], expected_names: ["some_sampler", "some_exporter"]6446 is expected to receive set({:thread_name=>"some_exporter", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time6447 thread_names: ["unknown", "thing"], expected_names: ["unrecognized"]6448 is expected to receive set({:thread_name=>"unrecognized", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time6449SafeZip::ExtractParams6450 #extract_path6451 is expected to eq "/tmp/safe-zip20230330-358-s9h3th"6452 #matching_target_directory6453 path: "/public/index.html", result: "/public/"6454 is expected to eq "/tmp/safe-zip20230330-358-m51xtx/public/"6455 path: "/non/existing/path", result: nil6456 is expected to eq nil6457 path: "/public", result: nil6458 is expected to eq nil6459 path: "/folder/with/index.html", result: nil6460 is expected to eq nil6461 #target_directories6462 starts with target_path6463 ends with / for all paths6464 #directories_wildcard6465 adds * for all paths6466 #matching_target_file6467 path: "/public/index.html", result: true6468 is expected to eq true6469 path: "/non/existing/path", result: false6470 is expected to eq false6471 path: "/public/", result: false6472 is expected to eq false6473 path: "/folder/with/index.html", result: false6474 is expected to eq false6475 when directories and files are empty6476 is invalid6477Ci::HasVariable6478 is expected to validate that :key cannot be empty/falsy6479 is expected to validate that the length of :key is at most 2556480 is expected to allow :key to be ‹"foo"›6481 is expected not to allow :key to be ‹"foo bar"›6482 is expected not to allow :key to be ‹"foo/bar"›6483 scopes6484 .by_key6485 is expected to contain exactly #<Ci::Variable id: 1, key: [FILTERED], value: nil, encrypted_value: "sBr3NNNHqQCDa7vkqTbvHQ==\n", encrypted_value_salt: "_x8e8dUQXOU+Zot8QE1hxhA==\n", encrypted_value_iv: "DstGW3KzKBdjGgVY4K/fJQ==\n", project_id: 840, protected: false, environment_scope: "*", masked: false, variable_type: "env_var", raw: false>6486 #key=6487 when the new key is nil6488 strips leading and trailing whitespaces6489 when the new key has leadind and trailing whitespaces6490 strips leading and trailing whitespaces6491 #value6492 stores the encrypted value6493 stores an iv for value6494 stores a salt for value6495 fails to decrypt if iv is incorrect6496 #to_runner_variable6497 returns a hash for the runner6498 with RequestStore enabled6499 decrypts once6500 does not cache similar keys6501 does not cache unpersisted values6502 .order_by6503 supports ordering by key ascending6504 supports ordering by key descending6505 when order method is unknown6506 does not call reorder6507 when order method is nil6508 does not call reorder6509Projects::MoveProjectAuthorizationsService6510 #execute6511 moves the authorizations from one project to another6512 does not move existent authorizations to the current project6513 when remove_remaining_elements is false6514 does not remove remaining project authorizations6515Ci::JobVariable6516 behaves like CI variable6517 is expected to includes the Ci::HasVariable module6518 strips whitespaces when assigning key6519 can convert to runner variable6520 variable type6521 defines variable types6522 defaults variable type to env_var6523 supports variable type file6524 associations6525 is expected to belong to job class_name => Ci::Build required: false inverse_of => job_variables6526 is expected to validate that :key is case-sensitively unique within the scope of :job_id6527 partitioning6528 with build6529 copies the partition_id from build6530 when it is already set6531 does not change the partition_id value6532 without build6533 is expected to validate that :partition_id cannot be empty/falsy6534 does not change the partition_id value6535 when using bulk_insert6536 creates job variables successfully (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)6537Gitlab::Auth::TwoFactorAuthVerifier6538 #two_factor_authentication_enforced?6539 instance_level_enabled: false, group_level_enabled: false, grace_period_expired: true, should_be_enforced: false6540 is expected to eq false6541 instance_level_enabled: true, group_level_enabled: false, grace_period_expired: false, should_be_enforced: false6542 is expected to eq false6543 instance_level_enabled: true, group_level_enabled: false, grace_period_expired: true, should_be_enforced: true6544 is expected to eq true6545 instance_level_enabled: false, group_level_enabled: true, grace_period_expired: false, should_be_enforced: false6546 is expected to eq false6547 instance_level_enabled: false, group_level_enabled: true, grace_period_expired: true, should_be_enforced: true6548 is expected to eq true6549 #two_factor_authentication_required?6550 instance_level_enabled: true, group_level_enabled: false, should_be_required: true6551 is expected to eq true6552 instance_level_enabled: false, group_level_enabled: true, should_be_required: true6553 is expected to eq true6554 instance_level_enabled: false, group_level_enabled: false, should_be_required: false6555 is expected to eq false6556 #current_user_needs_to_setup_two_factor?6557 returns false when current_user is nil6558 returns false when current_user does not have temp email6559 returns false when current_user has 2fa disabled6560 returns true when user requires 2fa authentication6561 #two_factor_grace_period6562 returns grace period from settings if there is no period from groups6563 returns grace period from groups if there is no period from settings6564 returns minimal grace period if there is grace period from settings and from group6565 #two_factor_grace_period_expired?6566 returns true if the grace period has expired6567 returns false if the grace period has not expired6568 when otp_grace_period_started_at is nil6569 returns false6570ProjectRepository6571 associations6572 is expected to belong to shard required: false6573 is expected to belong to project required: false6574 behaves like shardable scopes6575 .for_repository_storage6576 returns the objects for a given repository storage6577 .excluding_repository_storage6578 returns the objects excluding the given repository storage6579 .for_shard6580 returns the objects for a given shard6581 .find_project6582 finds project by disk path6583 returns nil when it does not find the project6584MergeRequests::CloseIssueWorker6585 #perform6586 calls the close issue service6587 when the project does not exist6588 behaves like when object does not exist6589 does not call the close issue service6590 when the user does not exist6591 behaves like when object does not exist6592 does not call the close issue service6593 when the issue does not exist6594 behaves like when object does not exist6595 does not call the close issue service6596 when the merge request does not exist6597 behaves like when object does not exist6598 does not call the close issue service6599Projects::ImportExport::ParallelProjectExportWorker6600 # order random6601 .sidekiq_retries_exhausted6602 sets export_job status to failed6603 logs an error message6604 #perform6605 behaves like an idempotent worker6606 is labeled as idempotent6607 performs multiple times sequentially without raising an exception6608 sets the export job status to finished6609 when after export strategy does not exist6610 sets the export job status to failed6611API::Ci::Helpers::Runner6612 #current_job6613 handles sticking of a build when a build ID is specified6614 does not handle sticking if no build ID was specified6615 returns the build if one could be found6616 #current_runner6617 handles sticking of a runner if a token is specified6618 does not handle sticking if no token was specified6619 returns the runner if one could be found6620 #current_runner_machine6621 with create_runner_machine FF enabled6622 when runner machine already exists6623 is expected to eq #<Ci::RunnerMachine id: 1, runner_id: 14, executor_type: nil, created_at: "2023-03-30 12:02:12.000000000 +0000", updated_at: "2023-03-30 12:02:12.000000000 +0000", contacted_at: "2023-03-30 11:02:12.000000000 +0000", version: nil, revision: nil, platform: nil, architecture: nil, ip_address: nil, config: {}, system_xid: "bar">6624 does not update the contacted_at field6625 when runner machine cannot be found6626 creates a new runner machine6627 creates a new <legacy> runner machine if system_id is not specified6628 with create_runner_machine FF disabled6629 does not return runner machine if no system_id specified6630 when runner machine can not be found6631 does not create a new runner machine6632 #track_runner_authentication6633 increments gitlab_ci_runner_authentication_success_total6634 increments gitlab_ci_runner_authentication_failure_total6635projects/diffs/_viewer.html.haml6636 when there is a render error6637 renders the error6638 when the viewer is collapsed6639 renders the collapsed view6640 when there is no render error6641 prepares the viewer6642 renders the viewer6643AwardEmojiHelper6644 .toggle_award_url6645 note on personal snippet6646 returns correct url6647 note on project item6648 returns correct url6649 personal snippet6650 returns correct url6651 merge request6652 returns correct url6653 issue6654 returns correct url6655Gitlab::Ci::Reports::CoverageReportGenerator6656 #report6657 when pipeline has multiple builds with coverage reports6658 behaves like having a coverage report6659 returns coverage reports with collected data6660 and it is a child pipeline6661 returns empty coverage report6662 when builds are retried6663 does not take retried builds into account6664 when pipeline does not have any builds with coverage reports6665 returns empty coverage reports6666 when pipeline has child pipeline with builds that have coverage reports6667 behaves like having a coverage report6668 returns coverage reports with collected data6669 when both parent and child pipeline have builds with coverage reports6670 behaves like having a coverage report6671 returns coverage reports with collected data6672Resolvers::UserNotesCountResolver6673 #resolve6674 is expected to have nullable GraphQL type Int6675 when counting notes from an issue6676 when counting notes from a public issue6677 returns the number of non-system notes for the issue6678 when a user has permission to view notes6679 returns the number of notes for the issue6680 when a user does not have permission to view notes6681 generates an error6682 when counting notes from a merge request6683 when counting notes from a public merge request6684 returns the number of non-system notes for the merge request6685 when a user has permission to view notes6686 returns the number of notes for the merge request6687 when a user does not have permission to view notes6688 generates an error6689Gitlab::Prometheus::Queries::MatchedMetricQuery6690 with one group where two metrics is found6691 both metrics in the group pass requirements6692 responds with both metrics as actve6693 none of the metrics pass requirements6694 responds with both metrics missing requirements6695 no series information found about the metrics6696 responds with both metrics missing requirements6697 one of the series info was not found6698 responds with one active and one missing metric6699 with one group where only one metric is found6700 both metrics in the group pass requirements6701 responds with one metrics as active and no missing requiremens6702 no metrics in group pass requirements6703 responds with one metrics as active and no missing requiremens6704 with two groups where metrics are found in each group6705 all metrics in both groups pass requirements6706 responds with one metrics as active and no missing requiremens6707 no metrics in groups pass requirements6708 responds with one metrics as active and no missing requiremens6709Resolvers::NestedGroupsResolver6710 # order random6711 #resolve6712 when parent group is public6713 when `include_parent_descendants` is false6714 when user is not logged in6715 behaves like access to all public subgroups6716 returns all public subgroups of the parent group6717 when user is logged in6718 behaves like access to all public subgroups6719 returns all public subgroups of the parent group6720 when `include_parent_descendants` is true6721 when user is not logged in6722 behaves like access to all public descendant groups6723 returns all public descendant groups of the parent group ordered by ASC name6724 when user is logged in6725 behaves like access to all public descendant groups6726 returns all public descendant groups of the parent group ordered by ASC name6727 with owned argument set as true6728 returns only descendant groups owned by the user6729 with search argument6730 returns only descendant groups with matching name or path6731 when parent group is private6732 when `include_parent_descendants` is true6733 when user is not logged in6734 behaves like returning empty results6735 returns empty results6736 when user is logged in6737 returns all private descendant groups6738 when `include_parent_descendants` is false6739 when user is not logged in6740 behaves like returning empty results6741 returns empty results6742 when user is logged in6743 returns private subgroups6744Pajamas::AlertComponent6745 slots6746 renders alert body6747 renders actions6748 with defaults6749 does not set a title6750 renders the default variant6751 renders a dismiss button6752 title6753 with non-empty string6754 sets the title6755 with nil, empty or blank string6756 title: nil6757 does not set a title6758 title: ""6759 does not set a title6760 title: " "6761 does not set a title6762 with custom options6763 with simple options6764 sets the alert_class6765 sets the alert_data6766 with dismissible disabled6767 has the "not dismissible" class6768 does not render the dismiss button6769 with the icon hidden6770 has the hidden icon class6771 does not render the icon6772 with dismissible content6773 does not have "not dismissible" class6774 renders a dismiss button and data6775 with setting variant type6776 variant: :warning6777 renders the variant6778 variant: "success"6779 renders the variant6780 variant: :danger6781 renders the variant6782 variant: "tip"6783 renders the variant6784 with unknown or nil variant6785 variant: :foo6786 adds the default variant class6787 variant: nil6788 adds the default variant class6789Banzai::ReferenceParser::MentionedGroupParser6790 #gather_references6791 when the link has a data-group attribute6792 using an existing group ID where user does not have access6793 returns empty array6794 using an existing group ID6795 returns groups6796 using a non-existing group ID6797 returns an empty Array6798Gitlab::LocalAndRemoteStorageMigration::PagesDeploymentMigrater6799 behaves like local and remote storage migration6800 start_store: 1, end_store: 2, method: :migrate_to_remote_storage6801 successfully migrates6802 start_store: 2, end_store: 2, method: :migrate_to_remote_storage6803 successfully migrates6804 start_store: 2, end_store: 1, method: :migrate_to_local_storage6805 successfully migrates6806 start_store: 1, end_store: 1, method: :migrate_to_local_storage6807 successfully migrates6808 when migration fails6809 prints error6810Ci::PipelineArtifacts::CoverageReportWorker6811 #perform6812 when pipeline exists6813 calls the pipeline coverage report service6814 when the pipeline is part of a hierarchy6815 when all pipelines is complete6816 calls the pipeline coverage report service on the root ancestor pipeline6817 when the pipeline hierarchy has incomplete pipeline6818 does not call pipeline coverage report service6819 when pipeline does not exist6820 does not call pipeline create artifact service6821API::Entities::Ci::Pipeline6822 exposes pipeline before_sha6823 exposes pipeline tag6824 exposes pipeline yaml_errors6825 exposes pipeline created_at6826 exposes pipeline updated_at6827 exposes pipeline started_at6828 exposes pipeline finished_at6829 exposes pipeline committed_at6830 exposes pipeline duration6831 exposes pipeline queued_duration6832 exposes pipeline user basic information6833 exposes pipeline detailed status6834 exposes pipeline coverage as a string6835MergeRequest::MetricsFinder6836 when target project is missing6837 is expected to be empty6838 when the user is not part of the project6839 is expected to be empty6840 when user is part of the project6841 returns merge request records6842 excludes not merged records6843 when only merged_before is given6844 is expected to eq [#<MergeRequest::Metrics merge_request_id: 202, latest_build_started_at: nil, latest_build_finished_at: nil, first_deployed_to_production_at: nil, merged_at: "2020-05-01 00:00:00.000000000 +0000", created_at: "2023-03-30 12:02:36.394496000 +0000", updated_at: "2023-03-30 12:02:37.287109966 +0000", pipeline_id: nil, merged_by_id: nil, latest_closed_by_id: nil, latest_closed_at: nil, first_comment_at: nil, first_commit_at: nil, last_commit_at: nil, diff_size: nil, modified_paths_size: nil, commits_count: nil, first_approved_at: nil, first_reassigned_at: nil, added_lines: nil, removed_lines: nil, target_project_id: 892, id: 424>]6845 when only merged_after is given6846 is expected to eq [#<MergeRequest::Metrics merge_request_id: 202, latest_build_started_at: nil, latest_build_finished_at: nil, first_deployed_to_production_at: nil, merged_at: "2020-05-01 00:00:00.000000000 +0000", created_at: "2023-03-30 12:02:36.394496000 +0000", updated_at: "2023-03-30 12:02:37.287109966 +0000", pipeline_id: nil, merged_by_id: nil, latest_closed_by_id: nil, latest_closed_at: nil, first_comment_at: nil, first_commit_at: nil, last_commit_at: nil, diff_size: nil, modified_paths_size: nil, commits_count: nil, first_approved_at: nil, first_reassigned_at: nil, added_lines: nil, removed_lines: nil, target_project_id: 892, id: 424>]6847 when no records matching the date range6848 is expected to be empty6849TestReportSummaryEntity6850 #as_json6851 contains the total6852 when summary has test suites6853 contains the test suites6854 contains build_ids6855Sidebars::UserProfile::Menus::OverviewMenu6856 # order random6857 behaves like User profile menu6858 does not contain any sub menu6859 renders the correct link6860 renders the correct title6861 defines correct active route6862 renders if user is logged in6863 when viewed user is blocked6864 when user is not logged in6865 is not allowed to view the menu item6866 when current user has permission6867 is allowed to view the menu item6868 when current user does not have permission6869 is not allowed to view the menu item6870 when viewed user is banned6871 when user is not logged in6872 is not allowed to view the menu item6873 when current user has permission6874 is allowed to view the menu item6875 when current user does not have permission6876 is not allowed to view the menu item6877Import::BitbucketServerService6878 raises an exception for unknown error causes6879 execute6880 tracks an access level event6881 when no repo is found6882 returns an error6883 when import source is disabled6884 returns forbidden6885 when user is unauthorized6886 returns an error6887 verify url6888 when host is localhost6889 does not allow requests6890 when host is on local network6891 does not allow requests6892 when host is ftp protocol6893 does not allow requests6894Gitlab::Instrumentation::RedisBase6895 .storage_key6896 returns the class name with underscore6897 .payload6898 returns values that are higher than 06899 .add_duration6900 does not lose precision while adding6901 storage key overlapping6902 keys do not overlap across storages6903 .increment_request_count6904 increments by the given amount6905 storage key overlapping6906 keys do not overlap across storages6907 .increment_write_bytes6908 storage key overlapping6909 keys do not overlap across storages6910 .increment_cross_slot_request_count6911 storage key overlapping6912 keys do not overlap across storages6913 increments by the given amount6914 .increment_allowed_cross_slot_request_count6915 storage key overlapping6916 keys do not overlap across storages6917 increments by the given amount6918 .increment_read_bytes6919 storage key overlapping6920 keys do not overlap across storages6921 .add_call_details6922 storage key overlapping6923 keys do not overlap across storages6924 .redis_cluster_validate!6925 Rails environments6926 env: "production", allowed: false, should_raise: false6927 is expected not to raise Exception6928 env: "production", allowed: true, should_raise: false6929 is expected not to raise Exception6930 env: "staging", allowed: false, should_raise: false6931 is expected not to raise Exception6932 env: "staging", allowed: true, should_raise: false6933 is expected not to raise Exception6934 env: "development", allowed: true, should_raise: false6935 is expected not to raise Exception6936 env: "development", allowed: false, should_raise: true6937 is expected to raise Gitlab::Instrumentation::RedisClusterValidator::CrossSlotError6938 env: "test", allowed: true, should_raise: false6939 is expected not to raise Exception6940 env: "test", allowed: false, should_raise: true6941 is expected to raise Gitlab::Instrumentation::RedisClusterValidator::CrossSlotError6942 .log_exception6943 logs exception with storage details6944ErrorTracking::ErrorEvent6945 relationships6946 is expected to belong to error required: false6947 validations6948 is expected to validate that :description cannot be empty/falsy6949 is expected to validate that the length of :description is at most 10246950 is expected to validate that :occurred_at cannot be empty/falsy6951 is expected to validate that the length of :level is at most 2556952 is expected to validate that the length of :environment is at most 2556953 #stacktrace6954 builds a stacktrace6955 #to_sentry_error_event6956 is expected to be a kind of Gitlab::ErrorTracking::ErrorEvent6957CreatePipelineWorker6958 #perform6959 when a project not found6960 does not call the Service6961 when a user not found6962 does not call the Service6963 when everything is ok6964 calls the Service6965Users::UnbanService6966 unban6967 when successful6968 returns success status6969 unbans the user6970 removes the BannedUser6971 logs unban in application logs6972 when failed6973 when user is already active6974 returns state error message6975 behaves like does not modify the BannedUser record or user state6976 does not modify the BannedUser record or user state6977 when user is not an admin6978 returns permissions error message6979 behaves like does not modify the BannedUser record or user state6980 does not modify the BannedUser record or user state6981Clusters::Cleanup::ProjectNamespaceWorker6982 #perform6983 when cluster.cleanup_status is cleanup_removing_project_namespaces6984 calls Clusters::Cleanup::ProjectNamespaceService6985 behaves like cluster cleanup worker base specs6986 transitions to errored if sidekiq retries exhausted6987 when exceeded the execution limit6988 logs the error6989 when cluster.cleanup_status is not cleanup_removing_project_namespaces6990 does not call Clusters::Cleanup::ProjectNamespaceService6991Database::MultipleDatabasesHelpers6992 # order random6993 preloads database version for Ci::ApplicationRecord6994 preloads database version for ApplicationRecord6995 .with_added_ci_connection6996 when only a single database is setup6997 connects Ci::ApplicationRecord to the main database for the duration of the block (PENDING: Skipping because some of the extra databases [:ci] are setup)6998 when multiple databases are setup6999 does not mock the original Ci::ApplicationRecord connection7000 .with_reestablished_active_record_base7001 when doing establish_connection7002 on ActiveRecord::Base7003 raises exception7004 when using with_reestablished_active_record_base7005 does not raise exception7006 on Ci::ApplicationRecord7007 raises exception7008 when using with_reestablished_active_record_base7009 does not raise exception7010 when trying to access connection7011 when reconnect is true7012 does not raise exception7013 when reconnect is false7014 does raise exception7015BulkImports::Common::Pipelines::BoardsPipeline7016 when issue board belongs to a project7017 #run7018 imports issue boards into destination project7019 when issue board belongs to a group7020 #run7021 imports issue boards into destination group7022Metrics::Dashboard::SyncDashboardsWorker7023 .perform7024 with valid dashboard hash7025 imports metrics7026 is idempotent7027 with invalid dashboard hash7028 does not import metrics7029 does not raise an error7030Gitlab::Config::Entry::Factory7031 #create!7032 when setting a concrete value7033 creates entry with valid value7034 when setting description7035 configures description7036 creates entry with description7037 when setting inherit7038 makes object inheritable7039 when setting key7040 creates entry with custom key7041 when setting a parent7042 creates entry with valid parent7043 when not setting a value7044 raises error7045 when creating entry with nil value7046 creates an unspecified entry7047 when passing metadata7048 passes metadata as a parameter7049 when setting deprecation information7050 passes deprecation as a parameter7051Mutations::Clusters::Agents::Delete7052 is expected to require graphql authorizations :admin_cluster7053 #resolve7054 without user permissions7055 fails to delete the cluster agent7056 with user permissions7057 deletes a cluster agent7058projects/pipelines/show7059 when pipeline has errors7060 shows errors7061 does not render the pipeline tabs7062 renders the pipeline editor button with correct link for users who can view7063 renders the pipeline editor button with correct link for users who can not view7064 when pipeline is valid7065DEPRECATION WARNING: The asset "illustrations/pipeline.svg" is not present in the asset pipeline.7066Falling back to an asset that may be in the public folder.7067This behavior is deprecated and will be removed.7068To bypass the asset pipeline and preserve this behavior,7069use the `skip_pipeline: true` option.7070 (called from js_pipeline_tabs_data at /builds/gitlab-org/gitlab/app/helpers/projects/pipeline_helper.rb:24)7071 does not show errors7072DEPRECATION WARNING: The asset "illustrations/pipeline.svg" is not present in the asset pipeline.7073Falling back to an asset that may be in the public folder.7074This behavior is deprecated and will be removed.7075To bypass the asset pipeline and preserve this behavior,7076use the `skip_pipeline: true` option.7077 (called from js_pipeline_tabs_data at /builds/gitlab-org/gitlab/app/helpers/projects/pipeline_helper.rb:24)7078 renders the pipeline tabs7079GroupDeployToken7080 relationships7081 is expected to belong to group required: false7082 is expected to belong to deploy_token required: false7083 validation7084 is expected to validate that :deploy_token cannot be empty/falsy7085 is expected to validate that :group cannot be empty/falsy7086 is expected to validate that :deploy_token_id is case-sensitively unique within the scope of :group_id7087 #has_access_to_group?7088 for itself7089 is expected to eq true7090 for a subgroup7091 is expected to eq true7092 for other group7093 is expected to eq false7094Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker7095 #import7096 imports the issues and diff notes7097 #importers7098 when optional stage single_endpoint_notes_import is enabled7099 includes single endpoint diff notes importer7100 when optional stage single_endpoint_notes_import is disabled7101 includes default diff notes importer7102Gitlab::PhabricatorImport::ProjectCreator7103 #execute7104 creates a project correctly and schedule an import7105 when import params are missing7106 returns nil7107 when import params are invalid7108 returns an unpersisted project7109Gitlab::WikiPages::FrontMatterParser7110 #parse7111 there is front matter7112 is expected to have attributes {:content => "This is the content\n", :error => (be nil), :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}7113 there is no content7114 is expected to have attributes {:content => "", :error => (be nil), :front_matter => {}}7115 there is no front_matter7116 is expected to have attributes {:content => "This is the content", :front_matter => (be empty)}7117 is expected to have attributes {:reason => :no_match}7118 the feature flag is disabled7119 is expected to have attributes {:content => "---\na: 1\nb: 2\nc:\n - foo\n - bar\ndate: I am safe. Not actually a date\n---\nThis is the content\n", :front_matter => (be empty)}7120 the feature flag is enabled for the gated object7121 is expected to have attributes {:content => "This is the content\n", :front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]}), :reason => (be nil)}7122 the end divider is ...7123 is expected to have attributes {:front_matter => (include {:a => 1, :b => 2, :c => ["foo", "bar"]})}7124 the front-matter is not a mapping7125 is expected to have attributes {:reason => :not_mapping}7126 there is nothing in the front-matter block7127 is expected to have attributes {:reason => :no_match}7128 there is a string in the YAML block7129 is expected to have attributes {:reason => :not_mapping}7130 there is dangerous YAML in the block7131 is expected to have attributes {:error => (be present), :reason => :parse_error}7132 there is acceptably long YAML in the front-matter block7133 is expected to have attributes {:front_matter => (include {:title => (be present)})}7134 there is suspiciously long YAML in the front-matter block7135 is expected to have attributes {:reason => :too_long}7136 TOML front matter7137 is expected to have attributes {:reason => :not_yaml}7138 TOML style fences, advertised as YAML7139 is expected to have attributes {:front_matter => (include {:title => "My title"})}7140 YAML, advertised as something else7141 is expected to have attributes {:reason => :not_yaml}7142 there is text content in the YAML block, in comments7143 is expected to have attributes {:front_matter => (include {:foo => 1})}7144 there is text content in the YAML block7145 is expected to have attributes {:reason => :not_mapping}7146InitializerConnections7147 .raise_if_new_database_connection7148 prevents any database connection within the block7149 prevents any database connection re-use within the block7150 does not prevent database connection if SKIP_RAISE_ON_INITIALIZE_CONNECTIONS is set7151 prevents any database connection if SKIP_RAISE_ON_INITIALIZE_CONNECTIONS is false7152 restores original connection handler7153 restores original connection handler even there is an error7154 does not raise if connection_pool is retrieved in the block7155Banzai::Filter::FootnoteFilter7156 when footnotes exist7157 properly adds the necessary ids and classes7158 when GITLAB_TEST_FOOTNOTE_ID is set7159 uses the test footnote ID instead of a random number7160 when detecting footnotes7161 valid: true, markdown: "1. one[^1]\n[^1]: AbC"7162 detects valid footnotes7163 valid: true, markdown: "1. one[^abc]\n[^abc]: AbC"7164 detects valid footnotes7165 valid: false, markdown: "1. [one](#fnref-abc)"7166 detects valid footnotes7167 valid: false, markdown: "1. one[^1]\n[^abc]: AbC"7168 detects valid footnotes7169RuboCop::Cop::InjectEnterpriseEditionModule7170 # order random7171 disallows the use of include to inject an EE module7172 disallows the use of prepend to inject an extension module7173 does not flag the use of `prepend_mod_with` on the last line7174 disallows the use of extend to inject an EE module7175 flags the use of `include_mod_with` in the middle of a file7176 flags the use of `prepend_mod_with` in the middle of a file7177 autocorrects offenses by just disabling the Cop7178 does not flag the use of `extend_mod_with` on the last line7179 does not flag the double use of `X_mod_with` on the last line7180 disallows the use of extend_mod_with without a String7181 flags the use of `extend_mod_with` in the middle of a file7182 disallows the use of prepend to inject a QA::EE module7183 disallows the use of prepend_mod_with without a String7184 does not flag the use of `prepend_mod_with` as long as all injections are at the end of the file7185 disallows the use of include_mod_with without a String7186 does not flag the use of `include_mod_with` on the last line7187projects/environments/terminal7188 when environment has external URL7189 shows external URL button7190 when environment does not have external URL7191 shows external URL button7192AlertManagement::HttpIntegrationPolicy7193 rules7194 is expected to be disallowed :admin_operations7195 when maintainer7196 is expected to be allowed :admin_operations7197Snippets::UpdateRepositoryStorageService7198 #execute7199 when the move succeeds7200 moves the repository to the new storage and unmarks the repository as read-only7201 when the filesystems are the same7202 updates the database without trying to move the repostory7203 when the move fails7204 unmarks the repository as read-only without updating the repository storage7205 when the cleanup fails7206 sets the correct state7207 when the checksum does not match7208 unmarks the repository as read-only without updating the repository storage7209 when the repository move is finished7210 is idempotent7211 when the repository move is failed7212 is idempotent7213RuboCop::Cop::Gitlab::RailsLogger7214 # order random7215 flags the use of Rails.logger.debug with a constant receiver7216 does not flag the use of Rails.logger.level7217 does not flag the use of logger with a send receiver7218 flags the use of Rails.logger.info with a constant receiver7219 flags the use of Rails.logger.error with a constant receiver7220 does not flag the use of Rails.logger with a constant that is not Rails7221 flags the use of Rails.logger.warn with a constant receiver7222 flags the use of Rails.logger.fatal with a constant receiver7223shared/issuable/_sidebar.html.haml7224 project in a group7225 issuable that does not support escalations7226 shows escalation policy dropdown7227 issuable that supports escalations7228 does not show escalation policy dropdown7229 crm contacts widget7230 without permission7231 is expected not to be shown7232 without contacts7233 is expected not to be shown7234 with permission and contacts7235 is expected to be shown7236Clusters::Agents::DeleteExpiredEventsWorker7237 #perform7238 calls the deletion service7239 agent no longer exists7240 completes without raising an error7241BlobViewer::Base7242 .can_render?7243 when the extension is supported7244 when the binaryness matches7245 returns true7246 when the binaryness does not match7247 returns false7248 when the file type is supported7249 when the binaryness matches7250 returns true7251 when the binaryness does not match7252 returns false7253 when the extension and file type are not supported7254 returns false7255 #collapsed?7256 when the blob size is larger than the collapse limit7257 returns true7258 when the blob size is smaller than the collapse limit7259 returns false7260 #too_large?7261 when the blob size is larger than the size limit7262 returns true7263 when the blob size is smaller than the size limit7264 returns false7265 #render_error7266 when the blob is expanded7267 when the blob size is larger than the size limit7268 returns :too_large7269 when the blob size is smaller than the size limit7270 returns nil7271 when not expanded7272 when the blob size is larger than the collapse limit7273 returns :collapsed7274 when the blob size is smaller than the collapse limit7275 returns nil7276PropagateIntegrationProjectWorker7277 #perform7278 behaves like an idempotent worker7279 is labeled as idempotent7280 performs multiple times sequentially without raising an exception7281 calls to BulkCreateIntegrationService7282 with a group integration7283 calls to BulkCreateIntegrationService7284 with an invalid integration id7285 returns without failure7286Gitlab::Highlight7287 language provided7288 sets correct lexer7289 #highlight7290 highlights7291 returns plain version for unknown lexer context7292 highlights multi-line comments7293 links dependencies via DependencyLinker7294 when content is too long to be highlighted7295 returns plain version for long content7296 diff highlighting7297 highlights each line properly7298 when start line number is set7299 highlights each line properly7300 with CRLF7301 strips extra LFs7302 timeout7303 falls back to plaintext on timeout7304RepositoryCheck::DispatchWorker7305 does nothing when repository checks are disabled7306 does nothing if the exclusive lease is taken7307 dispatches work to RepositoryCheck::BatchWorker7308 with unhealthy shard7309 only triggers RepositoryCheck::BatchWorker for healthy shards7310 logs unhealthy shards7311Packages::CleanupPackageFileWorker7312 #perform_work7313 with no work to do7314 is expected to be nil7315 with work to do7316 deletes the oldest package file pending destruction based on id7317 with a duplicated PyPI package file7318 deletes one of the duplicates7319 with a package file to destroy7320 with an error during the destroy7321 handles the error7322 when trying to destroy a destroyed record7323 handles the error7324 removing the last package file7325 deletes the package file and the package7326 #max_running_jobs7327 is expected to eq 57328 #remaining_work_count7329 is expected to eq 27330Gitlab::Auth::Saml::Config7331 .enabled?7332 is expected to eq false7333 when SAML is enabled7334 is expected to eq true7335Types::Packages::Nuget::MetadatumType7336 includes nuget metadatum fields7337 projectUrl can be null7338 licenseUrl can be null7339 iconUrl can be null7340Gitlab::InactiveProjectsDeletionWarningTracker7341 .notified_projects7342 returns the list of projects for which deletion warning email has been sent7343 .reset_all7344 deletes all the projects for which deletion warning email was sent7345 #notified?7346 returns true if the project has already been notified7347 returns false if the project has not been notified7348 #mark_notified7349 marks the project as being notified7350 #notification_date7351 returns the date if a deletion warning email has been sent for a given project7352 returns nil if a deletion warning email has not been sent for a given project7353 #scheduled_deletion_date7354 without a stored deletion email date7355 behaves like returns the expected deletion date7356 is expected to eq "2023-04-30"7357 with a stored deletion email date7358 behaves like returns the expected deletion date7359 is expected to eq "2023-04-30"7360 #reset7361 resets the project as not being notified7362DependencyProxy::GroupSetting7363 relationships7364 is expected to belong to group required: false7365 default values7366 is expected to be enabled7367 is expected not to be enabled7368 validations7369 is expected to validate that :group cannot be empty/falsy7370RuboCop::CopTodo7371 # order random7372 #record7373 records offenses7374 #autocorrectable?7375 when found in rubocop registry7376 when autocorrectable7377 is expected to be truthy7378 when not autocorrectable7379 is expected to be falsey7380 when not found in rubocop registry7381 is expected to be falsey7382 #initialize7383 initializes a cop todo7384 #generate?7385 when empty todo7386 is expected to eq false7387 when previously disabled7388 is expected to eq true7389 when in grace period7390 is expected to eq true7391 with offenses recorded7392 is expected to eq true7393 #to_yaml7394 when autocorrectable7395 is expected to eq "---\n# Cop supports --autocorrect.\nCop/Rule:\n"7396 when previously disabled7397 is expected to eq "---\nCop/Rule:\n # Offense count: 3\n # Temporarily disabled due to too many offenses\n Enabled: false\n Exclude:\n - 'a.rb'\n - 'b.rb'\n"7398 with grace period7399 is expected to eq "---\nCop/Rule:\n Details: grace period\n Exclude:\n - 'a.rb'\n - 'b.rb'\n"7400 with multiple files7401 sorts excludes alphabetically7402Types::TodoableInterface7403 exposes the expected fields7404 .resolve_type7405 knows the correct type for objects7406 raises an error for an unknown type7407ErrorTracking::Collector::SentryAuthParser7408 .parse7409 returns correct value for public_key7410 with empty headers7411 fails with exception7412 with missing sentry_key7413 returns empty value for public_key7414Integrations::BaseIssueTracker7415 default values7416 is expected to eq :issue_tracker7417 Validations7418 only one issue tracker per project7419 when integration is changed manually by user7420 executes the validation7421 when integration is changed internally7422 does not execute the validation7423 #activate_disabled_reason7424 when there is an existing issue tracker integration7425 is expected to eq {:trackers=>[#<Integrations::CustomIssueTracker id: 85, project_id: 934, created_at: "2023-03-30 12:03:30.659962302 +0000", updated_at: "2023-03-30 12:03:30.659962302 +0000", active: true, push_events: true, issues_events: true, merge_requests_events: true, tag_push_events: true, note_events: true, category: "issue_tracker", wiki_page_events: true, pipeline_events: true, confidential_issues_events: true, commit_events: true, job_events: true, confidential_note_events: true, deployment_events: false, comment_on_event_enabled: true, instance: false, comment_detail: nil, inherit_from_id: nil, alert_events: true, group_id: nil, type_new: "Integrations::CustomIssueTracker", vulnerability_events: false, archive_trace_events: [FILTERED], encrypted_properties: "K\xAB\x0E.\x11\n\xCBv6\xDC\xEEiw\t\xCA\x9A\x16\x17", encrypted_properties_iv: "\xD9[l+\xEA\xB4\xD7\xD3\xB37s\xA9", incident_events: false, properties: nil>]}7426 when there is no existing issue tracker integration7427 is expected to equal nil7428RuboCop::Cop::Migration::WithLockRetriesWithChange7429 # order random7430 when outside of migration7431 registers no offense7432 when in migration7433 registers an offense when `with_lock_retries` is used inside a `change` method7434 registers no offense when `with_lock_retries` is used inside an `up` method7435Limitable7436 is expected to eq "test_classes"7437 with scoped limit7438 is expected to eq :project7439 triggers scoped validations7440 with custom relation and feature flags7441 limit_feature_flag: nil, limit_feature_flag_value: nil, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: true7442 acts according to the feature flag settings7443 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: false7444DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7445 acts according to the feature flag settings7446 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: nil, limit_feature_flag_override_value: nil, expect_limit_applied?: true7447DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7448 acts according to the feature flag settings7449 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: false, expect_limit_applied?: true7450DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7451DEPRECATION WARNING: Invalid Feature Flag some_feature_flag_disable stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7452 acts according to the feature flag settings7453 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: false, expect_limit_applied?: false7454DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7455DEPRECATION WARNING: Invalid Feature Flag some_feature_flag_disable stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7456 acts according to the feature flag settings7457 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: false, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: true, expect_limit_applied?: false7458DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7459DEPRECATION WARNING: Invalid Feature Flag some_feature_flag_disable stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7460 acts according to the feature flag settings7461 limit_feature_flag: :some_feature_flag, limit_feature_flag_value: true, limit_feature_flag_for_override: :some_feature_flag_disable, limit_feature_flag_override_value: true, expect_limit_applied?: false7462DEPRECATION WARNING: Invalid Feature Flag some_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7463DEPRECATION WARNING: Invalid Feature Flag some_feature_flag_disable stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)7464 acts according to the feature flag settings7465 with global limit7466 is expected to eq :limitable_global_scope7467 triggers scoped validations7468Types::Ci::PipelineMessageType7469 is expected to eq "PipelineMessage"7470 contains attributes related to a pipeline message7471Ci::AbortPipelinesService7472 #execute7473 with project pipelines7474 fails all running pipelines and related jobs7475 avoids N+1 queries7476 with live build logs7477 makes failed builds with stale trace visible7478events/event/_push.html.haml7479 with a branch7480 links to the branch7481 that has been deleted7482 does not link to the branch7483 ref_count is more than 17484 includes the count in the text7485 with a tag7486 links to the tag7487 that has been deleted7488 does not link to the tag7489 ref_count is more than 17490 includes the count in the text7491Types::Tree::TypeEnum7492 is expected to eq "EntryType"7493 exposes all tree entry types7494Achievements::AwardService7495 # order random7496 #execute7497 when user does not have permission7498 returns an error7499 when user has permission7500 creates an achievement7501 when the achievement is not persisted7502 returns the correct error7503 when the achievement does not exist7504 returns the correct error7505 when the recipient does not exist7506 returns the correct error7507Gitlab::Ci::Reports::Security::Reports7508 #get_report7509 when report type is sast7510 is expected to eq "sast"7511 is expected to eq 2023-03-30 12:03:37.910435116 +00007512 initializes a new report and returns it7513 when report type is already allocated7514 does not initialize a new report7515 #findings7516 is expected to contain exactly #<Gitlab::Ci::Reports::Security::Finding:0x00007fc79d34c620 @compare_key="find_sec_bugs_type:PREDICTABLE_RANDOM:8e509ac62752a3d9330f31e89a000c95b942e73c", @confidence=:medium, @identifiers=[#<Gitlab::Ci::Reports::Security::Identifier:0x00007fc79d2ca5d0 @external_id="PREDICTABLE_RANDOM", @external_type="find_sec_bugs_type", @name="find_sec_bugs_type-PREDICTABLE_RANDOM", @url=nil, @fingerprint="5848739446034d982ef7beece3bb19bff4044ffb">], @flags=[], @links=[], @location=#<Gitlab::Ci::Reports::Security::Locations::Sast:0x00007fc79d0da748 @class_name="com.gitlab.security_products.tests.App", @end_line=31, @file_path="maven/src/main/java/com/gitlab/security_products/tests/App.java", @method_name="insecureCypher", @start_line=29, @fingerprint="8e509ac62752a3d9330f31e89a000c95b942e73c">, @evidence=#<Gitlab::Ci::Reports::Security::Evidence:0x00007fc79d39a1b8 @data={:summary=>"Credit card detected", :request=>{:headers=>[{:name=>"Accept", :value=>"*/*"}], :method=>"GET", :url=>"http://goat:8080/WebGoat/logout", :body=>nil}, :response=>{:headers=>[{:name=>"Content-Length", :value=>"0"}], :reason_phrase=>"OK", :status_code=>200, :body=>nil}, :source=>{:id=>"assert:Response Body Analysis", :name=>"Response Body Analysis", :url=>"htpp://hostname/documentation"}, :supporting_messages=>[{:name=>"Origional", :request=>{:headers=>[{:name=>"Accept", :value=>"*/*"}], :method=>"GET", :url=>"http://goat:8080/WebGoat/logout", :body=>""}}, {:name=>"Recorded", :request=>{:headers=>[{:name=>"Accept", :value=>"*/*"}], :method=>"GET", :url=>"http://goat:8080/WebGoat/logout", :body=>""}, :response=>{:headers=>[{:name=>"Content-Length", :value=>"0"}], :reason_phrase=>"OK", :status_code=>200, :body=>""}}]}>, @metadata_version="sast:1.0", @name="Cipher with no integrity", @original_data={"description"=>"The cipher does not provide data integrity update 1", "solution"=>"GCM mode introduces an HMAC into the resulting encrypted data, providing integrity of the result.", "location"=>{"file"=>"maven/src/main/java/com/gitlab/security_products/tests/App.java", "start_line"=>29, "end_line"=>29, "class"=>"com.gitlab.security_products.tests.App", "method"=>"insecureCypher"}, "links"=>[{"name"=>"Cipher does not check for integrity first?", "url"=>"https://crypto.stackexchange.com/questions/31428/pbewithmd5anddes-cipher-does-not-check-for-integrity-first"}], "raw_source_code_extract"=>"AES/ECB/NoPadding", "evidence"=>{"summary"=>"Credit card detected", "request"=>{"headers"=>[{"name"=>"Accept", "value"=>"*/*"}], "method"=>"GET", "url"=>"http://goat:8080/WebGoat/logout", "body"=>nil}, "response"=>{"headers"=>[{"name"=>"Content-Length", "value"=>"0"}], "reason_phrase"=>"OK", "status_code"=>200, "body"=>nil}, "source"=>{"id"=>"assert:Response Body Analysis", "name"=>"Response Body Analysis", "url"=>"htpp://hostname/documentation"}, "supporting_messages"=>[{"name"=>"Origional", "request"=>{"headers"=>[{"name"=>"Accept", "value"=>"*/*"}], "method"=>"GET", "url"=>"http://goat:8080/WebGoat/logout", "body"=>""}}, {"name"=>"Recorded", "request"=>{"headers"=>[{"name"=>"Accept", "value"=>"*/*"}], "method"=>"GET", "url"=>"http://goat:8080/WebGoat/logout", "body"=>""}, "response"=>{"headers"=>[{"name"=>"Content-Length", "value"=>"0"}], "reason_phrase"=>"OK", "status_code"=>200, "body"=>""}}]}}, @report_type=:sast, @scanner=#<Gitlab::Ci::Reports::Security::Scanner:0x00007fc79d362c40 @external_id="find_sec_bugs", @name="Find Security Bugs", @vendor="Security Scanner Vendor", @version="1.0.0", @primary_identifiers=nil>, @scan=#<Gitlab::Ci::Reports::Security::Scan:0x00007fc79d34ded0 @type=nil, @status=nil, @start_time=nil, @end_time=nil>, @severity="low", @uuid="1f6f7864-68f0-5ed5-91a7-cff0676d1050", @remediations=[], @details={}, @signatures=[], @project_id=nil, @vulnerability_finding_signatures_enabled=false, @found_by_pipeline=nil, @project_fingerprint="2022699924e21aad89e1df0a59c227aa6e9234fe"> and #<Gitlab::Ci::Reports::Security::Finding:0x00007fc79d3dc8d8 @compare_key="find_sec_bugs_type:PREDICTABLE_RANDOM:8e509ac62752a3d9330f31e89a000c95b942e73c", @confidence=:medium, @identifiers=[#<Gitlab::Ci::Reports::Security::Identifier:0x00007fc79d416218 @external_id="PREDICTABLE_RANDOM", @external_type="find_sec_bugs_type", @name="find_sec_bugs_type-PREDICTABLE_RANDOM", @url=nil, @fingerprint="5848739446034d982ef7beece3bb19bff4044ffb">], @flags=[], @links=[], @location=#<Gitlab::Ci::Reports::Security::Locations::Sast:0x00007fc79d40b368 @class_name="com.gitlab.security_products.tests.App", @end_line=31, @file_path="maven/src/main/java/com/gitlab/security_products/tests/App.java", @method_name="insecureCypher", @start_line=29, @fingerprint="8e509ac62752a3d9330f31e89a000c95b942e73c">, @evidence=#<Gitlab::Ci::Reports::Security::Evidence:0x00007fc79d408c08 @data={:summary=>"Credit card detected", :request=>{:headers=>[{:name=>"Accept", :value=>"*/*"}], :method=>"GET", :url=>"http://goat:8080/WebGoat/logout", :body=>nil}, :response=>{:headers=>[{:name=>"Content-Length", :value=>"0"}], :reason_phrase=>"OK", :status_code=>200, :body=>nil}, :source=>{:id=>"assert:Response Body Analysis", :name=>"Response Body Analysis", :url=>"htpp://hostname/documentation"}, :supporting_messages=>[{:name=>"Origional", :request=>{:headers=>[{:name=>"Accept", :value=>"*/*"}], :method=>"GET", :url=>"http://goat:8080/WebGoat/logout", :body=>""}}, {:name=>"Recorded", :request=>{:headers=>[{:name=>"Accept", :value=>"*/*"}], :method=>"GET", :url=>"http://goat:8080/WebGoat/logout", :body=>""}, :response=>{:headers=>[{:name=>"Content-Length", :value=>"0"}], :reason_phrase=>"OK", :status_code=>200, :body=>""}}]}>, @metadata_version="sast:1.0", @name="Cipher with no integrity", @original_data={"description"=>"The cipher does not provide data integrity update 1", "solution"=>"GCM mode introduces an HMAC into the resulting encrypted data, providing integrity of the result.", "location"=>{"file"=>"maven/src/main/java/com/gitlab/security_products/tests/App.java", "start_line"=>29, "end_line"=>29, "class"=>"com.gitlab.security_products.tests.App", "method"=>"insecureCypher"}, "links"=>[{"name"=>"Cipher does not check for integrity first?", "url"=>"https://crypto.stackexchange.com/questions/31428/pbewithmd5anddes-cipher-does-not-check-for-integrity-first"}], "raw_source_code_extract"=>"AES/ECB/NoPadding", "evidence"=>{"summary"=>"Credit card detected", "request"=>{"headers"=>[{"name"=>"Accept", "value"=>"*/*"}], "method"=>"GET", "url"=>"http://goat:8080/WebGoat/logout", "body"=>nil}, "response"=>{"headers"=>[{"name"=>"Content-Length", "value"=>"0"}], "reason_phrase"=>"OK", "status_code"=>200, "body"=>nil}, "source"=>{"id"=>"assert:Response Body Analysis", "name"=>"Response Body Analysis", "url"=>"htpp://hostname/documentation"}, "supporting_messages"=>[{"name"=>"Origional", "request"=>{"headers"=>[{"name"=>"Accept", "value"=>"*/*"}], "method"=>"GET", "url"=>"http://goat:8080/WebGoat/logout", "body"=>""}}, {"name"=>"Recorded", "request"=>{"headers"=>[{"name"=>"Accept", "value"=>"*/*"}], "method"=>"GET", "url"=>"http://goat:8080/WebGoat/logout", "body"=>""}, "response"=>{"headers"=>[{"name"=>"Content-Length", "value"=>"0"}], "reason_phrase"=>"OK", "status_code"=>200, "body"=>""}}]}}, @report_type=:sast, @scanner=#<Gitlab::Ci::Reports::Security::Scanner:0x00007fc79d3dedb8 @external_id="find_sec_bugs", @name="Find Security Bugs", @vendor="Security Scanner Vendor", @version="1.0.0", @primary_identifiers=nil>, @scan=#<Gitlab::Ci::Reports::Security::Scan:0x00007fc79d3dd170 @type=nil, @status=nil, @start_time=nil, @end_time=nil>, @severity="high", @uuid="f70910fb-a7e6-5714-8b89-d00f477c9d27", @remediations=[], @details={}, @signatures=[], @project_id=nil, @vulnerability_finding_signatures_enabled=false, @found_by_pipeline=nil, @project_fingerprint="2022699924e21aad89e1df0a59c227aa6e9234fe">7517RuboCop::Cop::Gitlab::ModuleWithInstanceVariables7518 # order random7519 when source is a nested module with multiple offenses7520 behaves like registering offense7521 registers an offense when instance variable is used in a module7522 when source is a regular module7523 behaves like registering offense7524 registers an offense when instance variable is used in a module7525 when source is defining initialize7526 behaves like not registering offense7527 does not register offenses7528 when source is using simple or ivar assignment with other ivar7529 behaves like registering offense7530 registers an offense when instance variable is used in a module7531 when source is a nested module7532 behaves like registering offense7533 registers an offense when instance variable is used in a module7534 when source is using simple or ivar assignment7535 behaves like not registering offense7536 does not register offenses7537 when source is using or ivar assignment with something else7538 behaves like registering offense7539 registers an offense when instance variable is used in a module7540 when source is using simple ivar7541 behaves like not registering offense7542 does not register offenses7543Issues::BaseService7544 # order random7545 #constructor_container_arg7546 is expected to eq {:container=>"some-value"}7547DeployKeys::DeployKeyEntity7548 returns deploy keys with projects a user can read7549 is expected to eq {:almost_orphaned=>false, :can_edit=>false, :created_at=>2023-03-30 12:03:39.779890288 +0000, :deploy_keys_projects=>[{:can_push=>false, :project=>{:full_name=>"Sidney Jones2240 / project1066", :full_path=>"/namespace1015/project1066", :id=>938, :name=>"project1066", :refs_url=>"/namespace1015/project1066/refs"}}], :destroyed_when_orphaned=>true, :expires_at=>nil, :fingerprint=>"35:37:28:30:8a:8c:e1:e1:e8:ff:4b:f3:c1:a7:27:ab", :fingerprint_sha256=>"2qZUl5IyYDL/+FJ9a+0pijzOZvCSjN2b40NC4acOBiI", :id=>4, :title=>"My title 287", :updated_at=>2023-03-30 12:03:39.779890288 +0000, :user_id=>nil}7550Gitlab::Database::LoadBalancing::ServiceDiscovery::Sampler7551 # order random7552 #sample7553 samples max_replica_pools addresses7554 samples random ports across all hosts7555 returns the same answer for the same input when called multiple times7556 gives a consistent answer regardless of input ordering7557 samples fairly across all hosts7558 when input is an empty array7559 returns an empty array7560 when there are less replicas than max_replica_pools7561 returns the same addresses7562 when max_replica_pools is nil7563 returns the same addresses7564Issues::AfterCreateService7565 #execute7566 creates a pending todo for new assignee7567 with a regular issue7568 behaves like does not track incident management event7569 does not track the event7570 with an incident issue7571 behaves like an incident management tracked event7572 .track_event7573 tracks the event using redis7574Backup::FileBackupError7575 with lfs file7576 behaves like includes backup path7577 is expected to respond to #app_files_dir7578 is expected to respond to #backup_tarball7579 expects exception message to include file backup path location7580 expects exception message to include file being back-up7581 with uploads file7582 behaves like includes backup path7583 is expected to respond to #app_files_dir7584 is expected to respond to #backup_tarball7585 expects exception message to include file backup path location7586 expects exception message to include file being back-up7587Gitlab::Ci::Build::Releaser7588 #script7589 all nodes7590 generates the script7591 individual nodes7592 node_name: :name, node_value: "Release $CI_COMMIT_SHA", result: "release-cli create --name \"Release $CI_COMMIT_SHA\""7593 generates the script7594 node_name: :description, node_value: "Release-cli $EXTRA_DESCRIPTION", result: "release-cli create --description \"Release-cli $EXTRA_DESCRIPTION\""7595 generates the script7596 node_name: :tag_name, node_value: "release-$CI_COMMIT_SHA", result: "release-cli create --tag-name \"release-$CI_COMMIT_SHA\""7597 generates the script7598 node_name: :tag_message, node_value: "Annotated tag message", result: "release-cli create --tag-message \"Annotated tag message\""7599 generates the script7600 node_name: :ref, node_value: "$CI_COMMIT_SHA", result: "release-cli create --ref \"$CI_COMMIT_SHA\""7601 generates the script7602 node_name: :milestones, node_value: ["m1", "m2", "m3"], result: "release-cli create --milestone \"m1\" --milestone \"m2\" --milestone \"m3\""7603 generates the script7604 node_name: :released_at, node_value: "2020-07-15T08:00:00Z", result: "release-cli create --released-at \"2020-07-15T08:00:00Z\""7605 generates the script7606 node_name: :assets, node_value: {:links=>[{:name=>"asset1", :url=>"https://example.com/assets/1", :link_type=>"other", :filepath=>"/pretty/asset/1"}]}, result: "release-cli create --assets-link \"{\\\"name\\\":\\\"asset1\\\",\\\"url\\\":\\\"https://example.com/assets/1\\\",\\\"link_type\\\":\\\"other\\\",\\\"filepath\\\":\\\"/pretty/asset/1\\\"}\""7607 generates the script7608Gitlab::GithubImport::Importer::Events::Reopened7609 with Issue7610 behaves like new event7611 creates expected event and state event7612 with MergeRequest7613 behaves like new event7614 creates expected event and state event7615Gitlab::GithubImport::ParallelImporter7616 .async?7617 returns true7618 .track_start_import7619 tracks the start of import7620 #execute7621 schedules the importing of the repository7622 sets the JID in Redis7623Groups::AcceptingProjectTransfersFinder7624 #execute7625 only returns groups where the user has access to transfer projects to7626Ci::BuildScheduleWorker7627 when build is found7628 when build is scheduled7629 executes RunScheduledBuildService7630 when build is not scheduled7631 executes RunScheduledBuildService7632 when build is not found7633 does nothing7634Projects::ReadmeRendererService#execute7635 renders the an ERB readme template7636 with a custom template7637 renders that template file7638 with path traversal in mind7639 template_name: "../path/traversal/bad", exception: [Gitlab::Utils::PathTraversalAttackError, "Invalid path"], expected_path: nil7640 raises the expected exception on bad paths7641 template_name: "/bad/template", exception: [StandardError, "path /bad/template.md.tt is not allowed"], expected_path: nil7642 raises the expected exception on bad paths7643 template_name: "good/template", exception: nil, expected_path: "good/template.md.tt"7644 raises the expected exception on bad paths7645Gitlab::Usage::Metrics::Instrumentations::CountUsersAssociatingMilestonesToReleasesMetric7646 behaves like a correct instrumented metric value7647 has correct value7648Mutations::CustomerRelations::Contacts::Update7649 is expected to require graphql authorizations :admin_crm_contact7650 #resolve7651 when the user does not have permission to update a contact7652 raises an error7653 when the contact does not exist7654 raises an error7655 when the user has permission to update a contact7656 updates the organization with correct values7657Packages::Helm::ExtractFileMetadataService7658 with a valid file7659 is expected to eq {"apiVersion"=>"v2", "description"=>"File, Block, and Object Storage Services for your Cloud-Native Environment", "icon"=>"https://rook.io/images/rook-logo.svg", "name"=>"rook-ceph", "sources"=>["https://github.com/rook/rook"], "version"=>"v1.5.8"}7660 without Chart.yaml7661 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"7662 with Chart.yaml at root7663 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"7664 with an invalid YAML7665 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Error while parsing Chart.yaml: (<unknown>): did not find expected node content while parsing a flow node at line 2 column 1"7666 with a corrupted Chart.yaml of incorrect size7667 raises an error with the expected message7668Ml::CandidateMetric7669 associations7670 is expected to belong to candidate required: false7671 scope :latest7672 fetches only the last metric for the name7673RuboCop::Cop::Migration::SidekiqQueueMigrate7674 # order random7675 when in a post-deployment migration7676 registers no offense7677 when outside of a migration7678 registers no offense7679 when in a regular migration7680 registers an offense when sidekiq_queue_migrate is used in #up7681 registers an offense when sidekiq_queue_migrate is used in #down7682 registers an offense when sidekiq_queue_migrate is used in #change7683 registers an offense when sidekiq_queue_migrate is used in #any_other_method7684UserEntity7685 exposes user name and login7686 does not expose passwords7687 does not expose tokens7688 does not expose 2FA OTPs7689 exposes user path7690Ci::Runners::AssignRunnerService#execute7691 without user7692 does not call assign_to on runner and returns error response7693 with unauthorized user7694 does not call assign_to on runner and returns error message7695 with admin user7696 calls assign_to on runner and returns success response7697Gitlab::Database::SimilarityScore7698 when passing empty values7699 when search is nil7700 orders by a constant 0 value7701 when rules are empty7702 orders by a constant 0 value7703 when similarity scoring based on the path7704 when searching for `git`7705 is expected to eq ["git", "gitlab", "gitaly"]7706 when searching for `gitlab`7707 is expected to eq ["gitlab", "gitlab-styles", "gitlab-danger"]7708 when searching for something unrelated7709 results have 0 similarity score7710 score multiplier7711 ranks `path` matches higher7712 annotation7713 annotates the generated SQL expression7714Gitlab::Usage::Metrics::Instrumentations::CountProjectsWithMlExperimentsMetric7715 # order random7716 behaves like a correct instrumented metric value and query7717 behaves like a correct instrumented metric value7718 has correct value7719 behaves like a correct instrumented metric query7720 has correct generate query7721BulkImports::Projects::Pipelines::ProjectFeaturePipeline7722 #run7723 imports project feature7724Gitlab::RenderTimeout7725 utilizes timeout for web7726 utilizes longer timeout for sidekiq7727RuboCop::Cop::API::Base7728 # order random7729 adds an offense when inheriting from Grape::API::Instance7730 adds an offense when inheriting from ::Grape::API::Instance7731 adds an offense when inheriting from ::Grape::API7732 does not add an offense when inheriting from BaseAPI7733 adds an offense when inheriting from Grape::API7734Gitlab::Database::SchemaValidation::Runner7735 # order random7736 #execute7737 returns inconsistencies7738 execute all validators7739 when validators are passed7740 only execute the validators passed7741Gitlab::QuickActions::SubstitutionDefinition7742 #perform_substitution!7743 returns nil if content is nil7744 when content contains command name7745 performs the substitution by default7746 when content contains command name in word7747 does not perform the substitution7748X509SerialNumberAttribute7749 #x509_serial_number_attribute7750 when in non-production7751 when the table exists7752 defines a x509 serial number attribute for a binary column7753 raises ArgumentError when the column type is not :binary7754 when the table does not exist7755 allows the attribute to be added and issues a warning7756 when the column does not exist7757 allows the attribute to be added and issues a warning7758 when other execeptions are raised7759 logs and re-rasises the error7760 when in production7761 defines a x509 serial number attribute7762HamlLint::Linter::InlineJavaScript7763 haml: "%script", should_report: true7764 is expected to report a lint with message 'Inline JavaScript is discouraged (https://docs.gitlab.com/ee/development/gotchas.html#do-not-use-inline-javascript-in-views)'7765 haml: "%javascript", should_report: false7766 is expected not to report a lint7767 haml: ":javascript", should_report: true7768 is expected to report a lint with message 'Inline JavaScript is discouraged (https://docs.gitlab.com/ee/development/gotchas.html#do-not-use-inline-javascript-in-views)'7769 haml: ":markdown", should_report: false7770 is expected not to report a lint7771shared/_milestones_sort_dropdown.html.haml7772 render7773 when a sort option is not selected7774 renders a default sort option7775 when a sort option is selected7776 renders the selected sort option7777ExternalLinkHelper7778 returns external link with icon7779 allows options when creating external link with icon7780 sanitizes and returns external link with icon7781Resolvers::Ci::RunnerSetupResolver7782 #resolve7783 with container platforms7784 returns install instructions7785 does not return register instructions7786 with regular platforms7787 returns install and register instructions7788Gitlab::Ci::Pipeline::Chain::Metrics7789 # order random7790 does not break the chain7791 without pipeline name7792 does not create snowplow event7793 with pipeline name7794 creates snowplow event7795Gitlab::GithubImport::Representation::PullRequestReview7796 .from_api_response7797 does not set the user if the response did not include a user7798 behaves like a PullRequest review7799 returns an instance of PullRequest7800 .from_json_hash7801 does not set the user if the response did not include a user7802 does not fail when submitted_at is blank7803 behaves like a PullRequest review7804 returns an instance of PullRequest7805 #github_identifiers7806 returns a hash with needed identifiers7807Ci::CreateCrossProjectPipelineWorker7808 #perform7809 when bridge exists7810 calls cross project pipeline creation service7811 when bridge does not exist7812 does nothing7813Types::KeyType7814 # order random7815 contains attributes for SSH keys7816 is expected to eq "Key"7817Banzai::Filter::ServiceDeskUploadLinkFilter7818 # order random7819 when uploads_as_attachments is empty7820 does not replaces the link7821 when replace_upload_links enabled7822 when it has only one attachment to replace7823 when filename in text is same as in link7824 replaces the link with original filename in strong7825 when filename in text is not same as in link7826 replaces the link with filename in text & original filename, in strong7827 when it has more than one attachment to replace7828 when all of uploads can be replaced7829 replaces all links with original filename in strong7830 when not all of uploads can be replaced7831 replaces only specific links with original filename in strong7832DesignManagement::Repository7833 associations7834 is expected to belong to project required: false inverse_of => design_management_repository7835 validations7836 is expected to validate that :project cannot be empty/falsy7837 is expected to validate that :project is case-sensitively unique7838Gitlab::Database::Migrations::ExtensionHelpers7839 # order random7840 #create_extension7841 executes CREATE EXTENSION statement7842 without proper permissions7843 raises an exception and prints an error message7844 #drop_extension7845 executes CREATE EXTENSION statement7846 without proper permissions7847 raises an exception and prints an error message7848Groups::UpdateStatisticsService7849 #execute7850 when group is nil7851 does nothing7852 with an existing group7853 when namespace statistics exists for the group7854 uses the existing statistics and refreshes them7855 when namespace statistics does not exist for the group7856 creates the statistics and refreshes them7857Gitlab::UsageDataCounters::VSCodeExtensionActivityUniqueCounter7858 when tracking a vs code api request7859 behaves like a request from an extension7860 tracks when the user agent is matching7861 does not track when the user agent is not matching7862 does not track if user agent is not present7863 does not track if user is not present7864Gitlab::Search::AbuseValidators::NoAbusiveTermLengthValidator7865 when a term is over the limit7866 adds a validation error7867 when all terms are under the limit7868 does NOT add any validation errors7869 when a URL is detected in a search term7870 when under twice the limit7871 does NOT add any validation errors7872 when over twice the limit7873 adds a validation error7874Groups::FeatureSetting7875 associations7876 is expected to belong to group required: false7877 validations7878 is expected to validate that :group cannot be empty/falsy7879Gitlab::UsageDataCounters::SearchCounter7880 all_searches counter7881 behaves like usage counter with totals7882 increments counter and returns total count7883 navbar_searches counter7884 behaves like usage counter with totals7885 increments counter and returns total count7886 .fetch_supported_event7887 is expected to eq "all_searches"7888Types::MergeRequests::AuthorType7889 behaves like a user type with merge request interaction type7890 is expected to require graphql authorizations :read_user7891 has the expected fields7892 #merge_request_interaction7893 returns the correct type7894 has the correct arguments7895Gitlab::GithubImport::Attachments::ImportMergeRequestWorker7896 # order random7897 #import7898 imports an merge request attachments7899Gitlab::ImportExport::RecursiveMergeFolders7900 # order random7901 .merge7902 merge folder and ignore symlinks7903 raises an error for invalid source path7904 raises an error for source path outside temp dir7905 raises an error for invalid target path7906RunnerEntity7907 #as_json7908 contains required fields7909ForceCompanyTrialExperiment7910 when a user is setup_for_company7911 is not excluded7912 when a user is not setup_for_company7913 is excluded7914RuboCop::Cop::Gitlab::Json7915 # order random7916 when ::JSON is called7917 registers an offense and autocorrects7918 when ActiveSupport::JSON is called7919 registers an offense and autocorrects7920 when ::JSON is called in EE7921 registers an offense and autocorrects7922Types::CiConfiguration::Sast::AnalyzersEntityInputType7923 is expected to eq "SastCiConfigurationAnalyzersEntityInput"7924 is expected to contain exactly "enabled", "name", and "variables"7925Gitlab::Metrics::ElasticsearchRackMiddleware7926 #call7927 calls the app7928 records elasticsearch metrics7929 records elasticsearch metrics if an error is raised7930 when there are no elasticsearch requests7931 does not record any metrics7932Gitlab::Ci::Build::Port7933 when port is defined as an integer7934 populates the object7935 when port is defined as hash7936 populates the object7937devise/confirmations/almost_there7938 # order random7939 confirmations text7940 when correct email7941 is expected to have text "Please check your email (こんにちは@test) to confirm your account"7942 when random text7943 is expected to have text "Please check your email to confirm your account"7944 register again prompt7945 is expected to have visible link "register again with a different email" with href "/users/sign_up"7946RuboCop::Cop::Migration::RemoveConcurrentIndex7947 # order random7948 outside of migration7949 registers no offense7950 in migration7951 registers an offense when remove_concurrent_index is used inside a change method7952 registers no offense when remove_concurrent_index is used inside an up method7953RuboCop::Cop::Graphql::GIDExpectedType7954 # order random7955 does not add an offense for calls that have an expected_type parameter7956 adds an offense when there is no expected_type parameter7957PagesDomainVerificationWorker7958 #perform7959 does nothing if the database is read-only7960 does nothing for a non-existent domain7961 delegates to VerifyPagesDomainService7962Types::Ci::PipelineMergeRequestEventTypeEnum7963 is expected to eq "PipelineMergeRequestEventType"7964 has specific values7965Gitlab::Graphql::Tracers::TimerTracer7966 adds duration_s to the trace metadata7967 adds a duration_s even if the query failed7968Gitlab::Metrics::Dashboard::Transformers::Yml::V1::PrometheusMetrics7969 #execute7970 valid dashboard7971 returns collection of metrics with correct attributes7972 invalid dashboard7973 raises missing attribute error7974Types::Packages::Helm::FileMetadatumType7975 is expected to eq "HelmFileMetadata"7976 includes helm file metadatum fields7977RuboCop::Cop::BanCatchThrow7978 # order random7979 registers an offense when `catch` or `throw` are used7980 does not register an offense for a method called catch or throw7981Gitlab::GrapeLogging::Loggers::QueueDurationLogger7982 .parameters7983 when no proxy duration is available7984 returns an empty hash7985 when a proxy duration is available7986 adds the duration to log parameters7987Gitlab::Memory::Watchdog::MonitorState7988 # order random7989 #call7990 when threshold is not violated7991 returns correct result7992 when threshold is violated7993 returns correct result7994 when strikes_exceeded7995 returns correct result7996Ci::ScheduleDeleteObjectsCronWorker7997 #perform7998 enqueues DeleteObjectsWorker jobs7999TodosDestroyer::DestroyedIssuableWorker8000 calls the Todos::Destroy::DestroyedIssuableService8001RuboCop::Cop::Gitlab::DeprecateTrackRedisHLLEvent8002 # order random8003 does not flag the use of track_event8004 flags the use of track_redis_hll_event8005Ci::Lint::ResultEntity8006 #represent8007 serializes with lint result entity8008Types::Users::NamespaceCommitEmailType8009 # order random8010 has the correct fields8011 is expected to require graphql authorizations :read_user_email_address8012RemoteMirrorEntity8013 exposes remote-mirror-specific elements8014 does not expose password information8015Gitlab::QuickActions::Dsl8016 .command_definitions8017 returns an array with commands definitions8018Types::Packages::Cleanup::KeepDuplicatedPackageFilesEnum8019 exposes all options8020 uses all possible options from model8021PlanLimitsHelper8022 # order random8023 #plan_limit_setting_description8024 describes known limits8025 raises an ArgumentError on invalid arguments8026AccessTokenEntityBase8027 # order random8028 has the correct attributes8029Ci::DailyBuildGroupReportResultSerializer8030 #to_json8031 returns an array of group results8032Gitlab::Database::SchemaValidation::Validators::MissingTriggers8033 # order random8034 returns trigger inconsistencies8035Gitlab::Ci::Status::Core8036 #cache_key8037 uses the subject's cache key8038Gitlab::Usage::Metrics::Instrumentations::HostnameMetric8039 behaves like a correct instrumented metric value8040 has correct value8041Tooling::VisualReviewHelper8042 #visual_review_toolbar_options8043 returns the correct params8044ActiveJob execute callback8045 is removed in test environment8046Pending: (Failures listed here are expected and do not affect your suite's status)8047 1) Operations::FeatureFlags::UserList behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank8048 # No reason given8049 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:498050 2) Operations::FeatureFlags::UserList behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank8051 # No reason given8052 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:578053 3) Ci::BuildTraceMetadata partitioning assigns the same partition id as the one that build has8054 # Skipping partitioning tests until `ci_builds` is partitioned8055 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8056 RSpec::Core::Pending::SkipDeclaredInExample8057 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8058 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8059 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8060 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8061 4) Ci::JobVariable partitioning when using bulk_insert creates job variables successfully8062 # Skipping partitioning tests until `ci_builds` is partitioned8063 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8064 RSpec::Core::Pending::SkipDeclaredInExample8065 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8066 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8067 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8068 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8069 5) Database::MultipleDatabasesHelpers .with_added_ci_connection when only a single database is setup connects Ci::ApplicationRecord to the main database for the duration of the block8070 # Skipping because some of the extra databases [:ci] are setup8071 # ./spec/support_specs/database/multiple_databases_helpers_spec.rb:898072Failures:8073 1) Groups::GroupLinks::CreateService#execute when user has proper membership to share a group when sharing outside the hierarchy is disabled when group is inside hierarchy behaves like shareable adds group to another group8074 Failure/Error: expect(result[:status]).to eq(:success)8075 expected: :success8076 got: :error8077 (compared using ==)8078 Diff:8079 @@ -1 +1 @@8080 -:success8081 +:error8082 Shared Example Group: "shareable" called from ./spec/services/groups/group_links/create_service_spec.rb:678083 # ./spec/services/groups/group_links/create_service_spec.rb:39:in `block (4 levels) in <top (required)>'8084 # ./spec/services/groups/group_links/create_service_spec.rb:36:in `block (3 levels) in <top (required)>'8085 # ./spec/spec_helper.rb:438:in `block (3 levels) in <top (required)>'8086 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8087 # ./spec/spec_helper.rb:430:in `block (2 levels) in <top (required)>'8088 # ./spec/spec_helper.rb:426:in `block (3 levels) in <top (required)>'8089 # ./lib/gitlab/application_context.rb:61:in `with_raw_context'8090 # ./spec/spec_helper.rb:426:in `block (2 levels) in <top (required)>'8091 # ./spec/spec_helper.rb:240:in `block (2 levels) in <top (required)>'8092 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8093 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8094 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8095 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8096Finished in 23 minutes 37 seconds (files took 1 minute 2.34 seconds to load)80973397 examples, 1 failure, 5 pending8098Failed examples:8099rspec './spec/services/groups/group_links/create_service_spec.rb[1:1:2:2:1:1]' # Groups::GroupLinks::CreateService#execute when user has proper membership to share a group when sharing outside the hierarchy is disabled when group is inside hierarchy behaves like shareable adds group to another group8100Randomized with seed 200408101[TEST PROF INFO] Time spent in factories: 11:06.485 (46.06% of total time)8102Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected8103RSpec exited with 1.8104RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg13-as-if-foss_single-db-ci-connection_26_28_report.txt8105Retrying the failing examples in a new RSpec process...8106$ gem install junit_merge --no-document --version 0.1.28107Successfully installed nokogiri-1.14.2-x86_64-linux8108Successfully installed junit_merge-0.1.281092 gems installed8110==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 1 seconds.8111Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec-retry.xml --only-failures --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.rb"8112Run options: include {:last_run_status=>"failed"}8113Test environment set up in 0.319421565 seconds8114Groups::GroupLinks::CreateService#execute8115 when user has proper membership to share a group8116 when sharing outside the hierarchy is disabled8117 when group is inside hierarchy8118 behaves like shareable8119 adds group to another group8120Finished in 4.3 seconds (files took 34.64 seconds to load)81211 example, 0 failures8122[TEST PROF INFO] Time spent in factories: 00:00.929 (16.46% of total time)8123A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...8124Flaky test was not part of this MR.8126Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8127Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8129Uploading artifacts...8130coverage/: found 4 matching artifact files and directories 8131crystalball/: found 2 matching artifact files and directories 8132deprecations/: found 10 matching artifact files and directories 8133knapsack/: found 3 matching artifact files and directories 8134WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8135rspec/: found 14 matching artifact files and directories 8136WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8137log/*.log: found 18 matching artifact files and directories 8138WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138984/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8139WARNING: Retrying... context=artifacts-uploader error=request redirected8140Uploading artifacts as "archive" to coordinator... 201 Created id=4031138984 responseStatus=201 Created token=64_AivUJ8141Uploading artifacts...8142rspec/junit_rspec.xml: found 1 matching artifact files and directories 8143WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138984/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8144WARNING: Retrying... context=artifacts-uploader error=request redirected8145Uploading artifacts as "junit" to coordinator... 201 Created id=4031138984 responseStatus=201 Created token=64_AivUJ8147Job succeeded