rspec unit pg14 7/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-2.private.runners-manager.gitlab.com/gitlab.com/gitlab-org GaSD-S1F, system ID: s_5651e5b5643b3 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.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:2e09e9db92541ed81b1c00f1d5186f8c262d8b84e8d1755676ea4b25614f30c4 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:afc7bd7a60824044709543a6a700385e412d750d9ab4fc72b427e335e1d0f3ec ...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:a9a90ece30d9630d694ab1997cd103ea8ec729789451b983a75c7b58b0062d45 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:7ef36177d5d0bc554fbb63d8210ae751bcc538bea7905b51d078d9ab90a755fa ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:d0675d033b87382205d08b598a004a99a1f6c4bd377cc86bb6df8957ce7dbb1c for redis:6.2-alpine with digest redis@sha256:740b5c973d1c9eea6e124a3905ba73d32354d0549f98ccc9e67af1af2a9ba478 ...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:24a9e92645b17c878623efd51b7564f81e480bd281e94d7f33971082e0ca80e0 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:ca349d228348f199cb57f574476584f42aca338747393ed93a9032a0261afc4d ...25Running on runner-gasd-s1f-project-278964-concurrent-0 via runner-gasd-s1f-private-1691669758-6c2e377e...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 145438, done. 31remote: Counting objects: 100% (145438/145438), done. 32remote: Compressing objects: 100% (96447/96447), done. 33remote: Total 145438 (delta 63547), reused 98646 (delta 43407), pack-reused 0 34Receiving objects: 100% (145438/145438), 119.87 MiB | 29.90 MiB/s, done.35Resolving deltas: 100% (63547/63547), done.37 * [new ref] refs/pipelines/962009091 -> refs/pipelines/96200909138Checking out 2a9b6857 as detached HEAD (ref is refs/merge-requests/128972/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.zip 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 (4841630955)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4841630955 responseStatus=200 OK token=64_xiyLT48Downloading artifacts for detect-tests (4841630974)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4841630974 responseStatus=200 OK token=64_xiyLT50Downloading artifacts for retrieve-tests-metadata (4841630985)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4841630985 responseStatus=200 OK token=64_xiyLT52Downloading artifacts for setup-test-env (4841630964)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4841630964 responseStatus=200 OK token=64_xiyLT55Using docker image sha256:24a9e92645b17c878623efd51b7564f81e480bd281e94d7f33971082e0ca80e0 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:ca349d228348f199cb57f574476584f42aca338747393ed93a9032a0261afc4d ...56$ echo $FOSS_ONLY57$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb58$ export GOPATH=$CI_PROJECT_DIR/.go59$ mkdir -p $GOPATH60$ source scripts/utils.sh61$ source scripts/prepare_build.sh93Using decomposed database config (config/database.yml.decomposed-postgresql)94Geo DB won't be set up.95Embedding DB won't be set up.107$ source ./scripts/rspec_helpers.sh108$ run_timed_command "gem install knapsack --no-document"109$ gem install knapsack --no-document110Successfully installed knapsack-4.0.01111 gem installed112==> 'gem install knapsack --no-document' succeeded in 0 seconds.113$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"118$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"119$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"120$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house"121SKIP_FLAKY_TESTS_AUTOMATICALLY: 122RETRY_FAILED_TESTS_IN_NEW_PROCESS: true123KNAPSACK_GENERATE_REPORT: true124FLAKY_RSPEC_GENERATE_REPORT: true125KNAPSACK_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.rb126KNAPSACK_LOG_LEVEL: debug127KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_7_28_report.json128FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json129FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_7_28_report.json130NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_7_28_report.json131RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-4841631186.txt132CRYSTALBALL: 133RSPEC_TESTS_MAPPING_ENABLED: 134RSPEC_TESTS_FILTER_FILE: 135Shell set options (set -o) enabled:136braceexpand on137hashall on138interactive-comments on139pipefail on140Running 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-4841631186.json --format RspecJunitFormatter --out rspec/rspec-4841631186.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house -- spec/models/application_setting_spec.rb spec/models/concerns/ci/has_status_spec.rb spec/tasks/gitlab/usage_data_rake_spec.rb spec/lib/gitlab/import_export/group/tree_restorer_spec.rb spec/lib/gitlab/import_export/project/relation_factory_spec.rb spec/serializers/merge_request_widget_entity_spec.rb spec/lib/gitlab/background_migration/backfill_imported_issue_search_data_spec.rb spec/routing/project_routing_spec.rb spec/models/snippet_spec.rb spec/models/diff_note_spec.rb spec/lib/gitlab/background_migration/rebalance_partition_id_spec.rb spec/models/members/project_member_spec.rb spec/lib/gitlab/ci/templates/templates_spec.rb spec/helpers/groups_helper_spec.rb spec/services/verify_pages_domain_service_spec.rb spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb spec/helpers/blob_helper_spec.rb spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb spec/finders/packages/nuget/package_finder_spec.rb spec/models/trending_project_spec.rb spec/helpers/commits_helper_spec.rb spec/services/work_items/parent_links/create_service_spec.rb spec/lib/gitlab/gitaly_client/operation_service_spec.rb spec/lib/gitlab/ci/config/entry/retry_spec.rb spec/lib/gitlab/ci/config/external/mapper/verifier_spec.rb spec/models/application_record_spec.rb spec/models/packages/conan/metadatum_spec.rb spec/lib/gitlab/gitaly_client/with_feature_flag_actors_spec.rb spec/lib/gitlab/ci/variables/collection_spec.rb spec/lib/gitlab/database_spec.rb spec/services/snippets/update_statistics_service_spec.rb spec/lib/gitlab/ci/lint_spec.rb spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb spec/lib/gitlab/quick_actions/extractor_spec.rb spec/models/jira_connect_installation_spec.rb spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb spec/finders/starred_projects_finder_spec.rb spec/models/ssh_host_key_spec.rb spec/lib/gitlab/user_access_snippet_spec.rb spec/lib/gitlab/diff/rendered/notebook/diff_file_spec.rb spec/lib/gitlab/chat/command_spec.rb spec/services/clusters/agents/authorizations/ci_access/refresh_service_spec.rb spec/models/clusters/providers/gcp_spec.rb spec/finders/packages/conan/package_finder_spec.rb spec/models/project_group_link_spec.rb spec/services/clusters/agent_tokens/create_service_spec.rb spec/models/instance_configuration_spec.rb spec/lib/gitlab/ci/trace/archive_spec.rb spec/models/concerns/participable_spec.rb spec/models/concerns/schedulable_spec.rb spec/presenters/snippet_blob_presenter_spec.rb spec/lib/gitlab/background_migration/fix_incoherent_packages_size_on_project_statistics_spec.rb spec/lib/gitlab/jira_import_spec.rb spec/models/ci/runner_manager_build_spec.rb spec/models/concerns/project_features_compatibility_spec.rb spec/lib/gitlab/import_export/project/export_task_spec.rb spec/lib/gitlab/github_import/importer/note_attachments_importer_spec.rb spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb spec/finders/tags_finder_spec.rb spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb spec/finders/packages/go/version_finder_spec.rb spec/lib/gitlab/resource_events/assignment_event_recorder_spec.rb spec/workers/pipeline_process_worker_spec.rb spec/lib/gitlab/api_authentication/token_resolver_spec.rb spec/models/bulk_imports/file_transfer/project_config_spec.rb spec/workers/concerns/reenqueuer_spec.rb spec/models/design_management/design_collection_spec.rb spec/serializers/group_child_serializer_spec.rb spec/lib/uploaded_file_spec.rb spec/views/layouts/signup_onboarding.html.haml_spec.rb spec/models/diff_note_position_spec.rb spec/lib/gitlab/database/async_constraints/migration_helpers_spec.rb spec/graphql/types/user_merge_request_interaction_type_spec.rb spec/lib/gitlab/auth/ldap/adapter_spec.rb spec/models/design_management/action_spec.rb spec/lib/gitlab/pages/url_builder_spec.rb spec/lib/gitlab/ci/project_config_spec.rb spec/lib/bitbucket_server/representation/activity_spec.rb spec/lib/gitlab/ci/config/entry/include_spec.rb spec/services/merge_requests/migrate_external_diffs_service_spec.rb spec/rubocop/migration_helpers_spec.rb spec/lib/gitlab/sanitizers/svg_spec.rb spec/lib/gitlab/usage/service_ping/legacy_metric_metadata_decorator_spec.rb spec/lib/banzai/filter/wiki_link_filter_spec.rb spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb spec/lib/gitlab/ci/parsers/security/sast_spec.rb spec/services/members/unassign_issuables_service_spec.rb spec/lib/gitlab/database/async_constraints/validators/foreign_key_spec.rb spec/lib/gitlab/timeless_spec.rb spec/services/dependency_proxy/auth_token_service_spec.rb spec/rubocop/cop/avoid_return_from_blocks_spec.rb spec/helpers/notifications_helper_spec.rb spec/services/clusters/agent_tokens/revoke_service_spec.rb spec/services/merge_requests/execute_approval_hooks_service_spec.rb spec/rubocop/check_graceful_task_spec.rb spec/presenters/web_hook_log_presenter_spec.rb spec/lib/gitlab/uuid_spec.rb spec/lib/gitlab/sql/recursive_cte_spec.rb spec/services/error_tracking/issue_details_service_spec.rb spec/services/jira_connect_subscriptions/create_service_spec.rb spec/finders/releases/evidence_pipeline_finder_spec.rb spec/tasks/gitlab/shell_rake_spec.rb spec/tooling/danger/sidekiq_queues_spec.rb spec/services/users/upsert_credit_card_validation_service_spec.rb spec/services/tags/destroy_service_spec.rb spec/lib/gitlab/github_import/importer/collaborator_importer_spec.rb spec/graphql/mutations/todos/mark_all_done_spec.rb spec/lib/gitlab/github_import/bulk_importing_spec.rb spec/lib/gitlab/ci/jwt_spec.rb spec/services/ci/job_artifacts/bulk_delete_by_project_service_spec.rb spec/graphql/mutations/container_repositories/destroy_tags_spec.rb spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb spec/lib/gitlab/import_export/avatar_restorer_spec.rb spec/tasks/gitlab/lfs/migrate_rake_spec.rb spec/graphql/mutations/achievements/create_spec.rb spec/workers/ci/archive_trace_worker_spec.rb spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb spec/models/concerns/ignorable_columns_spec.rb spec/services/issuable/import_csv/base_service_spec.rb spec/models/user_agent_detail_spec.rb spec/lib/gitlab/database/migration_helpers/convert_to_bigint_spec.rb spec/lib/gitlab/silent_mode_spec.rb spec/policies/namespaces/project_namespace_policy_spec.rb spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb spec/services/snippets/schedule_bulk_repository_shard_moves_service_spec.rb spec/workers/database/ci_namespace_mirrors_consistency_check_worker_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb spec/services/users/dismiss_project_callout_service_spec.rb spec/services/clusters/agents/authorizations/ci_access/filter_service_spec.rb spec/lib/gitlab/database/postgres_constraint_spec.rb spec/services/environments/destroy_service_spec.rb spec/lib/gitlab/database/type/json_pg_safe_spec.rb spec/finders/award_emojis_finder_spec.rb spec/graphql/mutations/incident_management/timeline_event/promote_from_note_spec.rb spec/models/approval_spec.rb spec/lib/banzai/filter/truncate_visible_filter_spec.rb spec/serializers/import/gitlab_provider_repo_entity_spec.rb spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb spec/workers/concerns/worker_context_spec.rb spec/workers/users/migrate_records_to_ghost_user_in_batches_worker_spec.rb spec/lib/gitlab/metrics/dashboard/repo_dashboard_finder_spec.rb spec/rubocop/cop/safe_params_spec.rb spec/models/cycle_analytics/project_level_stage_adapter_spec.rb spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb spec/tasks/gitlab/ci_secure_files/migrate_rake_spec.rb spec/finders/repositories/changelog_commits_finder_spec.rb spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb spec/workers/redis_migration_worker_spec.rb spec/lib/gitlab/setup_helper/praefect_spec.rb spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_alerts_created_metric_spec.rb spec/services/spam/spam_params_spec.rb spec/lib/sidebars/concerns/link_with_html_options_spec.rb spec/lib/gitlab/template/finders/repo_template_finders_spec.rb spec/models/concerns/vulnerability_finding_helpers_spec.rb spec/graphql/types/clusters/agent_activity_event_type_spec.rb spec/helpers/enable_search_settings_helper_spec.rb spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb spec/lib/gitlab/ci/config/entry/services_spec.rb spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb spec/services/ci/pipeline_schedules/take_ownership_service_spec.rb spec/services/resource_events/synthetic_state_notes_builder_service_spec.rb spec/lib/gitlab/ci/status/pipeline/delayed_spec.rb spec/services/timelogs/delete_service_spec.rb spec/lib/slack/block_kit/incident_management/incident_modal_opened_spec.rb spec/workers/pages_domain_ssl_renewal_worker_spec.rb spec/models/concerns/taskable_spec.rb spec/lib/gitlab/diff/stats_cache_spec.rb spec/services/cohorts_service_spec.rb spec/lib/gitlab/ci/status/running_spec.rb spec/workers/deployments/archive_in_project_worker_spec.rb spec/workers/propagate_integration_inherit_descendant_worker_spec.rb spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb spec/lib/gitlab/import/set_async_jid_spec.rb spec/workers/pipeline_notification_worker_spec.rb spec/serializers/issuable_sidebar_extras_entity_spec.rb spec/workers/gitlab/github_import/stage/import_collaborators_worker_spec.rb spec/support_specs/matchers/event_store_spec.rb spec/models/pages/virtual_domain_spec.rb spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb spec/lib/api/base_spec.rb spec/lib/gitlab/git/commit_stats_spec.rb spec/views/admin/application_settings/_ci_cd.html.haml_spec.rb spec/lib/gitlab/color_schemes_spec.rb spec/workers/schedule_merge_request_cleanup_refs_worker_spec.rb spec/lib/error_tracking/sentry_client_spec.rb spec/rubocop/cop/performance/active_record_subtransactions_spec.rb spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb spec/models/term_agreement_spec.rb spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies_spec.rb spec/services/groups/deploy_tokens/destroy_service_spec.rb spec/services/ci/queue/pending_builds_strategy_spec.rb spec/serializers/integrations/harbor_serializers/repository_entity_spec.rb spec/workers/gitlab/bitbucket_server_import/stage/finish_import_worker_spec.rb spec/rubocop/cop/filename_length_spec.rb spec/presenters/releases/link_presenter_spec.rb spec/lib/gitlab/middleware/rails_queue_duration_spec.rb spec/services/users/repair_ldap_blocked_service_spec.rb spec/lib/gitlab/import_export/after_export_strategy_builder_spec.rb spec/graphql/types/duration_type_spec.rb spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb spec/lib/api/entities/design_management/design_spec.rb spec/services/google_cloud/gcp_region_add_or_replace_service_spec.rb spec/lib/api/entities/bulk_imports/entity_failure_spec.rb spec/rubocop/cop/database/establish_connection_spec.rb spec/models/concerns/packages/downloadable_spec.rb spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb spec/workers/export_csv_worker_spec.rb spec/validators/cron_validator_spec.rb spec/rubocop/cop/migration/add_concurrent_index_spec.rb spec/finders/achievements/achievements_finder_spec.rb spec/graphql/types/projects/jira_service_type_spec.rb spec/views/shared/groups/_dropdown.html.haml_spec.rb spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb spec/graphql/types/snippets/blob_action_enum_spec.rb spec/serializers/serverless/domain_entity_spec.rb spec/graphql/types/notes/discussion_type_spec.rb spec/graphql/types/deployment_tag_type_spec.rb spec/lib/sidebars/concerns/container_with_html_options_spec.rb spec/views/help/drawers.html.haml_spec.rb spec/lib/gitlab/github_import/client_pool_spec.rb spec/graphql/types/design_management/version_type_spec.rb spec/graphql/types/ide_type_spec.rb spec/serializers/access_token_entity_base_spec.rb spec/components/projects/ml/models_index_component_spec.rb spec/graphql/types/work_items/widgets/award_emoji_type_spec.rb spec/lib/api/entities/bulk_import_spec.rb spec/lib/gitlab/quick_actions/dsl_spec.rb spec/rubocop/cop/rspec/web_mock_enable_spec.rb spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb spec/lib/gitlab/database/obsolete_ignored_columns_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/edition_metric_spec.rb spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb spec/lib/gitlab/ci/parsers/coverage/cobertura_spec.rb spec/lib/gitlab/memory/watchdog/handlers/puma_handler_spec.rb spec/rubocop/cop/include_sidekiq_worker_spec.rb spec/initializers/fog_google_https_private_urls_spec.rb spec/workers/namespaces/in_product_marketing_emails_worker_spec.rbKnapsack report generator started!141/builds/gitlab-org/gitlab/ee/app/services/remote_development/service_response_factory.rb:41: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!142/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/create_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!143/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/reconcile_service.rb:38: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!144/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/update_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!145/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:32: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!146/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!147/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!148/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!149/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!150/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!151/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!152/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!153/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!154/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!155/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_flattener.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!156/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!157/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!158/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!159/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!160/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:54: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!161/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:102: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!162/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:126: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!163/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:159: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!164/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:202: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!165/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:235: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!166/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!167/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:52: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!168/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!169/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!170/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!171/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:23: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!172/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!173/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!174/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!175/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/main.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!176/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!177/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!178/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/agent_infos_observer.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!179/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!180/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!181/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_to_infos_converter.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!182/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_validator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!183/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/rails_infos_observer.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!184/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/workspaces_to_rails_infos_converter.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!185/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/orphaned_workspaces_observer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!186/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!187/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_finder.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!188/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!189Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true}190Test environment set up in 0.70793556 seconds191ApplicationSetting192 example at ./spec/models/application_setting_spec.rb:12193 example at ./spec/models/application_setting_spec.rb:13194 is expected to eq nil195 is expected to be valid196 is expected to be present197 is expected to have db column named auto_devops_enabled198 behaves like sanitizable199 includes Sanitizable200 #default_branch_name201 when input includes javascript tags202 gets sanitized203 #default_branch_name validation204 when input contains pre-escaped html entities205 is not valid206 when it contains a path component207 is not valid208 default values209 is expected to eq 1210 is expected to eq {}211 is expected to eq {}212 is expected to eq {}213 is expected to eq 25600214 validations215 is expected to allow :home_page_url to be ‹nil›216 is expected to allow :home_page_url to be ‹"http://example.com"›217 is expected to allow :home_page_url to be ‹"https://example.com"›218 is expected not to allow :home_page_url to be ‹"ftp://example.com"›219 is expected to allow :after_sign_out_path to be ‹nil›220 is expected to allow :after_sign_out_path to be ‹"http://example.com"›221 is expected to allow :after_sign_out_path to be ‹"https://example.com"›222 is expected not to allow :after_sign_out_path to be ‹"ftp://example.com"›223 is expected to allow :commit_email_hostname to be ‹"dev.gitlab.com"›224 is expected not to allow :commit_email_hostname to be ‹"@dev.gitlab"›225 is expected to allow :container_expiration_policies_enable_historic_entries to be ‹true› or ‹false›226 is expected not to allow :container_expiration_policies_enable_historic_entries to be ‹nil›227 is expected to allow :lets_encrypt_notification_email to be ‹"myemail@gitlab.com"›228 is expected to allow :lets_encrypt_notification_email to be ‹nil›229 is expected not to allow :lets_encrypt_notification_email to be ‹"notanemail"›230 is expected not to allow :lets_encrypt_notification_email to be ‹"myemail@example.com"›231 is expected to allow :lets_encrypt_notification_email to be ‹"myemail@test.example.com"›232 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...›233 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...›234 is expected to allow :outbound_local_requests_whitelist to be ‹["111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"]›235 is expected not to allow :outbound_local_requests_whitelist to be ‹["1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"]›236 is expected not to allow :outbound_local_requests_whitelist to be ‹["ğitlab.com"]›237 is expected to allow :outbound_local_requests_whitelist to be ‹["xn--itlab-j1a.com"]›238 is expected not to allow :outbound_local_requests_whitelist to be ‹["<h1></h1>"]›239 is expected to allow :outbound_local_requests_whitelist to be ‹["gitlab.com"]›240 is expected not to allow :outbound_local_requests_whitelist to be ‹nil›241 is expected to allow :outbound_local_requests_whitelist to be ‹[]›242 is expected to allow :static_objects_external_storage_url to be ‹nil›243 is expected to allow :static_objects_external_storage_url to be ‹"http://example.com"›244 is expected to allow :static_objects_external_storage_url to be ‹"https://example.com"›245 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...›246 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...›247 is expected not to allow :protected_paths to be ‹nil›248 is expected to allow :protected_paths to be ‹[]›249 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...›250 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...›251 is expected not to allow :protected_paths_for_get_request to be ‹nil›252 is expected to allow :protected_paths_for_get_request to be ‹[]›253 is expected to allow :push_event_hooks_limit to be ‹3›254 is expected not to allow :push_event_hooks_limit to be ‹"three"›255 is expected not to allow :push_event_hooks_limit to be ‹nil›256 is expected to allow :push_event_activities_limit to be ‹3›257 is expected not to allow :push_event_activities_limit to be ‹"three"›258 is expected not to allow :push_event_activities_limit to be ‹nil›259 is expected to validate that :container_registry_delete_tags_service_timeout looks like an integer greater than or equal to 0260 is expected to validate that :container_registry_cleanup_tags_service_max_list_size looks like an integer greater than or equal to 0261 is expected to validate that :container_registry_data_repair_detail_worker_max_concurrency looks like an integer greater than or equal to 0262 is expected to validate that :container_registry_expiration_policies_worker_capacity looks like an integer greater than or equal to 0263 is expected to allow :container_registry_expiration_policies_caching to be ‹true› or ‹false›264 is expected to validate that :container_registry_import_max_tags_count looks like an integer greater than or equal to 0265 is expected to validate that :container_registry_import_max_retries looks like an integer greater than or equal to 0266 is expected to validate that :container_registry_import_start_max_retries looks like an integer greater than or equal to 0267 is expected to validate that :container_registry_import_max_step_duration looks like an integer greater than or equal to 0268 is expected to validate that :container_registry_pre_import_timeout looks like an integer greater than or equal to 0269 is expected to validate that :container_registry_import_timeout looks like an integer greater than or equal to 0270 is expected to validate that :container_registry_pre_import_tags_rate looks like a number greater than or equal to 0271 is expected not to allow :container_registry_data_repair_detail_worker_max_concurrency to be ‹nil›272 is expected not to allow :container_registry_import_max_tags_count to be ‹nil›273 is expected not to allow :container_registry_import_max_retries to be ‹nil›274 is expected not to allow :container_registry_import_start_max_retries to be ‹nil›275 is expected not to allow :container_registry_import_max_step_duration to be ‹nil›276 is expected not to allow :container_registry_pre_import_timeout to be ‹nil›277 is expected not to allow :container_registry_import_timeout to be ‹nil›278 is expected not to allow :container_registry_pre_import_tags_rate to be ‹nil›279 is expected to allow :container_registry_pre_import_tags_rate to be ‹1.5›280 is expected to validate that :container_registry_import_target_plan cannot be empty/falsy281 is expected to validate that :container_registry_import_created_before cannot be empty/falsy282 is expected to validate that :dependency_proxy_ttl_group_policy_worker_capacity looks like an integer greater than or equal to 0283 is expected not to allow :dependency_proxy_ttl_group_policy_worker_capacity to be ‹nil›284 is expected to validate that :packages_cleanup_package_file_worker_capacity looks like an integer greater than or equal to 0285 is expected not to allow :packages_cleanup_package_file_worker_capacity to be ‹nil›286 is expected to validate that :package_registry_cleanup_policies_worker_capacity looks like an integer greater than or equal to 0287 is expected not to allow :package_registry_cleanup_policies_worker_capacity to be ‹nil›288 is expected to validate that :snippet_size_limit looks like an integer greater than 0289 is expected to validate that :wiki_page_max_content_bytes looks like an integer greater than or equal to 1024290 is expected to allow :wiki_asciidoc_allow_uri_includes to be ‹true› or ‹false›291 is expected not to allow :wiki_asciidoc_allow_uri_includes to be ‹nil›292 is expected to validate that :max_artifacts_size cannot be empty/falsy293 is expected to validate that :max_artifacts_size looks like an integer greater than 0294 is expected to validate that :max_yaml_size_bytes cannot be empty/falsy295 is expected to validate that :max_yaml_size_bytes looks like an integer greater than 0296 is expected to validate that :max_yaml_depth cannot be empty/falsy297 is expected to validate that :max_yaml_depth looks like an integer greater than 0298 is expected to validate that :max_pages_size cannot be empty/falsy299 is expected to validate that :max_pages_custom_domains_per_project cannot be empty/falsy300 is expected to validate that :max_terraform_state_size_bytes cannot be empty/falsy301 is expected to validate that :max_terraform_state_size_bytes looks like an integer greater than or equal to 0302 is expected to allow :user_defaults_to_private_profile to be ‹true› or ‹false›303 is expected not to allow :user_defaults_to_private_profile to be ‹nil›304 is expected to allow :deny_all_requests_except_allowed to be ‹[true, false]›305 is expected not to allow :deny_all_requests_except_allowed to be ‹nil›306 ensures max_pages_size is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum)307 ensures max_pages_custom_domains_per_project is an integer greater than 0 (or equal to 0 to indicate unlimited/maximum)308 is expected to validate that :jobs_per_stage_page_size cannot be empty/falsy309 is expected to validate that :jobs_per_stage_page_size looks like an integer greater than or equal to 0310 is expected not to allow :minimum_password_length to be ‹7›311 is expected not to allow :minimum_password_length to be ‹129›312 is expected not to allow :minimum_password_length to be ‹nil›313 is expected not to allow :minimum_password_length to be ‹"abc"›314 is expected to allow :minimum_password_length to be ‹10›315 is expected to allow :issues_create_limit to be ‹300›316 is expected not to allow :issues_create_limit to be ‹"three"›317 is expected not to allow :issues_create_limit to be ‹nil›318 is expected not to allow :issues_create_limit to be ‹10.5›319 is expected not to allow :issues_create_limit to be ‹-1›320 is expected to allow :raw_blob_request_limit to be ‹0›321 is expected not to allow :raw_blob_request_limit to be ‹"abc"›322 is expected not to allow :raw_blob_request_limit to be ‹nil›323 is expected not to allow :raw_blob_request_limit to be ‹10.5›324 is expected not to allow :raw_blob_request_limit to be ‹-1›325 is expected to allow :pipeline_limit_per_project_user_sha to be ‹0›326 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹"abc"›327 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹nil›328 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹10.5›329 is expected not to allow :pipeline_limit_per_project_user_sha to be ‹-1›330 is expected not to allow :hashed_storage_enabled to be ‹false›331 is expected to allow :repository_storages_weighted to be ‹{"default" => 0}›332 is expected to allow :repository_storages_weighted to be ‹{"default" => 50}›333 is expected to allow :repository_storages_weighted to be ‹{"default" => 100}›334 is expected to allow :repository_storages_weighted to be ‹{"default" => "90"}›335 is expected to allow :repository_storages_weighted to be ‹{"default" => nil}›336 is expected not to allow :repository_storages_weighted to be ‹{"default" => -1}›, producing a custom validation error on failure337 is expected not to allow :repository_storages_weighted to be ‹{"default" => 101}›, producing a custom validation error on failure338 is expected not to allow :repository_storages_weighted to be ‹{"default" => 100, shouldntexist: 50}›, producing a custom validation error on failure339 is expected to allow :notes_create_limit to be ‹400›340 is expected not to allow :notes_create_limit to be ‹"two"›341 is expected not to allow :notes_create_limit to be ‹nil›342 is expected not to allow :notes_create_limit to be ‹5.5›343 is expected not to allow :notes_create_limit to be ‹-2›344 is expected to allow :search_rate_limit to be ‹400›345 is expected not to allow :search_rate_limit to be ‹"two"›346 is expected not to allow :search_rate_limit to be ‹nil›347 is expected not to allow :search_rate_limit to be ‹5.5›348 is expected not to allow :search_rate_limit to be ‹-2›349 is expected to allow :search_rate_limit_unauthenticated to be ‹400›350 is expected not to allow :search_rate_limit_unauthenticated to be ‹"two"›351 is expected not to allow :search_rate_limit_unauthenticated to be ‹nil›352 is expected not to allow :search_rate_limit_unauthenticated to be ‹5.5›353 is expected not to allow :search_rate_limit_unauthenticated to be ‹-2›354 is expected to allow :users_get_by_id_limit to be ‹400›355 is expected not to allow :users_get_by_id_limit to be ‹"two"›356 is expected not to allow :users_get_by_id_limit to be ‹nil›357 is expected not to allow :users_get_by_id_limit to be ‹5.5›358 is expected not to allow :users_get_by_id_limit to be ‹-2›359 is expected to allow :projects_api_rate_limit_unauthenticated to be ‹400›360 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹"two"›361 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹nil›362 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹5.5›363 is expected not to allow :projects_api_rate_limit_unauthenticated to be ‹-2›364 is expected to allow :gitlab_shell_operation_limit to be ‹400›365 is expected not to allow :gitlab_shell_operation_limit to be ‹"two"›366 is expected not to allow :gitlab_shell_operation_limit to be ‹nil›367 is expected not to allow :gitlab_shell_operation_limit to be ‹5.5›368 is expected not to allow :gitlab_shell_operation_limit to be ‹-2›369 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...›370 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...›371 is expected not to allow :notes_create_limit_allowlist to be ‹nil›372 is expected to allow :notes_create_limit_allowlist to be ‹[]›373 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...›374 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...›375 is expected not to allow :users_get_by_id_limit_allowlist to be ‹nil›376 is expected to allow :users_get_by_id_limit_allowlist to be ‹[]›377 is expected to allow :whats_new_variant to be ‹"all_tiers"›378 is expected to allow :whats_new_variant to be ‹"current_tier"›379 is expected to allow :whats_new_variant to be ‹"disabled"›380 is expected not to allow :whats_new_variant to be ‹nil›381 is expected to allow :public_runner_releases_url to be ‹"http://example.com/"›382 is expected not to allow :public_runner_releases_url to be ‹nil›383 is expected to allow :update_runner_versions_enabled to be ‹[true, false]›384 is expected not to allow :update_runner_versions_enabled to be ‹nil›385 is expected not to allow :valid_runner_registrars to be ‹[""]›386 is expected not to allow :valid_runner_registrars to be ‹["OBVIOUSLY_WRONG"]›387 is expected not to allow :valid_runner_registrars to be ‹["project", "project"]›388 is expected not to allow :valid_runner_registrars to be ‹[nil]›389 is expected not to allow :valid_runner_registrars to be ‹nil›390 is expected to allow :valid_runner_registrars to be ‹[]›391 is expected to allow :valid_runner_registrars to be ‹["project", "group"]›392 is expected to allow :jira_connect_proxy_url to be ‹"http://example.com"›393 is expected to allow :jira_connect_proxy_url to be ‹"https://example.com"›394 is expected to allow :bulk_import_enabled to be ‹true› or ‹false›395 is expected not to allow :bulk_import_enabled to be ‹nil›396 is expected to allow :allow_runner_registration_token to be ‹true› or ‹false›397 is expected not to allow :allow_runner_registration_token to be ‹nil›398 is expected to allow :gitlab_dedicated_instance to be ‹true› or ‹false›399 is expected not to allow :gitlab_dedicated_instance to be ‹nil›400 is expected not to allow :prometheus_alert_db_indicators_settings to be ‹{apdex_slo: "10"}›401 is expected to allow :prometheus_alert_db_indicators_settings to be ‹nil›402 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=>0.99, :ci=>0.98}}›403 is expected to allow :silent_mode_enabled to be ‹[true, false]›404 is expected not to allow :silent_mode_enabled to be ‹nil›405 is expected to allow :ci_max_includes to be ‹0›406 is expected to allow :ci_max_includes to be ‹200›407 is expected not to allow :ci_max_includes to be ‹"abc"›408 is expected not to allow :ci_max_includes to be ‹nil›409 is expected not to allow :ci_max_includes to be ‹10.5›410 is expected not to allow :ci_max_includes to be ‹-1›411 is expected to allow :remember_me_enabled to be ‹[true, false]›412 is expected not to allow :remember_me_enabled to be ‹nil›413 is expected to validate that :namespace_aggregation_schedule_lease_duration_in_seconds looks like an integer greater than 0414 is expected to allow :instance_level_code_suggestions_enabled to be ‹[true, false]›415 is expected not to allow :instance_level_code_suggestions_enabled to be ‹nil›416 is expected to allow :package_registry_allow_anyone_to_pull_option to be ‹[true, false]›417 is expected not to allow :package_registry_allow_anyone_to_pull_option to be ‹nil›418 is expected to validate that :max_attachment_size cannot be empty/falsy419 is expected to validate that :max_attachment_size looks like an integer greater than 0420 is expected to validate that :max_export_size cannot be empty/falsy421 is expected to validate that :max_export_size looks like an integer greater than or equal to 0422 is expected to validate that :max_import_size cannot be empty/falsy423 is expected to validate that :max_import_size looks like an integer greater than or equal to 0424 is expected to validate that :max_import_remote_file_size cannot be empty/falsy425 is expected to validate that :max_import_remote_file_size looks like an integer greater than or equal to 0426 is expected to validate that :bulk_import_max_download_file_size cannot be empty/falsy427 is expected to validate that :bulk_import_max_download_file_size looks like an integer greater than or equal to 0428 is expected to validate that :max_decompressed_archive_size cannot be empty/falsy429 is expected to validate that :max_decompressed_archive_size looks like an integer greater than or equal to 0430 is expected to validate that :local_markdown_version looks like an integer greater than or equal to 0 and less than 65536431 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 failure432 when deactivate_dormant_users is enabled433 is expected not to allow :deactivate_dormant_users_period to be ‹nil›434 is expected to allow :deactivate_dormant_users_period to be ‹90›435 is expected to allow :deactivate_dormant_users_period to be ‹365›436 is expected not to allow :deactivate_dormant_users_period to be ‹89›437 help_page_documentation_base_url validations438 is expected to allow :help_page_documentation_base_url to be ‹nil›439 is expected to allow :help_page_documentation_base_url to be ‹"https://docs.gitlab.com"›440 is expected to allow :help_page_documentation_base_url to be ‹"http://127.0.0.1"›441 is expected not to allow :help_page_documentation_base_url to be ‹"docs.gitlab.com"›442 when url length validation443 when value string length is 255 characters444 allows the value445 when value string length exceeds 255 characters446 does not allow the value447 grafana_url validations448 is expected to allow :grafana_url to be ‹"http://example.com"›449 is expected to allow :grafana_url to be ‹"https://example.com"›450 is expected not to allow :grafana_url to be ‹"ftp://example.com"›451 is expected not to allow :grafana_url to be ‹"javascript:alert(window.opener.document.location)"›452 is expected to allow :grafana_url to be ‹"/-/grafana"›453 is expected to allow :grafana_url to be ‹"http://localhost:9000"›454 when local URLs are not allowed in system hooks455 is expected not to allow :grafana_url to be ‹"http://localhost:9000"›456 is expected not to allow :jira_connect_proxy_url to be ‹"http://localhost:9000"›457 with invalid grafana URL458 adds an error459 with blocked grafana URL460 adds an error461 default_branch_name validations462 when javascript tags get sanitized properly463 gets sanitized properly464 spam_check_endpoint465 when spam_check_endpoint is enabled466 is expected to allow :spam_check_endpoint_url to be ‹"grpc://example.org/spam_check"›467 is expected to allow :spam_check_endpoint_url to be ‹"tls://example.org/spam_check"›468 is expected not to allow :spam_check_endpoint_url to be ‹"https://example.org/spam_check"›469 is expected not to allow :spam_check_endpoint_url to be ‹"nonsense"›470 is expected not to allow :spam_check_endpoint_url to be ‹nil›471 is expected not to allow :spam_check_endpoint_url to be ‹""›472 when spam_check_endpoint is NOT enabled473 is expected to allow :spam_check_endpoint_url to be ‹"grpc://example.org/spam_check"›474 is expected to allow :spam_check_endpoint_url to be ‹"tls://example.org/spam_check"›475 is expected not to allow :spam_check_endpoint_url to be ‹"https://example.org/spam_check"›476 is expected not to allow :spam_check_endpoint_url to be ‹"nonsense"›477 is expected to allow :spam_check_endpoint_url to be ‹nil›478 is expected to allow :spam_check_endpoint_url to be ‹""›479 snowplow settings480 when snowplow is enabled481 is expected not to allow :snowplow_collector_hostname to be ‹nil›482 is expected to allow :snowplow_collector_hostname to be ‹"snowplow.gitlab.com"›483 is expected not to allow :snowplow_collector_hostname to be ‹"/example"›484 when snowplow is not enabled485 is expected to allow :snowplow_collector_hostname to be ‹nil›486 when mailgun_events_enabled is enabled487 is expected to validate that :mailgun_signing_key cannot be empty/falsy488 is expected to validate that the length of :mailgun_signing_key is at most 255489 when mailgun_events_enabled is not enabled490 is expected not to validate that :mailgun_signing_key cannot be empty/falsy491 when user accepted let's encrypt terms of service492 is expected not to allow :lets_encrypt_notification_email to be ‹nil›493 EKS integration494 integration is disabled495 is expected to allow :eks_account_id to be ‹nil›496 is expected to allow :eks_access_key_id to be ‹nil›497 is expected to allow :eks_secret_access_key to be ‹nil›498 integration is enabled499 is expected to allow :eks_account_id to be ‹"123456789012"›500 is expected not to allow :eks_account_id to be ‹nil›501 is expected not to allow :eks_account_id to be ‹"123"›502 is expected not to allow :eks_account_id to be ‹"12345678901a"›503 is expected to allow :eks_access_key_id to be ‹"access-key-id-12"›504 is expected not to allow :eks_access_key_id to be ‹"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"›505 is expected not to allow :eks_access_key_id to be ‹"short-key"›506 is expected to allow :eks_access_key_id to be ‹nil›507 is expected to allow :eks_secret_access_key to be ‹"secret-access-key"›508 is expected to allow :eks_secret_access_key to be ‹nil›509 access key is specified510 is expected to allow :eks_secret_access_key to be ‹"secret-access-key"›511 is expected not to allow :eks_secret_access_key to be ‹nil›512 GitLab for Slack app settings513 when GitLab for Slack app is disabled514 is expected to allow :slack_app_id to be ‹nil›515 is expected to allow :slack_app_secret to be ‹nil›516 is expected to allow :slack_app_signing_secret to be ‹nil›517 is expected to allow :slack_app_verification_token to be ‹nil›518 when GitLab for Slack app is enabled519 is expected to allow :slack_app_id to be ‹"123456789a"›520 is expected not to allow :slack_app_id to be ‹nil›521 is expected to allow :slack_app_secret to be ‹"secret"›522 is expected not to allow :slack_app_secret to be ‹nil›523 is expected to allow :slack_app_signing_secret to be ‹"signing-secret"›524 is expected not to allow :slack_app_signing_secret to be ‹nil›525 is expected to allow :slack_app_verification_token to be ‹"token"›526 is expected not to allow :slack_app_verification_token to be ‹nil›527 default_artifacts_expire_in528 sets an error if it cannot parse529 sets an error if it is blank530 sets the value if it is valid531 sets the value if it is 0532 usage_ping_enabled setting533 when setting is in database534 with usage_ping_enabled disabled535 behaves like usage ping disabled536 is expected to eq false537 with usage_ping_enabled enabled538 behaves like usage ping enabled539 is expected to eq true540 when setting is in GitLab config541 with usage_ping_enabled disabled542 behaves like usage ping disabled543 is expected to eq false544 with usage_ping_enabled enabled545 behaves like usage ping enabled546 is expected to eq true547 when setting in database false and setting in GitLab config true548 behaves like usage ping disabled549 is expected to eq false550 when setting database true and setting in GitLab config false551 behaves like usage ping disabled552 is expected to eq false553 when setting database true and setting in GitLab config true554 behaves like usage ping enabled555 is expected to eq true556 setting validated as `addressable_url` configured with external URI557 is valid by default558 is invalid when unpersisted `deny_all_requests_except_allowed` property is true559 key restrictions560 does not allow all key types to be disabled561 #ensure_key_restrictions!562 with non-compliant FIPS settings563 in non-FIPS mode564 keeps existing key restrictions565 in FIPS mode566 updates key restrictions to meet FIPS compliance567 behaves like an object with email-formatted attributes568 specifically its :abuse_notification_email attribute569 with a value of 'info@example.com'570 is valid571 with a value of 'info+test@example.com'572 is valid573 with a value of 'o'reilly@example.com'574 is valid575 with a value of 'mailto:test@example.com'576 is valid577 with a value of 'lol!'+=?><#$%^&*()@gmail.com'578 is valid579 with a value of 'foobar'580 is invalid581 with a value of 'test@test@example.com'582 is invalid583 repository_storages is a String, not an Array584 is expected to eq ["default"]585 auto_devops_domain setting586 when auto_devops_enabled? is true587 can be blank588 with a valid value589 is valid590 with an invalid value591 is invalid592 repository storages593 inclusion594 is expected to allow :repository_storages to be ‹"custom1"›595 is expected to allow :repository_storages to be ‹["custom2", "custom3"]›596 is expected not to allow :repository_storages to be ‹"alternative"›597 is expected not to allow :repository_storages to be ‹["alternative", "custom1"]›598 presence599 is expected not to allow :repository_storages to be ‹[]›600 is expected not to allow :repository_storages to be ‹""›601 is expected not to allow :repository_storages to be ‹nil›602 housekeeping settings603 is expected not to allow :housekeeping_optimize_repository_period to be ‹0›604 gitaly timeouts605 validates that the default_timeout is lower than the max_request_duration606 is expected to validate that :gitaly_timeout_default looks like an integer greater than or equal to 0607 is expected to validate that :gitaly_timeout_medium looks like an integer greater than or equal to 0608 is expected to validate that :gitaly_timeout_fast looks like an integer greater than or equal to 0609 validates that gitaly_timeout_medium is lower than timeout_default610 validates that gitaly_timeout_fast is lower than timeout_default611 accepts all timeouts equal612 accepts timeouts in descending order613 rejects timeouts in ascending order614 rejects medium timeout larger than default615 rejects medium timeout smaller than fast616 does not prevent from saving when gitaly timeouts were previously invalid617 enforcing terms618 requires the terms to present when enforcing users to accept619 is valid when terms are created620 when external authorization service is enabled621 is expected not to allow :external_authorization_service_url to be ‹"not a URL"›622 is expected to allow :external_authorization_service_url to be ‹"https://example.com"›623 is expected to allow :external_authorization_service_url to be ‹""›624 is expected not to allow :external_authorization_service_default_label to be ‹nil›625 is expected not to allow :external_authorization_service_timeout to be ‹11›626 is expected not to allow :external_authorization_service_timeout to be ‹0›627 is expected not to allow :external_auth_client_cert to be ‹"not a certificate"›628 is expected to allow :external_auth_client_cert to be ‹""›629 is expected to allow :external_auth_client_key to be ‹""›630 when setting a valid client certificate for external authorization631 requires a valid client key when a certificate is set632 requires a matching certificate633 the credentials are valid when the private key can be read and matches the certificate634 asset proxy settings635 #asset_proxy_url636 is expected not to allow :asset_proxy_url to be ‹""›637 is expected to allow :asset_proxy_url to be ‹"http://example.com"›638 is expected to allow :asset_proxy_url to be ‹"https://example.com"›639 is expected not to allow :asset_proxy_url to be ‹"ftp://example.com"›640 is not required when asset proxy is disabled641 #asset_proxy_secret_key642 is expected not to allow :asset_proxy_secret_key to be ‹""›643 is expected to allow :asset_proxy_secret_key to be ‹"anything"›644 is not required when asset proxy is disabled645 is encrypted646 #asset_proxy_whitelist647 when given an Array648 sets the domains and adds current running host649 when given a String650 sets multiple domains with spaces651 sets multiple domains with newlines and a space652 sets multiple domains with commas653 #asset_proxy_allowlist654 when given an Array655 sets the domains and adds current running host656 when given a String657 sets multiple domains with spaces658 sets multiple domains with newlines and a space659 sets multiple domains with commas660 #ci_jwt_signing_key661 is expected not to allow :ci_jwt_signing_key to be ‹""›662 is expected not to allow :ci_jwt_signing_key to be ‹"invalid RSA key"›663 is expected to allow :ci_jwt_signing_key to be ‹nil›664 is expected to allow :ci_jwt_signing_key to be ‹"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQDBSRJ9KbpEwTdnAxbdnOqCaAPM++WVyyvc3iC6HT1DJ503aFiE\ntBk3IPwi6OClV8j7BYRVjB4jPX503L/iOzvDR1R7yLArQZQl8oHL9gmvVFNI/kHX\npM151fyMj3etCWbT4YLKzSpTlfK/SZY+AAP+b436Q0L6Zdg34YeA78ia6wIDAQAB\nAoGAJFHx2nkr2l2gZogLFOu2mXioNi2jb6l0/ZTz+2UhLOxVu6Ks94rMLjLRjlHK\nXOeJCbp4qoag5yhYCeetWvqcePrjakZl1AmPoYwPB4ySW07RMne+xLu17qk8zu8t\n9KvrfuZIyCS1hbFcYriFPgQFzM1S7ZkKyaTZgIjmeffFvCECQQDh2usyv3R88uO5\nAeyaf2LIzoHB6VHB2Qk3mUUCOkP1RfCLY2n8dwUiGvoq1OAY4DAnZ+pD+OKvvJHs\nS9lX...›665 is encrypted666 #customers_dot_jwt_signing_key667 is expected not to allow :customers_dot_jwt_signing_key to be ‹""›668 is expected not to allow :customers_dot_jwt_signing_key to be ‹"invalid RSA key"›669 is expected to allow :customers_dot_jwt_signing_key to be ‹nil›670 is expected to allow :customers_dot_jwt_signing_key to be ‹"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQCpGlH/CfvJQPHzMNglKP9E+qsPSgl1XW9AdqT40Qze8JVmw31O\nMkbDEVJ4cG7X+CYwWZWuKHtm8sr292RJU2U1hPrJLUMXNMEa9uiUebzIbuWnJgR9\nqv2kZZcszIYAw8ZBlm9RuMdXny3I6dvMtu8sJ0QkIDl23SDkAVbb3swF9wIDAQAB\nAoGALha0XnSUIWgICaY4Yvhnip9fXA1rwocyuTkdAYvInEKqFZYWYuelDal89sJ+\nE3LYxbjE6PCzoX1vAByxQqLuJFStbOHOu/kw5mVpjDUpa7YLLji6eg9E9jEmipBe\nlsNDbyEUbmFtmd1ZPD3ulEGVmXZ1pI11/NQvhd1OgcPeUTECQQDQpHe+i85cYqkh\nnmxvgOgrG5mpSgSOve+vixYjwXp3v8H+PmOqwNw0T2JYNQxIBPRwdJpHCEtdMYyx\nyRIw...›671 is encrypted672 #cloud_license_auth_token673 is expected to allow :cloud_license_auth_token to be ‹nil›674 is encrypted675 static objects external storage676 when URL is set677 is expected not to allow :static_objects_external_storage_auth_token to be ‹nil›678 sourcegraph settings679 is invalid if sourcegraph is enabled and no url is provided680 gitpod settings681 is invalid if gitpod is enabled and no url is provided682 is invalid if gitpod is enabled and an empty url is provided683 is invalid if gitpod is enabled and an invalid url is provided684 diagrams.net settings685 when diagrams.net is enabled686 is expected not to allow :diagramsnet_url to be ‹nil›687 is expected to allow :diagramsnet_url to be ‹"https://embed.diagrams.net"›688 is expected not to allow :diagramsnet_url to be ‹"not a URL"›689 when diagrams.net is not enabled690 is expected to allow :diagramsnet_url to be ‹nil›691 throttle_* settings692 throttle_setting: :throttle_unauthenticated_api_requests_per_period693 is expected to allow :throttle_unauthenticated_api_requests_per_period to be ‹3›694 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹-3›695 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹0›696 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹"three"›697 is expected not to allow :throttle_unauthenticated_api_requests_per_period to be ‹nil›698 throttle_setting: :throttle_unauthenticated_api_period_in_seconds699 is expected to allow :throttle_unauthenticated_api_period_in_seconds to be ‹3›700 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹-3›701 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹0›702 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹"three"›703 is expected not to allow :throttle_unauthenticated_api_period_in_seconds to be ‹nil›704 throttle_setting: :throttle_unauthenticated_requests_per_period705 is expected to allow :throttle_unauthenticated_requests_per_period to be ‹3›706 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹-3›707 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹0›708 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹"three"›709 is expected not to allow :throttle_unauthenticated_requests_per_period to be ‹nil›710 throttle_setting: :throttle_unauthenticated_period_in_seconds711 is expected to allow :throttle_unauthenticated_period_in_seconds to be ‹3›712 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹-3›713 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹0›714 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹"three"›715 is expected not to allow :throttle_unauthenticated_period_in_seconds to be ‹nil›716 throttle_setting: :throttle_authenticated_api_requests_per_period717 is expected to allow :throttle_authenticated_api_requests_per_period to be ‹3›718 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹-3›719 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹0›720 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹"three"›721 is expected not to allow :throttle_authenticated_api_requests_per_period to be ‹nil›722 throttle_setting: :throttle_authenticated_api_period_in_seconds723 is expected to allow :throttle_authenticated_api_period_in_seconds to be ‹3›724 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹-3›725 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹0›726 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹"three"›727 is expected not to allow :throttle_authenticated_api_period_in_seconds to be ‹nil›728 throttle_setting: :throttle_authenticated_web_requests_per_period729 is expected to allow :throttle_authenticated_web_requests_per_period to be ‹3›730 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹-3›731 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹0›732 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹"three"›733 is expected not to allow :throttle_authenticated_web_requests_per_period to be ‹nil›734 throttle_setting: :throttle_authenticated_web_period_in_seconds735 is expected to allow :throttle_authenticated_web_period_in_seconds to be ‹3›736 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹-3›737 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹0›738 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹"three"›739 is expected not to allow :throttle_authenticated_web_period_in_seconds to be ‹nil›740 throttle_setting: :throttle_unauthenticated_packages_api_requests_per_period741 is expected to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹3›742 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹-3›743 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹0›744 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹"three"›745 is expected not to allow :throttle_unauthenticated_packages_api_requests_per_period to be ‹nil›746 throttle_setting: :throttle_unauthenticated_packages_api_period_in_seconds747 is expected to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹3›748 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹-3›749 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹0›750 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹"three"›751 is expected not to allow :throttle_unauthenticated_packages_api_period_in_seconds to be ‹nil›752 throttle_setting: :throttle_authenticated_packages_api_requests_per_period753 is expected to allow :throttle_authenticated_packages_api_requests_per_period to be ‹3›754 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹-3›755 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹0›756 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹"three"›757 is expected not to allow :throttle_authenticated_packages_api_requests_per_period to be ‹nil›758 throttle_setting: :throttle_authenticated_packages_api_period_in_seconds759 is expected to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹3›760 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹-3›761 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹0›762 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹"three"›763 is expected not to allow :throttle_authenticated_packages_api_period_in_seconds to be ‹nil›764 throttle_setting: :throttle_unauthenticated_files_api_requests_per_period765 is expected to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹3›766 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹-3›767 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹0›768 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹"three"›769 is expected not to allow :throttle_unauthenticated_files_api_requests_per_period to be ‹nil›770 throttle_setting: :throttle_unauthenticated_files_api_period_in_seconds771 is expected to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹3›772 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹-3›773 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹0›774 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹"three"›775 is expected not to allow :throttle_unauthenticated_files_api_period_in_seconds to be ‹nil›776 throttle_setting: :throttle_authenticated_files_api_requests_per_period777 is expected to allow :throttle_authenticated_files_api_requests_per_period to be ‹3›778 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹-3›779 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹0›780 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹"three"›781 is expected not to allow :throttle_authenticated_files_api_requests_per_period to be ‹nil›782 throttle_setting: :throttle_authenticated_files_api_period_in_seconds783 is expected to allow :throttle_authenticated_files_api_period_in_seconds to be ‹3›784 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹-3›785 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹0›786 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹"three"›787 is expected not to allow :throttle_authenticated_files_api_period_in_seconds to be ‹nil›788 throttle_setting: :throttle_unauthenticated_deprecated_api_requests_per_period789 is expected to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹3›790 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹-3›791 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹0›792 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹"three"›793 is expected not to allow :throttle_unauthenticated_deprecated_api_requests_per_period to be ‹nil›794 throttle_setting: :throttle_unauthenticated_deprecated_api_period_in_seconds795 is expected to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹3›796 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹-3›797 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹0›798 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹"three"›799 is expected not to allow :throttle_unauthenticated_deprecated_api_period_in_seconds to be ‹nil›800 throttle_setting: :throttle_authenticated_deprecated_api_requests_per_period801 is expected to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹3›802 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹-3›803 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹0›804 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹"three"›805 is expected not to allow :throttle_authenticated_deprecated_api_requests_per_period to be ‹nil›806 throttle_setting: :throttle_authenticated_deprecated_api_period_in_seconds807 is expected to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹3›808 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹-3›809 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹0›810 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹"three"›811 is expected not to allow :throttle_authenticated_deprecated_api_period_in_seconds to be ‹nil›812 throttle_setting: :throttle_authenticated_git_lfs_requests_per_period813 is expected to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹3›814 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹-3›815 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹0›816 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹"three"›817 is expected not to allow :throttle_authenticated_git_lfs_requests_per_period to be ‹nil›818 throttle_setting: :throttle_authenticated_git_lfs_period_in_seconds819 is expected to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹3›820 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹-3›821 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹0›822 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹"three"›823 is expected not to allow :throttle_authenticated_git_lfs_period_in_seconds to be ‹nil›824 sidekiq job limiter settings825 has the right defaults826 is expected to allow :sidekiq_job_limiter_mode to be ‹"track"›827 is expected to validate that :sidekiq_job_limiter_compression_threshold_bytes looks like an integer greater than or equal to 0828 is expected to validate that :sidekiq_job_limiter_limit_bytes looks like an integer greater than or equal to 0829 prometheus settings830 validates metrics_method_call_threshold831 error tracking settings832 with error tracking disabled833 is expected to allow :error_tracking_api_url to be ‹nil›834 with error tracking enabled835 is expected to allow :error_tracking_api_url to be ‹"http://example.com"›836 is expected to allow :error_tracking_api_url to be ‹"https://example.com"›837 is expected not to allow :error_tracking_api_url to be ‹"ftp://example.com"›838 is expected to validate that :error_tracking_api_url cannot be empty/falsy839 for default_preferred_language840 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"›841 is expected not to allow :default_preferred_language to be ‹nil›, ‹""›, or ‹"invalid_locale"›842 for default_syntax_highlighting_theme843 is expected to allow :default_syntax_highlighting_theme to be ‹1›, ‹2›, ‹3›, ‹4›, ‹5›, or ‹6›844 is expected not to allow :default_syntax_highlighting_theme to be ‹nil›, ‹0›, or ‹7›845 default_branch_protections_defaults validations846 is expected to validate jsonb schema "default_branch_protection_defaults"847 when json is more than 1kb848 is expected not to allow :default_branch_protection_defaults to be ‹{name: "9ndxg2qyongl9jq17ytvrhwv3cfbu32e7vk78vqygrnto3cekyeo551wgy2zo585exf8cogrvdre5wh80us32rjcuo141zhbg1jwrcgchdfqgwmpe1m0egy91yr0ig4mkst5ewxqzt3dyybnv79xb8vx5o76y1vc093iuqwb2ri1r3a8ivggfzk47ahfxvssut4mhopd66cvollyky2yri6jbv72up13nbbqm1p7w408utie4hl1s069ddok2rm3twatxe6y2su26qy6u0qso7zgwlrayrsdzw122n5x516dvd6j0bhvnhsqhjstqg3fgqx2jpbwi9uzrpkvbyzqn235vn7lqnndgnjiui806nvky5n3lydq56unheglwdizal2t06aiucyl5nmp94ots8tn0xqk3l7ln0ffqjcutz2ll7l1an0fykp91v27vd5gcitl317uk38lwj75e5854fgbu4s1pv28f6tsow4n0xt78x3ofkhi1cqpxht1ly6pm9j73d7wag6k4axx2f24d63zeizl8ja58czfp0fa1h0yl3jc5djmdh1kul9syrpk1j0un037agganyz3o1drtk7tl82u987afc1cfadh17yxfyxsm5g7ezbykwavhdqti1r1qjudqk0ggnskpfi7423b43gq7l4qzzqw8ni0srn7spifj0guv0raq7vm783bt4ocg0u9h8y65z1cnwfflio7o0c7k3gwpwwcvgd4lu64yrlckv3xh8egur4d8vtr6l9wtyma1pu3n08mufj2n7sdp7ffcwxng1yjutkixr247nocbipaa8pyswfhhctagwi0y780pyyocwkebtdr58742gc5so46q5h9i61zjev5zj9p6u1pzhlw1wp4gwvqrcibfrjkgwgcno5fy07cf9yaawfioh2xcw3yjgstmwrbpokc22czaeg27940mlvgg0vrio4i8y7ujg8nrsgxl6f42j3392tkp0e37uykxhwua1t6h80yoyk2o6ivufji57od4cw8t1y4ydwkq5s091zlthoz7een0r4h8wy0npet85n5s8zntxjivm3swuqjps748jjnxl71zji5esj2fjmeir9v86ldjjsr9l"}›849 when json less than 1kb850 is expected to allow :default_branch_protection_defaults to be ‹{name: "2ewk4r7kfqxui0tym26b2ho3f52q9aqbaestbm8m1p1yd5on0ndlrq5z61ql4nfgvxdaxx2zdzu9saer2xyc4joilqva366zm1y5v6rs67nkpywq94umjaj818c5u435ol5qqs0g14m7sf6pcfpsjqo8kbmtoulrflg3v4t2rrj0f767z6i6944wwdv8x6bn1o8o2ompkusi5lkf7melpsa9d6n80fmtrww71e1fzjsyayye5ksrdz6bddzf0kc1jl8xpf809xytpdx8eg5ec4vzm22a3i8583ywtzeixv4zlwnyax3ctqkrv0su1bk71j04tug1rh3r5xd4oarp9g04fznhy95s4qr0x2lsa5fukw5tpkjrjxkl3qs5f9wbtpgy3kw8hr3tuvcb55f33563siqgff67y0zz3q1cx5y628w2uduyg3c2zomk9vikoa6gafh9uuj1fe1tuhf6rss0nncifr13px5c4n1st3rle758tbm457qb4sfkpql1"}›851 default_project_visibility, default_group_visibility and restricted_visibility_levels validations852 is expected not to allow :default_group_visibility to be ‹10›853 is expected not to allow :default_project_visibility to be ‹10›854 is expected to allow :default_group_visibility to be ‹20›855 is expected to allow :default_project_visibility to be ‹20›856 sets error messages when default visibility settings are not valid857 when prevent_visibility_restriction FF is disabled858 is expected to allow :default_group_visibility to be ‹10›859 is expected to allow :default_project_visibility to be ‹10›860 is expected to allow :default_group_visibility to be ‹20›861 is expected to allow :default_project_visibility to be ‹20›862 sentry_clientside_traces_sample_rate863 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 failure864 restrict creating duplicates865 returns the current settings866 when ApplicationSettings does not have a primary key867 raises an exception868 ADDRESSABLE_URL_VALIDATION_OPTIONS869 is applied to all addressable_url validated properties870 #disabled_oauth_sign_in_sources=871 removes unknown sources (as strings) from the array872 removes unknown sources (as symbols) from the array873 ignores nil874 performance bar settings875 performance_bar_allowed_group876 with no performance_bar_allowed_group_id saved877 returns nil878 with a performance_bar_allowed_group_id saved879 returns the group880 performance_bar_enabled881 with the Performance Bar is enabled882 returns true883 diff limit settings884 #diff_max_patch_bytes885 validations886 is expected to validate that :diff_max_patch_bytes cannot be empty/falsy887 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 512000888 #diff_max_files889 validations890 is expected to validate that :diff_max_files cannot be empty/falsy891 is expected to validate that :diff_max_files looks like an integer greater than or equal to 1000 and less than or equal to 3000892 #diff_max_lines893 validations894 is expected to validate that :diff_max_lines cannot be empty/falsy895 is expected to validate that :diff_max_lines looks like an integer greater than or equal to 50000 and less than or equal to 100000896 #sourcegraph_url_is_com?897 url: "https://sourcegraph.com", is_com: true898 matches the url with sourcegraph.com899 url: "https://sourcegraph.com/", is_com: true900 matches the url with sourcegraph.com901 url: "https://www.sourcegraph.com", is_com: true902 matches the url with sourcegraph.com903 url: "shttps://www.sourcegraph.com", is_com: false904 matches the url with sourcegraph.com905 url: "https://sourcegraph.example.com/", is_com: false906 matches the url with sourcegraph.com907 url: "https://sourcegraph.org/", is_com: false908 matches the url with sourcegraph.com909 #instance_review_permitted?910 users_over_minimum: -1911 is expected to equal false912 users_over_minimum: 0913 is expected to equal true914 users_over_minimum: 1915 is expected to equal true916 email_restrictions917 when email restrictions are enabled918 allows empty email restrictions919 accepts valid email restrictions regex920 does not accept invalid email restrictions regex921 sets an error when regex is not valid922 when email restrictions are disabled923 allows empty email restrictions924 invalid regex is not valid925 behaves like application settings examples926 predicate method changes when value is updated927 restricted signup domains928 behaves like string of domains929 sets single domain930 sets multiple domains with spaces931 sets multiple domains with newlines and a space932 sets multiple domains with commas933 sets multiple domains with semicolon934 sets multiple domains with mixture of everything935 removes duplicates936 does not fail with garbage values937 does not raise error with nil938 denied signup domains939 sets multiple domain with file940 behaves like string of domains941 sets single domain942 sets multiple domains with spaces943 sets multiple domains with newlines and a space944 sets multiple domains with commas945 sets multiple domains with semicolon946 sets multiple domains with mixture of everything947 removes duplicates948 does not fail with garbage values949 does not raise error with nil950 outbound_local_requests_whitelist951 clears outbound_local_requests_allowlist_arrays memoization952 behaves like string of domains953 sets single domain954 sets multiple domains with spaces955 sets multiple domains with newlines and a space956 sets multiple domains with commas957 sets multiple domains with semicolon958 sets multiple domains with mixture of everything959 removes duplicates960 does not fail with garbage values961 does not raise error with nil962 outbound_local_requests_allowlist_arrays963 separates the IPs and domains964 add_to_outbound_local_requests_whitelist965 adds entry to outbound_local_requests_whitelist966 clears outbound_local_requests_allowlist_arrays memoization967 does not raise error with nil968 does not raise error with nil969 usage ping settings970 when the usage ping is disabled in gitlab.yml971 does not allow the usage ping to be configured972 when the usage ping is disabled in the DB973 returns false for usage_ping_enabled974 when the usage ping is enabled in the DB975 returns false for usage_ping_enabled976 when the usage ping is enabled in gitlab.yml977 allows the usage ping to be configured978 when the usage ping is disabled in the DB979 returns false for usage_ping_enabled980 when the usage ping is enabled in the DB981 returns true for usage_ping_enabled982 #allowed_key_types983 excludes disabled key types984 in non-FIPS mode985 includes all key types by default986 in FIPS mode987 excludes DSA from supported key types988 #key_restriction_for989 returns the restriction value for recognised types990 allows types to be passed as a string991 returns forbidden for unrecognised type992 #allow_signup?993 returns true994 returns false if signup is disabled995 returns false if password authentication is disabled for the web interface996 #pick_repository_storage997 chooses repository based on weight998 #normalized_repository_storage_weights999 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0, "backup"=>1.0}1000 normalizes storage weights1001 config_storages: ["default", "backup"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>0.5, "backup"=>0.5}1002 normalizes storage weights1003 config_storages: ["default", "backup"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>0.2, "backup"=>0.8}1004 normalizes storage weights1005 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>0}, normalized: {"default"=>0.0, "backup"=>0.0}1006 normalizes storage weights1007 config_storages: ["default"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0}1008 normalizes storage weights1009 config_storages: ["default"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>1.0}1010 normalizes storage weights1011 config_storages: ["default"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>1.0}1012 normalizes storage weights1013 #user_default_internal_regex_enabled?1014 user_default_external: false, user_default_internal_regex: nil, result: false1015 is expected to eq false1016 user_default_external: false, user_default_internal_regex: "", result: false1017 is expected to eq false1018 user_default_external: false, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: false1019 is expected to eq false1020 user_default_external: true, user_default_internal_regex: "", result: false1021 is expected to eq false1022 user_default_external: true, user_default_internal_regex: nil, result: false1023 is expected to eq false1024 user_default_external: true, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: true1025 is expected to eq true1026 #archive_builds_older_than1027 when the archive_builds_in_seconds is set1028 is expected to be within 60 of 2023-08-10 11:27:50.684250961 +00001029 when the archive_builds_in_seconds is set1030 is expected to be nil1031 #commit_email_hostname1032 when the value is provided1033 returns the provided value1034 when the value is not provided1035 returns the default from the class1036 kroki_format_supported?1037 returns true when Excalidraw is enabled1038 returns true when BlockDiag is enabled1039 returns false when BlockDiag is disabled1040 returns false when the diagram type is optional and not enabled1041 returns true when the diagram type is enabled by default1042 returns false when the diagram type is unknown1043 kroki_formats1044 returns the value for kroki_formats1045 default_branch_protection_defaults1046 returns the value for default_branch_protection_defaults1047 when provided with content that does not match the JSON schema1048 is expected to allow :default_branch_protection_defaults to be ‹{name: "bar"}›1049 is expected not to allow :default_branch_protection_defaults to be ‹{foo: "bar"}›1050 #static_objects_external_storage_auth_token=1051 stores an encrypted version of the token1052 when token is empty1053 removes an encrypted version of the token1054 with plaintext token only1055 ignores the plaintext token1056 #database_grafana_api_key1057 is encrypted1058 inactive project deletion1059 validates that inactive_projects_send_warning_email_after_months is less than inactive_projects_delete_after_months1060 is expected to validate that :inactive_projects_send_warning_email_after_months looks like a number greater than 01061 is expected to validate that :inactive_projects_delete_after_months looks like a number greater than 01062 is expected to validate that :inactive_projects_min_size_mb looks like a number greater than or equal to 01063 deletes the redis key used for tracking inactive projects deletion warning emails when setting is updated1064 personal accesss token prefix1065 sets the correct default value1066 .personal_access_tokens_disabled?1067 is false1068Ci::HasStatus1069 .composite_status1070 ci build statuses1071 behaves like build status summary1072 all successful1073 is expected to eq "success"1074 at least one failed1075 is expected to eq "failed"1076 at least one running1077 is expected to eq "running"1078 at least one pending1079 is expected to eq "running"1080 all waiting for resource1081 is expected to eq "waiting_for_resource"1082 at least one waiting for resource1083 is expected to eq "waiting_for_resource"1084 all preparing1085 is expected to eq "preparing"1086 at least one preparing1087 is expected to eq "preparing"1088 success and failed but allowed to fail1089 is expected to eq "success"1090 one failed but allowed to fail1091 is expected to eq "success"1092 success and canceled1093 is expected to eq "canceled"1094 one failed and one canceled1095 is expected to eq "failed"1096 one failed but allowed to fail and one canceled1097 is expected to eq "canceled"1098 one running one canceled1099 is expected to eq "running"1100 all canceled1101 is expected to eq "canceled"1102 success and canceled but allowed to fail1103 is expected to eq "success"1104 one finished and second running but allowed to fail1105 is expected to eq "running"1106 when one status finished and second is still created1107 is expected to eq "running"1108 when there is a manual status before created status1109 is expected to eq "manual"1110 when one status is a blocking manual action1111 is expected to eq "manual"1112 when one status is a non-blocking manual action1113 is expected to eq "failed"1114 generic commit statuses1115 behaves like build status summary1116 all successful1117 is expected to eq "success"1118 at least one failed1119 is expected to eq "failed"1120 at least one running1121 is expected to eq "running"1122 at least one pending1123 is expected to eq "running"1124 all waiting for resource1125 is expected to eq "waiting_for_resource"1126 at least one waiting for resource1127 is expected to eq "waiting_for_resource"1128 all preparing1129 is expected to eq "preparing"1130 at least one preparing1131 is expected to eq "preparing"1132 success and failed but allowed to fail1133 is expected to eq "success"1134 one failed but allowed to fail1135 is expected to eq "success"1136 success and canceled1137 is expected to eq "canceled"1138 one failed and one canceled1139 is expected to eq "failed"1140 one failed but allowed to fail and one canceled1141 is expected to eq "canceled"1142 one running one canceled1143 is expected to eq "running"1144 all canceled1145 is expected to eq "canceled"1146 success and canceled but allowed to fail1147 is expected to eq "success"1148 one finished and second running but allowed to fail1149 is expected to eq "running"1150 when one status finished and second is still created1151 is expected to eq "running"1152 when there is a manual status before created status1153 is expected to eq "manual"1154 when one status is a blocking manual action1155 is expected to eq "manual"1156 when one status is a non-blocking manual action1157 is expected to eq "failed"1158 for scope with one status1159 behaves like having a job1160 when it's created ci_build job1161 .created1162 contains the job1163 .relevant1164 contains nothing1165 when it's created generic_commit_status job1166 .created1167 contains the job1168 .relevant1169 contains nothing1170 behaves like having a job1171 when it's waiting_for_resource ci_build job1172 .waiting_for_resource1173 contains the job1174 .relevant1175 contains the job1176 when it's waiting_for_resource generic_commit_status job1177 .waiting_for_resource1178 contains the job1179 .relevant1180 contains the job1181 behaves like having a job1182 when it's preparing ci_build job1183 .preparing1184 contains the job1185 .relevant1186 contains the job1187 when it's preparing generic_commit_status job1188 .preparing1189 contains the job1190 .relevant1191 contains the job1192 behaves like having a job1193 when it's running ci_build job1194 .running1195 contains the job1196 .relevant1197 contains the job1198 when it's running generic_commit_status job1199 .running1200 contains the job1201 .relevant1202 contains the job1203 behaves like having a job1204 when it's pending ci_build job1205 .pending1206 contains the job1207 .relevant1208 contains the job1209 when it's pending generic_commit_status job1210 .pending1211 contains the job1212 .relevant1213 contains the job1214 behaves like having a job1215 when it's success ci_build job1216 .success1217 contains the job1218 .relevant1219 contains the job1220 when it's success generic_commit_status job1221 .success1222 contains the job1223 .relevant1224 contains the job1225 behaves like having a job1226 when it's failed ci_build job1227 .failed1228 contains the job1229 .relevant1230 contains the job1231 when it's failed generic_commit_status job1232 .failed1233 contains the job1234 .relevant1235 contains the job1236 behaves like having a job1237 when it's canceled ci_build job1238 .canceled1239 contains the job1240 .relevant1241 contains the job1242 when it's canceled generic_commit_status job1243 .canceled1244 contains the job1245 .relevant1246 contains the job1247 behaves like having a job1248 when it's skipped ci_build job1249 .skipped1250 contains the job1251 .relevant1252 contains the job1253 when it's skipped generic_commit_status job1254 .skipped1255 contains the job1256 .relevant1257 contains the job1258 for scope with more statuses1259 .running_or_pending1260 behaves like containing the job1261 when it's running ci_build job1262 contains the job1263 when it's running generic_commit_status job1264 contains the job1265 behaves like containing the job1266 when it's pending ci_build job1267 contains the job1268 when it's pending generic_commit_status job1269 contains the job1270 behaves like not containing the job1271 when it's created ci_build job1272 contains nothing1273 when it's created generic_commit_status job1274 contains nothing1275 behaves like not containing the job1276 when it's failed ci_build job1277 contains nothing1278 when it's failed generic_commit_status job1279 contains nothing1280 behaves like not containing the job1281 when it's success ci_build job1282 contains nothing1283 when it's success generic_commit_status job1284 contains nothing1285 .alive1286 behaves like containing the job1287 when it's running ci_build job1288 contains the job1289 when it's running generic_commit_status job1290 contains the job1291 behaves like containing the job1292 when it's pending ci_build job1293 contains the job1294 when it's pending generic_commit_status job1295 contains the job1296 behaves like containing the job1297 when it's waiting_for_resource ci_build job1298 contains the job1299 when it's waiting_for_resource generic_commit_status job1300 contains the job1301 behaves like containing the job1302 when it's preparing ci_build job1303 contains the job1304 when it's preparing generic_commit_status job1305 contains the job1306 behaves like containing the job1307 when it's created ci_build job1308 contains the job1309 when it's created generic_commit_status job1310 contains the job1311 behaves like not containing the job1312 when it's failed ci_build job1313 contains nothing1314 when it's failed generic_commit_status job1315 contains nothing1316 behaves like not containing the job1317 when it's success ci_build job1318 contains nothing1319 when it's success generic_commit_status job1320 contains nothing1321 .alive_or_scheduled1322 behaves like containing the job1323 when it's running ci_build job1324 contains the job1325 when it's running generic_commit_status job1326 contains the job1327 behaves like containing the job1328 when it's pending ci_build job1329 contains the job1330 when it's pending generic_commit_status job1331 contains the job1332 behaves like containing the job1333 when it's waiting_for_resource ci_build job1334 contains the job1335 when it's waiting_for_resource generic_commit_status job1336 contains the job1337 behaves like containing the job1338 when it's preparing ci_build job1339 contains the job1340 when it's preparing generic_commit_status job1341 contains the job1342 behaves like containing the job1343 when it's created ci_build job1344 contains the job1345 when it's created generic_commit_status job1346 contains the job1347 behaves like containing the job1348 when it's scheduled ci_build job1349 contains the job1350 when it's scheduled generic_commit_status job1351 contains the job1352 behaves like not containing the job1353 when it's failed ci_build job1354 contains nothing1355 when it's failed generic_commit_status job1356 contains nothing1357 behaves like not containing the job1358 when it's success ci_build job1359 contains nothing1360 when it's success generic_commit_status job1361 contains nothing1362 behaves like not containing the job1363 when it's canceled ci_build job1364 contains nothing1365 when it's canceled generic_commit_status job1366 contains nothing1367 behaves like not containing the job1368 when it's skipped ci_build job1369 contains nothing1370 when it's skipped generic_commit_status job1371 contains nothing1372 .created_or_pending1373 behaves like containing the job1374 when it's created ci_build job1375 contains the job1376 when it's created generic_commit_status job1377 contains the job1378 behaves like containing the job1379 when it's pending ci_build job1380 contains the job1381 when it's pending generic_commit_status job1382 contains the job1383 behaves like not containing the job1384 when it's running ci_build job1385 contains nothing1386 when it's running generic_commit_status job1387 contains nothing1388 behaves like not containing the job1389 when it's failed ci_build job1390 contains nothing1391 when it's failed generic_commit_status job1392 contains nothing1393 behaves like not containing the job1394 when it's success ci_build job1395 contains nothing1396 when it's success generic_commit_status job1397 contains nothing1398 .finished1399 behaves like containing the job1400 when it's success ci_build job1401 contains the job1402 when it's success generic_commit_status job1403 contains the job1404 behaves like containing the job1405 when it's failed ci_build job1406 contains the job1407 when it's failed generic_commit_status job1408 contains the job1409 behaves like containing the job1410 when it's canceled ci_build job1411 contains the job1412 when it's canceled generic_commit_status job1413 contains the job1414 behaves like not containing the job1415 when it's created ci_build job1416 contains nothing1417 when it's created generic_commit_status job1418 contains nothing1419 behaves like not containing the job1420 when it's running ci_build job1421 contains nothing1422 when it's running generic_commit_status job1423 contains nothing1424 behaves like not containing the job1425 when it's pending ci_build job1426 contains nothing1427 when it's pending generic_commit_status job1428 contains nothing1429 .cancelable1430 behaves like containing the job1431 when it's running ci_build job1432 contains the job1433 when it's running generic_commit_status job1434 contains the job1435 behaves like containing the job1436 when it's pending ci_build job1437 contains the job1438 when it's pending generic_commit_status job1439 contains the job1440 behaves like containing the job1441 when it's waiting_for_resource ci_build job1442 contains the job1443 when it's waiting_for_resource generic_commit_status job1444 contains the job1445 behaves like containing the job1446 when it's preparing ci_build job1447 contains the job1448 when it's preparing generic_commit_status job1449 contains the job1450 behaves like containing the job1451 when it's created ci_build job1452 contains the job1453 when it's created generic_commit_status job1454 contains the job1455 behaves like containing the job1456 when it's scheduled ci_build job1457 contains the job1458 when it's scheduled generic_commit_status job1459 contains the job1460 behaves like not containing the job1461 when it's failed ci_build job1462 contains nothing1463 when it's failed generic_commit_status job1464 contains nothing1465 behaves like not containing the job1466 when it's success ci_build job1467 contains nothing1468 when it's success generic_commit_status job1469 contains nothing1470 behaves like not containing the job1471 when it's skipped ci_build job1472 contains nothing1473 when it's skipped generic_commit_status job1474 contains nothing1475 behaves like not containing the job1476 when it's canceled ci_build job1477 contains nothing1478 when it's canceled generic_commit_status job1479 contains nothing1480 behaves like not containing the job1481 when it's manual ci_build job1482 contains nothing1483 when it's manual generic_commit_status job1484 contains nothing1485 .manual1486 behaves like containing the job1487 when it's manual ci_build job1488 contains the job1489 when it's manual generic_commit_status job1490 contains the job1491 behaves like not containing the job1492 when it's failed ci_build job1493 contains nothing1494 when it's failed generic_commit_status job1495 contains nothing1496 behaves like not containing the job1497 when it's success ci_build job1498 contains nothing1499 when it's success generic_commit_status job1500 contains nothing1501 behaves like not containing the job1502 when it's skipped ci_build job1503 contains nothing1504 when it's skipped generic_commit_status job1505 contains nothing1506 behaves like not containing the job1507 when it's canceled ci_build job1508 contains nothing1509 when it's canceled generic_commit_status job1510 contains nothing1511 .scheduled1512 behaves like containing the job1513 when it's scheduled ci_build job1514 contains the job1515 when it's scheduled generic_commit_status job1516 contains the job1517 behaves like not containing the job1518 when it's failed ci_build job1519 contains nothing1520 when it's failed generic_commit_status job1521 contains nothing1522 behaves like not containing the job1523 when it's success ci_build job1524 contains nothing1525 when it's success generic_commit_status job1526 contains nothing1527 behaves like not containing the job1528 when it's skipped ci_build job1529 contains nothing1530 when it's skipped generic_commit_status job1531 contains nothing1532 behaves like not containing the job1533 when it's canceled ci_build job1534 contains nothing1535 when it's canceled generic_commit_status job1536 contains nothing1537 .complete1538 behaves like containing the job1539 when it's success ci_build job1540 contains the job1541 when it's success generic_commit_status job1542 contains the job1543 behaves like containing the job1544 when it's failed ci_build job1545 contains the job1546 when it's failed generic_commit_status job1547 contains the job1548 behaves like containing the job1549 when it's canceled ci_build job1550 contains the job1551 when it's canceled generic_commit_status job1552 contains the job1553 behaves like containing the job1554 when it's skipped ci_build job1555 contains the job1556 when it's skipped generic_commit_status job1557 contains the job1558 behaves like not containing the job1559 when it's waiting_for_resource ci_build job1560 contains nothing1561 when it's waiting_for_resource generic_commit_status job1562 contains nothing1563 behaves like not containing the job1564 when it's preparing ci_build job1565 contains nothing1566 when it's preparing generic_commit_status job1567 contains nothing1568 behaves like not containing the job1569 when it's pending ci_build job1570 contains nothing1571 when it's pending generic_commit_status job1572 contains nothing1573 behaves like not containing the job1574 when it's running ci_build job1575 contains nothing1576 when it's running generic_commit_status job1577 contains nothing1578 .waiting_for_resource_or_upcoming1579 behaves like containing the job1580 when it's created ci_build job1581 contains the job1582 when it's created generic_commit_status job1583 contains the job1584 behaves like containing the job1585 when it's scheduled ci_build job1586 contains the job1587 when it's scheduled generic_commit_status job1588 contains the job1589 behaves like containing the job1590 when it's waiting_for_resource ci_build job1591 contains the job1592 when it's waiting_for_resource generic_commit_status job1593 contains the job1594 behaves like not containing the job1595 when it's running ci_build job1596 contains nothing1597 when it's running generic_commit_status job1598 contains nothing1599 behaves like not containing the job1600 when it's failed ci_build job1601 contains nothing1602 when it's failed generic_commit_status job1603 contains nothing1604 behaves like not containing the job1605 when it's success ci_build job1606 contains nothing1607 when it's success generic_commit_status job1608 contains nothing1609 behaves like not containing the job1610 when it's canceled ci_build job1611 contains nothing1612 when it's canceled generic_commit_status job1613 contains nothing1614 ::DEFAULT_STATUS1615 is a status created1616 ::BLOCKED_STATUS1617 is a status manual1618 blocked?1619 when ci_pipeline1620 when status is scheduled1621 is expected to be truthy1622 when status is manual1623 is expected to be truthy1624 when status is created1625 is expected to be falsy1626 when ci_stage1627 when status is scheduled1628 is expected to be truthy1629 when status is manual1630 is expected to be truthy1631 when status is created1632 is expected to be falsy1633 when ci_build1634 when status is scheduled1635 is expected to be truthy1636 when status is manual1637 is expected to be truthy1638 when status is created1639 is expected to be falsy1640 when generic_commit_status1641 when status is scheduled1642 is expected to be truthy1643 when status is manual1644 is expected to be truthy1645 when status is created1646 is expected to be falsy1647gitlab:usage data take tasks1648 dump_sql_in_yaml1649 dumps SQL queries in yaml format1650 dump_sql_in_json1651/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_MARKER1652/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 here1653/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_SPLIT1654/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 here1655 dumps SQL queries in json format1656 dump_non_sql_in_json1657/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_MARKER1658/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 here1659/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_SPLIT1660/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 here1661 dumps non SQL data in json format1662 generate_sql_metrics_fixture1663/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_MARKER1664/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 here1665/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_SPLIT1666/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 here1667 generates fixture file correctly1668 generate_and_send1669 generates and sends Service Ping payload1670Gitlab::ImportExport::Group::TreeRestorer1671 restore group tree1672 has the group description1673 has group labels1674 has badges1675 has milestones1676 has group children1677 has group members1678 issue boards1679 has issue boards1680 has board label lists1681 child with no parent1682 captures import failures when a child group does not have a valid parent_id1683 when child group creation fails1684 captures import failure1685 excluded attributes1686 does not import root group name1687 does not import root group path1688 does not allow override of excluded attributes1689 does not allow override of excluded attributes1690 does not allow override of excluded attributes1691 does not allow override of excluded attributes1692 does not allow override of excluded attributes1693 does not allow override of excluded attributes1694 does not allow override of excluded attributes1695 does not allow override of excluded attributes1696 group.json file access check1697 does not read a symlink1698 group visibility levels1699 when the @top_level_group is the destination_group1700 when visibility level is public1701 imports all subgroups as public1702 when visibility level is private1703 imports all subgroups as private1704 when visibility level is internal1705 imports all subgroups as internal1706 when the destination_group is the @top_level_group.parent1707 when source level is public1708 imports all subgroups as public1709 when source level is private1710 imports all subgroups as private1711 when source level is internal1712 imports all subgroups as internal1713 when the visibility level is restricted1714 updates the visibility_level1715 when there are nested subgroups1716 when destination level is :public1717 imports all subgroups with original visibility_level1718 when destination level is :internal1719 imports non-public subgroups with original level and public subgroups as internal1720 when destination level is :private1721 imports all subgroups as private1722Gitlab::ImportExport::Project::RelationFactory1723 hook object1724 does not have the original ID1725 does not have the original integration_id1726 does not have the original project_id1727 has the new project_id1728 has a nil token1729 original service exists1730 does not have the original integration_id1731 excluded attributes1732 are removed from the imported object1733 merge_request object1734 has preloaded author1735 has preloaded updated_by1736 has preloaded source project1737 has preloaded target project1738 issue object1739 has preloaded project1740 computing relative position1741 when max relative position in the hierarchy is not cached1742 has computed new relative_position1743 when max relative position in the hierarchy is cached1744 has computed new relative_position1745 when issue_type is provided in the hash1746 sets the correct work_item_type1747 when work_item_type is provided in the hash1748 sets the correct work_item_type1749 when issue_type is provided in the hash as well as a work_item_type1750 makes work_item_type take precedence over issue_type1751 label object1752 has preloaded project1753 has preloaded group1754 pipeline_schedule1755 when relation_hash has active set to true1756 the created object is not active1757 when relation_hash has active set to false1758 the created object is not active1759 Potentially hazardous foreign keys1760 does not preserve any foreign key IDs1761 overrided model with pluralized name1762 does not raise errors1763 Project references1764 does not preserve any project foreign key IDs1765 behaves like Notes user references1766 when the importer is admin1767 and the note author is not mapped1768 is expected to eq #<User id:377 @user85>1769 is expected to include "*By Administrator"1770 and the note author is the importer user1771 is expected to eq #<User id:383 @user89>1772 is expected not to include "*By Administrator"1773 and the note author exists in the target instance1774 is expected to eq #<User id:392 @user95>1775 is expected not to include "*By Administrator"1776 when the importer is not admin1777 and the note author is not mapped1778 is expected to eq #<User id:397 @user99>1779 is expected to include "*By Administrator"1780 and the note author is the importer user1781 is expected to eq #<User id:403 @user103>1782 is expected to include "*By Administrator"1783 and the note author exists in the target instance1784 is expected to eq #<User id:409 @user107>1785 is expected to include "*By Administrator"1786 encrypted attributes1787 has no value for the encrypted attribute1788 event object1789 has preloaded project1790 protected branch access levels1791 merge access level1792 when access level is no one1793 keeps no one access level1794 when access level is below maintainer1795 sets access level to maintainer1796 when access level is above maintainer1797 sets access level to maintainer1798 root ancestor membership1799 when importer user is root group owner1800 keeps access level as is1801 when user membership in root group is missing1802 sets access level to maintainer1803 when root ancestor is not a group1804 sets access level to maintainer1805 push access level1806 when access level is no one1807 keeps no one access level1808 when access level is below maintainer1809 sets access level to maintainer1810 when access level is above maintainer1811 sets access level to maintainer1812 root ancestor membership1813 when importer user is root group owner1814 keeps access level as is1815 when user membership in root group is missing1816 sets access level to maintainer1817 when root ancestor is not a group1818 sets access level to maintainer1819MergeRequestWidgetEntity1820 has email_patches_path1821 has plain_diff_path1822 has human access1823 has new pipeline path for project1824 has security_reports_docs_path1825 source_project_full_path1826 includes the full path of the source project1827 when the source project is missing1828 returns `nil` for the source project1829 can_create_pipeline_in_target_project1830 when user has permission1831 includes the correct permission info1832 when user does not have permission1833 includes the correct permission info1834 issues links1835 includes issues links when requested1836 omits issue links by default1837 merge_request_add_ci_config_path1838 when there is a standard ci config file in the source project1839 no ci config path1840 when there is no standard ci config file in the source project1841 when user has permissions1842 has add ci config path1843 has expected params1844 when auto devops is enabled1845 returns a blank ci config path1846 when source project is missing1847 returns a blank ci config path1848 when there are no commits1849 returns a blank ci config path1850 when build feature is disabled1851 has no path1852 when creating the pipeline is not allowed1853 has no path1854 when merge request is merged1855 returns a blank ci config path1856 when merge request is closed1857 returns a blank ci config path1858 when source branch does not exist1859 returns a blank ci config path1860 when user does not have permissions1861 has add ci config path1862 user callouts1863 provides a valid path value for user callout path1864 provides a valid value for suggest pipeline feature id1865 when source project is deleted1866 returns a blank rebase_path1867 has source_project_default_url1868 returns the default url to the source project1869 when source project is nil1870 returns nil1871 when gitpod is disabled1872 exposes gitpod attributes1873 when gitpod is enabled1874 exposes gitpod attributes1875 when gitpod is enabled for user1876 exposes gitpod_enabled as true1877 is_dismissed_suggest_pipeline1878 when user is logged in1879 when the suggest pipeline feature is enabled1880 is false1881 when suggest pipeline has been dismissed1882 is true1883 when the suggest pipeline feature is disabled1884 is true1885 when user is not logged in1886 is true1887project routing1888 ProjectsController routing1889 to #index1890 to #create1891 to #new1892 to #edit1893 to #update1894 to #destroy1895 to #preview_markdown1896 to #show1897 regular name1898 is expected to route {:get=>"/gitlab/gitlabhq"} to {:namespace_id=>"gitlab", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}1899 name with dot1900 is expected to route {:get=>"/gitlab/gitlabhq.keys"} to {:namespace_id=>"gitlab", :id=>"gitlabhq.keys", :controller=>"projects", :action=>"show"}1901 with nested group1902 is expected to route {:get=>"/gitlab/subgroup/gitlabhq"} to {:namespace_id=>"gitlab/subgroup", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}1903 Projects::RedirectController routing1904 to #redirect_from_id1905 Projects::AutocompleteSourcesController routing1906 to #members1907 to #issues1908 to #merge_requests1909 to #labels1910 to #milestones1911 to #commands1912 to #snippets1913 Projects::WikisController routing1914 behaves like wiki routing1915 redirects the base path to the home page1916 behaves like resource routing1917 routes resource actions1918 behaves like redirecting a legacy path1919 redirects /gitlab/gitlabhq/wikis to /gitlab/gitlabhq/-/wikis1920 behaves like redirecting a legacy path1921 redirects /gitlab/gitlabhq/wikis/home/edit to /gitlab/gitlabhq/-/wikis/home/edit1922 Projects::RepositoriesController routing1923 to #archive format:zip1924 to #archive format:tar.bz21925 to #archive with "/" in route1926 to #archive format:html1927 to #archive format:yaml1928 to #archive format:yml1929 Projects::BranchesController routing1930 to #branches1931 Projects::TagsController routing1932 to #tags1933 behaves like redirecting a legacy path1934 redirects /gitlab/gitlabhq/tags to /gitlab/gitlabhq/-/tags1935 Projects::DeployKeysController routing1936 behaves like resource routing1937 routes resource actions1938 Projects::ProtectedBranchesController routing1939 behaves like resource routing1940 routes resource actions1941 Projects::RefsController routing1942 to #switch1943 to #logs_tree1944 behaves like redirecting a legacy path1945 redirects /gitlab/gitlabhq/refs/switch to /gitlab/gitlabhq/-/refs/switch1946 behaves like redirecting a legacy path1947 redirects /gitlab/gitlabhq/refs/feature%2345/logs_tree to /gitlab/gitlabhq/-/refs/feature%2345/logs_tree1948 behaves like redirecting a legacy path1949 redirects /gitlab/gitlabhq/refs/stable/logs_tree/new%0A%0Aline.txt to /gitlab/gitlabhq/-/refs/stable/logs_tree/new%0A%0Aline.txt1950 behaves like redirecting a legacy path1951 redirects /gitlab/gitlabhq/refs/feature%2345/logs_tree/../../../../../@example.com/tree/a to /gitlab/gitlabhq/-/refs/feature#45/logs_tree/../../../../../-/example.com/tree/a1952 Projects::MergeRequestsController routing1953 to #commits1954 to #pipelines1955 to #merge1956 to #show1957 to #show from scoped route1958 behaves like resource routing1959 routes resource actions1960 behaves like redirecting a legacy path1961 redirects /gitlab/gitlabhq/merge_requests to /gitlab/gitlabhq/-/merge_requests1962 behaves like redirecting a legacy path1963 redirects /gitlab/gitlabhq/merge_requests/1/diffs to /gitlab/gitlabhq/-/merge_requests/1/diffs1964 Projects::MergeRequests::CreationsController routing1965 to #new1966 to #create1967 to #branch_from1968 to #branch_to1969 to #pipelines1970 to #diffs1971 behaves like redirecting a legacy path1972 redirects /gitlab/gitlabhq/merge_requests/new to /gitlab/gitlabhq/-/merge_requests/new1973 Projects::MergeRequests::DiffsController routing1974 to #show1975 Projects::MergeRequests::ConflictsController routing1976 to #show1977 SnippetsController routing1978 to #raw1979 to #index1980 to #new1981 to #edit1982 to #show1983 to #raw from unscope routing1984 behaves like redirecting a legacy path1985 redirects /gitlab/gitlabhq/snippets/1 to /gitlab/gitlabhq/-/snippets/11986 Projects::HooksController routing1987 to #test1988 behaves like resource routing1989 routes resource actions1990 behaves like redirecting a legacy path1991 redirects /gitlab/gitlabhq/hooks to /gitlab/gitlabhq/-/hooks1992 Projects::HookLogsController routing1993 to #retry1994 to #show1995 behaves like redirecting a legacy path1996 redirects /gitlab/gitlabhq/hooks/hook_logs/1 to /gitlab/gitlabhq/-/hooks/hook_logs/11997 Projects::CommitController routing1998 to #show1999 behaves like redirecting a legacy path2000 redirects /gitlab/gitlabhq/commit/4246fbd to /gitlab/gitlabhq/-/commit/4246fbd2001 Projects::CommitsController routing2002 to #show2003 behaves like resource routing2004 routes resource actions2005 behaves like redirecting a legacy path2006 redirects /gitlab/gitlabhq/commits/master to /gitlab/gitlabhq/-/commits/master2007 Projects::ProjectMembersController routing2008 behaves like resource routing2009 routes resource actions2010 Projects::MilestonesController routing2011 to #promote2012 behaves like resource routing2013 routes resource actions2014 Projects::LabelsController routing2015 to #index2016 Projects::IssuesController routing2017 to #bulk_update2018 behaves like resource routing2019 routes resource actions2020 behaves like redirecting a legacy path2021 redirects /gitlab/gitlabhq/issues to /gitlab/gitlabhq/-/issues2022 behaves like redirecting a legacy path2023 redirects /gitlab/gitlabhq/issues/1/edit to /gitlab/gitlabhq/-/issues/1/edit2024 Projects::NotesController routing2025 to #index2026 behaves like resource routing2027 routes resource actions2028 Projects::BlameController routing2029 to #show2030 to #streaming2031 to #page2032 Projects::BlobController routing2033 to #show2034 to #show from unscoped routing2035 Projects::TreeController routing2036 to #show2037 to #show from unscoped routing2038 Projects::FindFileController routing2039 to #show2040 to #list2041 behaves like redirecting a legacy path2042 redirects /gitlab/gitlabhq/find_file to /gitlab/gitlabhq/-/find_file2043 behaves like redirecting a legacy path2044 redirects /gitlab/gitlabhq/files/master to /gitlab/gitlabhq/-/files/master2045 Projects::BlobController routing2046 to #edit2047 to #preview2048 behaves like redirecting a legacy path2049 redirects /gitlab/gitlabhq/new/master to /gitlab/gitlabhq/-/new/master2050 behaves like redirecting a legacy path2051 redirects /gitlab/gitlabhq/edit/master/README to /gitlab/gitlabhq/-/edit/master/README2052 Projects::RawController routing2053 to #show2054 to #show from unscoped routing2055 Projects::CompareController routing2056 to #index2057 to #compare2058 to #show2059 behaves like redirecting a legacy path2060 redirects /gitlab/gitlabhq/compare to /gitlab/gitlabhq/-/compare2061 behaves like redirecting a legacy path2062 redirects /gitlab/gitlabhq/compare/master...stable to /gitlab/gitlabhq/-/compare/master...stable2063 Projects::NetworkController routing2064 to #show2065 Projects::GraphsController routing2066 to #show2067 Projects::ForksController routing2068 to #new2069 to #create2070 Projects::AvatarsController routing2071 to #destroy2072 Projects::PagesDomainsController routing2073 to #destroy with a valid domain name2074 to #show with a valid domain2075 behaves like resource routing2076 routes resource actions2077 Projects::ReleasesController routing2078 to #latest_permalink with a valid permalink path2079 to #show for the release with tag named permalink2080 Projects::Registry::TagsController routing2081 #destroy2082 correctly routes to a destroy action2083 takes registry tag name constrains into account2084 Projects::PipelinesController routing2085 to #index2086 to #show2087 behaves like redirecting a legacy path2088 redirects /gitlab/gitlabhq/pipelines to /gitlab/gitlabhq/-/pipelines2089 Projects::PipelineSchedulesController routing2090 to #index2091 behaves like redirecting a legacy path2092 redirects /gitlab/gitlabhq/pipeline_schedules to /gitlab/gitlabhq/-/pipeline_schedules2093 Projects::Settings::OperationsController routing2094 to #reset_alerting_token2095 Projects::Settings::RepositoryController routing2096 to #show2097 to repository#create_deploy_token2098 Projects::Settings::CiCdController routing2099 to #runner_setup_scripts2100 Projects::Settings::PackagesAndRegistriesController routing2101 to #show2102 to #cleanup_tags2103 Projects::Settings::IntegrationsController routing2104 to #index2105 to #edit2106 to #update2107 to #test2108 Projects::Settings::IntegrationHookLogsController2109 to #show2110 to #retry2111 Projects::TemplatesController routing2112 #show2113 routes when :template_type is `merge_request`2114 routes when :template_type is `issue`2115 routes to application#route_not_found when :template_type is unknown2116 Projects::DeployTokensController routing2117 routes to deploy_tokens#revoke2118 Projects::ServicePingController routing2119 routes to service_ping#web_ide_pipelines_count2120 Projects::EnvironmentsController routing2121 legacy routing2122 behaves like redirecting a legacy path2123 redirects /gitlab/gitlabhq/environments to /gitlab/gitlabhq/-/environments2124 Projects::ClustersController routing2125 legacy routing2126 behaves like redirecting a legacy path2127 redirects /gitlab/gitlabhq/clusters to /gitlab/gitlabhq/-/clusters2128 Projects::ErrorTrackingController routing2129 legacy routing2130 behaves like redirecting a legacy path2131 redirects /gitlab/gitlabhq/error_tracking to /gitlab/gitlabhq/-/error_tracking2132 Projects::Serverless routing2133 legacy routing2134 behaves like redirecting a legacy path2135 redirects /gitlab/gitlabhq/serverless to /gitlab/gitlabhq/-/serverless2136 Projects::DesignManagement::Designs::RawImagesController routing2137 to #show2138 Projects::DesignManagement::Designs::ResizedImageController routing2139 to #show2140 Projects::Snippets::BlobsController routing2141 to #raw2142 with a non-existent project2143 routes to 404 with get request2144 routes to 404 with delete request2145 routes to 404 with post request2146 routes to 404 with put request2147 with route to some action2148 routes to 404 with get request to2149 routes to 404 with delete request2150 routes to 404 with post request2151 routes to 404 with put request2152Snippet2153 modules2154 is expected to includes the Gitlab::VisibilityLevel module2155 is expected to includes the Participable module2156 is expected to includes the Referable module2157 is expected to includes the Sortable module2158 is expected to includes the Awardable module2159 associations2160 is expected to belong to author class_name => User required: false2161 is expected to belong to project required: false2162 is expected to have many notes dependent => destroy2163 is expected to have many award_emoji dependent => destroy2164 is expected to have many user_mentions class_name => SnippetUserMention2165 is expected to have one snippet_repository2166 is expected to have one statistics class_name => SnippetStatistics dependent => destroy2167 is expected to have many repository_storage_moves class_name => Snippets::RepositoryStorageMove inverse_of => container2168 validation2169 is expected to validate that :author cannot be empty/falsy2170 is expected to validate that :title cannot be empty/falsy2171 is expected to validate that the length of :title is at most 2552172 is expected to validate that the length of :file_name is at most 2552173 is expected to validate that :content cannot be empty/falsy2174 is expected to validate that the length of :content is at most 1, producing a custom validation error on failure2175 content validations2176 with existing snippets2177 does not raise a validation error if the content is not changed2178 raises and error if the content is changed and the size is bigger than limit2179 with new snippets2180 is valid when content is smaller than the limit2181 raises error when content is bigger than setting limit2182 description validations2183 with existing snippets2184 does not raise a validation error if the description is not changed2185 raises and error if the description is changed and the size is bigger than limit2186 with new snippets2187 is valid when description is smaller than the limit2188 raises error when description is bigger than setting limit2189 callbacks2190 creates snippet statistics when the snippet is created2191 #to_reference2192 when snippet belongs to a project2193 returns a String reference to the object2194 supports a cross-project reference2195 when snippet does not belong to a project2196 returns a String reference to the object2197 still returns shortest reference when project arg present2198 #file_name2199 file_name is nil2200 returns an empty string2201 file_name is not nil2202 returns the file_name2203 #content_html_invalidated?2204 invalidates the HTML cache of content when the filename changes2205 .search2206 returns snippets with a matching title2207 returns snippets with a partially matching title2208 returns snippets with a matching title regardless of the casing2209 returns snippets with a matching file name2210 returns snippets with a partially matching file name2211 returns snippets with a matching file name regardless of the casing2212 returns snippets with a matching description2213 when default snippet visibility set to internal2214 attribute_name: :visibility, value: "private"2215 sets the visibility level2216 attribute_name: :visibility_level, value: 02217 sets the visibility level2218 attribute_name: "visibility", value: "private"2219 sets the visibility level2220 attribute_name: "visibility_level", value: 02221 sets the visibility level2222 .with_optional_visibility2223 when a visibility level is provided2224 returns snippets with the given visibility2225 when a visibility level is not provided2226 returns all snippets2227 .only_personal_snippets2228 returns snippets not associated with any projects2229 .only_include_projects_visible_to2230 when a user is provided2231 returns snippets visible to the user2232 when a user is not provided2233 returns snippets visible to anonymous users2234 only_include_projects_with_snippets_enabled2235 includes snippets for projects with snippets enabled2236 when snippet_access_level is private2237 when the include_private option is enabled2238 includes snippets for projects with snippets set to private2239 when the include_private option is not enabled2240 does not include snippets for projects that have snippets set to private2241 .only_include_authorized_projects2242 only includes snippets for projects the user is authorized to see2243 .for_project_with_user2244 when a user is provided2245 returns an empty collection if the user can not view the snippets2246 returns the snippets if the user is a member of the project2247 returns public snippets for a public project the user is not a member of2248 when a user is not provided2249 returns an empty collection for a private project2250 returns public snippets for a public project2251 .visible_to_or_authored_by2252 returns snippets visible to the user2253 .find_by_project_title_trunc_created_at2254 returns a record if arguments match2255 returns nil if project does not match2256 returns nil if title does not match2257 returns nil if created_at does not match2258 #participants2259 includes the snippet author and note authors2260 #check_for_spam2261 when public and spammable attributes changed2262 returns true2263 when private2264 returns false2265 returns true when switching to public2266 when spammable attributes have not changed2267 returns false2268 #blob2269 returns a blob representing the snippet data2270 #all_files2271 lists files from the repository with the default branch2272 #blobs2273 when repository does not exist2274 returns empty array2275 when repository exists2276 returns array of blobs2277 when file does not exist2278 removes nil values from the blobs array2279 when some blobs are not retrievable from repository2280 does not include unretrievable blobs2281 #to_json2282 excludes secret_token from generated json2283 does not override existing exclude option value2284 #storage2285 stores snippet in @snippets dir2286 #track_snippet_repository2287 when a snippet repository entry does not exist2288 creates a new entry2289 tracks the snippet storage location2290 when a tracking entry exists2291 does not create a new entry in the database2292 updates the snippet storage location2293 #create_repository2294 creates the repository2295 sets the default branch2296 tracks snippet repository2297 sets same shard in snippet repository as in the repository storage2298 when repository exists2299 does not try to create repository2300 when snippet_repository exists2301 does not create a new snippet repository2302 when snippet_repository does not exist2303 creates a snippet_repository2304 #repository_storage2305 returns repository storage from ApplicationSetting2306 when snippet_project is already created2307 returns repository_storage from snippet_project2308 #repository_size_checker2309 sets up size checker2310 #hook_attrs2311 includes the expected attributes2312 #can_cache_field?2313 field: :title, file_name: nil, result: true2314 is expected to eq true2315 field: :title, file_name: "foo.bar", result: true2316 is expected to eq true2317 field: :description, file_name: nil, result: true2318 is expected to eq true2319 field: :description, file_name: "foo.bar", result: true2320 is expected to eq true2321 field: :content, file_name: nil, result: false2322 is expected to eq false2323 field: :content, file_name: "bar.foo", result: false2324 is expected to eq false2325 field: :content, file_name: "markdown.md", result: true2326 is expected to eq true2327 #url_to_repo2328 with personal snippet2329 is expected to eq "git@localhost:snippets/60.git"2330 with project snippet2331 is expected to eq "git@localhost:namespace367/project-372/snippets/61.git"2332 .max_file_limit2333 returns 102334 #list_files2335 when snippet has a repository2336 lists files from the repository with the ref2337 when ref is nil2338 lists files from the repository from the deafult_branch2339 when snippet does not have a repository2340 returns an empty array2341 #multiple_files?2342 when snippet has multiple files2343 is expected to be truthy2344 when snippet does not have multiple files2345 is expected to be falsey2346 when the snippet does not have a repository2347 is expected to be falsey2348 #git_transfer_in_progress?2349 returns true when there are git transfers2350 returns false when there are not git transfers2351 behaves like can move repository storage2352 #set_repository_read_only!2353 makes the repository read-only2354 raises an error if the project is already read-only2355 raises an error when there is an existing git transfer in progress2356 skip_git_transfer_check is true2357 makes the project read-only when git transfers are in progress2358 #set_repository_writable!2359 sets repository_read_only to false2360 #reference_counter2361 returns a Gitlab::ReferenceCounter object2362DiffNote2363 validations2364 is not valid when noteable is empty2365 behaves like a valid diff positionable note2366 for commit2367 position diff refs matches commit diff refs2368 is valid2369 position diff refs does not match commit diff refs2370 is invalid2371 commit does not exist2372 is invalid2373 original_position=2374 doesn't accept non-hash JSON passed as a string2375 does accept a position hash as a string2376 doesn't accept an array2377 does accept a hash2378 position=2379 doesn't accept non-hash JSON passed as a string2380 does accept a position hash as a string2381 doesn't accept an array2382 does accept a hash2383 change_position=2384 doesn't accept non-hash JSON passed as a string2385 does accept a position hash as a string2386 doesn't accept an array2387 does accept a hash2388 schema validation2389 position_attrs: {:old_path=>"5GNL4DDZYwWONJZ3u4XaTWczV1PxFXHseQM1c2Zv7RrUX4xRYdYnw2DaWCrXPJaFs39OaMPolrYDkCHRczu0CbL7U99Nkt39zsV4o5Wi2OskO3GvxBs4pgtHyQKUprvP2eYSOJPDeCJav7EOQKMVQ4Otf9ogvMagiB06jvXJvTsoIUr4BMmjPHT5qGh773A0L0vWGBG6Fdi0rKzxNHJtsVlM5nXPicA8lKo1M3D96LULZuJtU11TC6s3ZqfHpZeKamqDssZegfspCGCLsi3LeQ54N23zNeOR0cmpC5Fc3vyk69zXLwYs6F2F2av92tcZiFYv2n4nTs3WZBlUQzNwnj7vnoUTBUzDtF5LuaVQt4GxadZIakw5eEfNcvc050tXSC4AHRU0hJuCY3FVwGMVGQEz3X0nER1Tj5ljmsnxWq2H5diyeXD1FN4zdtr6yarBfSLAZDT2x2uBwh5TOMP5tlLItx8uOlcMcMHv8YOGLTI5Zp0fgPRyzlvE1YVmFyWsjo5kBgoJcxMK0FdNmXXti9SCSjUKvpNA1DSOVSMj9kZmsLv8clseJdv7CLyd5t8LFazPhUdqomz4hgZ7LeXD6LMD6Bo1gijODN6w10NcvDmLxDuH3JG8nk8xrbdVbscgXMFT6nnBjv7vTr7vjj3igXQdW6Zv4kBoOPEPdFLgKtVB3UDOqsyvIEHeONzB5PJjF4YgfCaTih646Cxzp5k7AopLu1zXN3c7b7LtyfE4YLVWUEFNEnFAvDvvOQ5en5xe5yJgeALTqOBwsplIQtQw0FTiOQwRkSxlwN78dxkDPfjUsFpOSFXmbkKcoDq1OJ7B5n4YuexvbT0O0N08vgTTr3ZiK6sM6VJ9ArQK8v5tbyqHV83DqZuBQpVzNHtZoViUTuA4NKDkNH6vPAysxdsDT4SiEeXwsWmxQz3gtTCWXBYkX83X5l0DBd6r6zz66snNO0kChnnzjjn6S4GVllkxNvPWezpY4EhP2WcS5jDK8"}2390 is expected to be invalid2391 position_attrs: {:new_path=>"OOBAgkGEZKHSGwdlzcaqTvm9GGCd09gE25hXcTWFnin9j7XKtSTFA0Zs6hQC4IJ3GxBpO8ulJZFnoqa3fC6afDZJweIDsjSy6QRMnnTIx6G6pg82ZtYjGZ4HqxaX9IENKwvIqceFARwj7szPhRx4nWXTM4zYGRjr3p7WEvC1gzBEEUF56OXAHqiqPiSwFB7fxrM4tKcWqipx8JSJNgnhfktaFyIWrOh7TAPSoupH6PRiQ2zGWFLahC0E2FLs290ki6FEJ7K5vve9I4YrReUpiNdlfIYPH0CJswZuliVrUT8l0f2j8h8FEOnmJTMAcSrltbfoaYG6eojcoqY1r7GhwsfnBoFmNKaUWCAC4uSYcKjvdqS4aIfMEK5BSQmo7iJz7Snpws1IKPI3yEApBhNr2lPJJLLr1HtAHieMHH2nVFMf3ADjvfc6RaKqHFBOOXDrqyJenY4XufKhorNePi3YZvlBH0hpzDOzOJH9l9SMI8YZZRY9uPSoPZBURsQnugZrTRANh8IGPUNxokH18aLYbSeSVfqAZkUkjWOd0aPnF7LhRywdL94rfebC1xl6lfKssYcdFdbjbxHwZbv276qkaGGyA8dkcIgSnpOk1Dlf96vOIvDiiaf1MacpfvAQeczhVhLDguwQjvkZmnUFAzRrLim6cWtGmdw1zy4d5SVPPrPcdCiJ7YNXBdspQem3njLUicp1HVbqjO15TUOOmgTae2bBvm1hJfEeqxLq2pp4L3eCMlH6LO4QAqe4vCwau1SYW25HapnlZFzw6AtJ0XbsGZV2yB4mYNBTKtO9U1X9qIlz1wWrHNuYmGumfUElxsYQcOIe5o0ZXV8OcRnf3v72f6kvaw9a9E8IvpHZ1Rzv9qqgJd4QwZtTIWYDBrp6zo37U0RsbGsJMwA7wtR66GOt28DVEs8NJGuvPFl9hCFAJYH2zsXsr4B5stLSvIKDEMfXTIyvg3pHwUNx9JQXlU0AMlNWSCExc8sGLdAvDgYJi"}2392 is expected to be invalid2393 position_attrs: {:old_line=>"foo"}2394 is expected to be invalid2395 position_attrs: {:new_line=>"foo"}2396 is expected to be invalid2397 position_attrs: {:line_range=>{:foo=>"bar"}}2398 is expected to be invalid2399 position_attrs: {:line_range=>{:line_code=>"BvRfqGoY7PnJ2eEhg1Tq4DYs9ageCY95tkpYbuqQ8DEtnir5zyibiHjgbwGmDLQQriuB4XjfqHHBIBYfa2hvcsF2S0NF26vgvgXGh"}}2400 is expected to be invalid2401 position_attrs: {:line_range=>{:type=>"5Sp5MZb0YzGVPf2XFK036OgqdYuxDl9cwuGxjUBbH8GuJcQJaezSR2OaGwzESUXXNXBGaAmpe7eiHXS5vZvN8e790i0YptnlreZUi"}}2402 is expected to be invalid2403 position_attrs: {:line_range=>{:old_line=>"foo"}}2404 is expected to be invalid2405 position_attrs: {:line_range=>{:new_line=>"foo"}}2406 is expected to be invalid2407 when importing2408 does not check if it's supported2409 #position=2410 when provided a string2411 sets the position2412 when provided a hash2413 sets the position2414 when provided a position object2415 sets the position2416 #original_position=2417 when provided a string2418 sets the original position2419 when provided a hash2420 sets the original position2421 when provided a position object2422 sets the original position2423 #create_diff_file callback2424 merge request2425 does not create diff note file if it is a reply2426 when diffs are already created2427 when diff_file is found in persisted diffs2428 when importing2429 when diff_line is found in persisted diff_file2430 creates a diff note file2431 when diff_line is not found in persisted diff_file2432 behaves like a valid diff note with after commit callback2433 when diff file is fetched from repository2434 when diff_line is not found2435 raises an error2436 when diff_line is found2437 fallback to fetch file from repository2438 creates a diff note file2439 when diff file is not found in repository2440 raises an error2441 when not importing2442 when diff_line is not found2443 raises an error2444 when diff_line is found2445 creates a diff note file2446 when diff file is not found in persisted diffs2447 behaves like a valid diff note with after commit callback2448 when diff file is fetched from repository2449 when diff_line is not found2450 raises an error2451 when diff_line is found2452 fallback to fetch file from repository2453 creates a diff note file2454 when diff file is not found in repository2455 raises an error2456 when diffs are not already created2457 behaves like a valid diff note with after commit callback2458 when diff file is fetched from repository2459 when diff_line is not found2460 raises an error2461 when diff_line is found2462 fallback to fetch file from repository2463 creates a diff note file2464 when diff file is not found in repository2465 raises an error2466 commit2467 creates a diff note file2468 does not create diff note file if it is a reply2469 #diff_file2470 when note_diff_file association exists2471 returns persisted diff file data2472 when the discussion was created in the diff2473 returns correct diff file2474 when discussion is outdated or not created in the diff2475 returns the correct diff file2476 note diff file creation enqueuing2477 enqueues CreateNoteDiffFileWorker if it is the first note of a discussion2478 does not enqueues CreateNoteDiffFileWorker if not first note of a discussion2479 when noteable is a Design2480 does not return a diff file2481 #latest_diff_file2482 when noteable is a Design2483 does not return a diff file2484 #diff_line2485 returns the correct diff line2486 #line_code2487 returns the correct line code2488 #active?2489 when noteable is a commit2490 returns true2491 when noteable is a merge request2492 when the merge request's diff refs match that of the diff note2493 returns true2494 when the merge request's diff refs don't match that of the diff note2495 returns false2496 creation2497 updating of position2498 when noteable is a commit2499 doesn't update the position2500 when noteable is a merge request2501 when the note is active2502 doesn't update the position2503 when the note is outdated2504 updates the position2505 #discussion_id2506 when it is newly created2507 has a discussion id2508 when it didn't store a discussion id before2509 has a discussion id2510 #created_at_diff?2511 when noteable is a commit2512 returns true2513 when noteable is a merge request2514 when the diff refs match the original one of the diff note2515 returns true2516 when the diff refs don't match the original one of the diff note2517 returns false2518 #supports_suggestion?2519 when noteable does not exist2520 returns false2521 when noteable does not support suggestions2522 returns false2523 when line is not suggestible2524 returns false2525 #banzai_render_context2526 includes expected context2527 image diff notes2528 returns true for on_image?2529 validations2530 is expected not to validate that :line_code cannot be empty/falsy2531 does not validate diff line2532 does not update the position2533 #to_ability_name2534 is expected to eq "note"2535 #shas2536 returns list of SHAs based on original_position2537 when position changes2538 includes the new position SHAs2539ProjectMember2540 associations2541 is expected to belong to project required: false2542 validations2543 is expected to allow :source_type to be ‹"Project"›2544 is expected not to allow :source_type to be ‹"Group"›2545 is expected to validate that :access_level is either ‹10›, ‹20›, ‹30›, or ‹40›2546 default values2547 is expected to eq "Project"2548 delegations2549 is expected to delegate #namespace_id to the #project object2550 .access_level_roles2551 returns Gitlab::Access.options2552 #permissible_access_level_roles2553 when member can manage owners2554 returns Gitlab::Access.options_with_owner2555 when member cannot manage owners2556 returns Gitlab::Access.options2557 #real_source_type2558 is expected to eq "Project"2559 #destroy2560 creates an expired event when left due to expiry2561 creates a left event when left due to leave2562 for an orphaned member2563 does not raise an error2564 #holder_of_the_personal_namespace?2565 personal_namespace_holder?: false, expected: false2566 returns expected2567 personal_namespace_holder?: true, expected: true2568 returns expected2569 .truncate_teams2570 is expected to be empty2571 is expected to be empty2572 behaves like members notifications2573 #after_create2574 sends email to user2575 #after_update2576 calls NotificationService.update_project_member2577 does not send an email when the access level has not changed2578 #after_commit2579 on creation of a member requesting access2580 calls NotificationService.new_access_request2581 #accept_request2582 calls NotificationService.new_project_member2583 #accept_invite!2584 calls NotificationService.accept_project_invite2585 #decline_invite!2586 calls NotificationService.decline_project_invite2587 access levels2588 with parent group2589 behaves like inherited access level as a member of entity2590 with root parent_entity developer member2591 is allowed to be a maintainer of the entity2592 is not allowed to be a reporter of the entity2593 is allowed to change to be a developer of the entity2594 is not allowed to change to be a guest of the entity2595 shows an error if the member can't be updated2596 allows changing the level from a non existing member2597 with parent group and a subgroup2598 behaves like inherited access level as a member of entity2599 with root parent_entity developer member2600 is allowed to be a maintainer of the entity2601 is not allowed to be a reporter of the entity2602 is allowed to change to be a developer of the entity2603 is not allowed to change to be a guest of the entity2604 shows an error if the member can't be updated2605 allows changing the level from a non existing member2606 refreshing project_authorizations2607 when the source project of the project member is destroyed2608 refreshes the authorization of user to the project in the group2609 refreshes the authorization without calling AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker2610 when the user of the project member is destroyed2611 refreshes the authorization of user to the project in the group2612 refreshes the authorization without calling `AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker`2613 when importing2614 does not refresh2615 authorization refresh on addition/updation/deletion2616 on create2617 changes access level2618 behaves like calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline to recalculate authorizations2619 calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline2620 behaves like calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations2621 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker2622 on update2623 changes access level2624 behaves like calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline to recalculate authorizations2625 calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline2626 behaves like calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations2627 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker2628 on destroy2629 changes access level2630 behaves like calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline to recalculate authorizations2631 calls AuthorizedProjectUpdate::ProjectRecalculatePerUserWorker inline2632 behaves like calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations2633 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker2634 #set_member_namespace_id2635 on create2636 sets the member_namespace_id2637CI YML Templates2638 that support autodevops2639 when including available templates in a CI YAML configuration2640 template_name: "5-Minute-Production-App.gitlab-ci.yml"2641 is expected to be valid2642 require default stages to be included2643 template_name: "Android.gitlab-ci.yml"2644 is expected to be valid2645 require default stages to be included2646 template_name: "Android-Fastlane.gitlab-ci.yml"2647 is expected to be valid2648 require default stages to be included2649 template_name: "Auto-DevOps.gitlab-ci.yml"2650 is expected to be valid2651 require default stages to be included2652 template_name: "Bash.gitlab-ci.yml"2653 is expected to be valid2654 require default stages to be included2655 template_name: "C++.gitlab-ci.yml"2656 is expected to be valid2657 require default stages to be included2658 template_name: "Chef.gitlab-ci.yml"2659 is expected to be valid2660 require default stages to be included2661 template_name: "Clojure.gitlab-ci.yml"2662 is expected to be valid2663 require default stages to be included2664 template_name: "Code-Quality.gitlab-ci.yml"2665 is expected to be valid2666 require default stages to be included2667 template_name: "Composer.gitlab-ci.yml"2668 is expected to be valid2669 require default stages to be included2670 template_name: "Crystal.gitlab-ci.yml"2671 is expected to be valid2672 require default stages to be included2673 template_name: "Dart.gitlab-ci.yml"2674 is expected to be valid2675 require default stages to be included2676 template_name: "Deploy-ECS.gitlab-ci.yml"2677 is expected to be valid2678 require default stages to be included2679 template_name: "Django.gitlab-ci.yml"2680 is expected to be valid2681 require default stages to be included2682 template_name: "Docker.gitlab-ci.yml"2683 is expected to be valid2684 require default stages to be included2685 template_name: "Elixir.gitlab-ci.yml"2686 is expected to be valid2687 require default stages to be included2688 template_name: "Flutter.gitlab-ci.yml"2689 is expected to be valid2690 require default stages to be included2691 template_name: "Getting-Started.gitlab-ci.yml"2692 is expected to be valid2693 require default stages to be included2694 template_name: "Go.gitlab-ci.yml"2695 is expected to be valid2696 require default stages to be included2697 template_name: "Gradle.gitlab-ci.yml"2698 is expected to be valid2699 require default stages to be included2700 template_name: "Grails.gitlab-ci.yml"2701 is expected to be valid2702 require default stages to be included2703 template_name: "Indeni.Cloudrail.gitlab-ci.yml"2704 is expected to be valid2705 require default stages to be included2706 template_name: "Julia.gitlab-ci.yml"2707 is expected to be valid2708 require default stages to be included2709 template_name: "Kaniko.gitlab-ci.yml"2710 is expected to be valid2711 require default stages to be included2712 template_name: "Katalon.gitlab-ci.yml"2713 is expected to be valid2714 require default stages to be included2715 template_name: "LaTeX.gitlab-ci.yml"2716 is expected to be valid2717 require default stages to be included2718 template_name: "Laravel.gitlab-ci.yml"2719 is expected to be valid2720 require default stages to be included2721 template_name: "MATLAB.gitlab-ci.yml"2722 is expected to be valid2723 require default stages to be included2724 template_name: "Maven.gitlab-ci.yml"2725 is expected to be valid2726 require default stages to be included2727 template_name: "Mono.gitlab-ci.yml"2728 is expected to be valid2729 require default stages to be included2730 template_name: "Nodejs.gitlab-ci.yml"2731 is expected to be valid2732 require default stages to be included2733 template_name: "OpenShift.gitlab-ci.yml"2734 is expected to be valid2735 require default stages to be included2736 template_name: "PHP.gitlab-ci.yml"2737 is expected to be valid2738 require default stages to be included2739 template_name: "Packer.gitlab-ci.yml"2740 is expected to be valid2741 require default stages to be included2742 template_name: "Python.gitlab-ci.yml"2743 is expected to be valid2744 require default stages to be included2745 template_name: "Qualys-IaC-Security.gitlab-ci.yml"2746 is expected to be valid2747 require default stages to be included2748 template_name: "Ruby.gitlab-ci.yml"2749 is expected to be valid2750 require default stages to be included2751 template_name: "Rust.gitlab-ci.yml"2752 is expected to be valid2753 require default stages to be included2754 template_name: "Scala.gitlab-ci.yml"2755 is expected to be valid2756 require default stages to be included2757 template_name: "Swift.gitlab-ci.yml"2758 is expected to be valid2759 require default stages to be included2760 template_name: "Terraform.gitlab-ci.yml"2761 is expected to be valid2762 require default stages to be included2763 template_name: "Terraform-Module.gitlab-ci.yml"2764 is expected to be valid2765 require default stages to be included2766 template_name: "dotNET.gitlab-ci.yml"2767 is expected to be valid2768 require default stages to be included2769 template_name: "dotNET-Core.gitlab-ci.yml"2770 is expected to be valid2771 require default stages to be included2772 template_name: "iOS-Fastlane.gitlab-ci.yml"2773 is expected to be valid2774 require default stages to be included2775 template_name: "liquibase.gitlab-ci.yml"2776 is expected to be valid2777 require default stages to be included2778 template_name: "npm.gitlab-ci.yml"2779 is expected to be valid2780 require default stages to be included2781 template_name: "Pages/Brunch.gitlab-ci.yml"2782 is expected to be valid2783 require default stages to be included2784 template_name: "Pages/Doxygen.gitlab-ci.yml"2785 is expected to be valid2786 require default stages to be included2787 template_name: "Pages/Gatsby.gitlab-ci.yml"2788 is expected to be valid2789 require default stages to be included2790 template_name: "Pages/HTML.gitlab-ci.yml"2791 is expected to be valid2792 require default stages to be included2793 template_name: "Pages/Harp.gitlab-ci.yml"2794 is expected to be valid2795 require default stages to be included2796 template_name: "Pages/Hexo.gitlab-ci.yml"2797 is expected to be valid2798 require default stages to be included2799 template_name: "Pages/Hugo.gitlab-ci.yml"2800 is expected to be valid2801 require default stages to be included2802 template_name: "Pages/Hyde.gitlab-ci.yml"2803 is expected to be valid2804 require default stages to be included2805 template_name: "Pages/JBake.gitlab-ci.yml"2806 is expected to be valid2807 require default stages to be included2808 template_name: "Pages/Jekyll.gitlab-ci.yml"2809 is expected to be valid2810 require default stages to be included2811 template_name: "Pages/Jigsaw.gitlab-ci.yml"2812 is expected to be valid2813 require default stages to be included2814 template_name: "Pages/Lektor.gitlab-ci.yml"2815 is expected to be valid2816 require default stages to be included2817 template_name: "Pages/Metalsmith.gitlab-ci.yml"2818 is expected to be valid2819 require default stages to be included2820 template_name: "Pages/Middleman.gitlab-ci.yml"2821 is expected to be valid2822 require default stages to be included2823 template_name: "Pages/Nanoc.gitlab-ci.yml"2824 is expected to be valid2825 require default stages to be included2826 template_name: "Pages/Octopress.gitlab-ci.yml"2827 is expected to be valid2828 require default stages to be included2829 template_name: "Pages/Pelican.gitlab-ci.yml"2830 is expected to be valid2831 require default stages to be included2832 template_name: "Pages/SwaggerUI.gitlab-ci.yml"2833 is expected to be valid2834 require default stages to be included2835 template_name: "Pages/Zola.gitlab-ci.yml"2836 is expected to be valid2837 require default stages to be included2838 template_name: "Verify/Accessibility.gitlab-ci.yml"2839 is expected to be valid2840 require default stages to be included2841 template_name: "Verify/Browser-Performance.gitlab-ci.yml"2842 is expected to be valid2843 require default stages to be included2844 template_name: "Verify/FailFast.gitlab-ci.yml"2845 is expected to be valid2846 require default stages to be included2847 template_name: "Verify/Load-Performance-Testing.gitlab-ci.yml"2848 is expected to be valid2849 require default stages to be included2850 template_name: "Security/API-Discovery.gitlab-ci.yml"2851 is expected to be valid2852 require default stages to be included2853 template_name: "Security/Container-Scanning.gitlab-ci.yml"2854 is expected to be valid2855 require default stages to be included2856 template_name: "Security/Coverage-Fuzzing.gitlab-ci.yml"2857 is expected to be valid2858 require default stages to be included2859 template_name: "Security/DAST-On-Demand-API-Scan.gitlab-ci.yml"2860 is expected to be valid2861 require default stages to be included2862 template_name: "Security/DAST-On-Demand-Scan.gitlab-ci.yml"2863 is expected to be valid2864 require default stages to be included2865 template_name: "Security/DAST-Runner-Validation.gitlab-ci.yml"2866 is expected to be valid2867 require default stages to be included2868 template_name: "Security/Dependency-Scanning.gitlab-ci.yml"2869 is expected to be valid2870 require default stages to be included2871 template_name: "Security/Fortify-FoD-sast.gitlab-ci.yml"2872 is expected to be valid2873 require default stages to be included2874 template_name: "Security/License-Scanning.gitlab-ci.yml"2875 is expected to be valid2876 require default stages to be included2877 template_name: "Security/SAST.gitlab-ci.yml"2878 is expected to be valid2879 require default stages to be included2880 template_name: "Security/SAST-IaC.gitlab-ci.yml"2881 is expected to be valid2882 require default stages to be included2883 template_name: "Security/Secret-Detection.gitlab-ci.yml"2884 is expected to be valid2885 require default stages to be included2886 template_name: "Security/Secure-Binaries.gitlab-ci.yml"2887 is expected to be valid2888 require default stages to be included2889 that do not support autodevops2890 when DAST API template2891 with default stages2892 is expected not to be valid2893 with defined stages2894 is expected to be valid2895 require default stages to be included2896 when API Fuzzing template2897 with default stages2898 is expected not to be valid2899 with defined stages2900 is expected to be valid2901 require default stages to be included2902GroupsHelper2903 #group_icon_url2904 returns an url for the avatar2905 gives default avatar_icon when no avatar is present2906 #group_lfs_status2907 only one project in group2908 returns all projects as enabled2909 returns all projects as disabled2910 more than one project in group2911 LFS enabled in group2912 returns both projects as enabled2913 returns only one as enabled2914 LFS disabled in group2915 returns both projects as disabled2916 returns only one as disabled2917 #group_title2918 enqueues the elements in the breadcrumb schema list2919 avoids N+1 queries2920 traversal queries2921 recursive2922 outputs the groups in the correct order2923 linear2924 outputs the groups in the correct order2925 #group_title_link2926 link2927 uses the group name as innerText2928 links to the group path2929 icon2930 specifies the group name as the alt text2931 uses the group's avatar_url2932 #share_with_group_lock_help_text2933 traversal queries2934 recursive2935 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil2936 has the correct help text with correct ancestor links2937 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil2938 has the correct help text with correct ancestor links2939 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil2940 has the correct help text with correct ancestor links2941 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil2942 has the correct help text with correct ancestor links2943 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil2944 has the correct help text with correct ancestor links2945 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil2946 has the correct help text with correct ancestor links2947 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup2948 has the correct help text with correct ancestor links2949 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup2950 has the correct help text with correct ancestor links2951 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup2952 has the correct help text with correct ancestor links2953 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup2954 has the correct help text with correct ancestor links2955 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup2956 has the correct help text with correct ancestor links2957 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup2958 has the correct help text with correct ancestor links2959 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil2960 has the correct help text with correct ancestor links2961 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil2962 has the correct help text with correct ancestor links2963 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil2964 has the correct help text with correct ancestor links2965 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil2966 has the correct help text with correct ancestor links2967 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil2968 has the correct help text with correct ancestor links2969 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil2970 has the correct help text with correct ancestor links2971 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group2972 has the correct help text with correct ancestor links2973 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group2974 has the correct help text with correct ancestor links2975 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group2976 has the correct help text with correct ancestor links2977 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group2978 has the correct help text with correct ancestor links2979 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group2980 has the correct help text with correct ancestor links2981 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group2982 has the correct help text with correct ancestor links2983 linear2984 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil2985 has the correct help text with correct ancestor links2986 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil2987 has the correct help text with correct ancestor links2988 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil2989 has the correct help text with correct ancestor links2990 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil2991 has the correct help text with correct ancestor links2992 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil2993 has the correct help text with correct ancestor links2994 root_share_with_group_locked: false, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil2995 has the correct help text with correct ancestor links2996 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup2997 has the correct help text with correct ancestor links2998 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup2999 has the correct help text with correct ancestor links3000 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :subgroup3001 has the correct help text with correct ancestor links3002 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup3003 has the correct help text with correct ancestor links3004 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :subgroup3005 has the correct help text with correct ancestor links3006 root_share_with_group_locked: false, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :subgroup3007 has the correct help text with correct ancestor links3008 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil3009 has the correct help text with correct ancestor links3010 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil3011 has the correct help text with correct ancestor links3012 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil3013 has the correct help text with correct ancestor links3014 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :default_help, linked_ancestor: nil3015 has the correct help text with correct ancestor links3016 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :default_help, linked_ancestor: nil3017 has the correct help text with correct ancestor links3018 root_share_with_group_locked: true, subgroup_share_with_group_locked: false, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :default_help, linked_ancestor: nil3019 has the correct help text with correct ancestor links3020 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :root_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group3021 has the correct help text with correct ancestor links3022 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group3023 has the correct help text with correct ancestor links3024 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: false, current_user: :sub_sub_owner, help_text: :ancestor_locked_and_has_been_overridden, linked_ancestor: :root_group3025 has the correct help text with correct ancestor links3026 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :root_owner, help_text: :ancestor_locked_but_you_can_override, linked_ancestor: :root_group3027 has the correct help text with correct ancestor links3028 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group3029 has the correct help text with correct ancestor links3030 root_share_with_group_locked: true, subgroup_share_with_group_locked: true, sub_subgroup_share_with_group_locked: true, current_user: :sub_sub_owner, help_text: :ancestor_locked_so_ask_the_owner, linked_ancestor: :root_group3031 has the correct help text with correct ancestor links3032 #can_disable_group_emails?3033 returns true for the group owner3034 returns false for anyone else3035 when subgroups3036 returns false if parent group is disabling emails3037 returns true if parent group is not disabling emails3038 #can_update_default_branch_protection?3039 for users who can update default branch protection of the group3040 is expected to be truthy3041 for users who cannot update default branch protection of the group3042 is expected to be falsey3043 #show_thanks_for_purchase_alert?3044 with quantity present3045 returns true3046 with quantity not present3047 returns false3048 with quantity empty3049 returns false3050 #render_setting_to_allow_project_access_token_creation?3051 returns true if group is root3052 returns false if group is subgroup3053 #can_admin_group_member?3054 returns true when current_user can admin members3055 returns false when current_user can not admin members3056 #can_admin_service_accounts?3057 returns false when current_user can not admin members3058 #localized_jobs_to_be_done_choices3059 has a translation for all `jobs_to_be_done` values3060 #subgroup_creation_data3061 when group has a parent3062 returns expected hash3063 when group does not have a parent3064 returns expected hash3065 #group_name_and_path_app_data3066 when group has a parent3067 returns expected hash3068 #group_overview_tabs_app_data3069 returns expected hash3070 #enabled_git_access_protocol_options_for_group3071 instance setting is nil3072 is expected to contain exactly ["Both SSH and HTTP(S)", "all"], ["Only SSH", "ssh"], and ["Only HTTP(S)", "http"]3073 instance setting is blank3074 is expected to contain exactly ["Both SSH and HTTP(S)", "all"], ["Only SSH", "ssh"], and ["Only HTTP(S)", "http"]3075 instance setting is ssh3076 is expected to contain exactly ["Only SSH", "ssh"]3077 instance setting is http3078 is expected to contain exactly ["Only HTTP(S)", "http"]3079VerifyPagesDomainService3080 #execute3081 domain_sym: :domain, code_sym: :verification_code3082 when domain is disabled(or new)3083 when txt record contains verification code3084 verifies and enables the domain3085 when txt record contains verification code with other text3086 verifies and enables the domain3087 when txt record does not contain verification code3088 unverifies domain3089 disables domain and shedules it for removal in 1 week3090 when txt record does not contain verification code3091 unverifies domain3092 disables domain and shedules it for removal in 1 week3093 when no txt records are present3094 unverifies domain3095 disables domain and shedules it for removal in 1 week3096 when domain is verified3097 when txt record contains verification code3098 verifies and enables the domain3099 when txt record contains verification code with other text3100 verifies and enables the domain3101 when txt record does not contain verification code3102 unverifies but does not disable domain3103 does not schedule domain for removal3104 when no txt records are present3105 unverifies but does not disable domain3106 does not schedule domain for removal3107 when domain is expired3108 when the right code is present3109 verifies and enables the domain3110 when the right code is not present3111 unverifies domain3112 disables domain and shedules it for removal in 1 week3113 when domain is disabled and scheduled for removal3114 when the right code is present3115 verifies and enables domain3116 prevent domain from being removed3117 when the right code is not present3118 keeps domain scheduled for removal but does not change removal time3119 invalid domain3120 can be disabled3121 domain_sym: :domain, code_sym: :keyed_verification_code3122 when domain is disabled(or new)3123 when txt record contains verification code3124 verifies and enables the domain3125 when txt record contains verification code with other text3126 verifies and enables the domain3127 when txt record does not contain verification code3128 unverifies domain3129 disables domain and shedules it for removal in 1 week3130 when txt record does not contain verification code3131 unverifies domain3132 disables domain and shedules it for removal in 1 week3133 when no txt records are present3134 unverifies domain3135 disables domain and shedules it for removal in 1 week3136 when domain is verified3137 when txt record contains verification code3138 verifies and enables the domain3139 when txt record contains verification code with other text3140 verifies and enables the domain3141 when txt record does not contain verification code3142 unverifies but does not disable domain3143 does not schedule domain for removal3144 when no txt records are present3145 unverifies but does not disable domain3146 does not schedule domain for removal3147 when domain is expired3148 when the right code is present3149 verifies and enables the domain3150 when the right code is not present3151 unverifies domain3152 disables domain and shedules it for removal in 1 week3153 when domain is disabled and scheduled for removal3154 when the right code is present3155 verifies and enables domain3156 prevent domain from being removed3157 when the right code is not present3158 keeps domain scheduled for removal but does not change removal time3159 invalid domain3160 can be disabled3161 domain_sym: :verification_domain, code_sym: :verification_code3162 when domain is disabled(or new)3163 when txt record contains verification code3164 verifies and enables the domain3165 when txt record contains verification code with other text3166 verifies and enables the domain3167 when txt record does not contain verification code3168 unverifies domain3169 disables domain and shedules it for removal in 1 week3170 when txt record does not contain verification code3171 unverifies domain3172 disables domain and shedules it for removal in 1 week3173 when no txt records are present3174 unverifies domain3175 disables domain and shedules it for removal in 1 week3176 when domain is verified3177 when txt record contains verification code3178 verifies and enables the domain3179 when txt record contains verification code with other text3180 verifies and enables the domain3181 when txt record does not contain verification code3182 unverifies but does not disable domain3183 does not schedule domain for removal3184 when no txt records are present3185 unverifies but does not disable domain3186 does not schedule domain for removal3187 when domain is expired3188 when the right code is present3189 verifies and enables the domain3190 when the right code is not present3191 unverifies domain3192 disables domain and shedules it for removal in 1 week3193 when domain is disabled and scheduled for removal3194 when the right code is present3195 verifies and enables domain3196 prevent domain from being removed3197 when the right code is not present3198 keeps domain scheduled for removal but does not change removal time3199 invalid domain3200 can be disabled3201 domain_sym: :verification_domain, code_sym: :keyed_verification_code3202 when domain is disabled(or new)3203 when txt record contains verification code3204 verifies and enables the domain3205 when txt record contains verification code with other text3206 verifies and enables the domain3207 when txt record does not contain verification code3208 unverifies domain3209 disables domain and shedules it for removal in 1 week3210 when txt record does not contain verification code3211 unverifies domain3212 disables domain and shedules it for removal in 1 week3213 when no txt records are present3214 unverifies domain3215 disables domain and shedules it for removal in 1 week3216 when domain is verified3217 when txt record contains verification code3218 verifies and enables the domain3219 when txt record contains verification code with other text3220 verifies and enables the domain3221 when txt record does not contain verification code3222 unverifies but does not disable domain3223 does not schedule domain for removal3224 when no txt records are present3225 unverifies but does not disable domain3226 does not schedule domain for removal3227 when domain is expired3228 when the right code is present3229 verifies and enables the domain3230 when the right code is not present3231 unverifies domain3232 disables domain and shedules it for removal in 1 week3233 when domain is disabled and scheduled for removal3234 when the right code is present3235 verifies and enables domain3236 prevent domain from being removed3237 when the right code is not present3238 keeps domain scheduled for removal but does not change removal time3239 invalid domain3240 can be disabled3241 timeout behaviour3242 sets a timeout on the DNS query3243 email notifications3244 factory: nil, verification_succeeds: true, expected_notification: nil3245 sends a notification if appropriate3246 factory: nil, verification_succeeds: false, expected_notification: :verification_failed3247 sends a notification if appropriate3248 factory: :reverify, verification_succeeds: true, expected_notification: nil3249 sends a notification if appropriate3250 factory: :reverify, verification_succeeds: false, expected_notification: :verification_failed3251 sends a notification if appropriate3252 factory: :unverified, verification_succeeds: true, expected_notification: :verification_succeeded3253 sends a notification if appropriate3254 factory: :unverified, verification_succeeds: false, expected_notification: nil3255 sends a notification if appropriate3256 factory: :expired, verification_succeeds: true, expected_notification: nil3257 sends a notification if appropriate3258 factory: :expired, verification_succeeds: false, expected_notification: :disabled3259 sends a notification if appropriate3260 factory: :disabled, verification_succeeds: true, expected_notification: :enabled3261 sends a notification if appropriate3262 factory: :disabled, verification_succeeds: false, expected_notification: nil3263 sends a notification if appropriate3264 pages verification disabled3265 skips email notifications3266 no verification code3267 returns an error3268 pages domain verification is disabled3269 extends domain validity by unconditionally reverifying3270 does not shorten any grace period3271Gitlab::Ci::Build::Prerequisite::KubernetesNamespace3272 #unmet?3273 build has no deployment3274 is expected to be falsey3275 build has a deployment3276 and a cluster to deploy to3277 is expected to be truthy3278 and the cluster is not managed3279 is expected to be falsey3280 and a namespace is already created for this project3281 is expected to be falsey3282 and the service_account_token is blank3283 is expected to be truthy3284 and no cluster to deploy to3285 is expected to be falsey3286 #complete!3287 completion is required3288 kubernetes namespace does not exist3289 creates a namespace using a new record3290 the build has a namespace configured via CI template3291 the requested namespace matches the default3292 creates a namespace3293 the requested namespace differs from the default3294 does not create a namespace3295 kubernetes namespace exists (but has no service_account_token)3296 creates a namespace using the tokenless record3297 completion is not required3298 does not create a namespace3299Gitlab::Ci::Pipeline::Expression::Statement3300 .new3301 when variables are not provided3302 allows to properly initializes the statement3303 #evaluate3304 expression: "$PRESENT_VARIABLE == \"my variable\"", value: true3305 evaluates to `true`3306 expression: "\"my variable\" == $PRESENT_VARIABLE", value: true3307 evaluates to `true`3308 expression: "$PRESENT_VARIABLE == null", value: false3309 evaluates to `false`3310 expression: "$EMPTY_VARIABLE == null", value: false3311 evaluates to `false`3312 expression: "\"\" == $EMPTY_VARIABLE", value: true3313 evaluates to `true`3314 expression: "$EMPTY_VARIABLE", value: ""3315 evaluates to `""`3316 expression: "$UNDEFINED_VARIABLE == null", value: true3317 evaluates to `true`3318 expression: "null == $UNDEFINED_VARIABLE", value: true3319 evaluates to `true`3320 expression: "$PRESENT_VARIABLE", value: "my variable"3321 evaluates to `"my variable"`3322 expression: "$UNDEFINED_VARIABLE", value: nil3323 evaluates to `nil`3324 expression: "$PRESENT_VARIABLE =~ /var.*e$/", value: true3325 evaluates to `true`3326 expression: "$PRESENT_VARIABLE =~ /va\\r.*e$/", value: false3327 evaluates to `false`3328 expression: "$PRESENT_VARIABLE =~ /va\\/r.*e$/", value: false3329 evaluates to `false`3330 expression: "$PRESENT_VARIABLE =~ /var.*e$/", value: true3331 evaluates to `true`3332 expression: "$PRESENT_VARIABLE =~ /^var.*/", value: false3333 evaluates to `false`3334 expression: "$EMPTY_VARIABLE =~ /var.*/", value: false3335 evaluates to `false`3336 expression: "$UNDEFINED_VARIABLE =~ /var.*/", value: false3337 evaluates to `false`3338 expression: "$PRESENT_VARIABLE =~ /VAR.*/i", value: true3339 evaluates to `true`3340 expression: "$PATH_VARIABLE =~ /path\\/variable/", value: true3341 evaluates to `true`3342 expression: "$FULL_PATH_VARIABLE =~ /^\\/a\\/full\\/path\\/variable\\/value$/", value: true3343 evaluates to `true`3344 expression: "$FULL_PATH_VARIABLE =~ /\\/path\\/variable\\/value$/", value: true3345 evaluates to `true`3346 expression: "$PRESENT_VARIABLE != \"my variable\"", value: false3347 evaluates to `false`3348 expression: "\"my variable\" != $PRESENT_VARIABLE", value: false3349 evaluates to `false`3350 expression: "$PRESENT_VARIABLE != null", value: true3351 evaluates to `true`3352 expression: "$EMPTY_VARIABLE != null", value: true3353 evaluates to `true`3354 expression: "\"\" != $EMPTY_VARIABLE", value: false3355 evaluates to `false`3356 expression: "$UNDEFINED_VARIABLE != null", value: false3357 evaluates to `false`3358 expression: "null != $UNDEFINED_VARIABLE", value: false3359 evaluates to `false`3360 expression: "$PRESENT_VARIABLE !~ /var.*e$/", value: false3361 evaluates to `false`3362 expression: "$PRESENT_VARIABLE !~ /^var.*/", value: true3363 evaluates to `true`3364 expression: "$PRESENT_VARIABLE !~ /^v\\ar.*/", value: true3365 evaluates to `true`3366 expression: "$PRESENT_VARIABLE !~ /^v\\/ar.*/", value: true3367 evaluates to `true`3368 expression: "$EMPTY_VARIABLE !~ /var.*/", value: true3369 evaluates to `true`3370 expression: "$UNDEFINED_VARIABLE !~ /var.*/", value: true3371 evaluates to `true`3372 expression: "$PRESENT_VARIABLE !~ /VAR.*/i", value: false3373 evaluates to `false`3374 expression: "$PRESENT_VARIABLE && \"string\"", value: "string"3375 evaluates to `"string"`3376 expression: "$PRESENT_VARIABLE && $PRESENT_VARIABLE", value: "my variable"3377 evaluates to `"my variable"`3378 expression: "$PRESENT_VARIABLE && $EMPTY_VARIABLE", value: ""3379 evaluates to `""`3380 expression: "$PRESENT_VARIABLE && null", value: nil3381 evaluates to `nil`3382 expression: "\"string\" && $PRESENT_VARIABLE", value: "my variable"3383 evaluates to `"my variable"`3384 expression: "$EMPTY_VARIABLE && $PRESENT_VARIABLE", value: "my variable"3385 evaluates to `"my variable"`3386 expression: "null && $PRESENT_VARIABLE", value: nil3387 evaluates to `nil`3388 expression: "$EMPTY_VARIABLE && \"string\"", value: "string"3389 evaluates to `"string"`3390 expression: "$EMPTY_VARIABLE && $EMPTY_VARIABLE", value: ""3391 evaluates to `""`3392 expression: "\"string\" && $EMPTY_VARIABLE", value: ""3393 evaluates to `""`3394 expression: "\"string\" && null", value: nil3395 evaluates to `nil`3396 expression: "null && \"string\"", value: nil3397 evaluates to `nil`3398 expression: "\"string\" && \"string\"", value: "string"3399 evaluates to `"string"`3400 expression: "null && null", value: nil3401 evaluates to `nil`3402 expression: "$PRESENT_VARIABLE =~ /my var/ && $EMPTY_VARIABLE =~ /nope/", value: false3403 evaluates to `false`3404 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE", value: "my variable"3405 evaluates to `"my variable"`3406 expression: "$EMPTY_VARIABLE == \"\" && $PRESENT_VARIABLE != \"nope\"", value: true3407 evaluates to `true`3408 expression: "$PRESENT_VARIABLE && $EMPTY_VARIABLE", value: ""3409 evaluates to `""`3410 expression: "$PRESENT_VARIABLE && $UNDEFINED_VARIABLE", value: nil3411 evaluates to `nil`3412 expression: "$UNDEFINED_VARIABLE && $EMPTY_VARIABLE", value: nil3413 evaluates to `nil`3414 expression: "$UNDEFINED_VARIABLE && $PRESENT_VARIABLE", value: nil3415 evaluates to `nil`3416 expression: "$FULL_PATH_VARIABLE =~ /^\\/a\\/full\\/path\\/variable\\/value$/ && $PATH_VARIABLE =~ /path\\/variable/", value: true3417 evaluates to `true`3418 expression: "$FULL_PATH_VARIABLE =~ /^\\/a\\/bad\\/path\\/variable\\/value$/ && $PATH_VARIABLE =~ /path\\/variable/", value: false3419 evaluates to `false`3420 expression: "$FULL_PATH_VARIABLE =~ /^\\/a\\/full\\/path\\/variable\\/value$/ && $PATH_VARIABLE =~ /bad\\/path\\/variable/", value: false3421 evaluates to `false`3422 expression: "$FULL_PATH_VARIABLE =~ /^\\/a\\/bad\\/path\\/variable\\/value$/ && $PATH_VARIABLE =~ /bad\\/path\\/variable/", value: false3423 evaluates to `false`3424 expression: "$FULL_PATH_VARIABLE =~ /^\\/a\\/full\\/path\\/variable\\/value$/ || $PATH_VARIABLE =~ /path\\/variable/", value: true3425 evaluates to `true`3426 expression: "$FULL_PATH_VARIABLE =~ /^\\/a\\/bad\\/path\\/variable\\/value$/ || $PATH_VARIABLE =~ /path\\/variable/", value: true3427 evaluates to `true`3428 expression: "$FULL_PATH_VARIABLE =~ /^\\/a\\/full\\/path\\/variable\\/value$/ || $PATH_VARIABLE =~ /bad\\/path\\/variable/", value: true3429 evaluates to `true`3430 expression: "$FULL_PATH_VARIABLE =~ /^\\/a\\/bad\\/path\\/variable\\/value$/ || $PATH_VARIABLE =~ /bad\\/path\\/variable/", value: false3431 evaluates to `false`3432 expression: "$PRESENT_VARIABLE =~ /my var/ || $EMPTY_VARIABLE =~ /nope/", value: true3433 evaluates to `true`3434 expression: "$EMPTY_VARIABLE == \"\" || $PRESENT_VARIABLE", value: true3435 evaluates to `true`3436 expression: "$PRESENT_VARIABLE != \"nope\" || $EMPTY_VARIABLE == \"\"", value: true3437 evaluates to `true`3438 expression: "$PRESENT_VARIABLE && null || $EMPTY_VARIABLE == \"\"", value: true3439 evaluates to `true`3440 expression: "$PRESENT_VARIABLE || $UNDEFINED_VARIABLE", value: "my variable"3441 evaluates to `"my variable"`3442 expression: "$UNDEFINED_VARIABLE || $PRESENT_VARIABLE", value: "my variable"3443 evaluates to `"my variable"`3444 expression: "$UNDEFINED_VARIABLE == null || $PRESENT_VARIABLE", value: true3445 evaluates to `true`3446 expression: "$PRESENT_VARIABLE || $UNDEFINED_VARIABLE == null", value: "my variable"3447 evaluates to `"my variable"`3448 expression: "($PRESENT_VARIABLE)", value: "my variable"3449 evaluates to `"my variable"`3450 expression: "(($PRESENT_VARIABLE))", value: "my variable"3451 evaluates to `"my variable"`3452 expression: "(($PRESENT_VARIABLE && null) || $EMPTY_VARIABLE == \"\")", value: true3453 evaluates to `true`3454 expression: "($PRESENT_VARIABLE) && (null || $EMPTY_VARIABLE == \"\")", value: true3455 evaluates to `true`3456 expression: "(\"string\" || \"test\") == \"string\"", value: true3457 evaluates to `true`3458 expression: "(null || (\"test\" == \"string\"))", value: false3459 evaluates to `false`3460 expression: "(\"string\" == (\"test\" && \"string\"))", value: true3461 evaluates to `true`3462 expression: "(\"string\" == (\"test\" || \"string\"))", value: false3463 evaluates to `false`3464 expression: "(\"string\" == \"test\" || \"string\")", value: "string"3465 evaluates to `"string"`3466 expression: "(\"string\" == (\"string\" || ((\"1\" == \"1\") && (\"2\" == \"3\"))))", value: true3467 evaluates to `true`3468 #truthful?3469 expression: "$PRESENT_VARIABLE == \"my variable\"", value: true3470 returns `true`3471 expression: "$PRESENT_VARIABLE == 'no match'", value: false3472 returns `false`3473 expression: "$UNDEFINED_VARIABLE == null", value: true3474 returns `true`3475 expression: "$PRESENT_VARIABLE", value: true3476 returns `true`3477 expression: "$UNDEFINED_VARIABLE", value: false3478 returns `false`3479 expression: "$EMPTY_VARIABLE", value: false3480 returns `false`3481 expression: "$INVALID = 1", value: false3482 returns `false`3483 expression: "$PRESENT_VARIABLE =~ /var.*/", value: true3484 returns `true`3485 expression: "$UNDEFINED_VARIABLE =~ /var.*/", value: false3486 returns `false`3487 expression: "$PRESENT_VARIABLE !~ /var.*/", value: false3488 returns `false`3489 expression: "$UNDEFINED_VARIABLE !~ /var.*/", value: true3490 returns `true`3491 when evaluating expression raises an error3492 returns false3493 when variables have patterns3494 expression: "$teststring =~ \"abcde\"", result: true3495 is expected to eq true3496 expression: "$teststring =~ $teststring", result: true3497 is expected to eq true3498 expression: "$teststring =~ $pattern1", result: true3499 is expected to eq true3500 expression: "$teststring =~ $pattern2", result: false3501 is expected to eq false3502BlobHelper3503 #sanitize_svg_data3504 retains essential elements3505 #edit_blob_button3506 does not render edit button when blob is not text3507 uses the passed blob instead retrieve from repository3508 returns a link with the proper route3509 returns a link with the passed link_opts on the expected route3510 #relative_raw_path3511 pointing from '/file.md' to '/-/raw/main/'3512 pointing from '/test/file.md' to '/-/raw/main/test/'3513 pointing from '/another/test/file.md' to '/-/raw/main/another/test/'3514 viewer related3515 #blob_render_error_reason3516 for error :too_large3517 when the blob size is larger than the absolute size limit3518 returns an error message3519 when the blob size is larger than the size limit3520 returns an error message3521 for error :server_side_but_stored_externally3522 returns an error message3523 #blob_render_error_options3524 for error :collapsed3525 includes a "load it anyway" link3526 for error :too_large3527 does not include a "load it anyway" link3528 includes a "download it" link3529 when the viewer is rich3530 the blob is rendered as text3531 includes a "view the source" link3532 the blob is not rendered as text3533 does not include a "view the source" link3534 when the viewer is not rich3535 does not include a "view the source" link3536 for error :server_side_but_stored_externally3537 does not include a "load it anyway" link3538 does not include a "view the source" link3539 includes a "download it" link3540 #show_suggest_pipeline_creation_celebration?3541 when file is a pipeline config file3542 is true3543 file is invalid format3544 is false3545 does not use the default ci config3546 is false3547 does not have the needed cookie3548 is false3549 blob does not have auxiliary view3550 is false3551 when file is not a pipeline config file3552 is false3553 suggest_pipeline_commit_cookie_name3554 uses project id to make up the cookie name3555 #ide_edit_path3556 returns full IDE path3557 returns full IDE path with second -3558 returns IDE path without relative_url_root3559 escapes special characters3560 does not escape "/" character3561 when user is not logged in3562 returns IDE path inside the project3563 when user cannot push to the project3564 returns IDE path with the user's fork3565 #ide_merge_request_path3566 returns IDE path for the given MR if MR is not merged3567 when the MR comes from a fork3568 returns IDE path for MR in the forked repo with target project included as param3569 when the MR is merged3570 returns default IDE url with master branch3571 includes file path passed3572 when target branch exists3573 returns IDE edit url with the target branch3574 #ide_fork_and_edit_path3575 returns path to fork the repo with a redirect param to the full IDE path3576 does not include notice params with_notice: false3577 when user is not logged in3578 returns nil3579 #fork_and_edit_path3580 returns path to fork the repo with a redirect param to the full edit path3581 when user is not logged in3582 returns nil3583 #editing_ci_config?3584 when path is nil3585 is expected to be falsey3586 when path is not a ci file3587 is expected to be falsey3588 when path ends is gitlab-ci.yml3589 is expected to be truthy3590 when path ends with gitlab-ci.yml3591 is expected to be truthy3592 with custom ci paths3593 is expected to be truthy3594 with custom ci config and path3595 is expected to be truthy3596 #vue_blob_app_data3597 returns data related to blob app3598Gitlab::Database::Migrations::TestBatchedBackgroundRunner3599 main database3600 running a real background migration3601 runs sampled jobs from the batched background migration3602 uses the correct params to instrument the background migration3603 uses the filtering clause from the migration3604 exports migration details to a file3605 with jobs to run3606 samples jobs3607 samples 1 job with a batch size higher than the table size3608 does not sample a job if there are zero rows to sample3609 with multiple jobs to run3610 runs all pending jobs based on the last migration id3611 choosing uniform batches to run3612 #uniform_fractions3613 generates evenly distributed sequences of fractions3614 ci database3615 running a real background migration3616 runs sampled jobs from the batched background migration3617 uses the correct params to instrument the background migration3618 uses the filtering clause from the migration3619 exports migration details to a file3620 with jobs to run3621 samples jobs3622 samples 1 job with a batch size higher than the table size3623 does not sample a job if there are zero rows to sample3624 with multiple jobs to run3625 runs all pending jobs based on the last migration id3626 choosing uniform batches to run3627 #uniform_fractions3628 generates evenly distributed sequences of fractions3629Packages::Nuget::PackageFinder3630 #execute!3631 with a project3632 behaves like handling all the conditions3633 is expected to contain exactly #<Packages::Package id: 1, project_id: 485, created_at: "2023-08-10 12:39:02.530111000 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3634 with lower case package name3635 is expected to contain exactly #<Packages::Package id: 1, project_id: 485, created_at: "2023-08-10 12:39:02.530111000 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3636 with unknown package name3637 is expected to be empty3638 with an uninstallable package3639 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3640 with valid version3641 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3642 with varying case version3643 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3644 with unknown version3645 is expected to be empty3646 with normalized version3647 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3648 with limit hit3649 is expected to contain exactly #<Packages::Package id: 7, project_id: 485, created_at: "2023-08-10 12:39:05.091150306 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 8, project_id: 485, created_at: "2023-08-10 12:39:05.112726875 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3650 with downcase package name3651 is expected to contain exactly #<Packages::Package id: 1, project_id: 485, created_at: "2023-08-10 12:39:02.530111000 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3652 with client version less than 33653 behaves like calling with_nuget_version_or_normalized_version scope3654 calls with_nuget_version_or_normalized_version scope with the correct arguments3655 with client version greater than or equal to 33656 behaves like calling with_nuget_version_or_normalized_version scope3657 calls with_nuget_version_or_normalized_version scope with the correct arguments3658 with no client version3659 behaves like calling with_nuget_version_or_normalized_version scope3660 calls with_nuget_version_or_normalized_version scope with the correct arguments3661 when nuget_normalized_version feature flag is disabled3662 behaves like calling with_nuget_version_or_normalized_version scope3663 calls with_nuget_version_or_normalized_version scope with the correct arguments3664 with a subgroup3665 behaves like handling all the conditions3666 is expected to contain exactly #<Packages::Package id: 1, project_id: 485, created_at: "2023-08-10 12:39:02.530111000 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3667 with lower case package name3668 is expected to contain exactly #<Packages::Package id: 1, project_id: 485, created_at: "2023-08-10 12:39:02.530111000 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3669 with unknown package name3670 is expected to be empty3671 with an uninstallable package3672 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3673 with valid version3674 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3675 with varying case version3676 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3677 with unknown version3678 is expected to be empty3679 with normalized version3680 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3681 with limit hit3682 is expected to contain exactly #<Packages::Package id: 10, project_id: 485, created_at: "2023-08-10 12:39:08.081215206 +0000", updat...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 11, project_id: 485, created_at: "2023-08-10 12:39:08.100687265 +0000", updat...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3683 with downcase package name3684 is expected to contain exactly #<Packages::Package id: 1, project_id: 485, created_at: "2023-08-10 12:39:02.530111000 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3685 with client version less than 33686 behaves like calling with_nuget_version_or_normalized_version scope3687 calls with_nuget_version_or_normalized_version scope with the correct arguments3688 with client version greater than or equal to 33689 behaves like calling with_nuget_version_or_normalized_version scope3690 calls with_nuget_version_or_normalized_version scope with the correct arguments3691 with no client version3692 behaves like calling with_nuget_version_or_normalized_version scope3693 calls with_nuget_version_or_normalized_version scope with the correct arguments3694 when nuget_normalized_version feature flag is disabled3695 behaves like calling with_nuget_version_or_normalized_version scope3696 calls with_nuget_version_or_normalized_version scope with the correct arguments3697 with a group3698 behaves like handling all the conditions3699 is expected to contain exactly #<Packages::Package id: 1, project_id: 485, created_at: "2023-08-10 12:39:02.530111000 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3700 with lower case package name3701 is expected to contain exactly #<Packages::Package id: 1, project_id: 485, created_at: "2023-08-10 12:39:02.530111000 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3702 with unknown package name3703 is expected to be empty3704 with an uninstallable package3705 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3706 with valid version3707 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3708 with varying case version3709 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3710 with unknown version3711 is expected to be empty3712 with normalized version3713 is expected to contain exactly #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3714 with limit hit3715 is expected to contain exactly #<Packages::Package id: 13, project_id: 485, created_at: "2023-08-10 12:39:11.381119324 +0000", updat...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 14, project_id: 485, created_at: "2023-08-10 12:39:11.403789503 +0000", updat...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3716 with downcase package name3717 is expected to contain exactly #<Packages::Package id: 1, project_id: 485, created_at: "2023-08-10 12:39:02.530111000 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 2, project_id: 485, created_at: "2023-08-10 12:39:02.612582956 +0000", update...age_type: "nuget", creator_id: 843, status: "default", last_downloaded_at: nil, status_message: nil>3718 with client version less than 33719 behaves like calling with_nuget_version_or_normalized_version scope3720 calls with_nuget_version_or_normalized_version scope with the correct arguments3721 with client version greater than or equal to 33722 behaves like calling with_nuget_version_or_normalized_version scope3723 calls with_nuget_version_or_normalized_version scope with the correct arguments3724 with no client version3725 behaves like calling with_nuget_version_or_normalized_version scope3726 calls with_nuget_version_or_normalized_version scope with the correct arguments3727 when nuget_normalized_version feature flag is disabled3728 behaves like calling with_nuget_version_or_normalized_version scope3729 calls with_nuget_version_or_normalized_version scope with the correct arguments3730 with nil3731 is expected to be empty3732 when package name is blank3733 is expected to be empty3734TrendingProject3735 .refresh!3736 populates the trending projects table3737 removes existing rows before populating the table3738 stores the project IDs for every trending project3739 does not store projects that fall out of the trending time range3740 stores only public projects3741CommitsHelper3742 commit_author_link3743 escapes the author email3744 escapes the author name3745 commit_committer_link3746 escapes the committer email3747 escapes the committer name3748 #view_file_button3749 links to project files3750 #view_on_environment_button3751 returns a link tag linking to the file in the environment3752 #diff_mode_swap_button3753 for rendered3754 renders the correct select-rendered button3755 for raw3756 renders the correct select-raw button3757 #commit_to_html3758 renders HTML representation of a commit3759 commit_path3760 returns a persisted merge request commit path3761 returns a non-persisted merge request commit path which commits still reside in the source project3762 returns a project commit path3763 #conditionally_paginate_diff_files3764 pagination is enabled3765 has been paginated3766 can change the number of items per page3767 page 13768 has 20 diffs3769 page 53770 has the remaining 5 out of 85 diffs3771 pagination is disabled3772 returns the unpaginated collection3773 #cherry_pick_projects_data3774 returns data for cherry picking into a project3775 #commit_options_dropdown_data3776 when user is logged in3777 returns data as expected3778 when can not collaborate on project3779 returns data as expected3780 when commit has already been reverted3781 returns data as expected3782 when user is not logged in3783 returns data as expected3784 #commit_partial_cache_key3785 is expected to eq [#<CommitPresenter(#<Commit id:570e7b2abdd848b95f2f578043fc23bd6f6fd24d namespace535/project-547@570e...ath=>"test", :pipeline_status=>"pipelines/282-20230810123947767709", :referenced_by=>0, :xhr=>true}]3786 final cache key output3787 is expected to include "commit:570e7b2abdd848b95f2f578043fc23bd6f6fd24d"3788 is expected to include "pipelines/284-20230810123952341959"3789 #commit_path_template3790 is expected to eq "/namespace544/project-556/-/commit/$COMMIT_SHA"3791 #local_committed_date3792 is expected to eq "2023-01-01"3793 when user has a custom timezone3794 selects timezone of the user3795 when user doesn't have a preferred timezone3796 uses system timezone3797 when user timezone is not supported3798 uses system timezone3799 when user is missing3800 uses system timezone3801WorkItems::ParentLinks::CreateService3802 #execute3803 when the reference list is empty3804 behaves like returns not found error3805 returns error3806 no relationship is created3807 when work item not found3808 behaves like returns not found error3809 returns error3810 no relationship is created3811 when user has no permission to link work items3812 behaves like returns not found error3813 returns error3814 no relationship is created3815 child and parent are the same work item3816 no relationship is created3817 when adjacent is already in place3818 adjacent_position: -100, expected_order: lazy { [adjacent, current_item] }3819 sets relative positions3820 adjacent_position: 0, expected_order: lazy { [adjacent, current_item] }3821 sets relative positions3822 adjacent_position: 100, expected_order: lazy { [adjacent, current_item] }3823 sets relative positions3824 when there are tasks to relate3825 creates relationships3826 returns success status and created links3827 creates notes and records the events3828 when note creation fails for some reason3829 still records the link event3830 still records the link event3831 when task is already assigned3832 creates links only for non related tasks3833 when there are invalid children3834 creates links only for valid children3835 returns error status3836 creates notes for valid links3837 when parent type is invalid3838 returns error status3839 when max depth is reached3840 returns error status3841 when params include invalid ids3842 creates links only for valid IDs3843 when user is a guest3844 behaves like returns not found error3845 returns error3846 no relationship is created3847 when user is a guest assigned to the work item3848 behaves like returns not found error3849 returns error3850 no relationship is created3851Gitlab::GitalyClient::OperationService3852 #user_create_branch3853 sends a user_create_branch message and returns a Gitlab::git::Branch3854 with structured errors3855 with CustomHookError3856 when details contain stderr without prefix3857 behaves like failed branch creation3858 raised a PreRecieveError3859 when details contain stderr with prefix3860 behaves like failed branch creation3861 raised a PreRecieveError3862 when details contain stdout without prefix3863 behaves like failed branch creation3864 raised a PreRecieveError3865 when details contain stdout with prefix3866 behaves like failed branch creation3867 raised a PreRecieveError3868 when details contain no stderr or stdout3869 behaves like failed branch creation3870 raised a PreRecieveError3871 #user_update_branch3872 sends a user_update_branch message3873 when pre_receive_error is present3874 throws a PreReceive exception3875 #user_merge_to_ref3876 sends a user_merge_to_ref message3877 #user_delete_branch3878 sends a user_delete_branch message3879 with a custom hook error3880 when details contain stderr3881 behaves like a failed branch deletion3882 raises a PreReceiveError3883 when details contain stdout3884 behaves like a failed branch deletion3885 raises a PreReceiveError3886 with a non-detailed error3887 raises a GRPC error3888 #user_merge_branch3889 sends a user_merge_branch message3890 with an exception with the UserMergeBranchError3891 raises PreRecieveError with the error message3892 with a custom hook error3893 when details contain stderr without prefix3894 behaves like a failed merge3895 raises a PreReceiveError3896 when details contain stderr with prefix3897 behaves like a failed merge3898 raises a PreReceiveError3899 when details contain stdout without prefix3900 behaves like a failed merge3901 raises a PreReceiveError3902 when details contain stdout with prefix3903 behaves like a failed merge3904 raises a PreReceiveError3905 when details contain no stderr or stdout3906 behaves like a failed merge3907 raises a PreReceiveError3908 with an exception without the detailed error3909 raises PermissionDenied3910 with ReferenceUpdateError3911 returns nil3912 #user_ff_branch3913 sends a user_ff_branch message and returns a BranchUpdate object3914 when the response has no branch_update3915 is expected to be nil3916 when the pre-receive hook fails3917 raises the error3918 #user_cherry_pick3919 when AccessCheckError is raised3920 behaves like #user_cherry_pick with a gRPC error3921 raises an exception3922 when NotAncestorError is raised3923 behaves like #user_cherry_pick with a gRPC error3924 raises an exception3925 when MergeConflictError is raised3926 behaves like #user_cherry_pick with a gRPC error3927 raises an exception3928 when a non-detailed gRPC error is raised3929 behaves like #user_cherry_pick with a gRPC error3930 raises an exception3931 #user_revert3932 behaves like cherry pick and revert errors3933 when a pre_receive_error is present3934 raises a PreReceiveError3935 when a commit_error is present3936 raises a CommitError3937 when a create_tree_error is present3938 raises a CreateTreeError3939 when branch_update is nil3940 is expected to be nil3941 #rebase3942 when AccessError is raised3943 behaves like #rebase with an error3944 raises a GitError exception3945 when RebaseConflictError is raised3946 behaves like #rebase with an error3947 raises a GitError exception3948 when non-detailed gRPC error is raised3949 behaves like #rebase with an error3950 raises a GitError exception3951 #user_rebase_to_ref3952 sends a user_rebase_to_ref message3953 #user_squash3954 sends a user_squash message and returns the squash sha3955 when ResolveRevisionError is raised3956 behaves like #user_squash with an error3957 raises a GitError exception3958 when RebaseConflictError is raised3959 behaves like #user_squash with an error3960 raises a GitError exception3961 when non-detailed gRPC error is raised3962 behaves like #user_squash with an error3963 raises a GitError exception3964 #user_commit_files3965 with unstructured errors3966 when a pre_receive_error is present3967 raises a PreReceiveError3968 when an index_error is present3969 raises an IndexError3970 when branch_update is nil3971 is expected to be nil3972 with structured errors3973 with AccessCheckError3974 raises a PreReceiveError3975 with IndexError3976 with missing file3977 behaves like #user_commit_files failure3978 raises an IndexError3979 with existing directory3980 behaves like #user_commit_files failure3981 raises an IndexError3982 with existing file3983 behaves like #user_commit_files failure3984 raises an IndexError3985 with invalid path3986 behaves like #user_commit_files failure3987 raises an IndexError3988 with directory traversal3989 behaves like #user_commit_files failure3990 raises an IndexError3991 with empty path3992 behaves like #user_commit_files failure3993 raises an IndexError3994 with unspecified error3995 behaves like #user_commit_files failure3996 raises an IndexError3997 with an exception without the detailed error3998 with an index error from libgit23999 raises IndexError4000 with a generic error4001 raises PermissionDenied4002 with CustomHookError4003 raises a PreReceiveError4004 #user_commit_patches4005 applies the patch correctly4006 when the patch could not be applied4007 raises the correct error4008 #add_tag4009 without tag message4010 creates a lightweight tag4011 with tag message4012 creates an annotated tag4013 with preexisting tag4014 raises a TagExistsError4015 with invalid target4016 raises an InvalidRef error4017 with internal error4018 raises an Internal error4019 with structured errors4020 with ReferenceExistsError4021 raises a TagExistsError4022 with AccessCheckError4023 raises a PreReceiveError4024 with CustomHookError4025 raises a PreReceiveError4026Gitlab::Ci::Config::Entry::Retry4027 #value4028 when retry value is a numeric4029 is returned as a hash with max key4030 when retry value is a hash4031 and `when` is a string4032 returns when wrapped in an array4033 and `when` is an array4034 returns when as it was passed4035 validation4036 when retry value is correct4037 when it is a numeric4038 is valid4039 when it is a hash4040 with max4041 is valid4042 with string when4043 is valid4044 with string when always4045 is valid4046 with array when4047 is valid4048 with when from documentation `always`4049 is valid4050 with when from documentation `unknown_failure`4051 is valid4052 with when from documentation `script_failure`4053 is valid4054 with when from documentation `api_failure`4055 is valid4056 with when from documentation `stuck_or_timeout_failure`4057 is valid4058 with when from documentation `runner_system_failure`4059 is valid4060 with when from documentation `runner_unsupported`4061 is valid4062 with when from documentation `stale_schedule`4063 is valid4064 with when from documentation `job_execution_timeout`4065 is valid4066 with when from documentation `archived_failure`4067 is valid4068 with when from documentation `unmet_prerequisites`4069 is valid4070 with when from documentation `scheduler_failure`4071 is valid4072 with when from documentation `data_integrity_failure`4073 is valid4074 with when from CommitStatus.failure_reasons `unknown_failure`4075 is valid4076 with when from CommitStatus.failure_reasons `script_failure`4077 is valid4078 with when from CommitStatus.failure_reasons `api_failure`4079 is valid4080 with when from CommitStatus.failure_reasons `stuck_or_timeout_failure`4081 is valid4082 with when from CommitStatus.failure_reasons `runner_system_failure`4083 is valid4084 with when from CommitStatus.failure_reasons `missing_dependency_failure`4085 is valid4086 with when from CommitStatus.failure_reasons `runner_unsupported`4087 is valid4088 with when from CommitStatus.failure_reasons `stale_schedule`4089 is valid4090 with when from CommitStatus.failure_reasons `job_execution_timeout`4091 is valid4092 with when from CommitStatus.failure_reasons `archived_failure`4093 is valid4094 with when from CommitStatus.failure_reasons `unmet_prerequisites`4095 is valid4096 with when from CommitStatus.failure_reasons `scheduler_failure`4097 is valid4098 with when from CommitStatus.failure_reasons `data_integrity_failure`4099 is valid4100 with when from CommitStatus.failure_reasons `forward_deployment_failure`4101 is valid4102 with when from CommitStatus.failure_reasons `user_blocked`4103 is valid4104 with when from CommitStatus.failure_reasons `project_deleted`4105 is valid4106 with when from CommitStatus.failure_reasons `ci_quota_exceeded`4107 is valid4108 with when from CommitStatus.failure_reasons `pipeline_loop_detected`4109 is valid4110 with when from CommitStatus.failure_reasons `no_matching_runner`4111 is valid4112 with when from CommitStatus.failure_reasons `trace_size_exceeded`4113 is valid4114 with when from CommitStatus.failure_reasons `builds_disabled`4115 is valid4116 with when from CommitStatus.failure_reasons `environment_creation_failure`4117 is valid4118 with when from CommitStatus.failure_reasons `deployment_rejected`4119 is valid4120 with when from CommitStatus.failure_reasons `failed_outdated_deployment_job`4121 is valid4122 with when from CommitStatus.failure_reasons `protected_environment_failure`4123 is valid4124 with when from CommitStatus.failure_reasons `insufficient_bridge_permissions`4125 is valid4126 with when from CommitStatus.failure_reasons `downstream_bridge_project_not_found`4127 is valid4128 with when from CommitStatus.failure_reasons `invalid_bridge_trigger`4129 is valid4130 with when from CommitStatus.failure_reasons `upstream_bridge_project_not_found`4131 is valid4132 with when from CommitStatus.failure_reasons `insufficient_upstream_permissions`4133 is valid4134 with when from CommitStatus.failure_reasons `bridge_pipeline_is_child_pipeline`4135 is valid4136 with when from CommitStatus.failure_reasons `downstream_pipeline_creation_failed`4137 is valid4138 with when from CommitStatus.failure_reasons `secrets_provider_not_found`4139 is valid4140 with when from CommitStatus.failure_reasons `reached_max_descendant_pipelines_depth`4141 is valid4142 with when from CommitStatus.failure_reasons `ip_restriction_failure`4143 is valid4144 with when from CommitStatus.failure_reasons `reached_max_pipeline_hierarchy_size`4145 is valid4146 when retry value is not correct4147 when it is not a numeric nor an array4148 returns error about invalid type4149 when it is a numeric4150 when it is lower than zero4151 returns error about value too low4152 when it is not an integer4153 returns error about wrong value4154 when the value is too high4155 returns error about value too high4156 when it is a hash4157 with unknown keys4158 returns error about the unknown key4159 with max lower than zero4160 returns error about value too low4161 with max not an integer4162 returns error about wrong value4163 iwth max too high4164 returns error about value too high4165 with when in wrong format4166 returns error about the wrong format4167 with an unknown when string4168 returns error about the wrong format4169 with an unknown failure reason in a when array4170 returns error about the wrong format4171Gitlab::Ci::Config::External::Mapper::Verifier4172 # order random4173 #process4174 when files are local4175 returns an array of file objects4176 adds files to the expandset4177 calls Gitaly only once for all files4178 when files are project files4179 returns an array of valid file objects4180 adds files to the expandset4181 calls Gitaly only once for all files4182 queries with batch4183 when a project is missing4184 returns an array of file objects4185 when a file includes other files4186 returns an array of file objects with combined hash4187 when there is an invalid file4188 adds an error to the file4189 max includes detection4190 when files are nested4191 behaves like verifies max includes4192 when total file count is equal to max_includes4193 adds the expected number of files to expandset4194 when total file count exceeds max_includes4195 raises error4196 when duplicate files are included4197 behaves like verifies max includes4198 when total file count is equal to max_includes4199 adds the expected number of files to expandset4200 when total file count exceeds max_includes4201 raises error4202 when files are not nested4203 behaves like verifies max includes4204 when total file count is equal to max_includes4205 adds the expected number of files to expandset4206 when total file count exceeds max_includes4207 raises error4208 when duplicate files are included4209 behaves like verifies max includes4210 when total file count is equal to max_includes4211 adds the expected number of files to expandset4212 when total file count exceeds max_includes4213 raises error4214 when there is a circular include4215 raises error4216 when a file is an internal include4217 when total file count excluding internal include is equal to max_includes4218 does not add the internal include to expandset4219 when total file count excluding internal include exceeds max_includes4220 raises error4221ApplicationRecord4222 #id_in4223 returns records of the ids4224 .safe_ensure_unique4225 returns false when ActiveRecord::RecordNotUnique is raised4226 retries based on retry count specified4227 safe find or create methods4228 .safe_find_or_create_by4229 creates the suggestion avoiding race conditions4230 passes a block to find_or_create_by4231 does not create a record when is not valid4232 .safe_find_or_create_by!4233 creates a record using safe_find_or_create_by4234 raises a validation error if the record was not persisted4235 passes a block to find_or_create_by4236 raises a record not found error in case of attributes mismatch4237 .underscore4238 returns the underscored value of the class as a string4239 .where_exists4240 produces a WHERE EXISTS query4241 .where_not_exists4242 produces a WHERE NOT EXISTS query4243 .transaction4244 opens a new transaction4245 does not increment a counter when a transaction is not nested4246 increments a counter when a nested transaction is created4247 increments a counter when a transaction is created in ActiveRecord4248 .with_fast_read_statement_timeout4249 when the query runs faster than configured timeout4250 executes the query without error4251 when the query runs longer than configured timeout4252 cancels the query and raises an exception4253 with database load balancing4254 yields control4255 when the query runs faster than configured timeout4256 executes the query without error4257 when the query runs longer than configured timeout4258 cancels the query and raiss an exception4259 .default_select_columns4260 without an ignored column4261 behaves like selects identically to the default4262 generates the same sql as the default4263 with an ignored column4264 behaves like selects identically to the default4265 generates the same sql as the default4266Packages::Conan::Metadatum4267 relationships4268 is expected to belong to package required: false4269 validations4270 is expected to validate that :package cannot be empty/falsy4271 is expected to validate that :package_username cannot be empty/falsy4272 is expected to validate that :package_channel cannot be empty/falsy4273 #package_username4274 is expected to allow :package_username to be ‹"my-package+username"›4275 is expected to allow :package_username to be ‹"my_package.username"›4276 is expected to allow :package_username to be ‹"_my-package.username123"›4277 is expected to allow :package_username to be ‹"my"›4278 is expected not to allow :package_username to be ‹"+my_package"›4279 is expected not to allow :package_username to be ‹".my_package"›4280 is expected not to allow :package_username to be ‹"-my_package"›4281 is expected not to allow :package_username to be ‹"m"›4282 is expected not to allow :package_username to be ‹"f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"›4283 is expected not to allow :package_username to be ‹"my/package"›4284 is expected not to allow :package_username to be ‹"my(package)"›4285 is expected not to allow :package_username to be ‹"my@package"›4286 #package_channel4287 is expected to allow :package_channel to be ‹"beta"›4288 is expected to allow :package_channel to be ‹"stable+1.0"›4289 is expected to allow :package_channel to be ‹"my"›4290 is expected to allow :package_channel to be ‹"my_channel.beta"›4291 is expected to allow :package_channel to be ‹"_my-channel.beta123"›4292 is expected not to allow :package_channel to be ‹"+my_channel"›4293 is expected not to allow :package_channel to be ‹".my_channel"›4294 is expected not to allow :package_channel to be ‹"-my_channel"›4295 is expected not to allow :package_channel to be ‹"m"›4296 is expected not to allow :package_channel to be ‹"f_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_af_a"›4297 is expected not to allow :package_channel to be ‹"my/channel"›4298 is expected not to allow :package_channel to be ‹"my(channel)"›4299 is expected not to allow :package_channel to be ‹"my@channel"›4300 #username_channel_none_values4301 username: "username", channel: "channel", valid: true4302 is expected to eq true4303 username: "username", channel: "_", valid: false4304 is expected to eq false4305 username: "_", channel: "channel", valid: false4306 is expected to eq false4307 username: "_", channel: "_", valid: true4308 is expected to eq true4309 #conan_package_type4310 will not allow a package with a different package_type4311 #recipe4312 returns the recipe4313 #recipe_url4314 returns the recipe url4315 .package_username_from4316 returns the username formatted package path4317 .full_path_from4318 returns the username formatted package path4319 .validate_username_and_channel4320 username: "username", channel: "channel", error_field: nil4321 does not yield the block when there is no error4322 username: "username", channel: "_", error_field: :channel4323 yields the block when there is an error4324 username: "_", channel: "channel", error_field: :username4325 yields the block when there is an error4326 username: "_", channel: "_", error_field: nil4327 does not yield the block when there is no error4328Gitlab::GitalyClient::WithFeatureFlagActors4329 # order random4330 #gitaly_client_call4331 triggers client call with feature flag actors4332 when call without repository_actor4333 calls error tracking track_and_raise_for_dev_exception4334 #gitaly_feature_flag_actors4335 returns a hash with collected feature flag actors4336 #repository, #project_actor, #group_actor4337 when normal project repository4338 behaves like Gitaly feature flag actors are inferred from repository4339 captures correct actors4340 does not issues SQL queries after the first invocation4341 behaves like Gitaly feature flag actors are inferred from repository4342 captures correct actors4343 does not issues SQL queries after the first invocation4344 behaves like Gitaly feature flag actors are inferred from repository4345 captures correct actors4346 does not issues SQL queries after the first invocation4347 when project wiki repository4348 behaves like Gitaly feature flag actors are inferred from repository4349 captures correct actors4350 does not issues SQL queries after the first invocation4351 behaves like Gitaly feature flag actors are inferred from repository4352 captures correct actors4353 does not issues SQL queries after the first invocation4354 behaves like Gitaly feature flag actors are inferred from repository4355 captures correct actors4356 does not issues SQL queries after the first invocation4357 when repository of project in user namespace4358 behaves like Gitaly feature flag actors are inferred from repository4359 captures correct actors4360 does not issues SQL queries after the first invocation4361 behaves like Gitaly feature flag actors are inferred from repository4362 captures correct actors4363 does not issues SQL queries after the first invocation4364 behaves like Gitaly feature flag actors are inferred from repository4365 captures correct actors4366 does not issues SQL queries after the first invocation4367 when personal snippet4368 behaves like Gitaly feature flag actors are inferred from repository4369 captures correct actors4370 does not issues SQL queries after the first invocation4371 behaves like Gitaly feature flag actors are inferred from repository4372 captures correct actors4373 does not issues SQL queries after the first invocation4374 behaves like Gitaly feature flag actors are inferred from repository4375 captures correct actors4376 does not issues SQL queries after the first invocation4377 when project snippet4378 behaves like Gitaly feature flag actors are inferred from repository4379 captures correct actors4380 does not issues SQL queries after the first invocation4381 behaves like Gitaly feature flag actors are inferred from repository4382 captures correct actors4383 does not issues SQL queries after the first invocation4384 behaves like Gitaly feature flag actors are inferred from repository4385 captures correct actors4386 does not issues SQL queries after the first invocation4387 when project design4388 behaves like Gitaly feature flag actors are inferred from repository4389 captures correct actors4390 does not issues SQL queries after the first invocation4391 behaves like Gitaly feature flag actors are inferred from repository4392 captures correct actors4393 does not issues SQL queries after the first invocation4394 behaves like Gitaly feature flag actors are inferred from repository4395 captures correct actors4396 does not issues SQL queries after the first invocation4397 #user_actor4398 when user is not available in ApplicationContext4399 returns nil4400 when user is available in ApplicationContext4401 returns corresponding user record4402 when user does not exist4403 returns corresponding user record4404Gitlab::Ci::Variables::Collection4405 .fabricate4406 given an array of variables4407 returns a collection4408 given a hash of variables4409 returns a collection4410 given a proc that evaluates to an array4411 returns a collection4412 given a proc that evaluates to a hash4413 returns a collection4414 given a collection4415 returns a collection4416 when given an unrecognized type4417 raises error4418 .new4419 can be initialized with an array4420 can be initialized without an argument4421 #append4422 appends a hash4423 appends a Ci::Variable4424 appends an internal resource4425 returns self4426 #compact4427 returns a new Collection instance4428 rejects pair that has nil value4429 #concat4430 appends all elements from an array4431 appends all elements from other collection4432 does not concatenate resource if it undefined4433 returns self4434 #+4435 makes it possible to combine with an array4436 makes it possible to combine with another collection4437 #[]4438 with variable key with single entry4439 behaves like an array access operator4440 for a non-existent variable name4441 returns nil4442 for an existent variable name4443 returns the last Item4444 with variable key with multiple entries4445 behaves like an array access operator4446 for a non-existent variable name4447 returns nil4448 for an existent variable name4449 returns the last Item4450 #all4451 with variable key with single entry4452 behaves like a method returning all known variables or nil4453 for a non-existent variable name4454 returns nil4455 for an existing variable name4456 returns all expected Items4457 with variable key with multiple entries4458 behaves like a method returning all known variables or nil4459 for a non-existent variable name4460 returns nil4461 for an existing variable name4462 returns all expected Items4463 #size4464 returns zero for empty collection4465 returns 2 for collection with 2 variables4466 returns 3 for collection with 2 duplicate variables4467 #to_runner_variables4468 creates an array of hashes in a runner-compatible format4469 #to_hash4470 returns regular hash in valid order without duplicates4471 #reject4472 returns a Collection instance4473 returns correctly filtered Collection4474 #sort_and_expand_all4475 table tests4476 empty array4477 returns Collection4478 expands variables4479 preserves raw attribute4480 empty string4481 returns Collection4482 expands variables4483 preserves raw attribute4484 simple expansions4485 returns Collection4486 expands variables4487 preserves raw attribute4488 complex expansion4489 returns Collection4490 expands variables4491 preserves raw attribute4492 unused variables4493 returns Collection4494 expands variables4495 preserves raw attribute4496 complex expansions4497 returns Collection4498 expands variables4499 preserves raw attribute4500 escaped characters in complex expansions keeping undefined are kept intact4501 returns Collection4502 expands variables4503 preserves raw attribute4504 escaped characters in complex expansions discarding undefined are kept intact4505 returns Collection4506 expands variables4507 preserves raw attribute4508 out-of-order expansion4509 returns Collection4510 expands variables4511 preserves raw attribute4512 out-of-order complex expansion4513 returns Collection4514 expands variables4515 preserves raw attribute4516 missing variable discarding original4517 returns Collection4518 expands variables4519 preserves raw attribute4520 missing variable keeping original4521 returns Collection4522 expands variables4523 preserves raw attribute4524 complex expansions with missing variable keeping original4525 returns Collection4526 expands variables4527 preserves raw attribute4528 complex expansions with raw variable with expand_raw_refs: true (default)4529 returns Collection4530 expands variables4531 preserves raw attribute4532 complex expansions with raw variable with expand_raw_refs: false4533 returns Collection4534 expands variables4535 preserves raw attribute4536 variable value referencing password with special characters4537 returns Collection4538 expands variables4539 preserves raw attribute4540 cyclic dependency causes original array to be returned4541 returns Collection4542 expands variables4543 preserves raw attribute4544 file variables with expand_file_refs: true4545 returns Collection4546 expands variables4547 preserves raw attribute4548 file variables with expand_file_refs: false4549 returns Collection4550 expands variables4551 preserves raw attribute4552 #to_s4553 is expected to eq "[\"VAR\", \"VAR2\"], @errors='circular variable reference detected'"4554Gitlab::Database4555 EXTRA_SCHEMAS4556 contains only schemas starting with gitlab_ prefix4557 .all_database_connections4558 the first entry is always main4559 contains as many entries as YAML files4560 .database_base_models4561 contains "main"4562 does not contain "ci" when not running CI database (PENDING: Skipping because some of the extra databases [:ci] are setup)4563 contains "ci" pointing to Ci::ApplicationRecord when running CI database4564 .all_gitlab_schemas4565 contains as many entries as YAML files4566 .schemas_to_base_models4567 contains gitlab_main4568 contains gitlab_shared4569 contains gitlab_ci pointing to ActiveRecord::Base when not running CI database (PENDING: Skipping because some of the extra databases [:ci] are setup)4570 contains gitlab_ci pointing to Ci::ApplicationRecord when running CI database4571 .default_pool_size4572 returns the max thread size plus a fixed headroom of 104573 returns the max thread size plus a DB_POOL_HEADROOM if this env var is present4574 .has_config?4575 three tier database config4576 returns true for main4577 returns false for non-existent4578 ci4579 returns true for ci4580 ci database.yml not configured4581 returns false for ci4582 .has_database?4583 three tier database config4584 returns true for main4585 returns false for shared database (PENDING: Skipping because database ci exists)4586 returns false for non-existent4587 .database_mode4588 three tier database config4589 returns single-database if ci is not configured (PENDING: Skipping because some of the extra databases [:ci] are setup)4590 returns single-database-ci-connection if ci is shared with main database (PENDING: Skipping because database ci exists)4591 returns multiple-database if ci has its own database4592 .check_for_non_superuser4593 prints user details if not superuser4594 raises an exception if superuser4595 catches exception if find_by fails4596 .check_postgres_version_and_print_warning4597 prints a warning if not compliant with minimum postgres version4598 doesnt print a warning if compliant with minimum postgres version4599 doesnt print a warning in Rails runner environment4600 ignores ActiveRecord errors4601 ignores Postgres errors4602 .db_config_for_connection4603 when the regular connection is used4604 returns db_config4605 when the connection is LoadBalancing::ConnectionProxy4606 returns primary db config even if ambiguous queries default to replica4607 when the pool is a NullPool4608 returns nil4609 .db_config_name4610 returns the db_config name for the connection4611 when replicas are configured4612 returns the main_replica for a main database replica4613 returns the ci_replica for a ci database replica4614 .db_config_names4615 configs_for: [:main], gitlab_schema: :gitlab_shared, expected_main: [:main], expected_main_ci: [:main]4616 when main and CI database are configured4617 configs_for: [:main, :ci], gitlab_schema: :gitlab_shared, expected_main: [:main], expected_main_ci: [:main, :ci]4618 when main and CI database are configured4619 configs_for: [:main, :ci], gitlab_schema: :gitlab_ci, expected_main: [:main], expected_main_ci: [:ci]4620 when main and CI database are configured4621 .gitlab_schemas_for_connection4622 does return a valid schema depending on a base model used4623 does return gitlab_ci when a ActiveRecord::Base is using CI connection4624 does return a valid schema for a replica connection4625 does return empty for non-adopted connections4626 when there's CI connection4627 when CI uses database_tasks: false does indicate that ci: is subset of main:4628 does return gitlab_ci when accessing via main: connection4629 does not return gitlab_main when accessing via ci: connection4630 when CI uses database_tasks: true does indicate that ci: has own database4631 does not return gitlab_ci when accessing via main: connection4632 does not return gitlab_main when accessing via ci: connection4633 .database_base_models_with_gitlab_shared4634 memoizes the models4635 .database_base_models_using_load_balancing4636 memoizes the models4637 #true_value4638 returns correct value4639 #false_value4640 returns correct value4641 #sanitize_timestamp4642 with a timestamp smaller than MAX_TIMESTAMP_VALUE4643 returns the given timestamp4644 with a timestamp larger than MAX_TIMESTAMP_VALUE4645 returns MAX_TIMESTAMP_VALUE4646 .all_uncached4647 wraps the given block in uncached calls for each primary connection4648 .read_only?4649 returns false4650 .read_write4651 returns true4652 ActiveRecordBaseTransactionMetrics4653 without a transaction block4654 does not publish a transaction event4655 within a transaction block4656 publishes a transaction event4657 within an empty transaction block4658 publishes a transaction event4659 within a nested transaction block4660 publishes multiple transaction events4661 within a cancelled transaction block4662 publishes multiple transaction events4663 .read_minimum_migration_version4664 valid migration files exist4665 finds the correct ID4666 no valid migration files exist4667 returns nil4668Snippets::UpdateStatisticsService4669 #execute4670 with PersonalSnippet4671 behaves like updates statistics4672 returns a successful response4673 expires statistics cache4674 schedules a namespace storage statistics update4675 when snippet statistics does not exist4676 creates snippet statistics4677 when snippet statistics exists4678 updates snippet statistics4679 when snippet does not have a repository4680 returns an error response4681 with ProjectSnippet4682 updates projects statistics "snippets_size"4683 behaves like updates statistics4684 returns a successful response4685 expires statistics cache4686 schedules a namespace storage statistics update4687 when snippet statistics does not exist4688 creates snippet statistics4689 when snippet statistics exists4690 updates snippet statistics4691 when snippet does not have a repository4692 returns an error response4693Gitlab::Ci::Lint4694 #validate4695 when user has permissions to write the ref4696 when using default static mode4697 does not catch advanced logical errors4698 uses YamlProcessor4699 behaves like content with errors and warnings4700 when content has errors4701 returns a result with errors4702 when content has warnings4703 returns a result with warnings4704 when content has more warnings than max limit4705 returns a result with warnings4706 when content has errors and warnings4707 returns a result with errors and warnings4708 behaves like content is valid4709 returns a valid result4710 includes extra attributes4711 behaves like sets config metadata4712 sets merged_config4713 sets includes4714 when using dry run mode4715 runs advanced logical validations4716 uses Ci::CreatePipelineService4717 behaves like content with errors and warnings4718 when content has errors4719 returns a result with errors4720 when content has warnings4721 returns a result with warnings4722 when content has more warnings than max limit4723 returns a result with warnings4724 when content has errors and warnings4725 returns a result with errors and warnings4726 behaves like content is valid4727 returns a valid result4728 does not include extra attributes4729 when using a ref other than the default branch4730 includes only jobs that are excluded on the default branch4731 behaves like sets config metadata4732 sets merged_config4733 sets includes4734 when user does not have permissions to write the ref4735 when using default static mode4736 behaves like content is valid4737 returns a valid result4738 when using dry run mode4739 does not allow validation4740 pipeline logger4741 when the duration is under the threshold4742 does not create a log entry4743 when the durations exceeds the threshold4744 creates a log entry4745 when the feature flag is disabled4746 does not create a log entry4747 when project is not provided4748 creates a log entry without project_id4749Mutations::DependencyProxy::ImageTtlGroupPolicy::Update4750 is expected to require graphql authorizations :admin_dependency_proxy4751 #resolve4752 with existing dependency proxy image ttl policy4753 user_role: :owner, shared_examples_name: "updating the dependency proxy image ttl policy"4754 behaves like updating the dependency proxy image ttl policy4755 behaves like updating the dependency proxy image ttl policy attributes4756 updates the dependency proxy image ttl policy4757 behaves like not creating the dependency proxy image ttl policy4758 doesn't create the dependency proxy image ttl policy4759 behaves like returning a success4760 returns the dependency proxy image ttl group policy with no errors4761 with invalid params4762 doesn't create the dependency proxy image ttl policy4763 does not update4764 returns an error4765 user_role: :maintainer, shared_examples_name: "denying access to dependency proxy image ttl policy"4766 behaves like denying access to dependency proxy image ttl policy4767 raises Gitlab::Graphql::Errors::ResourceNotAvailable4768 behaves like disabling admin_package feature flag4769 behaves like updating the dependency proxy image ttl policy4770 behaves like updating the dependency proxy image ttl policy attributes4771 updates the dependency proxy image ttl policy4772 behaves like not creating the dependency proxy image ttl policy4773 doesn't create the dependency proxy image ttl policy4774 behaves like returning a success4775 returns the dependency proxy image ttl group policy with no errors4776 with invalid params4777 doesn't create the dependency proxy image ttl policy4778 does not update4779 returns an error4780 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"4781 behaves like denying access to dependency proxy image ttl policy4782 raises Gitlab::Graphql::Errors::ResourceNotAvailable4783 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"4784 behaves like denying access to dependency proxy image ttl policy4785 raises Gitlab::Graphql::Errors::ResourceNotAvailable4786 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"4787 behaves like denying access to dependency proxy image ttl policy4788 raises Gitlab::Graphql::Errors::ResourceNotAvailable4789 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"4790 behaves like denying access to dependency proxy image ttl policy4791 raises Gitlab::Graphql::Errors::ResourceNotAvailable4792 without existing dependency proxy image ttl policy4793 user_role: :owner, shared_examples_name: "creating the dependency proxy image ttl policy"4794 behaves like creating the dependency proxy image ttl policy4795 creates a new package setting4796 saves the settings4797 behaves like returning a success4798 returns the dependency proxy image ttl group policy with no errors4799 user_role: :maintainer, shared_examples_name: "denying access to dependency proxy image ttl policy"4800 behaves like denying access to dependency proxy image ttl policy4801 raises Gitlab::Graphql::Errors::ResourceNotAvailable4802 behaves like disabling admin_package feature flag4803 behaves like creating the dependency proxy image ttl policy4804 creates a new package setting4805 saves the settings4806 behaves like returning a success4807 returns the dependency proxy image ttl group policy with no errors4808 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"4809 behaves like denying access to dependency proxy image ttl policy4810 raises Gitlab::Graphql::Errors::ResourceNotAvailable4811 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"4812 behaves like denying access to dependency proxy image ttl policy4813 raises Gitlab::Graphql::Errors::ResourceNotAvailable4814 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"4815 behaves like denying access to dependency proxy image ttl policy4816 raises Gitlab::Graphql::Errors::ResourceNotAvailable4817 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"4818 behaves like denying access to dependency proxy image ttl policy4819 raises Gitlab::Graphql::Errors::ResourceNotAvailable4820Gitlab::Database::LoadBalancing::LoadBalancer4821 #initialize4822 ignores the hosts when load balancing is disabled4823 sets the name of the connection that is used4824 #read4825 yields a connection for a read4826 ensures that query cache is enabled4827 does not enable query cache when outside Rails executor context4828 marks hosts that are offline4829 retries a query in the event of a serialization failure4830 retries every host at most 3 times when a query conflict is raised4831 uses the primary if no secondaries are available4832 uses the primary when load balancing is disabled4833 behaves like logs service discovery thread interruption4834 with service discovery4835 calls logs service discovery thread interruption4836 only primary is configured4837 does not retry a query on connection error if only the primary is configured4838 #read_write4839 yields a connection for a write4840 uses a retry with exponential backoffs4841 does not raise NoMethodError error when primary_only?4842 behaves like logs service discovery thread interruption4843 with service discovery4844 calls logs service discovery thread interruption4845 #host4846 returns the secondary host to use4847 stores the host in a thread-local variable4848 does not create conflicts with other load balancers when caching hosts4849 #release_host4850 releases the host and its connection4851 #release_primary_connection4852 releases the connection to the primary4853 #primary_write_location4854 returns a String in the right format4855 raises an error if the write location could not be retrieved4856 #retry_with_backoff4857 returns the value returned by the block4858 re-raises errors not related to database connections4859 retries the block when a connection error is raised4860 re-raises the connection error if the retries did not succeed4861 skips retries when only the primary is used4862 yields the current retry iteration4863 #connection_error?4864 returns true for a connection error4865 returns false for a missing database error4866 returns true for a wrapped connection error4867 returns true for a wrapped connection error from a view4868 returns true for deeply wrapped/nested errors4869 returns true for an invalid encoding error4870 returns false for errors not related to database connections4871 returns false for ActiveRecord errors without a cause4872 #serialization_failure?4873 returns for a serialization error4874 returns true for a wrapped error4875 #select_up_to_date_host4876 when none of the replicas are caught up4877 returns false and does not update the host thread-local variable4878 when any of the replicas is caught up4879 returns true and sets host thread-local variable4880 #create_replica_connection_pool4881 creates a new connection pool with specific pool size and name4882 allows setting of a custom hostname and port4883 does not modify connection class pool4884 #disconnect!4885 calls disconnect on all hosts with a timeout4886 #get_write_location4887 returns a string4888 returns nil if there are no results4889 #wal_diff4890 returns the diff between two write locations4891Gitlab::QuickActions::Extractor4892 #extract_commands4893 extracts command with multiple arguments and various prefixes4894 extracts command case insensitive4895 does not extract noop commands4896 extracts and performs substitution commands4897 extracts and performs substitution commands4898 extracts and performs multiple substitution commands4899 does not extract substitution command in inline code4900 extracts and performs substitution commands case insensitive4901 extracts and performs substitution commands with comments4902 extracts and performs substitution commands with keep_actions4903 extracts multiple commands4904 does not alter original content if no command is found4905 does not get confused if command comes before an inline code4906 does not get confused if command comes before a blockcode4907 does not extract commands inside a blockcode4908 does not extract commands inside a blockquote4909 does not extract commands inside a HTML tag4910 does not extract commands in multiline inline code on seperated rows4911 does not extract commands in multiline inline code starting from text4912 does not extract commands in inline code4913 limits to passed commands when they are passed4914 fails fast for strings with many newlines4915 command with no argument4916 at the start of content4917 behaves like command with no argument4918 extracts command4919 in the middle of content4920 behaves like command with no argument4921 extracts command4922 in the middle of a line4923 does not extract command4924 at the end of content4925 behaves like command with no argument4926 extracts command4927 command with a single argument4928 at the start of content4929 allows slash in command arguments4930 behaves like command with a single argument4931 extracts command4932 in the middle of content4933 behaves like command with a single argument4934 extracts command4935 in the middle of a line4936 does not extract command4937 at the end of content4938 behaves like command with a single argument4939 extracts command4940 when argument is not separated with a space4941 does not extract command4942 command with multiple arguments4943 at the start of content4944 behaves like command with multiple arguments4945 extracts command4946 in the middle of content4947 behaves like command with multiple arguments4948 extracts command4949 in the middle of a line4950 does not extract command4951 at the end of content4952 behaves like command with multiple arguments4953 extracts command4954 when argument is not separated with a space4955 does not extract command4956 command with keep_actions4957 at the start of content4958 behaves like command with a single argument4959 extracts command4960 in the middle of content4961 behaves like command with a single argument4962 extracts command4963 at the end of content4964 behaves like command with a single argument4965 extracts command4966 #redact_commands4967 text: "hello\n/labels ~label1 ~label2\nworld", expected: "hello\n`/labels ~label1 ~label2`\nworld"4968 encloses quick actions with code span markdown4969 text: "hello\n/open\n/labels ~label1\nworld", expected: "hello\n`/open`\n`/labels ~label1`\nworld"4970 encloses quick actions with code span markdown4971 text: "hello\n/reopen\nworld", expected: "hello\n`/reopen`\nworld"4972 encloses quick actions with code span markdown4973 text: "/reopen\nworld", expected: "`/reopen`\nworld"4974 encloses quick actions with code span markdown4975 text: "hello\n/open", expected: "hello\n`/open`"4976 encloses quick actions with code span markdown4977JiraConnectInstallation4978 associations4979 is expected to have many subscriptions class_name => JiraConnectSubscription4980 validations4981 is expected to validate that :client_key cannot be empty/falsy4982 is expected to validate that :client_key is case-sensitively unique4983 is expected to validate that :shared_secret cannot be empty/falsy4984 is expected to validate that :base_url cannot be empty/falsy4985 is expected to allow :base_url to be ‹"https://test.atlassian.net"›4986 is expected not to allow :base_url to be ‹"not/a/url"›4987 is expected to allow :instance_url to be ‹"https://test.atlassian.net"›4988 is expected not to allow :instance_url to be ‹"not/a/url"›4989 scopes4990 .for_project4991 returns installations with subscriptions for project4992 returns distinct installations4993 .direct_installations4994 is expected to contain exactly #<JiraConnectInstallation id: 2, client_key: [FILTERED], encrypted_shared_secret: [FILTERED], encrypt...ret_iv: [FILTERED], base_url: "https://sample.atlassian.net", instance_url: nil, shared_secret: nil>4995 .proxy_installations4996 is expected to be empty4997 with an installation on a self-managed instance4998 is expected to contain exactly #<JiraConnectInstallation id: 7, client_key: [FILTERED], encrypted_shared_secret: [FILTERED], encrypt... "https://sample.atlassian.net", instance_url: "http://self-managed-gitlab.com", shared_secret: nil>4999 #oauth_authorization_url5000 is expected to eq "http://test.host"5001 with instance_url5002 is expected to eq "https://gitlab.example.com"5003 audience_url5004 is expected to eq nil5005 when proxy installation5006 is expected to eq "https://example.com/-/jira_connect"5007 audience_installed_event_url5008 is expected to eq nil5009 when proxy installation5010 is expected to eq "https://example.com/-/jira_connect/events/installed"5011 audience_uninstalled_event_url5012 is expected to eq nil5013 when proxy installation5014 is expected to eq "https://example.com/-/jira_connect/events/uninstalled"5015 proxy?5016 is expected to eq false5017 when instance_url is present5018 is expected to eq true5019Ci::CreatePipelineService#execute5020 with resource group5021 creates bridge job with resource group5022 when sidekiq processes the job5023 transitions to pending status and triggers a downstream pipeline5024 when the resource is occupied by the other bridge5025 stays waiting for resource5026StarredProjectsFinder5027 #execute5028 user has a public profile5029 as same user5030 is expected to contain exactly #<Project id:568 namespace589/project-604>>, #<Project id:569 namespace590/project-605>>, and #<Project id:570 namespace591/project-606>>5031 as other user5032 is expected to contain exactly #<Project id:571 namespace592/project-607>> and #<Project id:572 namespace593/project-608>>5033 as no user5034 is expected to contain exactly #<Project id:574 namespace595/project-610>> and #<Project id:575 namespace596/project-611>>5035 user has a private profile5036 as same user5037 is expected to contain exactly #<Project id:577 namespace598/project-613>>, #<Project id:578 namespace599/project-614>>, and #<Project id:579 namespace600/project-615>>5038 as other user5039 user does not have access to view the private profile5040 is expected to be empty5041 user has access to view the private profile5042 is expected to contain exactly #<Project id:583 namespace604/project-619>>, #<Project id:584 namespace605/project-620>>, and #<Project id:585 namespace606/project-621>>5043 as no user5044 is expected to be empty5045SshHostKey5046 .primary_key5047 returns a symbol5048 .find_by5049 accepts a string key5050 accepts a symbol key5051 #fingerprints5052 returns an array of indexed fingerprints when the cache is filled5053 returns an empty array when the cache is empty5054 #fingerprints5055 returns an array of indexed fingerprints when the cache is filled5056 returns an empty array when the cache is empty5057 when FIPS is enabled5058 only includes SHA256 fingerprint5059 #host_keys_changed?5060 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nfoo\nbar\n", result: true5061 (normal)5062 is expected to eq true5063 (reversed)5064 is expected to eq true5065 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "foo\n", result: true5066 (normal)5067 is expected to eq true5068 (reversed)5069 is expected to eq true5070 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "", result: true5071 (normal)5072 is expected to eq true5073 (reversed)5074 is expected to eq true5075 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: nil, result: true5076 (normal)5077 is expected to eq true5078 (reversed)5079 is expected to eq true5080 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", known_hosts_b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", result: false5081 (normal)5082 is expected to eq false5083 (reversed)5084 is expected to eq false5085 known_hosts_a: "@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nexample.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n", known_hosts_b: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\n", result: false5086 (normal)5087 is expected to eq false5088 (reversed)5089 is expected to eq false5090 known_hosts_a: "example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3UpyF2iLqy1d63M6k3jH1vuEnq/NWtE+orJe1Xn7JoRbduKd6zpsJ0JhBGWgcQK0ph0aGW5PcudzzBSc+SlYfCc4GTaxDtmj41hW0o72mNiuDW3oKXXShOiVRde2ZOquH8Z865jGiZIC8BI/bXZD29IGUih0hPu7Rjp70VYiE+35QRf/psD0Ddrz8QUIG3A/2dMzLI5F5ZORk3BIX2F3mJwJOvZxRhR/SqyphDMZ5eZ0EzqbFBCDE6HABWoz9ck8RBGLvCIggmDHj3FmMLcQGMDiy6wKp7QdnBtxjCP6vtE6YPUM223AqsWt+9NTtCfB8YdNAH7YcHHOR1FgtSk1x git@localhost\n@revoked other.example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLIp+4ciR2YO9f9rpldc7InNQw/TBUtcNbJ2XR0rr15/5ytz7YM16xXG0Qjx576PNSmqs4gbTrvTuFZak+v1Jx/9deHRq/yqp9f+tv33+iaJGCQCX/+OVY7aWgV2R9YsS7XQ4mnv4XlOTEssib/rGAIT+ATd/GcdYSEOO+dh4O09/6O/jIMGSeP+NNetgn1nPCnLOjrXFZUnUtNDi6EEKeIlrliJjSb7Jr4f7gjvZnv4RskWHHFo8FgAAqt0gOMT6EmKrnypBe2vLGSAXbtkXr01q6/DNPH+n9VA1LTV6v1KN/W5CN5tQV11wRSKiM8g5OEbi86VjJRi2sOuYoXQU1 git@localhost\nfoo\nbar\n", known_hosts_b: "foo\n", result: true5091 (normal)5092 is expected to eq true5093 (reversed)5094 is expected to eq true5095 known_hosts_a: "", known_hosts_b: "", result: false5096 (normal)5097 is expected to eq false5098 (reversed)5099 is expected to eq false5100 known_hosts_a: nil, known_hosts_b: nil, result: false5101 (normal)5102 is expected to eq false5103 (reversed)5104 is expected to eq false5105 known_hosts_a: "", known_hosts_b: nil, result: false5106 (normal)5107 is expected to eq false5108 (reversed)5109 is expected to eq false5110 #calculate_reactive_cache5111 writes the hostname to STDIN5112 successful key scan5113 stores the cleaned known_hosts data5114 failed key scan (exit code 1)5115 returns a generic error5116 failed key scan (exit code 0)5117 returns a generic error5118 DNS rebinding protection enabled5119 sends an address as well as hostname to ssh-keyscan5120 URL validation5121 when local requests are not allowed5122 forbids scanning localhost5123 when local requests are allowed5124 permits scanning localhost5125Gitlab::UserAccessSnippet5126 #can_do_action?5127 when can access_git5128 calls Ability#allowed? and returns its result5129 when can not access_git5130 disallows access5131 when user is nil5132 disallows access5133 when user is migration bot5134 allows access5135 #can_push_to_branch?5136 anonymous5137 when can access_git5138 respects accessibility5139 when can not access_git5140 disallows access5141 non_member5142 when can access_git5143 respects accessibility5144 when can not access_git5145 disallows access5146 guest5147 when can access_git5148 respects accessibility5149 when can not access_git5150 disallows access5151 reporter5152 when can access_git5153 respects accessibility5154 when can not access_git5155 disallows access5156 maintainer5157 when can access_git5158 respects accessibility5159 when can not access_git5160 disallows access5161 admin5162 when can access_git5163 respects accessibility5164 when can not access_git5165 disallows access5166 author5167 when can access_git5168 respects accessibility5169 when can not access_git5170 disallows access5171 when user is migration bot5172 allows access5173 when snippet is nil5174 disallows access5175 when user is migration bot5176 disallows access5177 #can_create_tag?5178 returns false5179 when user is migration bot5180 returns false5181 #can_delete_branch?5182 returns false5183 when user is migration bot5184 returns false5185 #can_merge_to_branch?5186 returns false5187 when user is migration bot5188 returns false5189Gitlab::Diff::Rendered::Notebook::DiffFile5190 #old_blob and #new_blob5191 when file is changed5192 transforms the old blob5193 transforms the new blob5194 when file is added5195 old_blob is empty5196 new_blob is transformed5197 when file is removed5198 old_blob is transformed5199 new_blob is empty5200 #diff5201 for valid notebooks5202 returns the transformed diff5203 for invalid notebooks5204 returns nil5205 timeout5206 utilizes timeout for web5207 falls back to nil on timeout5208 utilizes longer timeout for sidekiq5209 #has_renderable?5210 notebook diff is empty5211 is false5212 notebook is valid5213 is true5214 when old blob file is truncated5215 is false5216 when new blob file is truncated5217 is false5218 #highlighted_diff_lines?5219 when line transformed line is not part of the diff5220 line is not discussable5221 when line transformed line part of the diff5222 line is not discussable5223 assigns the correct position5224 computes the first line where the remove would appear5225 has image5226 replaces rich text with img to the embedded image5227 adds image to src5228 when embedded image has injected html5229 prevents injected html to be rendered as html5230 keeps the injected html as part of the string5231Gitlab::Chat::Command5232 #try_create_pipeline5233 returns nil when the command is not valid5234 tries to create the pipeline when a command is valid5235 #create_pipeline5236 creates the pipeline5237 creates the chat data for the pipeline5238 stores the chat name ID in the chat data5239 stores the response URL in the chat data5240 creates the environment variables for the pipeline5241Clusters::Agents::Authorizations::CiAccess::RefreshService5242 # order random5243 #execute5244 group authorization5245 refreshes authorizations for the agent5246 config contains too many groups5247 authorizes groups up to the limit5248 config contains no groups5249 removes all authorizations5250 config contains groups outside of the configuration project hierarchy5251 removes all authorizations5252 configuration project does not belong to a group5253 removes all authorizations5254 project authorization5255 refreshes authorizations for the agent5256 project does not belong to a group, and is in the same namespace as the agent5257 creates an authorization record for the project5258 project does not belong to a group, and is authorizing itself5259 creates an authorization record for the project5260 config contains too many projects5261 authorizes projects up to the limit5262 config contains no groups5263 removes all authorizations5264 config contains groups outside of the configuration project hierarchy5265 removes all authorizations5266 configuration project does not belong to a group5267 removes all authorizations5268Clusters::Providers::Gcp5269 is expected to belong to cluster required: false5270 is expected to validate that :zone cannot be empty/falsy5271 state_machine5272 when any => [:created]5273 nullifies API credentials5274 when any => [:creating]5275 calls #assign_operation_id on the provider5276 when any => [:errored]5277 calls #nullify_credentials on the provider5278 sets a status reason5279 when status_reason is nil5280 does not set status_reason5281 #on_creation?5282 status: :scheduled, result: true5283 is expected to eq true5284 status: :creating, result: true5285 is expected to eq true5286 status: :created, result: false5287 is expected to eq false5288 status: :errored, result: false5289 is expected to eq false5290 default values5291 has default value5292 validation5293 when validates gcp_project_id5294 when gcp_project_id is shorter than 15295 is expected to be falsey5296 when gcp_project_id is longer than 635297 is expected to be falsey5298 when gcp_project_id includes invalid character5299 is expected to be falsey5300 when gcp_project_id is valid5301 is expected to be truthy5302 when validates num_nodes5303 when num_nodes is string5304 is expected to be falsey5305 when num_nodes is nil5306 is expected to be falsey5307 when num_nodes is smaller than 15308 is expected to be falsey5309 when num_nodes is valid5310 is expected to be truthy5311 #has_rbac_enabled?5312 when cluster is legacy_abac5313 is expected to be falsey5314 when cluster is not legacy_abac5315 is expected to be truthy5316 #knative_pre_installed?5317 when cluster is cloud_run5318 is expected to be falsey5319 when cluster is not cloud_run5320 is expected to be truthy5321 #nullify_credentials5322 removes access_token and operation_id5323 #assign_operation_id5324 sets operation_id5325Packages::Conan::PackageFinder5326 #execute5327 visibility: :private, role: :maintainer, packages_visible: true5328 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5329 visibility: :private, role: :developer, packages_visible: true5330 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5331 visibility: :private, role: :reporter, packages_visible: true5332 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5333 visibility: :private, role: :guest, packages_visible: false5334 is expected to eq []5335 visibility: :private, role: :anonymous, packages_visible: false5336 is expected to eq []5337 visibility: :internal, role: :maintainer, packages_visible: true5338 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5339 visibility: :internal, role: :developer, packages_visible: true5340 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5341 visibility: :internal, role: :reporter, packages_visible: true5342 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5343 visibility: :internal, role: :guest, packages_visible: true5344 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5345 visibility: :internal, role: :anonymous, packages_visible: false5346 is expected to eq []5347 visibility: :public, role: :maintainer, packages_visible: true5348 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5349 visibility: :public, role: :developer, packages_visible: true5350 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5351 visibility: :public, role: :reporter, packages_visible: true5352 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5353 visibility: :public, role: :guest, packages_visible: true5354 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5355 visibility: :public, role: :anonymous, packages_visible: true5356 is expected to eq [#<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", upda...e_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>]5357 with project5358 is expected to contain exactly #<Packages::Package id: 24, project_id: 616, created_at: "2023-08-10 12:42:30.381962955 +0000", updat...ge_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 22, project_id: 616, created_at: "2023-08-10 12:42:30.061181758 +0000", updat...ge_type: "conan", creator_id: 1079, status: "default", last_downloaded_at: nil, status_message: nil>5359 respects the limit5360 with a different project5361 is expected to contain exactly #<Packages::Package id: 28, project_id: 617, created_at: "2023-08-10 12:42:31.117968075 +0000", updat...ge_type: "conan", creator_id: 1081, status: "default", last_downloaded_at: nil, status_message: nil>5362ProjectGroupLink5363 Associations5364 is expected to belong to group required: false5365 is expected to belong to project required: false5366 Validation5367 is expected to validate that :project_id cannot be empty/falsy5368 is expected to validate that :group_id is case-sensitively unique within the scope of :project_id, producing a custom validation error on failure5369 is expected to validate that :group cannot be empty/falsy5370 is expected to validate that :group_access cannot be empty/falsy5371 doesn't allow a project to be shared with the group it is in5372 doesn't allow a project to be shared with an ancestor of the group it is in5373 does not allow a project to be shared with `OWNER` access level5374 scopes5375 .non_guests5376 returns all records which are greater than Guests access5377 search by group name5378 is expected to eq [#<ProjectGroupLink id: 12, project_id: 633, group_id: 1979, created_at: "2023-08-10 12:42:41.585216864 +0000", updated_at: "2023-08-10 12:42:41.585216864 +0000", group_access: 30, expires_at: nil>]5379 is expected to be empty5380Clusters::AgentTokens::CreateService5381 #execute5382 does not create a new token due to user permissions5383 returns permission errors5384 with user permissions5385 creates a new token5386 returns success status5387 returns token information5388 creates an activity event5389 when params are invalid5390 does not create a new token5391 does not create an activity event5392 returns validation errors5393 when the active agent tokens limit is reached5394 returns an error5395InstanceConfiguration5396 without cache5397 #settings5398 #ssh_algorithms_hashes5399 does not return anything if file does not exist5400 does not return anything if file is empty5401 returns the md5 and sha256 if file valid and exists5402 includes all algorithms5403 does not include disabled algorithm5404 #host5405 returns current instance host5406 #gitlab_pages5407 returns Settings.pages5408 returns the GitLab's pages host ip address5409 returns the ip address as nil if the domain is invalid5410 returns the ip address of the domain5411 #size_limits5412 returns size limits from application settings5413 returns nil if receive_max_input_size not set5414 returns nil if set to 0 (unlimited)5415 #package_file_size_limits5416 returns package file size limits5417 #ci_cd_limits5418 returns CI/CD limits5419 #rate_limits5420 returns rate limits from application settings5421 with cache5422 caches settings content5423 cached settings5424 expires after EXPIRATION_TIME5425Gitlab::Ci::Trace::Archive5426 with transactional fixtures5427 #execute5428 computes and assigns checksum5429 validating artifact checksum5430 when the object store is disabled5431 behaves like skips validations5432 behaves like valid5433 does not count as invalid5434 behaves like local checksum only5435 generates only local checksum5436 with FIPS enabled5437 does not generate md5 checksums5438 behaves like valid5439 does not count as invalid5440 with direct_upload enabled5441 checksums match5442 behaves like valid5443 does not count as invalid5444 when the checksum does not match5445 counts as invalid5446 with FIPS enabled5447 does not generate md5 checksums5448 behaves like valid5449 does not count as invalid5450 with FIPS enabled5451 does not generate md5 checksums5452 behaves like valid5453 does not count as invalid5454 without transactional fixtures5455 #execute!5456 does not upload the trace inside a database transaction5457Participable5458 .participant5459 adds the participant attributes to the existing list5460 #participants5461 returns the list of participants5462 caches the list of filtered participants5463 supports attributes returning another Participable5464 when using a Proc as an attribute5465 calls the supplied Proc5466 participable is a personal snippet5467 returns the list of participants5468 #visible_participants5469 returns the list of participants5470 when Participable is not readable by the user5471 does not return unavailable participants5472 with multiple system notes from the same author and mentioned_users5473 skips expensive checks if the author is aleady in participants list5474 behaves like visible participants for issuable with read ability5475 when source is an award emoji5476 behaves like check for participables read ability5477 receives expected ability5478 when source is a note5479 behaves like check for participables read ability5480 receives expected ability5481 when source is an internal note5482 behaves like check for participables read ability5483 receives expected ability5484 when source is a system note5485 behaves like check for participables read ability5486 receives expected ability5487 behaves like visible participants for issuable with read ability5488 when source is an award emoji5489 behaves like check for participables read ability5490 receives expected ability5491 when source is a note5492 behaves like check for participables read ability5493 receives expected ability5494 when source is an internal note5495 behaves like check for participables read ability5496 receives expected ability5497 when source is a system note5498 behaves like check for participables read ability5499 receives expected ability5500 #participant?5501 returns whether the user is a participant5502 caches the list of raw participants5503 participable is a personal snippet5504 returns whether the user is a participant5505Schedulable5506 for a pipeline_schedule5507 behaves like #schedule_next_run!5508 saves the object and sets next_run_at5509 sets next_run_at to nil on error5510 behaves like before_save callback5511 updates next_run_at5512 behaves like .runnable_schedules5513 returns the runnable schedules5514 for a container_expiration_policy5515 behaves like #schedule_next_run!5516 saves the object and sets next_run_at5517 sets next_run_at to nil on error5518 behaves like before_save callback5519 updates next_run_at5520 behaves like .runnable_schedules5521 returns the runnable schedules5522 for a packages cleanup policy5523 behaves like #schedule_next_run!5524 saves the object and sets next_run_at5525 sets next_run_at to nil on error5526 behaves like before_save callback5527 updates next_run_at5528 behaves like .runnable_schedules5529 returns the runnable schedules5530 #next_run_at5531 raises a NotImplementedError5532SnippetBlobPresenter5533 #rich_data5534 with PersonalSnippet5535 when blob is binary5536 returns the HTML associated with the binary5537 with markdown format5538 returns rich markdown content5539 with notebook format5540 returns rich notebook content5541 with openapi format5542 returns rich openapi content5543 with svg format5544 returns rich svg content5545 with other format5546 does not return no rich content5547 route helpers5548 #raw_path5549 behaves like snippet blob raw path5550 for PersonalSnippets5551 returns the raw personal snippet blob path5552 for ProjectSnippets5553 returns the raw project snippet blob path5554 with a snippet without a repository5555 with ProjectSnippet5556 returns the raw project snippet path5557 with PersonalSnippet5558 returns the raw personal snippet path5559 #raw_plain_data5560 with a plain file5561 shows raw data for non binary files5562 with a binary file5563 returns nil5564 #raw_url5565 behaves like snippet blob raw url5566 for PersonalSnippets5567 returns the raw personal snippet blob url5568 for ProjectSnippets5569 returns the raw project snippet blob url5570 with a snippet without a repository5571 with ProjectSnippet5572 returns the raw project snippet url5573 with PersonalSnippet5574 returns the raw personal snippet url5575Gitlab::JiraImport5576 .validate_project_settings!5577 without user param5578 behaves like jira configuration base checks5579 with configuration_check set to false5580 does not raise Jira integration error5581 when Jira integration was not setup5582 behaves like raise Jira import error5583 returns error5584 when Jira integration exists5585 when Jira connection is not valid5586 behaves like raise Jira import error5587 returns error5588 when jira connection is valid5589 does not return any error5590 with user param provided5591 when user has permission to run import5592 behaves like jira configuration base checks5593 with configuration_check set to false5594 does not raise Jira integration error5595 when Jira integration was not setup5596 behaves like raise Jira import error5597 returns error5598 when Jira integration exists5599 when Jira connection is not valid5600 behaves like raise Jira import error5601 returns error5602 when jira integration is configured5603 when issues feature is disabled5604 behaves like raise Jira import error5605 returns error5606 when everything is ok5607 does not return any error5608 when user does not have permissions to run the import5609 behaves like raise Jira import error5610 returns error5611 .already_imported_cache_key5612 returns cache key for already imported items5613 .jira_issues_next_page_cache_key5614 returns cache key for next issues5615 .get_issues_next_start_at5616 returns zero when not defined5617 returns negative value for next issues to be imported starting point5618 returns cached value for next issues to be imported starting point5619 .cache_users_mapping5620 stores the data correctly5621 .get_user_mapping5622 reads the data correctly5623 returns nil if value not found5624 .store_issues_next_started_at5625 stores nil value5626 stores positive value5627 stores negative value5628Ci::RunnerManagerBuild5629 # order random5630 is expected to belong to build required: false5631 is expected to belong to runner_manager required: false5632 .for_build5633 with valid build_id5634 is expected to contain exactly #<Ci::RunnerManagerBuild partition_id: 100, build_id: 294, runner_machine_id: 1>5635 with valid build_ids5636 is expected to eq #<ActiveRecord::Relation [#<Ci::RunnerManagerBuild partition_id: 100, build_id: 294, runner_machine_id: 1>, #<Ci::RunnerManagerBuild partition_id: 100, build_id: 295, runner_machine_id: 1>]>5637 with non-existeng build_id5638 is expected to be empty5639 .pluck_runner_manager_id_and_build_id5640 with default scope5641 is expected to eq {294=>1}5642 with scope excluding build5643 is expected to be empty5644 partitioning5645 with build5646 sets partition_id to the current partition value5647 when it is already set5648 does not change the partition_id value5649 without build5650 is expected to validate that :partition_id cannot be empty/falsy5651 does not change the partition_id value5652 ci_sliding_list partitioning5653 is expected to be empty5654 is expected to be empty5655 is expected to include #<Gitlab::Database::Partitioning::SingleNumericListPartition:0x00007ea05bb50d18 @table="p_ci_runner_machine_builds", @value=100, @partition_name="ci_runner_machine_builds_100">5656 is expected to be present5657 loose foreign key on p_ci_runner_manager_builds.runner_manager_id5658 behaves like cleanup by a loose foreign key5659 cleans up (delete or nullify) the model5660ProjectFeaturesCompatibility5661 converts fields from 'true' to ProjectFeature::ENABLED5662 converts fields from 'false' to ProjectFeature::DISABLED5663 converts fields from true to ProjectFeature::ENABLED5664 converts fields from false to ProjectFeature::DISABLED5665 access levels5666 access_level: "disabled", expected_result: 05667 accepts access level5668 access_level: "private", expected_result: 105669 accepts access level5670 access_level: "enabled", expected_result: 205671 accepts access level5672 access_level: "public", expected_result: 305673 accepts access level5674Gitlab::ImportExport::Project::ExportTask5675 when project is found5676 performs project export successfully5677 behaves like rake task with disabled object_storage5678 disables direct & background upload only for service call5679 when project is not found5680 logs an error5681 returns false5682 when file path is invalid5683 logs an error5684 returns false5685 when after export strategy fails5686 error is logged5687 when saving services fail5688 error is logged5689Gitlab::GithubImport::Importer::NoteAttachmentsImporter5690 # order random5691 #execute5692 when importing release attachments5693 behaves like updates record description5694 changes attachment links5695 changes link to project blob files5696 doesn't change links to other projects5697 when importing issue attachments5698 behaves like updates record description5699 changes attachment links5700 changes link to project blob files5701 doesn't change links to other projects5702 when importing merge request attachments5703 behaves like updates record description5704 changes attachment links5705 changes link to project blob files5706 doesn't change links to other projects5707 when importing note attachments5708 changes note text with new attachment urls5709 changes note links to project blob files5710 doesn't change note links to other projects5711Gitlab::GithubImport::Importer::Events::ChangedAssignee5712 #execute5713 with Issue5714 behaves like process assigned & unassigned events5715 when importing an assigned event5716 behaves like create expected notes5717 creates expected note5718 creates expected system note metadata5719 when importing an unassigned event5720 behaves like create expected notes5721 creates expected note5722 creates expected system note metadata5723 with MergeRequest5724 behaves like process assigned & unassigned events5725 when importing an assigned event5726 behaves like create expected notes5727 creates expected note5728 creates expected system note metadata5729 when importing an unassigned event5730 behaves like create expected notes5731 creates expected note5732 creates expected system note metadata5733TagsFinder5734 #execute5735 sort only5736 sorts by name5737 sorts by recently_updated5738 sorts by last_updated5739 when sort is not a string5740 ignores sort parameter5741 filter only5742 filters tags by name5743 does not find any tags with that name5744 filters tags by name that begins with5745 filters tags by name that ends with5746 filters tags by name with wildcard5747 filters tags by nonexistent name that begins with5748 filters tags by nonexistent name that ends with5749 filters tags by nonexistent name with wildcard5750 when search is not a string5751 returns no matches5752 filter and sort5753 when sort by updated_desc5754 filters tags by name5755 when sort by updated_asc5756 filters tags by name5757 with Gitaly pagination5758 by page_token and per_page5759 filters tags5760 by next page_token and per_page5761 filters branches5762 by per_page only5763 filters branches5764 by page_token only5765 raises an error5766 pagination and sort5767 by per_page5768 filters branches5769 by page_token and per_page5770 filters branches5771 pagination and search5772 ignores the pagination for search5773 when Gitaly is unavailable5774 raises an exception5775Gitlab::UsageDataCounters::KubernetesAgentCounter5776 behaves like a redis usage counter5777 .count(gitops_sync)5778 increments the Kubernetes Agent gitops_sync counter by 15779 .read(gitops_sync)5780 returns the total number of gitops_sync events5781 behaves like a redis usage counter with totals5782 totals5783 can report all totals5784 unknown events5785 cannot increment5786 cannot read5787 behaves like a redis usage counter5788 .count(k8s_api_proxy_request)5789 increments the Kubernetes Agent k8s_api_proxy_request counter by 15790 .read(k8s_api_proxy_request)5791 returns the total number of k8s_api_proxy_request events5792 behaves like a redis usage counter with totals5793 totals5794 can report all totals5795 unknown events5796 cannot increment5797 cannot read5798 behaves like a redis usage counter5799 .count(flux_git_push_notifications_total)5800 increments the Kubernetes Agent flux_git_push_notifications_total counter by 15801 .read(flux_git_push_notifications_total)5802 returns the total number of flux_git_push_notifications_total events5803 behaves like a redis usage counter with totals5804 totals5805 can report all totals5806 unknown events5807 cannot increment5808 cannot read5809 behaves like a redis usage counter5810 .count(k8s_api_proxy_requests_via_ci_access)5811 increments the Kubernetes Agent k8s_api_proxy_requests_via_ci_access counter by 15812 .read(k8s_api_proxy_requests_via_ci_access)5813 returns the total number of k8s_api_proxy_requests_via_ci_access events5814 behaves like a redis usage counter with totals5815 totals5816 can report all totals5817 unknown events5818 cannot increment5819 cannot read5820 behaves like a redis usage counter5821 .count(k8s_api_proxy_requests_via_user_access)5822 increments the Kubernetes Agent k8s_api_proxy_requests_via_user_access counter by 15823 .read(k8s_api_proxy_requests_via_user_access)5824 returns the total number of k8s_api_proxy_requests_via_user_access events5825 behaves like a redis usage counter with totals5826 totals5827 can report all totals5828 unknown events5829 cannot increment5830 cannot read5831 .increment_event_counts5832 increments the specified counters by the new increment amount5833 with empty events5834 is expected not to change `Gitlab::UsageDataCounters::KubernetesAgentCounter.totals`5835 event is unknown5836 raises an ArgumentError5837 increment is negative5838 raises an ArgumentError5839Packages::Go::VersionFinder5840 #execute5841 for the root module5842 behaves like #execute5843 returns v1.0.1, v1.0.2, v1.0.3, v1.0.45844 for the package5845 behaves like #execute5846 returns nothing5847 for the submodule5848 behaves like #execute5849 returns v1.0.3, v1.0.45850 for the root module v25851 behaves like #execute5852 returns v2.0.05853 for the bad module5854 with gomod checking enabled5855 behaves like #execute5856 returns nothing5857 with gomod checking disabled5858 behaves like #execute5859 returns v1.0.45860 #find5861 with a ref5862 returns a ref version5863 with a semver tag5864 returns a version with a semver5865 with a semver tag string5866 returns a version with a semver5867 with a commit5868 retruns a commit version5869 with a pseudo-version5870 returns a pseudo version5871 with a string that is not a semantic version5872 returns nil5873 with a pseudo-version that does not reference a commit5874 behaves like #find with an invalid argument5875 raises an argument exception: invalid pseudo-version: unknown commit5876 with a pseudo-version with a short sha5877 behaves like #find with an invalid argument5878 raises an argument exception: invalid pseudo-version: revision is shorter than canonical5879 with a pseudo-version with an invalid timestamp5880 behaves like #find with an invalid argument5881 raises an argument exception: invalid pseudo-version: does not match version-control timestamp5882Gitlab::ResourceEvents::AssignmentEventRecorder5883 # order random5884 parent: :mr_with_no_assignees, new_assignees: [], assignee_history: []5885 records the assignment history corrently5886 when batching5887 invokes multiple insert queries5888 parent: :issue_with_two_assignees, new_assignees: [:user1, :user3], assignee_history: [[:user2, :remove], [:user3, :add]]5889 records the assignment history corrently5890 parent: :mr_with_one_assignee, new_assignees: [:user1], assignee_history: [[:user3, :remove], [:user1, :add]]5891 records the assignment history corrently5892 parent: :issue_with_two_assignees, new_assignees: [:user1], assignee_history: [[:user2, :remove]]5893 records the assignment history corrently5894 parent: :issue_with_two_assignees, new_assignees: [:user1, :user2, :user3], assignee_history: [[:user3, :add]]5895 records the assignment history corrently5896 parent: :issue_with_two_assignees, new_assignees: [], assignee_history: [[:user1, :remove], [:user2, :remove]]5897 records the assignment history corrently5898 parent: :mr_with_one_assignee, new_assignees: [:user3], assignee_history: []5899 records the assignment history corrently5900 parent: :mr_with_no_assignees, new_assignees: [:user1], assignee_history: [[:user1, :add]]5901 records the assignment history corrently5902 when duplicated old assignees were given5903 deduplicates the records5904PipelineProcessWorker5905 has the `until_executed` deduplicate strategy5906 has the option to reschedule once if deduplicated and a TTL of 1 minute5907 is labeled as idempotent5908 performs multiple times sequentially without raising an exception5909 processes the pipeline5910 #perform5911 when pipeline exists5912 processes pipeline5913 when pipeline does not exist5914 does not raise exception5915Gitlab::APIAuthentication::TokenResolver5916 .new5917 with a valid type5918 creates a new instance5919 with an invalid type5920 raises a validation error5921 #resolve5922 with :personal_access_token_with_username5923 with valid credentials5924 behaves like an authorized request5925 returns the correct token5926 with an invalid username5927 behaves like an unauthorized request5928 raises an error5929 with no username5930 behaves like an unauthorized request5931 raises an error5932 with :job_token_with_username5933 with valid credentials5934 behaves like an authorized request5935 returns the correct token5936 when the job is not running5937 behaves like an unauthorized request5938 raises an error5939 with the wrong username5940 behaves like an anoymous request5941 returns nil5942 with an invalid job token5943 behaves like an unauthorized request5944 raises an error5945 with :deploy_token_with_username5946 with a valid deploy token5947 behaves like an authorized request5948 returns the correct token5949 with an invalid username5950 behaves like an unauthorized request5951 raises an error5952 when the the deploy token is restricted with external_authorization5953 with a valid deploy token5954 behaves like an unauthorized request5955 raises an error5956 with :personal_access_token5957 with valid credentials5958 behaves like an authorized request5959 returns the correct token5960 with :job_token5961 with valid credentials5962 behaves like an authorized request5963 returns the correct token5964 when the job is not running5965 behaves like an unauthorized request5966 raises an error5967 with an invalid job token5968 behaves like an unauthorized request5969 raises an error5970 with :deploy_token5971 with a valid deploy token5972 behaves like an authorized request5973 returns the correct token5974 with :personal_access_token_from_jwt5975 with valid credentials5976 behaves like an authorized request5977 returns the correct token5978 with :deploy_token_from_jwt5979 with valid credentials5980 behaves like an authorized request5981 returns the correct token5982 with :job_token_from_jwt5983 with valid credentials5984 behaves like an authorized request5985 returns the correct token5986 when the job is not running5987 behaves like an unauthorized request5988 raises an error5989 with an invalid job token5990 behaves like an unauthorized request5991 raises an error5992BulkImports::FileTransfer::ProjectConfig5993 portable_tree5994 returns portable tree5995 #export_path5996 returns tmpdir location5997 #portable_relations5998 returns a list of top level exportable relations5999 does not include skipped relations6000 #top_relation_tree6001 returns relation tree of a top level relation6002 returns relation tree with merged with deprecated tree6003 #relation_excluded_keys6004 returns excluded keys for relation6005 #tree_relation?6006 when it is a tree relation6007 returns true6008 when it is not a tree relation6009 returns false6010 #file_relation?6011 when it is a file relation6012 returns true6013 when it is not a file relation6014 returns false6015 #tree_relation_definition_for6016 returns relation definition6017 when relation is not tree relation6018 returns6019 #file_relations6020 returns project file relations6021 #batchable_relation?6022 when relation is batchable6023 returns true6024 when relation is not batchable6025 returns false6026 when relation is not listed as portable6027 returns false6028 #batchable_relations6029 returns a list of collection associations for a project6030Reenqueuer6031 disables Sidekiq retries6032 behaves like reenqueuer6033 implements lease_timeout6034 uses the :none deduplication strategy6035 #perform6036 tries to obtain a lease6037 behaves like #perform is rate limited to 1 call per6038 when the work finishes in 0 seconds6039 sleeps exactly the minimum duration6040 when the work finishes in 10% of minimum duration6041 sleeps 90% of minimum duration6042 when the work finishes in 90% of minimum duration6043 sleeps 10% of minimum duration6044 when the work finishes exactly at minimum duration6045 does not sleep6046 when the work takes 10% longer than minimum duration6047 does not sleep6048 when the work takes twice as long as minimum duration6049 does not sleep6050 #perform6051 when the lease is available6052 does perform6053 when the lease is taken6054 does not perform6055 when #perform returns truthy6056 reenqueues the worker6057 returns the original value from #perform6058 when #perform returns falsey6059 does not reenqueue the worker6060 returns the original value from #perform6061Reenqueuer::ReenqueuerSleeper6062 behaves like #perform is rate limited to 1 call per6063 when the work finishes in 0 seconds6064 sleeps exactly the minimum duration6065 when the work finishes in 10% of minimum duration6066 sleeps 90% of minimum duration6067 when the work finishes in 90% of minimum duration6068 sleeps 10% of minimum duration6069 when the work finishes exactly at minimum duration6070 does not sleep6071 when the work takes 10% longer than minimum duration6072 does not sleep6073 when the work takes twice as long as minimum duration6074 does not sleep6075 #ensure_minimum_duration6076 when the block completes well before the minimum duration6077 sleeps until the minimum duration6078 when the block completes just before the minimum duration6079 sleeps until the minimum duration6080 when the block completes just after the minimum duration6081 does not sleep6082 when the block completes well after the minimum duration6083 does not sleep6084DesignManagement::DesignCollection6085 .find_or_create_design!6086 finds an existing design6087 creates a new design if one didn't exist6088 only queries the designs once6089 inserts the design after any existing designs6090 #copy_state6091 defaults to ready6092 persists its state changes between initializations6093 state: "ready", can_start: true, can_end: false, can_error: true, can_reset: true6094 maintains state machine transition rules6095 state: "in_progress", can_start: false, can_end: true, can_error: true, can_reset: true6096 maintains state machine transition rules6097 state: "error", can_start: false, can_end: false, can_error: false, can_reset: true6098 maintains state machine transition rules6099 clearing the redis cached state when state changes back to ready6100 clears the cached state on end_copy!6101 clears the cached state on reset_copy!6102 #empty?6103 is true when the design collection has no designs6104 is false when the design collection has designs6105 #versions6106 includes versions for all designs6107 #repository6108 builds a design repository6109 #designs_by_filename6110 finds all the designs with those filenames on this issue6111 only makes a single query6112 some are deleted6113 takes deletion into account6114GroupChildSerializer6115 #represent6116 for groups6117 can render a single group6118 can render a collection of groups6119 with a hierarchy6120 expands the subgroups6121 can render a nested tree6122 without a specified parent6123 can render a tree6124 for projects6125 can render a single project6126 can render a collection of projects6127 with a hierarchy6128 can render a nested tree6129 returns an array when an array of a single instance was given6130UploadedFile6131 from_params functions6132 .from_params6133 when valid file is specified6134 only local path is specified6135 is expected not to be nil6136 generates filename from path6137 all parameters are specified6138 with a filepath6139 behaves like using the file path6140 is expected not to be nil6141 sets properly the attributes6142 handles a blank path6143 with a remote id6144 behaves like using the remote id6145 is expected not to be nil6146 sets properly the attributes6147 with a path and a remote id6148 behaves like using the remote id6149 is expected not to be nil6150 sets properly the attributes6151 when no params are specified6152 does not return an object6153 when verifying allowed paths6154 when file is stored in system temporary folder6155 is expected not to be nil6156 when file is stored in user provided upload path6157 is expected not to be nil6158 when file is stored outside of user provided upload path6159 raises an error6160 .initialize6161 when no size is provided6162 determine size from local path6163 raises an exception if is a remote file6164 when size is a number6165 is overridden by the size of the local file6166 is respected if is a remote file6167 when size is a string6168 is converted to a number6169 raises an exception if does not represent a number6170 when upload_duration is not provided6171 sets upload_duration to zero6172 when upload_duration is provided6173 and upload_duration is a number6174 sets the upload_duration6175 and upload_duration is a string6176 and represents a number6177 converts upload_duration to a number6178 and does not represent a number6179 sets upload_duration to zero6180 when unknown keyword params are provided6181 raises an exception6182 #sanitize_filename6183 is expected to eq "spaced_name"6184 is expected to eq "_____"6185 is expected to eq "_.."6186 is expected to eq "unnamed"6187layouts/signup_onboarding6188 behaves like a layout which reflects the application theme setting6189 as a themed layout6190 when no theme is explicitly selected6191 renders with the default theme6192 when user is authenticated & has selected a specific theme6193 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">6194 renders with the Indigo theme6195 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">6196 renders with the Light Indigo theme6197 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">6198 renders with the Blue theme6199 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">6200 renders with the Light Blue theme6201 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">6202 renders with the Green theme6203 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">6204 renders with the Light Green theme6205 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">6206 renders with the Red theme6207 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">6208 renders with the Light Red theme6209 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">6210 renders with the Gray theme6211 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">6212 renders with the Light Gray theme6213 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">6214 renders with the Dark Mode (alpha) theme6215 behaves like a layout which reflects the preferred language6216 when changing the a preferred language6217 renders the correct `lang` attribute in the html element6218DiffNotePosition6219 unique by note_id and diff type6220 accepts a line_range attribute6221 .create_or_update_by6222 when a diff note6223 does not have a diff note position6224 creates a diff note position6225 has a diff note position6226 updates the existing diff note position6227Gitlab::Database::AsyncConstraints::MigrationHelpers6228 # order random6229 with async check constraint validations6230 #prepare_async_check_constraint_validation6231 creates the record for async validation6232 when the check constraint does not exist6233 returns an error6234 when the record already exists6235 does attempt to create the record6236 when the async validation table does not exist6237 does not raise an error6238 #unprepare_async_check_constraint_validation6239 with check constraints6240 destroys the record6241 when the async validation table does not exist6242 does not raise an error6243 with other types of constraints6244 does not destroy the record6245 with partitioned tables6246 #prepare_partitioned_async_foreign_key_validation6247 delegates to prepare_async_foreign_key_validation for each partition6248 #unprepare_partitioned_async_foreign_key_validation6249 delegates to unprepare_async_foreign_key_validation for each partition6250 with async FK validation on regular tables6251 #prepare_async_foreign_key_validation6252 creates the record for the async FK validation6253 when an explicit name is given6254 creates the record with the given name6255 when the FK does not exist6256 returns an error6257 when the record already exists6258 does attempt to create the record6259 when the async FK validation table does not exist6260 does not raise an error6261 #unprepare_async_foreign_key_validation6262 with foreign keys6263 destroys the record6264 when an explicit name is given6265 destroys the record6266 when the async fk validation table does not exist6267 does not raise an error6268 with other types of constraints6269 does not destroy the record6270Types::UserMergeRequestInteractionType6271 is expected to require graphql authorizations :read_merge_request6272 has the expected fields6273 #can_merge6274 when the user cannot merge6275 is expected to equal false6276 when the user can merge6277 is expected to equal true6278 #can_update6279 when the user cannot update the MR6280 is expected to equal false6281 when the user can update the MR6282 is expected to equal true6283 #review_state6284 when the user has not been asked to review the MR6285 is expected to be nil6286 implies not reviewed6287 when the user has been asked to review the MR6288 implies not reviewed6289 when the user has provided a review6290 is expected to eq "reviewed"6291 implies reviewed6292 #approved6293 when the user has not approved the MR6294 is expected to equal false6295 when the user has approved the MR6296 is expected to equal true6297Gitlab::Auth::Ldap::Adapter6298 #users6299 searches with the proper options when searching by uid6300 searches with the proper options when searching by dn6301 searches with the proper options when searching with a limit6302 returns an LDAP::Person if search returns a result6303 returns empty array if search entry does not respond to uid6304 uses the right uid attribute when non-default6305 #dn_matches_filter?6306 when the search result is non-empty6307 is expected to be truthy6308 when the search result is empty6309 is expected to be falsey6310 #ldap_search6311 when the search is successful6312 and the result is non-empty6313 is expected to eq [:foo]6314 and the result is empty6315 is expected to eq []6316 when returned with expected code6317 behaves like connection retry6318 retries the operation6319 as many times as MAX_SEARCH_RETRIES6320 when no more retries6321 raises the exception6322 logs the error6323 when the search encounters an error6324 is expected to eq []6325 when the search raises an LDAP exception6326 retries the operation6327 behaves like connection retry6328 retries the operation6329 as many times as MAX_SEARCH_RETRIES6330 when no more retries6331 raises the exception6332 logs the error6333DesignManagement::Action6334 relations6335 is expected to belong to design required: false6336 is expected to belong to version required: false6337 scopes6338 with 3 designs6339 .most_recent6340 finds the correct version for each design6341 .by_design6342 returns the actions by design_id6343 .with_version6344 preloads the version6345 .by_event6346 returns the actions by event type6347 .up_to_version6348 the version is nil6349 returns all design_versions6350 when given a Version instance6351 the version is the most current6352 is expected to have attributes {:size => 6}6353 the version is the oldest6354 is expected to have attributes {:size => 2}6355 the version is the middle one6356 is expected to have attributes {:size => 4}6357 when given a commit SHA6358 the version is the most current6359 is expected to have attributes {:size => 6}6360 the version is the oldest6361 is expected to have attributes {:size => 2}6362 the version is the middle one6363 is expected to have attributes {:size => 4}6364 when given a String that is not a commit SHA6365 is expected to raise ArgumentError6366Gitlab::Pages::UrlBuilder6367 # order random6368 #artifact_url_available?6369 with not allowed extensions6370 is expected to equal false6371 with allowed extensions6372 is expected to equal true6373 #unique_host6374 when pages_unique_domain_enabled is false6375 is expected to be nil6376 when pages_unique_domain_enabled is true6377 is expected to eq "unique-domain.example.com"6378 #artifact_url6379 with not allowed extension6380 is expected to be nil6381 with allowed extension6382 is expected to eq "http://group.example.com/-/project/-/jobs/1/artifacts/path/file.txt"6383 when port is configured6384 is expected to eq "http://group.example.com:1234/-/project/-/jobs/1/artifacts/path/file.txt"6385 #pages_url6386 is expected to eq "http://group.example.com/project"6387 when namespace is upper cased6388 is expected to eq "http://group.example.com/project"6389 when project is in a nested group page6390 is expected to eq "http://group.example.com/subgroup/project"6391 when using domain pages6392 is expected to eq "http://group.example.com"6393 in development mode6394 is expected to eq "http://group.example.com:3010"6395 when not using pages_unique_domain6396 when pages_unique_domain_enabled is false6397 is expected to eq "http://group.example.com/project"6398 when pages_unique_domain_enabled is true6399 is expected to eq "http://group.example.com/project"6400 when using pages_unique_domain6401 when pages_unique_domain_enabled is false6402 is expected to eq "http://group.example.com/project"6403 when pages_unique_domain_enabled is true6404 is expected to eq "http://unique-domain.example.com"6405Gitlab::Ci::ProjectConfig6406 # order random6407 when bridge job is passed in as parameter6408 returns the content already available in command6409 when config is the Auto-Devops template6410 returns root config including the auto-devops template6411 when config is defined remotely6412 returns root config including the remote config6413 when config is defined in a custom path in the repository6414 returns root config including the local custom file6415 when config is not defined anywhere6416 returns nil6417 when config is defined in a separate repository6418 returns root config including the path to another repository6419 when path specifies a refname6420 returns root config including the path and refname to another repository6421 when config is defined in the default .gitlab-ci.yml6422 returns root config including the canonical CI config file6423 when config is passed as a parameter6424 returns the parameter content6425BitbucketServer::Representation::Activity6426 regular comment6427 is expected to be truthy6428 is expected to be falsey6429 is expected to be a kind of BitbucketServer::Representation::Comment6430 is expected to be a kind of Time6431 inline comment6432 is expected to be truthy6433 is expected to be truthy6434 is expected to be a kind of BitbucketServer::Representation::PullRequestComment6435 is expected to be a kind of Time6436 merge event6437 is expected to be falsey6438 is expected to be falsey6439 is expected to eq "root"6440 is expected to eq "test.user@example.com"6441 is expected to be a kind of Time6442 is expected to be a kind of Time6443 is expected to eq "839fa9a2d434eb697815b8fcafaecc51accfdbbc"6444Gitlab::Ci::Config::Entry::Include6445 validations6446 when value is a string6447 is expected to be valid6448 when value is hash6449 when using not allowed keys6450 is expected not to be valid6451 when using "local"6452 is expected to be valid6453 when using "file"6454 is expected to be valid6455 when using "template"6456 is expected to be valid6457 when using "component"6458 is expected to be valid6459 when using "artifact"6460 and specifying "job"6461 is expected to be valid6462 without "job"6463 is expected not to be valid6464 has specific error6465 when using "project"6466 and specifying "ref" and "file"6467 is expected to be valid6468 without "ref"6469 is expected to be valid6470 without "file"6471 is expected not to be valid6472 has specific error6473 when using with "rules"6474 is expected to be valid6475 when rules is not an array of hashes6476 is expected not to be valid6477 has specific error6478 when value is something else6479 is expected not to be valid6480 #value6481 when config is a string6482 is expected to eq "test.yml"6483 when config is a hash6484 is expected to eq {:local=>"test.yml"}6485 when config has "rules"6486 is expected to eq {:local=>"test.yml", :rules=>[{:if=>"$VARIABLE"}]}6487MergeRequests::MigrateExternalDiffsService6488 .enqueue!6489 enqueues nothing if external diffs are disabled6490 enqueues eligible in-database diffs if external diffs are enabled6491 #execute6492 migrates an in-database diff to the external store6493RuboCop::MigrationHelpers6494 # order random6495 #time_enforced?6496 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: false6497 is expected to eq false6498 name: "/gitlab/db/post_migrate/20220210184420_create_fake_table.rb", expected: false6499 is expected to eq false6500 name: "/gitlab/db/post_migrate/20221019184420_add_id_to_reports_table.rb", expected: true6501 is expected to eq true6502 #array_column?6503 when it matches array: true6504 is expected to eq true6505 when it matches a variable => 1006506 is expected to eq false6507 #in_post_deployment_migration?6508 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: false6509 is expected to eq false6510 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true6511 is expected to eq true6512 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: false6513 is expected to eq false6514 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true6515 is expected to eq true6516 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false6517 is expected to eq false6518 #version6519 is expected to eq 202002101844206520 #in_migration?6521 name: "/gitlab/db/migrate/20200210184420_create_operations_scopes_table.rb", expected: true6522 is expected to eq true6523 name: "/gitlab/db/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true6524 is expected to eq true6525 name: "/gitlab/db/geo/migrate/20200210184420_create_operations_scopes_table.rb", expected: true6526 is expected to eq true6527 name: "/gitlab/db/geo/post_migrate/20200210184420_create_operations_scopes_table.rb", expected: true6528 is expected to eq true6529 name: "/gitlab/db/elsewhere/20200210184420_create_operations_scopes_table.rb", expected: false6530 is expected to eq false6531Gitlab::Sanitizers::SVG6532 .clean6533 delegates sanitization to scrubber6534 returns sanitized data6535 scrubber6536 #scrub6537 removes an invalid element6538 removes an invalid attribute6539 accepts valid element6540 accepts valid namespaced attributes6541 #attribute_name_with_namespace6542 returns name with prefix when attribute is namespaced6543 #unsafe_href?6544 returns true if href attribute is an external url6545 returns false if href atttribute is an internal reference6546 #data_attribute?6547 returns true if is a valid data attribute6548 returns false if attribute is namespaced6549 returns false if not a data attribute6550Gitlab::Usage::ServicePing::LegacyMetricMetadataDecorator6551 metric_value: 1, error: nil, metric_class: Integer6552 exposes a duration with the correct value6553 exposes error with the correct value6554 imitates wrapped class6555 metric_value: "value", error: nil, metric_class: String6556 exposes a duration with the correct value6557 exposes error with the correct value6558 imitates wrapped class6559 metric_value: true, error: nil, metric_class: TrueClass6560 exposes a duration with the correct value6561 exposes error with the correct value6562 imitates wrapped class6563 metric_value: false, error: nil, metric_class: FalseClass6564 exposes a duration with the correct value6565 exposes error with the correct value6566 imitates wrapped class6567 metric_value: nil, error: nil, metric_class: NilClass6568 exposes a duration with the correct value6569 exposes error with the correct value6570 imitates wrapped class6571 metric_value: nil, error: #<StandardError: StandardError>, metric_class: NilClass6572 exposes a duration with the correct value6573 exposes error with the correct value6574 imitates wrapped class6575Banzai::Filter::WikiLinkFilter6576 doesn't rewrite absolute links6577 doesn't rewrite links to project uploads6578 when links are rewritable6579 stores original url in the data-canonical-src attribute6580 when links are not rewritable6581 does not store original url in the data-canonical-src attribute6582 when links point to the relative wiki path6583 does not rewrite links6584 does not rewrite links to old relative wiki path6585 when links point to the uploads folder6586 with an "a" html tag6587 rewrites links6588 with "img" html tag6589 inside an "a" html tag6590 rewrites links6591 outside an "a" html tag6592 rewrites links6593 with "video" html tag6594 rewrites links6595 with "audio" html tag6596 rewrites links6597 invalid links6598 doesn't rewrite invalid invalid_links like http://:80806599 doesn't rewrite invalid invalid_links like http://6600 doesn't rewrite invalid invalid_links like http://:8080/path6601Gitlab::GithubImport::Importer::ProtectedBranchesImporter6602 # order random6603 #sequential_import6604 imports each protected branch in sequence6605 #parallel_import6606 imports each protected branch in parallel6607 #sidekiq_worker_class6608 is expected to eq Gitlab::GithubImport::ImportProtectedBranchWorker6609 #collection_options6610 returns an empty Hash6611 #id_for_already_imported_cache6612 returns the ID of the given protected branch6613 #each_object_to_import6614 imports each protected branch page by page6615 when protected branch is already processed6616 doesn't process this branch6617 #object_type6618 is expected to eq :protected_branch6619 #importer_class6620 is expected to eq Gitlab::GithubImport::Importer::ProtectedBranchImporter6621 #parallel?6622 when running in parallel mode6623 is expected to be parallel6624 when running in sequential mode6625 is expected not to be parallel6626 #representation_class6627 is expected to eq Gitlab::GithubImport::Representation::ProtectedBranch6628 #execute6629 when running in parallel mode6630 imports protected branches in parallel6631 when running in sequential mode6632 imports protected branches in sequence6633 #collection_method6634 is expected to eq :protected_branches6635Gitlab::Ci::Parsers::Security::Sast6636 #parse!6637 when passing valid report6638 report_format: :sast, report_version: "15.0.0", scanner_length: 1, finding_length: 5, identifier_length: 6, file_path: "groovy/src/main/java/com/gitlab/security_products/tests/App.groovy", start_line: 47, end_line: 47, primary_identifiers_length: nil6639 parses all identifiers and findings6640 generates expected location6641 generates expected metadata_version6642 report_format: :sast_semgrep_for_multiple_findings, report_version: "15.0.4", scanner_length: 1, finding_length: 2, identifier_length: 6, file_path: "app/app.py", start_line: 39, end_line: nil, primary_identifiers_length: 26643 parses all identifiers and findings6644 generates expected location6645 generates expected metadata_version6646 when parsing an empty report6647 is expected to be empty6648Members::UnassignIssuablesService6649 #execute6650 when a user leaves a project6651 behaves like un-assigning issuables6652 removes issuable assignments6653 invalidates user cache6654 when a user leaves a group6655 behaves like un-assigning issuables6656 removes issuable assignments6657 invalidates user cache6658Gitlab::Database::AsyncConstraints::Validators::ForeignKey6659 # order random6660 behaves like async constraints validation6661 validates the constraint while controlling statement timeout6662 removes the constraint validation record from table6663 skips logic if not able to acquire exclusive lease6664 logs messages around execution6665 when the constraint does not exist6666 skips validation and removes the record6667 logs an appropriate message6668 with error handling6669 on production6670 increases execution attempts6671 logs an error message including the constraint_name6672 on development6673 also raises errors6674 with fully qualified table names6675 validates the constraint6676Gitlab::Timeless6677 # order random6678 disables record_timestamps temporarily6679 does not record created_at6680 does not record updated_at6681DependencyProxy::AuthTokenService6682 .user_or_deploy_token_from_jwt6683 with a user6684 is expected to eq #<User id:1268 @user587>6685 with an invalid user id6686 raises an not found error6687 behaves like handling token errors6688 with a decoding error6689 is expected to eq nil6690 with an immature signature error6691 is expected to eq nil6692 with an expired signature error6693 returns nil6694 with a deploy token6695 is expected to eq #<DeployToken id: 2, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-08...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>6696 with an invalid token6697 is expected to eq nil6698 behaves like handling token errors6699 with a decoding error6700 is expected to eq nil6701 with an immature signature error6702 is expected to eq nil6703 with an expired signature error6704 returns nil6705 with an empty token payload6706 is expected to eq nil6707RuboCop::Cop::AvoidReturnFromBlocks6708 # order random6709 flags violation for return inside a block6710 doesn't flag violation for break inside a block6711 doesn't check when block is empty6712 doesn't create more than one offense for nested blocks6713 doesn't flag violation for next inside a block6714 flags violation for return inside included > def > block6715 doesn't flag violation for return used inside a method definition6716 doesn't flag violation for return inside a lambda6717 behaves like examples with allowlisted method6718 doesn't flag violation for return inside each6719 behaves like examples with def methods6720 doesn't flag violation for return inside define_method6721 behaves like examples with def methods6722 doesn't flag violation for return inside lambda6723 behaves like examples with allowlisted method6724 doesn't flag violation for return inside loop6725 behaves like examples with allowlisted method6726 doesn't flag violation for return inside each_filename6727 behaves like examples with allowlisted method6728 doesn't flag violation for return inside times6729NotificationsHelper6730 notification_icon6731 is expected to match "data-testid=\"notifications-off-icon\""6732 is expected to match "data-testid=\"notifications-off-icon\""6733 is expected to match "data-testid=\"notifications-icon\""6734 is expected to match "data-testid=\"at-icon\""6735 is expected to match "data-testid=\"earth-icon"6736 is expected to match "data-testid=\"eye-icon\""6737 is expected to equal ""6738 notification_title6739 is expected to match "Watch"6740 is expected to match "On mention"6741 is expected to match "Global"6742 #notification_icon_level6743 is expected to eq "owner_disabled"6744 is expected to eq "watch"6745 is expected to eq "participating"6746Clusters::AgentTokens::RevokeService6747 # order random6748 #execute6749 when user is authorized6750 when user revokes agent token6751 succeeds6752 creates an activity event6753 when there is a validation failure6754 fails without raising an error6755 does not create an activity event6756 when user is not authorized6757 when user attempts to revoke agent token6758 fails6759MergeRequests::ExecuteApprovalHooksService6760 #execute6761 sends a notification when approving6762 with remaining approvals6763 fires an approval webhook6764RuboCop::CheckGracefulTask6765 # order random6766 #run6767 without args6768 behaves like rubocop scan6769 invokes a RuboCop scan6770 with adjusted rubocop status6771 with sufficient environment variables6772 notifies slack6773 with when notification fails6774 prints that notification failed6775 with missing environment variables6776 skips slack notification6777 with args6778 does not notify slack6779 behaves like rubocop scan6780 invokes a RuboCop scan6781WebHookLogPresenter6782 #details_path6783 project hook6784 is expected to eq "/namespace798/project-846/-/hooks/1/hook_logs/1"6785 service hook6786 is expected to eq "/namespace799/project-847/-/settings/integrations/drone_ci/hook_logs/2"6787 #retry_path6788 project hook6789 is expected to eq "/namespace800/project-848/-/hooks/4/hook_logs/3/retry"6790 service hook6791 is expected to eq "/namespace801/project-849/-/settings/integrations/drone_ci/hook_logs/4/retry"6792Gitlab::UUID6793 .v56794 in development6795 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"6796 in test6797 is expected to eq "5b593e54-90f5-504b-8805-5394a4d14b94"6798 in staging6799 is expected to eq "dd190b37-7754-5c7c-80a0-85621a5823ad"6800 in production6801 is expected to eq "4961388b-9d8e-5da0-a499-3ef5da58daf0"6802 v5?6803 test_string: "not even a uuid", is_uuid_v5: false6804 is expected to equal false6805 test_string: "this-seems-like-a-uuid", is_uuid_v5: false6806 is expected to equal false6807 test_string: "thislook-more-5lik-eava-liduuidbutno", is_uuid_v5: false6808 is expected to equal false6809 test_string: "9f470438-db0f-37b7-9ca9-1d47104c339a", is_uuid_v5: false6810 is expected to equal false6811 test_string: "9f470438-db0f-47b7-9ca9-1d47104c339a", is_uuid_v5: false6812 is expected to equal false6813 test_string: "9f470438-db0f-57b7-9ca9-1d47104c339a", is_uuid_v5: true6814 is expected to equal true6815Gitlab::SQL::RecursiveCTE6816 #to_arel6817 generates an Arel relation for the CTE body6818 #alias_to6819 returns an alias for the CTE6820 replaces dots with an underscore6821 #apply_to6822 applies a CTE to an ActiveRecord::Relation6823 behaves like CTE with MATERIALIZED keyword examples6824 adding MATERIALIZE to the CTE6825 when PG version is <126826 does not add MATERIALIZE keyword6827 when PG version is >=126828 adds MATERIALIZE keyword6829 when version is higher than 126830 adds MATERIALIZE keyword6831 when materialized is disabled6832 does not add MATERIALIZE keyword6833ErrorTracking::IssueDetailsService6834 # order random6835 #execute6836 with authorized user6837 when issue_details returns a detailed error6838 returns the detailed error6839 returns the gitlab_issue when the error has a sentry_issue6840 returns the gitlab_issue path from sentry when the error has no sentry_issue6841 when issue_details returns nil6842 result is not ready6843 when issue_details returns error6844 returns the error6845 when issue_details returns error with http_status6846 returns the error with correct http_status6847 with integrated error tracking6848 when error is found6849 returns the error in detailed format6850 when error does not exist6851 returns the error in detailed format6852 with unauthorized user6853 returns error6854 with error tracking disabled6855 raises error6856JiraConnectSubscriptions::CreateService6857 remote user does not have access6858 behaves like a failed execution6859 does not create a subscription6860 returns an error status6861 remote user cannot be retrieved6862 behaves like a failed execution6863 does not create a subscription6864 returns an error status6865 when user does have access6866 creates a subscription6867 returns success6868 namespace has projects6869 starts workers to sync projects in batches with delay6870 when path is invalid6871 behaves like a failed execution6872 does not create a subscription6873 returns an error status6874 when user does not have access6875 behaves like a failed execution6876 does not create a subscription6877 returns an error status6878Releases::EvidencePipelineFinder#execute6879 when the tag is passed6880 returns the evidence pipeline6881 when the ref is passed6882 returns the evidence pipeline6883 empty params6884 returns nil6885 params[:evidence_pipeline] is present6886 returns the passed evidence pipeline6887gitlab:shell rake tasks6888 install task6889 installs and compiles gitlab-shell6890 setup task6891 when "Write to authorized keys" is enabled6892 when "force" is not set6893 when the user answers "yes"6894 writes authorized keys into the file6895 when the user answers "no"6896 does not write authorized keys into the file6897 when "force" is set to "yes"6898 writes authorized keys into the file6899 when "Write to authorized keys" is disabled6900 does not write authorized keys into the file6901Tooling::Danger::SidekiqQueues6902 #changed_queue_files6903 modified_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml", "foo"], changed_queue_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml"]6904 is expected to contain exactly "app/workers/all_queues.yml" and "ee/app/workers/all_queues.yml"6905 modified_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml"], changed_queue_files: ["app/workers/all_queues.yml", "ee/app/workers/all_queues.yml"]6906 is expected to contain exactly "app/workers/all_queues.yml" and "ee/app/workers/all_queues.yml"6907 modified_files: ["app/workers/all_queues.yml", "foo"], changed_queue_files: ["app/workers/all_queues.yml"]6908 is expected to contain exactly "app/workers/all_queues.yml"6909 modified_files: ["ee/app/workers/all_queues.yml", "foo"], changed_queue_files: ["ee/app/workers/all_queues.yml"]6910 is expected to contain exactly "ee/app/workers/all_queues.yml"6911 modified_files: ["foo"], changed_queue_files: []6912 is expected to contain exactly6913 modified_files: [], changed_queue_files: []6914 is expected to contain exactly6915 #added_queue_names6916 returns queue names added by this change6917 #changed_queue_names6918 returns names for queues whose attributes were changed6919 ignores removed queues6920Users::UpsertCreditCardValidationService6921 #execute6922 successfully set credit card validation record for the user6923 when user does not have credit card validation record6924 creates the credit card validation and returns a success6925 when user has credit card validation record6926 updates the credit card validation and returns a success6927 when user id does not exist6928 behaves like returns an error without tracking the exception6929 is expected to eq :error6930 when missing credit_card_validated_at6931 behaves like returns an error, tracking the exception6932 is expected to eq :error6933 when missing user id6934 behaves like returns an error, tracking the exception6935 is expected to eq :error6936 when unexpected exception happen6937 tracks the exception and returns an error6938Tags::DestroyService6939 #execute6940 removes the tag6941 calls the RefDeleteUnlockArtifactsWorker6942 when there is an associated release on the tag6943 destroys the release6944Gitlab::GithubImport::Importer::CollaboratorImporter6945 # order random6946 #execute6947 behaves like role mapping6948 creates expected member6949 behaves like role mapping6950 creates expected member6951 behaves like role mapping6952 creates expected member6953 behaves like role mapping6954 creates expected member6955 behaves like role mapping6956 creates expected member6957 when role name is unknown (custom role)6958 raises expected error6959 when user has lower role in a project group6960 behaves like role mapping6961 creates expected member6962 when user has higher role in a project group6963 skips creating member for the project6964Mutations::Todos::MarkAllDone6965 is expected to require graphql authorizations :update_user6966 #resolve6967 marks all pending todos as done6968 behaves as expected if there are no todos for the requesting user6969 when user is not logged in6970 fails with the expected error6971Gitlab::GithubImport::BulkImporting6972 #build_database_rows6973 without validation errors6974 returns an array containing the rows to insert6975 does not import objects that have already been imported6976 with validation errors6977 without implemented github_identifiers method6978 raises NotImplementedError6979 with implemented github_identifiers method6980 returns an array containing the validation errors and logs them6981 #bulk_insert6982 bulk inserts rows into the database6983 #bulk_insert_failures6984 bulk inserts validation errors into import_failures6985 #object_type6986 raises NotImplementedError6987Gitlab::Ci::Jwt6988 #payload6989 has correct values for the standard JWT attributes6990 has correct values for the custom attributes6991 skips user related custom attributes if build has no user assigned6992 references6993 with a branch pipepline6994 is "branch"6995 with a tag pipeline6996 is "tag"6997 with a merge request pipeline6998 is "branch"6999 ref_protected7000 is false when ref is not protected7001 is true when ref is protected7002 environment7003 has correct values for environment attributes7004 deployment_tier7005 when build options specifies a different deployment_tier7006 uses deployment_tier from build options7007 .for_build7008 when ci_jwt_signing_key is present7009 behaves like generating JWT for build7010 when signing key is present7011 generates JWT with key id7012 generates JWT for the given job with ttl equal to build timeout7013 generates JWT for the given job with default ttl if build timeout is not set7014 when signing key is missing7015 raises NoSigningKeyError7016Ci::JobArtifacts::BulkDeleteByProjectService#execute7017 # order random7018 #execute7019 when number of artifacts exceeds limits to delete7020 fails to destroy7021 when requested not existing artifacts do delete7022 fails to destroy7023 when maintainer has access to the project7024 is successful (FAILED - 1)70261st Try error in ./spec/services/ci/job_artifacts/bulk_delete_by_project_service_spec.rb:68:7027expected: {:destroyed_count=>3, :destroyed_ids=>[20, 21, 22], :errors=>[]}7028 got: {:destroyed_count=>3, :destroyed_ids=>[22, 20, 21], :errors=>[]}7029(compared using ==)7030Diff:7031@@ -1,4 +1,4 @@7032 :destroyed_count => 3,7033-:destroyed_ids => [20, 21, 22],7034+:destroyed_ids => [22, 20, 21],7035 :errors => [],7037RSpec::Retry: 2nd try ./spec/services/ci/job_artifacts/bulk_delete_by_project_service_spec.rb:687038 and partially owns artifacts7039 fails to destroy7040 and request all artifacts from a different project7041 returns a error7042Mutations::ContainerRepositories::DestroyTags7043 is expected to require graphql authorizations :destroy_container_image7044 #resolve7045 with valid id7046 user_role: :maintainer, shared_examples_name: "destroying container repository tags"7047 behaves like destroying container repository tags7048 destroys the container repository tags7049 creates a package event7050 user_role: :developer, shared_examples_name: "destroying container repository tags"7051 behaves like destroying container repository tags7052 destroys the container repository tags7053 creates a package event7054 user_role: :reporter, shared_examples_name: "denying access to container respository"7055 behaves like denying access to container respository7056 raises an error7057 user_role: :guest, shared_examples_name: "denying access to container respository"7058 behaves like denying access to container respository7059 raises an error7060 user_role: :anonymous, shared_examples_name: "denying access to container respository"7061 behaves like denying access to container respository7062 raises an error7063 with non-existing id7064 behaves like denying access to container respository7065 raises an error7066 with service error7067 is expected to eq {:deleted_tag_names=>[], :errors=>["could not delete tags"]}7068 does not create a package event7069Gitlab::ImportExport::SnippetsRepoSaver7070 bundle a project Git repo7071 creates the snippet bundles dir if not exists7072 when project does not have any snippet7073 does not perform any action7074 when project has snippets7075 calls the SnippetRepoSaver for each snippet7076 when one snippet cannot be saved7077 returns false and do not process other snippets7078Gitlab::ImportExport::AvatarRestorer7079 does not break if there is just a directory7080 with avatar7081 restores a project avatar7082 saves the avatar into the project7083gitlab:lfs namespace rake task7084 migration tasks7085 migrate7086 object storage disabled7087 doesn't migrate files7088 object storage enabled7089 migrates local file to object storage7090 migrate_to_local7091 object storage enabled7092 migrates remote files to local storage7093Mutations::Achievements::Create7094 # order random7095 is expected to require graphql authorizations :admin_achievement7096 #resolve7097 when the user does not have permission7098 raises an error7099 when the user has permission7100 creates contact with correct values7101 when the params are invalid7102 returns the validation error7103Ci::ArchiveTraceWorker7104 #perform7105 when job is found7106 executes service7107 has preloaded the arguments for archiving7108 when job is not found7109 does not execute service7110dashboard/projects/_blank_state_welcome.html.haml7111 with regular user7112 with project creation enabled7113 has a doc_url7114 shows create project panel7115 with project creation disabled7116 doesn't show create project panel7117 shows an alert7118 with external user7119 doesn't show create project panel7120 shows an alert7121IgnorableColumns7122 adds columns to ignored_columns7123 adds columns to ignored_columns (array version)7124 requires remove_after attribute to be set7125 requires remove_after attribute to be set7126 requires remove_with attribute to be set7127 .ignored_columns_details7128 defaults to empty Hash7129 with single column7130 behaves like storing removal information7131 storing removal information7132 with array column7133 behaves like storing removal information7134 storing removal information7135 when called on a subclass without setting the ignored columns7136 does not raise Deadlock error7137 IgnorableColumns::ColumnIgnore7138 #safe_to_remove?7139 after remove_after date has passed7140 returns true (safe to remove)7141 before remove_after date has passed7142 returns false (not safe to remove)7143Issuable::ImportCsv::BaseService7144 # order random7145 #preprocess_milestones7146 with csv that has milestone heading7147 calls PreprocessMilestonesService7148 calls PreprocessMilestonesService with unique milestone titles7149 with csv that does not have milestone heading7150 does not call PreprocessMilestonesService7151 when one or more milestones do not exist7152 returns the expected error in results payload7153 when all milestones exist7154 returns a successful response7155UserAgentDetail7156 .submittable?7157 is submittable when not already submitted7158 is not submittable when already submitted7159 .valid?7160 is valid with a subject7161 is invalid without a subject7162Gitlab::Database::MigrationHelpers::ConvertToBigint7163 # order random7164 #temp_column_removed?7165 return true when column is not present7166 return false when column present7167 #com_or_dev_or_test_but_not_jh?7168 dot_com: true, dev_or_test: true, jh: true, expectation: true7169 returns true for GitLab.com (but not JH), dev, or test7170 dot_com: true, dev_or_test: false, jh: true, expectation: false7171 returns true for GitLab.com (but not JH), dev, or test7172 dot_com: false, dev_or_test: true, jh: true, expectation: true7173 returns true for GitLab.com (but not JH), dev, or test7174 dot_com: false, dev_or_test: false, jh: true, expectation: false7175 returns true for GitLab.com (but not JH), dev, or test7176 dot_com: true, dev_or_test: true, jh: false, expectation: true7177 returns true for GitLab.com (but not JH), dev, or test7178 dot_com: true, dev_or_test: false, jh: false, expectation: true7179 returns true for GitLab.com (but not JH), dev, or test7180 dot_com: false, dev_or_test: true, jh: false, expectation: true7181 returns true for GitLab.com (but not JH), dev, or test7182 dot_com: false, dev_or_test: false, jh: false, expectation: false7183 returns true for GitLab.com (but not JH), dev, or test7184 #columns_swapped?7185 returns true if columns are already swapped7186 returns false if columns are not yet swapped7187Gitlab::SilentMode7188 # order random7189 .enabled?7190 when silent mode is enabled7191 is expected to be truthy7192 when silent mode is disabled7193 is expected to be falsey7194 .log_debug7195 when silent mode is enabled7196 logs to AppJsonLogger and adds the current state of silent mode7197 when silent mode is disabled7198 logs to AppJsonLogger and adds the current state of silent mode7199 overwrites silent_mode_enabled log key if call already contains it7200 .log_info7201 when silent mode is enabled7202 logs to AppJsonLogger and adds the current state of silent mode7203 when silent mode is disabled7204 logs to AppJsonLogger and adds the current state of silent mode7205 overwrites silent_mode_enabled log key if call already contains it7206Namespaces::ProjectNamespacePolicy7207 behaves like checks timelog categories permissions7208 with no user7209 is expected to be disallowed :read_timelog_category7210 with a regular user7211 is expected to be disallowed :read_timelog_category7212 with a reporter user7213 when timelog_categories is enabled7214 is expected to be allowed :read_timelog_category7215 when timelog_categories is disabled7216 is expected to be disallowed :read_timelog_category7217projects/notes/_more_actions_dropdown7218 shows Report abuse to admin button if not editable and not current users comment7219 does not show the More actions button if not editable and current users comment7220 shows Report abuse and Delete buttons if editable and not current users comment7221 shows Delete button if editable and current users comment7222Snippets::ScheduleBulkRepositoryShardMovesService7223 behaves like moves repository shard in bulk7224 #execute7225 schedules container repository storage moves7226 read-only repository7227 does not get scheduled7228 .enqueue7229 defers to the worker7230Database::CiNamespaceMirrorsConsistencyCheckWorker7231 #perform7232 executes the consistency check on namespaces7233 logs should contain the detailed mismatches7234 reports the differences to the logs7235 calls the consistency_fix_service to fix the inconsistencies7236Gitlab::Analytics::CycleAnalytics::StageEvents::IssueFirstMentionedInCommit7237 behaves like value stream analytics event7238 is expected to be a kind of String7239 is expected to be a kind of Symbol7240 is expected to include ApplicationRecord(abstract)7241 is expected to respond to #timestamp_projection7242 is expected to respond to #html_description7243 is expected to be a kind of Array7244 #apply_query_customization7245 expects an ActiveRecord::Relation object as argument and returns a modified version of it7246 #hash_code7247 returns a hash that uniquely identifies an event7248 does not differ when the same object is built with the same params7249 behaves like LEFT JOIN-able value stream analytics event7250 can use the event as LEFT JOIN7251 when looking at the record with data7252 contains the timestamp expression7253 when looking at the record without data7254 returns nil for the timestamp expression7255Users::DismissProjectCalloutService7256 #execute7257 sets the project_id7258 behaves like dismissing user callout7259 creates a new user callout7260 returns a user callout7261 sets the dismissed_at attribute to current time7262 updates an existing callout dismissed_at time7263 does not update an invalid record with dismissed_at time7264Clusters::Agents::Authorizations::CiAccess::FilterService7265 # order random7266 #execute7267 when there are no filters7268 returns the authorizations as is7269 when filtering by environment7270 returns the authorizations with the given environment AND authorizations without any environment7271 when environment filter has a wildcard7272 returns the authorizations with matching environments AND authorizations without any environment7273 when environment filter is nil7274 returns the authorizations without any environment7275Gitlab::Database::PostgresConstraint7276 # order random7277 #unique_constraints7278 finds the unique constraints for the table7279 #primary_key_constraints7280 finds the primary key constraint for the table7281 finds the columns in the primary key constraint7282 #not_including_column7283 only matches constraints not including the given column7284 #including_column7285 only matches constraints on the given column7286 #by_table_identifier7287 includes all constraints on the table7288 throws an error if the format is incorrect7289 #primary_or_unique_constraints7290 finds primary and unique constraints7291 #check_constraints7292 finds check constraints for the table7293 includes columns for the check constraints7294 #valid7295 excludes invalid constraints7296Environments::DestroyService7297 # order random7298 #execute7299 when destroy is authorized7300 destroys the environment7301 when destroy is not authorized7302 does not destroy the environment7303 when destroy fails7304 returns errors7305Gitlab::Database::Type::JsonPgSafe7306 #serialize7307 value: nil, json: nil7308 is expected to eq nil7309 value: 1, json: "1"7310 is expected to eq "1"7311 value: 1.0, json: "1.0"7312 is expected to eq "1.0"7313 value: "str\u0000ing\u0000", json: "\"string\""7314 is expected to eq "\"string\""7315 value: ["\u0000arr", "a\u0000y"], json: "[\"arr\",\"ay\"]"7316 is expected to eq "[\"arr\",\"ay\"]"7317 value: {"key\u0000"=>"value\u0000\u0000"}, json: "{\"key\":\"value\"}"7318 is expected to eq "{\"key\":\"value\"}"7319AwardEmojisFinder7320 param validation7321 raises an error if `name` is invalid7322 does not raise an error if `name` is numeric7323 raises an error if `awarded_by` is invalid7324 #execute7325 scopes to the awardable7326 filters by emoji name7327 filters by user7328Mutations::IncidentManagement::TimelineEvent::PromoteFromNote7329 # order random7330 is expected to require graphql authorizations :admin_incident_management_timeline_event7331 #resolve7332 when a user has permissions to create timeline event7333 behaves like creating an incident timeline event7334 creates a timeline event7335 responds with a timeline event7336 when TimelineEvents::CreateService responds with an error7337 behaves like responding with an incident timeline errors7338 returns errors7339 when note does not exist7340 raises an error7341 when note does not belong to an incident7342 raises an error7343 when note belongs to anything else but issuable7344 raises an error7345 behaves like failing to create an incident timeline event7346 when a user has no permissions to create timeline event7347 raises an error7348Approval7349 presence validation7350 is expected to validate that :merge_request_id cannot be empty/falsy7351 is expected to validate that :user_id cannot be empty/falsy7352 uniqueness validation7353 is expected to validate that :user_id is case-sensitively unique within the scope of :merge_request_id7354Banzai::Filter::TruncateVisibleFilter7355 # order random7356 truncates HTML properly7357 preserves a link href when link text is truncated7358 does not truncate if truncate_visible_max_chars not specified7359 truncates HTML with emoji properly7360 truncates the text with multiple paragraphs7361 behaves like truncates text7362 is expected to match "Paragraph 1..."7363 truncates the first line of a code block7364 behaves like truncates text7365 is expected to match "Code block...</span></code>"7366 preserves code color scheme7367 behaves like truncates text7368 is expected to match "<code><span id=\"LC1\" class=\"line\" lang=\"ruby\"><span class=\"k\">def</span> <span class=\"nf\">test</span>...</span>"7369 displays inline code7370 behaves like truncates text7371 is expected to match "Text with <code>inline code</code>"7372 truncates a single long line of text7373 behaves like truncates text7374 is expected to match "... quick brown fox jumped over the lazy dog twiceThe quick brown fox jumped over the lazy dog twice"7375Import::GitlabProviderRepoEntity7376 behaves like exposes required fields for import entity7377 exposes required fields7378 correctly exposes id7379 correctly exposes full name7380 correctly exposes sanitized name7381 correctly exposes provider link7382Gitlab::Metrics::Dashboard::Validator::PostSchemaValidator7383 #validate7384 with no project and dashboard_path provided7385 unique local metric_ids7386 returns empty array7387 duplicate local metrics_ids7388 returns error7389 with project and dashboard_path7390 with unique metric identifiers7391 returns empty array7392 duplicate metric identifiers in database7393 with different dashboard_path7394 returns error7395 with same dashboard_path7396 returns empty array7397WorkerContext7398 .worker_context7399 allows modifying the context for the entire worker7400 allows fetches the context from a superclass if none was defined7401 .bulk_perform_async_with_contexts7402 calls bulk_perform_async with the arguments7403 behaves like tracking bulk scheduling contexts7404 clears the contexts7405 context contents7406 keeps track of the context per key to schedule7407 does not share contexts across threads7408 .bulk_perform_in_with_contexts7409 calls bulk_perform_in with the arguments and delay7410 behaves like tracking bulk scheduling contexts7411 clears the contexts7412 context contents7413 keeps track of the context per key to schedule7414 does not share contexts across threads7415 #with_context7416 allows modifying context when the job is running7417 yields the arguments to the block7418Users::MigrateRecordsToGhostUserInBatchesWorker7419 # order random7420 is labeled as idempotent7421 migrates issue to ghost user7422 performs multiple times sequentially without raising an exception7423 #perform7424 executes service with lease7425Gitlab::Metrics::Dashboard::RepoDashboardFinder7426 .list_dashboards7427 deletes dashboard cache entries7428 returns empty array when there are no dashboards7429 when there are project dashboards available7430 returns the dashboard list7431 .read_dashboard7432 raises error when dashboard does not exist7433 when there are project dashboards available7434 reads dashboard7435RuboCop::Cop::SafeParams7436 # order random7437 flags the params as an argument of url_for7438 does not flag other argument of url_for7439 flags the merged params as an argument of url_for7440 flags the merged params arg as an argument of url_for7441CycleAnalytics::ProjectLevelStageAdapter7442 calculates median7443 lists events7444 presents the data as json7445Gitlab::GrapeLogging::Loggers::FilterParameters7446 # order random7447 .parameters7448 when the log_safety setting is provided7449 includes safe parameters, and filters unsafe ones7450 when the log_safety is not provided7451 behaves like the normal parameter filter7452gitlab:ci_secure_files7453 # order random7454 gitlab:ci_secure_files:migrate7455 invokes the migration helper to move files to object storage7456 when an error is raised while migrating7457 logs the error7458Repositories::ChangelogCommitsFinder7459 #each_page7460 only yields commits with the given trailer7461 ignores commits that are reverted7462 includes revert commits if they have a trailer7463 supports paginating of commits7464 #revert_commit_sha7465 returns the SHA of a reverted commit7466 returns nil when the commit is not a revert commit7467 returns nil when the commit has no description7468Gitlab::Ci::Pipeline::Quota::Deployments7469 #enabled?7470 when limit is enabled in plan7471 is enabled7472 when limit is not enabled7473 is not enabled7474 when limit does not exist7475 is enabled by default7476 #exceeded?7477 when limit is exceeded7478 is exceeded7479 when limit is not exceeded7480 is not exceeded7481 #message7482 when limit is exceeded7483 returns info about pipeline deployment limit exceeded7484RedisMigrationWorker7485 # order random7486 #perform7487 runs migration logic on scanned keys7488 when job exceeds deadline7489 enqueues another job and returns7490 behaves like an idempotent worker7491 is labeled as idempotent7492 performs multiple times sequentially without raising an exception7493 .fetch_migrator!7494 raise error if class does not exist7495 when class exists7496 returns an instance7497Gitlab::SetupHelper::Praefect7498 .configuration_toml7499 defaults to in memory queue7500 provides database details if wanted7501 fails when pghost is missing7502 uses the provided pghost7503 fails when pgport is missing7504 uses the provided pgport7505 fails when pguser is missing7506 uses the provided pguser7507 defaults to praefect_test if dbname is missing7508 uses the provided dbname7509 .get_config_path7510 defaults to praefect.config.toml7511 takes the provided config_filename7512Banzai::Filter::TimeoutHtmlPipelineFilter7513 # order random7514 raises NotImplementedError7515 behaves like html filter timeout7516 when rendering takes too long7517 times out7518Gitlab::Usage::Metrics::Instrumentations::CountProjectsWithAlertsCreatedMetric7519 # order random7520 with all timeframe7521 behaves like a correct instrumented metric value7522 has correct value7523 with 28d timeframe7524 behaves like a correct instrumented metric value7525 has correct value7526Spam::SpamParams7527 .new_from_request7528 with a normal Rails request7529 behaves like constructs from a request7530 constructs from a request7531 with a grape request7532 behaves like constructs from a request7533 constructs from a request7534Sidebars::Concerns::LinkWithHtmlOptions7535 #link_html_options7536 with existing classes7537 includes class and default aria-label attribute7538 without existing classes7539 includes gl-link class7540Gitlab::Template::Finders::RepoTemplateFinder7541 #read7542 returns the content of the given path7543 raises an error if the path does not exist7544 #find7545 returns the full path of the found template7546 does not permit path traversal requests7547 #list_files_for7548 returns the full path of the found files7549VulnerabilityFindingHelpers7550 #requires_manual_resolution?7551 returns false if the finding does not require manual resolution7552 returns true when the finding requires manual resolution7553Types::Clusters::AgentActivityEventType7554 is expected to eq "ClusterAgentActivityEvent"7555 is expected to require graphql authorizations :read_cluster_agent7556 is expected to have graphql fields :recorded_at, :kind, :level, :user, and :agent_token7557EnableSearchSettingsHelper7558 #enable_search_settings7559 sets content for before_content7560Resolvers::Admin::Analytics::UsageTrends::MeasurementsResolver7561 #resolve7562 when requesting project count measurements7563 as an admin user7564 returns the records, latest first7565 as a non-admin user7566 generates a ResourceNotAvailable error7567 as an unauthenticated user7568 generates a ResourceNotAvailable error7569 when filtering by recorded_after and recorded_before7570 is expected to contain exactly #<Analytics::UsageTrends::Measurement id: 1, count: 1000, recorded_at: "2023-08-08 12:46:13.929005554 +0000", identifier: "projects">7571 when "incorrect" values are passed7572 is expected to be empty7573 when requesting pipeline counts by pipeline status7574 filter for pipelines_succeeded7575 is expected to eq [#<Analytics::UsageTrends::Measurement id: 3, count: 1000, recorded_at: "2023-08-08 12:46:14.138444962 +0000", identifier: "pipelines_succeeded">]7576 filter for pipelines_skipped7577 is expected to eq [#<Analytics::UsageTrends::Measurement id: 4, count: 1000, recorded_at: "2023-08-08 12:46:14.144395952 +0000", identifier: "pipelines_skipped">]7578 filter for pipelines_failed7579 is expected to be empty7580 filter for pipelines_canceled7581 is expected to be empty7582Gitlab::GithubImport::ImportProtectedBranchWorker7583 # order random7584 #import7585 imports protected branch rule7586Gitlab::Ci::Config::Entry::Services7587 when configuration is valid7588 #valid?7589 is valid7590 #value7591 returns valid array7592 when configuration is invalid7593 #valid?7594 is invalid7595 when configuration has ports7596 when with_image_ports metadata is not enabled7597 #valid?7598 is not valid7599 when with_image_ports metadata is enabled7600 #valid?7601 is valid7602 #value7603 returns valid array7604 services alias7605 when they are not unique7606 #valid?7607 is invalid7608 when they are unique7609 #valid?7610 is valid7611 when one of the duplicated alias is in a service without ports7612 is valid7613 when there are not any ports7614 is valid7615Gitlab::ImportExport::WikiRepoSaver7616 bundle a wiki Git repo7617 bundles the repo successfully7618 when the repo is empty7619 bundles the repo successfully7620Ci::PipelineSchedules::TakeOwnershipService7621 # order random7622 #execute7623 when user does not have permission7624 returns ServiceResponse.error7625 when user has permission7626 returns ServiceResponse.success7627 when schedule update fails7628 returns ServiceResponse.error7629ResourceEvents::SyntheticStateNotesBuilderService7630 #execute7631 behaves like filters by paginated notes7632 only returns given notes7633 when paginated notes is empty7634 does not return any notes7635Gitlab::Ci::Status::Pipeline::Delayed7636 #text7637 overrides status text7638 #label7639 overrides status label7640 .matches?7641 when pipeline is scheduled7642 is a correct match7643 when pipeline is not scheduled7644 does not match7645Timelogs::DeleteService7646 #execute7647 when the timelog exists7648 removes the timelog7649 returns the removed timelog7650 when the timelog does not exist7651 returns an error7652 when the user does not have permission7653 returns an error7654 when the timelog deletion fails7655 returns an error7656Slack::BlockKit::IncidentManagement::IncidentModalOpened7657 # order random7658 #build7659 generates blocks for modal7660 sets projects in the project selection7661 sets initial project option as the first project path7662 truncates the path value if more than 75 chars7663PagesDomainSslRenewalWorker7664 #perform7665 delegates to ObtainLetsEncryptCertificateService7666 when domain was deleted7667 does nothing7668 when domain is disabled7669 does nothing7670Taskable7671 .get_tasks7672 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\">"]7673 with single line comments7674 is expected to match ["#<struct TaskList::Item checkbox_text=\"- [ ]\", source=\"only task item\">"]7675 #task_list_items7676 issuable_type: :issue7677 when description is present7678 gets tasks from markdown7679 when description is blank7680 returns empty array7681 does not try to get tasks from markdown7682 issuable_type: :merge_request7683 when description is present7684 gets tasks from markdown7685 when description is blank7686 returns empty array7687 does not try to get tasks from markdown7688Gitlab::Diff::StatsCache7689 VERSION is set7690 #read7691 returns the expected stats7692 #write_if_empty7693 when the cache already exists7694 does not write the stats7695 when the cache does not exist7696 writes the stats7697 when given non utf-8 characters7698 writes the stats7699 when given empty stats7700 does not write the stats7701 #clear7702 clears cache7703 with multiple cache versions7704 does not read from a stale cache7705CohortsService7706 #execute7707 returns a list of user cohorts7708Gitlab::Ci::Status::Running7709 #text7710 is expected to eq "running"7711 #label7712 is expected to eq "running"7713 #icon7714 is expected to eq "status_running"7715 #favicon7716 is expected to eq "favicon_status_running"7717 #group7718 is expected to eq "running"7719 #details_path7720 is expected to be nil7721Deployments::ArchiveInProjectWorker7722 #perform7723 executes Deployments::ArchiveInProjectService7724PropagateIntegrationInheritDescendantWorker7725 behaves like an idempotent worker7726 is labeled as idempotent7727 performs multiple times sequentially without raising an exception7728 calls to BulkUpdateIntegrationService7729 with an invalid integration id7730 returns without failure7731Gitlab::GrapeLogging::Loggers::ExceptionLogger7732 .parameters7733 when no exception is available7734 returns an empty hash7735 with a response7736 with a String response7737 logs the response body7738 with an Array response7739 casts all elements to strings7740 with a Rack BodyProxy response7741 logs the response body7742 unauthorized error7743 does not log an api_error field7744 HTTP success7745 does not log an api_error field7746 when an exception is available7747 returns the correct fields7748 with backtrace7749 includes the backtrace7750Gitlab::Import::SetAsyncJid7751 .set_jid7752 sets the JID in Redis7753 updates the import JID of the project7754PipelineNotificationWorker7755 #execute7756 calls NotificationService#pipeline_finished when the pipeline exists7757 does nothing when the pipeline does not exist7758 when the user is blocked7759 does nothing7760 behaves like worker with data consistency7761 .get_data_consistency_feature_flag_enabled?7762 returns true7763 .get_data_consistency7764 returns correct data consistency7765IssuableSidebarExtrasEntity7766 have assignee attribute7767Gitlab::GithubImport::Stage::ImportCollaboratorsWorker7768 # order random7769 #import7770 raises an error7771 when user has push access for this repo7772 imports all collaborators7773 when user do not have push access for this repo7774 skips stage7775 when stage is disabled7776 skips collaborators import and calls next stage7777event store matchers7778 # order random7779 publish_event7780 requires a block matcher7781 validates the event type7782 validates the event data7783 not_publish_event7784 requires a block matcher7785 does not permit .with7786 validates the event type7787Pages::VirtualDomain7788 #certificate and #key pair7789 returns nil if there is no domain provided7790 when Pages domain is provided7791 returns certificate and key from the provided domain7792 #lookup_paths7793 when there is pages domain provided7794 returns collection of projects pages lookup paths sorted by prefix in reverse7795 when there is trim_prefix provided7796 returns collection of projects pages lookup paths sorted by prefix in reverse7797 #cache_key7798 returns the cache key based in the given cache_control7799 returns nil when no cache_control is given7800Sidebars::Projects::Menus::CiCdMenu7801 #render?7802 when user cannot read builds7803 returns false7804 when user can read builds7805 returns true7806 Menu items7807 Pipelines Editor7808 when user cannot view pipeline editor7809 does not include pipeline editor menu item7810 when user can view pipeline editor7811 includes pipeline editor menu item7812 Artifacts7813 includes artifacts menu item7814API::Base7815 declare feature categories at handler level for all routes7816 sets feature category for a particular route7817 sets request urgency for a particular route7818 declare feature categories at route level7819 sets feature category for a particular route7820 sets request urgency for a particular route7821 declare feature categories at both handler level and route level7822 sets feature category for a particular route7823 sets target duration for a particular route7824Gitlab::Git::CommitStats7825 returns commit stats and caches them7826admin/application_settings/_ci_cd7827 limits7828 has fields for CI/CD limits7829 does not display the plan name when there is only one plan7830 with multiple plans7831 displays the plan name when there is more than one plan7832Gitlab::ColorSchemes7833 .body_classes7834 returns a space-separated list of class names7835 .by_id7836 returns a scheme by its ID7837 .default7838 use config default7839 .each7840 passes the block to the SCHEMES Array7841 .for_user7842 returns default when user is nil7843 returns user's preferred color scheme7844ScheduleMergeRequestCleanupRefsWorker7845 #perform7846 does nothing if the database is read-only7847 retries stuck cleanup schedules7848 is labeled as idempotent7849 performs multiple times sequentially without raising an exception7850 schedules MergeRequestCleanupRefsWorker to be performed with capacity7851 when merge_request_refs_cleanup flag is disabled7852 does not schedule any merge request clean ups7853ErrorTracking::SentryClient7854 # order random7855 is expected to respond to #projects7856 is expected to respond to #create_issue_link7857 is expected to respond to #list_issues7858 is expected to respond to #issue_latest_event7859 is expected to respond to #repos7860 is expected to respond to #issue_details7861RuboCop::Cop::Performance::ActiveRecordSubtransactions7862 # order random7863 when calling #transaction with other options7864 does not register an offense7865 when passing multiple arguments to #transaction, including requires_new: true7866 registers an offense7867 when calling #transaction with requires_new: false7868 does not register an offense7869 when calling #transaction with only requires_new: true7870 registers an offense7871 when calling #transaction with no arguments7872 does not register an offense7873Analytics::UsageTrends::CountJobTriggerWorker7874 behaves like an idempotent worker7875 is labeled as idempotent7876 performs multiple times sequentially without raising an exception7877 triggers a job for each measurement identifiers7878 triggers CounterJobWorker jobs7879TermAgreement7880 validations7881 is expected to validate that :term cannot be empty/falsy7882 is expected to validate that :user cannot be empty/falsy7883 .accepted7884 only includes accepted terms7885Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies7886 .for7887 returns the right class for `until_executing`7888 returns the right class for `until_executed`7889 returns the right class for `none`7890 raises an UnknownStrategyError when passing an unknown key7891Groups::DeployTokens::DestroyService7892 behaves like a deploy token deletion service7893 #execute7894 destroys a token record and it's associated DeployToken7895 with invalid token id7896 raises an error7897Ci::Queue::PendingBuildsStrategy7898 # order random7899 builds_for_group_runner7900 returns builds ordered by build ID7901Integrations::HarborSerializers::RepositoryEntity7902 with normal repository data7903 returns the Harbor repository7904 with data that may contain path traversal attacks7905 returns empty location7906Gitlab::BitbucketServerImport::Stage::FinishImportWorker7907 # order random7908 behaves like Gitlab::BitbucketServerImport::StageMethods7909 .sidekiq_retries_exhausted7910 tracks the import failure7911 #perform7912 finalises the import process7913RuboCop::Cop::FilenameLength7914 # order random7915 does not flag files with names 100 characters long7916 tags files with names 256 characters long7917 tags files with names 101 characters long7918 tags files with filepath 256 characters long7919 tags files with filepath 257 characters long7920Releases::LinkPresenter7921 #direct_asset_url7922 when filepath is provided7923 is expected to eq "http://localhost/namespace960/project-989/-/releases/v1.4.0/downloads/bin/bigfile.exe"7924 when filepath is not provided7925 is expected to eq "https://google.com/-/jobs/140463678/artifacts/download"7926Gitlab::Middleware::RailsQueueDuration7927 #call7928 calls the app when metrics are disabled7929 when metrics are enabled7930 calls the app when metrics are enabled but no timing header is found7931 sets proxy_flight_time and calls the app when the header is present7932 observes rails queue duration metrics and calls the app when the header is present7933Users::RepairLdapBlockedService7934 #execute7935 changes to normal block after destroying last ldap identity7936 changes to normal block after changing last ldap identity to another provider7937Gitlab::ImportExport::AfterExportStrategyBuilder7938 .build!7939 initializes strategy with attributes param7940 when klass param is7941 null it returns the default strategy7942 not a valid class it raises StrategyNotFoundError exception7943 not a descendant of AfterExportStrategy7944Types::DurationType7945 presents information as a floating point number7946 accepts integers as input7947 accepts floats as input7948 rejects nil7949Packages::CleanupArtifactWorker7950 #model7951 is expected to raise NotImplementedError7952 #log_metadata7953 is expected to raise NotImplementedError7954 #log_cleanup_item7955 is expected to raise NotImplementedError7956API::Entities::DesignManagement::Design7957 has the correct attributes7958GoogleCloud::GcpRegionAddOrReplaceService7959 adds and replaces GCP region vars7960API::Entities::BulkImports::EntityFailure7961 has the correct attributes7962 exception message7963 truncates exception message to 72 characters7964 removes paths from the message7965RuboCop::Cop::Database::EstablishConnection7966 # order random7967 flags the use of ActiveRecord::Base.establish_connection with arguments7968 flags the use of SomeModel.establish_connection7969 flags the use of ActiveRecord::Base.establish_connection7970Packages::Downloadable7971 # order random7972 with a package7973 #touch_last_downloaded_at7974DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and7975from Rails 7.1 will use the default Ruby implementation.7976You can set `config.active_support.remove_deprecated_time_with_zone_name = true`7977to enable the new behavior now.7978 (called from block (4 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/models/concerns/packages/downloadable_spec.rb:15)7979 updates the downloaded_at7980DisallowTwoFactorForSubgroupsWorker7981 schedules updating subgroups7982ExportCsvWorker7983 delegates call to IssuableExportCsvWorker7984CronValidator7985 validates valid crontab7986 validates invalid crontab7987 cron field is not allowlisted7988 raises an error7989RuboCop::Cop::Migration::AddConcurrentIndex7990 # order random7991 when outside of migration7992 registers no offense7993 when in migration7994 registers an offense when add_concurrent_index is used inside a change method7995 registers no offense when add_concurrent_index is used inside an up method7996Achievements::AchievementsFinder7997 # order random7998 #execute7999 returns all achievements8000 when ids param provided8001 returns specified achievements8002Types::Projects::Services::JiraServiceType8003 is expected to eq "JiraService"8004 has basic expected fields8005 is expected to require graphql authorizations :admin_project8006shared/groups/_dropdown.html.haml8007 render8008 when a sort option is not selected8009 renders a default sort option8010 when a sort option is selected8011 renders the selected sort option8012Types::Ci::PipelineMergeRequestEventTypeEnum8013 is expected to eq "PipelineMergeRequestEventType"8014 has specific values8015Types::Snippets::BlobActionEnum8016 is expected to eq "SnippetBlobActionEnum"8017 exposes all file input action types8018Serverless::DomainEntity8019 #as_json8020 has an id8021 has a domain8022Types::Notes::DiscussionType8023 exposes the expected fields8024 is expected to require graphql authorizations :read_note8025Types::DeploymentTagType8026 # order random8027 is expected to eq "DeploymentTag"8028 has the expected fields8029Sidebars::Concerns::ContainerWithHtmlOptions8030 #container_html_options8031 includes by default aria-label attribute8032 #collapsed_container_html_options8033 includes by default aria-label attribute8034help/drawers8035 # order random8036 Markdown rendering8037 renders Markdown8038Gitlab::GithubImport::ClientPool8039 # order random8040 #best_client8041 returns the client with the most remaining requests8042 when all clients are rate limited8043 returns the client with the closest rate limit reset time8044Types::DesignManagement::VersionType8045 is expected to require graphql authorizations :read_design8046 has the expected fields8047Types::IdeType8048 # order random8049 is expected to eq "Ide"8050 has the expected fields8051AccessTokenEntityBase8052 # order random8053 has the correct attributes8054Projects::Ml::ModelsIndexComponent8055 # order random8056 rendered8057 renders element with view_model8058Types::WorkItems::Widgets::AwardEmojiType8059 # order random8060 exposes the expected fields8061API::Entities::BulkImport8062 has the correct attributes8063Gitlab::QuickActions::Dsl8064 .command_definitions8065 returns an array with commands definitions8066RuboCop::Cop::RSpec::WebMockEnable8067 # order random8068 when calling WebMock.disable_net_connect!8069 registers an offence and autocorrects it8070Resolvers::Ci::RunnerPlatformsResolver8071 #resolve8072 returns all possible runner platforms8073Gitlab::Database::ObsoleteIgnoredColumns8074 # order random8075 #execute8076 returns a list of class names and columns pairs8077Gitlab::Usage::Metrics::Instrumentations::EditionMetric8078 # order random8079 behaves like a correct instrumented metric value8080 has correct value8081Gitlab::APIAuthentication::SentThroughBuilder8082 #sent_through8083 adds a strategy for each of locators x resolvers8084Gitlab::Ci::Parsers::Coverage::Cobertura8085 uses Sax parser8086Gitlab::Memory::Watchdog::Handlers::PumaHandler8087 # order random8088 #call8089 invokes orderly termination via Puma API8090RuboCop::Cop::IncludeSidekiqWorker8091 # order random8092 when `Sidekiq::Worker` is included8093 registers an offense and corrects8094Fog::Storage::GoogleXML::File8095 delegates to #get_https_url8096Knapsack report was generated. Preview:8097{8098 "spec/models/application_setting_spec.rb": 326.027940628,8099 "spec/models/concerns/ci/has_status_spec.rb": 128.50724264199994,8100 "spec/tasks/gitlab/usage_data_rake_spec.rb": 115.87317301299993,8101 "spec/lib/gitlab/import_export/group/tree_restorer_spec.rb": 84.42538268800001,8102 "spec/lib/gitlab/import_export/project/relation_factory_spec.rb": 72.13664998400009,8103 "spec/serializers/merge_request_widget_entity_spec.rb": 56.78375669999991,8104 "spec/routing/project_routing_spec.rb": 12.520132260000082,8105 "spec/models/snippet_spec.rb": 27.080626905000145,8106 "spec/models/diff_note_spec.rb": 41.276693039000065,8107 "spec/models/members/project_member_spec.rb": 32.511955988999944,8108 "spec/lib/gitlab/ci/templates/templates_spec.rb": 10.560989701999915,8109 "spec/helpers/groups_helper_spec.rb": 10.553707923000047,8110 "spec/services/verify_pages_domain_service_spec.rb": 5.3305701690001115,8111 "spec/lib/gitlab/ci/build/prerequisite/kubernetes_namespace_spec.rb": 25.477526952000062,8112 "spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb": 3.8707841870000266,8113 "spec/helpers/blob_helper_spec.rb": 14.352593982999906,8114 "spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb": 18.764076587999853,8115 "spec/finders/packages/nuget/package_finder_spec.rb": 11.01213762700013,8116 "spec/models/trending_project_spec.rb": 22.786729773999923,8117 "spec/helpers/commits_helper_spec.rb": 18.35983354899986,8118 "spec/services/work_items/parent_links/create_service_spec.rb": 19.32347899499996,8119 "spec/lib/gitlab/gitaly_client/operation_service_spec.rb": 4.2996385419999115,8120 "spec/lib/gitlab/ci/config/entry/retry_spec.rb": 2.860724793999907,8121 "spec/lib/gitlab/ci/config/external/mapper/verifier_spec.rb": 13.079246114999933,8122 "spec/models/application_record_spec.rb": 9.819743493000033,8123 "spec/models/packages/conan/metadatum_spec.rb": 4.426776964000055,8124 "spec/lib/gitlab/gitaly_client/with_feature_flag_actors_spec.rb": 5.1949746390000655,8125 "spec/lib/gitlab/ci/variables/collection_spec.rb": 4.010952588000009,8126 "spec/lib/gitlab/database_spec.rb": 2.5799624809999386,8127 "spec/services/snippets/update_statistics_service_spec.rb": 10.316800623000063,8128 "spec/lib/gitlab/ci/lint_spec.rb": 9.46251921499993,8129 "spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb": 6.868882977000112,8130 "spec/lib/gitlab/database/load_balancing/load_balancer_spec.rb": 2.9920187469999746,8131 "spec/lib/gitlab/quick_actions/extractor_spec.rb": 2.9271039390000624,8132 "spec/models/jira_connect_installation_spec.rb": 2.207787909999979,8133 "spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb": 12.259316944000147,8134 "spec/finders/starred_projects_finder_spec.rb": 11.039112355999805,8135 "spec/models/ssh_host_key_spec.rb": 3.465111416999889,8136 "spec/lib/gitlab/user_access_snippet_spec.rb": 5.02083920400014,8137 "spec/lib/gitlab/diff/rendered/notebook/diff_file_spec.rb": 4.584154060999936,8138 "spec/lib/gitlab/chat/command_spec.rb": 8.047818858000028,8139 "spec/services/clusters/agents/authorizations/ci_access/refresh_service_spec.rb": 7.450581352999961,8140 "spec/models/clusters/providers/gcp_spec.rb": 2.7521154369999294,8141 "spec/finders/packages/conan/package_finder_spec.rb": 4.480372094999893,8142 "spec/models/project_group_link_spec.rb": 8.121889596000074,8143 "spec/services/clusters/agent_tokens/create_service_spec.rb": 8.03516546999981,8144 "spec/models/instance_configuration_spec.rb": 2.9028886300000067,8145 "spec/lib/gitlab/ci/trace/archive_spec.rb": 5.130273659000068,8146 "spec/models/concerns/participable_spec.rb": 3.640271069999926,8147 "spec/models/concerns/schedulable_spec.rb": 5.928732545999992,8148 "spec/presenters/snippet_blob_presenter_spec.rb": 4.253358234999951,8149 "spec/lib/gitlab/jira_import_spec.rb": 2.874667391999992,8150 "spec/models/ci/runner_manager_build_spec.rb": 2.7633487160001096,8151 "spec/models/concerns/project_features_compatibility_spec.rb": 4.927204207000159,8152 "spec/lib/gitlab/import_export/project/export_task_spec.rb": 3.4232023290001052,8153 "spec/lib/gitlab/github_import/importer/note_attachments_importer_spec.rb": 3.645565700999896,8154 "spec/lib/gitlab/github_import/importer/events/changed_assignee_spec.rb": 3.8321489179998025,8155 "spec/finders/tags_finder_spec.rb": 3.296447037000007,8156 "spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb": 1.2063679030000003,8157 "spec/finders/packages/go/version_finder_spec.rb": 2.4104808560000492,8158 "spec/lib/gitlab/resource_events/assignment_event_recorder_spec.rb": 3.2438739599999735,8159 "spec/workers/pipeline_process_worker_spec.rb": 4.3398328689997925,8160 "spec/lib/gitlab/api_authentication/token_resolver_spec.rb": 2.0814675439999064,8161 "spec/models/bulk_imports/file_transfer/project_config_spec.rb": 1.14564515699999,8162 "spec/workers/concerns/reenqueuer_spec.rb": 1.106901069000287,8163 "spec/models/design_management/design_collection_spec.rb": 4.509311089999983,8164 "spec/serializers/group_child_serializer_spec.rb": 4.138624940999989,8165 "spec/lib/uploaded_file_spec.rb": 2.3578540999999404,8166 "spec/views/layouts/signup_onboarding.html.haml_spec.rb": 2.441042624999909,8167 "spec/models/diff_note_position_spec.rb": 4.069689524000069,8168 "spec/lib/gitlab/database/async_constraints/migration_helpers_spec.rb": 1.4843154780000987,8169 "spec/graphql/types/user_merge_request_interaction_type_spec.rb": 2.4345947750000505,8170 "spec/lib/gitlab/auth/ldap/adapter_spec.rb": 0.7560423679999531,8171 "spec/models/design_management/action_spec.rb": 2.4944509020001533,8172 "spec/lib/gitlab/pages/url_builder_spec.rb": 0.6816463829998156,8173 "spec/lib/gitlab/ci/project_config_spec.rb": 0.9052928900000552,8174 "spec/lib/bitbucket_server/representation/activity_spec.rb": 0.6046042570001191,8175 "spec/lib/gitlab/ci/config/entry/include_spec.rb": 0.8106513250002081,8176 "spec/services/merge_requests/migrate_external_diffs_service_spec.rb": 3.647613728000124,8177 "spec/rubocop/migration_helpers_spec.rb": 0.6861384019998695,8178 "spec/lib/gitlab/sanitizers/svg_spec.rb": 1.9393953520000196,8179 "spec/lib/gitlab/usage/service_ping/legacy_metric_metadata_decorator_spec.rb": 0.7080308500001138,8180 "spec/lib/banzai/filter/wiki_link_filter_spec.rb": 0.8503055329999825,8181 "spec/lib/gitlab/github_import/importer/protected_branches_importer_spec.rb": 0.6378060449999339,8182 "spec/lib/gitlab/ci/parsers/security/sast_spec.rb": 3.384733302000086,8183 "spec/services/members/unassign_issuables_service_spec.rb": 4.151581378999936,8184 "spec/lib/gitlab/database/async_constraints/validators/foreign_key_spec.rb": 0.7665955480001685,8185 "spec/lib/gitlab/timeless_spec.rb": 1.8617851470000915,8186 "spec/services/dependency_proxy/auth_token_service_spec.rb": 0.600752797000041,8187 "spec/rubocop/cop/avoid_return_from_blocks_spec.rb": 0.6196888950000812,8188 "spec/helpers/notifications_helper_spec.rb": 1.4847309679998943,8189 "spec/services/clusters/agent_tokens/revoke_service_spec.rb": 3.9835965079998914,8190 "spec/services/merge_requests/execute_approval_hooks_service_spec.rb": 2.6946702810000716,8191 "spec/rubocop/check_graceful_task_spec.rb": 1.7161732340000526,8192 "spec/presenters/web_hook_log_presenter_spec.rb": 2.204715727999883,8193 "spec/lib/gitlab/uuid_spec.rb": 0.5678820980001547,8194 "spec/lib/gitlab/sql/recursive_cte_spec.rb": 0.5436046699999224,8195 "spec/services/error_tracking/issue_details_service_spec.rb": 2.9085220779998053,8196 "spec/services/jira_connect_subscriptions/create_service_spec.rb": 3.0687601800000266,8197 "spec/finders/releases/evidence_pipeline_finder_spec.rb": 3.7351121120000244,8198 "spec/tasks/gitlab/shell_rake_spec.rb": 1.8995308749999822,8199 "spec/tooling/danger/sidekiq_queues_spec.rb": 0.4451526059999651,8200 "spec/services/users/upsert_credit_card_validation_service_spec.rb": 0.49666656199997306,8201 "spec/services/tags/destroy_service_spec.rb": 3.490628046999973,8202 "spec/lib/gitlab/github_import/importer/collaborator_importer_spec.rb": 4.287292202000117,8203 "spec/graphql/mutations/todos/mark_all_done_spec.rb": 3.046649240999841,8204 "spec/lib/gitlab/github_import/bulk_importing_spec.rb": 0.3920148380000228,8205 "spec/lib/gitlab/ci/jwt_spec.rb": 2.7322010579998732,8206 "spec/services/ci/job_artifacts/bulk_delete_by_project_service_spec.rb": 3.264443189000076,8207 "spec/graphql/mutations/container_repositories/destroy_tags_spec.rb": 2.1068763829998716,8208 "spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb": 2.7847113149998677,8209 "spec/lib/gitlab/import_export/avatar_restorer_spec.rb": 1.3734426940000048,8210 "spec/tasks/gitlab/lfs/migrate_rake_spec.rb": 1.4560282490001555,8211 "spec/graphql/mutations/achievements/create_spec.rb": 1.1967628229999718,8212 "spec/workers/ci/archive_trace_worker_spec.rb": 1.1343428669999867,8213 "spec/views/dashboard/projects/_blank_state_welcome.html.haml_spec.rb": 0.7971154360000128,8214 "spec/models/concerns/ignorable_columns_spec.rb": 0.6045822059998045,8215 "spec/services/issuable/import_csv/base_service_spec.rb": 0.8891448010001568,8216 "spec/models/user_agent_detail_spec.rb": 0.6930688509999072,8217 "spec/lib/gitlab/database/migration_helpers/convert_to_bigint_spec.rb": 0.5147754720001103,8218 "spec/lib/gitlab/silent_mode_spec.rb": 0.4606640839999727,8219 "spec/policies/namespaces/project_namespace_policy_spec.rb": 1.8970750549999593,8220 "spec/views/projects/notes/_more_actions_dropdown.html.haml_spec.rb": 2.948958896000022,8221 "spec/services/snippets/schedule_bulk_repository_shard_moves_service_spec.rb": 0.8677916219999133,8222 "spec/workers/database/ci_namespace_mirrors_consistency_check_worker_spec.rb": 2.418546976000016,8223 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_mentioned_in_commit_spec.rb": 1.2810526390001087,8224 "spec/services/users/dismiss_project_callout_service_spec.rb": 0.7981146249999256,8225 "spec/services/clusters/agents/authorizations/ci_access/filter_service_spec.rb": 0.7254153090000273,8226 "spec/lib/gitlab/database/postgres_constraint_spec.rb": 0.8572941330000958,8227 "spec/services/environments/destroy_service_spec.rb": 1.9530946610000228,8228 "spec/lib/gitlab/database/type/json_pg_safe_spec.rb": 0.31611662199998136,8229 "spec/finders/award_emojis_finder_spec.rb": 1.5313763550000203,8230 "spec/graphql/mutations/incident_management/timeline_event/promote_from_note_spec.rb": 1.813577099999975,8231 "spec/models/approval_spec.rb": 1.4583298979998744,8232 "spec/lib/banzai/filter/truncate_visible_filter_spec.rb": 0.8673277220000273,8233 "spec/serializers/import/gitlab_provider_repo_entity_spec.rb": 0.23066354700017655,8234 "spec/lib/gitlab/metrics/dashboard/validator/post_schema_validator_spec.rb": 1.3791415939999752,8235 "spec/workers/concerns/worker_context_spec.rb": 0.6456115040000441,8236 "spec/workers/users/migrate_records_to_ghost_user_in_batches_worker_spec.rb": 1.7858993310001097,8237 "spec/lib/gitlab/metrics/dashboard/repo_dashboard_finder_spec.rb": 1.4033282519999375,8238 "spec/rubocop/cop/safe_params_spec.rb": 0.26763660500000697,8239 "spec/models/cycle_analytics/project_level_stage_adapter_spec.rb": 1.3565851939999902,8240 "spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb": 0.3162117820002095,8241 "spec/tasks/gitlab/ci_secure_files/migrate_rake_spec.rb": 1.6510933480001313,8242 "spec/finders/repositories/changelog_commits_finder_spec.rb": 1.1170804979999502,8243 "spec/lib/gitlab/ci/pipeline/quota/deployments_spec.rb": 1.2776376889999028,8244 "spec/workers/redis_migration_worker_spec.rb": 1.412746481999875,8245 "spec/lib/gitlab/setup_helper/praefect_spec.rb": 0.48569249299998773,8246 "spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb": 0.558572778000098,8247 "spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_alerts_created_metric_spec.rb": 1.6331942089998392,8248 "spec/services/spam/spam_params_spec.rb": 0.17252405999988696,8249 "spec/lib/sidebars/concerns/link_with_html_options_spec.rb": 0.1760354999998981,8250 "spec/lib/gitlab/template/finders/repo_template_finders_spec.rb": 1.0054022350000196,8251 "spec/models/concerns/vulnerability_finding_helpers_spec.rb": 0.17445950100000118,8252 "spec/graphql/types/clusters/agent_activity_event_type_spec.rb": 0.22020607700005712,8253 "spec/helpers/enable_search_settings_helper_spec.rb": 0.19849120899993977,8254 "spec/graphql/resolvers/admin/analytics/usage_trends/measurements_resolver_spec.rb": 0.6543329040000572,8255 "spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb": 0.1700666110000384,8256 "spec/lib/gitlab/ci/config/entry/services_spec.rb": 0.5371138699999847,8257 "spec/lib/gitlab/import_export/wiki_repo_saver_spec.rb": 1.4860297270001865,8258 "spec/services/ci/pipeline_schedules/take_ownership_service_spec.rb": 1.4455061000001024,8259 "spec/services/resource_events/synthetic_state_notes_builder_service_spec.rb": 1.2793798290001632,8260 "spec/lib/gitlab/ci/status/pipeline/delayed_spec.rb": 0.9372783979999895,8261 "spec/services/timelogs/delete_service_spec.rb": 0.9088119800001095,8262 "spec/lib/slack/block_kit/incident_management/incident_modal_opened_spec.rb": 1.0626184509999348,8263 "spec/workers/pages_domain_ssl_renewal_worker_spec.rb": 1.0377885319999223,8264 "spec/models/concerns/taskable_spec.rb": 0.474059403000183,8265 "spec/lib/gitlab/diff/stats_cache_spec.rb": 0.3665642599999046,8266 "spec/services/cohorts_service_spec.rb": 1.3990270219999275,8267 "spec/lib/gitlab/ci/status/running_spec.rb": 0.4020852080000168,8268 "spec/workers/deployments/archive_in_project_worker_spec.rb": 1.2636575999999877,8269 "spec/workers/propagate_integration_inherit_descendant_worker_spec.rb": 0.7939033760001166,8270 "spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb": 0.37215487999992547,8271 "spec/lib/gitlab/import/set_async_jid_spec.rb": 1.036506023000129,8272 "spec/workers/pipeline_notification_worker_spec.rb": 0.7596448179999697,8273 "spec/serializers/issuable_sidebar_extras_entity_spec.rb": 1.20039678299986,8274 "spec/workers/gitlab/github_import/stage/import_collaborators_worker_spec.rb": 0.5714097080001466,8275 "spec/support_specs/matchers/event_store_spec.rb": 0.31176301300001796,8276 "spec/models/pages/virtual_domain_spec.rb": 0.33278099099993597,8277 "spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb": 0.35790006000001995,8278 "spec/lib/api/base_spec.rb": 0.3155428929999289,8279 "spec/lib/gitlab/git/commit_stats_spec.rb": 0.861862371999905,8280 "spec/views/admin/application_settings/_ci_cd.html.haml_spec.rb": 0.501116330999821,8281 "spec/lib/gitlab/color_schemes_spec.rb": 0.29289903499989123,8282 "spec/workers/schedule_merge_request_cleanup_refs_worker_spec.rb": 0.5515867090000484,8283 "spec/lib/error_tracking/sentry_client_spec.rb": 0.3111562330000197,8284 "spec/rubocop/cop/performance/active_record_subtransactions_spec.rb": 0.30576274300005934,8285 "spec/workers/analytics/usage_trends/count_job_trigger_worker_spec.rb": 0.46802971400006754,8286 "spec/models/term_agreement_spec.rb": 0.4370346859998335,8287 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies_spec.rb": 0.24428156600015427,8288 "spec/services/groups/deploy_tokens/destroy_service_spec.rb": 0.46697464399994715,8289 "spec/services/ci/queue/pending_builds_strategy_spec.rb": 0.7350482090000696,8290 "spec/serializers/integrations/harbor_serializers/repository_entity_spec.rb": 0.5657354989998566,8291 "spec/workers/gitlab/bitbucket_server_import/stage/finish_import_worker_spec.rb": 0.4948587520000274,8292 "spec/rubocop/cop/filename_length_spec.rb": 0.2784197249998215,8293 "spec/presenters/releases/link_presenter_spec.rb": 0.5076320820001001,8294 "spec/lib/gitlab/middleware/rails_queue_duration_spec.rb": 0.23794749699982276,8295 "spec/services/users/repair_ldap_blocked_service_spec.rb": 0.5265851210001529,8296 "spec/lib/gitlab/import_export/after_export_strategy_builder_spec.rb": 0.24810835599987513,8297 "spec/graphql/types/duration_type_spec.rb": 0.23514115700004368,8298 "spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb": 0.20708355799979472,8299 "spec/lib/api/entities/design_management/design_spec.rb": 0.47492256300006375,8300 "spec/services/google_cloud/gcp_region_add_or_replace_service_spec.rb": 0.5540486390000297,8301 "spec/lib/api/entities/bulk_imports/entity_failure_spec.rb": 0.356923039999856,8302 "spec/rubocop/cop/database/establish_connection_spec.rb": 0.22920617800014043,8303 "spec/models/concerns/packages/downloadable_spec.rb": 0.6037175760000082,8304 "spec/workers/disallow_two_factor_for_subgroups_worker_spec.rb": 0.44027593600003456,8305 "spec/workers/export_csv_worker_spec.rb": 0.6738642220000202,8306 "spec/validators/cron_validator_spec.rb": 0.22656482799993682,8307 "spec/rubocop/cop/migration/add_concurrent_index_spec.rb": 0.2219916279998415,8308 "spec/finders/achievements/achievements_finder_spec.rb": 0.25926468600005137,8309 "spec/graphql/types/projects/jira_service_type_spec.rb": 0.21142834800002674,8310 "spec/views/shared/groups/_dropdown.html.haml_spec.rb": 0.2812946640001428,8311 "spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb": 0.1860525699999016,8312 "spec/graphql/types/snippets/blob_action_enum_spec.rb": 0.18551049999996394,8313 "spec/serializers/serverless/domain_entity_spec.rb": 0.2037981480000326,8314 "spec/graphql/types/notes/discussion_type_spec.rb": 0.17401805000008608,8315 "spec/graphql/types/deployment_tag_type_spec.rb": 0.17646341099998608,8316 "spec/lib/sidebars/concerns/container_with_html_options_spec.rb": 0.24391983600003186,8317 "spec/views/help/drawers.html.haml_spec.rb": 0.19962350900004822,8318 "spec/lib/gitlab/github_import/client_pool_spec.rb": 0.18360477999999603,8319 "spec/graphql/types/design_management/version_type_spec.rb": 0.1793710499998724,8320 "spec/graphql/types/ide_type_spec.rb": 0.20475852799995664,8321 "spec/serializers/access_token_entity_base_spec.rb": 0.229834148000009,8322 "spec/components/projects/ml/models_index_component_spec.rb": 0.24317960600001243,8323 "spec/graphql/types/work_items/widgets/award_emoji_type_spec.rb": 0.15445491100012987,8324 "spec/lib/api/entities/bulk_import_spec.rb": 0.21700045800002954,8325 "spec/lib/gitlab/quick_actions/dsl_spec.rb": 0.1461355320000166,8326 "spec/rubocop/cop/rspec/web_mock_enable_spec.rb": 0.15870936200008146,8327 "spec/graphql/resolvers/ci/runner_platforms_resolver_spec.rb": 0.15487311199990472,8328 "spec/lib/gitlab/database/obsolete_ignored_columns_spec.rb": 0.1592347810001229,8329 "spec/lib/gitlab/usage/metrics/instrumentations/edition_metric_spec.rb": 0.15310719099989,8330 "spec/lib/gitlab/api_authentication/sent_through_builder_spec.rb": 0.1429894929999591,8331 "spec/lib/gitlab/ci/parsers/coverage/cobertura_spec.rb": 0.1430609630001527,8332 "spec/lib/gitlab/memory/watchdog/handlers/puma_handler_spec.rb": 0.165689539999903,8333 "spec/rubocop/cop/include_sidekiq_worker_spec.rb": 0.1543906220001645,8334 "spec/initializers/fog_google_https_private_urls_spec.rb": 0.155774980999922268335}8336Knapsack global time execution for tests: 24m 14s8337Pending: (Failures listed here are expected and do not affect your suite's status)8338 1) Gitlab::Database.database_base_models does not contain "ci" when not running CI database8339 # Skipping because some of the extra databases [:ci] are setup8340 # ./spec/lib/gitlab/database_spec.rb:368341 2) Gitlab::Database.schemas_to_base_models contains gitlab_ci pointing to ActiveRecord::Base when not running CI database8342 # Skipping because some of the extra databases [:ci] are setup8343 # ./spec/lib/gitlab/database_spec.rb:678344 3) Gitlab::Database.has_database? three tier database config returns false for shared database8345 # Skipping because database ci exists8346 # ./spec/lib/gitlab/database_spec.rb:1378347 4) Gitlab::Database.database_mode three tier database config returns single-database if ci is not configured8348 # Skipping because some of the extra databases [:ci] are setup8349 # ./spec/lib/gitlab/database_spec.rb:1528350 5) Gitlab::Database.database_mode three tier database config returns single-database-ci-connection if ci is shared with main database8351 # Skipping because database ci exists8352 # ./spec/lib/gitlab/database_spec.rb:1588353Failures:8354 1) Ci::JobArtifacts::BulkDeleteByProjectService#execute #execute when maintainer has access to the project is successful8355 Failure/Error:8356 expect(result.payload).to eq(8357 {8358 destroyed_count: job_artifact_ids.count,8359 destroyed_ids: job_artifact_ids,8360 errors: []8361 }8362 )8363 expected: {:destroyed_count=>3, :destroyed_ids=>[20, 21, 22], :errors=>[]}8364 got: {:destroyed_count=>3, :destroyed_ids=>[22, 20, 21], :errors=>[]}8365 (compared using ==)8366 Diff:8367 @@ -1,4 +1,4 @@8368 :destroyed_count => 3,8369 -:destroyed_ids => [20, 21, 22],8370 +:destroyed_ids => [22, 20, 21],8371 :errors => [],8372 # ./spec/services/ci/job_artifacts/bulk_delete_by_project_service_spec.rb:72:in `block (4 levels) in <top (required)>'8373 # ./spec/spec_helper.rb:448:in `block (3 levels) in <top (required)>'8374 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'8375 # ./spec/spec_helper.rb:439:in `block (2 levels) in <top (required)>'8376 # ./spec/spec_helper.rb:435:in `block (3 levels) in <top (required)>'8377 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'8378 # ./spec/spec_helper.rb:435:in `block (2 levels) in <top (required)>'8379 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'8380 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'8381 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'8382 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8383 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8384 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8385Finished in 24 minutes 17 seconds (files took 1 minute 27.43 seconds to load)83864082 examples, 1 failure, 5 pending8387Failed examples:8388rspec ./spec/services/ci/job_artifacts/bulk_delete_by_project_service_spec.rb:68 # Ci::JobArtifacts::BulkDeleteByProjectService#execute #execute when maintainer has access to the project is successful8389Randomized with seed 236788390[TEST PROF INFO] Time spent in factories: 09:30.800 (38.15% of total time)8391Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected8392RSpec exited with 1.8393RSPEC_RETRIED_TESTS_REPORT_PATH: rspec/retried_tests-4841631186.txt8394Retrying the failing examples in a new RSpec process...8395$ gem install junit_merge --no-document --version 0.1.28396Successfully installed nokogiri-1.15.3-x86_64-linux8397Successfully installed junit_merge-0.1.283982 gems installed8399==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 2 seconds.8400Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-4841631186.json --format RspecJunitFormatter --out rspec/rspec-retry-4841631186.xml --only-failures --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.rb"8401/builds/gitlab-org/gitlab/ee/app/services/remote_development/service_response_factory.rb:41: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8402/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/create_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8403/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/reconcile_service.rb:38: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8404/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/update_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8405/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:32: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8406/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8407/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8408/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8409/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8410/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8411/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8412/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8413/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8414/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8415/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_flattener.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8416/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8417/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8418/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8419/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8420/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:54: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8421/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:102: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8422/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:126: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8423/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:159: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8424/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:202: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8425/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:235: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8426/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8427/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:52: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8428/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8429/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8430/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8431/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:23: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8432/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8433/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8434/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8435/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/main.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8436/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8437/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8438/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/agent_infos_observer.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8439/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8440/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8441/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_to_infos_converter.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8442/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_validator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8443/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/rails_infos_observer.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8444/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/workspaces_to_rails_infos_converter.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8445/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/orphaned_workspaces_observer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8446/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8447/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_finder.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8448/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!8449Run options: include {:last_run_status=>"failed"}8450Test environment set up in 0.386645459 seconds8451Ci::JobArtifacts::BulkDeleteByProjectService#execute8452 # order random8453 #execute8454 when maintainer has access to the project8455 is successful8456Finished in 3.89 seconds (files took 48.72 seconds to load)84571 example, 0 failures8458Randomized with seed 162178459[TEST PROF INFO] Time spent in factories: 00:01.499 (24.27% of total time)8460Loading rspec/rspec-4841631186.json...8461Merged rspec/rspec-retry-4841631186.json adding 5 results.8462Saved rspec/rspec-4841631186.json.8463A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...8464Flaky test was not part of this MR.8466Running after script...8467$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"8472Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8474Uploading artifacts...8475WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8476coverage/: found 4 matching artifact files and directories 8477crystalball/: found 2 matching artifact files and directories 8478deprecations/: found 5 matching artifact files and directories 8479knapsack/: found 4 matching artifact files and directories 8480rspec/: found 19 matching artifact files and directories 8481WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8482log/*.log: found 20 matching artifact files and directories 8483WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4841631186/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8484WARNING: Retrying... context=artifacts-uploader error=request redirected8485Uploading artifacts as "archive" to coordinator... 201 Created id=4841631186 responseStatus=201 Created token=64_xiyLT8486Uploading artifacts...8487rspec/rspec-*.xml: found 2 matching artifact files and directories 8488WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4841631186/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8489WARNING: Retrying... context=artifacts-uploader error=request redirected8490Uploading artifacts as "junit" to coordinator... 201 Created id=4841631186 responseStatus=201 Created token=64_xiyLT8492Job succeeded