There was an error fetching the job.
rspec unit pg13-as-if-foss single-db-ci-connection 23/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-7a1ebfdc...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 | 30.22 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_G5bmj45Downloading artifacts for detect-tests (4031138213)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138213 responseStatus=200 OK token=64_G5bmj47Downloading artifacts for retrieve-tests-metadata (4031138217)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138217 responseStatus=200 OK token=64_G5bmj49Downloading artifacts for setup-test-env (4031138204)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4031138204 responseStatus=200 OK token=64_G5bmj52Using 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 0 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 34 seconds.721$ setup_db_praefect722SELECT pg_catalog.set_config('search_path', '', false);723CREATE DATABASE praefect_test ENCODING 'UTF8';724==> 'setup_db_praefect' succeeded in 0 seconds.725$ source ./scripts/rspec_helpers.sh726$ 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 1 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_23_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_23_28_report.json845NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13-as-if-foss_single-db-ci-connection_23_28_report.json846SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13-as-if-foss_single-db-ci-connection_23_28_report.txt847CRYSTALBALL: 848Knapsack node specs:849spec/lib/gitlab/git_access_spec.rb850spec/services/quick_actions/interpret_service_spec.rb851spec/services/todo_service_spec.rb852spec/services/issues/close_service_spec.rb853spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb854spec/lib/gitlab/background_migration/job_coordinator_spec.rb855spec/services/issues/create_service_spec.rb856spec/finders/packages/group_packages_finder_spec.rb857spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb858spec/lib/gitlab/utils/strong_memoize_spec.rb859spec/models/project_statistics_spec.rb860spec/lib/gitlab/git/blob_spec.rb861spec/models/integrations/bamboo_spec.rb862spec/lib/gitlab/checks/branch_check_spec.rb863spec/services/members/invite_service_spec.rb864spec/lib/gitlab/background_migration/backfill_work_item_type_id_for_issues_spec.rb865spec/models/ci/processable_spec.rb866spec/helpers/application_helper_spec.rb867spec/lib/gitlab/relative_positioning/item_context_spec.rb868spec/policies/packages/policies/project_policy_spec.rb869spec/models/notification_recipient_spec.rb870spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb871spec/finders/environments/environment_names_finder_spec.rb872spec/services/push_event_payload_service_spec.rb873spec/services/bulk_create_integration_service_spec.rb874spec/services/clusters/update_service_spec.rb875spec/models/concerns/routable_spec.rb876spec/models/packages/debian/group_distribution_spec.rb877spec/lib/gitlab/ci/config/entry/bridge_spec.rb878spec/services/issue_links/list_service_spec.rb879spec/models/appearance_spec.rb880spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb881spec/rubocop/cop/rspec/factory_bot/strategy_in_callback_spec.rb882spec/lib/banzai/filter/audio_link_filter_spec.rb883spec/models/upload_spec.rb884spec/finders/clusters/kubernetes_namespace_finder_spec.rb885spec/lib/gitlab/sql/pattern_spec.rb886spec/tasks/gitlab/cleanup_rake_spec.rb887spec/serializers/project_note_entity_spec.rb888spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb889spec/services/google_cloud/generate_pipeline_service_spec.rb890spec/views/notify/pipeline_success_email.text.erb_spec.rb891spec/lib/gitlab/ci/ansi2html_spec.rb892spec/services/labels/create_service_spec.rb893spec/lib/gitlab/middleware/same_site_cookies_spec.rb894spec/models/sentry_issue_spec.rb895spec/workers/tasks_to_be_done/create_worker_spec.rb896spec/lib/gitlab/ci/build/step_spec.rb897spec/models/analytics/cycle_analytics/aggregation_spec.rb898spec/models/error_tracking/error_spec.rb899spec/services/boards/lists/destroy_service_spec.rb900spec/services/ci/runners/register_runner_service_spec.rb901spec/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer_spec.rb902spec/lib/gitlab/conflict/file_collection_spec.rb903spec/services/dependency_proxy/image_ttl_group_policies/update_service_spec.rb904spec/lib/gitlab/import_export/group/relation_factory_spec.rb905spec/services/projects/move_project_members_service_spec.rb906spec/tasks/gitlab/snippets_rake_spec.rb907spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb908spec/lib/sbom/package_url/argument_validator_spec.rb909spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb910spec/lib/gitlab/ci/variables/collection/sort_spec.rb911spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb912spec/models/projects/topic_spec.rb913spec/models/integrations/campfire_spec.rb914spec/services/users/update_todo_count_cache_service_spec.rb915spec/lib/gitlab/database/query_analyzers/restrict_allowed_schemas_spec.rb916spec/services/wiki_pages/create_service_spec.rb917spec/lib/gitlab/api_authentication/token_resolver_spec.rb918spec/tooling/graphql/docs/renderer_spec.rb919spec/lib/gitlab/kubernetes/rollout_status_spec.rb920spec/lib/gitlab/metrics/sli_spec.rb921spec/models/concerns/subquery_spec.rb922spec/finders/namespaces/projects_finder_spec.rb923spec/graphql/mutations/alert_management/update_alert_status_spec.rb924spec/tasks/gitlab/container_registry_rake_spec.rb925spec/lib/gitlab/pagination/keyset/iterator_spec.rb926spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb927spec/models/jira_connect/public_key_spec.rb928spec/graphql/resolvers/snippets_resolver_spec.rb929spec/services/packages/update_package_file_service_spec.rb930spec/lib/gitlab/omniauth_initializer_spec.rb931spec/models/ci/build_trace_chunks/database_spec.rb932spec/services/ci/job_artifacts/destroy_associations_service_spec.rb933spec/lib/sidebars/user_profile/menus/contributed_projects_menu_spec.rb934spec/models/projects/forks/details_spec.rb935spec/services/import_export_clean_up_service_spec.rb936spec/models/concerns/cacheable_attributes_spec.rb937spec/graphql/resolvers/ci/runner_projects_resolver_spec.rb938spec/lib/gitlab/database/load_balancing/configuration_spec.rb939spec/workers/issues/close_worker_spec.rb940spec/policies/clusters/instance_policy_spec.rb941spec/graphql/resolvers/blobs_resolver_spec.rb942spec/tasks/gitlab/lfs/check_rake_spec.rb943spec/initializers/database_config_spec.rb944spec/lib/atlassian/jira_connect/serializers/repository_entity_spec.rb945spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb946spec/lib/gitlab/logger_spec.rb947spec/services/metrics/dashboard/transient_embed_service_spec.rb948spec/models/ci/deleted_object_spec.rb949spec/lib/gitlab/ci/yaml_processor/feature_flags_spec.rb950spec/validators/system_hook_url_validator_spec.rb951spec/lib/gitlab/ci/variables/builder/group_spec.rb952spec/lib/gitlab/database/partitioning_migration_helpers/index_helpers_spec.rb953spec/services/protected_branches/api_service_spec.rb954spec/services/dependency_proxy/head_manifest_service_spec.rb955spec/workers/projects/delete_branch_worker_spec.rb956spec/services/boards/issues/create_service_spec.rb957spec/lib/gitlab/terraform_registry_token_spec.rb958spec/lib/gitlab/phabricator_import/issues/importer_spec.rb959spec/helpers/notifications_helper_spec.rb960spec/lib/gitlab/database/partitioning_spec.rb961spec/lib/sidebars/projects/menus/monitor_menu_spec.rb962spec/models/integrations/chat_message/push_message_spec.rb963spec/lib/bitbucket/representation/issue_spec.rb964spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb965spec/lib/banzai/filter/color_filter_spec.rb966spec/lib/gitlab/cross_project_access/check_info_spec.rb967spec/tasks/gitlab/db/decomposition/connection_status_spec.rb968spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb969spec/lib/sidebars/user_settings/menus/gpg_keys_menu_spec.rb970spec/services/gpg_keys/destroy_service_spec.rb971spec/workers/project_destroy_worker_spec.rb972spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb973spec/rubocop/cop/migration/add_reference_spec.rb974spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb975spec/lib/gitlab/usage_data_counters/merge_request_counter_spec.rb976spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb977spec/models/concerns/stepable_spec.rb978spec/rubocop/cop/rspec/be_success_matcher_spec.rb979spec/lib/gitlab/ci/status/build/erased_spec.rb980spec/services/boards/create_service_spec.rb981spec/serializers/member_serializer_spec.rb982spec/lib/gitlab/kubernetes/node_spec.rb983spec/models/packages/rpm/repository_file_spec.rb984spec/lib/gitlab/graphql/representation/tree_entry_spec.rb985spec/workers/analytics/usage_trends/counter_job_worker_spec.rb986spec/lib/gitlab/auth/saml/identity_linker_spec.rb987spec/lib/gitlab/blame_spec.rb988spec/workers/hashed_storage/migrator_worker_spec.rb989spec/lib/sidebars/projects/super_sidebar_panel_spec.rb990spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb991spec/lib/gitlab/ci/trace/remote_checksum_spec.rb992spec/graphql/resolvers/ci/group_runners_resolver_spec.rb993spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb994spec/models/namespace/aggregation_schedule_spec.rb995spec/services/projects/fetch_statistics_increment_service_spec.rb996spec/presenters/sentry_error_presenter_spec.rb997spec/services/users/update_highest_member_role_service_spec.rb998spec/services/jira_connect/create_asymmetric_jwt_service_spec.rb999spec/serializers/import/provider_repo_serializer_spec.rb1000spec/views/shared/projects/_list.html.haml_spec.rb1001spec/graphql/resolvers/data_transfer/project_data_transfer_resolver_spec.rb1002spec/lib/gitlab/database/shared_model_spec.rb1003spec/workers/ci/create_downstream_pipeline_worker_spec.rb1004spec/lib/gitlab/app_json_logger_spec.rb1005spec/workers/ci/runners/stale_machines_cleanup_cron_worker_spec.rb1006spec/rubocop/cop/sidekiq_api_usage_spec.rb1007spec/lib/constraints/user_url_constrainer_spec.rb1008spec/lib/gitlab/graphql/batch_key_spec.rb1009spec/lib/gitlab/ci/templates/katalon_gitlab_ci_yaml_spec.rb1010spec/workers/group_export_worker_spec.rb1011spec/lib/gitlab/slash_commands/application_help_spec.rb1012spec/services/ide/base_config_service_spec.rb1013spec/lib/gitlab/metrics/exporter/metrics_middleware_spec.rb1014spec/services/work_items/build_service_spec.rb1015spec/rubocop/cop/migration/background_migration_base_class_spec.rb1016spec/rubocop/cop/rspec/avoid_test_prof_spec.rb1017spec/graphql/resolvers/groups_resolver_spec.rb1018spec/serializers/feature_flag_entity_spec.rb1019spec/models/discussion_note_spec.rb1020spec/graphql/resolvers/ci/runner_groups_resolver_spec.rb1021spec/services/bulk_imports/tree_export_service_spec.rb1022spec/rubocop/cop/migration/add_timestamps_spec.rb1023spec/rubocop/cop/migration/remove_column_spec.rb1024spec/tooling/rspec_flaky/flaky_examples_collection_spec.rb1025spec/lib/gitlab/metrics/loose_foreign_keys_slis_spec.rb1026spec/workers/upload_checksum_worker_spec.rb1027spec/workers/ci/build_prepare_worker_spec.rb1028spec/lib/gitlab/graphql/authorize/object_authorization_spec.rb1029spec/lib/gitlab/pages_spec.rb1030spec/graphql/types/grafana_integration_type_spec.rb1031spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb1032spec/lib/gitlab/data_builder/alert_spec.rb1033spec/lib/gitlab/ci/config/entry/stage_spec.rb1034spec/workers/concerns/waitable_worker_spec.rb1035spec/models/work_items/hierarchy_restriction_spec.rb1036spec/workers/concerns/cronjob_queue_spec.rb1037spec/graphql/types/packages/composer/json_type_spec.rb1038spec/helpers/projects/google_cloud/cloudsql_helper_spec.rb1039spec/services/incident_management/issuable_escalation_statuses/create_service_spec.rb1040spec/models/concerns/partitioned_table_spec.rb1041spec/lib/gitlab/global_id/deprecations_spec.rb1042spec/lib/gitlab/ci/config/external/mapper/filter_spec.rb1043spec/lib/gitlab/memory/reports/heap_dump_spec.rb1044spec/graphql/types/access_level_enum_spec.rb1045spec/lib/gitlab/kubernetes/service_account_spec.rb1046spec/services/ci/runners/stale_machines_cleanup_service_spec.rb1047spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb1048spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb1049spec/lib/gitlab/pages/settings_spec.rb1050spec/lib/gitlab/auth/u2f_webauthn_converter_spec.rb1051spec/graphql/types/tree/submodule_type_spec.rb1052spec/lib/gitlab/external_authorization/logger_spec.rb1053spec/lib/gitlab/github_import/importer/lfs_object_importer_spec.rb1054spec/components/pajamas/component_spec.rb1055spec/lib/gitlab/phabricator_import/representation/task_spec.rb1056spec/graphql/types/customer_relations/organization_state_counts_type_spec.rb1057spec/lib/api/validations/validators/limit_spec.rb1058spec/graphql/types/issue_state_enum_spec.rb1059spec/helpers/export_helper_spec.rb1060spec/lib/gitlab/sql/glob_spec.rb1061spec/serializers/serverless/domain_entity_spec.rb1062spec/lib/gitlab/app_logger_spec.rb1063spec/lib/gitlab/diff/file_collection_sorter_spec.rb1064spec/workers/google_cloud/fetch_google_ip_list_worker_spec.rb1065spec/lib/gitlab/grape_logging/loggers/token_logger_spec.rb1066spec/rubocop/cop/gitlab/bulk_insert_spec.rb1067spec/lib/gitlab/database/schema_validation/validators/base_validator_spec.rb1068spec/lib/banzai/pipeline/service_desk_email_pipeline_spec.rb1069spec/lib/gitlab/patch/uri_spec.rb1070spec/policies/concerns/policy_actor_spec.rb1071spec/lib/api/entities/nuget/dependency_group_spec.rb1072spec/graphql/types/issue_type_enum_spec.rb1073spec/lib/gitlab/default_branch_spec.rb1074spec/graphql/types/project_member_relation_enum_spec.rb1075spec/sidekiq/cron/job_gem_dependency_spec.rb1076spec/serializers/namespace_basic_entity_spec.rb1077spec/graphql/types/packages/package_dependency_type_enum_spec.rb1078spec/components/pajamas/concerns/checkbox_radio_options_spec.rb1079spec/graphql/types/ci/group_variable_connection_type_spec.rb1080Filter specs:1081Running specs:1082Running all node tests without filter1083spec/lib/gitlab/git_access_spec.rb1084spec/services/quick_actions/interpret_service_spec.rb1085spec/services/todo_service_spec.rb1086spec/services/issues/close_service_spec.rb1087spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb1088spec/lib/gitlab/background_migration/job_coordinator_spec.rb1089spec/services/issues/create_service_spec.rb1090spec/finders/packages/group_packages_finder_spec.rb1091spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb1092spec/lib/gitlab/utils/strong_memoize_spec.rb1093spec/models/project_statistics_spec.rb1094spec/lib/gitlab/git/blob_spec.rb1095spec/models/integrations/bamboo_spec.rb1096spec/lib/gitlab/checks/branch_check_spec.rb1097spec/services/members/invite_service_spec.rb1098spec/lib/gitlab/background_migration/backfill_work_item_type_id_for_issues_spec.rb1099spec/models/ci/processable_spec.rb1100spec/helpers/application_helper_spec.rb1101spec/lib/gitlab/relative_positioning/item_context_spec.rb1102spec/policies/packages/policies/project_policy_spec.rb1103spec/models/notification_recipient_spec.rb1104spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb1105spec/finders/environments/environment_names_finder_spec.rb1106spec/services/push_event_payload_service_spec.rb1107spec/services/bulk_create_integration_service_spec.rb1108spec/services/clusters/update_service_spec.rb1109spec/models/concerns/routable_spec.rb1110spec/models/packages/debian/group_distribution_spec.rb1111spec/lib/gitlab/ci/config/entry/bridge_spec.rb1112spec/services/issue_links/list_service_spec.rb1113spec/models/appearance_spec.rb1114spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb1115spec/rubocop/cop/rspec/factory_bot/strategy_in_callback_spec.rb1116spec/lib/banzai/filter/audio_link_filter_spec.rb1117spec/models/upload_spec.rb1118spec/finders/clusters/kubernetes_namespace_finder_spec.rb1119spec/lib/gitlab/sql/pattern_spec.rb1120spec/tasks/gitlab/cleanup_rake_spec.rb1121spec/serializers/project_note_entity_spec.rb1122spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb1123spec/services/google_cloud/generate_pipeline_service_spec.rb1124spec/views/notify/pipeline_success_email.text.erb_spec.rb1125spec/lib/gitlab/ci/ansi2html_spec.rb1126spec/services/labels/create_service_spec.rb1127spec/lib/gitlab/middleware/same_site_cookies_spec.rb1128spec/models/sentry_issue_spec.rb1129spec/workers/tasks_to_be_done/create_worker_spec.rb1130spec/lib/gitlab/ci/build/step_spec.rb1131spec/models/analytics/cycle_analytics/aggregation_spec.rb1132spec/models/error_tracking/error_spec.rb1133spec/services/boards/lists/destroy_service_spec.rb1134spec/services/ci/runners/register_runner_service_spec.rb1135spec/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer_spec.rb1136spec/lib/gitlab/conflict/file_collection_spec.rb1137spec/services/dependency_proxy/image_ttl_group_policies/update_service_spec.rb1138spec/lib/gitlab/import_export/group/relation_factory_spec.rb1139spec/services/projects/move_project_members_service_spec.rb1140spec/tasks/gitlab/snippets_rake_spec.rb1141spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb1142spec/lib/sbom/package_url/argument_validator_spec.rb1143spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb1144spec/lib/gitlab/ci/variables/collection/sort_spec.rb1145spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb1146spec/models/projects/topic_spec.rb1147spec/models/integrations/campfire_spec.rb1148spec/services/users/update_todo_count_cache_service_spec.rb1149spec/lib/gitlab/database/query_analyzers/restrict_allowed_schemas_spec.rb1150spec/services/wiki_pages/create_service_spec.rb1151spec/lib/gitlab/api_authentication/token_resolver_spec.rb1152spec/tooling/graphql/docs/renderer_spec.rb1153spec/lib/gitlab/kubernetes/rollout_status_spec.rb1154spec/lib/gitlab/metrics/sli_spec.rb1155spec/models/concerns/subquery_spec.rb1156spec/finders/namespaces/projects_finder_spec.rb1157spec/graphql/mutations/alert_management/update_alert_status_spec.rb1158spec/tasks/gitlab/container_registry_rake_spec.rb1159spec/lib/gitlab/pagination/keyset/iterator_spec.rb1160spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb1161spec/models/jira_connect/public_key_spec.rb1162spec/graphql/resolvers/snippets_resolver_spec.rb1163spec/services/packages/update_package_file_service_spec.rb1164spec/lib/gitlab/omniauth_initializer_spec.rb1165spec/models/ci/build_trace_chunks/database_spec.rb1166spec/services/ci/job_artifacts/destroy_associations_service_spec.rb1167spec/lib/sidebars/user_profile/menus/contributed_projects_menu_spec.rb1168spec/models/projects/forks/details_spec.rb1169spec/services/import_export_clean_up_service_spec.rb1170spec/models/concerns/cacheable_attributes_spec.rb1171spec/graphql/resolvers/ci/runner_projects_resolver_spec.rb1172spec/lib/gitlab/database/load_balancing/configuration_spec.rb1173spec/workers/issues/close_worker_spec.rb1174spec/policies/clusters/instance_policy_spec.rb1175spec/graphql/resolvers/blobs_resolver_spec.rb1176spec/tasks/gitlab/lfs/check_rake_spec.rb1177spec/initializers/database_config_spec.rb1178spec/lib/atlassian/jira_connect/serializers/repository_entity_spec.rb1179spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb1180spec/lib/gitlab/logger_spec.rb1181spec/services/metrics/dashboard/transient_embed_service_spec.rb1182spec/models/ci/deleted_object_spec.rb1183spec/lib/gitlab/ci/yaml_processor/feature_flags_spec.rb1184spec/validators/system_hook_url_validator_spec.rb1185spec/lib/gitlab/ci/variables/builder/group_spec.rb1186spec/lib/gitlab/database/partitioning_migration_helpers/index_helpers_spec.rb1187spec/services/protected_branches/api_service_spec.rb1188spec/services/dependency_proxy/head_manifest_service_spec.rb1189spec/workers/projects/delete_branch_worker_spec.rb1190spec/services/boards/issues/create_service_spec.rb1191spec/lib/gitlab/terraform_registry_token_spec.rb1192spec/lib/gitlab/phabricator_import/issues/importer_spec.rb1193spec/helpers/notifications_helper_spec.rb1194spec/lib/gitlab/database/partitioning_spec.rb1195spec/lib/sidebars/projects/menus/monitor_menu_spec.rb1196spec/models/integrations/chat_message/push_message_spec.rb1197spec/lib/bitbucket/representation/issue_spec.rb1198spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb1199spec/lib/banzai/filter/color_filter_spec.rb1200spec/lib/gitlab/cross_project_access/check_info_spec.rb1201spec/tasks/gitlab/db/decomposition/connection_status_spec.rb1202spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb1203spec/lib/sidebars/user_settings/menus/gpg_keys_menu_spec.rb1204spec/services/gpg_keys/destroy_service_spec.rb1205spec/workers/project_destroy_worker_spec.rb1206spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb1207spec/rubocop/cop/migration/add_reference_spec.rb1208spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb1209spec/lib/gitlab/usage_data_counters/merge_request_counter_spec.rb1210spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb1211spec/models/concerns/stepable_spec.rb1212spec/rubocop/cop/rspec/be_success_matcher_spec.rb1213spec/lib/gitlab/ci/status/build/erased_spec.rb1214spec/services/boards/create_service_spec.rb1215spec/serializers/member_serializer_spec.rb1216spec/lib/gitlab/kubernetes/node_spec.rb1217spec/models/packages/rpm/repository_file_spec.rb1218spec/lib/gitlab/graphql/representation/tree_entry_spec.rb1219spec/workers/analytics/usage_trends/counter_job_worker_spec.rb1220spec/lib/gitlab/auth/saml/identity_linker_spec.rb1221spec/lib/gitlab/blame_spec.rb1222spec/workers/hashed_storage/migrator_worker_spec.rb1223spec/lib/sidebars/projects/super_sidebar_panel_spec.rb1224spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb1225spec/lib/gitlab/ci/trace/remote_checksum_spec.rb1226spec/graphql/resolvers/ci/group_runners_resolver_spec.rb1227spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb1228spec/models/namespace/aggregation_schedule_spec.rb1229spec/services/projects/fetch_statistics_increment_service_spec.rb1230spec/presenters/sentry_error_presenter_spec.rb1231spec/services/users/update_highest_member_role_service_spec.rb1232spec/services/jira_connect/create_asymmetric_jwt_service_spec.rb1233spec/serializers/import/provider_repo_serializer_spec.rb1234spec/views/shared/projects/_list.html.haml_spec.rb1235spec/graphql/resolvers/data_transfer/project_data_transfer_resolver_spec.rb1236spec/lib/gitlab/database/shared_model_spec.rb1237spec/workers/ci/create_downstream_pipeline_worker_spec.rb1238spec/lib/gitlab/app_json_logger_spec.rb1239spec/workers/ci/runners/stale_machines_cleanup_cron_worker_spec.rb1240spec/rubocop/cop/sidekiq_api_usage_spec.rb1241spec/lib/constraints/user_url_constrainer_spec.rb1242spec/lib/gitlab/graphql/batch_key_spec.rb1243spec/lib/gitlab/ci/templates/katalon_gitlab_ci_yaml_spec.rb1244spec/workers/group_export_worker_spec.rb1245spec/lib/gitlab/slash_commands/application_help_spec.rb1246spec/services/ide/base_config_service_spec.rb1247spec/lib/gitlab/metrics/exporter/metrics_middleware_spec.rb1248spec/services/work_items/build_service_spec.rb1249spec/rubocop/cop/migration/background_migration_base_class_spec.rb1250spec/rubocop/cop/rspec/avoid_test_prof_spec.rb1251spec/graphql/resolvers/groups_resolver_spec.rb1252spec/serializers/feature_flag_entity_spec.rb1253spec/models/discussion_note_spec.rb1254spec/graphql/resolvers/ci/runner_groups_resolver_spec.rb1255spec/services/bulk_imports/tree_export_service_spec.rb1256spec/rubocop/cop/migration/add_timestamps_spec.rb1257spec/rubocop/cop/migration/remove_column_spec.rb1258spec/tooling/rspec_flaky/flaky_examples_collection_spec.rb1259spec/lib/gitlab/metrics/loose_foreign_keys_slis_spec.rb1260spec/workers/upload_checksum_worker_spec.rb1261spec/workers/ci/build_prepare_worker_spec.rb1262spec/lib/gitlab/graphql/authorize/object_authorization_spec.rb1263spec/lib/gitlab/pages_spec.rb1264spec/graphql/types/grafana_integration_type_spec.rb1265spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb1266spec/lib/gitlab/data_builder/alert_spec.rb1267spec/lib/gitlab/ci/config/entry/stage_spec.rb1268spec/workers/concerns/waitable_worker_spec.rb1269spec/models/work_items/hierarchy_restriction_spec.rb1270spec/workers/concerns/cronjob_queue_spec.rb1271spec/graphql/types/packages/composer/json_type_spec.rb1272spec/helpers/projects/google_cloud/cloudsql_helper_spec.rb1273spec/services/incident_management/issuable_escalation_statuses/create_service_spec.rb1274spec/models/concerns/partitioned_table_spec.rb1275spec/lib/gitlab/global_id/deprecations_spec.rb1276spec/lib/gitlab/ci/config/external/mapper/filter_spec.rb1277spec/lib/gitlab/memory/reports/heap_dump_spec.rb1278spec/graphql/types/access_level_enum_spec.rb1279spec/lib/gitlab/kubernetes/service_account_spec.rb1280spec/services/ci/runners/stale_machines_cleanup_service_spec.rb1281spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb1282spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb1283spec/lib/gitlab/pages/settings_spec.rb1284spec/lib/gitlab/auth/u2f_webauthn_converter_spec.rb1285spec/graphql/types/tree/submodule_type_spec.rb1286spec/lib/gitlab/external_authorization/logger_spec.rb1287spec/lib/gitlab/github_import/importer/lfs_object_importer_spec.rb1288spec/components/pajamas/component_spec.rb1289spec/lib/gitlab/phabricator_import/representation/task_spec.rb1290spec/graphql/types/customer_relations/organization_state_counts_type_spec.rb1291spec/lib/api/validations/validators/limit_spec.rb1292spec/graphql/types/issue_state_enum_spec.rb1293spec/helpers/export_helper_spec.rb1294spec/lib/gitlab/sql/glob_spec.rb1295spec/serializers/serverless/domain_entity_spec.rb1296spec/lib/gitlab/app_logger_spec.rb1297spec/lib/gitlab/diff/file_collection_sorter_spec.rb1298spec/workers/google_cloud/fetch_google_ip_list_worker_spec.rb1299spec/lib/gitlab/grape_logging/loggers/token_logger_spec.rb1300spec/rubocop/cop/gitlab/bulk_insert_spec.rb1301spec/lib/gitlab/database/schema_validation/validators/base_validator_spec.rb1302spec/lib/banzai/pipeline/service_desk_email_pipeline_spec.rb1303spec/lib/gitlab/patch/uri_spec.rb1304spec/policies/concerns/policy_actor_spec.rb1305spec/lib/api/entities/nuget/dependency_group_spec.rb1306spec/graphql/types/issue_type_enum_spec.rb1307spec/lib/gitlab/default_branch_spec.rb1308spec/graphql/types/project_member_relation_enum_spec.rb1309spec/sidekiq/cron/job_gem_dependency_spec.rb1310spec/serializers/namespace_basic_entity_spec.rb1311spec/graphql/types/packages/package_dependency_type_enum_spec.rb1312spec/components/pajamas/concerns/checkbox_radio_options_spec.rb1313spec/graphql/types/ci/group_variable_connection_type_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/lib/gitlab/git_access_spec.rb spec/services/quick_actions/interpret_service_spec.rb spec/services/todo_service_spec.rb spec/services/issues/close_service_spec.rb spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb spec/lib/gitlab/background_migration/job_coordinator_spec.rb spec/services/issues/create_service_spec.rb spec/finders/packages/group_packages_finder_spec.rb spec/lib/gitlab/database/migrations/background_migration_helpers_spec.rb spec/lib/gitlab/utils/strong_memoize_spec.rb spec/models/project_statistics_spec.rb spec/lib/gitlab/git/blob_spec.rb spec/models/integrations/bamboo_spec.rb spec/lib/gitlab/checks/branch_check_spec.rb spec/services/members/invite_service_spec.rb spec/lib/gitlab/background_migration/backfill_work_item_type_id_for_issues_spec.rb spec/models/ci/processable_spec.rb spec/helpers/application_helper_spec.rb spec/lib/gitlab/relative_positioning/item_context_spec.rb spec/policies/packages/policies/project_policy_spec.rb spec/models/notification_recipient_spec.rb spec/lib/gitlab/ci/config/entry/rules/rule_spec.rb spec/finders/environments/environment_names_finder_spec.rb spec/services/push_event_payload_service_spec.rb spec/services/bulk_create_integration_service_spec.rb spec/services/clusters/update_service_spec.rb spec/models/concerns/routable_spec.rb spec/models/packages/debian/group_distribution_spec.rb spec/lib/gitlab/ci/config/entry/bridge_spec.rb spec/services/issue_links/list_service_spec.rb spec/models/appearance_spec.rb spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb spec/rubocop/cop/rspec/factory_bot/strategy_in_callback_spec.rb spec/lib/banzai/filter/audio_link_filter_spec.rb spec/models/upload_spec.rb spec/finders/clusters/kubernetes_namespace_finder_spec.rb spec/lib/gitlab/sql/pattern_spec.rb spec/tasks/gitlab/cleanup_rake_spec.rb spec/serializers/project_note_entity_spec.rb spec/tasks/gitlab/seed/runner_fleet_rake_spec.rb spec/services/google_cloud/generate_pipeline_service_spec.rb spec/views/notify/pipeline_success_email.text.erb_spec.rb spec/lib/gitlab/ci/ansi2html_spec.rb spec/services/labels/create_service_spec.rb spec/lib/gitlab/middleware/same_site_cookies_spec.rb spec/models/sentry_issue_spec.rb spec/workers/tasks_to_be_done/create_worker_spec.rb spec/lib/gitlab/ci/build/step_spec.rb spec/models/analytics/cycle_analytics/aggregation_spec.rb spec/models/error_tracking/error_spec.rb spec/services/boards/lists/destroy_service_spec.rb spec/services/ci/runners/register_runner_service_spec.rb spec/lib/gitlab/github_import/importer/single_endpoint_issue_events_importer_spec.rb spec/lib/gitlab/conflict/file_collection_spec.rb spec/services/dependency_proxy/image_ttl_group_policies/update_service_spec.rb spec/lib/gitlab/import_export/group/relation_factory_spec.rb spec/services/projects/move_project_members_service_spec.rb spec/tasks/gitlab/snippets_rake_spec.rb spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb spec/lib/sbom/package_url/argument_validator_spec.rb spec/lib/gitlab/usage/metrics/names_suggestions/generator_spec.rb spec/lib/gitlab/ci/variables/collection/sort_spec.rb spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb spec/models/projects/topic_spec.rb spec/models/integrations/campfire_spec.rb spec/services/users/update_todo_count_cache_service_spec.rb spec/lib/gitlab/database/query_analyzers/restrict_allowed_schemas_spec.rb spec/services/wiki_pages/create_service_spec.rb spec/lib/gitlab/api_authentication/token_resolver_spec.rb spec/tooling/graphql/docs/renderer_spec.rb spec/lib/gitlab/kubernetes/rollout_status_spec.rb spec/lib/gitlab/metrics/sli_spec.rb spec/models/concerns/subquery_spec.rb spec/finders/namespaces/projects_finder_spec.rb spec/graphql/mutations/alert_management/update_alert_status_spec.rb spec/tasks/gitlab/container_registry_rake_spec.rb spec/lib/gitlab/pagination/keyset/iterator_spec.rb spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb spec/models/jira_connect/public_key_spec.rb spec/graphql/resolvers/snippets_resolver_spec.rb spec/services/packages/update_package_file_service_spec.rb spec/lib/gitlab/omniauth_initializer_spec.rb spec/models/ci/build_trace_chunks/database_spec.rb spec/services/ci/job_artifacts/destroy_associations_service_spec.rb spec/lib/sidebars/user_profile/menus/contributed_projects_menu_spec.rb spec/models/projects/forks/details_spec.rb spec/services/import_export_clean_up_service_spec.rb spec/models/concerns/cacheable_attributes_spec.rb spec/graphql/resolvers/ci/runner_projects_resolver_spec.rb spec/lib/gitlab/database/load_balancing/configuration_spec.rb spec/workers/issues/close_worker_spec.rb spec/policies/clusters/instance_policy_spec.rb spec/graphql/resolvers/blobs_resolver_spec.rb spec/tasks/gitlab/lfs/check_rake_spec.rb spec/initializers/database_config_spec.rb spec/lib/atlassian/jira_connect/serializers/repository_entity_spec.rb spec/lib/gitlab/cleanup/orphan_job_artifact_files_batch_spec.rb spec/lib/gitlab/logger_spec.rb spec/services/metrics/dashboard/transient_embed_service_spec.rb spec/models/ci/deleted_object_spec.rb spec/lib/gitlab/ci/yaml_processor/feature_flags_spec.rb spec/validators/system_hook_url_validator_spec.rb spec/lib/gitlab/ci/variables/builder/group_spec.rb spec/lib/gitlab/database/partitioning_migration_helpers/index_helpers_spec.rb spec/services/protected_branches/api_service_spec.rb spec/services/dependency_proxy/head_manifest_service_spec.rb spec/workers/projects/delete_branch_worker_spec.rb spec/services/boards/issues/create_service_spec.rb spec/lib/gitlab/terraform_registry_token_spec.rb spec/lib/gitlab/phabricator_import/issues/importer_spec.rb spec/helpers/notifications_helper_spec.rb spec/lib/gitlab/database/partitioning_spec.rb spec/lib/sidebars/projects/menus/monitor_menu_spec.rb spec/models/integrations/chat_message/push_message_spec.rb spec/lib/bitbucket/representation/issue_spec.rb spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb spec/lib/banzai/filter/color_filter_spec.rb spec/lib/gitlab/cross_project_access/check_info_spec.rb spec/tasks/gitlab/db/decomposition/connection_status_spec.rb spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb spec/lib/sidebars/user_settings/menus/gpg_keys_menu_spec.rb spec/services/gpg_keys/destroy_service_spec.rb spec/workers/project_destroy_worker_spec.rb spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb spec/rubocop/cop/migration/add_reference_spec.rb spec/graphql/resolvers/projects/grafana_integration_resolver_spec.rb spec/lib/gitlab/usage_data_counters/merge_request_counter_spec.rb spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb spec/models/concerns/stepable_spec.rb spec/rubocop/cop/rspec/be_success_matcher_spec.rb spec/lib/gitlab/ci/status/build/erased_spec.rb spec/services/boards/create_service_spec.rb spec/serializers/member_serializer_spec.rb spec/lib/gitlab/kubernetes/node_spec.rb spec/models/packages/rpm/repository_file_spec.rb spec/lib/gitlab/graphql/representation/tree_entry_spec.rb spec/workers/analytics/usage_trends/counter_job_worker_spec.rb spec/lib/gitlab/auth/saml/identity_linker_spec.rb spec/lib/gitlab/blame_spec.rb spec/workers/hashed_storage/migrator_worker_spec.rb spec/lib/sidebars/projects/super_sidebar_panel_spec.rb spec/lib/bulk_imports/common/transformers/user_reference_transformer_spec.rb spec/lib/gitlab/ci/trace/remote_checksum_spec.rb spec/graphql/resolvers/ci/group_runners_resolver_spec.rb spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb spec/models/namespace/aggregation_schedule_spec.rb spec/services/projects/fetch_statistics_increment_service_spec.rb spec/presenters/sentry_error_presenter_spec.rb spec/services/users/update_highest_member_role_service_spec.rb spec/services/jira_connect/create_asymmetric_jwt_service_spec.rb spec/serializers/import/provider_repo_serializer_spec.rb spec/views/shared/projects/_list.html.haml_spec.rb spec/graphql/resolvers/data_transfer/project_data_transfer_resolver_spec.rb spec/lib/gitlab/database/shared_model_spec.rb spec/workers/ci/create_downstream_pipeline_worker_spec.rb spec/lib/gitlab/app_json_logger_spec.rb spec/workers/ci/runners/stale_machines_cleanup_cron_worker_spec.rb spec/rubocop/cop/sidekiq_api_usage_spec.rb spec/lib/constraints/user_url_constrainer_spec.rb spec/lib/gitlab/graphql/batch_key_spec.rb spec/lib/gitlab/ci/templates/katalon_gitlab_ci_yaml_spec.rb spec/workers/group_export_worker_spec.rb spec/lib/gitlab/slash_commands/application_help_spec.rb spec/services/ide/base_config_service_spec.rb spec/lib/gitlab/metrics/exporter/metrics_middleware_spec.rb spec/services/work_items/build_service_spec.rb spec/rubocop/cop/migration/background_migration_base_class_spec.rb spec/rubocop/cop/rspec/avoid_test_prof_spec.rb spec/graphql/resolvers/groups_resolver_spec.rb spec/serializers/feature_flag_entity_spec.rb spec/models/discussion_note_spec.rb spec/graphql/resolvers/ci/runner_groups_resolver_spec.rb spec/services/bulk_imports/tree_export_service_spec.rb spec/rubocop/cop/migration/add_timestamps_spec.rb spec/rubocop/cop/migration/remove_column_spec.rb spec/tooling/rspec_flaky/flaky_examples_collection_spec.rb spec/lib/gitlab/metrics/loose_foreign_keys_slis_spec.rb spec/workers/upload_checksum_worker_spec.rb spec/workers/ci/build_prepare_worker_spec.rb spec/lib/gitlab/graphql/authorize/object_authorization_spec.rb spec/lib/gitlab/pages_spec.rb spec/graphql/types/grafana_integration_type_spec.rb spec/lib/gitlab/graphql/loaders/batch_lfs_oid_loader_spec.rb spec/lib/gitlab/data_builder/alert_spec.rb spec/lib/gitlab/ci/config/entry/stage_spec.rb spec/workers/concerns/waitable_worker_spec.rb spec/models/work_items/hierarchy_restriction_spec.rb spec/workers/concerns/cronjob_queue_spec.rb spec/graphql/types/packages/composer/json_type_spec.rb spec/helpers/projects/google_cloud/cloudsql_helper_spec.rb spec/services/incident_management/issuable_escalation_statuses/create_service_spec.rb spec/models/concerns/partitioned_table_spec.rb spec/lib/gitlab/global_id/deprecations_spec.rb spec/lib/gitlab/ci/config/external/mapper/filter_spec.rb spec/lib/gitlab/memory/reports/heap_dump_spec.rb spec/graphql/types/access_level_enum_spec.rb spec/lib/gitlab/kubernetes/service_account_spec.rb spec/services/ci/runners/stale_machines_cleanup_service_spec.rb spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb spec/lib/gitlab/dependency_linker/go_mod_linker_spec.rb spec/lib/gitlab/pages/settings_spec.rb spec/lib/gitlab/auth/u2f_webauthn_converter_spec.rb spec/graphql/types/tree/submodule_type_spec.rb spec/lib/gitlab/external_authorization/logger_spec.rb spec/lib/gitlab/github_import/importer/lfs_object_importer_spec.rb spec/components/pajamas/component_spec.rb spec/lib/gitlab/phabricator_import/representation/task_spec.rb spec/graphql/types/customer_relations/organization_state_counts_type_spec.rb spec/lib/api/validations/validators/limit_spec.rb spec/graphql/types/issue_state_enum_spec.rb spec/helpers/export_helper_spec.rb spec/lib/gitlab/sql/glob_spec.rb spec/serializers/serverless/domain_entity_spec.rb spec/lib/gitlab/app_logger_spec.rb spec/lib/gitlab/diff/file_collection_sorter_spec.rb spec/workers/google_cloud/fetch_google_ip_list_worker_spec.rb spec/lib/gitlab/grape_logging/loggers/token_logger_spec.rb spec/rubocop/cop/gitlab/bulk_insert_spec.rb spec/lib/gitlab/database/schema_validation/validators/base_validator_spec.rb spec/lib/banzai/pipeline/service_desk_email_pipeline_spec.rb spec/lib/gitlab/patch/uri_spec.rb spec/policies/concerns/policy_actor_spec.rb spec/lib/api/entities/nuget/dependency_group_spec.rb spec/graphql/types/issue_type_enum_spec.rb spec/lib/gitlab/default_branch_spec.rb spec/graphql/types/project_member_relation_enum_spec.rb spec/sidekiq/cron/job_gem_dependency_spec.rb spec/serializers/namespace_basic_entity_spec.rb spec/graphql/types/packages/package_dependency_type_enum_spec.rb spec/components/pajamas/concerns/checkbox_radio_options_spec.rb spec/graphql/types/ci/group_variable_connection_type_spec.rbRun options: exclude {:quarantine=>true, :level=>"background_migration"}1317Test environment set up in 0.478335924 seconds1318Gitlab::GitAccess1319 #check with single protocols allowed1320 ssh disabled1321 blocks ssh git push and pull1322 http disabled1323 blocks http push and pull1324 when request is made from CI1325 doesn't block http pull1326 when legacy CI credentials are used1327 doesn't block http pull1328 #check_project_accessibility!1329 when the project exists1330 when actor exists1331 when actor is a DeployKey1332 when the DeployKey has access to the project1333 allows push and pull access1334 when the Deploykey does not have access to the project1335 blocks push and pull with "not found"1336 when the the deploy key is restricted with external_authorization1337 blocks push and pull with "not found"1338 when actor is a User1339 when the User can read the project1340 allows push and pull access1341 when the User cannot read the project1342 blocks push and pull with "not found"1343 when actor is :ci1344 disallows pull access1345 does not block pushes with "not found"1346 when actor is DeployToken1347 when DeployToken is active and belongs to project1348 allows pull access1349 blocks the push1350 when DeployToken does not belong to project1351 blocks pull access1352 blocks the push1353 when the the deploy token is restricted with external_authorization1354 blocks pull access1355 blocks the push1356 when actor is nil1357 when guests can read the project1358 allows pull access1359 does not block pushes with "not found"1360 when guests cannot read the project1361 blocks pulls with "not found"1362 blocks pushes with "not found"1363 when the project does not exist1364 blocks push and pull with "not found"1365 behaves like #check with a key that is not valid1366 key is expired1367 does not allow expired keys1368 key is too small1369 does not allow keys which are too small1370 key type is not allowed1371 does not allow keys which are too small1372 behaves like #check with a key that is not valid1373 key is expired1374 does not allow expired keys1375 key is too small1376 does not allow keys which are too small1377 key type is not allowed1378 does not allow keys which are too small1379 #add_project_moved_message!1380 when a redirect was not followed to find the project1381 allows push and pull access1382 with a redirect and ssh protocol1383 behaves like check_project_moved1384 enqueues a redirected message for pushing1385 allows push and pull access1386 with a redirect and http protocol1387 behaves like check_project_moved1388 enqueues a redirected message for pushing1389 allows push and pull access1390 #check_authentication_abilities!1391 when download1392 raises unauthorized with download error1393 when authentication abilities include download code1394 does not raise any errors1395 when authentication abilities include build download code1396 does not raise any errors1397 when upload1398 raises unauthorized with push error1399 when authentication abilities include push code1400 does not raise any errors1401 #check_command_disabled!1402 over http1403 when the git-upload-pack command is disabled in config1404 when calling git-upload-pack1405 is expected to raise Gitlab::GitAccess::ForbiddenError with "Pulling over HTTP is not allowed."1406 when calling git-receive-pack1407 is expected not to raise Exception1408 when the git-receive-pack command is disabled in config1409 when calling git-receive-pack1410 is expected to raise Gitlab::GitAccess::ForbiddenError with "Pushing over HTTP is not allowed."1411 when calling git-upload-pack1412 is expected not to raise Exception1413 #check_db_accessibility!1414 when in a read-only GitLab instance1415 is expected to raise Gitlab::GitAccess::ForbiddenError with "You can't push code to a read-only GitLab instance."1416 #check_download_access!1417 allows maintainers to pull1418 disallows guests to pull1419 disallows blocked users to pull1420 disallows users that are blocked pending approval to pull1421 disallows deactivated users to pull1422 disallows users with expired password to pull1423 with an ldap user1424 allows ldap users with expired password to pull1425 when the project repository does not exist1426 returns not found1427 without access to project1428 pull code1429 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1430 when project is public1431 when repository is enabled1432 give access to download code1433 when repository is disabled1434 does not give access to download code1435 deploy key permissions1436 pull code1437 when project is public1438 when deploy key exists in the project1439 when the repository is public1440 is expected not to raise Exception1441 when the repository is private1442 is expected not to raise Exception1443 when the repository is disabled1444 is expected to raise Exception with "You are not allowed to download code from this project."1445 when deploy key does not exist in the project1446 when the repository is public1447 is expected not to raise Exception1448 when the repository is private1449 is expected to raise Exception with "You are not allowed to download code from this project."1450 when the repository is disabled1451 is expected to raise Exception with "You are not allowed to download code from this project."1452 when project is internal1453 when deploy key exists in the project1454 when the repository is public1455 is expected not to raise Exception1456 when the repository is private1457 is expected not to raise Exception1458 when the repository is disabled1459 is expected to raise Exception with "You are not allowed to download code from this project."1460 when deploy key does not exist in the project1461 when the repository is public1462 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1463 when the repository is private1464 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1465 when the repository is disabled1466 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1467 when project is private1468 when deploy key exists in the project1469 when the repository is private1470 is expected not to raise Exception1471 when the repository is disabled1472 is expected to raise Exception with "You are not allowed to download code from this project."1473 when deploy key does not exist in the project1474 when the repository is private1475 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1476 when the repository is disabled1477 is expected to raise Exception with "The project you were looking for could not be found or you don't have permission to view it."1478 deploy token permissions1479 pull code1480 when project is authorized1481 is expected not to raise Exception1482 when unauthorized1483 from public project1484 is expected not to raise Exception1485 from internal project1486 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1487 from private project1488 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1489 build authentication_abilities permissions1490 owner1491 pull code1492 is expected not to raise Exception1493 reporter user1494 pull code1495 is expected not to raise Exception1496 admin user1497 when admin mode enabled1498 when member of the project1499 pull code1500 is expected not to raise Exception1501 when is not member of the project1502 pull code1503 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to download code from this project."1504 when admin mode disabled1505 when member of the project1506 pull code1507 is expected not to raise Exception1508 when is not member of the project1509 pull code1510 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1511 generic CI (build without a user)1512 is expected to raise Gitlab::GitAccess::NotFoundError1513 check LFS integrity1514 when LFS is not enabled1515 does not run LFSIntegrity check1516 when LFS is enabled1517 checks LFS integrity only for first change1518 #check_push_access!1520 has the correct permissions for admin_with_admin_modes1521 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1522 has the correct permissions for maintainers1523 has the correct permissions for developers1524 has the correct permissions for reporters1525 has the correct permissions for guests1526 when developers are allowed to push into the exact protected branch1527 has the correct permissions for admin_with_admin_modes1528 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1529 has the correct permissions for maintainers1530 has the correct permissions for developers1531 has the correct permissions for reporters1532 has the correct permissions for guests1533 developers are allowed to merge into the exact protected branch1534 when a merge request exists for the given source/target branch1535 when the merge request is in progress1536 has the correct permissions for admin_with_admin_modes1537 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1538 has the correct permissions for maintainers1539 has the correct permissions for developers1540 has the correct permissions for reporters1541 has the correct permissions for guests1542 when the merge request is not in progress1543 has the correct permissions for admin_with_admin_modes1544 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1545 has the correct permissions for maintainers1546 has the correct permissions for developers1547 has the correct permissions for reporters1548 has the correct permissions for guests1549 when a merge request does not exist for the given source/target branch1550 has the correct permissions for admin_with_admin_modes1551 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1552 has the correct permissions for maintainers1553 has the correct permissions for developers1554 has the correct permissions for reporters1555 has the correct permissions for guests1556 when developers are allowed to push and merge into the exact protected branch1557 has the correct permissions for admin_with_admin_modes1558 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1559 has the correct permissions for maintainers1560 has the correct permissions for developers1561 has the correct permissions for reporters1562 has the correct permissions for guests1563 when no one is allowed to push to the feature protected branch1564 has the correct permissions for admin_with_admin_modes1565 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1566 has the correct permissions for maintainers1567 has the correct permissions for developers1568 has the correct permissions for reporters1569 has the correct permissions for guests1571 has the correct permissions for admin_with_admin_modes1572 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1573 has the correct permissions for maintainers1574 has the correct permissions for developers1575 has the correct permissions for reporters1576 has the correct permissions for guests1577 when developers are allowed to push into the wildcard protected branch1578 has the correct permissions for admin_with_admin_modes1579 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1580 has the correct permissions for maintainers1581 has the correct permissions for developers1582 has the correct permissions for reporters1583 has the correct permissions for guests1584 developers are allowed to merge into the wildcard protected branch1585 when a merge request exists for the given source/target branch1586 when the merge request is in progress1587 has the correct permissions for admin_with_admin_modes1588 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1589 has the correct permissions for maintainers1590 has the correct permissions for developers1591 has the correct permissions for reporters1592 has the correct permissions for guests1593 when the merge request is not in progress1594 has the correct permissions for admin_with_admin_modes1595 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1596 has the correct permissions for maintainers1597 has the correct permissions for developers1598 has the correct permissions for reporters1599 has the correct permissions for guests1600 when a merge request does not exist for the given source/target branch1601 has the correct permissions for admin_with_admin_modes1602 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1603 has the correct permissions for maintainers1604 has the correct permissions for developers1605 has the correct permissions for reporters1606 has the correct permissions for guests1607 when developers are allowed to push and merge into the wildcard protected branch1608 has the correct permissions for admin_with_admin_modes1609 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1610 has the correct permissions for maintainers1611 has the correct permissions for developers1612 has the correct permissions for reporters1613 has the correct permissions for guests1614 when no one is allowed to push to the feat* protected branch1615 has the correct permissions for admin_with_admin_modes1616 has the correct permissions for admin_without_admin_modes (PENDING: All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509)1617 has the correct permissions for maintainers1618 has the correct permissions for developers1619 has the correct permissions for reporters1620 has the correct permissions for guests1621 when pushing to a project1622 disallows users that are blocked pending approval to push1623 does not allow deactivated users to push1624 disallows users with expired password to push1625 avoids N+1 queries1626 raises TimeoutError when #check_access! raises a timeout error1627 with an ldap user1628 allows ldap users with expired password to push1629 disallows blocked ldap users with expired password to push1630 build authentication abilities1631 when project is authorized1632 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1633 when unauthorized1634 to public project1635 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1636 to internal project1637 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1638 to private project1639 is expected to raise Gitlab::GitAccess::ForbiddenError with "You are not allowed to upload code."1640 when the repository is read-only1641 denies push access1642 deploy key permissions1643 when deploy_key can push1644 when project is authorized1645 is expected not to raise Exception1646 when unauthorized1647 to public project1648 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."1649 to internal project1650 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1651 to private project1652 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1653 when deploy_key cannot push1654 when project is authorized1655 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."1656 when unauthorized1657 to public project1658 is expected to raise Gitlab::GitAccess::ForbiddenError with "This deploy key does not have write access to this project."1659 to internal project1660 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1661 to private project1662 is expected to raise Gitlab::GitAccess::NotFoundError with "The project you were looking for could not be found or you don't have permission to view it."1663 terms are enforced1664 as an anonymous user to a public project1665 is expected not to raise Exception1666 as a guest to a public project1667 behaves like access after accepting terms1668 blocks access when the user did not accept terms1669 allows access when the user accepted the terms1670 as a reporter to the project1671 behaves like access after accepting terms1672 blocks access when the user did not accept terms1673 allows access when the user accepted the terms1674 as a developer of the project1675 behaves like access after accepting terms1676 blocks access when the user did not accept terms1677 allows access when the user accepted the terms1678 as a maintainer of the project1679 behaves like access after accepting terms1680 blocks access when the user did not accept terms1681 allows access when the user accepted the terms1682 as an owner of the project1683 behaves like access after accepting terms1684 blocks access when the user did not accept terms1685 allows access when the user accepted the terms1686 when a ci build clones the project1687 doesn't block http pull1688QuickActions::InterpretService1689 #execute1690 limits to commands passed1691 preserves leading whitespace1692 tracks MAU for commands1693 move issue command1694 returns the move issue message1695 returns move issue failure message when the referenced issue is not found1696 behaves like reopen command1697 returns state_event: "reopen" if content contains /reopen1698 returns the reopen message1699 behaves like reopen command1700 returns state_event: "reopen" if content contains /reopen1701 returns the reopen message1702 behaves like close command1703 returns state_event: "close" if content contains /close1704 returns the close message1705 behaves like close command1706 returns state_event: "close" if content contains /close1707 returns the close message1708 merge command1709 behaves like merge immediately command1710 runs merge command if content contains /merge1711 returns them merge message1712 when the head pipeline of merge request is running1713 behaves like merge automatically command1714 runs merge command if content contains /merge and returns merge message1715 can not be merged when logged user does not have permissions1716 behaves like failed command1717 populates {} if content contains an unsupported command1718 returns Could not apply merge command. message1719 can not be merged when sha does not match1720 behaves like failed command1721 populates {} if content contains an unsupported command1722 returns Branch has been updated since the merge was requested. message1723 when sha is missing1724 behaves like failed command1725 populates {} if content contains an unsupported command1726 returns The `/merge` quick action requires the SHA of the head of the branch. message1727 issue can not be merged1728 behaves like failed command1729 populates {} if content contains an unsupported command1730 returns Could not apply merge command. message1731 non persisted merge request cant be merged1732 behaves like failed command1733 populates {} if content contains an unsupported command1734 returns Could not apply merge command. message1735 not persisted merge request can not be merged1736 behaves like failed command1737 populates {} if content contains an unsupported command1738 returns Could not apply merge command. message1739 behaves like title command1740 populates title: "A brand new title" if content contains /title A brand new title1741 returns the title message1742 behaves like title command1743 populates title: "A brand new title" if content contains /title A brand new title1744 returns the title message1745 behaves like failed command1746 populates {} if content contains an unsupported command1747 returns an empty message1748 assign command with one user1749 behaves like assign command1750 assigns to me1751 does not assign to group members1752 assigns to users with escaped underscores1753 assigns to a single user1754 returns the assign message1755 when there are too many references1756 says what went wrong1757 when the user extractor raises an uninticipated error1758 tracks the exception in dev, and reports a generic message in production1759 when the reference does not match the exact case1760 assigns to the user1761 when the user has a private profile1762 assigns to the user1763 behaves like assign command1764 assigns to me1765 does not assign to group members1766 assigns to users with escaped underscores1767 assigns to a single user1768 returns the assign message1769 when there are too many references1770 says what went wrong1771 when the user extractor raises an uninticipated error1772 tracks the exception in dev, and reports a generic message in production1773 when the reference does not match the exact case1774 assigns to the user1775 when the user has a private profile1776 assigns to the user1777 behaves like assign command1778 assigns to me1779 does not assign to group members1780 assigns to users with escaped underscores1781 assigns to a single user1782 returns the assign message1783 when there are too many references1784 says what went wrong1785 when the user extractor raises an uninticipated error1786 tracks the exception in dev, and reports a generic message in production1787 when the reference does not match the exact case1788 assigns to the user1789 when the user has a private profile1790 assigns to the user1791 assign command with multiple assignees1792 behaves like assigns to one of the two users1793 assigns to a single user1794 behaves like assigns to one of the two users1795 assigns to a single user1796 assign command with me alias1797 behaves like assign command1798 assigns to me1799 does not assign to group members1800 assigns to users with escaped underscores1801 assigns to a single user1802 returns the assign message1803 when there are too many references1804 says what went wrong1805 when the user extractor raises an uninticipated error1806 tracks the exception in dev, and reports a generic message in production1807 when the reference does not match the exact case1808 assigns to the user1809 when the user has a private profile1810 assigns to the user1811 behaves like assign command1812 assigns to me1813 does not assign to group members1814 assigns to users with escaped underscores1815 assigns to a single user1816 returns the assign message1817 when there are too many references1818 says what went wrong1819 when the user extractor raises an uninticipated error1820 tracks the exception in dev, and reports a generic message in production1821 when the reference does not match the exact case1822 assigns to the user1823 when the user has a private profile1824 assigns to the user1825 assign command with me alias and whitespace1826 behaves like assign command1827 assigns to me1828 does not assign to group members1829 assigns to users with escaped underscores1830 assigns to a single user1831 returns the assign message1832 when there are too many references1833 says what went wrong1834 when the user extractor raises an uninticipated error1835 tracks the exception in dev, and reports a generic message in production1836 when the reference does not match the exact case1837 assigns to the user1838 when the user has a private profile1839 assigns to the user1840 behaves like assign command1841 assigns to me1842 does not assign to group members1843 assigns to users with escaped underscores1844 assigns to a single user1845 returns the assign message1846 when there are too many references1847 says what went wrong1848 when the user extractor raises an uninticipated error1849 tracks the exception in dev, and reports a generic message in production1850 when the reference does not match the exact case1851 assigns to the user1852 when the user has a private profile1853 assigns to the user1854 behaves like failed command1855 populates {} if content contains an unsupported command1856 returns a parse error message1857 behaves like failed command1858 populates {} if content contains an unsupported command1859 returns Failed to assign a user because no user was found. message1860 assign_reviewer command1861 with one user1862 behaves like assign_reviewer command1863 assigns a reviewer to a single user1864 with an issue instead of a merge request1865 behaves like failed command1866 populates {} if content contains an unsupported command1867 returns Could not apply assign_reviewer command. message1868 assign command with multiple assignees1869 assigns to one of the two users1870 assigns to a single reviewer1871 with "me" alias1872 behaves like assign_reviewer command1873 assigns a reviewer to a single user1874 with an alias and whitespace1875 behaves like assign_reviewer command1876 assigns a reviewer to a single user1877 with @all1878 behaves like failed command1879 populates {} if content contains an unsupported command1880 returns a parse error message1881 with an incorrect user1882 behaves like failed command1883 populates {} if content contains an unsupported command1884 returns a parse error message1885 with the "reviewer" alias1886 behaves like assign_reviewer command1887 assigns a reviewer to a single user1888 with the "request_review" alias1889 behaves like assign_reviewer command1890 assigns a reviewer to a single user1891 with no user1892 behaves like failed command1893 populates {} if content contains an unsupported command1894 returns Failed to assign a reviewer because no user was specified. message1895 with extra text1896 behaves like failed command1897 populates {} if content contains an unsupported command1898 returns a parse error message1899 unassign_reviewer command1900 with one user1901 behaves like unassign_reviewer command1902 removes a single reviewer1903 with an issue instead of a merge request1904 behaves like failed command1905 populates {} if content contains an unsupported command1906 returns Could not apply unassign_reviewer command. message1907 with anything after the command1908 behaves like unassign_reviewer command1909 removes a single reviewer1910 with the "remove_reviewer" alias1911 behaves like unassign_reviewer command1912 removes a single reviewer1913 with no user1914 behaves like unassign_reviewer command1915 removes a single reviewer1916 unassign command1917 Issue1918 populates assignee_ids: [] if content contains /unassign1919 returns the unassign message for all the assignee if content contains /unassign1920 Merge Request1921 populates assignee_ids: [] if content contains /unassign1922 returns the unassign message for all the assignee if content contains /unassign1923 project milestones1924 behaves like milestone command1925 fetches milestone and populates milestone_id if content contains /milestone1926 returns the milestone message1927 returns empty milestone message when milestone is wrong1928 behaves like milestone command1929 fetches milestone and populates milestone_id if content contains /milestone1930 returns the milestone message1931 returns empty milestone message when milestone is wrong1932 only group milestones available1933 behaves like milestone command1934 fetches milestone and populates milestone_id if content contains /milestone1935 returns the milestone message1936 returns empty milestone message when milestone is wrong1937 behaves like milestone command1938 fetches milestone and populates milestone_id if content contains /milestone1939 returns the milestone message1940 returns empty milestone message when milestone is wrong1941 behaves like remove_milestone command1942 populates milestone_id: nil if content contains /remove_milestone1943 returns removed milestone message1944 behaves like remove_milestone command1945 populates milestone_id: nil if content contains /remove_milestone1946 returns removed milestone message1947 behaves like label command1948 fetches label ids and populates add_label_ids if content contains /label1949 returns the label message1950 behaves like label command1951 fetches label ids and populates add_label_ids if content contains /label1952 returns the label message1953 with a colon label1954 when quoted1955 behaves like label command1956 fetches label ids and populates add_label_ids if content contains /label1957 returns the label message1958 behaves like label command1959 fetches label ids and populates add_label_ids if content contains /label1960 returns the label message1961 when unquoted1962 behaves like label command1963 fetches label ids and populates add_label_ids if content contains /label1964 returns the label message1965 behaves like label command1966 fetches label ids and populates add_label_ids if content contains /label1967 returns the label message1968 with a scoped label1969 when quoted1970 behaves like label command1971 fetches label ids and populates add_label_ids if content contains /label1972 returns the label message1973 behaves like label command1974 fetches label ids and populates add_label_ids if content contains /label1975 returns the label message1976 when unquoted1977 behaves like label command1978 fetches label ids and populates add_label_ids if content contains /label1979 returns the label message1980 behaves like label command1981 fetches label ids and populates add_label_ids if content contains /label1982 returns the label message1983 behaves like multiple label command1984 fetches label ids and populates add_label_ids if content contains multiple /label1985 behaves like multiple label with same argument1986 prevents duplicate label ids and populates add_label_ids if content contains multiple /label1987 behaves like multiword label name starting without ~1988 fetches label ids and populates add_label_ids if content contains /label1989 behaves like multiword label name starting without ~1990 fetches label ids and populates add_label_ids if content contains /label1991 behaves like label name is included in the middle of another label name1992 ignores the sublabel when the content contains the includer label name1993 behaves like label name is included in the middle of another label name1994 ignores the sublabel when the content contains the includer label name1995 behaves like unlabel command1996 fetches label ids and populates remove_label_ids if content contains /unlabel1997 returns the unlabel message1998 behaves like unlabel command1999 fetches label ids and populates remove_label_ids if content contains /unlabel2000 returns the unlabel message2001 behaves like multiple unlabel command2002 fetches label ids and populates remove_label_ids if content contains mutiple /unlabel2003 behaves like unlabel command with no argument2004 populates label_ids: [] if content contains /unlabel with no arguments2005 behaves like unlabel command with no argument2006 populates label_ids: [] if content contains /unlabel with no arguments2007 behaves like relabel command2008 populates label_ids: [] if content contains /relabel2009 returns the relabel message2010 behaves like relabel command2011 populates label_ids: [] if content contains /relabel2012 returns the relabel message2013 behaves like done command2014 populates todo_event: "done" if content contains /done2015 returns the done message2016 behaves like done command2017 populates todo_event: "done" if content contains /done2018 returns the done message2019 behaves like subscribe command2020 populates subscription_event: "subscribe" if content contains /subscribe2021 returns the subscribe message2022 behaves like subscribe command2023 populates subscription_event: "subscribe" if content contains /subscribe2024 returns the subscribe message2025 behaves like unsubscribe command2026 populates subscription_event: "unsubscribe" if content contains /unsubscribe2027 returns the unsubscribe message2028 behaves like unsubscribe command2029 populates subscription_event: "unsubscribe" if content contains /unsubscribe2030 returns the unsubscribe message2031 behaves like failed command2032 populates {} if content contains an unsupported command2033 returns Could not apply due command. message2034 behaves like remove_due_date command2035 populates due_date: nil if content contains /remove_due_date2036 returns Removed the due date2037 behaves like draft command2038 returns wip_event: "draft"2039 returns the draft message2040 behaves like ready command2041 returns wip_event: "ready"2042 returns the ready message2043 behaves like draft command2044 returns wip_event: "draft"2045 returns the draft message2046 behaves like draft/ready command no action2047 returns the no action message if there is no change to the status2048 behaves like draft/ready command no action2049 returns the no action message if there is no change to the status2050 behaves like ready command2051 returns wip_event: "ready"2052 returns the ready message2053 behaves like failed command2054 populates {} if content contains an unsupported command2055 returns Could not apply remove_due_date command. message2056 behaves like estimate command2057 populates time_estimate: 3600 if content contains /estimate 1h2058 returns the time_estimate formatted message2059 behaves like estimate command2060 populates time_estimate: 3600 if content contains /estimate 1h2061 returns the time_estimate formatted message2062 behaves like failed command2063 populates {} if content contains an unsupported command2064 returns an empty message2065 behaves like failed command2066 populates {} if content contains an unsupported command2067 returns an empty message2068 behaves like spend command2069 populates spend_time: 3600 if content contains /spend 1h2070 behaves like spend command2071 populates spend_time: 3600 if content contains /spend 1h2072 behaves like spend command2073 populates spend_time: 3600 if content contains /spend 1h2074 behaves like spend command with negative time2075 populates spend_time: -7200 if content contains -120m2076 returns the spend_time message including the formatted duration and verb2077 behaves like spend command with negative time2078 populates spend_time: -7200 if content contains -120m2079 returns the spend_time message including the formatted duration and verb2080 behaves like spend command with valid date2081 populates spend time: 1800 with date in date type format2082 behaves like spend command with valid date2083 populates spend time: 1800 with date in date type format2084 behaves like spend command with invalid date2085 will not create any note and timelog2086 behaves like spend command with invalid date2087 will not create any note and timelog2088 behaves like spend command with future date2089 will not create any note and timelog2090 behaves like spend command with future date2091 will not create any note and timelog2092 behaves like failed command2093 populates {} if content contains an unsupported command2094 returns an empty message2095 behaves like failed command2096 populates {} if content contains an unsupported command2097 returns an empty message2098 behaves like failed command2099 populates {} if content contains an unsupported command2100 returns an empty message2101 behaves like failed command2102 populates {} if content contains an unsupported command2103 returns an empty message2104 behaves like remove_estimate command2105 populates time_estimate: 0 if content contains /remove_estimate2106 returns the remove_estimate message2107 behaves like remove_estimate command2108 populates time_estimate: 0 if content contains /remove_estimate2109 returns the remove_estimate message2110 behaves like remove_time_spent command2111 populates spend_time: :reset if content contains /remove_time_spent2112 returns the remove_time_spent message2113 /confidential2114 behaves like confidential command2115 marks issue as confidential if content contains /confidential2116 returns the confidential message2117 when issuable is already confidential2118 returns an error message2119 is not part of the available commands2120 behaves like confidential command2121 marks issue as confidential if content contains /confidential2122 returns the confidential message2123 when issuable is already confidential2124 returns an error message2125 is not part of the available commands2126 when non-member is creating a new issue2127 behaves like confidential command2128 marks issue as confidential if content contains /confidential2129 returns the confidential message2130 when issuable is already confidential2131 returns an error message2132 is not part of the available commands2133 behaves like lock command2134 returns discussion_locked: true if content contains /lock2135 returns the lock discussion message2136 behaves like lock command2137 returns discussion_locked: true if content contains /lock2138 returns the lock discussion message2139 behaves like unlock command2140 returns discussion_locked: true if content contains /unlock2141 returns the unlock discussion message2142 behaves like unlock command2143 returns discussion_locked: true if content contains /unlock2144 returns the unlock discussion message2145 /todo2146 if issuable is an Issue2147 behaves like todo command2148 populates todo_event: "add" if content contains /todo2149 returns the todo message2150 if issuable is a MergeRequest2151 behaves like todo command2152 populates todo_event: "add" if content contains /todo2153 returns the todo message2154 if issuable is a Commit2155 behaves like failed command2156 populates {} if content contains an unsupported command2157 returns Could not apply todo command. message2158 /due command2159 returns invalid date format message when the due date is invalid2160 behaves like due command2161 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-282162 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-282163 behaves like due command2164 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-282165 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-282166 behaves like due command2167 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-282168 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-282169 behaves like due command2170 populates due_date: Date.new(2016, 8, 28) if content contains /due 2016-08-282171 returns due_date message: Date.new(2016, 8, 28) if content contains /due 2016-08-282172 /copy_metadata command2173 is available when the user is a developer2174 when the user does not have permission2175 is not available2176 behaves like failed command2177 populates {} if content contains an unsupported command2178 returns an empty message2179 behaves like copy_metadata command2180 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference2181 returns the copy metadata message2182 behaves like copy_metadata command2183 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference2184 returns the copy metadata message2185 when the parent issuable has a milestone2186 behaves like copy_metadata command2187 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference2188 returns the copy metadata message2189 when more than one issuable is passed2190 behaves like copy_metadata command2191 fetches issue or merge request and copies labels and milestone if content contains /copy_metadata reference2192 returns the copy metadata message2193 cross project references2194 behaves like failed command2195 populates {} if content contains an unsupported command2196 returns an empty message2197 behaves like failed command2198 populates {} if content contains an unsupported command2199 returns an empty message2200 behaves like failed command2201 populates {} if content contains an unsupported command2202 returns an empty message2203 /duplicate command2204 behaves like duplicate command2205 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference2206 returns the duplicate message2207 includes duplicate reference2208 behaves like failed command2209 populates {} if content contains an unsupported command2210 returns an empty message2211 cross project references2212 behaves like duplicate command2213 fetches issue and populates canonical_issue_id if content contains /duplicate issue_reference2214 returns the duplicate message2215 includes duplicate reference2216 behaves like failed command2217 populates {} if content contains an unsupported command2218 returns Failed to mark this issue as a duplicate because referenced issue was not found. message2219 behaves like failed command2220 populates {} if content contains an unsupported command2221 returns Failed to mark this issue as a duplicate because referenced issue was not found. message2222 when current_user cannot :admin_issue2223 behaves like failed command2224 populates {} if content contains an unsupported command2225 returns Could not apply assign command. message2226 behaves like failed command2227 populates {} if content contains an unsupported command2228 returns Could not apply unassign command. message2229 behaves like failed command2230 populates {} if content contains an unsupported command2231 returns Could not apply milestone command. message2232 behaves like failed command2233 populates {} if content contains an unsupported command2234 returns Could not apply remove_milestone command. message2235 behaves like failed command2236 populates {} if content contains an unsupported command2237 returns Could not apply label command. message2238 behaves like failed command2239 populates {} if content contains an unsupported command2240 returns Could not apply unlabel command. message2241 behaves like failed command2242 populates {} if content contains an unsupported command2243 returns Could not apply relabel command. message2244 behaves like failed command2245 populates {} if content contains an unsupported command2246 returns Could not apply due command. message2247 behaves like failed command2248 populates {} if content contains an unsupported command2249 returns Could not apply remove_due_date command. message2250 behaves like failed command2251 populates {} if content contains an unsupported command2252 returns Could not apply confidential command. message2253 behaves like failed command2254 populates {} if content contains an unsupported command2255 returns Could not apply lock command. message2256 behaves like failed command2257 populates {} if content contains an unsupported command2258 returns Could not apply unlock command. message2259 /award command2260 behaves like award command2261 toggle award 100 emoji if content contains /award :100:2262 returns the award message2263 behaves like award command2264 toggle award 100 emoji if content contains /award :100:2265 returns the award message2266 ignores command with no argument2267 behaves like failed command2268 populates {} if content contains an unsupported command2269 returns an empty message2270 ignores non-existing / invalid emojis2271 behaves like failed command2272 populates {} if content contains an unsupported command2273 returns an empty message2274 behaves like failed command2275 populates {} if content contains an unsupported command2276 returns an empty message2277 if issuable is a Commit2278 behaves like failed command2279 populates {} if content contains an unsupported command2280 returns Could not apply award command. message2281 /shrug command2282 behaves like shrug command2283 appends ¯\_(ツ)_/¯ to the comment2284 behaves like shrug command2285 appends ¯\_(ツ)_/¯ to the comment2286 /tableflip command2287 behaves like tableflip command2288 appends (╯°□°)╯︵ ┻━┻ to the comment2289 behaves like tableflip command2290 appends (╯°□°)╯︵ ┻━┻ to the comment2291 /target_branch command2292 updates target_branch if /target_branch command is executed2293 handles blanks around param2294 returns the target_branch message2295 ignores command with no argument2296 behaves like failed command2297 populates {} if content contains an unsupported command2298 returns Could not apply target_branch command. message2299 ignores non-existing target branch2300 behaves like failed command2301 populates {} if content contains an unsupported command2302 returns Could not apply target_branch command. message2303 /board_move command2304 populates remove_label_ids for all current board columns2305 populates add_label_ids with the id of the given label2306 does not include the given label id in remove_label_ids2307 does not remove label ids that are not lists on the board2308 returns board_move message2309 if the project has multiple boards2310 behaves like failed command2311 populates {} if content contains an unsupported command2312 returns Could not apply board_move command. message2313 if the given label does not exist2314 behaves like failed command2315 populates {} if content contains an unsupported command2316 returns Failed to move this issue because label was not found. message2317 if multiple labels are given2318 behaves like failed command2319 populates {} if content contains an unsupported command2320 returns Failed to move this issue because only a single label can be provided. message2321 if the given label is not a list on the board2322 behaves like failed command2323 populates {} if content contains an unsupported command2324 returns Failed to move this issue because label was not found. message2325 if issuable is not an Issue2326 behaves like failed command2327 populates {} if content contains an unsupported command2328 returns Could not apply board_move command. message2329 /tag command2330 ignores command with no argument2331 behaves like failed command2332 populates {} if content contains an unsupported command2333 returns an empty message2334 tags a commit with a tag name2335 behaves like tag command2336 tags a commit2337 returns the tag message2338 tags a commit with a tag name and message2339 behaves like tag command2340 tags a commit2341 returns the tag message2342 /create_merge_request command2343 populates create_merge_request with branch_name and issue iid2344 returns the create_merge_request message2345 if issuable is not an Issue2346 behaves like failed command2347 populates {} if content contains an unsupported command2348 returns Could not apply create_merge_request command. message2349 when logged user cannot create_merge_requests in the project2350 behaves like failed command2351 populates {} if content contains an unsupported command2352 returns Could not apply create_merge_request command. message2353 when logged user cannot push code to the project2354 behaves like failed command2355 populates {} if content contains an unsupported command2356 returns Could not apply create_merge_request command. message2357 submit_review command2358 note: "I like it"2359 submits the users current review2360 note: "/submit_review"2361 submits the users current review2362 relate command2363 user is member of group2364 relate a single issue2365 behaves like relate command2366 relates issues2367 relate multiple issues at once2368 behaves like relate command2369 relates issues2370 when quick action target is unpersisted2371 relates the issues after the issue is persisted2372 empty relate command2373 behaves like relate command2374 relates issues2375 already having related issues2376 behaves like relate command2377 relates issues2378 cross project2379 relate a cross project issue2380 behaves like relate command2381 relates issues2382 relate multiple cross projects issues at once2383 behaves like relate command2384 relates issues2385 relate a non-existing issue2386 behaves like relate command2387 relates issues2388 relate a private issue2389 behaves like relate command2390 relates issues2391 invite_email command2392 behaves like failed command2393 populates {} if content contains an unsupported command2394/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2395/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2396 returns No email participants were added. Either none were provided, or they already exist. message2397 with existing email participant2398 behaves like failed command2399/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2400/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2401 populates {} if content contains an unsupported command2402/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2403/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2404 returns No email participants were added. Either none were provided, or they already exist. message2405 with new email participants2406/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2407/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2408 returns message2409/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2410/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2411 adds 2 participants2412 with mixed case email2413/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2414/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2415 returns correctly cased message2416 with invalid email2417/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2418/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2419 only adds valid emails2420 with existing email2421/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2422/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2423 only adds new emails2424/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2425/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2426 only adds new (case insensitive) emails2427 with duplicate email2428/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2429/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2430 only adds unique new emails2431 with more than 6 emails2432/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: already initialized constant Gitlab::QuickActions::IssueActions::MAX_NUMBER_OF_EMAILS2433/builds/gitlab-org/gitlab/lib/gitlab/quick_actions/issue_actions.rb:233: warning: previous definition of MAX_NUMBER_OF_EMAILS was here2434 only adds 6 new emails2435 with feature flag disabled2436 does not add any participants2437 severity command2438 behaves like failed command2439 populates {} if content contains an unsupported command2440 returns No severity matches the provided parameter message2441 when quick action is used on creation2442 behaves like updates the severity2443 is expected to change `issuable.severity` from "unknown" to "medium"2444 issuable does not support severity2445 behaves like failed command2446 populates {} if content contains an unsupported command2447 returns message2448 severity given with S format2449 behaves like updates the severity2450 is expected to change `issuable.severity` from "unknown" to "medium"2451 severity given with number format2452 behaves like updates the severity2453 is expected to change `issuable.severity` from "unknown" to "medium"2454 severity given with text format2455 behaves like updates the severity2456 is expected to change `issuable.severity` from "unknown" to "medium"2457 an issuable that does not support severity2458 behaves like failed command2459 populates {} if content contains an unsupported command2460 returns Could not apply severity command. message2461 approve command2462 approves the current merge request2463 when the user can't approve2464 does not approve the MR2465 behaves like approve command unavailable2466 is not part of the available commands2467 unapprove command2468 unapproves the current merge request2469 when the user can't unapprove2470 does not unapprove the MR2471 behaves like unapprove command unavailable2472 is not part of the available commands2473 crm_contact commands2474 add_contacts command adds the contact2475 remove_contacts command removes the contact2476 when using an alias2477 returns the correct execution message2478 #explain2479 close command2480 includes issuable name2481 reopen command2482 includes issuable name2483 title command2484 includes new title2485 assign command2486 when using a reference2487 tells us we will assign the developer2488 when using a bare username2489 tells us we will assign the developer2490 when using me2491 tells us we will assign the developer2492 when there are unparseable arguments2493 tells us why we cannot do that2494 unassign command2495 includes current assignee reference2496 unassign_reviewer command2497 includes current assignee reference2498 assign_reviewer command2499 includes only the user reference2500 milestone command2501 is empty when milestone reference is wrong2502 remove milestone command2503 includes current milestone name2504 label command2505 is empty when there are no correct labels2506 unlabel command2507 says all labels if no parameter provided2508 relabel command2509 includes label name2510 subscribe command2511 includes issuable name2512 unsubscribe command2513 includes issuable name2514 due command2515 includes the date2516 draft command toggle (deprecated)2517 includes the new status2518 sets the ready status on a draft2519 draft command set2520 includes the new status2521 includes the no change message when status unchanged2522 ready command2523 includes the new status2524 includes the no change message when status unchanged2525 award command2526 includes the emoji2527 estimate command2528 includes the formatted duration2529 spend command2530 includes the formatted duration and proper verb when using /spend2531 includes the formatted duration and proper verb when using /spent2532 target branch command2533 includes the branch name2534 board move command2535 includes the label name2536 move issue to another project command2537 includes the project name2538 tag a commit2539 with a tag name2540 without a message2541 includes the tag name only2542 with an empty message2543 includes the tag name only2544 with a tag name and message2545 includes the tag name and message2546 create a merge request2547 with no branch name2548 uses the default branch name2549 returns the execution message using the default branch name2550 with a branch name2551 uses the given branch name2552 returns the execution message using the given branch name2553 #commands_executed_count2554 counts commands executed2555 crm commands2556 when group has no contacts2557 /add_contacts is not available2558 when group has contacts2559 /add_contacts is available2560 when issue has no contacts2561 /remove_contacts is not available2562 when issue has contacts2563 /remove_contacts is available2564 #available_commands2565 when Guest is creating a new issue2566 includes commands to set metadata2567TodoService2568 updates cached counts when a todo is created2569 Issues2570 #new_issue2571 creates a todo if assigned2572 does not create a todo if unassigned2573 creates a todo if assignee is the current user2574 creates a todo for each valid mentioned user2575 creates a directly addressed todo for each valid addressed user2576 creates correct todos for each valid user based on the type of mention2577 does not create todo if user can not see the issue when issue is confidential2578 does not create directly addressed todo if user cannot see the issue when issue is confidential2579 when a private group is mentioned2580 creates a todo for group members2581 issue is an incident2582 behaves like an incident management tracked event2583 .track_event2584 tracks the event using redis2585 behaves like Snowplow event tracking with RedisHLL context2586 behaves like Snowplow event tracking2587 is emitted2588 #update_issue2589 creates a todo for each valid mentioned user not included in skip_users2590 creates a todo for each valid user not included in skip_users based on the type of mention2591 creates a directly addressed todo for each valid addressed user not included in skip_users2592 does not create a todo if user was already mentioned and todo is pending2593 does not create a todo if user was already mentioned and todo is done2594 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending2595 does not create a directly addressed todo if user was already mentioned or addressed and todo is done2596 does not create todo if user can not see the issue when issue is confidential2597 does not create a directly addressed todo if user can not see the issue when issue is confidential2598 issues with a task list2599 does not create todo when tasks are marked as completed2600 does not create directly addressed todo when tasks are marked as completed2601 does not raise an error when description not change2602 #close_issue2603 marks related pending todos to the target for the user as done2604 #destroy_target2605 refreshes the todos count cache for users with todos on the target2606 yields the target to the caller2607 #resolve_todos_for_target2608 marks related pending todos to the target for the user as done2609 cached counts2610 updates when todos change2611 #new_note2612 mark related pending todos to the noteable for the note author as done2613 does not mark related pending todos it is a system note2614 creates a todo for each valid mentioned user2615 creates a todo for each valid user based on the type of mention2616 creates a directly addressed todo for each valid addressed user2617 does not create todo if user can not see the issue when leaving a note on a confidential issue2618 does not create a directly addressed todo if user can not see the issue when leaving a note on a confidential issue2619 does not create todo if user can not read confidential note2620 does not create todo when leaving a note on snippet2621 commits2622 leaving a note on a commit in a public project2623 creates a todo for each valid mentioned user2624 creates a directly addressed todo for each valid mentioned user2625 leaving a note on a commit in a public project with private code2626 creates a todo for each valid mentioned user2627 creates a directly addressed todo for each valid mentioned user2628 leaving a note on a commit in a private project2629 creates a todo for each valid mentioned user2630 creates a directly addressed todo for each valid mentioned user2631 #mark_todo2632 creates a todo from a issue2633 #todo_exists?2634 returns false when no todo exist for the given issuable2635 returns true when a todo exist for the given issuable2636 when multiple_todos are enabled2637 creates a MENTIONED todo even if user already has a pending MENTIONED todo2638 creates a DIRECTLY_ADDRESSED todo even if user already has a pending DIRECTLY_ADDRESSED todo2639 creates an ASSIGNED todo even if user already has a pending MARKED todo2640 does not create an ASSIGNED todo if user already has an ASSIGNED todo2641 creates multiple todos if a user is assigned and mentioned in a new issue2642 #reassigned_assignable2643 assignable is a merge request2644 behaves like reassigned target2645 creates a pending todo for new assignee2646 does not create a todo if unassigned2647 creates a todo if new assignee is the current user2648 does not create a todo for guests2649 does not create a directly addressed todo for guests2650 does not create a todo if already assigned2651 assignable is an issue2652 behaves like reassigned target2653 creates a pending todo for new assignee2654 does not create a todo if unassigned2655 creates a todo if new assignee is the current user2656 does not create a todo for guests2657 does not create a directly addressed todo for guests2658 does not create a todo if already assigned2659 assignable is an alert2660 behaves like reassigned target2661 creates a pending todo for new assignee2662 does not create a todo if unassigned2663 creates a todo if new assignee is the current user2664 does not create a todo for guests2665 does not create a directly addressed todo for guests2666 does not create a todo if already assigned2667 #reassigned_reviewable2668 reviewable is a merge request2669 behaves like reassigned reviewable target2670 with no existing reviewers2671 creates a pending todo for new reviewer2672 with an existing reviewer2673 does not create a todo if unassigned2674 creates a todo if new reviewer is the current user2675 does not create a todo if already assigned2676 Merge Requests2677 #new_merge_request2678 creates a pending todo if assigned2679 does not create a todo if unassigned2680 creates a todo if assignee is the current user2681 creates a todo for each valid mentioned user2682 creates a todo for each valid user based on the type of mention2683 creates a directly addressed todo for each valid addressed user2684 #update_merge_request2685 creates a todo for each valid mentioned user not included in skip_users2686 creates a todo for each valid user not included in skip_users based on the type of mention2687 creates a directly addressed todo for each valid addressed user not included in skip_users2688 does not create a todo if user was already mentioned and todo is pending2689 does not create a todo if user was already mentioned and todo is done2690 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending2691 does not create a directly addressed todo if user was already mentioned or addressed and todo is done2692 with a task list2693 does not create todo when tasks are marked as completed2694 does not create directly addressed todo when tasks are marked as completed2695 does not raise an error when description not change2696 #close_merge_request2697 marks related pending todos to the target for the user as done2698 #merge_merge_request2699 marks related pending todos to the target for the user as done2700 does not create todo for guests2701 does not create directly addressed todo for guests2702 #new_award_emoji2703 marks related pending todos to the target for the user as done2704 #merge_request_build_failed2705 creates a pending todo for each merge_participant2706 #merge_request_push2707 marks related pending todos to the target for the user as done2708 #merge_request_became_unmergeable2709 creates a pending todo for each merge_participant2710 #mark_todo2711 creates a todo from a merge request2712 #new_note2713 creates a todo for mentioned user on new diff note2714 creates a directly addressed todo for addressed user on new diff note2715 creates a todo for mentioned user on legacy diff note2716 does not create todo for guests2717 Designs2718 creates a todo for mentioned user on new diff note2719 #update_note2720 creates a todo for each valid mentioned user not included in skip_users2721 creates a todo for each valid user not included in skip_users based on the type of mention2722 creates a directly addressed todo for each valid addressed user not included in skip_users2723 does not create a todo if user was already mentioned and todo is done2724 does not create a directly addressed todo if user was already mentioned or addressed and todo is pending2725 does not create a directly addressed todo if user was already mentioned or addressed and todo is done2726 users already have pending todos and the multiple_todos feature is off2727 does not create a todo if user was already mentioned and todo is pending2728 does not create N+1 queries for pending todos2729 #resolve_todos2730 behaves like updating todos state2731 updates related todos for the user with the new_state2732 updates resolution mechanism2733 returns the updated ids2734 cached counts2735 updates when todos change2736 #restore_todos2737 behaves like updating todos state2738 updates related todos for the user with the new_state2739 returns the updated ids2740 cached counts2741 updates when todos change2742 #resolve_todo2743 marks pending todo as done2744 saves resolution mechanism2745 cached counts2746 updates when todos change2747 #resolve_access_request_todos2748 marks the todos for request handler as done2749 #restore_todo2750 marks resolved todo as pending2751 cached counts2752 updates when todos change2753 #create_request_review_todo2754 creates a todo for reviewer2755 #create_member_access_request_todos2756 when request is raised for group2757 behaves like member access request is raised2758 when the source has more than 10 owners2759 creates todos for 10 recently active source owners2760 when total owners are less than 102761 creates todos for all source owners2762 when multiple access requests are raised2763 creates todos for 10 recently active source owners for multiple requests2764 when request is raised for project2765 behaves like member access request is raised2766 when the source has more than 10 owners2767 creates todos for 10 recently active source owners2768 when total owners are less than 102769 creates todos for all source owners2770 when multiple access requests are raised2771 creates todos for 10 recently active source owners for multiple requests2772Issues::CloseService2773 #execute2774 checks if the user is authorized to update the issue2775 does not close the issue when the user is not authorized to do so2776 closes the external issue even when the user is not authorized to do so2777 closes the issue when the user is authorized to do so2778 refreshes the number of open issues2779 invalidates counter cache for assignees2780 does not change escalation status2781 when skip_authorization is true2782 does close the issue even if user is not authorized2783 issue is incident type2784 creates a new escalation resolved escalation status2785 behaves like an incident management tracked event2786 .track_event2787 tracks the event using redis2788 behaves like Snowplow event tracking with RedisHLL context2789 behaves like Snowplow event tracking2790 is emitted2791 when there is an escalation status2792 changes escalations status to resolved2793 adds a system note2794 adds a timeline event2795 when the escalation status did not change to resolved2796 does not create a system note2797 does not create a timeline event2798 #close_issue2799 with external issue2800 with an active external issue tracker supporting close_issue2801 closes the issue on the external issue tracker2802 with inactive external issue tracker supporting close_issue2803WARNING: An expectation of `:close_issue` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/services/issues/close_service_spec.rb:179:in `block (5 levels) in <top (required)>'.2804 does not close the issue on the external issue tracker2805 with an active external issue tracker not supporting close_issue2806 does not close the issue on the external issue tracker2807 closed by a merge request2808 mentions closure via a merge request2809 behaves like records an onboarding progress action2810 is expected to receive execute({:action=>:issue_auto_closed}) 1 time2811 when user cannot read merge request2812 does not mention merge request2813 updating `metrics.first_mentioned_in_commit_at`2814 when `metrics.first_mentioned_in_commit_at` is not set2815 uses the first commit authored timestamp2816 when `metrics.first_mentioned_in_commit_at` is already set2817 does not update the metrics2818 when merge request has no commits2819 does not update the metrics2820 closed by a commit2821 mentions closure via a commit2822 when user cannot read the commit2823 does not mention the commit id2824 valid params2825 verifies the number of queries2826 closes the issue2827 records closed user2828 sends email to user2 about assign of new issue2829 creates resource state event about the issue being closed2830 marks todos as done2831 deletes milestone issue counters cache2832 when closing the issue fails2833 does not assign a closed_by value for the issue2834 when there is an associated Alert Management Alert2835 when alert can be resolved2836 resolves an alert and sends a system note2837 when alert cannot be resolved2838 writes a warning into the log2839 when there are several associated Alert Management Alerts2840 when alerts can be resolved2841 resolves an alert and sends a system note2842 behaves like does not record an onboarding progress action2843 is expected not to receive new(*(any args)) 0 times2844 when issue is not confidential2845 executes issue hooks2846 when issue is confidential2847 executes confidential issue hooks2848 internal issues disabled2849 does not close the issue2850Issues::CreateService2851 behaves like rate limited service2852 .rate_limiter_scoped_and_keyed2853 is set via the rate_limit call2854 #rate_limiter_bypassed2855 is nil by default2856 #execute2857 when rate limiting is in effect2858 when too many requests are sent by one user2859 raises an error2860 creates 1 issue2861 when limit is higher than count of issues being created2862 creates 2 issues2863 #execute2864 when params are invalid2865 returns an error service response2866 when params are valid2867 works if base work item types were not created yet2868 creates the issue with the given params2869 calls NewIssueWorker with correct arguments2870 refreshes the number of open issues2871 moves the issue to the end, in an asynchronous worker2872 schedules a namespace onboarding create action worker2873 when an unauthorized project_id is provided2874 ignores the project_id param and creates issue in the given project2875 authorization2876 when the user is authorized2877 allows the user to create an issue2878 when the user is not authorized2879 does not allow the user to create an issue2880 with milestone2881 deletes milestone issues count cache2882 when the work item type is not allowed to create2883 ignores the type and creates default issue2884 when a build_service is provided2885 uses the provided service to build the issue2886 when skip_system_notes is true2887 does not call Issuable::CommonSystemNotesService2888 when setting a position2889 sets the correct relative position2890 behaves like not an incident issue2891 has not incident as issue type2892 when issue is incident type2893 as reporter2894 calls IncidentManagement::Incidents::CreateEscalationStatusService2895 calls IncidentManagement::TimelineEvents::CreateService.create_incident2896 calls NewIssueWorker with correct arguments2897 behaves like incident issue2898 has incident as issue type2899 when invalid2900 does not apply an incident label prematurely2901 as guest2902 behaves like not an incident issue2903 has not incident as issue type2904 when current user cannot set issue metadata in the project2905 filters out params that cannot be set without the :set_issue_metadata permission2906 can create confidential issues2907 when label belongs to project group2908 assigns group labels2909 when label belongs to different project2910 does not assign label2911 when labels is nil2912 does not assign label2913 when labels is nil and label_ids is present2914 assigns group labels2915 when milestone belongs to different project2916 does not assign milestone2917 when assignee is set2918 invalidates open issues counter for assignees when issue is assigned2919 when duplicate label titles are given2920 assigns the label once2921 when sentry identifier is given2922 does not assign the sentry error2923 user is reporter or above2924 assigns the sentry error2925 executing hooks2926 executes issue hooks2927 when issue is confidential2928 executes confidential issue hooks2929 after_save callback to store_mentions2930 when mentionable attributes change2931 saves mentions2932 when save fails2933 does not call store_mentions2934 issue create service2935 assignees2936 removes assignee when user id is invalid2937 removes assignee when user id is 02938 saves assignee when user id is valid2939 when issuable feature is private2940 removes not authorized assignee when project is Internal2941 removes not authorized assignee when project is Public2942 behaves like issuable record that supports quick actions2943 with labels in command only2944 attaches labels to issuable2945 with labels in params and command2946 attaches all labels to issuable2947 with assignee and milestone in command only2948 assigns and sets milestone to issuable2949 Quick actions2950 as work item2951 when work item type is not the default Issue2952 saves the work item without applying the quick action2953 when work item type is the default Issue2954 saves the work item and applies the quick action2955 with assignee, milestone, and contact in params and command2956 assigns, sets milestone, and sets contact to issuable from command2957 with external_author2958 when CRM contact exists with matching e-mail2959 with permission2960 assigns contact to issue2961 without permission2962 does not assign contact to issue2963 when no CRM contact exists with matching e-mail2964 does not assign contact to issue2965 with alert bot author2966 can apply labels2967 resolving discussions2968 for a single discussion2969 resolves the discussion2970 added a system note to the discussion2971 sets default title and description values if not provided2972 takes params from the request over the default values2973 for a merge request2974 resolves the discussion2975 added a system note to the discussion2976 sets default title and description values if not provided2977 takes params from the request over the default values2978 add related issue2979 ignores related issue if not accessible2980 when user has access to the related issue2981 adds a link to the issue2982 checking spam2983 executes SpamActionService2984Packages::GroupPackagesFinder2985 #execute2986 group has packages2987 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>2988 subgroup has packages2989 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>2990 excluding subgroups2991 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>2992 permissions2993 role: :anonymous, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all2994 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>2995 role: :guest, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all2996 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>2997 role: :reporter, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all2998 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>2999 role: :developer, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all3000 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3001 role: :maintainer, project_visibility: :public, repository_visibility: :enabled, packages_returned: :all3002 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3003 role: :anonymous, project_visibility: :public, repository_visibility: :private, packages_returned: :none3004 is expected to contain exactly3005 role: :guest, project_visibility: :public, repository_visibility: :private, packages_returned: :all3006 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3007 role: :reporter, project_visibility: :public, repository_visibility: :private, packages_returned: :all3008 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3009 role: :developer, project_visibility: :public, repository_visibility: :private, packages_returned: :all3010 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3011 role: :maintainer, project_visibility: :public, repository_visibility: :private, packages_returned: :all3012 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3013 role: :anonymous, project_visibility: :private, repository_visibility: :enabled, packages_returned: :none3014 is expected to contain exactly3015 role: :guest, project_visibility: :private, repository_visibility: :enabled, packages_returned: :none3016 is expected to contain exactly3017 role: :reporter, project_visibility: :private, repository_visibility: :enabled, packages_returned: :all3018 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3019 role: :developer, project_visibility: :private, repository_visibility: :enabled, packages_returned: :all3020 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3021 role: :maintainer, project_visibility: :private, repository_visibility: :enabled, packages_returned: :all3022 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3023 role: :anonymous, project_visibility: :private, repository_visibility: :private, packages_returned: :none3024 is expected to contain exactly3025 role: :guest, project_visibility: :private, repository_visibility: :private, packages_returned: :none3026 is expected to contain exactly3027 role: :reporter, project_visibility: :private, repository_visibility: :private, packages_returned: :all3028 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3029 role: :developer, project_visibility: :private, repository_visibility: :private, packages_returned: :all3030 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3031 role: :maintainer, project_visibility: :private, repository_visibility: :private, packages_returned: :all3032 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3033 deploy tokens3034 group deploy token3035 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>, and #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3036 project deploy token3037 is expected to contain exactly #<Packages::Package id: 7, project_id: 335, created_at: "2023-03-30 11:51:15.954127530 +0000", update... version: "1.0.1", package_type: "npm", creator_id: 820, status: "default", last_downloaded_at: nil>3038 avoid N+1 query3039 avoids N+1 database queries3040 when there are processing packages3041 is expected to contain exactly #<Packages::Package id: 2, project_id: 330, created_at: "2023-03-30 11:51:14.164624957 +0000", update... "1.1-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil> and #<Packages::Package id: 4, project_id: 330, created_at: "2023-03-30 11:51:14.569375634 +0000", update... "1.3-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>3042 preload_pipelines3043 preloads pipelines by default3044 set to false3045 does not preload pipelines3046 with package_name3047 as complete name3048 is expected to eq [#<Packages::Package id: 25, project_id: 330, created_at: "2023-03-30 11:51:35.391182985 +0000", upda..."1.9-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>]3049 for fuzzy filter aven3050 is expected to eq [#<Packages::Package id: 25, project_id: 330, created_at: "2023-03-30 11:51:35.391182985 +0000", upda..."1.9-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>]3051 for fuzzy filter mav3052 is expected to eq [#<Packages::Package id: 25, project_id: 330, created_at: "2023-03-30 11:51:35.391182985 +0000", upda..."1.9-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>]3053 for fuzzy filter ave3054 is expected to eq [#<Packages::Package id: 25, project_id: 330, created_at: "2023-03-30 11:51:35.391182985 +0000", upda..."1.9-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>]3055 with exact package_name3056 as complete name3057 is expected to contain exactly #<Packages::Package id: 27, project_id: 330, created_at: "2023-03-30 11:51:36.618848612 +0000", updat..."1.11-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>3058 behaves like concerning versionless param3059 is expected not to include #<Packages::Package id: 31, project_id: 330, created_at: "2023-03-30 11:51:37.678202782 +0000", updat...", version: nil, package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>3060 with valid include_versionless param3061 is expected to include #<Packages::Package id: 31, project_id: 330, created_at: "2023-03-30 11:51:37.678202782 +0000", updat...", version: nil, package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>3062 with empty include_versionless param3063 is expected not to include #<Packages::Package id: 31, project_id: 330, created_at: "2023-03-30 11:51:37.678202782 +0000", updat...", version: nil, package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>3064 behaves like concerning package statuses3065 displayable packages3066 is expected not to include #<Packages::Package id: 33, project_id: 330, created_at: "2023-03-30 11:51:38.721637543 +0000", updat... "1.16-SNAPSHOT", package_type: "maven", creator_id: 815, status: "hidden", last_downloaded_at: nil>3067 is expected to include #<Packages::Package id: 35, project_id: 330, created_at: "2023-03-30 11:51:39.085647015 +0000", updat...: "1.18-SNAPSHOT", package_type: "maven", creator_id: 815, status: "error", last_downloaded_at: nil>3068 with status param3069 is expected to contain exactly #<Packages::Package id: 33, project_id: 330, created_at: "2023-03-30 11:51:38.721637543 +0000", updat... "1.16-SNAPSHOT", package_type: "maven", creator_id: 815, status: "hidden", last_downloaded_at: nil>3070 with invalid status param3071 is expected to raise Packages::FinderHelper::InvalidStatusError3072 group has package of all types3073 behaves like with package type3074 is expected to contain exactly #<Packages::Package id: 37, project_id: 330, created_at: "2023-03-30 11:51:40.403970021 +0000", updat..."1.20-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>3075 behaves like with package type3076 is expected to contain exactly #<Packages::Package id: 38, project_id: 330, created_at: "2023-03-30 11:51:40.489911509 +0000", updat... version: "1.0.3", package_type: "npm", creator_id: 815, status: "default", last_downloaded_at: nil>3077 behaves like with package type3078 is expected to contain exactly #<Packages::Package id: 40, project_id: 330, created_at: "2023-03-30 11:51:40.801523908 +0000", updat...ersion: "1.0.0", package_type: "conan", creator_id: 815, status: "default", last_downloaded_at: nil>3079 behaves like with package type3080 is expected to contain exactly #<Packages::Package id: 41, project_id: 330, created_at: "2023-03-30 11:51:40.927789861 +0000", updat...ersion: "1.0.3", package_type: "nuget", creator_id: 815, status: "default", last_downloaded_at: nil>3081 behaves like with package type3082 is expected to contain exactly #<Packages::Package id: 42, project_id: 330, created_at: "2023-03-30 11:51:40.950803368 +0000", updat...version: "1.0.2", package_type: "pypi", creator_id: 815, status: "default", last_downloaded_at: nil>3083 behaves like with package type3084 is expected to contain exactly #<Packages::Package id: 43, project_id: 330, created_at: "2023-03-30 11:51:40.983355274 +0000", updat...ion: "1.0.2", package_type: "composer", creator_id: 815, status: "default", last_downloaded_at: nil>3085 behaves like with package type3086 is expected to contain exactly #<Packages::Package id: 44, project_id: 330, created_at: "2023-03-30 11:51:40.991652513 +0000", updat...sion: "1.0.0", package_type: "generic", creator_id: 815, status: "default", last_downloaded_at: nil>3087 behaves like with package type3088 is expected to contain exactly #<Packages::Package id: 45, project_id: 330, created_at: "2023-03-30 11:51:40.999141212 +0000", updat...sion: "v1.0.2", package_type: "golang", creator_id: 815, status: "default", last_downloaded_at: nil>3089 behaves like with package type3090 is expected to contain exactly #<Packages::Package id: 46, project_id: 330, created_at: "2023-03-30 11:51:41.313572130 +0000", updat...rsion: "1.0-2", package_type: "debian", creator_id: 815, status: "default", last_downloaded_at: nil>3091 behaves like with package type3092 is expected to contain exactly #<Packages::Package id: 47, project_id: 330, created_at: "2023-03-30 11:51:41.563211407 +0000", updat...rsion: "1.2", package_type: "rubygems", creator_id: 815, status: "default", last_downloaded_at: nil>3093 behaves like with package type3094 is expected to contain exactly #<Packages::Package id: 48, project_id: 330, created_at: "2023-03-30 11:51:41.608185961 +0000", updat...ersion: "v1.0.2", package_type: "helm", creator_id: 815, status: "default", last_downloaded_at: nil>3095 behaves like with package type3096 is expected to contain exactly #<Packages::Package id: 49, project_id: 330, created_at: "2023-03-30 11:51:41.636078977 +0000", updat...0.0", package_type: "terraform_module", creator_id: 815, status: "default", last_downloaded_at: nil>3097 behaves like with package type3098 is expected to contain exactly #<Packages::Package id: 50, project_id: 330, created_at: "2023-03-30 11:51:41.662412894 +0000", updat...version: "v1.0.2", package_type: "rpm", creator_id: 815, status: "default", last_downloaded_at: nil>3099 group has no packages3100 is expected to be empty3101 group is nil3102 is expected to be empty3103 package type is nil3104 is expected to contain exactly #<Packages::Package id: 52, project_id: 330, created_at: "2023-03-30 11:51:45.179912948 +0000", updat..."1.22-SNAPSHOT", package_type: "maven", creator_id: 815, status: "default", last_downloaded_at: nil>3105 with invalid package_type3106 is expected to raise Packages::FinderHelper::InvalidPackageTypeError3107Gitlab::Database::Migrations::BackgroundMigrationHelpers3108 when the migration is running against the main database3109 behaves like helpers that enqueue background migrations3110 #queue_background_migration_jobs_by_range_at_intervals3111 when the model has an ID column3112-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3113The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:45 UTC."3114 returns the final expected delay3115-- Scheduled 0 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3116The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-03-30 11:51:46 UTC."3117 returns zero when nothing gets queued3118 when the delay_interval is smaller than the minimum3119-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 120 seconds.3120The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2023-03-30 11:55:46 UTC."3121 sets the delay_interval to the minimum value3122 with batch_size option3123-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3124The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:47 UTC."3125 queues jobs correctly3126 without batch_size option3127-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3128The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:01:47 UTC."3129 queues jobs correctly3130 with other_job_arguments option3131-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3132The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:01:47 UTC."3133 queues jobs correctly3134 with initial_delay option3135-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3136The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:48 UTC."3137 queues jobs correctly3138 with track_jobs option3139-- Scheduled 1 ::FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3140The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:01:48 UTC."3141 creates a record for each job in the database3142 without track_jobs option3143-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3144The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:01:48 UTC."3145 does not create records in the database3146 when the model specifies a primary_column_name3147-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3148The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:49 UTC."3149 returns the final expected delay3150 when the primary_column_name is a string3151-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3152The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:01:50 UTC."3153 does not raise error3154 when the primary_column_name is not an integer or a string3155 raises error3156 when the primary_column_name does not exist3157 raises error3158 when the model doesn't have an ID or primary_column_name column3159 raises error (for now)3160 when using Migration[2.0]3161 when restriction is set to gitlab_shared3162 does raise an exception3163 when within transaction3164 does raise an exception3165 #requeue_background_migration_jobs_by_range_at_intervals3166-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3167The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:52 UTC."3168 returns the expected duration3169-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3170The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:52 UTC."3171 queues pending jobs3172 when using Migration[2.0]3173main: -- Scheduled 2 TestJob jobs with an interval of 600 seconds.3174The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:52 UTC."3175 does re-enqueue pending jobs3176 when restriction is set3177 does raise an exception3178 when within transaction3179 does raise an exception3180 when nothing is queued3181-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.3182The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-03-30 11:51:53 UTC."3183 returns expected duration of zero when nothing gets queued3184 with batch_size option3185-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3186The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:53 UTC."3187 returns the expected duration3188-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3189The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:53 UTC."3190 queues pending jobs3191-- Scheduled 0 TestJob jobs with an interval of 600 seconds.3192The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-03-30 11:51:53 UTC."3193 retrieve jobs in batches3194 with initial_delay option3195-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3196The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2023-03-30 12:14:53 UTC."3197 returns the expected duration3198-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3199The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2023-03-30 12:14:53 UTC."3200 queues pending jobs3201 when nothing is queued3202-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.3203The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-03-30 11:51:53 UTC."3204 returns expected duration of zero when nothing gets queued3205 #finalize_background_migration3206 behaves like finalized tracked background migration3207 processed the scheduled sidekiq queue3208 processed the async sidekiq queue3209 removes 'pending' tracked jobs3210 removes 'succeeded' tracked jobs3211 when within transaction3212 does raise an exception3213 when using Migration[2.0]3214 behaves like finalized tracked background migration3215 processed the scheduled sidekiq queue3216 processed the async sidekiq queue3217 removes 'pending' tracked jobs3218 removes 'succeeded' tracked jobs3219 when restriction is set3220 does raise an exception3221 when running migration in reconfigured ActiveRecord::Base context3222 behaves like reconfigures connection stack3223 does restore connection hierarchy3224 when removing all tracked job records3225 behaves like finalized tracked background migration3226 processed the scheduled sidekiq queue3227 processed the async sidekiq queue3228 removes 'pending' tracked jobs3229 removes 'succeeded' tracked jobs3230 behaves like removed tracked jobs3231 removes 'pending' tracked jobs3232 behaves like removed tracked jobs3233 removes 'succeeded' tracked jobs3234 when retaining all tracked job records3235 retains 'succeeded' tracked jobs3236 behaves like finalized background migration3237 processed the scheduled sidekiq queue3238 processed the async sidekiq queue3239 removes 'pending' tracked jobs3240 during retry race condition3241 behaves like finalized tracked background migration3242 processed the scheduled sidekiq queue3243 processed the async sidekiq queue3244 removes 'pending' tracked jobs3245 removes 'succeeded' tracked jobs3246 #migrate_in3247 calls perform_in for the correct worker3248 pushes a context with the current class name as caller_id3249 when a specific coordinator is given3250 uses that coordinator3251 #delete_queued_jobs3252 deletes all queued jobs for the given background migration3253 when the migration is running against the ci database3254 behaves like helpers that enqueue background migrations3255 #queue_background_migration_jobs_by_range_at_intervals3256 when the model has an ID column3257-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3258The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:56 UTC."3259 returns the final expected delay3260-- Scheduled 0 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3261The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-03-30 11:51:56 UTC."3262 returns zero when nothing gets queued3263 when the delay_interval is smaller than the minimum3264-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 120 seconds.3265The migration is expected to take at least 240 seconds. Expect all jobs to have completed after 2023-03-30 11:55:57 UTC."3266 sets the delay_interval to the minimum value3267 with batch_size option3268-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3269The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:57 UTC."3270 queues jobs correctly3271 without batch_size option3272-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3273The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:01:57 UTC."3274 queues jobs correctly3275 with other_job_arguments option3276-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3277The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:01:58 UTC."3278 queues jobs correctly3279 with initial_delay option3280-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3281The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:58 UTC."3282 queues jobs correctly3283 with track_jobs option3284-- Scheduled 1 ::FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3285The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:01:58 UTC."3286 creates a record for each job in the database3287 without track_jobs option3288-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3289The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:01:59 UTC."3290 does not create records in the database3291 when the model specifies a primary_column_name3292-- Scheduled 2 FooJob jobs with a maximum of 2 records per batch and an interval of 600 seconds.3293The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:11:59 UTC."3294 returns the final expected delay3295 when the primary_column_name is a string3296-- Scheduled 1 FooJob jobs with a maximum of 1000 records per batch and an interval of 600 seconds.3297The migration is expected to take at least 600 seconds. Expect all jobs to have completed after 2023-03-30 12:02:00 UTC."3298 does not raise error3299 when the primary_column_name is not an integer or a string3300 raises error3301 when the primary_column_name does not exist3302 raises error3303 when the model doesn't have an ID or primary_column_name column3304 raises error (for now)3305 when using Migration[2.0]3306 when restriction is set to gitlab_shared3307 does raise an exception3308 when within transaction3309 does raise an exception3310 #requeue_background_migration_jobs_by_range_at_intervals3311-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3312The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:12:02 UTC."3313 returns the expected duration3314-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3315The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:12:03 UTC."3316 queues pending jobs3317 when using Migration[2.0]3318ci: -- Scheduled 2 TestJob jobs with an interval of 600 seconds.3319The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:12:03 UTC."3320 does re-enqueue pending jobs3321 when restriction is set3322 does raise an exception3323 when within transaction3324 does raise an exception3325 when nothing is queued3326-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.3327The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-03-30 11:52:03 UTC."3328 returns expected duration of zero when nothing gets queued3329 with batch_size option3330-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3331The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:12:03 UTC."3332 returns the expected duration3333-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3334The migration is expected to take at least 1200 seconds. Expect all jobs to have completed after 2023-03-30 12:12:03 UTC."3335 queues pending jobs3336-- Scheduled 0 TestJob jobs with an interval of 600 seconds.3337The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-03-30 11:52:03 UTC."3338 retrieve jobs in batches3339 with initial_delay option3340-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3341The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2023-03-30 12:15:03 UTC."3342 returns the expected duration3343-- Scheduled 2 TestJob jobs with an interval of 600 seconds.3344The migration is expected to take at least 1380 seconds. Expect all jobs to have completed after 2023-03-30 12:15:03 UTC."3345 queues pending jobs3346 when nothing is queued3347-- Scheduled 0 FakeJob jobs with an interval of 600 seconds.3348The migration is expected to take at least 0 seconds. Expect all jobs to have completed after 2023-03-30 11:52:03 UTC."3349 returns expected duration of zero when nothing gets queued3350 #finalize_background_migration3351 behaves like finalized tracked background migration3352 processed the scheduled sidekiq queue3353 processed the async sidekiq queue3354 removes 'pending' tracked jobs3355 removes 'succeeded' tracked jobs3356 when within transaction3357 does raise an exception3358 when using Migration[2.0]3359 behaves like finalized tracked background migration3360 processed the scheduled sidekiq queue3361 processed the async sidekiq queue3362 removes 'pending' tracked jobs3363 removes 'succeeded' tracked jobs3364 when restriction is set3365 does raise an exception3366 when running migration in reconfigured ActiveRecord::Base context3367 behaves like reconfigures connection stack3368 does restore connection hierarchy3369 when removing all tracked job records3370 behaves like finalized tracked background migration3371 processed the scheduled sidekiq queue3372 processed the async sidekiq queue3373 removes 'pending' tracked jobs3374 removes 'succeeded' tracked jobs3375 behaves like removed tracked jobs3376 removes 'pending' tracked jobs3377 behaves like removed tracked jobs3378 removes 'succeeded' tracked jobs3379 when retaining all tracked job records3380 retains 'succeeded' tracked jobs3381 behaves like finalized background migration3382 processed the scheduled sidekiq queue3383 processed the async sidekiq queue3384 removes 'pending' tracked jobs3385 during retry race condition3386 behaves like finalized tracked background migration3387 processed the scheduled sidekiq queue3388 processed the async sidekiq queue3389 removes 'pending' tracked jobs3390 removes 'succeeded' tracked jobs3391 #migrate_in3392 calls perform_in for the correct worker3393 pushes a context with the current class name as caller_id3394 when a specific coordinator is given3395 uses that coordinator3396 #delete_queued_jobs3397 deletes all queued jobs for the given background migration3398 #delete_job_tracking3399 with default status3400 retains 'pending' tracked jobs3401 removes 'succeeded' tracked jobs3402 with explicit status3403 removes 'pending' tracked jobs3404 removes 'succeeded' tracked jobs3405Gitlab::Utils::StrongMemoize3406 # order random3407 #strong_memoized?3408 behaves like memoization check3409 for method_name3410 returns false if the value is uncached3411 returns true if the value is cached3412 behaves like memoization check3413 for enabled?3414 returns false if the value is uncached3415 returns true if the value is cached3416 #strong_memoize3417 with value3418 raises exception for invalid type as key3419 raises exception for invalid characters in key3420 behaves like caching the value3421 only calls the block once3422 returns and defines the instance variable for the exact value3423 with value false3424 raises exception for invalid type as key3425 raises exception for invalid characters in key3426 behaves like caching the value3427 only calls the block once3428 returns and defines the instance variable for the exact value3429 with value true3430 raises exception for invalid type as key3431 raises exception for invalid characters in key3432 behaves like caching the value3433 only calls the block once3434 returns and defines the instance variable for the exact value3435 with value value3436 raises exception for invalid type as key3437 raises exception for invalid characters in key3438 behaves like caching the value3439 only calls the block once3440 returns and defines the instance variable for the exact value3441 with value 03442 raises exception for invalid type as key3443 raises exception for invalid characters in key3444 behaves like caching the value3445 only calls the block once3446 returns and defines the instance variable for the exact value3447 with value [0]3448 raises exception for invalid type as key3449 raises exception for invalid characters in key3450 behaves like caching the value3451 only calls the block once3452 returns and defines the instance variable for the exact value3453 memory allocation3454 for Symbol3455 does allocate exactly one string when fetching value3456 does allocate exactly one string when storing value3457 for String3458 does allocate exactly one string when fetching value3459 does allocate exactly one string when storing value3460 .strong_memoize_attr3461 memoized after method definition with value3462 calls the existing .method_added3463 retains method arity3464 behaves like caching the value3465 only calls the block once3466 returns and defines the instance variable for the exact value3467 memoized after method definition with value false3468 calls the existing .method_added3469 retains method arity3470 behaves like caching the value3471 only calls the block once3472 returns and defines the instance variable for the exact value3473 memoized after method definition with value true3474 calls the existing .method_added3475 retains method arity3476 behaves like caching the value3477 only calls the block once3478 returns and defines the instance variable for the exact value3479 memoized after method definition with value value3480 calls the existing .method_added3481 retains method arity3482 behaves like caching the value3483 only calls the block once3484 returns and defines the instance variable for the exact value3485 memoized after method definition with value 03486 calls the existing .method_added3487 retains method arity3488 behaves like caching the value3489 only calls the block once3490 returns and defines the instance variable for the exact value3491 memoized after method definition with value [0]3492 calls the existing .method_added3493 retains method arity3494 behaves like caching the value3495 only calls the block once3496 returns and defines the instance variable for the exact value3497 method visibility3498 sets private visibility3499 sets protected visibility3500 sets public visibility3501 when method doesn't exist3502 fails when strong-memoizing a nonexistent method3503 when memoized method has parameters3504 raises an error3505 .normalize_key3506 input: :key, output: :key, valid: true3507 is expected to eq :key3508 is a valid ivar name3509 input: "key", output: "key", valid: true3510 is expected to eq "key"3511 is a valid ivar name3512 input: :key?, output: "key?", valid: true3513 is expected to eq "key?"3514 is a valid ivar name3515 input: "key?", output: "key?", valid: true3516 is expected to eq "key?"3517 is a valid ivar name3518 input: :key!, output: "key!", valid: true3519 is expected to eq "key!"3520 is a valid ivar name3521 input: "key!", output: "key!", valid: true3522 is expected to eq "key!"3523 is a valid ivar name3524 input: :"ke?y", output: :"ke?y", valid: false3525 is expected to eq :"ke?y"3526 raises a NameError error3527 input: "ke?y", output: "ke?y", valid: false3528 is expected to eq "ke?y"3529 raises a NameError error3530 input: :"ke!y", output: :"ke!y", valid: false3531 is expected to eq :"ke!y"3532 raises a NameError error3533 input: "ke!y", output: "ke!y", valid: false3534 is expected to eq "ke!y"3535 raises a NameError error3536 #strong_memoize_with3537 with value3538 only calls the block once3539 returns and defines the instance variable for the exact value3540 with value false3541 only calls the block once3542 returns and defines the instance variable for the exact value3543 with value true3544 only calls the block once3545 returns and defines the instance variable for the exact value3546 with value value3547 only calls the block once3548 returns and defines the instance variable for the exact value3549 with value 03550 only calls the block once3551 returns and defines the instance variable for the exact value3552 with value [0]3553 only calls the block once3554 returns and defines the instance variable for the exact value3555 #clear_memoization3556 behaves like clearing memoization3557 removes the instance variable3558 behaves like clearing memoization3559 removes the instance variable3560ProjectStatistics3561 associations3562 is expected to belong to project required: false3563 is expected to belong to namespace required: false3564 scopes3565 .for_project_ids3566 returns only requested projects3567 statistics columns3568 supports bigint values3569 namespace relatable columns3570 treats the correct columns as namespace relatable3571 #total_repository_size3572 sums repository and LFS object size3573 #wiki_size3574 is initialized with not null value3575 coerces any nil value to 03576 #snippets_size3577 is initialized with not null value3578 coerces any nil value to 03579 #refresh!3580 without arguments3581 sums all counters3582 when passing an only: argument3583 only updates the given columns3584 without repositories3585 does not crash3586 with deleted repositories3587 does not crash3588 when the column is namespace relatable3589 when arguments are passed3590 schedules the aggregation worker3591 when no argument is passed3592 schedules the aggregation worker3593 when the column is not namespace relatable3594 does not schedules an aggregation worker3595 when the database is read-only3596 does nothing3597 behaves like obtaining lease to update database3598 when it is unable to obtain lock3599 logs a warning3600 when feature flag counter_attribute_db_lease_for_update is disabled3601 does not attempt to get a lock3602 #update_commit_count3603 stores the number of commits in the repository3604 #update_repository_size3605 stores the size of the repository3606 #update_wiki_size3607 stores the size of the wiki3608 #update_snippets_size3609 stores the size of snippets3610 when not all snippets has statistics3611 stores the size of snippets with statistics3612 #update_lfs_objects_size3613 stores the size of related LFS objects3614 #update_uploads_size3615 stores the size of related uploaded files3616 #update_container_registry_size3617 stores the project container registry repositories size3618 handles nil values for the repositories size3619 #update_storage_size3620 sums the relevant storage counters3621 excludes the container_registry_size3622 works during wiki_size backfill3623 when nullable columns are nil3624 does not raise any error3625 #refresh_storage_size!3626 recalculates storage size from its components and save it3627 when nullable columns are nil3628 does not raise any error3629 recalculates storage size from its components3630 behaves like obtaining lease to update database3631 when it is unable to obtain lock3632 logs a warning3633 when feature flag counter_attribute_db_lease_for_update is disabled3634 does not attempt to get a lock3635 .increment_statistic3636 when adjusting :build_artifacts_size3637 behaves like a statistic that increases storage_size asynchronously3638 stores the increment temporarily in Redis3639 schedules a worker to update the statistic and storage_size async3640 when the project is pending delete3641 does not change the statistics3642 when adjusting :pipeline_artifacts_size3643 behaves like a statistic that increases storage_size synchronously3644 increases the statistic by that amount3645 increases also storage size by that amount3646 schedules a namespace aggregation worker3647 when the project is pending delete3648 does not change the statistics3649 when adjusting :packages_size3650 behaves like a statistic that increases storage_size asynchronously3651 stores the increment temporarily in Redis3652 schedules a worker to update the statistic and storage_size async3653 when the project is pending delete3654 does not change the statistics3655 when the amount is 03656 does not execute a query3657 when using an invalid column3658 raises an error3659 .bulk_increment_statistic3660 when adjusting :build_artifacts_size3661 behaves like a statistic that increases storage_size asynchronously3662 stores the increment temporarily in Redis3663 schedules a worker to update the statistic and storage_size async3664 when the project is pending delete3665 does not change the statistics3666 when :project_statistics_bulk_increment flag is disabled3667 calls increment_statistic on once with the sum of the increments3668 behaves like a statistic that increases storage_size asynchronously3669 stores the increment temporarily in Redis3670 schedules a worker to update the statistic and storage_size async3671 when the project is pending delete3672 does not change the statistics3673 when adjusting :pipeline_artifacts_size3674 behaves like a statistic that increases storage_size synchronously3675 increases the statistic by that amount3676 increases also storage size by that amount3677 schedules a namespace aggregation worker3678 when the project is pending delete3679 does not change the statistics3680 when adjusting :packages_size3681 behaves like a statistic that increases storage_size asynchronously3682 stores the increment temporarily in Redis3683 schedules a worker to update the statistic and storage_size async3684 when the project is pending delete3685 does not change the statistics3686 when using an invalid column3687 raises an error3688Gitlab::Git::Blob3689 initialize3690 handles nil data3691 records blob size3692 when untruncated3693 attempts to record gitlab_blob_truncated_false3694 when truncated3695 attempts to record gitlab_blob_truncated_true3696 .find with Gitaly enabled3697 behaves like .find3698 nil path3699 is expected to eq nil3700 utf-8 branch3701 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3702 blank path3703 is expected to eq nil3704 file in subdir3705 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3706 is expected to eq "popen.rb"3707 is expected to eq "files/ruby/popen.rb"3708 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3709 is expected to eq "require 'fi"3710 is expected to eq 6693711 is expected to eq "100644"3712 file in root3713 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"3714 is expected to eq ".gitignore"3715 is expected to eq ".gitignore"3716 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3717 is expected to eq "*.rbc\n*.sas"3718 is expected to eq 2413719 is expected to eq "100644"3720 is expected not to be binary in repo3721 file in root with leading slash3722 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"3723 is expected to eq ".gitignore"3724 is expected to eq ".gitignore"3725 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3726 is expected to eq "*.rbc\n*.sas"3727 is expected to eq 2413728 is expected to eq "100644"3729 non-exist file3730 is expected to be nil3731 six submodule3732 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"3733 is expected to eq ""3734 does not get messed up by load_all_data!3735 does not mark the blob as binary3736 large file3737 is expected to eq 1118033738 is expected to eq 10003739 check that this test is sane3740 can load all data3741 marks the blob as binary3742 .find with Rugged enabled3743 calls out to the Rugged implementation3744 behaves like .find3745 nil path3746 is expected to eq nil3747 utf-8 branch3748 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3749 blank path3750 is expected to eq nil3751 file in subdir3752 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3753 is expected to eq "popen.rb"3754 is expected to eq "files/ruby/popen.rb"3755 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3756 is expected to eq "require 'fi"3757 is expected to eq 6693758 is expected to eq "100644"3759 file in root3760 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"3761 is expected to eq ".gitignore"3762 is expected to eq ".gitignore"3763 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3764 is expected to eq "*.rbc\n*.sas"3765 is expected to eq 2413766 is expected to eq "100644"3767 is expected not to be binary in repo3768 file in root with leading slash3769 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"3770 is expected to eq ".gitignore"3771 is expected to eq ".gitignore"3772 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3773 is expected to eq "*.rbc\n*.sas"3774 is expected to eq 2413775 is expected to eq "100644"3776 non-exist file3777 is expected to be nil3778 six submodule3779 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"3780 is expected to eq ""3781 does not get messed up by load_all_data!3782 does not mark the blob as binary3783 large file3784 is expected to eq 1118033785 is expected to eq 10003786 check that this test is sane3787 can load all data3788 marks the blob as binary3789 .raw3790 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3791 is expected to eq "require 'fi"3792 is expected to eq 6693793 is expected to be falsey3794 is expected to be nil3795 .batch3796 is expected to eq 23797 first blob3798 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"3799 is expected to eq "popen.rb"3800 is expected to eq "files/ruby/popen.rb"3801 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3802 is expected to eq "require 'fi"3803 is expected to eq 6693804 is expected to eq "100644"3805 second blob3806 is expected to eq "409f37c4f05865e4fb208c771485f211a22c4c2d"3807 is expected to eq ""3808 does not mark the blob as binary3809 limiting3810 positive3811 is expected to eq 103812 zero3813 only loads the metadata3814 negative3815 ignores MAX_DATA_DISPLAY_SIZE3816 when large number of blobs requested3817 fetches the blobs in batches3818 .batch_metadata3819 returns an empty data attribute3820 .batch_lfs_pointers3821 returns a list of Gitlab::Git::Blob3822 accepts blob IDs as a lazy enumerator3823 handles empty list of IDs gracefully3824 silently ignores non lfs objects3825 avoids loading large blobs into memory3826 encoding3827 file with russian text3828 has the correct blob attributes3829 file with Japanese text3830 has the correct blob attributes3831 file with ISO-8859 text3832 has the correct blob attributes3833 mode3834 file regular3835 is expected to eq "regex.rb"3836 is expected to eq "files/ruby/regex.rb"3837 is expected to eq 12003838 is expected to eq "100644"3839 file binary3840 is expected to eq "ls"3841 is expected to eq "files/executables/ls"3842 is expected to eq 233843 is expected to eq "100755"3844 file symlink to regular3845 is expected to eq "symlink"3846 is expected to eq "symlink"3847 is expected to eq 63848 is expected to eq "120000"3849 lfs_pointers3850 file a valid lfs pointer3851 is expected to eq true3852 is expected to eq "96f74c6fe7a2979eefb9ec74a5dfc6888fb25543cf99b77586b79afea1da6f97"3853 is expected to eq 12196963854 is expected to eq "ff0ab3afd1616ff78d0331865d922df103b64cf0"3855 is expected to eq "emoji.png"3856 is expected to eq "files/images/emoji.png"3857 is expected to eq 1323858 is expected to eq "100644"3859 #load_all_data!3860 loads missing data3861 with a fully loaded blob3862 doesn't perform any loading3863 #truncated?3864 when blob.size is nil3865 returns false3866 when blob.data is missing3867 returns false3868 when the blob is truncated3869 returns true3870 when the blob is untruncated3871 returns false3872 metrics3873 defines :gitlab_blob_truncated_true counter3874 defines :gitlab_blob_truncated_false counter3875 defines :gitlab_blob_size histogram3876 #lines3877 when the encoding cannot be detected3878 successfully splits the data3879Integrations::Bamboo3880 behaves like Integrations::BaseCi3881 default values3882 is expected to eq :ci3883 behaves like Integrations::ResetSecretFields3884 #exposing_secrets_fields3885 returns an array of strings3886 #reset_secret_fields?3887 returns false if no exposing field has changed3888 returns true if any exposing field has changed3889 validation callback3890 when an exposing field has changed3891 clears all secret fields3892 when a secret field has been updated3893 does not clear this secret field3894 when a secret field has been updated with the same value3895 does not clear this secret field3896 when no exposing field has changed3897 does not clear any secret fields3898 accessors3899 is expected to respond to #enable_ssl_verification3900 is expected to respond to #enable_ssl_verification?3901 #initialize_properties3902 enables the setting by default3903 does not enable the setting if the record is already persisted3904 does not enable the setting if a custom value was set3905 #fields3906 inserts the checkbox field after the first URL field, or at the end3907 does not insert the field repeatedly3908 Validations3909 when active3910 is expected to validate that :build_key cannot be empty/falsy3911 is expected to validate that :bamboo_url cannot be empty/falsy3912 behaves like issue tracker integration URL attribute3913 is expected to allow :bamboo_url to be ‹"https://example.com"›3914 is expected not to allow :bamboo_url to be ‹"example.com"›3915 is expected not to allow :bamboo_url to be ‹"ftp://example.com"›3916 is expected not to allow :bamboo_url to be ‹"herp-and-derp"›3917 #username3918 does not validate the presence of username if password is nil3919 validates the presence of username if password is present3920 #password3921 does not validate the presence of password if username is nil3922 validates the presence of password if username is present3923 when inactive3924 is expected not to validate that :build_key cannot be empty/falsy3925 is expected not to validate that :bamboo_url cannot be empty/falsy3926 is expected not to validate that :username cannot be empty/falsy3927 is expected not to validate that :password cannot be empty/falsy3928 #execute3929 runs update and build action3930 #build_page3931 returns the contents of the reactive cache3932 #commit_status3933 returns the contents of the reactive cache3934 #calculate_reactive_cache3935 when Bamboo API returns single result3936 behaves like reactive cache calculation3937 #build_page3938 returns a specific URL when status is 5003939 returns a specific URL when response has no results3940 returns a build URL when bamboo_url has no trailing slash3941 bamboo_url has trailing slash3942 returns a build URL3943 #commit_status3944 sets commit status to :error when status is 5003945 sets commit status to "pending" when status is 4043946 sets commit status to "pending" when response has no results3947 sets commit status to "success" when build state contains Success3948 sets commit status to "failed" when build state contains Failed3949 sets commit status to "pending" when build state contains Pending3950 sets commit status to :error when build state is unknown3951 sets commit status to :error with a Net::OpenTimeout error3952 sets commit status to :error with a Net::ReadTimeout error3953 sets commit status to :error with a Net::WriteTimeout error3954 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3955 sets commit status to :error with a EOFError error3956 sets commit status to :error with a SocketError error3957 sets commit status to :error with a OpenSSL::SSL::SSLError error3958 sets commit status to :error with a OpenSSL::OpenSSLError error3959 sets commit status to :error with a Errno::ECONNRESET error3960 sets commit status to :error with a Errno::ECONNREFUSED error3961 sets commit status to :error with a Errno::EHOSTUNREACH error3962 sets commit status to :error with a Errno::ENETUNREACH error3963 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3964 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3965 sets commit status to :error with a Net::HTTPBadResponse error3966 when Bamboo API returns an array of results and we only consider the last one3967 behaves like reactive cache calculation3968 #build_page3969 returns a specific URL when status is 5003970 returns a specific URL when response has no results3971 returns a build URL when bamboo_url has no trailing slash3972 bamboo_url has trailing slash3973 returns a build URL3974 #commit_status3975 sets commit status to :error when status is 5003976 sets commit status to "pending" when status is 4043977 sets commit status to "pending" when response has no results3978 sets commit status to "success" when build state contains Success3979 sets commit status to "failed" when build state contains Failed3980 sets commit status to "pending" when build state contains Pending3981 sets commit status to :error when build state is unknown3982 sets commit status to :error with a Net::OpenTimeout error3983 sets commit status to :error with a Net::ReadTimeout error3984 sets commit status to :error with a Net::WriteTimeout error3985 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error3986 sets commit status to :error with a EOFError error3987 sets commit status to :error with a SocketError error3988 sets commit status to :error with a OpenSSL::SSL::SSLError error3989 sets commit status to :error with a OpenSSL::OpenSSLError error3990 sets commit status to :error with a Errno::ECONNRESET error3991 sets commit status to :error with a Errno::ECONNREFUSED error3992 sets commit status to :error with a Errno::EHOSTUNREACH error3993 sets commit status to :error with a Errno::ENETUNREACH error3994 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error3995 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error3996 sets commit status to :error with a Net::HTTPBadResponse error3997Gitlab::Checks::BranchCheck3998 #validate!3999 does not raise any error4000 trying to delete the default branch4001 raises an error4002 prohibited branches check4003 prohibits 40-character hexadecimal branch names4004 doesn't prohibit a nested hexadecimal in a branch name4005 deleting a hexadecimal branch4006 doesn't prohibit the deletion of a hexadecimal branch name4007 protected branches check4008 raises an error if the user is not allowed to do forced pushes to protected branches4009 raises an error if the user is not allowed to merge to protected branches4010 raises an error if the user is not allowed to push to protected branches4011 when user has push access4012 if protected branches is allowed to force push4013 allows force push4014 if protected branches is not allowed to force push4015 prevents force push4016 when user does not have push access4017 if protected branches is allowed to force push4018 prevents force push4019 if protected branches is not allowed to force push4020 prevents force push4021 when project repository is empty4022 user is not allowed to push to protected branches4023 raises an error4024 user is allowed to push to protected branches4025 allows branch creation4026 branch creation4027 user can push to branch4028 does not raise an error4029 user cannot push to branch4030 user cannot merge to branch4031 raises an error4032 user can merge to branch4033 newrev isn't in any protected branches4034 raises an error4035 newrev is included in a protected branch4036 via web interface4037 allows branch creation4038 via SSH4039 raises an error4040 branch deletion4041 if the user is not allowed to delete protected branches4042 raises an error4043 if the user is allowed to delete protected branches4044 through the web interface4045 allows branch deletion4046 over SSH or HTTP4047 raises an error4048Members::InviteService4049 when there is a valid member invited4050 successfully creates a member4051 does not create task issues4052 behaves like records an onboarding progress action4053 is expected to receive execute({:action=>:user_added}) 1 time4054 when email belongs to an existing user as a confirmed secondary email4055 adds an existing user to members4056 when email belongs to an existing user as an unconfirmed secondary email4057 does not link the email with any user and successfully creates a member as an invite for that email4058 when invites are passed as array4059 with emails4060 successfully creates members4061 with user_id as integers4062 successfully creates members4063 with user_id as strings4064 successfully creates members4065 with a mixture of emails and user_id4066 successfully creates members4067 with multiple invites passed as strings4068 with emails4069 successfully creates members4070 with user_id4071 successfully creates members4072 with a mixture of emails and user_id4073 successfully creates members4074 when invites formats are mixed4075 when user_id is an array and emails is a string4076 successfully creates members4077 when user_id is a string and emails is an array4078 successfully creates members4079 when invites are passed in different formats4080 when emails are passed as an empty string4081 returns an error4082 when user_id are passed as an empty string4083 returns an error4084 when user_id and emails are both passed as empty strings4085 returns an error4086 when user_id is passed as an integer4087 successfully creates member4088 when invite params are not included4089 returns an error4090 when email is not a valid email format4091 with singular email4092 returns an error4093 behaves like does not record an onboarding progress action4094 is expected not to receive new(*(any args)) 0 times4095 with user_id and singular invalid email4096 has partial success4097 with duplicate invites4098 with duplicate emails4099 only creates one member per unique invite4100 with duplicate user ids4101 only creates one member per unique invite4102 with duplicate member by adding as user id and email4103 only creates one member per unique invite4104 when observing invite limits4105 with emails and in general4106 when over the allowed default limit of emails4107 limits the number of emails to 1004108 when over the allowed custom limit of emails4109 limits the number of emails to the limit supplied4110 when limit allowed is disabled via limit param4111 does not limit number of emails4112 with user_id4113 limits the number of users to 1004114 with an existing user4115 with email4116 adds an existing user to members4117 with unconfirmed primary email4118 adds an existing user to members4119 with user_id4120 adds an existing user to members4121 behaves like records an onboarding progress action4122 is expected to receive execute({:action=>:user_added}) 1 time4123 when assigning tasks to be done4124 creates 2 task issues4125 when access level is not valid4126 with email4127 returns an error4128 with user_id4129 returns an error4130 with a mix of user_id and email4131 returns errors4132 when member already exists4133 with email4134 adds new email and allows already invited members to be re-invited by email and updates the member access4135 when email is already a member with a user on the project4136 allows re-invite of an already invited email and updates the access_level4137 when email belongs to an existing user as a confirmed secondary email4138 allows re-invite to an already invited email4139 with user_id that already exists4140 does not add the member again and is successful4141 with user_id that already exists with a lower access_level4142 does not add the member again and updates the access_level4143 with user_id that already exists with a higher access_level4144 does not add the member again and updates the access_level4145 with user_id that already exists in a parent group4146 when access_level is lower than inheriting member4147 does not add the member and returns an error4148 when access_level is the same as the inheriting member4149 adds the member with correct access_level4150 when access_level is greater than the inheriting member4151 adds the member with correct access_level4152Ci::Processable4153 delegations4154 is expected to delegate #merge_request? to the #pipeline object4155 is expected to delegate #merge_request_ref? to the #pipeline object4156 is expected to delegate #legacy_detached_merge_request_pipeline? to the #pipeline object4157 #clone4158 when the processable to be cloned is a bridge4159 behaves like clones the processable4160 creates a new processable that represents the old processable4161 clone accessors4162 clones the processable attributes4163 clones only the needs attributes4164 when the processable has protected: nil4165 clones the protected job attribute4166 reject accessors4167 does not clone rejected attributes4168 when the processable to be cloned is a build4169 has the correct number of known attributes4170 behaves like clones the processable4171 creates a new processable that represents the old processable4172 clone accessors4173 clones the processable attributes4174 clones only the needs attributes4175 when the processable has protected: nil4176 clones the protected job attribute4177 reject accessors4178 does not clone rejected attributes4179 when it has a deployment4180 persists the expanded environment name4181 when it has a dynamic environment4182 re-uses the previous persisted environment4183 when the processable has job variables4184 only clones the internal job variables4185 #retryable4186 when the processable is a bridge4187 behaves like retryable processable4188 when processable is successful4189 is expected to be retryable4190 when processable is failed4191 is expected to be retryable4192 when processable is canceled4193 is expected to be retryable4194 when the processable is a build4195 when the processable is retryable4196 behaves like retryable processable4197 when processable is successful4198 is expected to be retryable4199 when processable is failed4200 is expected to be retryable4201 when processable is canceled4202 is expected to be retryable4203 when deployment is rejected4204 is expected not to be retryable4205 when build is waiting for deployment approval4206 is expected not to be retryable4207 when the processable is non-retryable4208 behaves like non-retryable processable4209 when processable is skipped4210 is expected not to be retryable4211 when processable is degenerated4212 is expected not to be retryable4213 when a canceled processable has been retried already4214 is expected not to be retryable4215 when processable is running4216 is expected not to be retryable4217 #aggregated_needs_names4218 with created status4219 with needs4220 returns all processables4221 returns all needs4222 without needs4223 returns all processables4224 returns empty needs4225 validate presence of scheduling_type4226 importing: false, should_validate: true4227 on create4228 validates presence4229 on update4230 is expected not to validate that :scheduling_type cannot be empty/falsy4231 importing: true, should_validate: false4232 on create4233 validates presence4234 on update4235 is expected not to validate that :scheduling_type cannot be empty/falsy4236 .populate_scheduling_type!4237 populates scheduling_type of processables4238 does not affect processables from other pipelines4239 #needs_attributes4240 with needs4241 returns all needs attributes4242 without needs4243 is expected to be empty4244 state transition with resource group4245 when build status is created4246 is waiting for resource when build is enqueued4247 when build is waiting for resource4248 is enqueued when build requests resource4249 releases a resource when build finished4250 re-checks the resource group even if the processable does not retain a resource4251 when build has prerequisites4252 is preparing when build is enqueued4253 when there are no available resources4254 stays as waiting for resource when build requests resource4255ApplicationHelper4256 current_controller?4257 returns true when controller matches argument4258 returns false when controller does not match argument4259 takes any number of arguments4260 when namespaced4261 returns true when controller matches argument4262 returns true when controller and namespace matches argument in path notation4263 returns false when namespace doesnt match4264 current_action?4265 returns true when action matches4266 returns false when action does not match4267 takes any number of arguments4268 #admin_section?4269 when controller is under the admin namespace4270 returns true4271 when controller is not under the admin namespace4272 returns true4273 simple_sanitize4274 allows the a tag4275 allows the span tag4276 disallows other tags4277 time_ago_with_tooltip4278 returns a time element4279 includes the date string4280 has a datetime attribute4281 has a formatted title attribute4282 includes a default js-timeago class4283 accepts a custom html_class4284 accepts a custom tooltip placement4285 converts to Time4286 add class for the short format4287 returns blank if time is nil4288 #active_when4289 is expected to eq "active"4290 is expected to eq nil4291 #promo_host4292 returns the url4293 #promo_url4294 returns the url4295 changes if promo_host changes4296 #community_forum4297 returns the url4298 #support_url4299 when alternate support url is specified4300 returns the alternate support url4301 when alternate support url is not specified4302 builds the support url from the promo_url4303 #instance_review_permitted?4304 as admin4305 when admin mode setting is disabled4306 behaves like returns expected result depending on instance setting4307 is expected to equal true4308 behaves like returns expected result depending on instance setting4309 is expected to equal false4310 when admin mode setting is enabled4311 when in admin mode4312 behaves like returns expected result depending on instance setting4313 is expected to equal true4314 behaves like returns expected result depending on instance setting4315 is expected to equal false4316 when not in admin mode4317 behaves like returns expected result depending on instance setting4318 is expected to equal false4319 behaves like returns expected result depending on instance setting4320 is expected to equal false4321 as normal user4322 behaves like returns expected result depending on instance setting4323 is expected to equal false4324 behaves like returns expected result depending on instance setting4325 is expected to equal false4326 #locale_path4327 returns the locale path with an `_`4328 #client_class_list4329 when browser or platform are unknown4330 returns string containing CSS classes representing fallbacks4331 when browser and platform are known4332 returns string containing CSS classes representing them4333 #client_js_flags4334 when browser or platform are unknown4335 returns map containing JS flags representing falllbacks4336 when browser and platform are known4337 returns map containing JS flags representing client browser and platform4338 #page_startup_api_calls4339 returns map containing JS Page Startup Calls4340 #autocomplete_data_sources4341 group4342 returns paths for autocomplete_sources_controller4343 project4344 returns paths for autocomplete_sources_controller4345 #external_storage_url_or_path4346 when external storage is disabled4347 returns the passed path4348 when @snippet is set4349 returns the passed path4350 when external storage is enabled4351 returns the external storage URL prepended to the path4352 preserves the path query parameters4353 when project is public4354 returns does not append a token parameter4355 #body_data4356 when @project is not set4357 does not include project data in the body data elements4358 when @group is set4359 sets group in the body data elements4360 when @project is set4361 includes all possible body data elements and associates the project elements with project4362 when @project is owned by a group4363 includes all possible body data elements and associates the project elements with project4364 when controller is issues4365 when params[:id] is present and the issue exsits and action_name is show4366 sets all project and id elements correctly related to the issue4367 find_file attribute4368 when the project has no repository4369 is expected to be nil4370 when user cannot read_code for the project4371 is expected to be nil4372 when current_user has read_code permission4373 returns find_file with the default branch4374 #profile_social_links4375 when discord is set4376 returns an empty string if discord is not set4377 returns discord url when discord id is set4378 #gitlab_ui_form_for4379 adds custom form builder to options and calls `form_for`4380 #gitlab_ui_form_with4381 adds custom form builder to options and calls `form_with`4382 #page_class4383 is expected not to include "logged-out-marketing-header"4384 #dispensable_render4385 when an error occurs in the template to be rendered4386 calls `track_and_raise_for_dev_exception`4387 for development environment4388 raises an error4389 for production environments4390 returns nil4391 when no error occurs in the template to be rendered4392 does not track or raise and returns the rendered content4393 #dispensable_render_if_exists4394 when an error occurs in the template to be rendered4395 calls `track_and_raise_for_dev_exception`4396 for development environment4397 raises an error4398 for production environments4399 returns nil4400 when no error occurs in the template to be rendered4401 does not track or raise4402 stylesheet_link_tag_defer4403DEPRECATION WARNING: The asset "test.css" is not present in the asset pipeline.4404Falling back to an asset that may be in the public folder.4405This behavior is deprecated and will be removed.4406To bypass the asset pipeline and preserve this behavior,4407use the `skip_pipeline: true` option.4408 (called from stylesheet_link_tag_defer at /builds/gitlab-org/gitlab/app/helpers/application_helper.rb:277)4409 uses print stylesheet by default4410DEPRECATION WARNING: The asset "test.css" is not present in the asset pipeline.4411Falling back to an asset that may be in the public folder.4412This behavior is deprecated and will be removed.4413To bypass the asset pipeline and preserve this behavior,4414use the `skip_pipeline: true` option.4415 (called from stylesheet_link_tag_defer at /builds/gitlab-org/gitlab/app/helpers/application_helper.rb:279)4416 uses regular stylesheet when no_startup_css param present4417Gitlab::RelativePositioning::ItemContext4418 there are gaps at the start and end4419 is always possible to find a gap4420 index: 44421 is possible to shift_right, which will consume the gap at the end4422 is possible to create_space_right, which will move the gap to immediately after4423 is possible to shift_left, which will consume the gap at the start4424 is possible to create_space_left, which will move the gap to immediately before4425 index: 34426 is possible to shift_right, which will consume the gap at the end4427 is possible to create_space_right, which will move the gap to immediately after4428 is possible to shift_left, which will consume the gap at the start4429 is possible to create_space_left, which will move the gap to immediately before4430 index: 24431 is possible to shift_right, which will consume the gap at the end4432 is possible to create_space_right, which will move the gap to immediately after4433 is possible to shift_left, which will consume the gap at the start4434 is possible to create_space_left, which will move the gap to immediately before4435 index: 14436 is possible to shift_right, which will consume the gap at the end4437 is possible to create_space_right, which will move the gap to immediately after4438 is possible to shift_left, which will consume the gap at the start4439 is possible to create_space_left, which will move the gap to immediately before4440 index: 04441 is possible to shift_right, which will consume the gap at the end4442 is possible to create_space_right, which will move the gap to immediately after4443 is possible to shift_left, which will consume the gap at the start4444 is possible to create_space_left, which will move the gap to immediately before4445 there is a gap of multiple spaces4446 is impossible to move the last element to the right4447 is impossible to move the first element to the left4448 is possible to move the last element to the left4449 is possible to move the first element to the right4450 is possible to find the gap from the right4451 is possible to find the gap from the left4452 there are several free spaces4453 current_pos: 1024454 finds the closest gap4455 finds the neighbours4456 finds the next relative_positions4457 finds the min/max positions4458 finds the min/max siblings4459 current_pos: 1044460 finds the closest gap4461 finds the neighbours4462 finds the next relative_positions4463 finds the min/max positions4464 finds the min/max siblings4465 current_pos: 1064466 finds the closest gap4467 finds the neighbours4468 finds the next relative_positions4469 finds the min/max positions4470 finds the min/max siblings4471 there is at least one free space4472 free_space: 1014473 can always find a gap before if there is space to the left4474 can always find a gap after if there is space to the right4475 free_space: 1024476 can always find a gap before if there is space to the left4477 can always find a gap after if there is space to the right4478 free_space: 1034479 can always find a gap before if there is space to the left4480 can always find a gap after if there is space to the right4481 free_space: 1044482 can always find a gap before if there is space to the left4483 can always find a gap after if there is space to the right4484 free_space: 1054485 can always find a gap before if there is space to the left4486 can always find a gap after if there is space to the right4487 free_space: 1064488 can always find a gap before if there is space to the left4489 can always find a gap after if there is space to the right4490 free_space: 1074491 can always find a gap before if there is space to the left4492 can always find a gap after if there is space to the right4493 #at_position4494 finds the item at the specified position4495 raises InvalidPosition when the item cannot be found4496Packages::Policies::ProjectPolicy4497 deploy token access4498 when a deploy token with read_package_registry scope4499 is expected to be allowed :read_package4500 behaves like package access with repository disabled4501 is expected to be allowed :read_package4502 when a deploy token with write_package_registry scope4503 is expected to be allowed :read_package4504 behaves like package access with repository disabled4505 is expected to be allowed :read_package4506 read_package4507 project: private_project, package_registry_access_level: 0, current_user: anonymous, expect_to_be_allowed: false4508 is expected to be disallowed :read_package4509 project: private_project, package_registry_access_level: 0, current_user: non_member, expect_to_be_allowed: false4510 is expected to be disallowed :read_package4511 project: private_project, package_registry_access_level: 0, current_user: guest, expect_to_be_allowed: false4512 is expected to be disallowed :read_package4513 project: private_project, package_registry_access_level: 0, current_user: reporter, expect_to_be_allowed: false4514 is expected to be disallowed :read_package4515 project: private_project, package_registry_access_level: 0, current_user: developer, expect_to_be_allowed: false4516 is expected to be disallowed :read_package4517 project: private_project, package_registry_access_level: 0, current_user: maintainer, expect_to_be_allowed: false4518 is expected to be disallowed :read_package4519 project: private_project, package_registry_access_level: 0, current_user: owner, expect_to_be_allowed: false4520 is expected to be disallowed :read_package4521 project: private_project, package_registry_access_level: 0, current_user: admin, expect_to_be_allowed: false4522 is expected to be disallowed :read_package4523 project: private_project, package_registry_access_level: 10, current_user: anonymous, expect_to_be_allowed: false4524 is expected to be disallowed :read_package4525 project: private_project, package_registry_access_level: 10, current_user: non_member, expect_to_be_allowed: false4526 is expected to be disallowed :read_package4527 project: private_project, package_registry_access_level: 10, current_user: guest, expect_to_be_allowed: false4528 is expected to be disallowed :read_package4529 project: private_project, package_registry_access_level: 10, current_user: reporter, expect_to_be_allowed: true4530 is expected to be allowed :read_package4531 project: private_project, package_registry_access_level: 10, current_user: developer, expect_to_be_allowed: true4532 is expected to be allowed :read_package4533 project: private_project, package_registry_access_level: 10, current_user: maintainer, expect_to_be_allowed: true4534 is expected to be allowed :read_package4535 project: private_project, package_registry_access_level: 10, current_user: owner, expect_to_be_allowed: true4536 is expected to be allowed :read_package4537 project: private_project, package_registry_access_level: 10, current_user: admin, expect_to_be_allowed: true4538 is expected to be allowed :read_package4539 project: private_project, package_registry_access_level: 30, current_user: anonymous, expect_to_be_allowed: true4540 is expected to be allowed :read_package4541 project: private_project, package_registry_access_level: 30, current_user: non_member, expect_to_be_allowed: true4542 is expected to be allowed :read_package4543 project: private_project, package_registry_access_level: 30, current_user: guest, expect_to_be_allowed: true4544 is expected to be allowed :read_package4545 project: private_project, package_registry_access_level: 30, current_user: reporter, expect_to_be_allowed: true4546 is expected to be allowed :read_package4547 project: private_project, package_registry_access_level: 30, current_user: developer, expect_to_be_allowed: true4548 is expected to be allowed :read_package4549 project: private_project, package_registry_access_level: 30, current_user: maintainer, expect_to_be_allowed: true4550 is expected to be allowed :read_package4551 project: private_project, package_registry_access_level: 30, current_user: owner, expect_to_be_allowed: true4552 is expected to be allowed :read_package4553 project: private_project, package_registry_access_level: 30, current_user: admin, expect_to_be_allowed: true4554 is expected to be allowed :read_package4555 project: internal_project, package_registry_access_level: 0, current_user: anonymous, expect_to_be_allowed: false4556 is expected to be disallowed :read_package4557 project: internal_project, package_registry_access_level: 0, current_user: non_member, expect_to_be_allowed: false4558 is expected to be disallowed :read_package4559 project: internal_project, package_registry_access_level: 0, current_user: guest, expect_to_be_allowed: false4560 is expected to be disallowed :read_package4561 project: internal_project, package_registry_access_level: 0, current_user: reporter, expect_to_be_allowed: false4562 is expected to be disallowed :read_package4563 project: internal_project, package_registry_access_level: 0, current_user: developer, expect_to_be_allowed: false4564 is expected to be disallowed :read_package4565 project: internal_project, package_registry_access_level: 0, current_user: maintainer, expect_to_be_allowed: false4566 is expected to be disallowed :read_package4567 project: internal_project, package_registry_access_level: 0, current_user: owner, expect_to_be_allowed: false4568 is expected to be disallowed :read_package4569 project: internal_project, package_registry_access_level: 0, current_user: admin, expect_to_be_allowed: false4570 is expected to be disallowed :read_package4571 project: internal_project, package_registry_access_level: 20, current_user: anonymous, expect_to_be_allowed: false4572 is expected to be disallowed :read_package4573 project: internal_project, package_registry_access_level: 20, current_user: non_member, expect_to_be_allowed: true4574 is expected to be allowed :read_package4575 project: internal_project, package_registry_access_level: 20, current_user: guest, expect_to_be_allowed: true4576 is expected to be allowed :read_package4577 project: internal_project, package_registry_access_level: 20, current_user: reporter, expect_to_be_allowed: true4578 is expected to be allowed :read_package4579 project: internal_project, package_registry_access_level: 20, current_user: developer, expect_to_be_allowed: true4580 is expected to be allowed :read_package4581 project: internal_project, package_registry_access_level: 20, current_user: maintainer, expect_to_be_allowed: true4582 is expected to be allowed :read_package4583 project: internal_project, package_registry_access_level: 20, current_user: owner, expect_to_be_allowed: true4584 is expected to be allowed :read_package4585 project: internal_project, package_registry_access_level: 20, current_user: admin, expect_to_be_allowed: true4586 is expected to be allowed :read_package4587 project: internal_project, package_registry_access_level: 30, current_user: anonymous, expect_to_be_allowed: true4588 is expected to be allowed :read_package4589 project: internal_project, package_registry_access_level: 30, current_user: non_member, expect_to_be_allowed: true4590 is expected to be allowed :read_package4591 project: internal_project, package_registry_access_level: 30, current_user: guest, expect_to_be_allowed: true4592 is expected to be allowed :read_package4593 project: internal_project, package_registry_access_level: 30, current_user: reporter, expect_to_be_allowed: true4594 is expected to be allowed :read_package4595 project: internal_project, package_registry_access_level: 30, current_user: developer, expect_to_be_allowed: true4596 is expected to be allowed :read_package4597 project: internal_project, package_registry_access_level: 30, current_user: maintainer, expect_to_be_allowed: true4598 is expected to be allowed :read_package4599 project: internal_project, package_registry_access_level: 30, current_user: owner, expect_to_be_allowed: true4600 is expected to be allowed :read_package4601 project: internal_project, package_registry_access_level: 30, current_user: admin, expect_to_be_allowed: true4602 is expected to be allowed :read_package4603 project: public_project, package_registry_access_level: 0, current_user: anonymous, expect_to_be_allowed: false4604 is expected to be disallowed :read_package4605 project: public_project, package_registry_access_level: 0, current_user: non_member, expect_to_be_allowed: false4606 is expected to be disallowed :read_package4607 project: public_project, package_registry_access_level: 0, current_user: guest, expect_to_be_allowed: false4608 is expected to be disallowed :read_package4609 project: public_project, package_registry_access_level: 0, current_user: reporter, expect_to_be_allowed: false4610 is expected to be disallowed :read_package4611 project: public_project, package_registry_access_level: 0, current_user: developer, expect_to_be_allowed: false4612 is expected to be disallowed :read_package4613 project: public_project, package_registry_access_level: 0, current_user: maintainer, expect_to_be_allowed: false4614 is expected to be disallowed :read_package4615 project: public_project, package_registry_access_level: 0, current_user: owner, expect_to_be_allowed: false4616 is expected to be disallowed :read_package4617 project: public_project, package_registry_access_level: 0, current_user: admin, expect_to_be_allowed: false4618 is expected to be disallowed :read_package4619 project: public_project, package_registry_access_level: 30, current_user: anonymous, expect_to_be_allowed: true4620 is expected to be allowed :read_package4621 project: public_project, package_registry_access_level: 30, current_user: non_member, expect_to_be_allowed: true4622 is expected to be allowed :read_package4623 project: public_project, package_registry_access_level: 30, current_user: guest, expect_to_be_allowed: true4624 is expected to be allowed :read_package4625 project: public_project, package_registry_access_level: 30, current_user: reporter, expect_to_be_allowed: true4626 is expected to be allowed :read_package4627 project: public_project, package_registry_access_level: 30, current_user: developer, expect_to_be_allowed: true4628 is expected to be allowed :read_package4629 project: public_project, package_registry_access_level: 30, current_user: maintainer, expect_to_be_allowed: true4630 is expected to be allowed :read_package4631 project: public_project, package_registry_access_level: 30, current_user: owner, expect_to_be_allowed: true4632 is expected to be allowed :read_package4633 project: public_project, package_registry_access_level: 30, current_user: admin, expect_to_be_allowed: true4634 is expected to be allowed :read_package4635 with admin4636 behaves like package access with repository disabled4637 is expected to be allowed :read_package4638NotificationRecipient4639 #notifiable?4640 when emails are disabled4641 returns false if group disabled4642 returns false if project disabled4643 when emails are enabled4644 returns true if group enabled4645 returns true if project enabled4646 when recipient email is blocked4647 with permanent failures4648 returns false4649 with temporary failures4650 returns false4651 #has_access?4652 user cannot read cross project4653 returns false4654 user cannot read build4655 returns false4656 user cannot read commit4657 returns false4658 target has no policy4659 returns true4660 #notification_setting4661 for child groups4662 when notification setting is global4663 considers notification setting from the first parent without global setting4664 when notification setting is not global4665 considers notification setting from lowest group member in hierarchy4666 #suitable_notification_level?4667 when notification level is mention4668 when type is mention4669 returns true4670 when type is not mention4671 returns false4672 when notification level is participating4673 when type is participating4674 returns true4675 when type is mention4676 returns true4677 with custom action4678 when action is failed_pipeline4679 returns true4680 when action is fixed_pipeline4681 returns true4682 when action is not fixed_pipeline or failed_pipeline4683 returns false4684 when notification level is custom4685 when type is participating4686 with custom event enabled4687 returns true4688 without custom event enabled4689 returns true4690 when type is mention4691 with custom event enabled4692 returns true4693 without custom event enabled4694 returns true4695 when type is watch4696 with custom event enabled4697 returns true4698 without custom event enabled4699 returns false4700 when custom_action is fixed_pipeline and success_pipeline event is enabled4701 returns true4702 with merge_when_pipeline_succeeds4703 custom event enabled4704 returns true4705 custom event disabled4706 returns false4707 when notification level is watch4708 when type is watch4709 without excluded watcher events4710 returns true4711 with excluded watcher events4712 returns false4713 when type is not watch4714 without excluded watcher events4715 returns true4716 with excluded watcher events4717 returns true4718Gitlab::Ci::Config::Entry::Rules::Rule4719 .new4720 with a when: value but no clauses4721 is expected to be valid4722 with an allow_failure: value but no clauses4723 is expected to be valid4724 when specifying an if: clause4725 is expected to be valid4726 #when4727 is expected to eq "manual"4728 #allow_failure4729 is expected to eq true4730 using a list of multiple expressions4731 is expected not to be valid4732 reports an error about invalid format4733 when specifying an invalid if: clause expression4734 is expected not to be valid4735 reports an error about invalid statement4736 when specifying an if: clause expression with an invalid token4737 is expected not to be valid4738 reports an error about invalid statement4739 when using invalid regex in an if: clause4740 reports an error about invalid expression4741 when using an if: clause with lookahead regex character "?"4742 is expected not to be valid4743 reports an error about invalid expression syntax4744 when using a changes: clause4745 is expected to be valid4746 when using a string as an invalid changes: clause4747 is expected not to be valid4748 reports an error about invalid policy4749 when using a list as an invalid changes: clause4750 is expected not to be valid4751 returns errors4752 when using a long list as an invalid changes: clause4753 is expected not to be valid4754 returns errors4755 when using a exists: clause4756 is expected to be valid4757 when using a string as an invalid exists: clause4758 is expected not to be valid4759 reports an error about invalid policy4760 when using a list as an invalid exists: clause4761 is expected not to be valid4762 returns errors4763 when using a long list as an invalid exists: clause4764 is expected not to be valid4765 returns errors4766 specifying a delayed job4767 is expected to be valid4768 sets attributes for the job delay4769 without a when: key4770 is expected not to be valid4771 returns an error about the disallowed key4772 without a start_in: key4773 is expected not to be valid4774 returns an error about start_in being blank4775 when start_in value is longer than a week4776 is expected not to be valid4777 returns an error about start_in exceeding the limit4778 when specifying unknown policy4779 is expected not to be valid4780 returns error about invalid key4781 when clause is empty4782 is expected not to be valid4783 is not a valid configuration4784 when policy strategy does not match4785 is expected not to be valid4786 returns information about errors4787 when: validation4788 with an invalid boolean when:4789 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule4790 is expected not to be valid4791 returns an error about invalid when:4792 when composed4793 is expected not to be valid4794 returns an error about invalid when:4795 with an invalid string when:4796 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule4797 is expected not to be valid4798 returns an error about invalid when:4799 when composed4800 is expected not to be valid4801 returns an error about invalid when:4802 with a string passed in metadata but not allowed in the class4803 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule4804 is expected not to be valid4805 returns an error about invalid when:4806 when composed4807 is expected not to be valid4808 returns an error about invalid when:4809 with a string allowed in the class but not passed in metadata4810 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule4811 is expected not to be valid4812 returns an error about invalid when:4813 when composed4814 is expected not to be valid4815 returns an error about invalid when:4816 with an invalid variables4817 is expected not to be valid4818 returns an error about invalid variables:4819 allow_failure: validation4820 with an invalid string allow_failure:4821 is expected to be a kind of Gitlab::Ci::Config::Entry::Rules::Rule4822 is expected not to be valid4823 returns an error about invalid allow_failure:4824 when composed4825 is expected not to be valid4826 returns an error about invalid allow_failure:4827 #value4828 when specifying an if: clause4829 stores the expression as "if"4830 when using a changes: clause4831 is expected to eq {:changes=>{:paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}}4832 when using changes with paths4833 is expected to eq {:changes=>{:paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}}4834 when using changes with paths and compare_to4835 is expected to eq {:changes=>{:compare_to=>"branch1", :paths=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}}4836 when default value has been provided4837 does not set a default value4838 does not add to provided configuration4839 when using a exists: clause4840 is expected to eq {:exists=>["app/", "lib/", "spec/", "other/*", "paths/**/*.rb"]}4841 .default4842 does not have default value4843Environments::EnvironmentNamesFinder4844 #execute4845 using a group4846 with a group developer4847 returns environment names for all projects4848 with a group reporter4849 returns environment names for all projects4850 with a public project reporter4851 returns environment names for all public projects4852 with a private project reporter4853 returns environment names for all public projects4854 with a group guest4855 returns environment names for all public projects4856 with a non-member4857 returns environment names for all public projects4858 without a user4859 returns environment names for all public projects4860 using a public project4861 with a project developer4862 returns all the unique environment names4863 with a project reporter4864 returns all the unique environment names4865 with a project guest4866 returns all the unique environment names4867 with a non-member4868 returns all the unique environment names4869 without a user4870 returns all the unique environment names4871 using a private project4872 with a project developer4873 returns all the unique environment names4874 with a project reporter4875 returns all the unique environment names4876 with a project guest4877 does not return any environment names4878 with a non-member4879 does not return any environment names4880 without a user4881 does not return any environment names4882PushEventPayloadService4883 #execute4884 creates a new PushEventPayload row4885 sets the push_event_payload association of the used event4886 #commit_title4887 returns nil if no commits were pushed4888 returns a String limited to 70 characters4889 does not truncate the commit message if it is shorter than 70 characters4890 includes the first line of a commit message if the message spans multiple lines4891 #commit_from_id4892 returns nil when creating a new ref4893 returns the ID of the first commit when pushing to an existing ref4894 #commit_to_id4895 returns nil when removing an existing ref4896 #commit_count4897 returns the number of commits4898 raises when the push data does not contain the commits count4899 #ref4900 returns the name of the ref4901 raises when the push data does not contain the ref name4902 #revision_before4903 returns the revision from before the push4904 raises when the push data does not contain the before revision4905 #revision_after4906 returns the revision from after the push4907 raises when the push data does not contain the after revision4908 #trimmed_ref4909 returns the ref name without its prefix4910 #create?4911 returns true when creating a new ref4912 returns false when pushing to an existing ref4913 #remove?4914 returns true when removing an existing ref4915 returns false pushing to an existing ref4916 #action4917 returns :created when creating a ref4918 returns :removed when removing an existing ref4919 returns :pushed when pushing to an existing ref4920 #ref_type4921 returns :tag for a tag4922 returns :branch for a branch4923BulkCreateIntegrationService4924 passing an instance-level integration4925 with a project association4926 behaves like creates integration successfully4927 updates the inherited integrations4928 updates inherit_from_id attributes4929 sets created_at and updated_at timestamps4930 integration with data fields4931 updates the data fields from inherited integrations4932 sets created_at and updated_at timestamps4933 with a group association4934 behaves like creates integration successfully4935 updates the inherited integrations4936 updates inherit_from_id attributes4937 sets created_at and updated_at timestamps4938 integration with data fields4939 updates the data fields from inherited integrations4940 sets created_at and updated_at timestamps4941 passing a group integration4942 with a project association4943 behaves like creates integration successfully4944 updates the inherited integrations4945 updates inherit_from_id attributes4946 sets created_at and updated_at timestamps4947 integration with data fields4948 updates the data fields from inherited integrations4949 sets created_at and updated_at timestamps4950 with different foreign key of data_fields4951 behaves like creates integration successfully4952 updates the inherited integrations4953 updates inherit_from_id attributes4954 sets created_at and updated_at timestamps4955 integration with data fields4956 updates the data fields from inherited integrations4957 sets created_at and updated_at timestamps4958 with a group association4959 behaves like creates integration successfully4960 updates the inherited integrations4961 updates inherit_from_id attributes4962 sets created_at and updated_at timestamps4963 integration with data fields4964 updates the data fields from inherited integrations4965 sets created_at and updated_at timestamps4966 with different foreign key of data_fields4967 behaves like creates integration successfully4968 updates the inherited integrations4969 updates inherit_from_id attributes4970 sets created_at and updated_at timestamps4971 integration with data fields4972 updates the data fields from inherited integrations4973 sets created_at and updated_at timestamps4974Clusters::UpdateService4975 #execute4976 when correct params4977 when enabled is true4978 enables cluster4979 when enabled is false4980 disables cluster4981 when namespace is specified4982 updates namespace4983 when service token is empty4984 does not update the token4985 when service token is not empty4986 updates the token4987 when invalid params4988 returns false4989 when cluster is provided by GCP4990 does not change cluster name4991 when cluster is being created4992 rejects changes4993 when params includes :management_project_id4994 management_project is non-existent4995 does not update management_project_id4996 project cluster4997 user is authorized to adminster manangement_project4998 updates management_project_id4999 user is not authorized to adminster manangement_project5000 does not update management_project_id5001 cluster already has a management project set5002 unsets management_project_id5003 manangement_project is outside of the namespace scope5004 does not update management_project_id5005 group cluster5006 user is authorized to adminster manangement_project5007 updates management_project_id5008 user is not authorized to adminster manangement_project5009 does not update management_project_id5010 cluster already has a management project set5011 unsets management_project_id5012 manangement_project is outside of the namespace scope5013 does not update management_project_id5014 instance cluster5015 user is authorized to adminster manangement_project5016 updates management_project_id5017 user is not authorized to adminster manangement_project5018 does not update management_project_id5019 cluster already has a management project set5020 unsets management_project_id5021Group Routable5022 creates route with namespace referencing group5023 behaves like routable resource5024 .find_by_full_path5025 finds records by their full path5026 returns nil for unknown paths5027 includes route information when loading a record5028 when path is a negative number5029 returns nil5030 with redirect routes5031 without follow_redirects option5032 does not find records by their redirected path5033 with follow_redirects option set to true5034 finds records by their canonical path5035 finds records by their redirected path5036 returns nil for unknown paths5037 behaves like routable resource with parent5038 behaves like routable resource5039 .find_by_full_path5040 finds records by their full path5041 returns nil for unknown paths5042 includes route information when loading a record5043 when path is a negative number5044 returns nil5045 with redirect routes5046 without follow_redirects option5047 does not find records by their redirected path5048 with follow_redirects option set to true5049 finds records by their canonical path5050 finds records by their redirected path5051 returns nil for unknown paths5052 #full_path5053 is expected to eq "foo/group82"5054 hits the cache when not preloaded5055 #full_name5056 is expected to eq "foo / group82"5057 hits the cache when not preloaded5058 without route name5059 builds full name5060 Validations5061 is expected to validate that :route cannot be empty/falsy5062 Associations5063 is expected to have one route dependent => destroy5064 is expected to have many redirect_routes dependent => destroy5065 Callbacks5066 for a group5067 creates route record on create5068 updates route record on path change5069 ensure route path uniqueness across different objects5070 for a user5071 creates the route for a record on create5072 updates routes and nested routes on name change5073 .where_full_path_in5074 without any paths5075 returns an empty relation5076 without any valid paths5077 returns an empty relation5078 with valid paths5079 returns the projects matching the paths5080 returns projects regardless of the casing of paths5081 #parent_loaded?5082 is false when the parent is not loaded5083 is true when the parent is loaded5084 #route_loaded?5085 is false when the route is not loaded5086 is true when the route is loaded5087Project Routable5088 creates route with namespace referencing project namespace5089 behaves like routable resource with parent5090 behaves like routable resource5091 .find_by_full_path5092 finds records by their full path5093 returns nil for unknown paths5094 includes route information when loading a record5095 when path is a negative number5096 returns nil5097 with redirect routes5098 without follow_redirects option5099 does not find records by their redirected path5100 with follow_redirects option set to true5101 finds records by their canonical path5102 finds records by their redirected path5103 returns nil for unknown paths5104 #full_path5105 is expected to eq "namespace553/project649"5106 hits the cache when not preloaded5107 #full_name5108 is expected to eq "Sidney Jones1369 / project649"5109 hits the cache when not preloaded5110 without route name5111 builds full name5112Namespaces::ProjectNamespace Routable5113 skips route creation for the resource5114Packages::Debian::GroupDistribution5115 behaves like Debian Distribution5116 relationships5117 is expected to belong to group required: false5118 is expected to belong to creator class_name => User required: false5119 is expected to have one key class_name => Packages::Debian::GroupDistributionKey inverse_of => distribution5120 is expected to have many components class_name => Packages::Debian::GroupComponent inverse_of => distribution5121 is expected to have many architectures class_name => Packages::Debian::GroupArchitecture inverse_of => distribution5122 validations5123 #group5124 is expected to validate that :group cannot be empty/falsy5125 #creator5126 is expected not to validate that :creator cannot be empty/falsy5127 #codename5128 is expected to validate that :codename cannot be empty/falsy5129 is expected to allow :codename to be ‹"buster"›5130 is expected to allow :codename to be ‹"buster-updates"›5131 is expected to allow :codename to be ‹"Debian10.5"›5132 is expected not to allow :codename to be ‹"jessie/updates"›5133 is expected not to allow :codename to be ‹"hé"›5134 #suite5135 is expected to allow :suite to be ‹nil›5136 is expected to allow :suite to be ‹"testing"›5137 is expected not to allow :suite to be ‹"hé"›5138 #unique_debian_suite_and_codename5139 with_existing_suite: false, suite: nil, codename: :keep, errors: nil5140 debian_group_distribution5141 is expected to be valid5142 with_existing_suite: false, suite: "testing", codename: :keep, errors: nil5143 debian_group_distribution5144 is expected to be valid5145 with_existing_suite: false, suite: nil, codename: :codename, errors: ["Codename has already been taken"]5146 debian_group_distribution5147 is expected to eq ["Codename has already been taken"]5148 with_existing_suite: false, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]5149 debian_group_distribution5150 is expected to eq ["Suite has already been taken as Codename"]5151 with_existing_suite: false, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]5152 debian_group_distribution5153 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]5154 with_existing_suite: true, suite: nil, codename: :keep, errors: nil5155 debian_group_distribution5156 is expected to be valid5157 with_existing_suite: true, suite: "testing", codename: :keep, errors: nil5158 debian_group_distribution5159 is expected to be valid5160 with_existing_suite: true, suite: nil, codename: :codename, errors: ["Codename has already been taken"]5161 debian_group_distribution5162 is expected to eq ["Codename has already been taken"]5163 with_existing_suite: true, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]5164 debian_group_distribution5165 is expected to eq ["Suite has already been taken as Codename"]5166 with_existing_suite: true, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]5167 debian_group_distribution5168 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]5169 with_existing_suite: true, suite: nil, codename: :suite, errors: ["Codename has already been taken as Suite"]5170 debian_group_distribution5171 is expected to eq ["Codename has already been taken as Suite"]5172 with_existing_suite: true, suite: :suite, codename: :keep, errors: ["Suite has already been taken"]5173 debian_group_distribution5174 is expected to eq ["Suite has already been taken"]5175 with_existing_suite: true, suite: :suite, codename: :suite, errors: ["Suite has already been taken", "Codename has already been taken as Suite"]5176 debian_group_distribution5177 is expected to eq ["Suite has already been taken", "Codename has already been taken as Suite"]5178 #origin5179 is expected to allow :origin to be ‹nil›5180 is expected to allow :origin to be ‹"Debian"›5181 is expected not to allow :origin to be ‹"hé"›5182 #label5183 is expected to allow :label to be ‹nil›5184 is expected to allow :label to be ‹"Debian"›5185 is expected not to allow :label to be ‹"hé"›5186 #version5187 is expected to allow :version to be ‹nil›5188 is expected to allow :version to be ‹"10.6"›5189 is expected not to allow :version to be ‹"hé"›5190 #description5191 is expected to allow :description to be ‹nil›5192 is expected to allow :description to be ‹"Debian 10.6 Released 26 September 2020"›5193 is expected to allow :description to be ‹"Hé !"›5194 #valid_time_duration_seconds5195 is expected to allow :valid_time_duration_seconds to be ‹nil›5196 is expected to allow :valid_time_duration_seconds to be ‹86400›5197 is expected not to allow :valid_time_duration_seconds to be ‹43200›5198 #file5199 is expected not to validate that :file cannot be empty/falsy5200 #file_store5201 is expected to validate that :file_store cannot be empty/falsy5202 #file_signature5203 is expected not to validate that :file_signature is empty/falsy5204 #signed_file5205 is expected not to validate that :signed_file cannot be empty/falsy5206 #signed_file_store5207 is expected to validate that :signed_file_store cannot be empty/falsy5208 scopes5209 .with_container5210 does not return other distributions5211 .with_codename5212 does not return other distributions5213 .with_suite5214 does not return other distributions5215 .with_codename_or_suite5216 passing codename5217 does not return other distributions5218 passing suite5219 does not return other distributions5220 group distribution specifics5221 #packages5222 returns only public packages with same codename5223 #package_files5224 returns only files from public packages with same codename5225 with pending destruction package files5226 does not return them5227Gitlab::Ci::Config::Entry::Bridge5228 behaves like with inheritable CI config5229 does prepend an Inheritable mixin5230 all inheritable entries are covered5231 all entries do have inherit flag5232 for non-inheritable entries5233 entry_key: :stage5234 inheritable_class does not define entry5235 entry_key: :only5236 inheritable_class does not define entry5237 entry_key: :except5238 inheritable_class does not define entry5239 entry_key: :rules5240 inheritable_class does not define entry5241 entry_key: :variables5242 inheritable_class does not define entry5243 entry_key: :inherit5244 inheritable_class does not define entry5245 entry_key: :trigger5246 inheritable_class does not define entry5247 entry_key: :needs5248 inheritable_class does not define entry5249 entry_key: :parallel5250 inheritable_class does not define entry5251 .matching?5252 when config is not a hash5253 is expected to be falsey5254 when config is a regular job5255 is expected to be falsey5256 with rules5257 is expected to be falsey5258 when config is a bridge job5259 is expected to be truthy5260 with rules5261 is expected to be truthy5262 when config is a hidden job5263 is expected to be falsey5264 .new5265 when trigger config is a non-empty string5266 #valid?5267 is expected to be valid5268 #value5269 is returns a bridge job configuration5270 when bridge trigger is a hash5271 #valid?5272 is expected to be valid5273 #value5274 is returns a bridge job configuration hash5275 when bridge configuration contains trigger, when, extends, stage, only, except, and variables5276 is expected to be valid5277 when bridge configuration uses rules5278 is expected to be valid5279 when bridge configuration uses rules with job:when5280 is expected to be valid5281 when bridge configuration uses rules with only5282 is expected not to be valid5283 when bridge configuration uses rules with except5284 is expected not to be valid5285 when bridge has only job needs5286 #valid?5287 is expected not to be valid5288 when bridge config contains unknown keys5289 #valid?5290 is expected not to be valid5291 #errors5292 is returns an error about unknown config key5293 when bridge config contains build-specific attributes5294 #valid?5295 is expected not to be valid5296 #errors5297 returns an error message5298 when bridge config contains exit_codes5299 #valid?5300 is expected not to be valid5301 #errors5302 returns an error message5303 when bridge config contains parallel5304 when parallel config is a number5305 #valid?5306 is expected not to be valid5307 #errors5308 returns an error message5309 when parallel config is a matrix5310 #valid?5311 is expected to be valid5312 #value5313 is returns a bridge job configuration5314 when bridge trigger contains forward5315 #valid?5316 is expected to be valid5317 #value5318 returns a bridge job configuration hash5319 #manual_action?5320 when job is a manual action5321 is expected to be manual action5322 when job is not a manual action5323 is expected not to be manual action5324 #ignored?5325 when job is a manual action5326 when it is not specified if job is allowed to fail5327 is expected to be ignored5328 when job is allowed to fail5329 is expected to be ignored5330 when job is not allowed to fail5331 is expected not to be ignored5332 when job is not a manual action5333 when it is not specified if job is allowed to fail5334 is expected not to be ignored5335 when job is allowed to fail5336 is expected to be ignored5337 when job is not allowed to fail5338 is expected not to be ignored5339 #when5340 when bridge is a manual action5341 is expected to eq "manual"5342 when bridge has no `when` attribute5343 is expected to be nil5344 when the `when` keyword is not a string5345 when it is an array5346 returns error5347 when it is a boolean5348 returns error5349IssueLinks::ListService5350 #execute5351 user can see all issues5352 ensures no N+1 queries are made5353 returns related issues JSON5354 referencing a public project issue5355 presents issue5356 referencing issue with removed relationships5357 when referenced a deleted issue5358 ignores issue5359 when referenced an issue with deleted project5360 ignores issue5361 when referenced an issue with deleted namespace5362 ignores issue5363 user cannot see relations5364 when user cannot see the referenced issue5365 returns an empty list5366 when user cannot see the issue that referenced5367 returns an empty list5368 remove relations5369 user can admin related issues just on target project5370 returns no destroy relation path5371 user can admin related issues just on source project5372 returns no destroy relation path5373 when user can admin related issues on both projects5374 returns related issue destroy relation path5375Appearance5376 example at ./spec/models/appearance_spec.rb:95377 is expected to eq nil5378 is expected to have many uploads5379 default values5380 is expected to eq ""5381 is expected to eq ""5382 is expected to eq ""5383 is expected to eq ""5384 is expected to eq ""5385 is expected to eq ""5386 is expected to eq ""5387 is expected to eq ""5388 is expected to eq ""5389 is expected to eq "#E75E40"5390 is expected to eq "#FFFFFF"5391 is expected to eq false5392 is expected to contain exactly 192 and 5125393 #single_appearance_row5394 adds an error when more than 1 row exists5395 with uploads5396 behaves like model with uploads5397 .destroy5398 with mounted uploader5399 deletes remote uploads5400 with not mounted uploads5401 with local files5402 deletes any FileUploader uploads which are not mounted (PENDING: No reason given)5403 deletes local files (PENDING: No reason given)5404 with remote files5405 deletes any FileUploader uploads which are not mounted (PENDING: No reason given)5406 deletes remote files (PENDING: No reason given)5407 behaves like logo paths5408 returns nil when there is no upload5409 returns the path when the upload has been orphaned5410 returns a local path using the system route5411 with asset host configured5412 returns a full URL with the system path5413 behaves like logo paths5414 returns nil when there is no upload5415 returns the path when the upload has been orphaned5416 returns a local path using the system route5417 with asset host configured5418 returns a full URL with the system path5419 behaves like logo paths5420 returns nil when there is no upload5421 returns the path when the upload has been orphaned5422 returns a local path using the system route5423 with asset host configured5424 returns a full URL with the system path5425 behaves like logo paths5426 returns nil when there is no upload5427 returns the path when the upload has been orphaned5428 returns a local path using the system route5429 with asset host configured5430 returns a full URL with the system path5431 behaves like icon paths sized5432 returns icon path with size parameter5433 behaves like icon paths sized5434 returns icon path with size parameter5435 validations5436 is expected to allow :message_background_color to be ‹nil›5437 is expected to allow :message_background_color to be ‹"#000"›5438 is expected to allow :message_background_color to be ‹"#AABBCC"›5439 is expected not to allow :message_background_color to be ‹"000"›5440 is expected to allow :message_font_color to be ‹nil›5441 is expected to allow :message_font_color to be ‹"#000"›5442 is expected to allow :message_font_color to be ‹"#AABBCC"›5443 is expected not to allow :message_font_color to be ‹"000"›5444 valid pwa attributes5445 attribute: :pwa_name, value: nil5446 behaves like validation allows5447 is expected to allow :pwa_name to be ‹nil›5448 attribute: :pwa_name, value: "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"5449 behaves like validation allows5450 is expected to allow :pwa_name to be ‹"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"›5451 attribute: :pwa_short_name, value: nil5452 behaves like validation allows5453 is expected to allow :pwa_short_name to be ‹nil›5454 attribute: :pwa_short_name, value: "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"5455 behaves like validation allows5456 is expected to allow :pwa_short_name to be ‹"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"›5457 attribute: :pwa_description, value: nil5458 behaves like validation allows5459 is expected to allow :pwa_description to be ‹nil›5460 attribute: :pwa_description, value: "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT"5461 behaves like validation allows5462 is expected to allow :pwa_description to be ‹"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...›5463 invalid pwa attributes5464 attribute: :pwa_name, value: "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG", message: "is too long (maximum is 255 characters)"5465 behaves like validation permits with message5466 is expected not to allow :pwa_name to be ‹"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"›, producing a custom validation error on failure5467 attribute: :pwa_short_name, value: "SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS", message: "is too long (maximum is 255 characters)"5468 behaves like validation permits with message5469 is expected not to allow :pwa_short_name to be ‹"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"›, producing a custom validation error on failure5470 attribute: :pwa_description, value: "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT", message: "is too long (maximum is 2048 characters)"5471 behaves like validation permits with message5472 is expected not to allow :pwa_description to be ‹"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...›, producing a custom validation error on failure5473 email_header_and_footer_enabled5474 default email_header_and_footer_enabled flag value5475 returns email_header_and_footer_enabled as true5476 when setting email_header_and_footer_enabled flag value5477 returns email_header_and_footer_enabled as true5478Gitlab::ImportExport::Json::StreamingSerializer5479 #execute5480 calls json_writer.write_attributes with proper params5481 with many relations5482 calls json_writer.write_relation_array with proper params5483 logs the relation name and the number of records to export5484 default relation ordering5485 orders exported issues by primary key(:id)5486 custom relation ordering ascending5487 orders exported issues by custom column(relative_position)5488 custom relation ordering descending5489 orders exported issues by custom column(relative_position)5490 with single relation5491 calls json_writer.write_relation with proper params5492 logs the relation name5493 with array relation5494 calls json_writer.write_relation_array with proper params5495 logs the relation name and the number of records to export5496 load balancing5497 reads from replica5498 with inaccessible associations5499 conditional export of included associations5500 when association is exportable5501 behaves like record with exportable associations5502 includes exportable association5503 when an association is not exportable5504 behaves like record with exportable associations5505 includes exportable association5506 when association does not respond to exportable_association?5507 behaves like record with exportable associations5508 includes exportable association5509 export of included restricted associations5510 when the association is restricted5511 when some association records are exportable5512 behaves like record with exportable associations5513 includes exportable association5514 when all association records are exportable5515 behaves like record with exportable associations5516 includes exportable association5517 when the single association record is exportable5518 behaves like record with exportable associations5519 includes exportable association5520 when the single association record is not exportable5521 behaves like record with exportable associations5522 includes exportable association5523 when the associations are not restricted5524 behaves like record with exportable associations5525 includes exportable association5526 #serialize_relation5527 when record is a merge request5528 removes cached external diff5529RuboCop::Cop::RSpec::FactoryBot::StrategyInCallback5530 # order random5531 behaves like an offensive factory call5532 registers an offence for multiple ::FactoryBot.build(:ci_job_artifact, :archive) calls5533 registers an offense for ::FactoryBot.build(:ci_job_artifact, :archive) when is a send node5534 registers an offense for ::FactoryBot.build(:ci_job_artifact, :archive) when is assigned5535 registers an offence for multiple ::FactoryBot.build_list(:ci_job_artifact, :archive) calls5536 registers an offense for ::FactoryBot.build_list(:ci_job_artifact, :archive) when is a send node5537 registers an offense for ::FactoryBot.build_list(:ci_job_artifact, :archive) when is assigned5538 registers an offence for multiple ::FactoryBot.build_stubbed(:ci_job_artifact, :archive) calls5539 registers an offense for ::FactoryBot.build_stubbed(:ci_job_artifact, :archive) when is a send node5540 registers an offense for ::FactoryBot.build_stubbed(:ci_job_artifact, :archive) when is assigned5541 registers an offence for multiple ::FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) calls5542 registers an offense for ::FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) when is a send node5543 registers an offense for ::FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) when is assigned5544 registers an offence for multiple ::FactoryBot.create(:ci_job_artifact, :archive) calls5545 registers an offense for ::FactoryBot.create(:ci_job_artifact, :archive) when is a send node5546 registers an offense for ::FactoryBot.create(:ci_job_artifact, :archive) when is assigned5547 registers an offence for multiple ::FactoryBot.create_list(:ci_job_artifact, :archive) calls5548 registers an offense for ::FactoryBot.create_list(:ci_job_artifact, :archive) when is a send node5549 registers an offense for ::FactoryBot.create_list(:ci_job_artifact, :archive) when is assigned5550 behaves like an offensive factory call5551 registers an offence for multiple FactoryBot.build(:ci_job_artifact, :archive) calls5552 registers an offense for FactoryBot.build(:ci_job_artifact, :archive) when is a send node5553 registers an offense for FactoryBot.build(:ci_job_artifact, :archive) when is assigned5554 registers an offence for multiple FactoryBot.build_list(:ci_job_artifact, :archive) calls5555 registers an offense for FactoryBot.build_list(:ci_job_artifact, :archive) when is a send node5556 registers an offense for FactoryBot.build_list(:ci_job_artifact, :archive) when is assigned5557 registers an offence for multiple FactoryBot.build_stubbed(:ci_job_artifact, :archive) calls5558 registers an offense for FactoryBot.build_stubbed(:ci_job_artifact, :archive) when is a send node5559 registers an offense for FactoryBot.build_stubbed(:ci_job_artifact, :archive) when is assigned5560 registers an offence for multiple FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) calls5561 registers an offense for FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) when is a send node5562 registers an offense for FactoryBot.build_stubbed_list(:ci_job_artifact, :archive) when is assigned5563 registers an offence for multiple FactoryBot.create(:ci_job_artifact, :archive) calls5564 registers an offense for FactoryBot.create(:ci_job_artifact, :archive) when is a send node5565 registers an offense for FactoryBot.create(:ci_job_artifact, :archive) when is assigned5566 registers an offence for multiple FactoryBot.create_list(:ci_job_artifact, :archive) calls5567 registers an offense for FactoryBot.create_list(:ci_job_artifact, :archive) when is a send node5568 registers an offense for FactoryBot.create_list(:ci_job_artifact, :archive) when is assigned5569 behaves like an offensive factory call5570 registers an offence for multiple build(:ci_job_artifact, :archive) calls5571 registers an offense for build(:ci_job_artifact, :archive) when is a send node5572 registers an offense for build(:ci_job_artifact, :archive) when is assigned5573 registers an offence for multiple build_list(:ci_job_artifact, :archive) calls5574 registers an offense for build_list(:ci_job_artifact, :archive) when is a send node5575 registers an offense for build_list(:ci_job_artifact, :archive) when is assigned5576 registers an offence for multiple build_stubbed(:ci_job_artifact, :archive) calls5577 registers an offense for build_stubbed(:ci_job_artifact, :archive) when is a send node5578 registers an offense for build_stubbed(:ci_job_artifact, :archive) when is assigned5579 registers an offence for multiple build_stubbed_list(:ci_job_artifact, :archive) calls5580 registers an offense for build_stubbed_list(:ci_job_artifact, :archive) when is a send node5581 registers an offense for build_stubbed_list(:ci_job_artifact, :archive) when is assigned5582 registers an offence for multiple create(:ci_job_artifact, :archive) calls5583 registers an offense for create(:ci_job_artifact, :archive) when is a send node5584 registers an offense for create(:ci_job_artifact, :archive) when is assigned5585 registers an offence for multiple create_list(:ci_job_artifact, :archive) calls5586 registers an offense for create_list(:ci_job_artifact, :archive) when is a send node5587 registers an offense for create_list(:ci_job_artifact, :archive) when is assigned5588Banzai::Filter::AudioLinkFilter5589 when the element src has an audio extension5590 behaves like an audio element5591 replaces the image tag with an audio tag5592 behaves like an audio element5593 replaces the image tag with an audio tag5594 behaves like an audio element5595 replaces the image tag with an audio tag5596 behaves like an audio element5597 replaces the image tag with an audio tag5598 behaves like an audio element5599 replaces the image tag with an audio tag5600 behaves like an audio element5601 replaces the image tag with an audio tag5602 behaves like an audio element5603 replaces the image tag with an audio tag5604 behaves like an audio element5605 replaces the image tag with an audio tag5606 behaves like an audio element5607 replaces the image tag with an audio tag5608 behaves like an audio element5609 replaces the image tag with an audio tag5610 when the element has no src attribute5611 behaves like an unchanged element5612 leaves the document unchanged5613 when the element src is an image5614 behaves like an unchanged element5615 leaves the document unchanged5616 when the element src has an invalid file extension5617 behaves like an unchanged element5618 leaves the document unchanged5619 when data-canonical-src is empty5620 and src is audio5621 behaves like an audio element5622 replaces the image tag with an audio tag5623 and src is an image5624 behaves like an unchanged element5625 leaves the document unchanged5626 when data-canonical-src is set5627 uses the correct src5628Upload5629 associations5630 is expected to belong to model required: false5631 validations5632 is expected to validate that :size cannot be empty/falsy5633 is expected to validate that :path cannot be empty/falsy5634 is expected to validate that :model cannot be empty/falsy5635 is expected to validate that :uploader cannot be empty/falsy5636 callbacks5637 for a file above the checksum threshold5638 schedules checksum calculation5639 for a file at or below the checksum threshold5640 calculates checksum immediately before save5641 after_destroy5642 uploader is FileUploader-based5643 calls delete_file!5644 #absolute_path5645 returns the path directly when already absolute5646 delegates to the uploader's absolute_path method5647 #relative_path5648 delegates to the uploader's relative_path method5649 #calculate_checksum!5650 sets `checksum` to SHA256 sum of the file5651 sets `checksum` to nil for a non-existent file5652 #build_uploader5653 returns a uploader object with current upload associated with it5654 #retrieve_uploader5655 returns a uploader object with current uploader associated with and cache retrieved5656 when upload has mount_point nil5657 when an upload belongs to a note5658 mounts it as attachment5659 when an upload does not belong to a note5660 does not mount it as attachment5661 #needs_checksum?5662 with local storage5663 returns true when no checksum exists5664 returns false when checksum is already present5665 with remote storage5666 returns false5667 #exist?5668 returns true when the file exists5669 when the file does not exist5670 returns false5671 when the record is persisted5672 sends a message to Sentry5673 increments a metric counter to signal a problem5674 when the record is not persisted5675 does not send a message to Sentry5676 does not increment a metric counter5677 #uploader_context5678 is expected to match (a hash including {:secret => "secret", :identifier => "file.txt"})5679 #update_project_statistics5680 updates project statistics when upload is added5681 updates project statistics when upload is removed5682Clusters::KubernetesNamespaceFinder5683 #execute5684 cluster supports separate namespaces per environment5685 no persisted namespace is present5686 is expected to be nil5687 a namespace with an environment is present5688 environment matches5689 is expected to eq #<Clusters::KubernetesNamespace id: 1, cluster_id: 38, project_id: 693, cluster_project_id: nil, crea...t_name: "project701-693-production-service-account", environment_id: 72, service_account_token: nil>5690 project cluster5691 is expected to eq #<Clusters::KubernetesNamespace id: 2, cluster_id: 40, project_id: 694, cluster_project_id: 13, creat...t_name: "project702-694-production-service-account", environment_id: 73, service_account_token: nil>5692 service account token is blank5693 is expected to be nil5694 allow_blank_token is true5695 is expected to eq #<Clusters::KubernetesNamespace id: 4, cluster_id: 44, project_id: 696, cluster_project_id: nil, crea...t_name: "project704-696-production-service-account", environment_id: 75, service_account_token: nil>5696 environment does not match5697 is expected to be nil5698 cluster does not support separate namespaces per environment5699 no persisted namespace is present5700 is expected to be nil5701 a legacy namespace with no environment is present5702 is expected to eq #<Clusters::KubernetesNamespace id: 6, cluster_id: 50, project_id: 699, cluster_project_id: nil, crea...ice_account_name: "project707-699-service-account", environment_id: nil, service_account_token: nil>5703 project cluster5704 is expected to eq #<Clusters::KubernetesNamespace id: 7, cluster_id: 52, project_id: 700, cluster_project_id: 14, creat...ice_account_name: "project708-700-service-account", environment_id: nil, service_account_token: nil>5705 service account token is blank5706 is expected to be nil5707 allow_blank_token is true5708 is expected to eq #<Clusters::KubernetesNamespace id: 9, cluster_id: 56, project_id: 702, cluster_project_id: nil, crea...ice_account_name: "project710-702-service-account", environment_id: nil, service_account_token: nil>5709Gitlab::SQL::Pattern5710 .fuzzy_search5711 query: "foo", columns: [#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f1e948f1218 @name="issues", @klass=Issue(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, updated_at: datetime, description: text, milestone_id: integer, iid: integer, updated_by_id: integer, weight: integer, confidential: boolean, due_date: date, moved_to_id: integer, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, relative_position: integer, service_desk_reply_to: string, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, discussion_locked: boolean, closed_at: datetime_with_timezone, closed_by_id: integer, state_id: integer, duplicated_to_id: integer, promoted_to_epic_id: integer, health_status: integer, external_key: string, sprint_id: integer, issue_type: integer, blocking_issues_count: integer, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date), @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f1e948f1150 @klass=Issue(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, updated_at: datetime, description: text, milestone_id: integer, iid: integer, updated_by_id: integer, weight: integer, confidential: boolean, due_date: date, moved_to_id: integer, lock_version: integer, title_html: text, description_html: text, time_estimate: integer, relative_position: integer, service_desk_reply_to: string, cached_markdown_version: integer, last_edited_at: datetime, last_edited_by_id: integer, discussion_locked: boolean, closed_at: datetime_with_timezone, closed_by_id: integer, state_id: integer, duplicated_to_id: integer, promoted_to_epic_id: integer, health_status: integer, external_key: string, sprint_id: integer, issue_type: integer, blocking_issues_count: integer, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date)>, @table_alias=nil>, name="title">], expected: [:issue1]5712 finds the expected issues5713 query: "foo", columns: [:title], expected: [:issue1]5714 finds the expected issues5715 query: "foo", columns: ["title"], expected: [:issue1]5716 finds the expected issues5717 query: "foo", columns: [:description], expected: [:issue2]5718 finds the expected issues5719 query: "foo", columns: [:title, :description], expected: [:issue1, :issue2]5720 finds the expected issues5721 query: "bar", columns: [:title, :description], expected: [:issue1]5722 finds the expected issues5723 query: "baz", columns: [:title, :description], expected: [:issue2]5724 finds the expected issues5725 query: "qux", columns: [:title, :description], expected: []5726 finds the expected issues5727 query: "oh", columns: [:title, :description], expected: [:issue3]5728 finds the expected issues5729 query: "OH", columns: [:title, :description], expected: [:issue3]5730 finds the expected issues5731 query: "ah", columns: [:title, :description], expected: [:issue3]5732 finds the expected issues5733 query: "AH", columns: [:title, :description], expected: [:issue3]5734 finds the expected issues5735 query: "oh", columns: [:title], expected: [:issue3]5736 finds the expected issues5737 query: "ah", columns: [:description], expected: [:issue3]5738 finds the expected issues5739 query: "", columns: [:title], expected: [:issue1, :issue2, :issue3]5740 finds the expected issues5741 query: ["a", "b"], columns: [:title], expected: [:issue1, :issue2, :issue3]5742 finds the expected issues5743 .to_pattern5744 when a query is shorter than 3 chars5745 returns exact matching pattern5746 and ignore_minimum_char_limit is true5747 returns partial matching pattern5748 when a query with a escape character is shorter than 3 chars5749 returns sanitized exact matching pattern5750 and ignore_minimum_char_limit is true5751 returns sanitized partial matching pattern5752 when a query is equal to 3 chars5753 returns partial matching pattern5754 when a query with a escape character is equal to 3 chars5755 returns partial matching pattern5756 when a query is longer than 3 chars5757 returns partial matching pattern5758 when a query with a escape character is longer than 3 chars5759 returns sanitized partial matching pattern5760 .select_fuzzy_terms5761 with a word equal to 3 chars5762 returns array containing a word5763 with a word shorter than 3 chars5764 returns empty array5765 with two words both equal to 3 chars5766 returns array containing two words5767 with two words divided by two spaces both equal to 3 chars5768 returns array containing two words5769 with two words equal to 3 chars and shorter than 3 chars5770 returns array containing a word5771 .split_query_to_search_terms5772 with words separated by spaces5773 returns array containing individual words5774 with a multi-word surrounded by double quote5775 returns array containing a multi-word5776 with a multi-word surrounded by double quote and two words5777 returns array containing a multi-word and two words5778 with a multi-word surrounded by double quote missing a spece before the first double quote5779 returns array containing two words with double quote5780 with a multi-word surrounded by double quote missing a spece after the second double quote5781 returns array containing two words with double quote5782 with two multi-word surrounded by double quote and two words5783 returns array containing two multi-words and two words5784 .fuzzy_arel_match5785 with a word equal to 3 chars5786 returns a single ILIKE condition5787 with a word shorter than 3 chars5788 returns a single equality condition5789 uses LOWER instead of ILIKE when LOWER is enabled5790 with two words both equal to 3 chars5791 returns a joining LIKE condition using a AND5792 with two words both shorter than 3 chars5793 returns a single ILIKE condition5794 with two words, one shorter 3 chars5795 returns a single ILIKE condition using the longer word5796 with a multi-word surrounded by double quote and two words5797 returns a joining LIKE condition using a AND5798 when passing an Arel column5799 returns a condition with the table and column name5800gitlab:cleanup rake tasks5801 cleanup:project_uploads5802 with a fixable orphaned project upload file5803 with DRY_RUN disabled5804 moves the file to its proper location5805 logs action as done5806 with DRY_RUN explicitly enabled5807 behaves like does not move the file5808 does not move the file5809 logs action as able to be done5810 with DRY_RUN set to an unknown value5811 behaves like does not move the file5812 does not move the file5813 logs action as able to be done5814 with DRY_RUN unset5815 behaves like does not move the file5816 does not move the file5817 logs action as able to be done5818 gitlab:cleanup:orphan_job_artifact_files5819 runs the task without errors5820 with DRY_RUN set to false5821 passes dry_run correctly5822 gitlab:cleanup:orphan_lfs_file_references5823 runs the task without errors5824 with DRY_RUN set to false5825 passes dry_run correctly5826 gitlab:cleanup:orphan_lfs_files5827 runs RemoveUnreferencedLfsObjectsWorker5828 sessions5829 gitlab:cleanup:sessions:active_sessions_lookup_keys5830 runs the task without errors5831 removes expired active session lookup keys5832ProjectNoteEntity5833 exposes project-specific elements5834 behaves like note entity5835 basic note5836 exposes correct elements5837 does not expose elements for specific notes cases5838 exposes author correctly5839 does not expose web_url for author5840 exposes permission fields on current_user5841 exposes the report_abuse_path5842 :can_resolve_discussion5843 discussion is resolvable5844 user can resolve5845 is true5846 user cannot resolve5847 is false5848 discussion is not resolvable5849 is false5850 :outdated_line_change_path5851 when note shows outdated changes5852 returns correct outdated_line_change_namespace_project_note_path5853 when note does not show outdated changes5854 does not expose outdated_line_change_path5855 when note was edited5856 exposes last_edited_at and last_edited_by elements5857 when note is a system note5858 exposes system_note_icon_name element5859 when note is part of resolvable discussion5860 exposes paths to resolve note5861gitlab:seed:runner_fleet rake task5862 # order random5863 with admin username5864 performs runner fleet seed successfully5865GoogleCloud::GeneratePipelineService5866 for cloud-run5867 when there is no existing pipeline5868 creates a new branch with commit for cloud-run deployment5869 generated pipeline includes cloud-run deployment5870 simulate errors5871 fails to create branch5872 fails to commit changes5873 when there is an existing pipeline without `deploy` stage5874 introduces a `deploy` stage and includes the deploy-to-cloud-run job5875 stringifies keys from the existing pipelines5876 when there is an existing pipeline with `deploy` stage5877 includes the deploy-to-cloud-run job5878 when there is an existing pipeline with `includes`5879 includes the deploy-to-cloud-run job5880 for cloud-storage5881 when there is no existing pipeline5882 creates a new branch with commit for cloud-storage deployment5883 generated pipeline includes cloud-storage deployment5884notify/pipeline_success_email.text.erb5885 behaves like pipeline status changes email5886 when the pipeline contains a failed job5887 behaves like renders the pipeline status changes email correctly5888 pipeline with user5889 renders the email correctly5890 behaves like correct pipeline information for pipelines for merge requests5891 when pipeline for merge request5892 renders a source ref of the pipeline5893 pipeline without user5894 renders the email correctly5895 when the latest failed job is a bridge job5896 behaves like renders the pipeline status changes email correctly5897 pipeline with user5898 renders the email correctly5899 behaves like correct pipeline information for pipelines for merge requests5900 when pipeline for merge request5901 renders a source ref of the pipeline5902 pipeline without user5903 renders the email correctly5904Gitlab::Ci::Ansi2html5905 prints non-ansi as-is5906 strips non-color-changing control sequences5907 prints simply red5908 prints simply red without trailing reset5909 prints simply yellow5910 prints default on blue5911 prints red on blue5912 resets colors after red on blue5913 performs color change from red/blue to yellow/blue5914 performs color change from red/blue to yellow/green5915 performs color change from red/blue to reset to yellow/green5916 ignores unsupported codes5917 prints light red5918 prints default on light red5919 performs color change from red/blue to default/blue5920 performs color change from light red/blue to default/blue5921 prints bold text5922 resets bold text5923 prints italic text5924 resets italic text5925 prints underlined text5926 resets underlined text5927 prints concealed text5928 resets concealed text5929 prints crossed-out text5930 resets crossed-out text5931 can print 256 xterm fg colors5932 can print 256 xterm fg colors on normal magenta background5933 can print 256 xterm bg colors5934 can print 256 xterm fg bold colors5935 can print 256 xterm bg colors on normal magenta foreground5936 prints bold colored text vividly5937 prints bold light colored text correctly5938 prints <5939 replaces newlines with line break tags5940 groups carriage returns with newlines5941 replaces invalid UTF-8 data5942 incremental update5943 with split word5944 behaves like stateable converter5945 to returns html to append5946 with split sequence5947 behaves like stateable converter5948 to returns html to append5949 with partial sequence5950 behaves like stateable converter5951 to returns html to append5952 with new line5953 behaves like stateable converter5954 to returns html to append5955 with section markers5956 do not allow XSS injections5957 behaves like a legit section5958 prints light red5959 begins with a section_start html marker5960 ends with a section_end html marker5961 section name includes $5962 behaves like forbidden char in section_name5963 ignores sections5964 section name includes <5965 behaves like forbidden char in section_name5966 ignores sections5967 section name contains .-_5968 behaves like a legit section5969 prints light red5970 begins with a section_start html marker5971 ends with a section_end html marker5972 truncates5973 returns truncated output5974 does not append output5975Labels::CreateService5976 #execute5977 in a project5978 with color in hex-code5979 creates a label5980 with color in allowed name5981 creates a label5982 with color in up-case allowed name5983 creates a label5984 with color surrounded by spaces5985 creates a label5986 with unknown color5987 doesn't create a label5988 with no color5989 doesn't create a label5990 in a group5991 with color in hex-code5992 creates a label5993 with color in allowed name5994 creates a label5995 with color in up-case allowed name5996 creates a label5997 with color surrounded by spaces5998 creates a label5999 with unknown color6000 doesn't create a label6001 with no color6002 doesn't create a label6003 in admin area6004 with color in hex-code6005 creates a label6006 with color in allowed name6007 creates a label6008 with color in up-case allowed name6009 creates a label6010 with color surrounded by spaces6011 creates a label6012 with unknown color6013 doesn't create a label6014 with no color6015 doesn't create a label6016Gitlab::Middleware::SameSiteCookies6017 #call6018 without SSL enabled6019 with cookie6020 does not add headers to cookies6021 with SSL enabled6022 with no cookies6023 does not add headers6024 with different browsers6025 description: "iOS 12", user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1", expected: false6026 returns expected SameSite status6027 description: "macOS 10.14 + Safari", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Safari/605.1.15", expected: false6028 returns expected SameSite status6029 description: "macOS 10.14 + Opera", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 OPR/47.0.2631.55", expected: false6030 returns expected SameSite status6031 description: "macOS 10.14 + Chrome v80", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36", expected: true6032 returns expected SameSite status6033 description: "Chrome v41", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", expected: true6034 returns expected SameSite status6035 description: "Chrome v50", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2348.1 Safari/537.36", expected: true6036 returns expected SameSite status6037 description: "Chrome v51", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2718.15 Safari/537.36", expected: false6038 returns expected SameSite status6039 description: "Chrome v62", user_agent: "Mozilla/5.0 (Macintosh; Intel NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36", expected: false6040 returns expected SameSite status6041 description: "Chrome v66", user_agent: "Mozilla/5.0 (Linux; Android 4.4.2; Avvio_793 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.126 Mobile Safari/537.36", expected: false6042 returns expected SameSite status6043 description: "Chrome v67", user_agent: "Mozilla/5.0 (Linux; Android 7.1.1; SM-J510F Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3371.0 Mobile Safari/537.36", expected: true6044 returns expected SameSite status6045 description: "Chrome v85", user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", expected: true6046 returns expected SameSite status6047 description: "Chromium v66", user_agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/66.0.3359.181 HeadlessChrome/66.0.3359.181 Safari/537.36", expected: false6048 returns expected SameSite status6049 description: "Chromium v85", user_agent: "Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/85.0.4183.59 Chrome/85.0.4183.59 Safari/537.36", expected: true6050 returns expected SameSite status6051 description: "UC Browser 12.0.4", user_agent: "Mozilla/5.0 (Linux; U; Android 4.4.4; zh-CN; A31 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.0.4.986 Mobile Safari/537.36", expected: false6052 returns expected SameSite status6053 description: "UC Browser 12.13.0", user_agent: "Mozilla/5.0 (Linux; U; Android 7.1.1; en-US; SM-C9000 Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.0.1207 Mobile Safari/537.36", expected: false6054 returns expected SameSite status6055 description: "UC Browser 12.13.2", user_agent: "Mozilla/5.0 (Linux; U; Android 9; en-US; Redmi Note 7 Build/PQ3B.190801.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.2.1208 Mobile Safari/537.36", expected: true6056 returns expected SameSite status6057 description: "UC Browser 12.13.5", user_agent: "Mozilla/5.0 (Linux; U; Android 5.1.1; en-US; PHICOMM C630 (CLUE L) Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.13.5.1209 Mobile Safari/537.36", expected: true6058 returns expected SameSite status6059 description: "Playstation", user_agent: "Mozilla/5.0 (PlayStation 4 2.51) AppleWebKit/537.73 (KHTML, like Gecko)", expected: true6060 returns expected SameSite status6061 with single cookie6062 adds required headers6063 multiple cookies6064 adds required headers6065 multiple cookies with some missing headers6066 adds missing headers6067 multiple cookies with all headers present6068 does not add new headers6069SentryIssue6070 associations6071 is expected to belong to issue required: false6072 validations6073 is expected to validate that :issue cannot be empty/falsy6074 is expected to validate that :issue is case-sensitively unique6075 is expected to validate that :sentry_issue_identifier cannot be empty/falsy6076 allows duplicated sentry_issue_identifier6077 validates uniqueness of sentry_issue_identifier per project6078 when importing6079 is expected not to validate that :issue cannot be empty/falsy6080 callbacks6081 after create commit do6082 updates Sentry with a reciprocal link on creation6083 .for_project_and_identifier6084 finds the most recent per project and sentry_issue_identifier6085TasksToBeDone::CreateWorker6086 is labeled as idempotent6087 performs multiple times sequentially without raising an exception6088 creates 3 task issues6089 .perform6090 executes the task services for all tasks to be done6091Gitlab::Ci::Build::Step6092 #from_commands6093 when script option is specified6094 behaves like has correct script6095 fabricates an object6096 when before and script option is specified6097 behaves like has correct script6098 fabricates an object6099 when timeout option is specified in seconds6100 has job level timeout6101 behaves like has correct script6102 fabricates an object6103 #from_release6104 with release6105 returns the release-cli command line6106 when release is empty6107 does not fabricate an object6108 #from_after_script6109 when after_script is empty6110 does not fabricate an object6111 when after_script is not empty6112 fabricates an object6113Analytics::CycleAnalytics::Aggregation6114 associations6115 is expected to belong to namespace required: true6116 validations6117 is expected not to validate that :namespace cannot be empty/falsy6118 is expected not to validate that :enabled cannot be empty/falsy6119 validates the array length of incremental_runtimes_in_seconds6120 validates the array length of incremental_processed_records6121 validates the array length of full_runtimes_in_seconds6122 validates the array length of full_processed_records6123 behaves like value stream analytics namespace models6124 when ProjectNamespace is given6125 is valid6126 when Namespace is given6127 fails6128 attribute updater methods6129 #cursor_for6130 returns empty cursors6131 when cursor is not empty6132 returns the cursor values6133 #consistency_check_cursor_for6134 returns empty cursor6135 returns the cursor value for IssueStageEvent6136 returns the cursor value for MergeRequestStageEvent6137 #refresh_last_run6138 updates the run_at column6139 #reset_full_run_cursors6140 resets all full run cursors to nil6141 #set_cursor6142 sets the cursor values for the given mode6143 #set_stats6144 appends stats to the runtime and processed_records attributes6145 #safe_create_for_namespace6146 creates the aggregation record6147 when non top-level group is given6148 creates the aggregation record for the top-level group6149 when the record is already present6150 does nothing6151 when the aggregation was disabled for some reason6152 re-enables the aggregation6153 #load_batch6154 loads records in priority order6155 when loading batch for last_consistency_check_updated_at6156 loads records in priority order6157 #estimated_next_run_at6158 when aggregation was not yet executed for the given group6159 is expected to eq nil6160 when aggregation was already run6161 returns the duration between the previous run timestamp and the earliest last_incremental_run_at6162 when the aggregation has persisted previous runtimes6163 adds the runtime to the estimation6164 when no records are present in the DB6165 returns nil6166 when only one aggregation record present6167 returns the minutes until the next aggregation6168ErrorTracking::Error6169 relationships6170 is expected to belong to project required: false6171 is expected to have many events6172 validations6173 is expected to validate that :name cannot be empty/falsy6174 is expected to validate that the length of :name is at most 2556175 is expected to validate that :description cannot be empty/falsy6176 is expected to validate that the length of :description is at most 10246177 is expected to validate that :actor cannot be empty/falsy6178 is expected to validate that the length of :actor is at most 2556179 is expected to validate that the length of :platform is at most 2556180 .report_error6181 updates existing record with a new timestamp6182 .sort_by_attribute6183 id desc by default6184 is expected to eq [#<ErrorTracking::Error id: 3, project_id: 773, name: "ActionView::MissingTemplate", description: [FI...3 +0000", updated_at: "2023-03-30 11:58:49.805950973 +0000", events_count: 0, status: "unresolved">]6185 first_seen6186 is expected to eq [#<ErrorTracking::Error id: 1, project_id: 771, name: "ActionView::MissingTemplate", description: [FI...9 +0000", updated_at: "2023-03-30 11:58:52.026952039 +0000", events_count: 0, status: "unresolved">]6187 last_seen6188 is expected to eq [#<ErrorTracking::Error id: 1, project_id: 771, name: "ActionView::MissingTemplate", description: [FI...0 +0000", updated_at: "2023-03-30 11:58:52.473438450 +0000", events_count: 0, status: "unresolved">]6189 frequency6190 is expected to eq [#<ErrorTracking::Error id: 8, project_id: 778, name: "ActionView::MissingTemplate", description: [FI...3 +0000", updated_at: "2023-03-30 11:58:49.805950973 +0000", events_count: 0, status: "unresolved">]6191 #title6192 is expected to eq "ActionView::MissingTemplate Missing template posts/edit"6193 #to_sentry_error6194 is expected to be a kind of Gitlab::ErrorTracking::Error6195 #to_sentry_detailed_error6196 is expected to be a kind of Gitlab::ErrorTracking::DetailedError6197 is expected to be truthy6198 is expected to eq "db853d7"6199 is expected to eq "db853d7"6200Boards::Lists::DestroyService6201 #execute6202 when board parent is a project6203 behaves like lists destroy service6204 does not remove list from board when list type is closed6205 when list type is label6206 removes list from board6207 decrements position of higher lists6208 when board parent is a group6209 behaves like lists destroy service6210 does not remove list from board when list type is closed6211 when list type is label6212 removes list from board6213 decrements position of higher lists6214Ci::Runners::RegisterRunnerService#execute6215 when no token is provided6216 returns error response6217 when invalid token is provided6218 returns error response6219 when valid token is provided6220 with a registration token6221 creates runner with default values6222 with non-default arguments6223 creates runner with specified values6224 with runner token expiration interval6225 creates runner with token expiration6226 when project token is used6227 creates project runner6228 when it exceeds the application limits6229 does not create runner6230 when abandoned runners cause application limits to not be exceeded6231 creates runner6232 when valid runner registrars do not include project6233 returns 403 error6234 when group token is used6235 creates a group runner6236 when it exceeds the application limits6237 does not create runner6238 when abandoned runners cause application limits to not be exceeded6239 creates runner6240 when valid runner registrars do not include group6241 returns error response6242 when tags are provided6243 creates runner with tags6244 creates tags in bulk6245 and tag list exceeds limit6246 does not create any tags6247Gitlab::GithubImport::Importer::SingleEndpointIssueEventsImporter6248 is expected to includes the Gitlab::GithubImport::ParallelScheduling module6249 #importer_class6250 is expected to eq Gitlab::GithubImport::Importer::IssueEventImporter6251 #representation_class6252 is expected to eq Gitlab::GithubImport::Representation::IssueEvent6253 #sidekiq_worker_class6254 is expected to eq Gitlab::GithubImport::ImportIssueEventWorker6255 #object_type6256 is expected to eq :issue_event6257 #collection_method6258 is expected to eq :issue_timeline6259 #page_counter_id6260 is expected to eq "issues/1/issue_timeline"6261 #id_for_already_imported_cache6262 is expected to eq 16263 #collection_options6264 is expected to eq {:direction=>"asc", :sort=>"created", :state=>"all"}6265 #compose_associated_id!6266 when event type is cross-referenced6267 assigns event id6268 when event type isn't cross-referenced6269 doesn't assign event id6270 #each_object_to_import6271 triggers page number increment6272 with issues6273 imports each issue event page by page6274 with merge requests6275 imports each merge request event page by page6276 when page is already processed6277 doesn't process this page6278 when event is already processed6279 doesn't process this event6280Gitlab::Conflict::FileCollection6281 #files6282 returns an array of Conflict::Files6283 #cache6284 specifies a custom namespace with the merge request commit ids6285 #can_be_resolved_in_ui?6286 returns true if conflicts for this collection can be resolved in the UI6287 returns false if conflicts for this collection can't be resolved in the UI6288 caches the result6289 #default_commit_message6290 matches the format of the git CLI commit message6291DependencyProxy::ImageTtlGroupPolicies::UpdateService6292 #execute6293 with existing dependency proxy image ttl policy6294 user_role: :maintainer, shared_examples_name: "updating the dependency proxy image ttl policy"6295 behaves like updating the dependency proxy image ttl policy6296 behaves like updating the dependency proxy image ttl policy attributes6297 updates the dependency proxy image ttl policy6298 behaves like not creating the dependency proxy image ttl policy6299 doesn't create the dependency proxy image ttl policy6300 behaves like returning a success6301 returns a success6302 with invalid params6303 doesn't update6304 behaves like not creating the dependency proxy image ttl policy6305 doesn't create the dependency proxy image ttl policy6306 behaves like returning an error6307 returns an error6308 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"6309 behaves like denying access to dependency proxy image ttl policy6310 with existing dependency proxy image ttl policy6311 behaves like not creating the dependency proxy image ttl policy6312 doesn't create the dependency proxy image ttl policy6313 behaves like returning an error6314 returns an error6315 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"6316 behaves like denying access to dependency proxy image ttl policy6317 with existing dependency proxy image ttl policy6318 behaves like not creating the dependency proxy image ttl policy6319 doesn't create the dependency proxy image ttl policy6320 behaves like returning an error6321 returns an error6322 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"6323 behaves like denying access to dependency proxy image ttl policy6324 with existing dependency proxy image ttl policy6325 behaves like not creating the dependency proxy image ttl policy6326 doesn't create the dependency proxy image ttl policy6327 behaves like returning an error6328 returns an error6329 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"6330 behaves like denying access to dependency proxy image ttl policy6331 with existing dependency proxy image ttl policy6332 behaves like not creating the dependency proxy image ttl policy6333 doesn't create the dependency proxy image ttl policy6334 behaves like returning an error6335 returns an error6336 without existing dependency proxy image ttl policy6337 user_role: :maintainer, shared_examples_name: "creating the dependency proxy image ttl policy"6338 behaves like creating the dependency proxy image ttl policy6339 creates a new package setting6340 saves the settings6341 behaves like returning a success6342 returns a success6343 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"6344 behaves like denying access to dependency proxy image ttl policy6345 with existing dependency proxy image ttl policy6346 behaves like not creating the dependency proxy image ttl policy6347 doesn't create the dependency proxy image ttl policy6348 behaves like returning an error6349 returns an error6350 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"6351 behaves like denying access to dependency proxy image ttl policy6352 with existing dependency proxy image ttl policy6353 behaves like not creating the dependency proxy image ttl policy6354 doesn't create the dependency proxy image ttl policy6355 behaves like returning an error6356 returns an error6357 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"6358 behaves like denying access to dependency proxy image ttl policy6359 with existing dependency proxy image ttl policy6360 behaves like not creating the dependency proxy image ttl policy6361 doesn't create the dependency proxy image ttl policy6362 behaves like returning an error6363 returns an error6364 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"6365 behaves like denying access to dependency proxy image ttl policy6366 with existing dependency proxy image ttl policy6367 behaves like not creating the dependency proxy image ttl policy6368 doesn't create the dependency proxy image ttl policy6369 behaves like returning an error6370 returns an error6371 when the policy is not found6372 behaves like returning an error6373 returns an error6374Gitlab::ImportExport::Group::RelationFactory6375 label object6376 does not have the original ID6377 does not have the original group_id6378 has the new group_id6379 excluded attributes6380 are removed from the imported object6381 behaves like Notes user references6382 when the importer is admin6383 and the note author is not mapped6384 is expected to eq #<User id:1562 @user879>6385 is expected to include "*By Administrator"6386 and the note author is the importer user6387 is expected to eq #<User id:1564 @user881>6388 is expected not to include "*By Administrator"6389 and the note author exists in the target instance6390 is expected to eq #<User id:1566 @user883>6391 is expected not to include "*By Administrator"6392 when the importer is not admin6393 and the note author is not mapped6394 is expected to eq #<User id:1570 @user887>6395 is expected to include "*By Administrator"6396 and the note author is the importer user6397 is expected to eq #<User id:1572 @user889>6398 is expected to include "*By Administrator"6399 and the note author exists in the target instance6400 is expected to eq #<User id:1575 @user892>6401 is expected to include "*By Administrator"6402 when relation is namespace_settings6403 is expected to eq nil6404Projects::MoveProjectMembersService6405 #execute6406 moves the members from one project to another6407 does not move existent members to the current project6408 rollbacks changes if transaction fails6409 when remove_remaining_elements is false6410 does not remove remaining project members6411gitlab:snippets namespace rake task6412 migrate6413 can migrate specific snippets passing ids6414 returns the ids of those snippet that failed the migration6415 fails if the SNIPPET_IDS env var is not set6416 fails if the number of ids provided is higher than the limit6417 fails if the env var LIMIT is invalid6418 fails if the ids are invalid6419 fails if the snippet background migration is running6420 migration_status6421 returns a message when the background migration is not running6422 returns a message saying that the background migration is running6423 list_non_migrated6424 returns a message if all snippets are migrated6425 when there are still non migrated snippets6426 returns a message returning the non migrated snippets ids6427 returns as many snippet ids as the limit set6428Gitlab::GitalyClient::ConflictsService6429 #list_conflict_files6430 behaves like listing conflicts6431 sends an RPC request6432 when allow_tree_conflicts is set to true6433 behaves like listing conflicts6434 sends an RPC request6435 #resolve_conflicts6436 sends an RPC request6437 raises a relevant exception if resolution_error is present6438 with branches with UTF-8 characters6439 handles commit messages with UTF-8 characters6440Sbom::PackageUrl::ArgumentValidator6441 # order random6442 with invalid arguments6443 a scheme is always required6444 raises an ArgumentError6445 a type is always required6446 raises an ArgumentError6447 a name is required6448 raises an ArgumentError6449 checks for invalid qualifier keys6450 raises an ArgumentError6451 invalid conan purl only namespace6452 raises an ArgumentError6453 invalid conan purl only channel qualifier6454 raises an ArgumentError6455 invalid cran purl without name6456 raises an ArgumentError6457 invalid cran purl without version6458 raises an ArgumentError6459 invalid swift purl without namespace6460 raises an ArgumentError6461 invalid swift purl without name6462 raises an ArgumentError6463 invalid swift purl without version6464 raises an ArgumentError6465 name and version are always required6466 raises an ArgumentError6467 with multiple errors6468 reports all errors6469 with valid arguments6470 valid maven purl6471 does not raise error6472 basic valid maven purl without version6473 does not raise error6474 valid go purl without version and with subpath6475 does not raise error6476 valid go purl with version and subpath6477 does not raise error6478 bitbucket namespace and name should be lowercased6479 does not raise error6480 github namespace and name should be lowercased6481 does not raise error6482 debian can use qualifiers6483 does not raise error6484 docker uses qualifiers and hash image id as versions6485 does not raise error6486 Java gem can use a qualifier6487 does not raise error6488 maven often uses qualifiers6489 does not raise error6490 maven pom reference6491 does not raise error6492 maven can come with a type qualifier6493 does not raise error6494 npm can be scoped6495 does not raise error6496 nuget names are case sensitive6497 does not raise error6498 pypi names have special rules and not case sensitive6499 does not raise error6500 rpm often use qualifiers6501 does not raise error6502 slash / after scheme is not significant6503 does not raise error6504 double slash // after scheme is not significant6505 does not raise error6506 slash /// after type is not significant6507 does not raise error6508 valid maven purl with case sensitive namespace and name6509 does not raise error6510 valid maven purl containing a space in the version and qualifier6511 does not raise error6512 valid conan purl6513 does not raise error6514 valid conan purl with namespace and qualifier channel6515 does not raise error6516 valid conda purl with qualifiers6517 does not raise error6518 valid cran purl6519 does not raise error6520 valid swift purl6521 does not raise error6522 valid hackage purl6523 does not raise error6524Gitlab::Usage::Metrics::NamesSuggestions::Generator6525 #generate6526 #add_metric6527 computes the suggested name for given metric6528 for count with default column metrics6529 behaves like name suggestion6530 return correct name6531 for count distinct with column defined metrics6532 behaves like name suggestion6533 return correct name6534 joined relations6535 counted attribute comes from source relation6536 behaves like name suggestion6537 return correct name6538 strips off time period constraint6539 behaves like name suggestion6540 return correct name6541 for sum metrics6542 behaves like name suggestion6543 return correct name6544 for add metrics6545 behaves like name suggestion6546 return correct name6547 for redis metrics6548 behaves like name suggestion6549 return correct name6550 for alt_usage_data metrics6551 behaves like name suggestion6552 return correct name6553Gitlab::Ci::Variables::Collection::Sort6554 #initialize with non-Collection value6555 raises ArgumentError6556 #errors6557 table tests6558 empty array6559 errors matches expected errors6560 valid? matches expected errors6561 does not raise6562 simple expansions6563 errors matches expected errors6564 valid? matches expected errors6565 does not raise6566 cyclic dependency6567 errors matches expected errors6568 valid? matches expected errors6569 does not raise6570 array with raw variable6571 errors matches expected errors6572 valid? matches expected errors6573 does not raise6574 variable containing escaped variable reference6575 errors matches expected errors6576 valid? matches expected errors6577 does not raise6578 #tsort6579 table tests6580 empty array6581 returns correctly sorted variables6582 simple expansions, no reordering needed6583 returns correctly sorted variables6584 complex expansion, reordering needed6585 returns correctly sorted variables6586 unused variables6587 returns correctly sorted variables6588 missing variable6589 returns correctly sorted variables6590 complex expansions with missing variable6591 returns correctly sorted variables6592 raw variable does not get resolved6593 returns correctly sorted variables6594 variable containing escaped variable reference6595 returns correctly sorted variables6596 cyclic dependency6597 raises TSort::Cyclic6598 with overridden variables6599 preserves relative order of overridden variables6600Gitlab::ImportExport::Group::RelationTreeRestorer6601 restores group tree6602 logs top-level relation creation6603 relation object saving6604 when relation object is new6605 when relation object has invalid subrelations6606 logs invalid subrelations6607 when relation object is persisted6608 when relation object is invalid6609 saves import failure with nested errors6610Projects::Topic6611 is expected to be valid6612 modules6613 is expected to includes the Avatarable module6614 associations6615 is expected to have many project_topics6616 is expected to have many projects6617 validations6618 is expected to validate that :name cannot be empty/falsy6619 is expected to validate that :name is case-insensitively unique6620 is expected to validate that the length of :name is at most 2556621 is expected to validate that the length of :description is at most 10246622 is expected to validate that :title cannot be empty/falsy6623 is expected to validate that the length of :title is at most 2556624 scopes6625 without_assigned_projects6626 returns topics without assigned projects6627 order_by_non_private_projects_count6628 sorts topics by non_private_projects_count6629 reorder_by_similarity6630 sorts topics by similarity6631 #find_by_name_case_insensitive6632 returns topic with case insensitive name6633 #search6634 returns topics with a matching name6635 returns topics with a partially matching name6636 returns topics with a matching name regardless of the casing6637 #avatar_type6638 is true if avatar is image6639 is false if avatar is html page6640 #avatar_url6641 when avatar file is uploaded6642 shows correct avatar url6643 #title_or_name6644 returns title if set6645 returns name if title not set6646Integrations::Campfire6647 behaves like Integrations::ResetSecretFields6648 #exposing_secrets_fields6649 returns an array of strings6650 #reset_secret_fields?6651 returns false if no exposing field has changed6652 returns true if any exposing field has changed6653 validation callback6654 when an exposing field has changed6655 clears all secret fields6656 when a secret field has been updated6657 does not clear this secret field6658 when a secret field has been updated with the same value6659 does not clear this secret field6660 when no exposing field has changed6661 does not clear any secret fields6662 Validations6663 is expected to validate that :room looks like an integer greater than 06664 is expected to validate that the length of :subdomain is between 1 and 636665 is expected to allow :subdomain to be ‹"foo"›6666 is expected not to allow :subdomain to be ‹"foo.bar"›6667 is expected not to allow :subdomain to be ‹"foo.bar/#"›6668 when integration is active6669 is expected to validate that :token cannot be empty/falsy6670 when integration is inactive6671 is expected not to validate that :token cannot be empty/falsy6672 #execute6673 calls Campfire API to get a list of rooms and speak in a room6674 calls Campfire API to get a list of rooms but shouldn't speak in a room6675 #log_error6676 logs an error6677Users::UpdateTodoCountCacheService6678 #execute6679 updates the todos_counts for users6680 avoids N+1 queries6681 executes one query per batch of users6682 sets the correct cache expire time6683Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas6684 properly analyzes queries6685 for SELECT on projects for allowed_gitlab_schema=no_schema6686 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLNotAllowedError6687 for SELECT on projects for allowed_gitlab_schema=gitlab_main6688 is expected not to raise Exception6689 for SELECT on projects for allowed_gitlab_schema=gitlab_ci6690 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLAccessDeniedError6691 for INSERT for allowed_gitlab_schema=no_schema6692 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLNotAllowedError6693 for INSERT for allowed_gitlab_schema=gitlab_main6694 is expected not to raise Exception6695 for INSERT for allowed_gitlab_schema=gitlab_ci6696 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DMLAccessDeniedError6697 for CREATE INDEX for allowed_gitlab_schema=no_schema6698 is expected not to raise Exception6699 for CREATE INDEX for allowed_gitlab_schema=gitlab_main6700 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DDLNotAllowedError6701 for CREATE INDEX for allowed_gitlab_schema=gitlab_ci6702 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DDLNotAllowedError6703 for CREATE SCHEMA for allowed_gitlab_schema=no_schema6704 is expected not to raise Exception6705 for CREATE SCHEMA for allowed_gitlab_schema=gitlab_main6706 is expected not to raise Exception6707 for CREATE SCHEMA for allowed_gitlab_schema=gitlab_ci6708 is expected not to raise Exception6709 for CREATE FUNCTION for allowed_gitlab_schema=no_schema6710 is expected not to raise Exception6711 for CREATE FUNCTION for allowed_gitlab_schema=gitlab_main6712 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DDLNotAllowedError6713 for CREATE FUNCTION for allowed_gitlab_schema=gitlab_ci6714 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DDLNotAllowedError6715 for CREATE TRIGGER for allowed_gitlab_schema=no_schema6716 is expected not to raise Exception6717 for CREATE TRIGGER for allowed_gitlab_schema=gitlab_main6718 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DDLNotAllowedError6719 for CREATE TRIGGER for allowed_gitlab_schema=gitlab_ci6720 is expected to raise Gitlab::Database::QueryAnalyzers::RestrictAllowedSchemas::DDLNotAllowedError6721 .require_ddl_mode!6722 when not configured does not raise exception6723 when no schemas are configured does not raise exception (DDL mode)6724 with schemas configured does raise exception (DML mode)6725 .require_dml_mode!6726 when not configured does not raise exception6727 when no schemas are configured does raise exception (DDL mode)6728 with schemas configured does raise exception (DML mode)6729WikiPages::CreateService6730 behaves like WikiPages::CreateService#execute6731 creates wiki page with valid attributes6732 executes webhooks6733 counts wiki page creation6734 the new page is at the top level6735 creates appropriate events6736 the new page is in a subsection6737 creates appropriate events6738 when the options are bad6739 does not count a creation event6740 does not record the activity6741 reports the error6742 #execute6743 when wiki create fails due to git error6744 catches the thrown error and returns a ServiceResponse error6745Gitlab::APIAuthentication::TokenResolver6746 .new6747 with a valid type6748 creates a new instance6749 with an invalid type6750 raises a validation error6751 #resolve6752 with :personal_access_token_with_username6753 with valid credentials6754 behaves like an authorized request6755 returns the correct token6756 with an invalid username6757 behaves like an unauthorized request6758 raises an error6759 with no username6760 behaves like an unauthorized request6761 raises an error6762 with :job_token_with_username6763 with valid credentials6764 behaves like an authorized request6765 returns the correct token6766 when the job is not running6767 behaves like an unauthorized request6768 raises an error6769 with the wrong username6770 behaves like an anoymous request6771 returns nil6772 with an invalid job token6773 behaves like an unauthorized request6774 raises an error6775 with :deploy_token_with_username6776 with a valid deploy token6777 behaves like an authorized request6778 returns the correct token6779 with an invalid username6780 behaves like an unauthorized request6781 raises an error6782 when the the deploy token is restricted with external_authorization6783 with a valid deploy token6784 behaves like an unauthorized request6785 raises an error6786 with :personal_access_token6787 with valid credentials6788 behaves like an authorized request6789 returns the correct token6790 with :job_token6791 with valid credentials6792 behaves like an authorized request6793 returns the correct token6794 when the job is not running6795 behaves like an unauthorized request6796 raises an error6797 with an invalid job token6798 behaves like an unauthorized request6799 raises an error6800 with :deploy_token6801 with a valid deploy token6802 behaves like an authorized request6803 returns the correct token6804 with :personal_access_token_from_jwt6805 with valid credentials6806 behaves like an authorized request6807 returns the correct token6808 with :deploy_token_from_jwt6809 with valid credentials6810 behaves like an authorized request6811 returns the correct token6812 with :job_token_from_jwt6813 with valid credentials6814 behaves like an authorized request6815 returns the correct token6816 when the job is not running6817 behaves like an unauthorized request6818 raises an error6819 with an invalid job token6820 behaves like an unauthorized request6821 raises an error6822Tooling::Graphql::Docs::Renderer6823 #contents6824 headings6825 contains the expected sections6826 when a field has a list type6827 is expected to include "### `ArrayTest`\n\n#### Fields\n\n| Name | Type | Description |\n| ---- | ---- | ----------- |\n| <a id=\"arraytestfoo\"></a>`foo` | [`[String!]!`](#string) | A description. |\n"6828 a top level query field6829 generates the query with arguments6830 when description does not end with `.`6831 adds the `.` to the end6832 when fields are not defined in alphabetical order6833 lists the fields in alphabetical order6834 when a field has a documentation reference6835 behaves like renders correctly as GraphQL documentation6836 contains the expected section6837 when an argument is deprecated6838 behaves like renders correctly as GraphQL documentation6839 contains the expected section6840 when a field is deprecated6841 behaves like renders correctly as GraphQL documentation6842 contains the expected section6843 when a Query.field is deprecated6844 behaves like renders correctly as GraphQL documentation6845 contains the expected section6846 when an argument is in alpha6847 behaves like renders correctly as GraphQL documentation6848 contains the expected section6849 when a field is in alpha6850 behaves like renders correctly as GraphQL documentation6851 contains the expected section6852 when a Query.field is in alpha6853 behaves like renders correctly as GraphQL documentation6854 contains the expected section6855 when a field has an Enumeration type6856 behaves like renders correctly as GraphQL documentation6857 contains the expected section6858 when a field has a global ID type6859 section for IDTest6860 behaves like renders correctly as GraphQL documentation6861 contains the expected section6862 section for UserID6863 behaves like renders correctly as GraphQL documentation6864 contains the expected section6865 when there is a mutation6866 does not render the automatically generated payload type6867 does not render the automatically generated input type as its own section6868 behaves like renders correctly as GraphQL documentation6869 contains the expected section6870 when there is an input type6871 behaves like renders correctly as GraphQL documentation6872 contains the expected section6873 when there is an interface and a union6874 lists the fields correctly, and includes descriptions of all the types6875Gitlab::Kubernetes::RolloutStatus6876 #deployments6877 stores the deployments6878 #instances6879 for stable track6880 stores the union of deployment instances6881 for stable track6882 sorts stable instances last6883 #completion6884 when all instances are finished6885 is expected to eq 1006886 when half of the instances are finished6887 is expected to eq 506888 with one deployment6889 sets the completion percentage when a deployment has more running pods than desired6890 with two deployments on different tracks6891 sets the completion percentage when all pods are complete6892 with two deployments that both have track set to "stable"6893 sets the completion percentage when all pods are complete6894 sets the completion percentage when no pods are complete6895 sets the completion percentage when a quarter of the pods are complete6896 with two deployments, one with track set to "stable" and one with no track label6897 sets the completion percentage when all pods are complete6898 sets the completion percentage when no pods are complete6899 sets the completion percentage when a third of the pods are complete6900 #complete?6901 when all instances are finished6902 is expected to be truthy6903 when half of the instances are finished6904 is expected to be falsy6905 #found?6906 when the specs are passed6907 is expected to be found6908 when list of specs is empty6909 is expected not to be found6910 .loading6911 is expected to be loading6912 #not_found?6913 when the specs are passed6914 is expected not to be not found6915 when list of specs is empty6916 is expected to be not found6917 #canary_ingress_exists?6918 when canary ingress exists6919 returns true6920 when canary ingress does not exist6921 returns false6922Gitlab::Metrics::Sli6923 Class methods6924 does not allow them to be called on the parent module6925 allows different SLIs to be defined on each subclass6926 Gitlab::Metrics::Sli::Apdex6927 Class methods6928 .[]6929 returns and stores a new, uninitialized SLI6930 returns the same object for multiple accesses6931 .initialize_sli6932 returns and stores a new initialized SLI6933 does not change labels for an already-initialized SLI6934 .initialized?6935 is true when an SLI was initialized with labels6936 is false when an SLI was not initialized with labels6937 #initialize_counters6938 initializes counters for the passed label combinations6939 #increment6940 increments both counters for labels when success is true6941 only increments the total counters for labels when success is false6942 Gitlab::Metrics::Sli::ErrorRate6943 Class methods6944 .[]6945 returns and stores a new, uninitialized SLI6946 returns the same object for multiple accesses6947 .initialize_sli6948 returns and stores a new initialized SLI6949 does not change labels for an already-initialized SLI6950 .initialized?6951 is true when an SLI was initialized with labels6952 is false when an SLI was not initialized with labels6953 #initialize_counters6954 initializes counters for the passed label combinations6955 #increment6956 increments both counters for labels when error is true6957 only increments the total counters for labels when error is false6958Subquery6959 # order random6960 when relation is not loaded6961 behaves like subquery as relation6962 is expected to be a kind of ActiveRecord::Relation6963 is expected to make queries6964 when array size exceeds max_limit6965 behaves like subquery as relation6966 is expected to be a kind of ActiveRecord::Relation6967 is expected to make queries6968 when relation is loaded6969 behaves like subquery as array values6970 is expected to contain exactly 844, 845, and 8466971 is expected not to make queries6972 when array size exceeds max_limit6973 behaves like subquery as relation6974 is expected to be a kind of ActiveRecord::Relation6975 is expected to make queries6976 with a select6977 behaves like subquery as array values6978 is expected to contain exactly 844, 845, and 8466979 is expected not to make queries6980 and querying with an unloaded column6981 is expected to raise ActiveModel::MissingAttributeError6982Namespaces::ProjectsFinder6983 #execute6984 without a namespace6985 returns an empty array6986 with a namespace6987 returns the project for the namespace6988 when include_subgroups is provided6989 returns all projects for the namespace6990 when ids are provided6991 returns all projects for the ids6992 when ids are provided6993 returns all projects for the ids6994 when with_issues_enabled is true6995 returns the projects that have issues enabled6996 when with_merge_requests_enabled is true6997 returns the projects that have merge requests enabled6998 when sort is similarity6999 returns projects by similarity7000 when search parameter is missing7001 returns all projects7002 when sort parameter is missing7003 returns matching projects7004 when sort parameter is ACTIVITY_DESC7005 returns projects sorted by latest activity7006Mutations::AlertManagement::UpdateAlertStatus7007 is expected to require graphql authorizations :update_alert_management_alert7008 #resolve7009 raises an error if the resource is not accessible to the user7010 user has access to project7011 changes the status7012 returns the alert with no errors7013 behaves like an incident management tracked event7014 .track_event7015 tracks the event using redis7016 behaves like Snowplow event tracking with RedisHLL context7017 behaves like Snowplow event tracking7018 is emitted7019 error occurs when updating7020 returns the alert with errors7021 invalid status given7022 returns the alert with errors7023gitlab:container_registry namespace rake tasks7024 #configure7025 when container registry is disabled7026 behaves like invalid config7027 does not call UpdateContainerRegistryInfoService7028 does not raise an error7029 prints a warning message7030 when container registry api_url is blank7031 behaves like invalid config7032 does not call UpdateContainerRegistryInfoService7033 does not raise an error7034 prints a warning message7035 when container registry is enabled and api_url is not blank7036 calls UpdateContainerRegistryInfoService7037Gitlab::Pagination::Keyset::Iterator7038 when use_union_optimization is used7039 .each_batch7040 yields an ActiveRecord::Relation when a block is given7041 raises error when ordering configuration cannot be automatically determined7042 accepts a custom batch size7043 continues after the cursor7044 allows updating of the yielded relations7045 with ordering direction7046 when ordering asc7047 orders ascending by default, including secondary order column7048 when reversing asc order7049 orders in reverse of ascending7050 when asc order, with nulls first7051 orders ascending with nulls first7052 when ordering desc7053 orders descending7054 when ordering by columns are repeated twice7055 orders descending7056 when use_union_optimization is not used7057 .each_batch7058 yields an ActiveRecord::Relation when a block is given7059 raises error when ordering configuration cannot be automatically determined7060 accepts a custom batch size7061 continues after the cursor7062 allows updating of the yielded relations7063 with ordering direction7064 when ordering asc7065 orders ascending by default, including secondary order column7066 when reversing asc order7067 orders in reverse of ascending7068 when asc order, with nulls first7069 orders ascending with nulls first7070 when ordering desc7071 orders descending7072 when ordering by columns are repeated twice7073 orders descending7074Gitlab::ImportExport::SnippetsRepoRestorer7075 bundle a snippet Git repo7076 when export has no snippet repository bundle7077 behaves like imports snippet repositories7078 is expected not to be empty7079 when export has snippet repository bundles and snippets without them7080 behaves like imports snippet repositories7081 is expected not to be empty7082 when export has only snippet bundles7083 behaves like imports snippet repositories7084 is expected not to be empty7085 when any of the snippet repositories cannot be created7086 continues processing other snippets and returns false7087JiraConnect::PublicKey7088 # order random7089 #save!7090 persists the values7091 returns itself7092 .create!7093 only accepts valid public keys7094 with OpenSSL::PKey::RSA object7095 behaves like creates a jira connect public key7096 generates a Uuid7097 sets the key attribute7098 persists the values7099 with string public key7100 behaves like creates a jira connect public key7101 generates a Uuid7102 sets the key attribute7103 persists the values7104 .find7105 raises an error7106 when the public key exists7107 loads the public key7108Resolvers::SnippetsResolver7109 #resolve7110 calls SnippetsFinder7111 when using no filter7112 returns expected snippets7113 when using filters7114 returns the snippets by type7115 returns the snippets by visibility7116 returns snippets to explore7117 returns the snippets by single gid7118 returns the snippets by array of gid7119 generates an error if both project and author are provided7120 by author id7121 returns the snippets7122 by project id7123 returns the snippets7124Packages::UpdatePackageFileService7125 #execute7126 with object storage disabled7127 behaves like updating package file with valid parameters7128 with both parameters set7129 updates the package file accordingly7130 with only file_name set7131 updates the package file accordingly7132 with only package_id set7133 updates the package file accordingly7134 behaves like not updating package with invalid parameters7135 with blank parameters7136 raise an argument error7137 with non persisted package file7138 raise an argument error7139 with object storage enabled7140 behaves like updating package file with valid parameters7141 with both parameters set7142 updates the package file accordingly7143 with only file_name set7144 updates the package file accordingly7145 with only package_id set7146 updates the package file accordingly7147 behaves like not updating package with invalid parameters7148 with blank parameters7149 raise an argument error7150 with non persisted package file7151 raise an argument error7152Gitlab::OmniauthInitializer7153 .arguments_for7154 when there are no args at all7155 returns an empty array7156 when there is an app_id and an app_secret7157 includes both of them, in positional order7158 when there is an app_id and an app_secret, and an array of args7159 concatenates the args on the end7160 when there is an app_id and an app_secret, and an array of args, and default values7161 concatenates the args on the end7162 when there is an app_id and an app_secret, and a hash of args7163 concatenates the args on the end7164 when there is an app_id and an app_secret, and a hash of args, and default arguments7165 concatenates the args on the end7166 when there is an app_id and an app_secret, no args, and default values7167 concatenates the args on the end7168 when there are args, of an unsupported type7169 when there are default arguments7170 tracks a configuration error7171 when there are no default arguments7172 tracks a configuration error7173 #execute7174 configures providers from array7175 allows "args" array for app_id and app_secret7176 passes app_id and app_secret as additional arguments7177 passes "args" hash as symbolized hash argument7178 normalizes a String strategy_class7179 allows a class to be specified in strategy_class7180 throws an error for an invalid strategy_class7181 configures on_single_sign_out proc for cas37182 configures defaults for google_oauth27183 configures defaults for gitlab7184 configures defaults for gitlab, when arguments are not provided7185 configures defaults for gitlab, when array arguments are provided7186 tracks a configuration error if the arguments are neither a hash nor an array7187 .full_host7188 is expected to eq "http://localhost/test"7189Ci::BuildTraceChunks::Database7190 #data7191 when data exists7192 returns the data7193 when data does not exist7194 returns nil7195 #set_data7196 when data exists7197 overwrites data7198 when data does not exist7199 sets new data7200 #delete_data7201 when data exists7202 deletes data7203 when data does not exist7204 does nothing7205 #size7206 when data exists7207 returns data bytesize correctly7208 when data does not exist7209 returns zero7210 #keys7211 returns empty array7212Ci::JobArtifacts::DestroyAssociationsService7213 #destroy_records7214 removes all types of artifacts without updating statistics7215 with a locked artifact7216 removes all artifacts7217 when there are no artifacts7218 does not raise error7219 #update_statistics7220 updates project statistics7221 when there are no artifacts7222 does not raise error7223Sidebars::UserProfile::Menus::ContributedProjectsMenu7224 # order random7225 behaves like User profile menu7226 does not contain any sub menu7227 renders the correct link7228 renders the correct title7229 defines correct active route7230 renders if user is logged in7231 when viewed user is blocked7232 when user is not logged in7233 is not allowed to view the menu item7234 when current user has permission7235 is allowed to view the menu item7236 when current user does not have permission7237 is not allowed to view the menu item7238 when viewed user is banned7239 when user is not logged in7240 is not allowed to view the menu item7241 when current user has permission7242 is allowed to view the menu item7243 when current user does not have permission7244 is not allowed to view the menu item7245Projects::Forks::Details7246 # order random7247 #exclusive_lease7248 returns exclusive lease to the details7249 #update!7250 updates the cache with the specified value7251 #counts7252 shows how far behind/ahead a fork is from the upstream7253 when counts calculated from a branch that exists upstream7254 compares the fork branch to upstream default branch7255 when specified branch does not exist7256 returns nils as counts7257 syncing?7258 returns whether there is a sync in progress7259 #has_conflicts7260 returns whether merge for the stored commits failed due to conflicts7261ImportExportCleanUpService7262 #execute7263 when the import/export tmp storage directory does not exist7264 does not remove any archives7265 when the import/export tmp storage directory exists7266 removes old files and logs7267 does not remove new files or logs7268 removes old files and logs7269 does not remove new files or logs7270 with uploader exports7271 removes old files and logs7272 does not remove new files or logs7273CacheableAttributes7274 .expire7275 wipes the cache7276 .current_without_cache7277 defaults to last7278 can be overridden7279 .cache_key7280 excludes cache attributes7281 .defaults7282 defaults to {}7283 with defaults defined7284 can be overridden7285 .build_from_defaults7286 without any attributes given7287 intializes a new object with the defaults7288 with attributes given7289 intializes a new object with the given attributes merged into the defaults7290 edge cases on concrete implementations7291 .build_from_defaults7292 without any attributes given7293 intializes all attributes even if they are nil7294 .current7295 uses RequestStore in addition to process memory cache7296 redis unavailable7297 in production environment7298 returns an uncached record and logs a warning7299 in other environments7300 returns an uncached record and logs a warning7301 when a record is not yet present7302 does not cache nil object7303 caches non-nil object7304 edge cases7305 caching behavior7306 retrieves upload fields properly7307 retrieves markdown fields properly7308 .cached7309 when cache is cold7310 returns nil7311 when cached is warm7312 retrieves the record from cache7313 #cache!7314 caches the attributes7315 edge cases7316 caches the attributes7317Resolvers::Ci::RunnerProjectsResolver7318 # order random7319 #resolve7320 with authorized user7321 with search argument7322 returns a lazy value with projects containing the specified prefix7323 with supported arguments7324 creates ProjectsFinder with expected arguments7325 without arguments7326 returns a lazy value with all projects7327 with unauthorized user7328 is expected to be nil7329Gitlab::Database::LoadBalancing::Configuration7330 .for_model7331 when load balancing is not configured7332 uses the default settings7333 when load balancing is configured7334 uses the custom configuration settings7335 when the load balancing configuration uses strings as the keys7336 uses the custom configuration settings7337 #load_balancing_enabled?7338 returns false when running inside a Rake task7339 returns true when hosts are configured7340 returns true when a service discovery record is configured7341 returns false when no hosts are configured and service discovery is disabled7342 #service_discovery_enabled?7343 returns false when running inside a Rake task7344 returns true when a record is configured7345 returns false when no record is configured7346 #pool_size7347 when a custom pool size is used7348 always reads the value from the model configuration7349 when the pool size is nil7350 returns the default pool size7351 #db_config_name7352 returns connection name as symbol7353 #db_config7354 returns exactly db_config7355Issues::CloseWorker7356 # order random7357 #perform7358 #perform7359 when the user can update the issues7360 closes the issues7361 closes external issues7362 when the user can not update the issues7363 does not close the issues7364 when the project does not exist7365 behaves like when object does not exist7366 does not call the close issue service7367 when the user does not exist7368 behaves like when object does not exist7369 does not call the close issue service7370 when the issue does not exist7371 behaves like when object does not exist7372 does not call the close issue service7373Clusters::InstancePolicy7374 rules7375 when user7376 is expected to be disallowed :read_cluster7377 is expected to be disallowed :add_cluster7378 is expected to be disallowed :create_cluster7379 is expected to be disallowed :update_cluster7380 is expected to be disallowed :admin_cluster7381 when admin7382 when admin mode is enabled7383 is expected to be allowed :read_cluster7384 is expected to be allowed :add_cluster7385 is expected to be allowed :create_cluster7386 is expected to be allowed :update_cluster7387 is expected to be allowed :admin_cluster7388 when admin mode is disabled7389 is expected to be disallowed :read_cluster7390 is expected to be disallowed :add_cluster7391 is expected to be disallowed :create_cluster7392 is expected to be disallowed :update_cluster7393 is expected to be disallowed :admin_cluster7394Resolvers::BlobsResolver7395 .resolver_complexity7396 adds one per path being resolved7397 #resolve7398 when unauthorized7399 generates an error7400 when authorized7401 using no filter7402 returns nothing7403 using paths filter7404 returns the specified blobs for HEAD7405 specifying a non-existent blob7406 returns nothing7407 specifying a different ref7408 returns the specified blobs for that ref7409 when specifying HEAD ref7410 returns the specified blobs for HEAD7411 when specifying an invalid ref7412 raises an ArgumentError7413 when passing an empty ref7414 raises an ArgumentError7415gitlab:lfs rake tasks7416 check7417 outputs the integrity check for each batch7418 errors out about missing files on the file system7419 errors out about invalid checksum7420Database config initializer7421 when main database connection7422 behaves like does not change connection attributes7423 retains the correct database name for connection7424 does not overwrite custom pool settings7425 when ci database connection7426 behaves like does not change connection attributes7427 retains the correct database name for connection7428 does not overwrite custom pool settings7429Atlassian::JiraConnect::Serializers::RepositoryEntity7430 is expected to match schema "jira_connect/repository"7431 with custom update_sequence_id7432 passes the update_sequence_id on to the nested entities7433Gitlab::Cleanup::OrphanJobArtifactFilesBatch7434 no dry run7435 deletes only orphan job artifacts from disk7436 does not mix up job ID and artifact ID7437 with dry run7438 does not remove files7439Gitlab::Logger7440 .build7441 builds logger using Gitlab::Logger.log_level7442 raises ArgumentError if invalid log level7443 env_value: "debug", resulting_level: 07444 builds logger if valid log level is provided7445 env_value: "DEBUG", resulting_level: 07446 builds logger if valid log level is provided7447 env_value: "DeBuG", resulting_level: 07448 builds logger if valid log level is provided7449 env_value: "info", resulting_level: 17450 builds logger if valid log level is provided7451 env_value: "INFO", resulting_level: 17452 builds logger if valid log level is provided7453 env_value: "InFo", resulting_level: 17454 builds logger if valid log level is provided7455 env_value: "warn", resulting_level: 27456 builds logger if valid log level is provided7457 env_value: "WARN", resulting_level: 27458 builds logger if valid log level is provided7459 env_value: "WaRn", resulting_level: 27460 builds logger if valid log level is provided7461 env_value: "error", resulting_level: 37462 builds logger if valid log level is provided7463 env_value: "ERROR", resulting_level: 37464 builds logger if valid log level is provided7465 env_value: "ErRoR", resulting_level: 37466 builds logger if valid log level is provided7467 env_value: "fatal", resulting_level: 47468 builds logger if valid log level is provided7469 env_value: "FATAL", resulting_level: 47470 builds logger if valid log level is provided7471 env_value: "FaTaL", resulting_level: 47472 builds logger if valid log level is provided7473 env_value: "unknown", resulting_level: 57474 builds logger if valid log level is provided7475 env_value: "UNKNOWN", resulting_level: 57476 builds logger if valid log level is provided7477 env_value: "UnKnOwN", resulting_level: 57478 builds logger if valid log level is provided7479 .log_level7480 if GITLAB_LOG_LEVEL is set7481 returns value defined by GITLAB_LOG_LEVEL7482 ignores fallback7483 if GITLAB_LOG_LEVEL is not set7484 returns default fallback DEBUG7485 returns passed fallback7486Metrics::Dashboard::TransientEmbedService7487 .valid_params?7488 is expected to be truthy7489 missing embedded7490 is expected to be falsey7491 not embedded7492 is expected to be falsey7493 missing embed_json7494 is expected to be falsey7495 #get_dashboard7496 caches the unprocessed dashboard for subsequent calls7497 caches unique requests separately7498 behaves like valid embedded dashboard service response7499 behaves like valid dashboard service response for schema7500 returns a json representation of the dashboard7501 behaves like raises error for users with insufficient permissions7502 when the user does not have sufficient access7503 behaves like misconfigured dashboard service response7504 returns an appropriate message and status code7505 when the user is anonymous7506 behaves like misconfigured dashboard service response7507 returns an appropriate message and status code7508 when embed_json cannot be parsed as json7509 behaves like misconfigured dashboard service response7510 returns an appropriate message and status code7511Ci::DeletedObject7512 attributes7513 is expected to respond to #file7514 is expected to respond to #store_dir7515 is expected to respond to #file_store7516 is expected to respond to #pick_up_at7517 .bulk_import7518 with data7519 imports data7520 with invalid data7521 does not import anything7522 with empty data7523 returns successfully7524 ActiveRecord scopes7525 .ready_for_destruction7526 returns objects that are ready7527 .lock_for_destruction7528 returns objects that are ready7529 selects only the id7530 orders by pick_up_at7531 applies limit7532 uses select for update7533 #delete_file_from_storage7534 does not raise errors7535Gitlab::Ci::YamlProcessor::FeatureFlags7536 when the actor is set7537 checks the feature flag using the given actor7538 returns the value of the block7539 restores the existing actor if any7540 restores the actor to nil after the block7541 when feature flag is checked outside the "with_actor" block7542 when yaml_processor_feature_flag_corectness is used7543 raises an error on dev/test environment7544 when on production7545 checks the feature flag without actor7546 when yaml_processor_feature_flag_corectness is not used7547 checks the feature flag without actor7548 when actor is explicitly nil7549 checks the feature flag without actor7550SystemHookUrlValidator7551 #validate7552 with no options7553 allows http,https schemes by default7554 checks that the url structure is valid7555 with schemes7556 allows urls with the defined schemes7557 add error if the url scheme does not match the selected ones7558 by default7559 blocks urls pointing to localhost7560 blocks urls pointing to the local network7561 when local requests are allowed7562 does not block urls pointing to localhost7563 does not block urls pointing to the local network7564Gitlab::Ci::Variables::Builder::Group7565 #secret_variables7566 when the ref is not protected7567 contains only the CI variables7568 when the ref is protected7569 contains all the variables7570 when environment name is specified7571 when environment scope is exactly matched7572 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f1e85ea4390 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>7573 when environment scope is matched by wildcard7574 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f1e8b777260 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>7575 when environment scope does not match7576 is expected not to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f1e704f86a8 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>7577 when environment scope has _7578 does not treat it as wildcard7579 when environment name contains underscore7580 matches literally for _7581 when environment scope has %7582 does not treat it as wildcard7583 when environment name contains a percent7584 matches literally for _7585 when variables with the same name have different environment scopes7586 orders the variables from least to most matched7587 when group has children7588 traversal queries7589 recursive7590 returns all variables belonging to the group and parent groups7591 linear7592 returns all variables belonging to the group and parent groups7593Gitlab::Database::PartitioningMigrationHelpers::IndexHelpers7594 #add_concurrent_partitioned_index7595 when the index does not exist on the parent table7596 creates the index on each partition, and the parent table7597 when the index exists on the parent table7598 does not attempt to create any indexes7599 when additional index options are given7600 forwards them to the index helper methods7601 when a name argument for the index is not given7602 raises an error7603 when the given table is not a partitioned table7604 raises an error7605 when run inside a transaction block7606 raises an error7607 #remove_concurrent_partitioned_index_by_name7608 when the index exists7609 drops the index on the parent table, cascading to all partitions7610 when the index does not exist7611 does not attempt to drop the index7612 when the given table is not a partitioned table7613 raises an error7614 when run inside a transaction block7615 raises an error7616 #find_duplicate_indexes7617 when duplicate and non-duplicate indexes exist7618 finds the duplicate index7619 #indexes_by_definition_for_table7620 when a partitioned table has indexes7621 captures partitioned index names by index definition7622 when a non-partitioned table has indexes7623 captures index names by index definition7624 when a non-partitioned table has duplicate indexes7625 raises an error7626 #rename_indexes_for_table7627 when changing a table within the current schema7628 maps index names after they are changed7629 does not rename an index which does not exist in the to_hash7630 when partitioning an existing table7631 renames indexes across schemas7632ProtectedBranches::ApiService7633 # order random7634 with entity group7635 behaves like execute with entity7636 creates a protected branch with prefilled defaults7637 updates a protected branch without prefilled defaults7638 with entity project7639 behaves like execute with entity7640 creates a protected branch with prefilled defaults7641 updates a protected branch without prefilled defaults7642DependencyProxy::HeadManifestService7643 remote request is successful7644 is expected to eq :success7645 is expected to eq "12345"7646 remote request is not found7647 is expected to eq :error7648 is expected to eq 4047649 is expected to eq "Not found"7650 net timeout exception7651 is expected to eq :error7652 is expected to eq 5997653 is expected to eq "execution expired"7654Projects::DeleteBranchWorker7655 # order random7656 #perform7657 when the branch does not exist7658 does nothing7659 with a non-existing project7660 does nothing7661 with a non-existing user7662 does nothing7663 with existing user and project7664 calls service to delete source branch7665 when delete service returns an error7666 when the status code is 4007667 tracks and raises the exception7668 when the status code is not 4007669 does not track the exception7670 behaves like an idempotent worker7671 is labeled as idempotent7672 performs multiple times sequentially without raising an exception7673Boards::Issues::CreateService7674 #execute7675 delegates the create proceedings to Issues::CreateService7676 creates a new issue7677 adds the label of the list to the issue7678Gitlab::TerraformRegistryToken7679 .from_token7680 with a deploy token7681 returns the correct token7682 with a job7683 returns the correct token7684 with a personal access token7685 returns the correct token7686 behaves like a gitlab jwt token7687 #secret7688 is expected to eq "8a8e5b94b53cd7f663e3e82a916fc55725aeb0a895943c16d708ec0e7de3ef8b"7689 #decode7690 with a custom payload7691 returns the correct token7692 returns nil and logs the exception after expiration7693Gitlab::PhabricatorImport::Issues::Importer7694 #execute7695 imports each task in the response7696 stubbed task import7697 schedules the next batch if there is one7698 does not reschedule when there is no next page7699NotificationsHelper7700 notification_icon7701 is expected to match "data-testid=\"notifications-off-icon\""7702 is expected to match "data-testid=\"notifications-off-icon\""7703 is expected to match "data-testid=\"notifications-icon\""7704 is expected to match "data-testid=\"at-icon\""7705 is expected to match "data-testid=\"earth-icon"7706 is expected to match "data-testid=\"eye-icon\""7707 is expected to equal ""7708 notification_title7709 is expected to match "Watch"7710 is expected to match "On mention"7711 is expected to match "Global"7712 #notification_icon_level7713 is expected to eq "owner_disabled"7714 is expected to eq "watch"7715 is expected to eq "participating"7716Gitlab::Database::Partitioning7717 .register_models7718 ensure that the registered models have partitioning strategy7719 fails when partitioning_strategy is not specified for the model7720 .sync_partitions_ignore_db_error7721 calls sync_partitions7722 when ActiveRecord::ActiveRecordError is raised7723 ignores it7724 when PG::Error is raised7725 ignores it7726 when DISABLE_POSTGRES_PARTITION_CREATION_ON_STARTUP is set7727 does not call sync_partitions7728 .sync_partitions7729 manages partitions for each given model7730 with multiple databases7731 creates partitions in each database (PENDING: Skipping because ci is shared or doesn't not exist)7732 when no partitioned models are given7733 manages partitions for each registered model7734 when only a specific database is requested7735 manages partitions for models for the given database (PENDING: Skipping because ci is shared or doesn't not exist)7736 .report_metrics7737 when no partitioned models are given7738 reports metrics for each registered model7739 when partitioned models are given7740 reports metrics for each given model7741 .drop_detached_partitions7742 drops detached partitions for each database7743Sidebars::Projects::Menus::MonitorMenu7744 #render?7745 monitor_level: enabled, render: true7746 renders when expected to7747 monitor_level: disabled, render: false7748 renders when expected to7749 when menu does not have any renderable menu items7750 returns false7751 when menu has menu items7752 returns true7753 #title7754 returns "Monitor"7755 #extra_container_html_options7756 returns "shortcuts-monitor"7757 Menu items7758 Metrics Dashboard7759 behaves like access rights checks7760 is expected not to be nil7761 when the user does not have access7762 is expected to be nil7763 Error Tracking7764 behaves like access rights checks7765 is expected not to be nil7766 when the user does not have access7767 is expected to be nil7768 Alert Management7769 behaves like access rights checks7770 is expected not to be nil7771 when the user does not have access7772 is expected to be nil7773 Incidents7774 behaves like access rights checks7775 is expected not to be nil7776 when the user does not have access7777 is expected to be nil7778Integrations::ChatMessage::PushMessage7779 behaves like Integrations::ChatMessage7780 when input contains link markup7781 strips all link markup characters7782 push7783 without markdown7784 returns a message regarding pushes7785 with markdown7786 returns a message regarding pushes7787 tag push7788 without markdown7789 returns a message regarding pushes7790 with markdown7791 returns a message regarding pushes7792 removed tag7793 without markdown7794 returns a message regarding removal of tags7795 with markdown7796 returns a message regarding removal of tags7797 new branch7798 without markdown7799 returns a message regarding a new branch7800 with markdown7801 returns a message regarding a new branch7802 removed branch7803 without markdown7804 returns a message regarding a removed branch7805 with markdown7806 returns a message regarding a removed branch7807Bitbucket::Representation::Issue7808 #iid7809 is expected to eq 17810 #kind7811 is expected to eq "bug"7812 #milestone7813 is expected to eq "1.0"7814 is expected to be nil7815 #author7816 is expected to eq "Ben"7817 is expected to be nil7818 #description7819 is expected to eq "Text"7820 is expected to be nil7821 #state7822 is expected to eq "closed"7823 is expected to eq "closed"7824 is expected to eq "closed"7825 is expected to eq "closed"7826 is expected to eq "closed"7827 is expected to eq "opened"7828 #title7829 is expected to eq "Issue"7830 #created_at7831 is expected to eq Thu, 30 Mar 20237832 #updated_at7833 is expected to eq Thu, 30 Mar 20237834Gitlab::Database::Reindexing::ReindexConcurrently#perform7835 recreates the index using REINDEX with a long statement timeout7836 when the index serves an exclusion constraint7837 raises an error7838 when attempting to reindex an expression index7839 raises an error7840 when the index is a dangling temporary index from a previous reindexing run7841 with the temporary index prefix7842 raises an error7843 with the temporary index prefix with a counter7844 raises an error7845 with dangling indexes matching TEMPORARY_INDEX_PATTERN, i.e. /some\_index\_ccnew(\d)*/7846 with normal index names7847 behaves like dropping the dangling index7848 drops the dangling indexes while controlling lock_timeout7849 with index name at 63 character limit7850 behaves like dropping the dangling index7851 drops the dangling indexes while controlling lock_timeout7852Banzai::Filter::ColorFilter7853 inserts color chip for supported color format #1237854 inserts color chip for supported color format #12347855 inserts color chip for supported color format #1234567856 inserts color chip for supported color format #123456787857 inserts color chip for supported color format rgb(0,0,0)7858 inserts color chip for supported color format RGB(0, 0, 0)7859 inserts color chip for supported color format rgba(0,0,0,1)7860 inserts color chip for supported color format RGBA(0,0,0,0.7)7861 inserts color chip for supported color format hsl(270,30%,50%)7862 inserts color chip for supported color format HSLA(270, 30%, 50%, .7)7863 ignores valid color code without backticks(code tags)7864 ignores valid color code with prepended space7865 ignores valid color code with appended space7866 ignores valid color code surrounded by spaces7867 ignores invalid color code7868Gitlab::CrossProjectAccess::CheckInfo7869 #should_run?7870 runs when an action is defined7871 runs when the action is missing7872 does not run when the action is excluded7873 runs when the `if` conditional is true7874 does not run when the if condition is false7875 does not run when the `unless` check is true7876 runs when the `unless` check is false7877 returns the opposite of #should_skip? when the check is a skip7878 #should_skip?7879 skips when an action is defined7880 does not skip when the action is not defined7881 does not skip when the action is excluded7882 skips when the `if` conditional is true7883 does not skip the `if` conditional is false7884 does not skip when the `unless` check is true7885 skips when `unless` check is false7886 returns the opposite of #should_run? when the check is not a skip7887gitlab:db:decomposition:connection_status7888 # order random7889 when separate ci database is configured7890 does not show connection information7891 when separate ci database is not configured7892 when PostgreSQL max_connections is too low7893 suggests to increase it (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)7894 when PostgreSQL max_connections is high enough7895 only shows current status (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)7896Gitlab::Ci::Pipeline::Seed::Pipeline7897 #stages7898 returns the stage resources7899 #size7900 returns the number of jobs7901 #errors7902 when attributes are valid7903 returns nil7904 when attributes are not valid7905 returns the errors7906 #deployments_count7907 counts the jobs having an environment associated7908 #root_variables7909 returns root_variables7910Sidebars::UserSettings::Menus::GpgKeysMenu7911 # order random7912 behaves like User settings menu7913 does not contain any sub menu7914 renders the correct link7915 renders the correct title7916 renders the correct icon7917 defines correct active route7918 behaves like User settings menu #render? method7919 #render?7920 when user is logged in7921 renders7922 when user is not logged in7923 does not render7924GpgKeys::DestroyService7925 destroys the GPG key7926ProjectDestroyWorker7927 is labeled as idempotent7928 performs multiple times sequentially without raising an exception7929 does not change projects when run twice7930 #perform7931 deletes the project7932 does not raise error when project could not be found7933 does not raise error when user could not be found7934Gitlab::GithubImport::Importer::Attachments::IssuesImporter7935 # order random7936 #id_for_already_imported_cache7937 is expected to eq 10437938 #sidekiq_worker_class7939 is expected to eq Gitlab::GithubImport::Attachments::ImportIssueWorker7940 #sequential_import7941 imports each project issue attachments7942 when issue is already processed7943 doesn't import this issue attachments7944 #object_type7945 is expected to eq :issue_attachment7946 #collection_method7947 is expected to eq :issue_attachments7948RuboCop::Cop::Migration::AddReference7949 # order random7950 when outside of a migration7951 does not register any offenses7952 when in a migration7953 when the table existed before7954 registers an offense when using add_reference7955 registers an offense when using add_reference with index enabled7956 registers an offense if only a different table was created7957 when creating the table at the same time7958 registers an offense when using add_reference without index7959 registers an offense when using add_reference index disabled7960 does not register an offense when using add_reference with index enabled7961 does not register an offense when the index is unique7962Resolvers::Projects::GrafanaIntegrationResolver7963 #resolve7964 when object is not a project7965 is expected to eq nil7966 when object is a project7967 is expected to eq #<GrafanaIntegration id: 1, project_id: 917, created_at: "2023-03-30 12:02:03.103332652 +0000", updat...ken_iv: "hnN+PPe/Aj0+i6l6\n", grafana_url: "https://grafana.example.com", enabled: true, token: nil>7968 when object is nil7969 is expected to eq nil7970Gitlab::UsageDataCounters::MergeRequestCounter7971 behaves like a redis usage counter7972 .count(create)7973 increments the Merge Request create counter by 17974 .read(create)7975 returns the total number of create events7976 behaves like a redis usage counter with totals7977 totals7978 can report all totals7979 unknown events7980 cannot increment7981 cannot read7982Ci::PrometheusMetrics::ObserveHistogramsService7983 with empty data7984 does not raise errors7985 observes metrics successfully7986 increments the metrics7987 returns an empty body and status code7988 with unknown histograms7989 raises ActiveRecord::RecordNotFound error7990Stepable7991 stops after the first non success status7992 when all methods return success7993 calls all methods in order7994 merges variables returned by all steps7995 can modify results of previous steps7996 with multiple stepable classes7997 does not leak steps7998RuboCop::Cop::RSpec::BeSuccessMatcher7999 # order random8000 using is_expected.not_to be_successful call8001 does not register an offense8002 using is_expected.to_not be_success call8003 registers an offense and corrects8004 using expect(response).to be_successful call8005 does not register an offense8006 using expect(response).not_to be_successful call8007 does not register an offense8008 using expect(response).to_not be_success call8009 registers an offense and corrects8010 using expect(response).to be_success call8011 registers an offense and corrects8012 using is_expected.not_to be_success call8013 registers an offense and corrects8014 using expect(response).not_to be_success call8015 registers an offense and corrects8016 using is_expected.to be_success call8017 registers an offense and corrects8018 using is_expected.to be_successful call8019 does not register an offense8020 using is_expected.to_not be_successful call8021 does not register an offense8022 using expect(response).to_not be_successful call8023 does not register an offense8024Gitlab::Ci::Status::Build::Erased8025 #illustration8026 is expected to include :image, :size, and :title8027 .matches?8028 when build is erased8029 is a correct match8030 when build is not erased8031 does not match8032Boards::CreateService8033 #execute8034 when board parent is a project8035 behaves like boards create service8036 when parent does not have a board8037 creates a new board8038 creates the default lists8039 when parent has a board8040 does not create a new board8041 when board parent is a group8042 behaves like boards create service8043 when parent does not have a board8044 creates a new board8045 creates the default lists8046 when parent has a board8047 does not create a new board8048MemberSerializer8049 group member8050 handles last group owner assignment8051 behaves like members.json8052 is expected to match schema "members"8053 project member8054 does not invoke group owner assignment8055 behaves like members.json8056 is expected to match schema "members"8057Gitlab::Kubernetes::Node8058 #all8059 when connection to the cluster is successful8060 is expected to eq {:nodes=>[{"metadata"=>{"name"=>"gke-cluster-applications-default-pool-49b7f225-v527"}, "status"=>{"a...ity"=>{"cpu"=>"2", "memory"=>"7657228Ki"}}, "usage"=>{"cpu"=>"144208668n", "memory"=>"1789048Ki"}}]}8061 when an uncategorised error is raised8062 is expected to eq {:node_connection_error=>:unknown_error}8063 notifies Sentry8064Packages::Rpm::RepositoryFile8065 # order random8066 with status scopes8067 .with_status8068 is expected to contain exactly #<Packages::Rpm::RepositoryFile id: 2, created_at: "2023-03-30 12:02:14.789513244 +0000", updated_at:...d0b3306c4fd0696dcad506f5273...", file_name: "364c77dd49e8f814d56e621d0b3306c4fd0696dcad506f5273...">8069 behaves like having unique enum values8070 has unique values in "status"8071 validations8072 is expected to validate that :project cannot be empty/falsy8073 relationships8074 is expected to belong to project required: false8075 .has_oversized_filelists?8076 when has oversized filelists8077 is expected to equal true8078 when filelists.xml is not oversized8079 is expected to be falsey8080 when there is no filelists.xml8081 is expected to be falsey8082 when updating project statistics8083 when the package file has an explicit size8084 behaves like UpdateProjectStatistics8085 is expected to be a new record8086 when the package file does not have a size8087 behaves like UpdateProjectStatistics8088 is expected to be a new record8089Gitlab::Graphql::Representation::TreeEntry8090 .decorate8091 returns NilClass when given nil8092 returns array of TreeEntry8093Analytics::UsageTrends::CounterJobWorker8094 is labeled as idempotent8095 performs multiple times sequentially without raising an exception8096 counts a scope and stores the result8097 does not raise error when inserting duplicated measurement8098 does not insert anything when BatchCount returns error8099 when no records are in the database8100 sets 0 as the count8101 when the timeout elapses8102 continues counting later when the timeout elapses8103 when pipelines_succeeded identifier is passed8104 counts successful pipelines8105Gitlab::Auth::Saml::IdentityLinker8106 with valid GitLab initiated request8107 linked identity exists8108 doesn't create new identity8109 sets #changed? to false8110 identity needs to be created8111 creates linked identity8112 sets identity provider8113 sets identity extern_uid8114 sets #changed? to true8115 with identity provider initiated request8116 attempting to link accounts raises an exception8117Gitlab::Blame8118 #first_line8119 is expected to eq 18120 with a range8121 is expected to eq 28122 #groups8123 groups lines properly8124 with a range 1..58125 returns the correct lines8126 with highlighted lines8127 returns the correct lines8128 with a range 2..48129 returns the correct lines8130 with highlighted lines8131 returns the correct lines8132 renamed file8133 adds previous path8134HashedStorage::MigratorWorker8135 #perform8136 delegates to MigratorService8137 migrates projects in the specified range8138Sidebars::Projects::SuperSidebarPanel8139 # order random8140 implements #super_sidebar_context_header8141 #renderable_menus8142 is exposed as a renderable menu8143BulkImports::Common::Transformers::UserReferenceTransformer8144 #transform8145 when user can be found by email8146 sets found user_id and removes user key8147 when user cannot be found by email8148 sets found user_id and removes user key8149 when there is no data to transform8150 returns8151 when custom reference is provided8152 updates provided reference8153 updates provided reference8154Gitlab::Ci::Trace::RemoteChecksum8155 #md5_checksum8156 when the file is stored locally8157 is expected to be nil8158 when object store is enabled8159 with local files8160 is expected to be nil8161 with remote files8162 with AWS as provider8163 is expected to eq "ebde71c229ce37275c8708b4e3ae5eec"8164 with Google as provider8165 when the response does not include :content_md58166 raises an exception8167 when the response include :content_md58168 is expected to eq "ebde71c229ce37275c8708b4e3ae5eec"8169 with unsupported providers8170 is expected to be nil8171Resolvers::Ci::GroupRunnersResolver8172 #resolve8173 when user cannot see runners8174 returns no runners8175 with user as group owner8176 returns all the runners8177 with membership direct8178 returns only direct runners8179 with obj set to nil8180 raises an error8181 with obj not set to group8182 raises an error8183 Allowed query arguments8184 calls RunnersFinder with expected arguments8185Gitlab::Ci::Pipeline::Quota::Deployments8186 #enabled?8187 when limit is enabled in plan8188 is enabled8189 when limit is not enabled8190 is not enabled8191 when limit does not exist8192 is enabled by default8193 #exceeded?8194 when limit is exceeded8195 is exceeded8196 when limit is not exceeded8197 is not exceeded8198 #message8199 when limit is exceeded8200 returns info about pipeline deployment limit exceeded8201Namespace::AggregationSchedule8202 is expected to belong to namespace required: false8203 #default_lease_timeout8204 is expected to eq 18008205 when remove_namespace_aggregator_delay FF is disabled8206 is expected to eq 36008207 #schedule_root_storage_statistics8208 when we can't obtain the lease8209 does not schedule the workers8210 when we can obtain the lease8211 schedules a root storage statistics after create8212 does not release the lease8213 only executes the workers once8214Projects::FetchStatisticsIncrementService8215 #execute8216 creates a new record for today with count == 18217 doesn't increment previous days statistics8218 when the record already exists for today8219 increments the today record count by 18220SentryErrorPresenter8221 #frequency8222 returns an array of frequency structs8223 converts the times into UTC time objects8224 returns the correct counts8225 #project_id8226 returns a global ID of the correct type8227Users::UpdateHighestMemberRoleService8228 #execute8229 when user_highest_role already exists8230 when the current highest access level equals the already stored highest access level8231 does not update the highest access level8232 when the current highest access level does not equal the already stored highest access level8233 updates the highest access level8234 when user_highest_role does not exist8235 creates an user_highest_role object to store the highest access level8236JiraConnect::CreateAsymmetricJwtService8237 # order random8238 #execute8239 raises an error8240 with proxy installation8241 stores the public key8242 behaves like produces a valid JWT8243 produces a valid JWT8244 with uninstalled event option8245 behaves like produces a valid JWT8246 produces a valid JWT8247Import::ProviderRepoSerializer8248 #represent8249 raises an error if invalid provider supplied8250 provider: :github, class_name: "Import::GithubishProviderRepoEntity"8251 uses correct entity class8252 provider: :gitea, class_name: "Import::GithubishProviderRepoEntity"8253 uses correct entity class8254 provider: :bitbucket, class_name: "Import::BitbucketProviderRepoEntity"8255 uses correct entity class8256 provider: :bitbucket_server, class_name: "Import::BitbucketServerProviderRepoEntity"8257 uses correct entity class8258 provider: :fogbugz, class_name: "Import::FogbugzProviderRepoEntity"8259 uses correct entity class8260shared/projects/_list8261 with projects8262 renders the list of projects8263 will not show elements a user shouldn't be able to see8264 without projects8265 when @contributed_projects is set8266 and is empty8267 renders a no-content message8268 when @starred_projects is set8269 and is empty8270 renders a no-content message8271 and without a special instance variable8272 for an explore_page8273 renders a no-content message8274 for a non-explore page8275 renders a no-content message8276Resolvers::DataTransfer::ProjectDataTransferResolver8277 # order random8278 when user has permissions to see data transfer8279 returns mock data8280 when data_transfer_monitoring is disabled8281 returns empty result8282 when data_transfer_monitoring_mock_data is disabled8283 calls ProjectDataTransferFinder with expected arguments8284 with authorized user but without enough permissions8285 does not raise an error and returns no data8286 with anonymous access8287 does not raise an error and returns no data8288Gitlab::Database::SharedModel8289 using an external connection8290 overrides the connection for the duration of the block8291 does not affect connections in other threads8292 raises an error if the connection does not include `:gitlab_shared` schema8293 when multiple connection overrides are nested8294 allows the nesting with the same connection object8295 raises an error if the connection is changed8296 when the block raises an error8297 re-raises the error, removing the overridden connection8298 #connection_db_config8299 returns the class connection_db_config8300 when switching the class connection8301 returns the db_config of the used connection when using load balancing8302Ci::CreateDownstreamPipelineWorker8303 #perform8304 when bridge exists8305 calls cross project pipeline creation service and logs the new pipeline id8306 when downstream pipeline creation errors8307 calls cross project pipeline creation service and logs the error8308 when bridge does not exist8309 does nothing8310Gitlab::AppJsonLogger8311 logs a hash as a JSON8312 logs a string as a JSON8313Ci::Runners::StaleMachinesCleanupCronWorker8314 # order random8315 #perform8316 behaves like an idempotent worker8317 is labeled as idempotent8318 performs multiple times sequentially without raising an exception8319 delegates to Ci::Runners::StaleMachinesCleanupService8320 cleans up stale runner machines8321RuboCop::Cop::SidekiqApiUsage8322 # order random8323 registers offence when calling Sidekiq API8324 registers offence when assigning Sidekiq API classes8325 does not registers offence when calling Sidekiq::Testing8326 when calling Sidekiq::Worker8327 registers no offences for calling skipping_transaction_check8328 registers no offences for calling raise_inside_transaction_exception8329 registers no offences for calling raise_exception_for_being_inside_a_transaction?8330 registers offence for calling other Sidekiq::Worker methods8331Constraints::UserUrlConstrainer8332 #matches?8333 valid request8334 is expected to be truthy8335 invalid request8336 is expected to be falsey8337 when the request matches a redirect route8338 and is a GET request8339 is expected to be truthy8340 and is NOT a GET request8341 is expected to be falsey8342Gitlab::Graphql::BatchKey8343 is equal to keys of the same object, regardless of lookahead or object name8344 delegates attribute lookup methods to the inner object8345 allows the object to be named more meaningfully8346 works as a hash key8347 #requires?8348 returns false if the lookahead was not provided8349 lookahead was provided8350 returns false if the path is empty8351 it selects the field8352 returns true8353 it does not select the field8354 returns false8355Katalon.gitlab-ci.yml8356 # order random8357 the created pipeline8358 create katalon tests jobs8359GroupExportWorker8360 #perform8361 when it succeeds8362 calls the ExportService8363 when it fails8364 raises an exception when params are invalid8365 sidekiq options8366 disables retry8367 disables dead8368Gitlab::SlashCommands::ApplicationHelp8369 #execute8370 displays the help section8371 with incident declare command8372 when feature flag is enabled8373 displays the declare command8374 when feature flag is disabled8375 does not displays the declare command8376Ide::BaseConfigService8377 #execute8378 when insufficient permission8379 returns an error8380 for developer8381 when file is missing8382 returns an error8383 when file is present8384 content is not valid8385 returns an error8386Gitlab::Metrics::Exporter::MetricsMiddleware8387 #call8388 records a total requests metric8389 records a request duration histogram8390WorkItems::BuildService8391 #execute8392 is expected to be a kind of WorkItem(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, u...nteger, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date)8393RuboCop::Cop::Migration::BackgroundMigrationBaseClass8394 # order random8395 when the migration class inherits from BatchedMigrationJob8396 does not register any offenses8397 when the migration class inherits from the top-level namespaced BatchedMigrationJob8398 does not register any offenses8399 when the migration class inherits from another class8400 registers an offense8401 when the migration class does not inherit from anything8402 registers an offense8403 when the migration class inherits from the namespaced BatchedMigrationJob8404 does not register any offenses8405 when a nested class is used inside the job class8406 does not register any offenses8407RuboCop::Cop::RSpec::AvoidTestProf8408 # order random8409 when there are offenses8410 method_call: "let_it_be(:user)", method_name: "let_it_be", alternatives: "`let` or `let!`"8411 registers the offense8412 method_call: "let_it_be_with_reload(:user)", method_name: "let_it_be_with_reload", alternatives: "`let` or `let!`"8413 registers the offense8414 method_call: "let_it_be_with_refind(:user)", method_name: "let_it_be_with_refind", alternatives: "`let` or `let!`"8415 registers the offense8416 method_call: "before_all", method_name: "before_all", alternatives: "`before` or `before(:all)`"8417 registers the offense8418 when there are no offenses8419 method_call: "let(:user)"8420 does not register an offense8421 method_call: "let!(:user)"8422 does not register an offense8423 method_call: "before"8424 does not register an offense8425 method_call: "before(:all)"8426 does not register an offense8427Resolvers::GroupsResolver8428 #resolve8429 includes public groups8430 includes accessible private groups8431 ordering8432 orders by name ascending8433 with `search` argument8434 filters groups by name8435FeatureFlagEntity8436 has feature flag attributes8437DiscussionNote8438 #to_ability_name8439 is expected to eq "note"8440Resolvers::Ci::RunnerGroupsResolver8441 # order random8442 #resolve8443 with authorized user8444 returns a lazy value with all groups8445 with unauthorized user8446 is expected to be nil8447BulkImports::TreeExportService8448 #execute8449 executes export service and archives exported data8450 when unsupported relation is passed8451 raises an error8452 when relation is self8453 executes export on portable itself8454 #exported_filename8455 returns filename of the exported file8456 when relation is self8457 returns filename of the exported file8458RuboCop::Cop::Migration::AddTimestamps8459 # order random8460 when in migration8461 registers an offense when the "add_timestamps" method is used8462 does not register an offense when the "add_timestamps" method is not used8463 does not register an offense when the "add_timestamps_with_timezone" method is used8464 when outside of migration8465 registers no offense8466RuboCop::Cop::Migration::RemoveColumn8467 # order random8468 when outside of a migration8469 registers no offense8470 when in a post-deployment migration8471 registers no offense8472 when in a regular migration8473 registers an offense when remove_column is used in the change method8474 registers an offense when remove_column is used in the up method8475 registers no offense when remove_column is used in the down method8476RspecFlaky::FlakyExamplesCollection8477 #initialize8478 accepts no argument8479 accepts a hash8480 does not accept anything else8481 #to_h8482 calls #to_h on the values8483 #-8484 returns only examples that are not present in the given collection8485 fails if the given collection does not respond to `#key?`8486Gitlab::Metrics::LooseForeignKeysSlis8487 # order random8488 #initialize_slis!8489 initializes Apdex and ErrorRate SLIs for loose_foreign_key_clean_ups8490 #record_apdex8491 with success: true8492 increments the loose_foreign_key_clean_ups Apdex as a success8493 with success: false8494 increments the loose_foreign_key_clean_ups Apdex as not a success8495 #record_error_rate8496 with error: true8497 increments the loose_foreign_key_clean_ups ErrorRate as an error8498 with error: false8499 increments the loose_foreign_key_clean_ups ErrorRate as not an error8500UploadChecksumWorker8501 #perform8502 without a valid record8503 rescues ActiveRecord::RecordNotFound8504 with a valid record8505 calls calculate_checksum!8506 calls save!8507Ci::BuildPrepareWorker8508 build exists8509 calls the prepare build service8510 build does not exist8511 does not attempt to prepare the build8512Gitlab::Graphql::Authorize::ObjectAuthorization8513 #ok?8514 when there are no abilities8515 is expected to be ok #<Double (anonymous)> and #<Double (anonymous)>8516 when no ability should be allowed8517 is expected not to be ok #<struct Foo x=0, y=0> and #<Double :User>8518 when go_fast should be allowed8519 is expected not to be ok #<struct Foo x=100, y=0> and #<Double :User>8520 when go_fast and go_slow should be allowed8521 is expected to be ok #<struct Foo x=100, y=100> and #<Double :User>8522 when the object delegates to another subject8523 is expected to be ok #<Double :Proxy> and #<Double :User>8524 is expected not to be ok #<Double :Proxy> and #<Double :User>8525Gitlab::Pages8526 .verify_api_request8527 returns false if fails to validate the JWT8528 returns the decoded JWT8529 .access_control_is_forced?8530 access_control_is_enabled: false, access_control_is_forced: false, result: false8531 is expected to eq false8532 access_control_is_enabled: false, access_control_is_forced: true, result: false8533 is expected to eq false8534 access_control_is_enabled: true, access_control_is_forced: false, result: false8535 is expected to eq false8536 access_control_is_enabled: true, access_control_is_forced: true, result: true8537 is expected to eq true8538Types::GrafanaIntegrationType8539 is expected to eq "GrafanaIntegration"8540 is expected to require graphql authorizations :admin_operations8541 is expected to have graphql fields :id, :grafana_url, :enabled, :created_at, and :updated_at8542Gitlab::Graphql::Loaders::BatchLfsOidLoader8543 #find8544 batch-resolves LFS blob IDs8545Gitlab::DataBuilder::Alert8546 .build8547 is expected to be a kind of Hash8548 is expected to eq "alert"8549 contains the correct object attributes8550Gitlab::Ci::Config::Entry::Stage8551 validations8552 when stage config value is correct8553 #value8554 returns a stage key8555 #valid?8556 is valid8557 when value has a wrong type8558 reports errors about wrong type8559 .default8560 returns default stage8561WaitableWorker8562 #perform8563 when the worker takes arguments8564 behaves like perform8565 notifies the JobWaiter when done if the key is provided8566 does not notify the JobWaiter when done if no key is provided8567 when the worker takes no arguments8568 behaves like perform8569 notifies the JobWaiter when done if the key is provided8570 does not notify the JobWaiter when done if no key is provided8571WorkItems::HierarchyRestriction8572 # order random8573 associations8574 is expected to belong to parent_type required: false8575 is expected to belong to child_type required: false8576 validations8577 is expected to validate that :parent_type cannot be empty/falsy8578 is expected to validate that :child_type cannot be empty/falsy8579 is expected to validate that :child_type is case-sensitively unique within the scope of :parent_type_id8580CronjobQueue8581 disables retrying of failed jobs8582 automatically clears project, user and namespace from the context8583 gets scheduled with caller_id set to Cronjob8584 gets root_caller_id from the cronjob8585 does not set the caller_id if there was already one in the context8586Types::Packages::Composer::JsonType8587 is expected to eq "PackageComposerJsonType"8588 includes composer json files8589Projects::GoogleCloud::CloudsqlHelper8590 # order random8591 #VERSIONS8592 returns versions for :postgres8593 returns versions for :mysql8594 returns versions for :sqlserver8595 #TIERS8596 is an array8597IncidentManagement::IssuableEscalationStatuses::CreateService8598 # order random8599 creates an escalation status for the incident with no policy set8600 existing escalation status8601 exits without changing anything8602PartitionedTable8603 .partitioned_by8604 assigns the MonthlyStrategy as the partitioning strategy8605 passes the partitioning key to the strategy instance8606 with keyword arguments passed to the strategy8607 passes the keyword arguments to the strategy8608Gitlab::GlobalId::Deprecations8609 .deprecated?8610 returns a boolean to signal if model name has a deprecation8611 .deprecation_for8612 returns the deprecation for the model if it exists8613 .deprecation_by8614 returns the deprecation by the model if it exists8615 .apply_to_graphql_name8616 returns the corresponding graphql_name of the GID for the new model8617 returns the same value if there is no deprecation8618Gitlab::Ci::Config::External::Mapper::Filter8619 # order random8620 #process8621 filters locations according to rules8622Gitlab::Memory::Reports::HeapDump8623 # order random8624 #active?8625 is true when report_heap_dumps is enabled8626 is false when report_heap_dumps is disabled8627 #run8628 when no heap dump is enqueued8629 does nothing and returns false8630 when a heap dump is enqueued8631 dumps heap and returns true8632 #name8633 is set8634Types::AccessLevelEnum8635 is expected to eq "AccessLevelEnum"8636 exposes all the existing access levels8637Gitlab::Kubernetes::ServiceAccount8638 is expected to eq "a_service_account"8639 is expected to eq "a_namespace"8640 #generate8641 builds a Kubeclient Resource8642Ci::Runners::StaleMachinesCleanupService8643 # order random8644 with some stale runner machines8645 only leaves non-stale runners8646 with more stale runners than MAX_DELETIONS8647 only leaves non-stale runners8648 with no stale runner machines8649 does not clean any runner machines and returns :success status8650Gitlab::Middleware::RackMultipartTempfileFactory8651 for a multipart request8652 immediately unlinks the temporary file8653 processes the request as normal8654 for a regular request8655 does nothing8656Gitlab::DependencyLinker::GoModLinker8657 .support?8658 supports go.mod8659 does not support other files8660 #link8661 links the module name8662 links dependencies8663Gitlab::Pages::Settings8664 #path8665 is expected to eq "the path"8666 when running under a web server outside of test mode8667 logs a DiskAccessDenied error8668 when local_store settings does not exist yet8669 is expected to eq "the path"8670 when local store exists but legacy storage is disabled8671 logs a DiskAccessDenied error8672Gitlab::Auth::U2fWebauthnConverter8673 converts u2f registration8674Types::Tree::SubmoduleType8675 is expected to eq "Submodule"8676 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, and :tree_url8677Gitlab::ExternalAuthorization::Logger8678 .log_access8679 logs a nice message for an access request8680 does not trip without a project path8681 adds the load time for cached accesses8682Gitlab::GithubImport::Importer::LfsObjectImporter8683 #execute8684 calls the LfsDownloadService with the lfs object attributes8685Pajamas::Component8686 #filter_attribute8687 returns default value when no value is given8688 returns default value when invalid value is given8689 returns given value when it is part of allowed list8690 #format_options8691 merges CSS classes and additional options8692Gitlab::PhabricatorImport::Representation::Task8693 #issue_attributes8694 contains the expected values8695 #author_phid8696 returns the correct field8697 #owner_phid8698 returns the correct field8699Types::CustomerRelations::OrganizationStateCountsType8700 is expected to eq "OrganizationStateCounts"8701 is expected to have graphql fields "all", "active", and "inactive"8702 #all8703 returns the sum of all counts8704API::Validations::Validators::Limit8705 valid limit param8706 does not raise a validation error8707 longer than limit param8708 raises a validation error8709 value is nil8710 does not raise a validation error8711Types::IssueStateEnum8712 is expected to eq "IssueState"8713 behaves like issuable state8714 exposes all the existing issuable states8715ExportHelper8716 #project_export_descriptions8717 includes design management8718Gitlab::SQL::Glob8719 .to_like8720 matches * as %8721 matches % literally8722 matches _ literally8723Serverless::DomainEntity8724 #as_json8725 has an id8726 has a domain8727Gitlab::AppLogger8728 logs info to only the AppJsonLogger when unstructured logs are disabled8729Gitlab::Diff::FileCollectionSorter8730 #sort8731 returns list sorted directory first8732GoogleCloud::FetchGoogleIpListWorker8733 # order random8734 #perform8735 returns success8736Gitlab::GrapeLogging::Loggers::TokenLogger8737 .parameters8738 when no token information is available8739 returns an empty hash8740 when token information is available8741 adds the token information to log parameters8742RuboCop::Cop::Gitlab::BulkInsert8743 # order random8744 flags the use of ApplicationRecord.legacy_bulk_insert8745 flags the use of ::ApplicationRecord.legacy_bulk_insert8746Gitlab::Database::SchemaValidation::Validators::BaseValidator8747 # order random8748 #execute8749 raises an exception8750 .all_validators8751 returns an array of all validators8752Banzai::Pipeline::ServiceDeskEmailPipeline8753 # order random8754 .filters8755 returns the expected type8756 excludes ServiceDeskUploadLinkFilter8757Gitlab::Patch::Uri8758 # order random8759 #parse8760 raises an error if the URI is too long8761 does not raise an error if the URI is not too long8762PolicyActor8763 implements all the methods from user8764API::Entities::Nuget::DependencyGroup8765 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependencygroup", :@type=>"PackageDependencyGroup", ...y", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}], :targetFramework=>"fwk test"}8766 dependency group without target framework8767 is expected to eq {:@id=>"http://gitlab.com/Sandbox.App/1.0.0.json#dependencygroup", :@type=>"PackageDependencyGroup", ...ndbox.App/1.0.0.json#dependency", :@type=>"PackageDependency", :id=>"Dependency", :range=>"2.0.0"}]}8768Types::IssueTypeEnum8769 is expected to eq "IssueType"8770 exposes all the existing issue type values except key_result8771Gitlab::DefaultBranch8772 main_branch_over_master is enabled8773 returns main8774 main_branch_over_master is disabled8775 returns master8776Types::ProjectMemberRelationEnum8777 is expected to eq "ProjectMemberRelation"8778 exposes all the existing project member relation type values8779Sidekiq::Cron::Job8780 cron jobs8781 when Fugit depends on ZoTime or EoTime8782 does not get any errors8783NamespaceBasicEntity8784 #as_json8785 includes required fields8786Types::Packages::PackageDependencyTypeEnum8787 exposes all depeendency type values8788Pajamas::Concerns::CheckboxRadioOptions8789 #formatted_input_options8790 calls `#format_options` with correct arguments8791#<Class:0x00007f1eaa4c6b78>8792 # order random8793 has the expected fields8794Pending: (Failures listed here are expected and do not affect your suite's status)8795 1) Gitlab::GitAccess#check_push_access! has the correct permissions for admin_without_admin_modes8796 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098797 # ./spec/lib/gitlab/git_access_spec.rb:8528798 2) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the exact protected branch has the correct permissions for admin_without_admin_modes8799 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098800 # ./spec/lib/gitlab/git_access_spec.rb:8528801 3) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes8802 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098803 # ./spec/lib/gitlab/git_access_spec.rb:8528804 4) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes8805 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098806 # ./spec/lib/gitlab/git_access_spec.rb:8528807 5) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes8808 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098809 # ./spec/lib/gitlab/git_access_spec.rb:8528810 6) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the exact protected branch has the correct permissions for admin_without_admin_modes8811 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098812 # ./spec/lib/gitlab/git_access_spec.rb:8528813 7) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feature protected branch has the correct permissions for admin_without_admin_modes8814 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098815 # ./spec/lib/gitlab/git_access_spec.rb:8528816 8) Gitlab::GitAccess#check_push_access! has the correct permissions for admin_without_admin_modes8817 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098818 # ./spec/lib/gitlab/git_access_spec.rb:8528819 9) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the wildcard protected branch has the correct permissions for admin_without_admin_modes8820 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098821 # ./spec/lib/gitlab/git_access_spec.rb:8528822 10) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes8823 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098824 # ./spec/lib/gitlab/git_access_spec.rb:8528825 11) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes8826 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098827 # ./spec/lib/gitlab/git_access_spec.rb:8528828 12) Gitlab::GitAccess#check_push_access! developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes8829 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098830 # ./spec/lib/gitlab/git_access_spec.rb:8528831 13) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the wildcard protected branch has the correct permissions for admin_without_admin_modes8832 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098833 # ./spec/lib/gitlab/git_access_spec.rb:8528834 14) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feat* protected branch has the correct permissions for admin_without_admin_modes8835 # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/2965098836 # ./spec/lib/gitlab/git_access_spec.rb:8528837 15) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with local files deletes any FileUploader uploads which are not mounted8838 # No reason given8839 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:238840 16) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with local files deletes local files8841 # No reason given8842 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:278843 17) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with remote files deletes any FileUploader uploads which are not mounted8844 # No reason given8845 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:378846 18) Appearance with uploads behaves like model with uploads .destroy with not mounted uploads with remote files deletes remote files8847 # No reason given8848 # ./spec/support/shared_examples/models/with_uploads_shared_examples.rb:418849 19) Gitlab::Database::Partitioning.sync_partitions with multiple databases creates partitions in each database8850 # Skipping because ci is shared or doesn't not exist8851 # ./spec/lib/gitlab/database/partitioning_spec.rb:1048852 20) Gitlab::Database::Partitioning.sync_partitions when only a specific database is requested manages partitions for models for the given database8853 # Skipping because ci is shared or doesn't not exist8854 # ./spec/lib/gitlab/database/partitioning_spec.rb:1658855 21) gitlab:db:decomposition:connection_status when separate ci database is not configured when PostgreSQL max_connections is too low suggests to increase it8856 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup8857 # ./spec/tasks/gitlab/db/decomposition/connection_status_spec.rb:278858 22) gitlab:db:decomposition:connection_status when separate ci database is not configured when PostgreSQL max_connections is high enough only shows current status8859 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup8860 # ./spec/tasks/gitlab/db/decomposition/connection_status_spec.rb:418861Finished in 22 minutes 49 seconds (files took 1 minute 0.76 seconds to load)88623832 examples, 0 failures, 22 pending8863Randomized with seed 239888864[TEST PROF INFO] Time spent in factories: 12:48.589 (55.08% of total time)8865RSpec exited with 0.8866No examples to retry, congrats!8868Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8869Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8871Uploading artifacts...8872coverage/: found 5 matching artifact files and directories 8873crystalball/: found 2 matching artifact files and directories 8874deprecations/: found 3 matching artifact files and directories 8875knapsack/: found 3 matching artifact files and directories 8876WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8877rspec/: found 12 matching artifact files and directories 8878WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8879log/*.log: found 19 matching artifact files and directories 8880WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138976/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8881WARNING: Retrying... context=artifacts-uploader error=request redirected8882Uploading artifacts as "archive" to coordinator... 201 Created id=4031138976 responseStatus=201 Created token=64_G5bmj8883Uploading artifacts...8884rspec/junit_rspec.xml: found 1 matching artifact files and directories 8885WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4031138976/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8886WARNING: Retrying... context=artifacts-uploader error=request redirected8887Uploading artifacts as "junit" to coordinator... 201 Created id=4031138976 responseStatus=201 Created token=64_G5bmj8889Job succeeded