rspec unit pg14-as-if-foss single-db-ci-connection 1/28
Passed Started
by
@vshushlin

Vladimir Shushlin
1Running with gitlab-runner 16.3.0~beta.108.g2b6048b4 (2b6048b4)2 on blue-2.shared-gitlab-org.runners-manager.gitlab.com/default NL4gfoBe, system ID: s_74c3e13161643 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true, FF_RESOLVE_FULL_TLS_CHAIN:false6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...10Using docker image sha256:6c7370fd46a94d5beaed2a0304c7518e74a5759d4da3322ea9f7052507f51d80 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:1b39aac95406782d786043ec3f1772c0a3a5ce1b9ce28cf001cac9a290f366c8 ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:f4c047edb00d9bbfcc2b002a01548fab14592940f5b3e6b3f227f690e3fa272d for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:9a1b6b68dc464f0baae914703d5b059e7773bf23c9579c44e2a1b1154a83656f ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:9b4dc93acb797b99419bb31d8a452680508f1bf10a8604d721c0474072417a2b for redis:6.2-alpine with digest redis@sha256:452b7655bda0e270a6376b71d22fcb30662e745dcb4728f99fa87f01287b465d ...20Waiting for services to be up and running (timeout 30 seconds)...21Authenticating with credentials from job payload (GitLab Registry)22Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256:d68252162deca904d1a0066983188b98dfe3f6fe8181458b0a55905e79ed85a1 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-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.20-rust-1.65-node-18.17-postgresql-14@sha256:2113f34affc7e2ee40bac87419dcd7c65a94d4abfa9edb86192e1aa6a1e46590 ...25Running on runner-nl4gfobe-project-278964-concurrent-0 via runner-nl4gfobe-shared-gitlab-org-1697786104-b0535550...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 148580, done. 31remote: Counting objects: 100% (148580/148580), done. 32remote: Compressing objects: 100% (104624/104624), done. 33remote: Total 148580 (delta 64637), reused 94927 (delta 38178), pack-reused 0 34Receiving objects: 100% (148580/148580), 135.67 MiB | 30.20 MiB/s, done.35Resolving deltas: 100% (64637/64637), done.37 * [new ref] refs/pipelines/1043537122 -> refs/pipelines/104353712238Checking out 537c07c6 as detached HEAD (ref is refs/merge-requests/118829/merge)...39Skipping Git submodules setup40$ git remote set-url origin "${CI_REPOSITORY_URL}"42Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...43Downloading cache from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 44Successfully extracted cache46Downloading artifacts for compile-test-assets as-if-foss (5336650415)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650415 responseStatus=200 OK token=64_GPD5X48Downloading artifacts for detect-tests (5336650454)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650454 responseStatus=200 OK token=64_GPD5X50Downloading artifacts for retrieve-tests-metadata (5336650473)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650473 responseStatus=200 OK token=64_GPD5X52Downloading artifacts for setup-test-env (5336650424)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650424 responseStatus=200 OK token=64_GPD5X55Using docker image sha256:d68252162deca904d1a0066983188b98dfe3f6fe8181458b0a55905e79ed85a1 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-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.20-rust-1.65-node-18.17-postgresql-14@sha256:2113f34affc7e2ee40bac87419dcd7c65a94d4abfa9edb86192e1aa6a1e46590 ...56$ echo $FOSS_ONLY57158$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb59$ export GOPATH=$CI_PROJECT_DIR/.go60$ mkdir -p $GOPATH61$ source scripts/utils.sh62$ source scripts/prepare_build.sh94Using two connections, single database config (config/database.yml.postgresql)95Geo DB won't be set up.96Embedding DB won't be set up.117$ source ./scripts/rspec_helpers.sh118$ run_timed_command "gem install knapsack --no-document"119$ gem install knapsack --no-document120Successfully installed knapsack-4.0.01211 gem installed122==> 'gem install knapsack --no-document' succeeded in 0 seconds.123$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"128$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"129$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"130$ tooling/bin/create_job_metrics_file || true131[job-metrics] Creating the job metrics file for the CI/CD job.132$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"133RETRY_FAILED_TESTS_IN_NEW_PROCESS: true134KNAPSACK_GENERATE_REPORT: 135FLAKY_RSPEC_GENERATE_REPORT: 136KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,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}{,/**/}*_spec.rb137KNAPSACK_LOG_LEVEL: debug138KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14-as-if-foss_single-db-ci-connection_1_28_report.json139FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json140FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14-as-if-foss_single-db-ci-connection_1_28_report.json141NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14-as-if-foss_single-db-ci-connection_1_28_report.json142RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-5336651464.txt143CRYSTALBALL: 144RSPEC_TESTS_MAPPING_ENABLED: 145RSPEC_TESTS_FILTER_FILE: 146Shell set options (set -o) enabled:147braceexpand on148hashall on149interactive-comments on150pipefail on151Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-5336651464.json --format RspecJunitFormatter --out rspec/rspec-5336651464.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request -- spec/models/application_setting_spec.rb spec/services/ci/delete_objects_service_spec.rb spec/graphql/resolvers/package_pipelines_resolver_spec.rb spec/lib/gitlab/spamcheck/client_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexeme/pattern_spec.rb spec/finders/ci/freeze_periods_finder_spec.rb spec/workers/container_expiration_policy_worker_spec.rb spec/finders/user_group_notification_settings_finder_spec.rb spec/lib/gitlab/metrics/sidekiq_slis_spec.rb spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb spec/graphql/resolvers/design_management/design_resolver_spec.rb spec/graphql/resolvers/board_resolver_spec.rb spec/graphql/resolvers/ci/config_resolver_spec.rb spec/models/blob_viewer/readme_spec.rb spec/lib/gitlab/memory/watchdog_spec.rb spec/lib/gitlab/github_gists_import/importer/gist_importer_spec.rb spec/tasks/gitlab/uploads/check_rake_spec.rb spec/services/design_management/copy_design_collection/queue_service_spec.rb spec/finders/projects/ml/model_finder_spec.rb spec/components/diffs/overflow_warning_component_spec.rb spec/policies/system_hook_policy_spec.rb spec/graphql/mutations/issues/move_spec.rb spec/workers/projects/inactive_projects_deletion_cron_worker_spec.rb spec/lib/api/helpers/authentication_spec.rb spec/lib/object_storage/pending_direct_upload_spec.rb spec/services/projects/create_from_template_service_spec.rb spec/services/ci/prepare_build_service_spec.rb spec/lib/quality/seeders/issues_spec.rb spec/serializers/ci/dag_pipeline_entity_spec.rb spec/lib/gitlab/ci/config/entry/product/parallel_spec.rb spec/graphql/types/ci/job_type_spec.rb spec/serializers/trigger_variable_entity_spec.rb spec/graphql/mutations/alert_management/alerts/todo/create_spec.rb spec/models/work_items/widget_definition_spec.rb spec/lib/gitlab/import_export/repo_saver_spec.rb spec/models/tree_spec.rb spec/services/alert_management/alerts/todo/create_service_spec.rb spec/tasks/gitlab/db/decomposition/connection_status_rake_spec.rb spec/lib/sidebars/user_settings/menus/access_tokens_menu_spec.rb spec/models/integrations/pushover_spec.rb spec/graphql/resolvers/tree_resolver_spec.rb spec/initializers/forbid_sidekiq_in_transactions_spec.rb spec/workers/gitlab/github_import/stage/import_issue_events_worker_spec.rb spec/lib/gitlab/request_context_spec.rb spec/workers/concerns/gitlab/github_import/stage_methods_spec.rb spec/initializers/carrierwave_performance_patch_spec.rb spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb spec/components/pajamas/card_component_spec.rb spec/lib/gitlab/pipeline_scope_counts_spec.rb spec/workers/authorized_project_update/user_refresh_with_low_urgency_worker_spec.rb spec/services/users/activate_service_spec.rb spec/rubocop/cop/rspec/be_success_matcher_spec.rb spec/workers/gitlab/jira_import/stage/finish_import_worker_spec.rb spec/graphql/mutations/incident_management/timeline_event_tag/create_spec.rb spec/workers/x509_certificate_revoke_worker_spec.rb spec/services/google_cloud/service_accounts_service_spec.rb spec/lib/gitlab/bitbucket_server_import/importers/pull_request_importer_spec.rb spec/scripts/setup/find_jh_branch_spec.rb spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb spec/validators/cron_freeze_period_timezone_validator_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/redis_metric_spec.rb spec/models/work_items/widgets/description_spec.rb spec/services/work_items/widgets/labels_service/update_service_spec.rb spec/lib/gitlab/import/merge_request_creator_spec.rb spec/serializers/test_suite_comparer_entity_spec.rb spec/lib/gitlab/config/entry/validator_spec.rb spec/services/google_cloud/get_cloudsql_instances_service_spec.rb spec/lib/gitlab/middleware/speedscope_spec.rb spec/lib/gitlab/import_export/design_repo_saver_spec.rb spec/workers/personal_access_tokens/expired_notification_worker_spec.rb spec/helpers/recaptcha_helper_spec.rb spec/graphql/mutations/boards/lists/create_spec.rb spec/services/auth/dependency_proxy_authentication_service_spec.rb spec/lib/gitlab/background_migration/batching_strategies/backfill_project_statistics_with_container_registry_size_batching_strategy_spec.rb spec/workers/gitlab/bitbucket_server_import/import_lfs_object_worker_spec.rb spec/graphql/resolvers/deployment_resolver_spec.rb spec/lib/gitlab/ci/variables/downstream/expandable_variable_generator_spec.rb spec/lib/gitlab/diff/stats_cache_spec.rb spec/views/profiles/keys/_form.html.haml_spec.rb spec/serializers/merge_request_current_user_entity_spec.rb spec/policies/group_deploy_keys_group_policy_spec.rb spec/workers/ci/build_finished_worker_spec.rb spec/lib/gitlab/ci/status/build/canceled_spec.rb spec/models/concerns/taskable_spec.rb spec/graphql/types/customer_relations/contact_state_counts_type_spec.rb spec/models/ml/candidate_metric_spec.rb spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb spec/services/cohorts_service_spec.rb spec/views/layouts/snippets.html.haml_spec.rb spec/lib/sidebars/search/panel_spec.rb spec/graphql/types/ci/detailed_status_type_spec.rb spec/lib/gitlab/ci/reports/coverage_report_spec.rb spec/serializers/personal_access_token_serializer_spec.rb spec/services/projects/batch_open_issues_count_service_spec.rb spec/lib/gitlab/cache_spec.rb spec/lib/gitlab/git_audit_event_spec.rb spec/helpers/stat_anchors_helper_spec.rb spec/services/packages/debian/parse_debian822_service_spec.rb spec/lib/gitlab/sql/cte_spec.rb spec/serializers/merge_requests/pipeline_entity_spec.rb spec/routing/openid_connect_spec.rb spec/tooling/lib/tooling/helpers/file_handler_spec.rb spec/lib/gitlab/github_import/sequential_importer_spec.rb spec/models/alerting/project_alerting_setting_spec.rb spec/graphql/types/namespace/package_settings_type_spec.rb spec/services/merge_requests/mergeability/check_ci_status_service_spec.rb spec/services/batched_git_ref_updates/cleanup_scheduler_service_spec.rb spec/graphql/types/work_items/linked_item_type_spec.rb spec/graphql/types/diff_refs_type_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/service_ping_features_metric_spec.rb spec/graphql/types/duration_type_spec.rb spec/views/admin/application_settings/_repository_storage.html.haml_spec.rb spec/workers/bulk_imports/relation_batch_export_worker_spec.rb spec/services/achievements/destroy_user_achievement_service_spec.rb spec/serializers/jira_connect/subscription_entity_spec.rb spec/lib/gitlab/changelog/generator_spec.rb spec/lib/gitlab/database/query_analyzers/ci/partitioning_routing_analyzer_spec.rb spec/workers/gitlab/github_import/stage/import_attachments_worker_spec.rb spec/services/google_cloud/enable_cloud_run_service_spec.rb spec/services/personal_access_tokens/revoke_token_family_service_spec.rb spec/rubocop/cop/migration/complex_indexes_require_name_spec.rb spec/lib/bitbucket/paginator_spec.rb spec/graphql/types/group_member_type_spec.rb spec/lib/service_ping/permit_data_categories_spec.rb spec/rubocop/cop/migration/background_migration_missing_active_concern_spec.rb spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb spec/models/concerns/prometheus_adapter_spec.rb spec/graphql/types/security/codequality_reports_comparer/report_type_spec.rb spec/services/members/creator_service_spec.rb spec/lib/gitlab/markdown_cache/redis/store_spec.rb spec/finders/packages/pipelines_finder_spec.rb spec/graphql/types/ci/pipeline_schedule_variable_type_spec.rb spec/rubocop/cop/gitlab/keys_first_and_values_first_spec.rb spec/graphql/types/invitation_interface_spec.rb spec/workers/gitlab/github_import/attachments/import_release_worker_spec.rb spec/rubocop/cop/gitlab/bulk_insert_spec.rb spec/graphql/types/description_version_type_spec.rb spec/rubocop/cop/migration/background_migrations_spec.rb spec/views/devise/shared/_error_messages.html.haml_spec.rb spec/graphql/types/customer_relations/organization_type_spec.rb spec/serializers/diff_line_serializer_spec.rb spec/workers/todos_destroyer/destroyed_designs_worker_spec.rb spec/lib/gitlab/database/migrations/observers/total_database_size_change_spec.rb spec/lib/gitlab/import/errors_spec.rb spec/lib/atlassian/jira_connect/serializers/base_entity_spec.rb spec/lib/api/entities/public_group_details_spec.rb spec/rubocop/cop/rspec/env_assignment_spec.rb spec/graphql/types/tree/tree_type_spec.rb spec/lib/gitlab/asciidoc/html5_converter_spec.rb spec/helpers/feed_token_helper_spec.rb spec/initializers/microsoft_graph_mailer_spec.rb spec/policies/concerns/archived_abilities_spec.rb spec/scripts/generate_failed_package_and_test_mr_message_spec.rb spec/graphql/types/issuable_searchable_field_enum_spec.rb spec/lib/banzai/filter/output_safety_spec.rb spec/lib/gitlab/kubernetes/pod_cmd_spec.rb spec/workers/todos_destroyer/destroyed_issuable_worker_spec.rb spec/components/pajamas/concerns/checkbox_radio_options_spec.rb spec/workers/ci/schedule_delete_objects_cron_worker_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/hostname_metric_spec.rb spec/graphql/types/notes/diff_position_type_spec.rb spec/workers/concerns/cluster_agent_queue_spec.rb spec/graphql/types/packages/package_status_enum_spec.rb spec/lib/api/entities/nuget/package_metadata_catalog_entry_spec.rb spec/lib/gitlab/kubernetes/kubeconfig/entry/user_spec.rb spec/lib/gitlab/ci/variables/downstream/raw_variable_generator_spec.rb spec/config/metrics/every_metric_definition_spec.rbINFO: analyzing "public.p_ci_runner_machine_builds" inheritance tree152INFO: analyzing "gitlab_partitions_dynamic.ci_runner_machine_builds_100"153INFO: "ci_runner_machine_builds_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows154INFO: analyzing "public.p_ci_job_annotations" inheritance tree155INFO: analyzing "gitlab_partitions_dynamic.ci_job_annotations_100"156INFO: "ci_job_annotations_100": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows157INFO: analyzing "public.p_ci_builds_metadata" inheritance tree158INFO: analyzing "public.ci_builds_metadata"159INFO: "ci_builds_metadata": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows160Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}161Test environment set up in 0.413374587 seconds162ApplicationSetting163 example at ./spec/models/application_setting_spec.rb:12164 example at ./spec/models/application_setting_spec.rb:13165 is expected to eq nil166 is expected to be valid167 is expected to be present168 is expected to have db column named auto_devops_enabled169 behaves like sanitizable170 includes Sanitizable171 #default_branch_name172 when input includes javascript tags173 gets sanitized174 #default_branch_name validation175 when input contains pre-escaped html entities176 is not valid177 when it contains a path component178 is not valid179 default values180 is expected to eq 1181 is expected to eq {}182 is expected to eq {}183 is expected to eq {}184 is expected to eq 25600185 is expected to eq 210186 validations187 is expected to allow :home_page_url to be ‹nil›188 is expected to allow :home_page_url to be ‹"http://example.com"›189 is expected to allow :home_page_url to be ‹"https://example.com"›190 is expected not to allow :home_page_url to be ‹"ftp://example.com"›191 is expected to allow :after_sign_out_path to be ‹nil›192 is expected to allow :after_sign_out_path to be ‹"http://example.com"›193 is expected to allow :after_sign_out_path to be ‹"https://example.com"›194 is expected not to allow :after_sign_out_path to be ‹"ftp://example.com"›195 is expected to allow :commit_email_hostname to be ‹"dev.gitlab.com"›196 is expected not to allow :commit_email_hostname to be ‹"@dev.gitlab"›197************************************************************************198Warning from shoulda-matchers:199You are using `validate_inclusion_of` to assert that a boolean column200allows boolean values and disallows non-boolean ones. Be aware that it201is not possible to fully test this, as boolean columns will202automatically convert non-boolean values to boolean ones. Hence, you203should consider removing this test.204************************************************************************205 is expected to validate that :container_expiration_policies_enable_historic_entries is either ‹true› or ‹false›206 is expected to allow :lets_encrypt_notification_email to be ‹"myemail@gitlab.com"›207 is expected to allow :lets_encrypt_notification_email to be ‹nil›208 is expected not to allow :lets_encrypt_notification_email to be ‹"notanemail"›209 is expected not to allow :lets_encrypt_notification_email to be ‹"myemail@example.com"›210 is expected to allow :lets_encrypt_notification_email to be ‹"myemail@test.example.com"›211 is expected to allow :outbound_local_requests_whitelist to be ‹["192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192...›212 is expected not to allow :outbound_local_requests_whitelist to be ‹["192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192.168.1.1", "192...›213 is expected to allow :outbound_local_requests_whitelist to be ‹["111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"]›214 is expected not to allow :outbound_local_requests_whitelist to be ‹["1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"]›215 is expected not to allow :outbound_local_requests_whitelist to be ‹["ğitlab.com"]›216 is expected to allow :outbound_local_requests_whitelist to be ‹["xn--itlab-j1a.com"]›217 is expected not to allow :outbound_local_requests_whitelist to be ‹["<h1></h1>"]›218 is expected to allow :outbound_local_requests_whitelist to be ‹["gitlab.com"]›219 is expected not to allow :outbound_local_requests_whitelist to be ‹nil›220 is expected to allow :outbound_local_requests_whitelist to be ‹[]›221 is expected to allow :static_objects_external_storage_url to be ‹nil›222 is expected to allow :static_objects_external_storage_url to be ‹"http://example.com"›223 is expected to allow :static_objects_external_storage_url to be ‹"https://example.com"›224 is expected to allow :protected_paths to be ‹["/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/examp...›225 is expected not to allow :protected_paths to be ‹["/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/examp...›226 is expected not to allow :protected_paths to be ‹nil›227 is expected to allow :protected_paths to be ‹[]›228 is expected to allow :protected_paths_for_get_request to be ‹["/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/examp...›229 is expected not to allow :protected_paths_for_get_request to be ‹["/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/example", "/examp...›230 is expected not to allow :protected_paths_for_get_request to be ‹nil›231 is expected to allow :protected_paths_for_get_request to be ‹[]›232 is expected to allow :push_event_hooks_limit to be ‹3›233 is expected not to allow :push_event_hooks_limit to be ‹"three"›234 is expected not to allow :push_event_hooks_limit to be ‹nil›235 is expected to allow :push_event_activities_limit to be ‹3›236 is expected not to allow :push_event_activities_limit to be ‹"three"›237 is expected not to allow :push_event_activities_limit to be ‹nil›238 is expected to validate that :container_registry_delete_tags_service_timeout looks like an integer greater than or equal to 0239 is expected to validate that :container_registry_cleanup_tags_service_max_list_size looks like an integer greater than or equal to 0240 is expected to validate that :container_registry_data_repair_detail_worker_max_concurrency looks like an integer greater than or equal to 0241 is expected to validate that :container_registry_expiration_policies_worker_capacity looks like an integer greater than or equal to 0242************************************************************************243Warning from shoulda-matchers:244You are using `validate_inclusion_of` to assert that a boolean column245allows boolean values and disallows non-boolean ones. Be aware that it246is not possible to fully test this, as boolean columns will247automatically convert non-boolean values to boolean ones. Hence, you248should consider removing this test.249************************************************************************250 is expected to validate that :container_registry_expiration_policies_caching is either ‹true› or ‹false›251 is expected to validate that :container_registry_import_max_tags_count looks like an integer greater than or equal to 0252 is expected to validate that :container_registry_import_max_retries looks like an integer greater than or equal to 0253 is expected to validate that :container_registry_import_start_max_retries looks like an integer greater than or equal to 0254 is expected to validate that :container_registry_import_max_step_duration looks like an integer greater than or equal to 0255 is expected to validate that :container_registry_pre_import_timeout looks like an integer greater than or equal to 0256 is expected to validate that :container_registry_import_timeout looks like an integer greater than or equal to 0257 is expected to validate that :container_registry_pre_import_tags_rate looks like a number greater than or equal to 0258 is expected not to allow :container_registry_data_repair_detail_worker_max_concurrency to be ‹nil›259 is expected not to allow :container_registry_import_max_tags_count to be ‹nil›260 is expected not to allow :container_registry_import_max_retries to be ‹nil›261 is expected not to allow :container_registry_import_start_max_retries to be ‹nil›262 is expected not to allow :container_registry_import_max_step_duration to be ‹nil›263 is expected not to allow :container_registry_pre_import_timeout to be ‹nil›264 is expected not to allow :container_registry_import_timeout to be ‹nil›265 is expected not to allow :container_registry_pre_import_tags_rate to be ‹nil›266 is expected to allow :container_registry_pre_import_tags_rate to be ‹1.5›267 is expected to validate that :container_registry_import_target_plan cannot be empty/falsy268 is expected to validate that :container_registry_import_created_before cannot be empty/falsy269 is expected to validate that :decompress_archive_file_timeout looks like an integer greater than or equal to 0270 is expected not to allow :decompress_archive_file_timeout to be ‹nil›271 is expected to validate that :dependency_proxy_ttl_group_policy_worker_capacity looks like an integer greater than or equal to 0272 is expected not to allow :dependency_proxy_ttl_group_policy_worker_capacity to be ‹nil›273 is expected to validate that :packages_cleanup_package_file_worker_capacity looks like an integer greater than or equal to 0274 is expected not to allow :packages_cleanup_package_file_worker_capacity to be ‹nil›275 is expected to validate that :package_registry_cleanup_policies_worker_capacity looks like an integer greater than or equal to 0276 is expected not to allow :package_registry_cleanup_policies_worker_capacity to be ‹nil›277 is expected to validate that :snippet_size_limit looks like an integer greater than 0278 is expected to validate that :wiki_page_max_content_bytes looks like an integer greater than or equal to 1024279************************************************************************280Warning from shoulda-matchers:281You are using `validate_inclusion_of` to assert that a boolean column282allows boolean values and disallows non-boolean ones. Be aware that it283is not possible to fully test this, as boolean columns will284automatically convert non-boolean values to boolean ones. Hence, you285should consider removing this test.286************************************************************************287 is expected to validate that :wiki_asciidoc_allow_uri_includes is either ‹true› or ‹false›288 is expected to validate that :max_artifacts_size cannot be empty/falsy289 is expected to validate that :max_artifacts_size looks like an integer greater than 0290 is expected to validate that :max_yaml_size_bytes cannot be empty/falsy291 is expected to validate that :max_yaml_size_bytes looks like an integer greater than 0292 is expected to validate that :max_yaml_depth cannot be empty/falsy293 is expected to validate that :max_yaml_depth looks like an integer greater than 0294 is expected to validate that :max_pages_size cannot be empty/falsy295 is expected to validate that :max_pages_custom_domains_per_project cannot be empty/falsy296 is expected to validate that :max_terraform_state_size_bytes cannot be empty/falsy297 is expected to validate that :max_terraform_state_size_bytes looks like an integer greater than or equal to 0298************************************************************************299Warning from shoulda-matchers:300You are using `validate_inclusion_of` to assert that a boolean column301allows boolean values and disallows non-boolean ones. Be aware that it302is not possible to fully test this, as boolean columns will303automatically convert non-boolean values to boolean ones. Hence, you304should consider removing this test.305************************************************************************306 is expected to validate that :user_defaults_to_private_profile is either ‹true› or ‹false›307************************************************************************308Warning from shoulda-matchers:309You are using `validate_inclusion_of` to assert that a boolean column310allows boolean values and disallows non-boolean ones. Be aware that it311is not possible to fully test this, as boolean columns will312automatically convert non-boolean values to boolean ones. Hence, you313should consider removing this test.314************************************************************************315 is expected to validate that :deny_all_requests_except_allowed is either ‹true› or ‹false›316 ensures max_pages_size is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum)317 ensures max_pages_custom_domains_per_project is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum)318 is expected to validate that :jobs_per_stage_page_size cannot be empty/falsy319 is expected to validate that :jobs_per_stage_page_size looks like an integer greater than or equal to 0320 is expected not to allow :minimum_password_length to be ‹7›321 is expected not to allow :minimum_password_length to be ‹129›322 is expected not to allow :minimum_password_length to be ‹nil›323 is expected not to allow :minimum_password_length to be ‹"abc"›324 is expected to allow :minimum_password_length to be ‹10›325 is expected to allow :issues_create_limit to be ‹300›326 is expected not to allow :issues_create_limit to be ‹"three"›327 is expected not to allow :issues_create_limit to be ‹nil›328 is expected not to allow :issues_create_limit to be ‹10.5›329 is expected not to allow :issues_create_limit to be ‹-1›330 is expected to allow :raw_blob_request_limit to be ‹0›331 is expected not to allow :raw_blob_request_limit to be ‹"abc"›332 is expected not to allow :raw_blob_request_limit to be ‹nil›333 is expected not to allow :raw_blob_request_limit to be ‹10.5›334 is expected not to allow :raw_blob_request_limit to be ‹-1›335 is expected to allow :pipeline_limit_per_project_user_sha to be ‹0›336 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹"abc"›337 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹nil›338 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹10.5›339 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹-1›340 is expected not to allow :hashed_storage_enabled to be ‹false›341 is expected to allow :repository_storages_weighted to be ‹{"default" => 0}›342 is expected to allow :repository_storages_weighted to be ‹{"default" => 50}›343 is expected to allow :repository_storages_weighted to be ‹{"default" => 100}›344 is expected to allow :repository_storages_weighted to be ‹{"default" => "90"}›345 is expected to allow :repository_storages_weighted to be ‹{"default" => nil}›346 is expected not to allow :repository_storages_weighted to be ‹{"default" => -1}›, producing a custom validation error on failure347 is expected not to allow :repository_storages_weighted to be ‹{"default" => 101}›, producing a custom validation error on failure348 is expected not to allow :repository_storages_weighted to be ‹{"default" => 100, shouldntexist: 50}›, producing a custom validation error on failure349 is expected to allow :notes_create_limit to be ‹400›350 is expected not to allow :notes_create_limit to be ‹"two"›351 is expected not to allow :notes_create_limit to be ‹nil›352 is expected not to allow :notes_create_limit to be ‹5.5›353 is expected not to allow :notes_create_limit to be ‹-2›354 is expected to allow :search_rate_limit to be ‹400›355 is expected not to allow :search_rate_limit to be ‹"two"›356 is expected not to allow :search_rate_limit to be ‹nil›357 is expected not to allow :search_rate_limit to be ‹5.5›358 is expected not to allow :search_rate_limit to be ‹-2›359 is expected to allow :search_rate_limit_unauthenticated to be ‹400›360 is expected not to allow :search_rate_limit_unauthenticated to be ‹"two"›361 is expected not to allow :search_rate_limit_unauthenticated to be ‹nil›362 is expected not to allow :search_rate_limit_unauthenticated to be ‹5.5›363 is expected not to allow :search_rate_limit_unauthenticated to be ‹-2›364 is expected to allow :users_get_by_id_limit to be ‹400›365 is expected not to allow :users_get_by_id_limit to be ‹"two"›366 is expected not to allow :users_get_by_id_limit to be ‹nil›367 is expected not to allow :users_get_by_id_limit to be ‹5.5›368 is expected not to allow :users_get_by_id_limit to be ‹-2›369 is expected to allow :projects_api_rate_limit_unauthenticated to be ‹400›370 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹"two"›371 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹nil›372 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹5.5›373 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹-2›374 is expected to allow :gitlab_shell_operation_limit to be ‹400›375 is expected not to allow :gitlab_shell_operation_limit to be ‹"two"›376 is expected not to allow :gitlab_shell_operation_limit to be ‹nil›377 is expected not to allow :gitlab_shell_operation_limit to be ‹5.5›378 is expected not to allow :gitlab_shell_operation_limit to be ‹-2›379 is expected to allow :notes_create_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›380 is expected not to allow :notes_create_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›381 is expected not to allow :notes_create_limit_allowlist to be ‹nil›382 is expected to allow :notes_create_limit_allowlist to be ‹[]›383 is expected to allow :users_get_by_id_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›384 is expected not to allow :users_get_by_id_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›385 is expected not to allow :users_get_by_id_limit_allowlist to be ‹nil›386 is expected to allow :users_get_by_id_limit_allowlist to be ‹[]›387 is expected to allow :search_rate_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›388 is expected not to allow :search_rate_limit_allowlist to be ‹["username0", "username1", "username2", "username3", "username4", "username5", "username6", "username7", "username8", "username9", "username10", "username11", "username12", "username13", "username14", "username15", "username16", "username17", "username18", "username19", "username20", "username21", "username22", "username23", "username24", "username25", "username26", "username27", "username28", "username29", "username30", "username31", "username32", "username33", "username34", "username35", "user...›389 is expected not to allow :search_rate_limit_allowlist to be ‹nil›390 is expected to allow :search_rate_limit_allowlist to be ‹[]›391 is expected to allow :whats_new_variant to be ‹"all_tiers"›392 is expected to allow :whats_new_variant to be ‹"current_tier"›393 is expected to allow :whats_new_variant to be ‹"disabled"›394 is expected not to allow :whats_new_variant to be ‹nil›395 is expected to allow :public_runner_releases_url to be ‹"http://example.com/"›396 is expected not to allow :public_runner_releases_url to be ‹nil›397************************************************************************398Warning from shoulda-matchers:399You are using `validate_inclusion_of` to assert that a boolean column400allows boolean values and disallows non-boolean ones. Be aware that it401is not possible to fully test this, as boolean columns will402automatically convert non-boolean values to boolean ones. Hence, you403should consider removing this test.404************************************************************************405 is expected to validate that :update_runner_versions_enabled is either ‹true› or ‹false›406 is expected not to allow :valid_runner_registrars to be ‹[""]›407 is expected not to allow :valid_runner_registrars to be ‹["OBVIOUSLY_WRONG"]›408 is expected not to allow :valid_runner_registrars to be ‹["project", "project"]›409 is expected not to allow :valid_runner_registrars to be ‹[nil]›410 is expected not to allow :valid_runner_registrars to be ‹nil›411 is expected to allow :valid_runner_registrars to be ‹[]›412 is expected to allow :valid_runner_registrars to be ‹["project", "group"]›413 is expected to allow :jira_connect_proxy_url to be ‹"http://example.com"›414 is expected to allow :jira_connect_proxy_url to be ‹"https://example.com"›415************************************************************************416Warning from shoulda-matchers:417You are using `validate_inclusion_of` to assert that a boolean column418allows boolean values and disallows non-boolean ones. Be aware that it419is not possible to fully test this, as boolean columns will420automatically convert non-boolean values to boolean ones. Hence, you421should consider removing this test.422************************************************************************423 is expected to validate that :bulk_import_enabled is either ‹true› or ‹false›424************************************************************************425Warning from shoulda-matchers:426You are using `validate_inclusion_of` to assert that a boolean column427allows boolean values and disallows non-boolean ones. Be aware that it428is not possible to fully test this, as boolean columns will429automatically convert non-boolean values to boolean ones. Hence, you430should consider removing this test.431************************************************************************432 is expected to validate that :allow_runner_registration_token is either ‹true› or ‹false›433************************************************************************434Warning from shoulda-matchers:435You are using `validate_inclusion_of` to assert that a boolean column436allows boolean values and disallows non-boolean ones. Be aware that it437is not possible to fully test this, as boolean columns will438automatically convert non-boolean values to boolean ones. Hence, you439should consider removing this test.440************************************************************************441 is expected to validate that :gitlab_dedicated_instance is either ‹true› or ‹false›442 is expected not to allow :prometheus_alert_db_indicators_settings to be ‹{apdex_slo: "10"}›443 is expected to allow :prometheus_alert_db_indicators_settings to be ‹nil›444 is expected to allow :prometheus_alert_db_indicators_settings to be ‹{prometheus_api_url: "Prometheus URL", apdex_sli_query: {:main=>"Apdex SLI query main", :ci=>"Apdex SLI query ci"}, apdex_slo: {:main=>0.99, :ci=>0.98}, wal_rate_sli_query: {:main=>"WAL rate query main", :ci=>"WAL rate query ci"}, wal_rate_slo: {:main=>7000, :ci=>7000}}›445************************************************************************446Warning from shoulda-matchers:447You are using `validate_inclusion_of` to assert that a boolean column448allows boolean values and disallows non-boolean ones. Be aware that it449is not possible to fully test this, as boolean columns will450automatically convert non-boolean values to boolean ones. Hence, you451should consider removing this test.452************************************************************************453 is expected to validate that :silent_mode_enabled is either ‹true› or ‹false›454 is expected to allow :ci_max_includes to be ‹0›455 is expected to allow :ci_max_includes to be ‹200›456 is expected not to allow :ci_max_includes to be ‹"abc"›457 is expected not to allow :ci_max_includes to be ‹nil›458 is expected not to allow :ci_max_includes to be ‹10.5›459 is expected not to allow :ci_max_includes to be ‹-1›460 is expected to allow :ci_max_total_yaml_size_bytes to be ‹0›461 is expected to allow :ci_max_total_yaml_size_bytes to be ‹200›462 is expected not to allow :ci_max_total_yaml_size_bytes to be ‹"abc"›463 is expected not to allow :ci_max_total_yaml_size_bytes to be ‹nil›464 is expected not to allow :ci_max_total_yaml_size_bytes to be ‹10.5›465 is expected not to allow :ci_max_total_yaml_size_bytes to be ‹-1›466************************************************************************467Warning from shoulda-matchers:468You are using `validate_inclusion_of` to assert that a boolean column469allows boolean values and disallows non-boolean ones. Be aware that it470is not possible to fully test this, as boolean columns will471automatically convert non-boolean values to boolean ones. Hence, you472should consider removing this test.473************************************************************************474 is expected to validate that :remember_me_enabled is either ‹true› or ‹false›475 is expected to validate that :namespace_aggregation_schedule_lease_duration_in_seconds looks like an integer greater than 0476************************************************************************477Warning from shoulda-matchers:478You are using `validate_inclusion_of` to assert that a boolean column479allows boolean values and disallows non-boolean ones. Be aware that it480is not possible to fully test this, as boolean columns will481automatically convert non-boolean values to boolean ones. Hence, you482should consider removing this test.483************************************************************************484 is expected to validate that :instance_level_code_suggestions_enabled is either ‹true› or ‹false›485************************************************************************486Warning from shoulda-matchers:487You are using `validate_inclusion_of` to assert that a boolean column488allows boolean values and disallows non-boolean ones. Be aware that it489is not possible to fully test this, as boolean columns will490automatically convert non-boolean values to boolean ones. Hence, you491should consider removing this test.492************************************************************************493 is expected to validate that :package_registry_allow_anyone_to_pull_option is either ‹true› or ‹false›494 is expected to allow :math_rendering_limits_enabled to be ‹[true, false]›495 is expected not to allow :math_rendering_limits_enabled to be ‹nil›496 is expected to validate that :max_attachment_size cannot be empty/falsy497 is expected to validate that :max_attachment_size looks like an integer greater than 0498 is expected to validate that :max_export_size cannot be empty/falsy499 is expected to validate that :max_export_size looks like an integer greater than or equal to 0500 is expected to validate that :max_import_size cannot be empty/falsy501 is expected to validate that :max_import_size looks like an integer greater than or equal to 0502 is expected to validate that :max_import_remote_file_size cannot be empty/falsy503 is expected to validate that :max_import_remote_file_size looks like an integer greater than or equal to 0504 is expected to validate that :bulk_import_max_download_file_size cannot be empty/falsy505 is expected to validate that :bulk_import_max_download_file_size looks like an integer greater than or equal to 0506 is expected to validate that :max_decompressed_archive_size cannot be empty/falsy507 is expected to validate that :max_decompressed_archive_size looks like an integer greater than or equal to 0508 is expected to validate that :failed_login_attempts_unlock_period_in_minutes looks like an integer greater than 0509 is expected to validate that :max_login_attempts looks like an integer greater than 0510 is expected to validate that :local_markdown_version looks like an integer greater than or equal to 0 and less than 65536511 is expected to validate that :archive_builds_in_seconds looks like an integer greater than or equal to 86400, producing a custom validation error on failure512 when deactivate_dormant_users is enabled513 is expected not to allow :deactivate_dormant_users_period to be ‹nil›514 is expected to allow :deactivate_dormant_users_period to be ‹90›515 is expected to allow :deactivate_dormant_users_period to be ‹365›516 is expected not to allow :deactivate_dormant_users_period to be ‹89›517 help_page_documentation_base_url validations518 is expected to allow :help_page_documentation_base_url to be ‹nil›519 is expected to allow :help_page_documentation_base_url to be ‹"https://docs.gitlab.com"›520 is expected to allow :help_page_documentation_base_url to be ‹"http://127.0.0.1"›521 is expected not to allow :help_page_documentation_base_url to be ‹"docs.gitlab.com"›522 when url length validation523 when value string length is 255 characters524 allows the value525 when value string length exceeds 255 characters526 does not allow the value527 grafana_url validations528 is expected to allow :grafana_url to be ‹"http://example.com"›529 is expected to allow :grafana_url to be ‹"https://example.com"›530 is expected not to allow :grafana_url to be ‹"ftp://example.com"›531 is expected not to allow :grafana_url to be ‹"javascript:alert(window.opener.document.location)"›532 is expected to allow :grafana_url to be ‹"/-/grafana"›533 is expected to allow :grafana_url to be ‹"http://localhost:9000"›534 when local URLs are not allowed in system hooks535 is expected not to allow :grafana_url to be ‹"http://localhost:9000"›536 is expected not to allow :jira_connect_proxy_url to be ‹"http://localhost:9000"›537 with invalid grafana URL538 adds an error539 with blocked grafana URL540 adds an error541 default_branch_name validations542 when javascript tags get sanitized properly543 gets sanitized properly544 spam_check_endpoint545 when spam_check_endpoint is enabled546 is expected to allow :spam_check_endpoint_url to be ‹"grpc://example.org/spam_check"›547 is expected to allow :spam_check_endpoint_url to be ‹"tls://example.org/spam_check"›548 is expected not to allow :spam_check_endpoint_url to be ‹"https://example.org/spam_check"›549 is expected not to allow :spam_check_endpoint_url to be ‹"nonsense"›550 is expected not to allow :spam_check_endpoint_url to be ‹nil›551 is expected not to allow :spam_check_endpoint_url to be ‹""›552 when spam_check_endpoint is NOT enabled553 is expected to allow :spam_check_endpoint_url to be ‹"grpc://example.org/spam_check"›554 is expected to allow :spam_check_endpoint_url to be ‹"tls://example.org/spam_check"›555 is expected not to allow :spam_check_endpoint_url to be ‹"https://example.org/spam_check"›556 is expected not to allow :spam_check_endpoint_url to be ‹"nonsense"›557 is expected to allow :spam_check_endpoint_url to be ‹nil›558 is expected to allow :spam_check_endpoint_url to be ‹""›559 snowplow settings560 when snowplow is enabled561 is expected not to allow :snowplow_collector_hostname to be ‹nil›562 is expected to allow :snowplow_collector_hostname to be ‹"snowplow.gitlab.com"›563 is expected to allow :snowplow_database_collector_hostname to be ‹"db-snowplow.gitlab.com"›564 is expected not to allow :snowplow_database_collector_hostname to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadb-snowplow.gitlab.com"›565 is expected not to allow :snowplow_collector_hostname to be ‹"/example"›566 when snowplow is not enabled567 is expected to allow :snowplow_collector_hostname to be ‹nil›568 is expected to allow :snowplow_database_collector_hostname to be ‹nil›569 when mailgun_events_enabled is enabled570 is expected to validate that :mailgun_signing_key cannot be empty/falsy571 is expected to validate that the length of :mailgun_signing_key is at most 255572 when mailgun_events_enabled is not enabled573 is expected not to validate that :mailgun_signing_key cannot be empty/falsy574 when user accepted let's encrypt terms of service575 is expected not to allow :lets_encrypt_notification_email to be ‹nil›576 EKS integration577 integration is disabled578 is expected to allow :eks_account_id to be ‹nil›579 is expected to allow :eks_access_key_id to be ‹nil›580 is expected to allow :eks_secret_access_key to be ‹nil›581 integration is enabled582 is expected to allow :eks_account_id to be ‹"123456789012"›583 is expected not to allow :eks_account_id to be ‹nil›584 is expected not to allow :eks_account_id to be ‹"123"›585 is expected not to allow :eks_account_id to be ‹"12345678901a"›586 is expected to allow :eks_access_key_id to be ‹"access-key-id-12"›587 is expected not to allow :eks_access_key_id to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›588 is expected not to allow :eks_access_key_id to be ‹"short-key"›589 is expected to allow :eks_access_key_id to be ‹nil›590 is expected to allow :eks_secret_access_key to be ‹"secret-access-key"›591 is expected to allow :eks_secret_access_key to be ‹nil›592 access key is specified593 is expected to allow :eks_secret_access_key to be ‹"secret-access-key"›594 is expected not to allow :eks_secret_access_key to be ‹nil›595 GitLab for Slack app settings596 when GitLab for Slack app is disabled597 is expected to allow :slack_app_id to be ‹nil›598 is expected to allow :slack_app_secret to be ‹nil›599 is expected to allow :slack_app_signing_secret to be ‹nil›600 is expected to allow :slack_app_verification_token to be ‹nil›601 when GitLab for Slack app is enabled602 is expected to allow :slack_app_id to be ‹"123456789a"›603 is expected not to allow :slack_app_id to be ‹nil›604 is expected to allow :slack_app_secret to be ‹"secret"›605 is expected not to allow :slack_app_secret to be ‹nil›606 is expected to allow :slack_app_signing_secret to be ‹"signing-secret"›607 is expected not to allow :slack_app_signing_secret to be ‹nil›608 is expected to allow :slack_app_verification_token to be ‹"token"›609 is expected not to allow :slack_app_verification_token to be ‹nil›610 default_artifacts_expire_in611 sets an error if it cannot parse612 sets an error if it is blank613 sets the value if it is valid614 sets the value if it is 0615 usage_ping_enabled setting616 when setting is in database617 with usage_ping_enabled disabled618 behaves like usage ping disabled619 is expected to eq false620 with usage_ping_enabled enabled621 behaves like usage ping enabled622 is expected to eq true623 when setting is in GitLab config624 with usage_ping_enabled disabled625 behaves like usage ping disabled626 is expected to eq false627 with usage_ping_enabled enabled628 behaves like usage ping enabled629 is expected to eq true630 when setting in database false and setting in GitLab config true631 behaves like usage ping disabled632 is expected to eq false633 when setting database true and setting in GitLab config false634 behaves like usage ping disabled635 is expected to eq false636 when setting database true and setting in GitLab config true637 behaves like usage ping enabled638 is expected to eq true639 setting validated as `addressable_url` configured with external URI640 is valid by default641 is invalid when unpersisted `deny_all_requests_except_allowed` property is true642 key restrictions643 does not allow all key types to be disabled644 #ensure_key_restrictions!645 with non-compliant FIPS settings646 in non-FIPS mode647 keeps existing key restrictions648 in FIPS mode649 updates key restrictions to meet FIPS compliance650 behaves like an object with email-formatted attributes651 specifically its :abuse_notification_email attribute652 with a value of 'info@example.com'653 is valid654 with a value of 'info+test@example.com'655 is valid656 with a value of 'o'reilly@example.com'657 is valid658 with a value of 'mailto:test@example.com'659 is valid660 with a value of 'lol!'+=?><#$%^&*()@gmail.com'661 is valid662 with a value of 'foobar'663 is invalid664 with a value of 'test@test@example.com'665 is invalid666 repository_storages is a String, not an Array667 is expected to eq ["default"]668 auto_devops_domain setting669 when auto_devops_enabled? is true670 can be blank671 with a valid value672 is valid673 with an invalid value674 is invalid675 repository storages676 inclusion677 is expected to allow :repository_storages to be ‹"custom1"›678 is expected to allow :repository_storages to be ‹["custom2", "custom3"]›679 is expected not to allow :repository_storages to be ‹"alternative"›680 is expected not to allow :repository_storages to be ‹["alternative", "custom1"]›681 presence682 is expected not to allow :repository_storages to be ‹[]›683 is expected not to allow :repository_storages to be ‹""›684 is expected not to allow :repository_storages to be ‹nil›685 housekeeping settings686 is expected not to allow :housekeeping_optimize_repository_period to be ‹0›687 gitaly timeouts688 validates that the default_timeout is lower than the max_request_duration689 is expected to validate that :gitaly_timeout_default looks like an integer greater than or equal to 0690 is expected to validate that :gitaly_timeout_medium looks like an integer greater than or equal to 0691 is expected to validate that :gitaly_timeout_fast looks like an integer greater than or equal to 0692 validates that gitaly_timeout_medium is lower than timeout_default693 validates that gitaly_timeout_fast is lower than timeout_default694 accepts all timeouts equal695 accepts timeouts in descending order696 rejects timeouts in ascending order697 rejects medium timeout larger than default698 rejects medium timeout smaller than fast699 does not prevent from saving when gitaly timeouts were previously invalid700 enforcing terms701 requires the terms to present when enforcing users to accept702 is valid when terms are created703 when external authorization service is enabled704 is expected not to allow :external_authorization_service_url to be ‹"not a URL"›705 is expected to allow :external_authorization_service_url to be ‹"https://example.com"›706 is expected to allow :external_authorization_service_url to be ‹""›707 is expected not to allow :external_authorization_service_default_label to be ‹nil›708 is expected not to allow :external_authorization_service_timeout to be ‹11›709 is expected not to allow :external_authorization_service_timeout to be ‹0›710 is expected not to allow :external_auth_client_cert to be ‹"not a certificate"›711 is expected to allow :external_auth_client_cert to be ‹""›712 is expected to allow :external_auth_client_key to be ‹""›713 when setting a valid client certificate for external authorization714 requires a valid client key when a certificate is set715 requires a matching certificate716 the credentials are valid when the private key can be read and matches the certificate717 asset proxy settings718 #asset_proxy_url719 is expected not to allow :asset_proxy_url to be ‹""›720 is expected to allow :asset_proxy_url to be ‹"http://example.com"›721 is expected to allow :asset_proxy_url to be ‹"https://example.com"›722 is expected not to allow :asset_proxy_url to be ‹"ftp://example.com"›723 is not required when asset proxy is disabled724 #asset_proxy_secret_key725 is expected not to allow :asset_proxy_secret_key to be ‹""›726 is expected to allow :asset_proxy_secret_key to be ‹"anything"›727 is not required when asset proxy is disabled728 is encrypted729 #asset_proxy_whitelist730 when given an Array731 sets the domains and adds current running host732 when given a String733 sets multiple domains with spaces734 sets multiple domains with newlines and a space735 sets multiple domains with commas736 #asset_proxy_allowlist737 when given an Array738 sets the domains and adds current running host739 when given a String740 sets multiple domains with spaces741 sets multiple domains with newlines and a space742 sets multiple domains with commas743 #ci_jwt_signing_key744 is expected not to allow :ci_jwt_signing_key to be ‹""›745 is expected not to allow :ci_jwt_signing_key to be ‹"invalid RSA key"›746 is expected to allow :ci_jwt_signing_key to be ‹nil›747 is expected to allow :ci_jwt_signing_key to be ‹"-----BEGIN RSA PRIVATE KEY-----\nMIICWwIBAAKBgQC3ot8Qchk0DkzTpx+x3DPGBl+cGXQIpKoKoeuF9Ub8NiKyYbXz\nbemVEkuatNfHFmN8RJGAs2BaZR5e1LCiNPYDRBi9OAPEL/j+NVpAdTfU3yYbp3cD\nO8BkNMa3qIM1m8QEq4OAKy6j5JPr6c8W2UTgar+l5YwfOfRrkfTabbNMgQIDAQAB\nAoGAKyxvpT4uDr8N8PTpzrcmtPfqopiZXy7Xi4hmByiTd9iCb83pKUI+GH4kqEq8\nMGJjIWQ9kTSbAqWjbkgy/u/UpqmZzzoIfgieFYKtyS5z4i0VVUXfQuzaOLTlAsSX\nwbFeVB1wkCjcDomrhiwSL6sZFT1S3KJUNkvLaU0rLbQ3B8ECQQDsD7+eYnWOB/cL\noCXzfjLcnuM7sExxE8RFpyxIkBDRflFWYkgeauBIreSPI/d/7jj7YtJ59igYBnVr\nHlNp...›748 is encrypted749 #customers_dot_jwt_signing_key750 is expected not to allow :customers_dot_jwt_signing_key to be ‹""›751 is expected not to allow :customers_dot_jwt_signing_key to be ‹"invalid RSA key"›752 is expected to allow :customers_dot_jwt_signing_key to be ‹nil›753 is expected to allow :customers_dot_jwt_signing_key to be ‹"-----BEGIN RSA PRIVATE KEY-----\nMIICWwIBAAKBgQDLV4Lk27HiY3aRHfmVwWDB1jUdnG722iiL2GUJdZEqSC102DRH\nFwvfLPbfKj8aeYpclKEOdf+Yq9O3Ju9sBNSIOQgxtllUMftMxEhdchffV4PIqiu0\n5WDmvwwuD9dx0iLWGUbLhOGV/i/5ng9A87e2v3rTNCH8+XTmIt0F2FEbRQIDAQAB\nAoGALdVH17X9Xn3017jd7Pdti8NwrX/5MwLxaLQZ8gvh8JncRR4Gio+TSXalHqAz\nIRCMM1n9A3ltZ0gzrHDGPp7IGJWHj4/IbbVnk5qckRLJcJDamqz8no/Gz6yxKsHg\nvaYQVdR+NRUN+jTF0AbN5YcpDSYMp/qdSjbyjGEwcoPXhPECQQDkqCLPz6cgl0of\nogOrsZpyxEaC17BVsqf4VHms4sVhXHRO/b5Nh0iS6mKjk1PxRGlSzsM848ZY6XZS\nClWe...›754 is encrypted755 #cloud_license_auth_token756 is expected to allow :cloud_license_auth_token to be ‹nil›757 is encrypted758 static objects external storage759 when URL is set760 is expected not to allow :static_objects_external_storage_auth_token to be ‹nil›761 sourcegraph settings762 is invalid if sourcegraph is enabled and no url is provided763 gitpod settings764 is invalid if gitpod is enabled and no url is provided765 is invalid if gitpod is enabled and an empty url is provided766 is invalid if gitpod is enabled and an invalid url is provided767 diagrams.net settings768 when diagrams.net is enabled769 is expected not to allow :diagramsnet_url to be ‹nil›770 is expected to allow :diagramsnet_url to be ‹"https://embed.diagrams.net"›771 is expected not to allow :diagramsnet_url to be ‹"not a URL"›772 when diagrams.net is not enabled773 is expected to allow :diagramsnet_url to be ‹nil›774 throttle_* settings775 throttle_setting: :throttle_unauthenticated_api_requests_per_period776 is expected to allow :throttle_unauthenticated_api_requests_per_period to be ‹3›777 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹-3›778 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹0›779 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹"three"›780 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹nil›781 throttle_setting: :throttle_unauthenticated_api_period_in_seconds782 is expected to allow :throttle_unauthenticated_api_period_in_seconds to be ‹3›783 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹-3›784 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹0›785 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹"three"›786 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹nil›787 throttle_setting: :throttle_unauthenticated_requests_per_period788 is expected to allow :throttle_unauthenticated_requests_per_period to be ‹3›789 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹-3›790 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹0›791 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹"three"›792 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹nil›793 throttle_setting: :throttle_unauthenticated_period_in_seconds794 is expected to allow :throttle_unauthenticated_period_in_seconds to be ‹3›795 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹-3›796 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹0›797 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹"three"›798 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹nil›799 throttle_setting: :throttle_authenticated_api_requests_per_period800 is expected to allow :throttle_authenticated_api_requests_per_period to be ‹3›801 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹-3›802 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹0›803 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹"three"›804 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹nil›805 throttle_setting: :throttle_authenticated_api_period_in_seconds806 is expected to allow :throttle_authenticated_api_period_in_seconds to be ‹3›807 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹-3›808 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹0›809 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹"three"›810 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹nil›811 throttle_setting: :throttle_authenticated_web_requests_per_period812 is expected to allow :throttle_authenticated_web_requests_per_period to be ‹3›813 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹-3›814 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹0›815 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹"three"›816 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹nil›817 throttle_setting: :throttle_authenticated_web_period_in_seconds818 is expected to allow :throttle_authenticated_web_period_in_seconds to be ‹3›819 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹-3›820 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹0›821 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹"three"›822 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹nil›823 throttle_setting: :throttle_unauthenticated_packages_api_requests_per_period824 is expected to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹3›825 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹-3›826 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹0›827 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹"three"›828 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹nil›829 throttle_setting: :throttle_unauthenticated_packages_api_period_in_seconds830 is expected to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹3›831 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹-3›832 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹0›833 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹"three"›834 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹nil›835 throttle_setting: :throttle_authenticated_packages_api_requests_per_period836 is expected to allow :throttle_authenticated_packages_api_requests_per_period to be ‹3›837 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹-3›838 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹0›839 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹"three"›840 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹nil›841 throttle_setting: :throttle_authenticated_packages_api_period_in_seconds842 is expected to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹3›843 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹-3›844 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹0›845 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹"three"›846 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹nil›847 throttle_setting: :throttle_unauthenticated_files_api_requests_per_period848 is expected to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹3›849 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹-3›850 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹0›851 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹"three"›852 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹nil›853 throttle_setting: :throttle_unauthenticated_files_api_period_in_seconds854 is expected to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹3›855 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹-3›856 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹0›857 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹"three"›858 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹nil›859 throttle_setting: :throttle_authenticated_files_api_requests_per_period860 is expected to allow :throttle_authenticated_files_api_requests_per_period to be ‹3›861 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹-3›862 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹0›863 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹"three"›864 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹nil›865 throttle_setting: :throttle_authenticated_files_api_period_in_seconds866 is expected to allow :throttle_authenticated_files_api_period_in_seconds to be ‹3›867 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹-3›868 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹0›869 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹"three"›870 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹nil›871 throttle_setting: :throttle_unauthenticated_deprecated_api_requests_per_period872 is expected to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹3›873 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹-3›874 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹0›875 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹"three"›876 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹nil›877 throttle_setting: :throttle_unauthenticated_deprecated_api_period_in_seconds878 is expected to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹3›879 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹-3›880 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹0›881 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹"three"›882 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹nil›883 throttle_setting: :throttle_authenticated_deprecated_api_requests_per_period884 is expected to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹3›885 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹-3›886 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹0›887 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹"three"›888 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹nil›889 throttle_setting: :throttle_authenticated_deprecated_api_period_in_seconds890 is expected to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹3›891 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹-3›892 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹0›893 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹"three"›894 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹nil›895 throttle_setting: :throttle_authenticated_git_lfs_requests_per_period896 is expected to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹3›897 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹-3›898 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹0›899 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹"three"›900 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹nil›901 throttle_setting: :throttle_authenticated_git_lfs_period_in_seconds902 is expected to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹3›903 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹-3›904 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹0›905 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹"three"›906 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹nil›907 sidekiq job limiter settings908 has the right defaults909 is expected to allow :sidekiq_job_limiter_mode to be ‹"track"›910 is expected to validate that :sidekiq_job_limiter_compression_threshold_bytes looks like an integer greater than or equal to 0911 is expected to validate that :sidekiq_job_limiter_limit_bytes looks like an integer greater than or equal to 0912 prometheus settings913 validates metrics_method_call_threshold914 error tracking settings915 with error tracking disabled916 is expected to allow :error_tracking_api_url to be ‹nil›917 with error tracking enabled918 is expected to allow :error_tracking_api_url to be ‹"http://example.com"›919 is expected to allow :error_tracking_api_url to be ‹"https://example.com"›920 is expected not to allow :error_tracking_api_url to be ‹"ftp://example.com"›921 is expected to validate that :error_tracking_api_url cannot be empty/falsy922 for default_preferred_language923 is expected to allow :default_preferred_language to be ‹"bg"›, ‹"cs_CZ"›, ‹"da_DK"›, ‹"de"›, ‹"en"›, ‹"eo"›, ‹"es"›, ‹"fil_PH"›, ‹"fr"›, ‹"gl_ES"›, ‹"id_ID"›, ‹"it"›, ‹"ja"›, ‹"ko"›, ‹"nb_NO"›, ‹"nl_NL"›, ‹"pl_PL"›, ‹"pt_BR"›, ‹"ro_RO"›, ‹"ru"›, ‹"si_LK"›, ‹"tr_TR"›, ‹"uk"›, ‹"zh_CN"›, ‹"zh_HK"›, or ‹"zh_TW"›924 is expected not to allow :default_preferred_language to be ‹nil›, ‹""›, or ‹"invalid_locale"›925 for default_syntax_highlighting_theme926 is expected to allow :default_syntax_highlighting_theme to be ‹1›, ‹2›, ‹3›, ‹4›, ‹5›, or ‹6›927 is expected not to allow :default_syntax_highlighting_theme to be ‹nil›, ‹0›, or ‹7›928 default_branch_protections_defaults validations929 is expected to validate jsonb schema "default_branch_protection_defaults"930 when json is more than 1kb931 is expected not to allow :default_branch_protection_defaults to be ‹{name: "8khrku3ejv07exfqajt2uck4aaf8qh9tz95rcrz9rt7en8pu1iw0hevywethw44u5kzugi7o6jiuf9zdgxl33beefxkypknae70fxinofw1r7flj16gnjhw609vycyo0gp75db6odgpkrqu1jrssp9rkb5jzdugquwd3bzzn5aem8ezr9503ace10o6q4y590wz1u5nsq2hxnsb9nrdbtjnnamyb6gxwae6j2b9n1baa33gyyxmwko06iz3pihy73g5vu8ghmy42c02m7fib4ac6p6wjij4aty0xmhpzss8c1et26rt3nz540tbw6j6npe8cilaool8wtccm7fzg22q301bmtw9ypevz9cbiqfjzstj2w6ve43o72j2aers05jtguc24lftf75sv94sgp36msa9wws3726mgvt5n0d6s43gfeinv2nw6g9bxiq9atmaij4npes400ryzjwfqq20ts3d8egkmg83rehwknvr5t8gvu2vz0fbdwivmtnvj9hyxuc0s358dw4s5noj1urbde4cab6zl4jfsb3x0h7biqd5lrax6b3bxer0b3clb8kdjneondagdi4vi9jpjswlujznnc4mi1x6szugldp6m3q7se0hc7zjv4v1if05lfvfgzpjs9vluk7krgzqy0943inj0u8b7maj7mivbzur4feb2hnu3kckgo87n5zugix9cygma0xr78d9cbik5cwdwhy5l9a3hbqep36az008cy060rej4n5ihkfyfp18dxyao61v67kftxj5c2s0qaj7cs3ufyg6um0u0a2s34685jaoxm68ec15wotf97ig7zl0kbrev7qik940ivspxanjxy5liyhom4kgdoc3ehh2zs3bnbr3v2q1d5mzj3phxa8ovkoixr11kn4m7ibbjt2cxols1p7uhofirksf7uermmx3fsd8gki4f63hj8l8nszga8ckf0zt26abi29efhgdtes6gv2r9iy6gs97uj99186jjnkuib4e2rrwnh75l9rr7x42iy2xko2oqku9fdwv9haddj2accf2ayakoc6572aglvgbhedkzpg2z4jfrljpqhy1tpb3cdk04n3fgt5w2in1d67m96kduci"}›932 when json less than 1kb933 is expected to allow :default_branch_protection_defaults to be ‹{name: "9feycq2wwascqqukve069mz8q0qvnruvy5o8jsh4un6vc3lmtaeldtyb4i81w9bgmyeerui74w6631963lk899y2mipfwet7dxuuqes4nufyj3jl3ucddvg5nggpspsadaqbk3glkozw83gqeqcrq996nrw3ua4raobnfdtb7gd91l6aixfyhj3rrjl8ruu89pnoyryd8hod6t90ybmd7qxa0pg7qqss2foh64g9x9ml6qga7xgoriw5nf6zzokecadkgtf2xjjg03zwahrt10wc3ps1p6bqgx4gtshqjocqmwvuhndqdmbtrr06ay6zjuipup77h91ui4xevk0ufvywwhxh0ikcgeac94wxsd7g8rbjvcgtl103y9t2ci4kfheeiiezjxz13bx64ukjnkmtuvoc84d10pymxrvhv624rp0kqhlb7raioy49vcd0unvvw1s47t0m9x3eworg78959l40z10zr4vh2b08p2xy96bgsklbaa6ki2ui461y"}›934 default_project_visibility, default_group_visibility and restricted_visibility_levels validations935 is expected not to allow :default_group_visibility to be ‹10›936 is expected not to allow :default_project_visibility to be ‹10›937 is expected to allow :default_group_visibility to be ‹20›938 is expected to allow :default_project_visibility to be ‹20›939 sets error messages when default visibility settings are not valid940 when prevent_visibility_restriction FF is disabled941 is expected to allow :default_group_visibility to be ‹10›942 is expected to allow :default_project_visibility to be ‹10›943 is expected to allow :default_group_visibility to be ‹20›944 is expected to allow :default_project_visibility to be ‹20›945 sentry_clientside_traces_sample_rate946 is expected to validate that :sentry_clientside_traces_sample_rate looks like a number greater than or equal to 0 and less than or equal to 1, producing a custom validation error on failure947 restrict creating duplicates948 returns the current settings949 when ApplicationSettings does not have a primary key950 raises an exception951 ADDRESSABLE_URL_VALIDATION_OPTIONS952 is applied to all addressable_url validated properties953 #disabled_oauth_sign_in_sources=954 removes unknown sources (as strings) from the array955 removes unknown sources (as symbols) from the array956 ignores nil957 performance bar settings958 performance_bar_allowed_group959 with no performance_bar_allowed_group_id saved960 returns nil961 with a performance_bar_allowed_group_id saved962 returns the group963 performance_bar_enabled964 with the Performance Bar is enabled965 returns true966 diff limit settings967 #diff_max_patch_bytes968 validations969 is expected to validate that :diff_max_patch_bytes cannot be empty/falsy970 is expected to validate that :diff_max_patch_bytes looks like an integer greater than or equal to 204800 and less than or equal to 512000971 #diff_max_files972 validations973 is expected to validate that :diff_max_files cannot be empty/falsy974 is expected to validate that :diff_max_files looks like an integer greater than or equal to 1000 and less than or equal to 3000975 #diff_max_lines976 validations977 is expected to validate that :diff_max_lines cannot be empty/falsy978 is expected to validate that :diff_max_lines looks like an integer greater than or equal to 50000 and less than or equal to 100000979 #sourcegraph_url_is_com?980 url: "https://sourcegraph.com", is_com: true981 matches the url with sourcegraph.com982 url: "https://sourcegraph.com/", is_com: true983 matches the url with sourcegraph.com984 url: "https://www.sourcegraph.com", is_com: true985 matches the url with sourcegraph.com986 url: "shttps://www.sourcegraph.com", is_com: false987 matches the url with sourcegraph.com988 url: "https://sourcegraph.example.com/", is_com: false989 matches the url with sourcegraph.com990 url: "https://sourcegraph.org/", is_com: false991 matches the url with sourcegraph.com992 #instance_review_permitted?993 users_over_minimum: -1994 is expected to equal false995 users_over_minimum: 0996 is expected to equal true997 users_over_minimum: 1998 is expected to equal true999 email_restrictions1000 when email restrictions are enabled1001 allows empty email restrictions1002 accepts valid email restrictions regex1003 does not accept invalid email restrictions regex1004 sets an error when regex is not valid1005 when email restrictions are disabled1006 allows empty email restrictions1007 invalid regex is not valid1008 behaves like application settings examples1009 predicate method changes when value is updated1010 restricted signup domains1011 behaves like string of domains1012 sets single domain1013 sets multiple domains with spaces1014 sets multiple domains with newlines and a space1015 sets multiple domains with commas1016 sets multiple domains with semicolon1017 sets multiple domains with mixture of everything1018 removes duplicates1019 does not fail with garbage values1020 does not raise error with nil1021 denied signup domains1022 sets multiple domain with file1023 behaves like string of domains1024 sets single domain1025 sets multiple domains with spaces1026 sets multiple domains with newlines and a space1027 sets multiple domains with commas1028 sets multiple domains with semicolon1029 sets multiple domains with mixture of everything1030 removes duplicates1031 does not fail with garbage values1032 does not raise error with nil1033 outbound_local_requests_whitelist1034 clears outbound_local_requests_allowlist_arrays memoization1035 behaves like string of domains1036 sets single domain1037 sets multiple domains with spaces1038 sets multiple domains with newlines and a space1039 sets multiple domains with commas1040 sets multiple domains with semicolon1041 sets multiple domains with mixture of everything1042 removes duplicates1043 does not fail with garbage values1044 does not raise error with nil1045 outbound_local_requests_allowlist_arrays1046 separates the IPs and domains1047 add_to_outbound_local_requests_whitelist1048 adds entry to outbound_local_requests_whitelist1049 clears outbound_local_requests_allowlist_arrays memoization1050 does not raise error with nil1051 does not raise error with nil1052 usage ping settings1053 when the usage ping is disabled in gitlab.yml1054 does not allow the usage ping to be configured1055 when the usage ping is disabled in the DB1056 returns false for usage_ping_enabled1057 when the usage ping is enabled in the DB1058 returns false for usage_ping_enabled1059 when the usage ping is enabled in gitlab.yml1060 allows the usage ping to be configured1061 when the usage ping is disabled in the DB1062 returns false for usage_ping_enabled1063 when the usage ping is enabled in the DB1064 returns true for usage_ping_enabled1065 #allowed_key_types1066 excludes disabled key types1067 in non-FIPS mode1068 includes all key types by default1069 in FIPS mode1070 excludes DSA from supported key types1071 #key_restriction_for1072 returns the restriction value for recognised types1073 allows types to be passed as a string1074 returns forbidden for unrecognised type1075 #allow_signup?1076 returns true1077 returns false if signup is disabled1078 returns false if password authentication is disabled for the web interface1079 #pick_repository_storage1080 chooses repository based on weight1081 #normalized_repository_storage_weights1082 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0, "backup"=>1.0}1083 normalizes storage weights1084 config_storages: ["default", "backup"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>0.5, "backup"=>0.5}1085 normalizes storage weights1086 config_storages: ["default", "backup"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>0.2, "backup"=>0.8}1087 normalizes storage weights1088 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>0}, normalized: {"default"=>0.0, "backup"=>0.0}1089 normalizes storage weights1090 config_storages: ["default"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0}1091 normalizes storage weights1092 config_storages: ["default"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>1.0}1093 normalizes storage weights1094 config_storages: ["default"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>1.0}1095 normalizes storage weights1096 #user_default_internal_regex_enabled?1097 user_default_external: false, user_default_internal_regex: nil, result: false1098 is expected to eq false1099 user_default_external: false, user_default_internal_regex: "", result: false1100 is expected to eq false1101 user_default_external: false, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: false1102 is expected to eq false1103 user_default_external: true, user_default_internal_regex: "", result: false1104 is expected to eq false1105 user_default_external: true, user_default_internal_regex: nil, result: false1106 is expected to eq false1107 user_default_external: true, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: true1108 is expected to eq true1109 #archive_builds_older_than1110 when the archive_builds_in_seconds is set1111 is expected to be within 60 of 2023-10-20 08:05:20.113518780 +00001112 when the archive_builds_in_seconds is set1113 is expected to be nil1114 #commit_email_hostname1115 when the value is provided1116 returns the provided value1117 when the value is not provided1118 returns the default from the class1119 kroki_format_supported?1120 returns true when Excalidraw is enabled1121 returns true when BlockDiag is enabled1122 returns false when BlockDiag is disabled1123 returns false when the diagram type is optional and not enabled1124 returns true when the diagram type is enabled by default1125 returns false when the diagram type is unknown1126 kroki_formats1127 returns the value for kroki_formats1128 default_branch_protection_defaults1129 returns the value for default_branch_protection_defaults1130 when provided with content that does not match the JSON schema1131 is expected to allow :default_branch_protection_defaults to be ‹{name: "bar"}›1132 is expected not to allow :default_branch_protection_defaults to be ‹{foo: "bar"}›1133 #static_objects_external_storage_auth_token=1134 stores an encrypted version of the token1135 when token is empty1136 removes an encrypted version of the token1137 with plaintext token only1138 ignores the plaintext token1139 #database_grafana_api_key1140 is encrypted1141 inactive project deletion1142 validates that inactive_projects_send_warning_email_after_months is less than inactive_projects_delete_after_months1143 is expected to validate that :inactive_projects_send_warning_email_after_months looks like a number greater than 01144 is expected to validate that :inactive_projects_delete_after_months looks like a number greater than 01145 is expected to validate that :inactive_projects_min_size_mb looks like a number greater than or equal to 01146 deletes the redis key used for tracking inactive projects deletion warning emails when setting is updated1147 personal accesss token prefix1148 sets the correct default value1149 .personal_access_tokens_disabled?1150 is false1151Ci::DeleteObjectsService1152 #execute1153 deletes records1154 deletes files1155 when trying to execute without records1156 does not change the number of objects1157 when trying to remove the same file multiple times1158 executes successfully1159 with artifacts both ready and not ready for deletion1160 skips records with pick_up_at in the future1161 limits the number of records removed1162 removes records in order1163 updates pick_up_at timestamp1164 does not delete objects for which file deletion has failed1165 with an open database transaction1166 raises an exception and does not remove records1167 #remaining_batches_count1168 when there is less than one batch size1169 is expected to eq 11170 when there is more than one batch size1171 is expected to eq 21172Resolvers::PackagePipelinesResolver1173 is expected to include :lookahead1174 #resolve1175 contains the expected pipelines1176 with valid after1177 contains the expected pipelines1178 with valid before1179 contains the expected pipelines1180 with invalid after1181 generates an argument error1182 with invalid after key1183 generates an argument error1184 with invalid before1185 generates an argument error1186 with invalid before key1187 generates an argument error1188 with unauthorized user1189 returns nothing1190 with many packages1191 contains the expected pipelines1192 handles n+1 situations1193Gitlab::Spamcheck::Client1194 url scheme1195 is tls1196 uses secure connection1197 is grpc1198 uses insecure connection1199 #spam?1200 issue1201 behaves like check for spam1202 includes interceptors1203 verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.011204 returns expected spam result1205 verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.51206 returns expected spam result1207 verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.751208 returns expected spam result1209 verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.991210 returns expected spam result1211 verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.01212 returns expected spam result1213 snippet1214 behaves like check for spam1215 includes interceptors1216 verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.011217 returns expected spam result1218 verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.51219 returns expected spam result1220 verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.751221 returns expected spam result1222 verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.991223 returns expected spam result1224 verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.01225 returns expected spam result1226 #build_protobuf1227 builds the expected issue protobuf object1228 builds the expected snippet protobuf object1229 builds the expected generic protobuf object1230 #build_user_protobuf1231 builds the expected protobuf object1232 when user has multiple email addresses1233 adds emails to the user pb object1234 #build_project_protobuf1235 builds the expected protobuf object1236 #get_spammable_mappings1237 is a defined spammable1238 is a generic spammable1239Gitlab::Ci::Pipeline::Expression::Lexeme::Pattern1240 #initialize1241 when the value is a valid regular expression1242 initializes the pattern1243 when the value is a valid regular expression with escaped slashes1244 initializes the pattern1245 when the value is not a valid regular expression1246 raises an error1247 .build1248 creates a new instance of the token1249 raises an error if pattern is invalid1250 .build_and_evaluate1251 when the value is a valid regular expression1252 returns the value as a Gitlab::UntrustedRegexp1253 when the value is a Gitlab::UntrustedRegexp1254 returns the value itself1255 when the value is not a valid regular expression1256 returns the value itself1257 .type1258 is a value lexeme1259 .scan1260 correctly identifies a pattern token1261 does not allow to use an empty pattern1262 support single flag1263 support multiple flags1264 ignores unsupported flags1265 is an eager scanner for regexp boundaries1266 does not match on escaped regexp boundaries1267 recognizes \ as an escape character for /1268 does not recognize \ as an escape character for $1269 #evaluate1270 returns a regular expression1271Ci::FreezePeriodsFinder1272 # order random1273 when user is a maintainer1274 behaves like returns freeze_periods ordered by created_at asc1275 returns freeze_periods ordered by created_at1276 when user is a developer1277 behaves like returns freeze_periods ordered by created_at asc1278 returns freeze_periods ordered by created_at1279 when user is not a project member1280 behaves like returns nothing1281 is expected to be empty1282 when project is public1283 behaves like returns nothing1284 is expected to be empty1285 when user is a guest1286 behaves like returns nothing1287 is expected to be empty1288ContainerExpirationPolicyWorker1289 #perform1290 process cleanups1291 calls the limited capacity worker1292 with exclusive lease taken1293 does not do anything1294 process stale ongoing cleanups1295 set them as unfinished1296 policies without container repositories1297 disables them1298 counts logging1299 logs all the counts1300 with load balancing enabled1301 reads the counts from the replica1302UserGroupNotificationSettingsFinder1303 when the groups have no existing notification settings1304 when the groups have no ancestors1305 will be a default Global notification setting1306 when the groups have ancestors1307 does not cause an N+11308 when an ancestor has a level other than Global1309 has the same level set1310 has the same email set1311 only returns the two queried groups1312 when an ancestor has a Global level but has an email set1313 has the same email and level set1314 when the group has parent_id set but that does not belong to any group1315 returns a default Global notification setting1316 when the group has a private parent1317 still inherits the notification settings1318 preloading `emails_disabled`1319 preloads the `group.emails_disabled` method1320 preloads the `group.emails_disabled` method correctly1321Gitlab::Metrics::SidekiqSlis1322 # order random1323 .record_execution_error1324 increments the error rate SLI with the given labels and error1325 .record_queueing_apdex1326 urgency: "high", duration: 5, success: true1327 increments the apdex SLI with success based on urgency requirement1328 urgency: "high", duration: 11, success: false1329 increments the apdex SLI with success based on urgency requirement1330 urgency: "low", duration: 50, success: true1331 increments the apdex SLI with success based on urgency requirement1332 urgency: "low", duration: 70, success: false1333 increments the apdex SLI with success based on urgency requirement1334 urgency: "throttled", duration: 100, success: true1335 increments the apdex SLI with success based on urgency requirement1336 urgency: "throttled", duration: 1000000, success: true1337 increments the apdex SLI with success based on urgency requirement1338 urgency: "not_found", duration: 50, success: true1339 increments the apdex SLI with success based on urgency requirement1340 urgency: "not_found", duration: 70, success: false1341 increments the apdex SLI with success based on urgency requirement1342 .initialize_execution_slis!1343 initializes the apdex and error rate SLIs1344 .record_execution_apdex1345 urgency: "high", duration: 5, success: true1346 increments the apdex SLI with success based on urgency requirement1347 urgency: "high", duration: 11, success: false1348 increments the apdex SLI with success based on urgency requirement1349 urgency: "low", duration: 295, success: true1350 increments the apdex SLI with success based on urgency requirement1351 urgency: "low", duration: 400, success: false1352 increments the apdex SLI with success based on urgency requirement1353 urgency: "throttled", duration: 295, success: true1354 increments the apdex SLI with success based on urgency requirement1355 urgency: "throttled", duration: 400, success: false1356 increments the apdex SLI with success based on urgency requirement1357 urgency: "not_found", duration: 295, success: true1358 increments the apdex SLI with success based on urgency requirement1359 urgency: "not_found", duration: 400, success: false1360 increments the apdex SLI with success based on urgency requirement1361 .initialize_queueing_slis!1362 initializes the apdex SLIs1363projects/notes/_more_actions_dropdown1364 shows Report abuse to admin button if not editable and not current users comment1365 does not show the More actions button if not editable and current users comment1366 shows Report abuse and Delete buttons if editable and not current users comment1367 shows Delete button if editable and current users comment1368Resolvers::DesignManagement::DesignResolver1369 is expected to have nullable GraphQL type Design1370 #resolve1371 when the user cannot see designs1372 returns nothing1373 when no argument has been passed1374 generates an error1375 when both arguments have been passed1376 generates an error1377 by ID1378 returns the specified design1379 the ID belongs to a design on another issue1380 returns nothing1381 by filename1382 returns the specified design1383 the filename belongs to a design on another issue1384 returns nothing1385Resolvers::BaseResolver.single1386 #resolve1387 when there is no parent1388 returns nil if parent is nil1389 when project boards1390 behaves like group and project boards resolver1391 does not create a default board1392 calls Boards::BoardsFinder1393 requires an ID1394 when querying for a single board1395 returns specified board1396 returns nil if board not found1397 when group boards1398 behaves like group and project boards resolver1399 does not create a default board1400 calls Boards::BoardsFinder1401 requires an ID1402 when querying for a single board1403 returns specified board1404 returns nil if board not found1405Resolvers::Ci::ConfigResolver1406 #resolve1407 when the user can create a pipeline1408 with a valid .gitlab-ci.yml1409 with a sha1410 behaves like a valid config file1411 lints the ci config file and returns the merged yaml file1412 without a sha1413 behaves like a valid config file1414 lints the ci config file and returns the merged yaml file1415 with an invalid .gitlab-ci.yml1416 responds with errors about invalid syntax1417 with an invalid SHA1418 logs the invalid SHA to Sentry1419 when the user cannot create a pipeline1420 returns an error stating that the user cannot access the linting1421BlobViewer::Readme1422 #render_error1423 when there is no wiki1424 returns :no_wiki1425 when there is an external wiki1426 returns nil1427 when there is a local wiki1428 when the wiki is empty1429 returns :no_wiki1430 when the wiki is not empty1431 returns nil1432Gitlab::Memory::Watchdog1433 watchdog1434 #initialize1435 initialize new configuration1436 #call1437 reports started event once1438 waits for check interval seconds1439 when no monitors are configured1440 reports stopped event once with correct reason1441 when monitors are configured1442 reports stopped event once1443 when process does not exceed threshold1444 does not report violations event1445 does not execute handler1446 when process exceeds threshold1447 reports threshold violated event1448 when process does not exceed the allowed number of strikes1449 does not report strikes exceeded event1450 does not execute handler1451 when monitor exceeds the allowed number of strikes1452 reports strikes exceeded event1453 executes handler and stops the watchdog1454 schedules a heap dump1455 when enforce_memory_watchdog ops toggle is off1456 always uses the NullHandler1457 when multiple monitors exceeds allowed number of strikes1458 only calls the handler once1459 #configure1460 yields block1461Gitlab::GithubGistsImport::Importer::GistImporter1462 # order random1463 #execute1464 when success1465 creates expected snippet and snippet repository1466 pre-import validations1467 when file count limit exeeded1468 validates input and returns error1469 when repo too big1470 validates input and returns error1471 post-import validations1472 when file count limit exeeded1473 returns error1474 when repo too big1475 returns error1476 when invalid attributes1477 raises an error1478 when repository cloning fails1479 returns error1480 when url is invalid1481 when local network is allowed1482 raises error1483 when local network is not allowed1484 raises error1485gitlab:uploads rake tasks1486 check1487 outputs the integrity check for each batch1488 errors out about missing files on the file system1489 errors out about invalid checksum1490DesignManagement::CopyDesignCollection::QueueService1491 returns an error if user does not have permission1492 when user has permission1493 returns an error if design collection copy_state is not queuable1494 sets the design collection copy state1495 queues a DesignManagement::CopyDesignCollectionWorker1496 returns success1497Projects::Ml::ModelFinder1498 # order random1499 default params1500 returns models for project ordered by id1501 including the latest version1502 does not return models belonging to a different project1503 includes version count1504 when name is passed1505 searches by name1506 sorting1507 test_case: "default params", order_by: nil, direction: nil, expected_order: [2, 1, 0]1508 is expected to eq [#<Ml::Model id: 3, created_at: "2023-10-20 09:07:26.429164804 +0000", updated_at: "2023-10-20 09:07:...80581084 +0000", updated_at: "2023-10-20 09:07:25.680581084 +0000", project_id: 47, name: "model1">]1509 test_case: "ascending order", order_by: "id", direction: "ASC", expected_order: [0, 1, 2]1510 is expected to eq [#<Ml::Model id: 1, created_at: "2023-10-20 09:07:25.680581084 +0000", updated_at: "2023-10-20 09:07:...164804 +0000", updated_at: "2023-10-20 09:07:26.429164804 +0000", project_id: 47, name: "model1_1">]1511 test_case: "by column", order_by: "name", direction: "ASC", expected_order: [0, 2, 1]1512 is expected to eq [#<Ml::Model id: 1, created_at: "2023-10-20 09:07:25.680581084 +0000", updated_at: "2023-10-20 09:07:...60444843 +0000", updated_at: "2023-10-20 09:07:26.160444843 +0000", project_id: 47, name: "model2">]1513 test_case: "invalid sort", order_by: nil, direction: "UP", expected_order: [2, 1, 0]1514 is expected to eq [#<Ml::Model id: 3, created_at: "2023-10-20 09:07:26.429164804 +0000", updated_at: "2023-10-20 09:07:...80581084 +0000", updated_at: "2023-10-20 09:07:25.680581084 +0000", project_id: 47, name: "model1">]1515 test_case: "invalid order by", order_by: "INVALID", direction: nil, expected_order: [2, 1, 0]1516 is expected to eq [#<Ml::Model id: 3, created_at: "2023-10-20 09:07:26.429164804 +0000", updated_at: "2023-10-20 09:07:...80581084 +0000", updated_at: "2023-10-20 09:07:25.680581084 +0000", project_id: 47, name: "model1">]1517Diffs::OverflowWarningComponent1518 rendered component1519 on a commit page1520 is expected to include "For a faster browsing experience, only <strong>1 of 2</strong> files are shown. Download one of the files below to see all changes."1521 links to the diff1522 links to the patch1523 on a merge request page and the merge request is persisted1524 is expected to include "For a faster browsing experience, only <strong>1 of 2</strong> files are shown. Download one of the files below to see all changes."1525 links to the diff1526 links to the patch1527 both conditions fail1528 is expected to include "For a faster browsing experience, only <strong>1 of 2</strong> files are shown. Download one of the files below to see all changes."1529 is expected not to include "btn gl-alert-action btn-default gl-button btn-default-secondary"1530 is expected not to include "Plain diff"1531 is expected not to include "Email patch"1532 #message1533 is expected to be a kind of String1534 is HTML-safe1535 #diff_link1536 is a string when on a commit page1537 is a string when on a merge request page1538 is nil in other situations1539 #patch_link1540 is a string when on a commit page1541 is a string when on a merge request page1542 is nil in other situations1543SystemHookPolicy1544 when the user is not an admin1545 cannot read_web_hook1546 cannot destroy_web_hook1547 when the user is an admin1548 can read_web_hook1549 can destroy_web_hook1550Mutations::Issues::Move1551 #resolve1552 raises an error if the resource is not accessible to the user1553 when user does not have permissions1554 returns error message1555 when user has sufficient permissions1556 moves issue1557Projects::InactiveProjectsDeletionCronWorker1558 #perform1559 when delete inactive projects feature is disabled1560 does not invoke Projects::InactiveProjectsDeletionNotificationWorker1561 does not delete the inactive projects1562 when delete inactive projects feature is enabled1563 invokes Projects::InactiveProjectsDeletionNotificationWorker for inactive projects1564 does not invoke InactiveProjectsDeletionNotificationWorker for already notified inactive projects1565 invokes Projects::DestroyService for projects that are inactive even after being notified1566 behaves like worker is running for more than 4 minutes1567 stores the last processed inactive project_id in redis cache1568 behaves like worker finishes processing in less than 4 minutes1569 clears the last processed inactive project_id from redis cache1570 behaves like an idempotent worker1571 is labeled as idempotent1572 performs multiple times sequentially without raising an exception1573API::Helpers::Authentication1574 class methods1575 .authenticate_with1576 sets namespace_inheritable :authentication to correctly when body is empty1577 sets namespace_inheritable :authentication to correctly when body is not empty1578 helper methods1579 #token_from_namespace_inheritable1580 with no allowed authentication strategies1581 behaves like an anonymous request1582 returns nil1583 with no located credentials1584 behaves like an anonymous request1585 returns nil1586 with one set of located credentials1587 when the credentials contain a valid token1588 behaves like an authenticated request1589 returns the token1590 when the credentials do not contain a valid token1591 behaves like an unauthorized request1592 behaves like stops early1593 calls #unauthorized!1594 with multiple located credentials1595 behaves like stops early1596 calls #bad_request!1597 when a resolver raises UnauthorizedError1598 behaves like an unauthorized request1599 behaves like stops early1600 calls #unauthorized!1601 #access_token_from_namespace_inheritable1602 returns #token_from_namespace_inheritable if it is a personal access token1603 returns nil if #token_from_namespace_inheritable is not a personal access token1604 #ci_build_from_namespace_inheritable1605 returns #token_from_namespace_inheritable if it is a ci build1606 returns nil if #token_from_namespace_inheritable is not a ci build1607 #user_from_namespace_inheritable1608 returns #token_from_namespace_inheritable if it is a deploy token1609 returns #token_from_namespace_inheritable.user if the token is not a deploy token1610 falls back to #find_user_from_warden if #token_from_namespace_inheritable.user is nil1611 falls back to #find_user_from_warden if #token_from_namespace_inheritable is nil1612ObjectStorage::PendingDirectUpload1613 # order random1614 .redis_key1615 is expected to eq "artifacts:some/path/123"1616 .exists?1617 when there is a matching redis entry for the given path under the location identifier1618 is expected to eq true1619 when there is a matching redis entry for the given path under a different location identifier1620 is expected to eq false1621 when there is no matching redis entry for the given path under the location identifier1622 is expected to eq false1623 #delete1624 deletes the object from storage and also the redis entry1625 .each1626 yields each pending direct upload object1627 .prepare1628 creates a redis entry for the given location identifier and path1629 .count1630 is expected to eq 31631 #stale?1632 when timestamp is older than 3 hours ago1633 is expected to eq true1634 when timestamp is not older than 3 hours ago1635 is expected to eq false1636 .complete1637 deletes the redis entry for the given path1638Projects::CreateFromTemplateService1639 calls the importer service1640 returns the project that is created1641 when template is not present1642 does not set import set import type1643 does not set import set import source1644 is not scheduled1645 repository is empty1646 the result project1647 overrides template description1648 overrides template visibility_level1649Ci::PrepareBuildService1650 #execute1651 build has unmet prerequisites1652 completes each prerequisite1653 enqueues the build1654 prerequisites fail to complete1655 drops the build1656 prerequisites raise an error1657 drops the build and notifies Sentry1658 build has no prerequisites1659 enqueues the build1660Quality::Seeders::Issues1661 #seed1662.. seeds issues1663Ci::DagPipelineEntity1664 #as_json1665 when pipeline is empty1666 contains stages1667 behaves like matches schema1668 matches schema1669 when pipeline has jobs1670 contains 3 stages1671 behaves like matches schema1672 matches schema1673 when pipeline has parallel jobs, DAG needs and GenericCommitStatus1674 performs the smallest number of queries1675 contains all the data1676 behaves like matches schema1677 matches schema1678Gitlab::Ci::Config::Entry::Product::Parallel1679 with invalid config1680 when it is not a numeric value1681 behaves like invalid config1682 #valid?1683 is expected not to be valid1684 #errors1685 returns error about invalid type1686 when it is lower than one1687 behaves like invalid config1688 #valid?1689 is expected not to be valid1690 #errors1691 returns error about invalid type1692 when it is bigger than 2001693 behaves like invalid config1694 #valid?1695 is expected not to be valid1696 #errors1697 returns error about invalid type1698 when it is not an integer1699 behaves like invalid config1700 #valid?1701 is expected not to be valid1702 #errors1703 returns error about invalid type1704 with empty hash config1705 behaves like invalid config1706 #valid?1707 is expected not to be valid1708 #errors1709 returns error about invalid type1710 with numeric config1711 when job is specified1712 #valid?1713 is expected to be valid1714 #value1715 returns job needs configuration1716 when :numeric is not allowed1717 behaves like invalid config1718 #valid?1719 is expected not to be valid1720 #errors1721 returns error about invalid type1722 with matrix builds config1723 when matrix is specified1724 #valid?1725 is expected to be valid1726 #value1727 returns job needs configuration1728 when :matrix is not allowed1729 behaves like invalid config1730 #valid?1731 is expected not to be valid1732 #errors1733 returns error about invalid type1734Types::Ci::JobType1735 is expected to eq "CiJob"1736 is expected to expose permissions using Types::PermissionTypes::Ci::Job1737 exposes the expected fields1738 #web_path1739 returns the web path of the job1740 #browse_artifacts_path1741 returns the path to browse the artifacts of the job1742TriggerVariableEntity1743 exposes the variable key1744 when user has access to the value1745 when user is maintainer1746 exposes the variable value1747 when user is owner1748 exposes the variable value1749 when user does not have access to the value1750 does not expose the variable value1751Mutations::AlertManagement::Alerts::Todo::Create1752 is expected to require graphql authorizations :update_alert_management_alert1753 #resolve1754 behaves like an incident management tracked event1755 .track_event1756 tracks the event using redis1757 behaves like Snowplow event tracking with RedisHLL context1758 behaves like Snowplow event tracking1759 is emitted1760 when user does not have permissions1761 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable1762 when project is invalid1763 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable1764 when alert is invalid1765 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable1766 when the create service yields errors1767 is expected not to change `Todo.count`1768 is expected to eq ["error"]1769 with valid inputs1770 creates a new todo1771 is expected to eq {:alert=>#<AlertManagement::Alert id:1 namespace72/project-77^alert#1>, :errors=>[], :todo=>#<Todo id...20 09:07:57.815114000 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil>}1772WorkItems::WidgetDefinition1773 # order random1774 #widget_class1775 returns widget class based on widget_type1776 returns nil if there is no class for the widget_type1777 returns nil if there is no class for the widget_type1778 associations1779 is expected to belong to namespace required: false1780 is expected to belong to work_item_type required: false1781 validations1782 is expected to validate that :name cannot be empty/falsy1783 is expected to validate that :name is case-insensitively unique within the scope of :namespace_id and :work_item_type_id1784 is expected to validate that the length of :name is at most 2551785 with some widgets disabled1786 .available_widgets1787 returns all global widgets excluding the disabled ones1788 returns all global widgets if there is at least one global widget definition which is enabled1789 .widget_classes1790 returns all widget classes no matter if disabled or not1791Gitlab::ImportExport::RepoSaver1792 bundle a project Git repo1793 bundles the repo successfully1794 creates the directory for the repository1795 when the repo is empty1796 bundles the repo successfully1797Tree1798 #readme1799 returns nil when repository does not contains a README file1800 returns nil when repository does not contains a previewable README file1801 returns README when repository contains a previewable README file1802 returns first previewable README when repository contains more than one1803 returns first plain text README when repository contains more than one1804 prioritizes previewable README file over one in plain text1805 #cursor1806 is expected to be an instance of Gitaly::PaginationCursor1807AlertManagement::Alerts::Todo::CreateService1808 #execute1809 when the user is anonymous1810 behaves like permissions error1811 returns an error1812 when the user does not have permission1813 behaves like permissions error1814 returns an error1815 when user has permission1816 creates a todo1817 returns the alert and todo in the payload1818 when the user has a marked todo for the alert1819 when todo is pending1820 does not create a todo1821 returns an error1822 when todo is done1823 is expected to equal true1824 is expected to change `Todo.count` by 11825gitlab:db:decomposition:connection_status1826 # order random1827 when separate ci database is not configured1828 when PostgreSQL max_connections is too low1829 suggests to increase it (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)1830 when PostgreSQL max_connections is high enough1831 only shows current status (PENDING: Skipping because some of the extra databases [:ci, :main_clusterwide] are setup)1832 when separate ci database is configured1833 does not show connection information1834Sidebars::UserSettings::Menus::AccessTokensMenu1835 # order random1836 behaves like User settings menu1837 does not contain any sub menu1838 renders the correct link1839 renders the correct title1840 renders the correct icon1841 defines correct active route1842 #render?1843 when personal access tokens are disabled1844 when user is logged in1845 does not render1846 when user is not logged in1847 does not render1848 when personal access tokens are enabled1849 when user is logged in1850 renders1851 when user is not logged in1852 does not render1853Integrations::Pushover1854 Validations1855 when integration is active1856 is expected to validate that :api_key cannot be empty/falsy1857 is expected to validate that :user_key cannot be empty/falsy1858 is expected to validate that :priority cannot be empty/falsy1859 when integration is inactive1860 is expected not to validate that :api_key cannot be empty/falsy1861 is expected not to validate that :user_key cannot be empty/falsy1862 is expected not to validate that :priority cannot be empty/falsy1863 Execute1864 calls Pushover API1865 #avatar_url1866 returns the avatar image path1867Resolvers::TreeResolver1868 is expected to have nullable GraphQL type Tree1869 #resolve1870 resolves to a tree1871 resolve to a recursive tree1872 when repository does not exist1873 returns nil1874Sidekiq::Worker1875 for sidekiq workers1876 behaves like a forbiddable operation within a transaction1877 allows the operation outside of a transaction1878 forbids the operation within a transaction1879 allows the oepration within a transaction if skipped1880 forbids the operation if it is within a Ci::ApplicationRecord transaction1881 for mailers1882 behaves like a forbiddable operation within a transaction1883 allows the operation outside of a transaction1884 forbids the operation within a transaction1885 allows the oepration within a transaction if skipped1886 forbids the operation if it is within a Ci::ApplicationRecord transaction1887Gitlab::GithubImport::Stage::ImportIssueEventsWorker1888 behaves like Gitlab::GithubImport::StageMethods1889 .sidekiq_retries_exhausted1890 tracks the exception and marks the import as failed1891 #import1892 when stage is enabled1893 imports issue events1894 when stage is disabled1895 skips issue events import and calls next stage1896Gitlab::RequestContext1897 is expected to have attributes {:client_ip => nil, :request_start_time => nil, :start_thread_cpu_time => nil}1898 .start_request_context1899 sets the client IP1900 sets the spam params1901 sets the request start time1902 .start_thread_context1903 sets the thread cpu time1904 sets the thread memory allocations1905 #request_deadline1906 sets the time to 57 seconds in the future1907 returns nil if there is no start time1908 #ensure_request_deadline_not_exceeded!1909 does not raise an error when there was no deadline1910 does not raise an error if the deadline is in the future1911 raises an error when the deadline is in the past1912Gitlab::GithubImport::StageMethods1913 #perform1914 returns if no project could be found1915 returns if the import state is no longer in progress1916 imports the data when the project exists1917 logs error when import fails1918 #try_import1919 imports the project1920 reschedules the worker if RateLimitError was raised1921 #find_project1922 returns a Project for an existing ID1923 returns nil for a project that failed importing1924 returns nil for a non-existing project ID1925CarrierWave::Uploader::Url1926 # order random1927 #url1928 when file responds to url1929 returns nil when the file.url is empty1930 returns the given file url1931 passes any given options to the file url method1932 when file responds to path1933 when the asset host is a string1934 prefix the path with the asset host1935 when the asset host responds to call1936 prefix the path with the asset host1937 when asset_host is empty1938 when base_path is empty1939 returns the file path1940 when base_path is not empty1941 returns the file path prefixed with the base_path1942 when file does not respond to either url nor path1943 returns nil1944Users::MigrateRecordsToGhostUserInBatchesService1945 # order random1946 #execute1947 stops when execution time limit reached1948 calls Users::MigrateRecordsToGhostUserService1949 process jobs ordered by the consume_after timestamp1950 reschedules job in case of an error1951Pajamas::CardComponent1952 slots1953 renders card header1954 renders card body1955 renders footer1956 with defaults1957 does not have a header or footer1958 renders the card and body1959 with custom options1960 renders card options1961 renders header options1962 renders body options1963 renders footer options1964Gitlab::PipelineScopeCounts1965 has policy class1966 has expected attributes1967 with large amount of pipelines1968 sets the PIPELINES_COUNT_LIMIT constant to a value of 1_0001969 when there are more records than the limit1970 limits the found items1971AuthorizedProjectUpdate::UserRefreshWithLowUrgencyWorker1972 is labeled as low urgency1973 behaves like refreshes user's project authorizations1974 #perform1975 refreshes user's authorized projects1976 when the user is not found1977 does nothing1978 behaves like an idempotent worker1979 is labeled as idempotent1980 performs multiple times sequentially without raising an exception1981 does not change authorizations when run twice1982Users::ActivateService1983 # order random1984 #execute1985 when successful1986 returns success status1987 changes the user's state1988 creates a log entry1989 when the user is already active1990 returns success result1991 does not change the user's state1992 when user activation fails1993 returns an unprocessable entity error1994 when user is not an admin1995 returns permissions error message1996RuboCop::Cop::RSpec::BeSuccessMatcher1997 # order random1998 using is_expected.to be_successful call1999 does not register an offense2000 using is_expected.not_to be_successful call2001 does not register an offense2002 using expect(response).to_not be_success call2003 registers an offense and corrects2004 using is_expected.to_not be_success call2005 registers an offense and corrects2006 using expect(response).not_to be_success call2007 registers an offense and corrects2008 using expect(response).to be_success call2009 registers an offense and corrects2010 using is_expected.to be_success call2011 registers an offense and corrects2012 using expect(response).to_not be_successful call2013 does not register an offense2014 using is_expected.to_not be_successful call2015 does not register an offense2016 using expect(response).to be_successful call2017 does not register an offense2018 using expect(response).not_to be_successful call2019 does not register an offense2020 using is_expected.not_to be_success call2021 registers an offense and corrects2022Gitlab::JiraImport::Stage::FinishImportWorker2023 modules2024 behaves like include import workers modules2025 is expected to includes the ApplicationWorker module2026 is expected to includes the Gitlab::JiraImport::QueueOptions module2027 is expected to includes the Gitlab::JiraImport::ImportWorker module2028 #perform2029 when import did not start2030 behaves like cannot do Jira import2031 does not advance to next stage2032 when import started2033 changes import state to finished2034 saves imported issues counts2035Mutations::IncidentManagement::TimelineEventTag::Create2036 # order random2037 is expected to require graphql authorizations :admin_incident_management_timeline_event_tag2038 #resolve2039 when user has permission to create timeline event tag2040 adds the tag to the project2041 when TimelineEventTags::CreateService responds with an error2042 returns errors2043 when user has no permissions to create tags on a project2044 raises an error2045X509CertificateRevokeWorker2046 #perform2047 with a revoked certificate2048 is labeled as idempotent2049 performs multiple times sequentially without raising an exception2050 executes the revoke service2051 executes the revoke service2052GoogleCloud::ServiceAccountsService2053 find_for_project2054 when a project does not have GCP service account vars2055 returns an empty list2056 when a project has GCP service account ci vars2057 returns a list of service accounts2058 add_for_project2059 saves GCP creds as project CI vars2060 replaces previously stored CI vars with new CI vars2061 underlying project CI vars must be protected as per value2062Gitlab::BitbucketServerImport::Importers::PullRequestImporter2063 # order random2064 #execute2065 imports the merge request correctly2066 logs its progress2067 when the `bitbucket_server_user_mapping_by_username` flag is disabled2068 imports reviewers correctly2069 merge request diff head_commit_sha2070 when a commit with the source_branch_sha exists2071 is equal to the source_branch_sha2072 when a commit with the source_branch_sha does not exist2073 is nil2074 when a commit containing the sha in the message exists2075 is equal to the sha2076FindJhBranch2077 # order random2078 #run2079 when it is not a merge request2080 returns JH_DEFAULT_BRANCH2081 when it is a merge request2082 when there is a corresponding JH branch2083 returns the corresponding JH branch name2084 when there is no corresponding JH branch2085 returns the default JH branch2086 when it is targeting a default branch2087 when there is a corresponding JH stable branch2088 returns the corresponding JH stable branch2089 when there is no corresponding JH stable branch2090 raises FindJhBranch::BranchNotFound2091 when it is not targeting the default branch2092 returns the default JH branch2093Banzai::Filter::References::AbstractReferenceFilter2094 #data_attributes_for2095 is not an XSS vector2096 abstract methods2097 #find_object2098 raises NotImplementedError2099 #url_for_object2100 raises NotImplementedError2101CronFreezePeriodTimezoneValidator2102 freeze_start: "0 23 * * 5", freeze_end: "0 7 * * 1", is_valid: true2103 crontab validation2104 freeze_start: "0 23 * * 5", freeze_end: "invalid", is_valid: false2105 crontab validation2106 freeze_start: "invalid", freeze_end: "0 7 * * 1", is_valid: false2107 crontab validation2108Gitlab::Usage::Metrics::Instrumentations::RedisMetric2109 raises an exception if event option is not present2110 raises an exception if prefix option is not present2111 behaves like a correct instrumented metric value2112 has correct value2113 children classes2114 availability not defined2115 returns default availability2116 availability defined2117 returns defined availability2118 with usage prefix disabled2119 behaves like a correct instrumented metric value2120 has correct value2121 with prefix disabled2122 behaves like a correct instrumented metric value2123 has correct value2124WorkItems::Widgets::Description2125 .type2126 is expected to eq :description2127 #type2128 is expected to eq :description2129 #description2130 is expected to eq "Title"2131 #edited?2132 is expected to be truthy2133 #last_edited_at2134 is expected to eq 2023-10-10 09:08:32.122575000 +00002135 #last_edited_by2136 when the work item is edited2137 when last edited user still exists in the DB2138 is expected to eq #<User id:173 @user70>2139 when last edited user no longer exists2140 is expected to eq #<User id:175 @ghost>2141 when the work item is not edited yet2142 is expected to be nil2143WorkItems::Widgets::LabelsService::UpdateService2144 # order random2145 #prepare_update_params2146 when params are set2147 sets params correctly2148 and user doesn't have permissions to update labels2149 removes label params2150 when widget does not exist in new type2151 sets correct params to remove work item labels2152Gitlab::Import::MergeRequestCreator2153 #execute2154 merge request already exists2155 updates the data2156 new merge request2157 creates a new merge request2158TestSuiteComparerEntity2159 #as_json2160 when head suite has a newly failed test case which does not exist in base2161 contains correct compared test suite details2162 when head suite has a new error test case which does not exist in base2163 contains correct compared test suite details2164 when head suite still has a failed test case which failed in base2165 contains correct compared test suite details2166 when head suite has a success test case which failed in base2167 contains correct compared test suite details2168 when head suite has suite error2169 contains suite error for head suite2170 when base suite has suite error2171 contains suite error for head suite2172 when base and head suite both have suite errors2173 contains suite error for head suite2174Gitlab::Config::Entry::Validator2175 delegated validator2176 when node is valid2177 validates attribute in node2178 returns no errors2179 when node is invalid2180 validates attribute in node2181 returns errors2182GoogleCloud::GetCloudsqlInstancesService2183 when project has no registered cloud sql instances2184 result is empty2185 when project has registered cloud sql instance2186 result is grouped by environment2187Gitlab::Middleware::Speedscope2188 #call2189 when flamegraph is not requested2190 behaves like returns original response2191 returns original response2192 when flamegraph requested2193 when user is not allowed2194 behaves like returns original response2195 returns original response2196 when user is allowed2197 returns a flamegraph2198 when the stackprof_mode parameter is set and valid2199 runs StackProf in the mode specified in the stackprof_mode parameter2200 when the stackprof_mode parameter is not set2201 runs StackProf in wall mode2202 when the stackprof_mode parameter is invalid2203 runs StackProf in wall mode2204 when the stackprof_mode parameter is set to object mode2205 runs StackProf with an interval of 1002206 when the stackprof_mode parameter is not set to object mode2207 runs StackProf with an interval of 10_1002208Gitlab::ImportExport::DesignRepoSaver2209 bundle a design Git repo2210 bundles the repo successfully2211 when the repo is empty2212 bundles the repo successfully2213PersonalAccessTokens::ExpiredNotificationWorker2214 #perform2215 when a token has expired2216 uses notification service to send email to the user2217 updates notified column2218 when token has expired in the past2219 behaves like expiry notification is not required to be sent for the token2220 is expected not to receive access_token_expired(#<User id:198 @user85>, ["PAT 4"]) 0 times2221 when token is impersonated2222 behaves like expiry notification is not required to be sent for the token2223 is expected not to receive access_token_expired(#<User id:199 @user86>, ["PAT 5"]) 0 times2224 when token is revoked2225 behaves like expiry notification is not required to be sent for the token2226 is expected not to receive access_token_expired(#<User id:200 @user87>, ["PAT 6"]) 0 times2227RecaptchaHelper2228 .show_recaptcha_sign_up?2229 is expected to eq true2230 when setting is disabled2231 is expected to eq false2232 when it is a QA request2233 is expected to eq false2234 .recaptcha_enabled_on_login?2235 is expected to eq true2236 when setting is disabled2237 is expected to eq false2238 when it is a QA request2239 is expected to eq false2240Mutations::Boards::Lists::Create2241 behaves like board lists create mutation2242 #ready?2243 raises an error if required arguments are missing2244 raises an error if too many required arguments are specified2245 #resolve2246 with proper permissions2247 backlog list2248 creates one and only one backlog2249 label list2250 creates a new label board list2251 when label not found2252 returns an error2253 without proper permissions2254 raises an error2255Auth::DependencyProxyAuthenticationService2256 #execute2257 dependency proxy is not enabled2258 behaves like returning2259 returns dependency proxy not enabled2260 without a user2261 behaves like returning2262 returns access forbidden2263 with a deploy token as user2264 behaves like returning a token2265 returns a token2266 with a user2267 behaves like returning a token2268 returns a token2269Gitlab::BitbucketServerImport::ImportLfsObjectWorker2270 # order random2271 behaves like Gitlab::BitbucketServerImport::ObjectImporter2272 .sidekiq_retries_exhausted2273 notifies the waiter2274 #perform2275 when project does not exist2276 behaves like notifies the waiter2277 is expected to receive notify("key", anything, {:ttl=>604800}) 1 time2278 when project has import started2279 calls the importer2280 behaves like notifies the waiter2281 is expected to receive notify("key", anything, {:ttl=>604800}) 1 time2282 when project import has been cancelled2283 does not call the importer2284 behaves like notifies the waiter2285 is expected to receive notify("key", anything, {:ttl=>604800}) 1 time2286Resolvers::DeploymentResolver2287 # order random2288 #resolve2289 finds the deployment2290 does not find the deployment if the IID does not match2291Gitlab::Ci::Variables::Downstream::ExpandableVariableGenerator2292 # order random2293 #for2294 when given a variable without interpolation2295 returns an array containing the variable2296 when given a variable with interpolation2297 returns an array containing the expanded variables2298 when given a variable with nested interpolation2299 returns an array containing the expanded variables2300 when given a variable with expansion on a file variable2301 when expand_file_refs is false2302 returns an array containing the unexpanded variable and the file variable dependency2303 when expand_file_refs is true2304 returns an array containing the expanded variables2305Gitlab::Diff::StatsCache2306 VERSION is set2307 #read2308 returns the expected stats2309 #write_if_empty2310 when the cache already exists2311 does not write the stats2312 when the cache does not exist2313 writes the stats2314 when given non utf-8 characters2315 writes the stats2316 when given empty stats2317 does not write the stats2318 #clear2319 clears cache2320 with multiple cache versions2321 does not read from a stale cache2322profiles/keys/_form.html.haml2323 when the form partial is used2324 renders the form with the correct action2325 has the key field2326 has the title field2327 has the usage type field2328 has the expires at field2329 has the validation warning2330 has the submit button2331MergeRequestCurrentUserEntity2332 as json2333 exposes needed attributes2334GroupDeployKeysGroupPolicy2335 edit a group deploy key for a given group2336 is allowed when the user is an owner of this group2337 is not allowed when the user is not an owner of this group2338Ci::BuildFinishedWorker2339 #perform2340 when build exists2341 calculates coverage and calls hooks2342 when build is failed2343 adds a todo2344 when a build can be auto-retried2345 does not add a todo2346 when build has a chat2347 schedules a ChatNotification job2348 when it has a token2349 removes the token2350 when build does not exist2351 does not raise exception2352Gitlab::Ci::Status::Build::Canceled2353 #illustration2354 is expected to include :image, :size, and :title2355 .matches?2356 when build is canceled2357 is a correct match2358 when build is not canceled2359 does not match2360Taskable2361 .get_tasks2362 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"- [x]\", source=\"Second item\">", "#<struct TaskList::Item checkbox_text=\"* [x]\", source=\"First item\">", "#<struct TaskList::Item checkbox_text=\"* [ ]\", source=\"Second item\">", "#<struct TaskList::Item checkbox_text=\"1. [ ]\", source=\"Numbered 1\">", "#<struct TaskList::Item checkbox_text=\"2) [x]\", source=\"Numbered 2\">"]2363 with single line comments2364 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"only task item\">"]2365 #task_list_items2366 issuable_type: :issue2367 when description is present2368 gets tasks from markdown2369 when description is blank2370 returns empty array2371 does not try to get tasks from markdown2372 issuable_type: :merge_request2373 when description is present2374 gets tasks from markdown2375 when description is blank2376 returns empty array2377 does not try to get tasks from markdown2378Types::CustomerRelations::ContactStateCountsType2379 is expected to eq "ContactStateCounts"2380 is expected to have graphql fields "all", "active", and "inactive"2381 is expected to require graphql authorizations :read_crm_contact2382Ml::CandidateMetric2383 associations2384 is expected to belong to candidate required: false2385 scope :latest2386 fetches only the last metric for the name2387Gitlab::Pagination::Keyset::InOperatorOptimization::Strategies::RecordLoaderStrategy2388 #initializer_columns2389 returns a NULL table row as the result column2390 #columns2391 uses the finder query to load the row in the result column2392 #final_projections2393 when model does not have ignored columns2394 does not specify the selected column names2395 when model has ignored columns2396 specifies the selected column names2397CohortsService2398 #execute2399 returns a list of user cohorts2400layouts/snippets2401 # order random2402 sidebar2403 when signed in2404 renders the "Your work" sidebar2405 when not signed in2406 renders no sidebar2407Sidebars::Search::Panel2408 # order random2409 behaves like a panel instantiable by the anonymous user2410 is expected to be a kind of Sidebars::Search::Panel2411 #aria_label2412 returns the correct aria label2413 #super_sidebar_context_header2414 returns a hash with the correct title and icon2415 behaves like a panel with uniquely identifiable menu items2416 all menu_items have unique item_id2417 all menu_items have an item_id2418Types::Ci::DetailedStatusType2419 is expected to eq "DetailedStatus"2420 has all fields2421 id field2422 correctly renders the field2423 action field2424 correctly renders the field2425Gitlab::Ci::Reports::CoverageReport2426 is expected to eq {}2427 #empty?2428 when no file has been added2429 is expected to equal true2430 when file has been added2431 is expected to equal false2432 #pick2433 returns only picked files while ignoring nonexistent ones2434 #add_file2435 when providing two individual files2436 initializes a new test suite and returns it2437 when providing the same files twice2438 with different line coverage2439 initializes a new test suite and returns it2440 with identical line coverage2441 initializes a new test suite and returns it2442PersonalAccessTokenSerializer2443 #represent2444 can render a single token2445 can render a collection of tokens2446Projects::BatchOpenIssuesCountService2447 #refresh_cache_and_retrieve_data2448 when cache is clean2449 refreshes cache keys correctly2450Gitlab::Cache2451 #fetch_once2452 fetches from the cache once2453 always returns from the request store2454 .delete2455 calls Rails.cache.delete2456Gitlab::GitAuditEvent2457 # order random2458 #send_audit_event2459 with successfully sending2460 when player is a regular user2461 sends git audit event2462 when player is ::API::Support::GitAccessActor2463 sends git audit event2464 when user is blank2465 does not send git audit event2466 when project is blank2467 does not send git audit event2468StatAnchorsHelper2469 #stat_anchor_attrs2470 when anchor is a link2471 returns the proper attributes2472 when anchor is not a link2473 when class_modifier is set2474 returns the proper attributes2475 when class_modifier is not set2476 returns the proper attributes2477 when itemprop is not set2478 returns the itemprop attributes2479 when itemprop is set set2480 returns the itemprop attributes2481 when data is not set2482 returns the data attributes2483 when itemprop is set2484 returns the data attributes2485Packages::Debian::ParseDebian822Service2486 with dpkg-deb --field output2487 return as expected, preserving order2488 with control file2489 return as expected, preserving order2490 with empty input2491 return a empty hash2492 with unexpected continuation line2493 raise error2494 with duplicate field2495 raise error2496 with incorrect input2497 raise error2498 with duplicate section2499 raise error2500Gitlab::SQL::CTE2501 #to_arel2502 when relation is an ActiveRecord::Relation2503 generates an Arel relation for the CTE body2504 when relation is a String2505 generates an Arel relation for the CTE body2506 #alias_to2507 returns an alias for the CTE2508 #apply_to2509 applies a CTE to an ActiveRecord::Relation2510 behaves like CTE with MATERIALIZED keyword examples2511 adding MATERIALIZE to the CTE2512 adds MATERIALIZE keyword2513 when materialized is disabled2514 does not add MATERIALIZE keyword2515MergeRequests::PipelineEntity2516 #as_json2517 contains required fields2518 returns presented coverage2519 excludes coverage data when disabled2520Doorkeeper::OpenidConnect::DiscoveryController routing2521 to #provider2522 to #webfinger2523 to #keys2524Doorkeeper::OpenidConnect::UserinfoController routing2525 to #show2526 to #show2527Tooling::Helpers::FileHandler2528 # order random2529 #write_array_to_file2530 when the output file does not exist2531 creates the file2532 when the output file is empty2533 writes the correct content to the file2534 when the content array is not sorted2535 sorts the array before writing it to file2536 when the output file is not empty2537 appends the correct content to the file2538 when the append flag is set to false2539 overwrites the previous content2540 #read_array_from_file2541 when the input file does not exist2542 creates the file2543 when the input file is not empty2544 returns the content of the file in an array2545Gitlab::GithubImport::SequentialImporter2546 #execute2547 imports a project in sequence2548 raises an error2549Alerting::ProjectAlertingSetting2550 Associations2551 is expected to belong to project required: false2552 #token2553 when set2554 reads the token2555 when not set2556 generates a token before validation2557 #sync_http_integration after_save callback2558 with corresponding HTTP integration2559 syncs the attribute2560 without corresponding HTTP integration2561 does not sync the attribute or execute extra queries2562Types::Namespace::PackageSettingsType2563 is expected to eq "PackageSettings"2564 is expected to eq "Namespace-level Package Registry settings"2565 is expected to require graphql authorizations :admin_package2566 includes package setting fields2567 maven_duplicate_exception_regex field2568 is expected to have graphql type Types::UntrustedRegexp2569MergeRequests::Mergeability::CheckCiStatusService2570 #execute2571 when the merge request is in a mergable state2572 returns a check result with status success2573 when the merge request is not in a mergeable state2574 returns a check result with status failed2575 #skip?2576 when skip check is true2577 returns true2578 when skip check is false2579 returns false2580 #cacheable?2581 returns false2582BatchedGitRefUpdates::CleanupSchedulerService2583 # order random2584 #execute2585 schedules ProjectCleanupWorker for each project in pending BatchedGitRefUpdates::Deletion2586 returns stats2587 acquires a lock to avoid running duplicate instances2588 limits to MAX_PROJECTS before it stops2589Types::WorkItems::LinkedItemType2590 # order random2591 exposes the expected fields2592 is expected to eq "LinkedWorkItemType"2593Types::DiffRefsType2594 is expected to eq "DiffRefs"2595 is expected to have graphql fields :head_sha, :base_sha, and :start_sha2596 is expected to be non null2597 is expected not to be non null2598 is expected to be non null2599Gitlab::Usage::Metrics::Instrumentations::ServicePingFeaturesMetric2600 usage_ping_features_enabled: true, expected_value: true2601 behaves like a correct instrumented metric value2602 has correct value2603 usage_ping_features_enabled: false, expected_value: false2604 behaves like a correct instrumented metric value2605 has correct value2606Types::DurationType2607 presents information as a floating point number2608 accepts integers as input2609 accepts floats as input2610 rejects nil2611admin/application_settings/_repository_storage.html.haml2612 with storage weights configured2613 lists storages with weight2614 lists storages without weight2615 lists only configured storages2616BulkImports::RelationBatchExportWorker2617 # order random2618 #perform2619 is labeled as idempotent2620 performs multiple times sequentially without raising an exception2621 executes RelationBatchExportService2622Achievements::DestroyUserAchievementService2623 # order random2624 #execute2625 when user does not have permission2626 returns an error2627 when user has permission2628 deletes the achievement2629JiraConnect::SubscriptionEntity2630 contains all necessary elements of the subscription2631Gitlab::Changelog::Generator2632 #add2633 generates the Markdown for the first release2634 generates the Markdown for a newer release2635 generates the Markdown for a patch release2636 generates the Markdown for an old release2637Gitlab::Database::QueryAnalyzers::Ci::PartitioningRoutingAnalyzer2638 # order random2639 when ci_partitioning_analyze_queries is enabled2640 when analyzing targeted tables2641 when querying a non routing table2642 tracks exception2643 raises RoutingTableNotUsedError2644 when updating a record2645 raises RoutingTableNotUsedError2646 when inserting a record2647 raises RoutingTableNotUsedError2648 when analyzing non targeted table2649 does not raise error2650 when ci_partitioning_analyze_queries is disabled2651 does not analyze the query2652Gitlab::GithubImport::Stage::ImportAttachmentsWorker2653 # order random2654 behaves like Gitlab::GithubImport::StageMethods2655 .sidekiq_retries_exhausted2656 tracks the exception and marks the import as failed2657 #import2658 imports attachments2659 when stage is disabled2660 skips release attachments import and calls next stage2661GoogleCloud::EnableCloudRunService2662 when a project does not have any gcp projects2663 returns error2664 when a project has 3 gcp projects2665 enables cloud run, artifacts registry and cloud build2666PersonalAccessTokens::RevokeTokenFamilyService2667 # order random2668 #execute2669 revokes the latest token from the chain of rotated tokens2670 does not revoke any active token not in the pat family2671RuboCop::Cop::Migration::ComplexIndexesRequireName2672 # order random2673 when outside migration2674 registers no offenses2675 when in migration2676 when creating complex indexes as part of create_table2677 when indexes are configured with an options hash, but no name2678 registers an offense2679 when indexes are configured with an options hash and name2680 registers no offense2681 when indexes are added to an existing table2682 when indexes are configured with an options hash, but no name2683 registers an offense2684 when indexes are configured with an options hash and a name2685 registers no offenses2686Bitbucket::Paginator2687 items2688 return items and raises StopIteration in the end2689Types::GroupMemberType2690 is expected to expose permissions using Types::PermissionTypes::Group2691 is expected to eq "GroupMember"2692 is expected to require graphql authorizations :read_group2693 has the expected fields2694ServicePing::PermitDataCategories2695 #execute2696 when usage ping setting is set to true2697 returns all categories2698 when usage ping setting is set to false2699 returns all categories2700RuboCop::Cop::Migration::BackgroundMigrationMissingActiveConcern2701 # order random2702 in ee background migration2703 when scope_to is not used inside prepended block2704 does not register any offenses2705 when scope_to is used inside prepended block2706 does not register any offenses if the module does extend ActiveSupport::Concern2707 registers an offense if the module does not extend ActiveSupport::Concern2708 when outside of a migration2709 behaves like offense is not registered2710 does not register any offenses2711 in non-ee background migration2712 behaves like offense is not registered2713 does not register any offenses2714Gitlab::QueryLimiting::ActiveSupportSubscriber2715 #sql2716 increments the number of executed SQL queries2717 when the query is actually a rails cache hit2718 does not increment the number of executed SQL queries2719PrometheusAdapter2720 #build_query_args2721 when active record models are included2722 serializes by id2723 when args are safe for serialization2724 does nothing2725Types::Security::CodequalityReportsComparer::ReportType2726 # order random2727 is expected to eq "CodequalityReportsComparerReport"2728 has expected fields2729Members::CreatorService2730 #execute2731 raises error for new member on authorization check implementation2732 raises error for an existing member on authorization check implementation2733Gitlab::MarkdownCache::Redis::Store2734 .bulk_read2735 returns a hash of values from store2736 #save2737 stores updates to html fields and version2738 #read2739 reads the html fields and version from redis if they were stored2740 is mared loaded after reading2741Packages::PipelinesFinder2742 # order random2743 #execute2744 returns only pipelines that match the given IDs, in descending order2745 returns only selected columns2746Types::Ci::PipelineScheduleVariableType2747 # order random2748 is expected to eq "PipelineScheduleVariable"2749 contains attributes related to a pipeline message2750 is expected to require graphql authorizations :read_pipeline_schedule_variables2751 is expected to contain exactly Types::Ci::VariableInterface2752RuboCop::Cop::Gitlab::KeysFirstAndValuesFirst2753 # order random2754 behaves like inspect use of keys or values first2755 .values.first2756 flags and autocorrects2757 does not flag unrelated code2758 behaves like inspect use of keys or values first2759 .keys.first2760 flags and autocorrects2761 does not flag unrelated code2762Types::InvitationInterface2763 exposes the expected fields2764 .resolve_type2765 for project member2766 is expected to equal Types::ProjectInvitationType2767 for group member2768 is expected to equal Types::GroupInvitationType2769 for an unknown type2770 raises an error2771Gitlab::GithubImport::Attachments::ImportReleaseWorker2772 # order random2773 #import2774 imports an release attachments2775RuboCop::Cop::Gitlab::BulkInsert2776 # order random2777 flags the use of ::ApplicationRecord.legacy_bulk_insert2778 flags the use of ApplicationRecord.legacy_bulk_insert2779Types::DescriptionVersionType2780 # order random2781 is expected to require graphql authorizations :read_issuable2782 is expected to have graphql field :id2783 is expected to have graphql field :description2784RuboCop::Cop::Migration::BackgroundMigrations2785 # order random2786 when requeue_background_migration_jobs_by_range_at_intervals is used2787 registers an offense2788 when queue_background_migration_jobs_by_range_at_intervals is used2789 registers an offense2790 when migrate_in is used2791 registers an offense2792devise/shared/_error_messages2793 # order random2794 Error messages2795 with errors2796 shows errors2797 without errors2798 does not show errors2799Types::CustomerRelations::OrganizationType2800 is expected to eq "CustomerRelationsOrganization"2801 is expected to have graphql fields :id, :name, :default_rate, :description, :active, :created_at, and :updated_at2802 is expected to require graphql authorizations :read_crm_organization2803DiffLineSerializer2804 #to_json2805 matches the schema2806 when lines are parallel2807 matches the schema2808TodosDestroyer::DestroyedDesignsWorker2809 calls the Todos::Destroy::DesignService with design_ids parameter2810Gitlab::Database::Migrations::Observers::TotalDatabaseSizeChange2811 records the size change2812 out of order calls2813 does not record anything if before size is unknown2814 does not record anything if after size is unknown2815Gitlab::Import::Errors2816 # order random2817 .merge_nested_errors2818 merges nested collection errors2819Atlassian::JiraConnect::Serializers::BaseEntity2820 generates the update_sequence_id2821 with update_sequence_id option2822 uses the custom update_sequence_id2823API::Entities::PublicGroupDetails2824 #as_json2825 includes public group fields2826RuboCop::Cop::RSpec::EnvAssignment2827 # order random2828 with a key using double quotes2829 behaves like an offensive and correction ENV#[]= call2830 registers an offense for `ENV["FOO"] = 'bar'` and corrects2831 with a key using single quotes2832 behaves like an offensive and correction ENV#[]= call2833 registers an offense for `ENV['FOO'] = 'bar'` and corrects2834Types::Tree::TreeType2835 is expected to eq "Tree"2836 is expected to have graphql fields :trees, :submodules, :blobs, and :last_commit2837Gitlab::Asciidoc::Html5Converter2838 convert AsciiDoc to HTML52839 appends user-content- prefix on ref (anchor)2840FeedTokenHelper2841 # order random2842 #generate_feed_token2843 with type :atom2844 returns the current_user's atom feed_token2845 when signed out2846 returns nil2847microsoft_graph_mailer initializer for GitLab2848 # order random2849 when microsoft_graph_mailer is disabled2850 does not configure ActionMailer2851 when microsoft_graph_mailer is enabled2852 configures ActionMailer2853ArchivedAbilities2854 # order random2855 .archived_features2856 returns an array of features to be prevented when archived2857 .archived_abilities2858 returns an array of abilities to be prevented when archived2859GenerateFailedPackageAndTestMrMessage2860 # order random2861 #execute2862 when package-and-test fails2863 successfully creates a discussion2864 when package-and-test is did not fail2865 does not add a discussion2866Types::IssuableSearchableFieldEnum2867 is expected to eq "IssuableSearchableField"2868 exposes all the issuable searchable fields2869Banzai::Filter::OutputSafety2870 when given HTML is safe2871 returns safe HTML2872 when given HTML is not safe2873 returns escaped HTML2874Gitlab::Kubernetes::PodCmd2875 .retry_command2876 constructs string properly2877TodosDestroyer::DestroyedIssuableWorker2878 calls the Todos::Destroy::DestroyedIssuableService2879Pajamas::Concerns::CheckboxRadioOptions2880 #formatted_input_options2881 calls `#format_options` with correct arguments2882Ci::ScheduleDeleteObjectsCronWorker2883 #perform2884 enqueues DeleteObjectsWorker jobs2885Gitlab::Usage::Metrics::Instrumentations::HostnameMetric2886 behaves like a correct instrumented metric value2887 has correct value2888Types::Notes::DiffPositionType2889 exposes the expected fields2890ClusterAgentQueue2891 is expected to eq :deployment_management2892Types::Packages::PackageStatusEnum2893 exposes all package statuses2894API::Entities::Nuget::PackageMetadataCatalogEntry2895 is expected to eq {:@id=>"http://sandbox.com/json/package", :authors=>"Authors", :dependencyGroups=>[], :description=>"...ed=>"2022-10-05T18:40:32.43+00:00", :summary=>"Summary", :tags=>"tag1 tag2 tag3", :version=>"1.2.3"}2896Gitlab::Kubernetes::Kubeconfig::Entry::User2897 #to_h2898 is expected to eq {:name=>"name", :user=>{:token=>"token"}}2899Gitlab::Ci::Variables::Downstream::RawVariableGenerator2900 # order random2901 #for2902 returns an array containing the unexpanded raw variable2903Every metric definition2904 # order random2905 is included in the Usage Ping hash structure2906 only uses .yml and .json formats from metric related files in (ee/)config/metrics directory2907 metrics classes2908 uses all metrics classes2909 with value json schema2910/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER2911/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here2912/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT2913/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here2914 has a valid structure2915auto_explain log contains 1164 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-as-if-foss-single-db-ci-connection-1-28.327.main.ndjson.gz2916took 22.2862880572917auto_explain log contains 1165 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-as-if-foss-single-db-ci-connection-1-28.327.ci.ndjson.gz2918took 21.714262622919Pending: (Failures listed here are expected and do not affect your suite's status)2920 1) gitlab:db:decomposition:connection_status when separate ci database is not configured when PostgreSQL max_connections is too low suggests to increase it2921 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup2922 # ./spec/tasks/gitlab/db/decomposition/connection_status_rake_spec.rb:272923 2) gitlab:db:decomposition:connection_status when separate ci database is not configured when PostgreSQL max_connections is high enough only shows current status2924 # Skipping because some of the extra databases [:ci, :main_clusterwide] are setup2925 # ./spec/tasks/gitlab/db/decomposition/connection_status_rake_spec.rb:412926Finished in 41 minutes 36 seconds (files took 54.18 seconds to load)29271476 examples, 0 failures, 2 pending2928Randomized with seed 346532929[TEST PROF INFO] Time spent in factories: 01:20.147 (3.18% of total time)2930RSpec exited with 0.2931No examples to retry, congrats!2933Running after script...2934$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"2938$ tooling/bin/push_job_metrics || true2939[job-metrics] Pushing job metrics file for the CI/CD job.2940[job-metrics] Pushed 4 CI job metric entries to InfluxDB.2942Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy2944Uploading artifacts...2945auto_explain/: found 3 matching artifact files and directories 2946coverage/: found 5 matching artifact files and directories 2947crystalball/: found 2 matching artifact files and directories 2948WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 2949knapsack/: found 4 matching artifact files and directories 2950rspec/: found 14 matching artifact files and directories 2951WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 2952log/*.log: found 15 matching artifact files and directories 2953WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651464/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com2954WARNING: Retrying... context=artifacts-uploader error=request redirected2955Uploading artifacts as "archive" to coordinator... 201 Created id=5336651464 responseStatus=201 Created token=64_GPD5X2956Uploading artifacts...2957rspec/rspec-*.xml: found 1 matching artifact files and directories 2958WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336651464/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com2959WARNING: Retrying... context=artifacts-uploader error=request redirected2960Uploading artifacts as "junit" to coordinator... 201 Created id=5336651464 responseStatus=201 Created token=64_GPD5X2962Job succeeded