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

🤖 GitLab Bot 🤖
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-1.private.runners-manager.gitlab.com/gitlab.com/gitlab-org 4bq1s9yM, system ID: s_9d15f3e4e7ae3 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.16-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:4fa67bf5f0f681a62c15a144e1ecce7bf7b20e00dcbb99441c4182f5e2607534 for redis:6.2-alpine with digest redis@sha256:9b1723d69398d170688d7f382f6ace36d0fc209481b143f3acf58a2f6f0743d3 ...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.16-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256:17ff485d60cad0e7a2cef114c588c387f0a02ea52778bdef56b31436edf609aa for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-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.16-postgresql-14@sha256:87a54d6d4c6d7bdd77d0700637df7c79a35b39235baf4c412cd1273ab94788c3 ...25Running on runner-4bq1s9ym-project-278964-concurrent-0 via runner-4bq1s9ym-private-1690427355-e1bde8a9...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 200368, done. 31remote: Counting objects: 100% (200368/200368), done. 32remote: Compressing objects: 100% (127761/127761), done. 33remote: Total 200368 (delta 101729), reused 135279 (delta 65007), pack-reused 0 34Receiving objects: 100% (200368/200368), 150.13 MiB | 31.28 MiB/s, done.35Resolving deltas: 100% (101729/101729), done.37 * [new ref] refs/pipelines/946806672 -> refs/pipelines/94680667238 * [new branch] master -> origin/master39Checking out 9bb6bea6 as detached HEAD (ref is master)...40Skipping Git submodules setup41$ git remote set-url origin "${CI_REPOSITORY_URL}"43Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...44cache.zip is up to date 45Successfully extracted cache47Downloading artifacts for compile-test-assets (4749214174)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214174 responseStatus=200 OK token=64_Y-PdN49Downloading artifacts for retrieve-tests-metadata (4749214304)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214304 responseStatus=200 OK token=64_Y-PdN51Downloading artifacts for setup-test-env (4749214206)...52Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214206 responseStatus=200 OK token=64_Y-PdN54Using docker image sha256:17ff485d60cad0e7a2cef114c588c387f0a02ea52778bdef56b31436edf609aa for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.16-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.16-postgresql-14@sha256:87a54d6d4c6d7bdd77d0700637df7c79a35b39235baf4c412cd1273ab94788c3 ...55$ echo $FOSS_ONLY56$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb57$ export GOPATH=$CI_PROJECT_DIR/.go58$ mkdir -p $GOPATH59$ source scripts/utils.sh60$ source scripts/prepare_build.sh92Using decomposed database config (config/database.yml.decomposed-postgresql)93Geo DB won't be set up.94Embedding DB won't be set up.106$ source ./scripts/rspec_helpers.sh107$ run_timed_command "gem install knapsack --no-document"108$ gem install knapsack --no-document109Successfully installed knapsack-4.0.01101 gem installed111==> 'gem install knapsack --no-document' succeeded in 0 seconds.112$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"117$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house"118SKIP_FLAKY_TESTS_AUTOMATICALLY: 119RETRY_FAILED_TESTS_IN_NEW_PROCESS: true120KNAPSACK_GENERATE_REPORT: true121FLAKY_RSPEC_GENERATE_REPORT: true122KNAPSACK_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.rb123KNAPSACK_LOG_LEVEL: debug124KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_14_28_report.json125FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json126FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_14_28_report.json127NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_14_28_report.json128SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg14_14_28.txt129CRYSTALBALL: true130RSPEC_TESTS_MAPPING_ENABLED: 131RSPEC_TESTS_FILTER_FILE: 132Shell set options (set -o) enabled:133braceexpand on134hashall on135interactive-comments on136pipefail on137Running 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-4749214633.json --format RspecJunitFormatter --out rspec/rspec-4749214633.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house -- spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb spec/lib/gitlab/auth_spec.rb spec/services/merge_requests/squash_service_spec.rb spec/models/integrations/jira_spec.rb spec/services/suggestions/apply_service_spec.rb spec/lib/gitlab/diff/position_tracer/line_strategy_spec.rb spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb spec/lib/gitlab/background_migration/job_coordinator_spec.rb spec/services/ci/unlock_artifacts_service_spec.rb spec/lib/gitlab/background_migration/backfill_project_namespace_on_issues_spec.rb spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb spec/services/merge_requests/close_service_spec.rb spec/models/hooks/web_hook_spec.rb spec/finders/groups_finder_spec.rb spec/lib/gitlab/closing_issue_extractor_spec.rb spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb spec/services/bulk_imports/create_service_spec.rb spec/lib/gitlab/usage/metric_definition_spec.rb spec/helpers/blob_helper_spec.rb spec/models/list_spec.rb spec/workers/process_commit_worker_spec.rb spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb spec/models/integrations/prometheus_spec.rb spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb spec/scripts/trigger-build_spec.rb spec/services/post_receive_service_spec.rb spec/finders/ci/pipelines_for_merge_request_finder_spec.rb spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb spec/serializers/pipeline_details_entity_spec.rb spec/graphql/types/ci/job_token_scope_type_spec.rb spec/experiments/application_experiment_spec.rb spec/services/protected_branches/cache_service_spec.rb spec/views/layouts/application.html.haml_spec.rb spec/uploaders/packages/package_file_uploader_spec.rb spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb spec/services/google_cloud/generate_pipeline_service_spec.rb spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb spec/serializers/stage_entity_spec.rb spec/models/ci/variable_spec.rb spec/services/projects/auto_devops/disable_service_spec.rb spec/graphql/types/user_type_spec.rb spec/services/merge_requests/export_csv_service_spec.rb spec/lib/gitlab/database/load_balancing/sidekiq_server_middleware_spec.rb spec/lib/gitlab/middleware/multipart_spec.rb spec/graphql/mutations/issues/set_confidential_spec.rb spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb spec/services/system_notes/commit_service_spec.rb spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb spec/services/labels/transfer_service_spec.rb spec/models/hooks/web_hook_log_spec.rb spec/services/packages/maven/metadata/sync_service_spec.rb spec/serializers/environment_entity_spec.rb spec/helpers/version_check_helper_spec.rb spec/services/jira_import/start_import_service_spec.rb spec/services/users/authorized_build_service_spec.rb spec/services/security/ci_configuration/container_scanning_create_service_spec.rb spec/services/clusters/agents/authorizations/user_access/refresh_service_spec.rb spec/lib/gitlab/sidekiq_status_spec.rb spec/models/concerns/atomic_internal_id_spec.rb spec/services/ci/create_pipeline_service/rate_limit_spec.rb spec/lib/gitlab/github_import/importer/issue_importer_spec.rb spec/services/notes/post_process_service_spec.rb spec/finders/packages/maven/package_finder_spec.rb spec/lib/sidebars/groups/menus/packages_registries_menu_spec.rb spec/finders/groups/accepting_group_transfers_finder_spec.rb spec/workers/container_registry/migration/observer_worker_spec.rb spec/models/milestone_note_spec.rb spec/lib/gitlab/ci/reports/sbom/component_spec.rb spec/lib/gitlab/patch/redis_cache_store_spec.rb spec/presenters/blobs/unfold_presenter_spec.rb spec/tooling/lib/tooling/mappings/partial_to_views_mappings_spec.rb spec/tasks/gitlab/db/migration_fix_15_11_rake_spec.rb spec/services/ci/create_pipeline_service/include_spec.rb spec/lib/gitlab/checks/lfs_integrity_spec.rb spec/presenters/projects/import_export/project_export_presenter_spec.rb spec/models/merge_request_reviewer_spec.rb spec/models/users/namespace_commit_email_spec.rb spec/workers/ci/external_pull_requests/create_pipeline_worker_spec.rb spec/lib/banzai/reference_parser/external_issue_parser_spec.rb spec/workers/bulk_import_worker_spec.rb spec/lib/gitlab/spamcheck/result_spec.rb spec/rubocop/cop/inject_enterprise_edition_module_spec.rb spec/services/users/update_canonical_email_service_spec.rb spec/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb spec/initializers/settings_spec.rb spec/workers/concerns/worker_context_spec.rb spec/views/projects/jobs/_build.html.haml_spec.rb spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb spec/services/ci/compare_test_reports_service_spec.rb spec/models/performance_monitoring/prometheus_panel_spec.rb spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb spec/serializers/deployment_serializer_spec.rb spec/components/pajamas/empty_state_component_spec.rb spec/lib/gitlab/ci/config/yaml/interpolator_spec.rb spec/lib/gitlab/database/async_indexes/index_creator_spec.rb spec/lib/gitlab/ci/status/pipeline/common_spec.rb spec/lib/gitlab/null_request_store_spec.rb spec/models/onboarding/completion_spec.rb spec/models/projects/triggered_hooks_spec.rb spec/models/group_deploy_key_spec.rb spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb spec/graphql/resolvers/package_pipelines_resolver_spec.rb spec/lib/gitlab/metrics/subscribers/rack_attack_spec.rb spec/models/packages/npm_spec.rb spec/services/users/unban_service_spec.rb spec/services/ci/create_pipeline_service/creation_errors_and_warnings_spec.rb spec/lib/gitlab/git/attributes_parser_spec.rb spec/serializers/ci/dag_pipeline_entity_spec.rb spec/lib/gitlab/github_import/importer/events/changed_reviewer_spec.rb spec/models/packages/helm/file_metadatum_spec.rb spec/workers/projects/import_export/relation_export_worker_spec.rb spec/lib/gitlab/ci/status/build/retried_spec.rb spec/finders/uploader_finder_spec.rb spec/services/work_items/callbacks/award_emoji_spec.rb spec/services/clusters/agents/delete_expired_events_service_spec.rb spec/lib/gitlab/ci/variables/builder/group_spec.rb spec/lib/bulk_imports/common/graphql/get_members_query_spec.rb spec/services/environments/update_service_spec.rb spec/services/bulk_imports/file_decompression_service_spec.rb spec/lib/gitlab/gl_repository_spec.rb spec/models/spam_log_spec.rb spec/helpers/projects/alert_management_helper_spec.rb spec/finders/environments/environments_finder_spec.rb spec/lib/gitlab/alert_management/payload_spec.rb spec/lib/bulk_imports/projects/graphql/get_snippet_repository_query_spec.rb spec/lib/gitlab/ci/project_config_spec.rb spec/lib/banzai/reference_parser/project_parser_spec.rb spec/views/notify/user_deactivated_email.text.erb_spec.rb spec/graphql/types/packages/cleanup/policy_type_spec.rb spec/lib/gitlab/counters/legacy_counter_spec.rb spec/lib/gitlab_settings/settings_spec.rb spec/lib/banzai/pipeline_spec.rb spec/initializers/global_id_spec.rb spec/helpers/operations_helper_spec.rb spec/services/import_export_clean_up_service_spec.rb spec/lib/gitlab/memory/reports/heap_dump_spec.rb spec/lib/gitlab/prometheus/metric_group_spec.rb spec/graphql/resolvers/merge_request_pipelines_resolver_spec.rb spec/tasks/gitlab/generate_sample_prometheus_data_rake_spec.rb spec/routing/environments_spec.rb spec/graphql/resolvers/releases_resolver_spec.rb spec/graphql/mutations/issues/move_spec.rb spec/components/pajamas/concerns/checkbox_radio_label_with_help_text_spec.rb spec/rubocop/cop/search/avoid_checking_finished_on_deprecated_migrations_spec.rb spec/lib/prometheus/pid_provider_spec.rb spec/models/concerns/strip_attribute_spec.rb spec/workers/packages/npm/create_metadata_cache_worker_spec.rb spec/services/ci/disable_user_pipeline_schedules_service_spec.rb spec/helpers/git_helper_spec.rb spec/lib/gitlab/ci/status/build/canceled_spec.rb spec/lib/gitlab/ci/decompressed_gzip_size_validator_spec.rb spec/finders/groups/accepting_project_creations_finder_spec.rb spec/views/projects/commits/show.html.haml_spec.rb spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb spec/lib/gitlab/ci/reports/security/scanned_resource_spec.rb spec/services/lfs/push_service_spec.rb spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb spec/graphql/mutations/environments/create_spec.rb spec/lib/gitlab/email/attachment_uploader_spec.rb spec/lib/gitlab/database/migrations/batched_migration_last_id_spec.rb spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb spec/views/layouts/group.html.haml_spec.rb spec/presenters/milestone_presenter_spec.rb spec/services/ci/runners/process_runner_version_update_service_spec.rb spec/services/users/update_highest_member_role_service_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_users_with_ml_candidates_metric_spec.rb spec/lib/gitlab/ci/matching/build_matcher_spec.rb spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb spec/models/design_user_mention_spec.rb spec/views/groups/milestones/index.html.haml_spec.rb spec/workers/create_pipeline_worker_spec.rb spec/graphql/mutations/customer_relations/contacts/update_spec.rb spec/lib/gitlab/git/blame_mode_spec.rb spec/lib/gitlab/memory/watchdog/handlers/sidekiq_handler_spec.rb spec/workers/ci/build_finished_worker_spec.rb spec/finders/terraform/states_finder_spec.rb spec/helpers/programming_languages_helper_spec.rb spec/services/packages/debian/parse_debian822_service_spec.rb spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb spec/views/notify/changed_milestone_email.html.haml_spec.rb spec/rubocop/cop/migration/background_migration_missing_active_concern_spec.rb spec/lib/gitlab/auth/crowd/authentication_spec.rb spec/lib/gitlab/ci/status/failed_spec.rb spec/serializers/cluster_entity_spec.rb spec/presenters/blobs/notebook_presenter_spec.rb spec/lib/gitlab/exceptions_app_spec.rb spec/models/group_custom_attribute_spec.rb spec/lib/bulk_imports/projects/pipelines/commit_notes_pipeline_spec.rb spec/models/ml/candidate_metadata_spec.rb spec/lib/peek/views/rugged_spec.rb spec/services/packages/debian/find_or_create_incoming_service_spec.rb spec/lib/gitlab/anonymous_session_spec.rb spec/services/metrics/users_starred_dashboards/delete_service_spec.rb spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb spec/lib/gitlab/ci/variables/downstream/expandable_variable_generator_spec.rb spec/models/resource_events/abuse_report_event_spec.rb spec/rubocop/cop/graphql/resolver_type_spec.rb spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb spec/lib/gitlab/view/presenter/delegated_spec.rb spec/services/product_analytics/build_graph_service_spec.rb spec/rubocop/cop/migration/add_concurrent_foreign_key_spec.rb spec/serializers/personal_access_token_serializer_spec.rb spec/workers/export_csv_worker_spec.rb spec/graphql/types/commit_signatures/ssh_signature_type_spec.rb spec/graphql/types/data_transfer/project_data_transfer_type_spec.rb spec/helpers/external_link_helper_spec.rb spec/services/object_storage/delete_stale_direct_uploads_service_spec.rb spec/serializers/analytics_build_serializer_spec.rb spec/helpers/one_trust_helper_spec.rb spec/lib/gitlab/sidekiq_middleware/query_analyzer_spec.rb spec/rubocop/cop/gitlab/json_spec.rb spec/graphql/types/customer_relations/contact_sort_enum_spec.rb spec/presenters/packages/npm/package_presenter_spec.rb spec/lib/gitlab/search/sort_options_spec.rb spec/helpers/webpack_helper_spec.rb spec/graphql/types/description_version_type_spec.rb spec/graphql/types/issuable_searchable_field_enum_spec.rb spec/lib/gitlab/utils/merge_hash_spec.rb spec/scripts/lib/glfm/verify_all_generated_files_are_up_to_date_spec.rb spec/models/preloaders/runner_manager_policy_preloader_spec.rb spec/graphql/types/ci/config/group_type_spec.rb spec/lib/service_ping/permit_data_categories_spec.rb spec/graphql/types/availability_enum_spec.rb spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb spec/graphql/types/user_preferences_type_spec.rb spec/lib/gitlab/metrics/delta_spec.rb spec/lib/gitlab/ci/input/arguments/unknown_spec.rb spec/serializers/integrations/harbor_serializers/artifact_serializer_spec.rb spec/views/groups/observability/observability.html.haml_spec.rb spec/lib/gitlab/nav/top_nav_menu_item_spec.rb spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb spec/serializers/ci/trigger_serializer_spec.rb spec/workers/todos_destroyer/private_features_worker_spec.rb spec/lib/gitlab/metrics/transaction_spec.rb spec/workers/ci_platform_metrics_update_cron_worker_spec.rb spec/graphql/types/packages/package_status_enum_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/gitaly_apdex_metric_spec.rb spec/serializers/fork_namespace_serializer_spec.rb spec/workers/gitlab/github_import/import_collaborator_worker_spec.rbKnapsack report generator started!138/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!139/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!140/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!141/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!142/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:35: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!143/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!144/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!145/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!146/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!147/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!148/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!149/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!150/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!151/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!152/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!153/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!154/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!155/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!156/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/main.rb:48: 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/post_flatten_devfile_validator.rb:43: 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/post_flatten_devfile_validator.rb:54: 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:102: 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:126: 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:159: 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:202: 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:235: 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/pre_flatten_devfile_validator.rb:24: 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/pre_flatten_devfile_validator.rb:52: 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/project_cloner_component_injector.rb:12: 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/project_cloner_component_injector.rb:17: 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:18: 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:23: 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/volume_component_injector.rb:12: 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/volume_component_injector.rb:13: 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:14: 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/update/authorizer.rb:12: 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/update/main.rb:28: 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/update/updater.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!176Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true}177Test environment set up in 0.511777333 seconds178Auto-DevOps.gitlab-ci.yml179 default_branch: "master"180 the created pipeline181 creates a build and a test job182 when the project is set for deployment to AWS183 creates an ECS deployment job for production only184 behaves like no Kubernetes deployment job185 does not create any Kubernetes deployment-related builds186 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present187 when AUTO_DEVOPS_PLATFORM_TARGET is nil188 does not trigger the job189 when AUTO_DEVOPS_PLATFORM_TARGET is empty190 does not trigger the job191 with FARGATE as a launch type192 creates a FARGATE deployment job for production only193 and we are not on the default branch194 creates an ECS deployment job for review only195 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present196 when AUTO_DEVOPS_PLATFORM_TARGET is nil197 does not trigger the job198 when AUTO_DEVOPS_PLATFORM_TARGET is empty199 does not trigger the job200 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present201 when AUTO_DEVOPS_PLATFORM_TARGET is nil202 does not trigger the job203 when AUTO_DEVOPS_PLATFORM_TARGET is empty204 does not trigger the job205 with FARGATE as a launch type206 creates an FARGATE deployment job for review only207 and when the project has an active cluster208 on default branch209 triggers the deployment to Kubernetes, not to ECS210 when the platform target is EC2211 contains the build_artifact job, not the build job212 when the project has no active cluster213 only creates a build and a test stage214 behaves like no Kubernetes deployment job215 does not create any Kubernetes deployment-related builds216 when a cluster is attached217 behaves like pipeline with Kubernetes jobs218 deployment-related builds219 on default branch220 does not include rollout jobs besides production221 when STAGING_ENABLED=1222 includes a staging job and a production_manual job223 when CANARY_ENABLED=1224 includes a canary job and a production_manual job225 when MIGRATE_HELM_2TO3=true226 includes a helm-2to3:migrate and a helm-2to3:cleanup job227 outside of default branch228 does not include rollout jobs besides review229 when MIGRATE_HELM_2TO3=true230 includes a helm-2to3:migrate and a helm-2to3:cleanup job231 when certificate_based_clusters FF is disabled232 does not include production job233 when project has an Agent234 behaves like pipeline with Kubernetes jobs235 deployment-related builds236 on default branch237 does not include rollout jobs besides production238 when STAGING_ENABLED=1239 includes a staging job and a production_manual job240 when CANARY_ENABLED=1241 includes a canary job and a production_manual job242 when MIGRATE_HELM_2TO3=true243 includes a helm-2to3:migrate and a helm-2to3:cleanup job244 outside of default branch245 does not include rollout jobs besides review246 when MIGRATE_HELM_2TO3=true247 includes a helm-2to3:migrate and a helm-2to3:cleanup job248 when certificate_based_clusters FF is disabled249 includes production job250 buildpack detection251 No match252 creates a pipeline with the expected jobs253 Buildpack254 creates a pipeline with the expected jobs255 Explicit set256 creates a pipeline with the expected jobs257 Explicit unset258 creates a pipeline with the expected jobs259 DOCKERFILE_PATH260 creates a pipeline with the expected jobs261 Dockerfile262 creates a pipeline with the expected jobs263 Clojure264 creates a pipeline with the expected jobs265 Go modules266 creates a pipeline with the expected jobs267 Go gb268 creates a pipeline with the expected jobs269 Gradle270 creates a pipeline with the expected jobs271 Java272 creates a pipeline with the expected jobs273 Multi-buildpack274 creates a pipeline with the expected jobs275 NodeJS276 creates a pipeline with the expected jobs277 PHP278 creates a pipeline with the expected jobs279 Play280 creates a pipeline with the expected jobs281 Python282 creates a pipeline with the expected jobs283 Ruby284 creates a pipeline with the expected jobs285 Scala286 creates a pipeline with the expected jobs287 Static288 creates a pipeline with the expected jobs289 default_branch: "main"290 the created pipeline291 creates a build and a test job292 when the project is set for deployment to AWS293 creates an ECS deployment job for production only294 behaves like no Kubernetes deployment job295 does not create any Kubernetes deployment-related builds296 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present297 when AUTO_DEVOPS_PLATFORM_TARGET is nil298 does not trigger the job299 when AUTO_DEVOPS_PLATFORM_TARGET is empty300 does not trigger the job301 with FARGATE as a launch type302 creates a FARGATE deployment job for production only303 and we are not on the default branch304 creates an ECS deployment job for review only305 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present306 when AUTO_DEVOPS_PLATFORM_TARGET is nil307 does not trigger the job308 when AUTO_DEVOPS_PLATFORM_TARGET is empty309 does not trigger the job310 behaves like no ECS job when AUTO_DEVOPS_PLATFORM_TARGET is not present311 when AUTO_DEVOPS_PLATFORM_TARGET is nil312 does not trigger the job313 when AUTO_DEVOPS_PLATFORM_TARGET is empty314 does not trigger the job315 with FARGATE as a launch type316 creates an FARGATE deployment job for review only317 and when the project has an active cluster318 on default branch319 triggers the deployment to Kubernetes, not to ECS320 when the platform target is EC2321 contains the build_artifact job, not the build job322 when the project has no active cluster323 only creates a build and a test stage324 behaves like no Kubernetes deployment job325 does not create any Kubernetes deployment-related builds326 when a cluster is attached327 behaves like pipeline with Kubernetes jobs328 deployment-related builds329 on default branch330 does not include rollout jobs besides production331 when STAGING_ENABLED=1332 includes a staging job and a production_manual job333 when CANARY_ENABLED=1334 includes a canary job and a production_manual job335 when MIGRATE_HELM_2TO3=true336 includes a helm-2to3:migrate and a helm-2to3:cleanup job337 outside of default branch338 does not include rollout jobs besides review339 when MIGRATE_HELM_2TO3=true340 includes a helm-2to3:migrate and a helm-2to3:cleanup job341 when certificate_based_clusters FF is disabled342 does not include production job343 when project has an Agent344 behaves like pipeline with Kubernetes jobs345 deployment-related builds346 on default branch347 does not include rollout jobs besides production348 when STAGING_ENABLED=1349 includes a staging job and a production_manual job350 when CANARY_ENABLED=1351 includes a canary job and a production_manual job352 when MIGRATE_HELM_2TO3=true353 includes a helm-2to3:migrate and a helm-2to3:cleanup job354 outside of default branch355 does not include rollout jobs besides review356 when MIGRATE_HELM_2TO3=true357 includes a helm-2to3:migrate and a helm-2to3:cleanup job358 when certificate_based_clusters FF is disabled359 includes production job360 buildpack detection361 No match362 creates a pipeline with the expected jobs363 Buildpack364 creates a pipeline with the expected jobs365 Explicit set366 creates a pipeline with the expected jobs367 Explicit unset368 creates a pipeline with the expected jobs369 DOCKERFILE_PATH370 creates a pipeline with the expected jobs371 Dockerfile372 creates a pipeline with the expected jobs373 Clojure374 creates a pipeline with the expected jobs375 Go modules376 creates a pipeline with the expected jobs377 Go gb378 creates a pipeline with the expected jobs379 Gradle380 creates a pipeline with the expected jobs381 Java382 creates a pipeline with the expected jobs383 Multi-buildpack384 creates a pipeline with the expected jobs385 NodeJS386 creates a pipeline with the expected jobs387 PHP388 creates a pipeline with the expected jobs389 Play390 creates a pipeline with the expected jobs391 Python392 creates a pipeline with the expected jobs393 Ruby394 creates a pipeline with the expected jobs395 Scala396 creates a pipeline with the expected jobs397 Static398 creates a pipeline with the expected jobs399Gitlab::Auth400 constants401 API_SCOPES contains all scopes for API access402 ADMIN_SCOPES contains all scopes for ADMIN access403 REPOSITORY_SCOPES contains all scopes for REPOSITORY access404 OBSERVABILITY_SCOPES contains all scopes for Observability access405 OPENID_SCOPES contains all scopes for OpenID Connect406 DEFAULT_SCOPES contains all default scopes407 available_scopes408 contains all non-default scopes409 contains for non-admin user all non-default scopes without ADMIN access and without observability scopes410 contains for admin user all non-default scopes with ADMIN access and without observability scopes411 contains for project all resource bot scopes without observability scopes412 contains for group all resource bot scopes413 contains for unsupported type no scopes414 optional_scopes contains all non-default scopes415 with observability_group_tab feature flag416 when disabled417 contains for group all resource bot scopes without observability scopes418 when enabled for specific group419 contains for other group all resource bot scopes including observability scopes420 contains for admin user all non-default scopes with ADMIN access and without observability scopes421 contains for project all resource bot scopes without observability scopes422 contains for other group all resource bot scopes without observability scopes423 registry_scopes424 when registry is disabled425 is empty426 when registry is enabled427 contains all registry related scopes428 find_for_git_client429 recognizes other ci services430 recognizes master passwords431 allows user authenticating from the same ip432 blocks user authenticating from two distinct ips433 returns double nil for invalid credentials434 throws an error suggesting user create a PAT when internal auth is disabled435 rate limiting436 when IP is already banned437 raises an IpBlocked exception438 for CI registry user439 skips rate limiting for successful auth440 skips rate limiting for failed auth441 for other users442 resets rate limit for successful auth443 rate limits a user by unique IPs444 registers failure for failed auth445 build token446 for running build447 recognises user-less build448 recognises user token449 recognises project level bot access token450 recognises group level bot access token451 recognises project level security_policy_bot access token452 recognises group level security_policy_bot access token453 fails with blocked user token454 username is not gitlab-ci-token455 fails to authenticate456 for created build457 denies authentication458 for waiting_for_resource build459 denies authentication460 for preparing build461 denies authentication462 for pending build463 denies authentication464 for success build465 denies authentication466 for failed build467 denies authentication468 for canceled build469 denies authentication470 for skipped build471 denies authentication472 for manual build473 denies authentication474 for scheduled build475 denies authentication476 while using LFS authenticate477 recognizes user lfs tokens478 recognizes deploy key lfs tokens479 does not try password auth before oauth480 grants deploy key write permissions481 does not grant deploy key write permissions482 while using OAuth tokens as passwords483 does not try password auth before oauth484 with specified scopes485 scopes: "api", abilities: [:read_project, :download_code, :read_container_image, :push_code, :create_container_image, :admin_container_image]486 authenticates with correct abilities487 scopes: "read_api", abilities: [:read_project, :download_code, :read_container_image]488 authenticates with correct abilities489 scopes: "read_repository", abilities: [:download_code]490 authenticates with correct abilities491 scopes: "write_repository", abilities: [:download_code, :push_code]492 authenticates with correct abilities493 scopes: "create_runner", abilities: [:create_instance_runner, :create_runner]494 authenticates with correct abilities495 scopes: "read_user", abilities: []496 authenticates with correct abilities497 scopes: "sudo", abilities: []498 authenticates with correct abilities499 scopes: "openid", abilities: []500 authenticates with correct abilities501 scopes: "profile", abilities: []502 authenticates with correct abilities503 scopes: "email", abilities: []504 authenticates with correct abilities505 scopes: "read_observability", abilities: []506 authenticates with correct abilities507 scopes: "write_observability", abilities: []508 authenticates with correct abilities509 blocked user510 behaves like an oauth failure511 fails512 orphaned token513 behaves like an oauth failure514 fails515 while using personal access tokens as passwords516 succeeds for personal access tokens with the `api` scope517 succeeds for personal access tokens with the `read_repository` scope518 succeeds for personal access tokens with the `write_repository` scope519 succeeds for personal access tokens with the `create_runner` scope520 succeeds if it is an impersonation token521 fails if it is an impersonation token but impersonation is blocked522 limits abilities based on scope523 fails if password is nil524 updates last_used_at column if token is valid525 when registry is enabled526 succeeds for personal access tokens with the `read_registry` scope527 when user is blocked528 fails if user is blocked529 when using a resource access token530 when using a personal namespace project access token531 when the token belongs to the project532 behaves like with a valid access token533 successfully authenticates the project bot534 successfully authenticates the project bot with a nil project535 behaves like with an invalid access token536 fails for a non-member537 when project bot user is blocked538 fails for a blocked project bot539 when in a group namespace540 when using a project access token541 when token user belongs to the project542 behaves like with a valid access token543 successfully authenticates the project bot544 successfully authenticates the project bot with a nil project545 behaves like with an invalid access token546 fails for a non-member547 when project bot user is blocked548 fails for a blocked project bot549 when using a group access token550 when the token belongs to the group551 behaves like with a valid access token552 successfully authenticates the project bot553 successfully authenticates the project bot with a nil project554 behaves like with an invalid access token555 fails for a non-member556 when project bot user is blocked557 fails for a blocked project bot558 when the token belongs to a group via project share559 behaves like with a valid access token560 successfully authenticates the project bot561 successfully authenticates the project bot with a nil project562 while using regular user and password563 fails for a blocked user564 goes through lfs authentication565 goes through oauth authentication when the username is oauth2566 when 2fa is enabled globally567 fails if grace period expired568 goes through if grace period is not expired yet569 when 2fa is enabled personally570 fails571 while using deploy tokens572 when deploy token and user have the same username573 succeeds for the token574 succeeds for the user575 when deploy tokens have the same username576 and belong to the same project577 succeeds for the right token578 fails for the wrong token579 and belong to different projects580 succeeds for the right token581 fails for the wrong token582 when the deploy token has read_repository as scope583 succeeds when login and token are valid584 succeeds when custom login and token are valid585 does not attempt to rate limit unique IPs for a deploy token586 fails when login is not valid587 fails when token is not valid588 fails if token is nil589 fails if token is not related to project590 fails if token has been revoked591 when the deploy token is of group type592 succeeds when login and a group deploy token are valid593 fails if token is not related to group594 when the deploy token has read_registry as a scope595 when registry enabled596 succeeds when login and a project token are valid597 behaves like registry token scope598 fails when login is not valid599 fails when token is not valid600 fails if token is nil601 fails if token is not related to project602 fails if token has been revoked603 behaves like deploy token with disabled feature604 when registry disabled605 fails when login and token are valid606 when repository is disabled607 fails when login and token are valid608 when the deploy token has write_registry as a scope609 when registry enabled610 succeeds when login and a project token are valid611 behaves like registry token scope612 fails when login is not valid613 fails when token is not valid614 fails if token is nil615 fails if token is not related to project616 fails if token has been revoked617 behaves like deploy token with disabled feature618 when registry disabled619 fails when login and token are valid620 when repository is disabled621 fails when login and token are valid622 #build_access_token_check623 for running build624 executes query using primary database625 find_with_user_password626 finds user by valid login/password627 finds user by valid email/password with case-insensitive email628 finds user by valid username/password with case-insensitive username629 does not find user with invalid password630 does not find user with invalid login631 allows user authenticating from the same ip632 blocks user authenticating from two distinct ips633 finds the user in deactivated state634 does not find user in blocked state635 does not find user in locked state636 does not find user in ldap_blocked state637 does not find user in blocked_pending_approval state638 with increment_failed_attempts639 increments failed_attempts when true and password is incorrect640 resets failed_attempts when true and password is correct641 does not increment failed_attempts by default642 when the database is read-only643 does not increment failed_attempts when true and password is incorrect644 does not reset failed_attempts when true and password is correct645 with ldap enabled646 tries to autheticate with db before ldap647 does not find user by using ldap as fallback to for authentication648 find new user by using ldap as fallback to for authentication649 with password authentication disabled for Git650 does not find user by valid login/password651 with ldap enabled652 does not find non-ldap user by valid login/password653 .resource_bot_scopes654 is expected to include :api, :read_api, and :create_runner655 is expected to include :read_repository and :write_repository656 is expected to include nil657 is expected to include :read_observability and :write_observability658MergeRequests::SquashService659 #execute660 when there is only one commit in the merge request661 returns the squashed commit SHA662 cleans up the temporary directory663 does not keep the branch push event664 when there is a single commit in the merge request665 will still perform the squash666 when squash message matches commit message667 returns that commit SHA668 does not perform any git actions669 when squash message matches commit message but without trailing new line670 returns that commit SHA671 does not perform any git actions672 the squashed commit673 copies the author info from the merge request674 sets the current user as the committer675 has the same diff as the merge request, but a different SHA676 has a default squash commit message if no message was provided677 if a message was provided678 has the same message as the message provided679 when squashing only new files680 returns the squashed commit SHA681 cleans up the temporary directory682 does not keep the branch push event683 when there is a single commit in the merge request684 will still perform the squash685 when squash message matches commit message686 returns that commit SHA687 does not perform any git actions688 when squash message matches commit message but without trailing new line689 returns that commit SHA690 does not perform any git actions691 the squashed commit692 copies the author info from the merge request693 sets the current user as the committer694 has the same diff as the merge request, but a different SHA695 has a default squash commit message if no message was provided696 if a message was provided697 has the same message as the message provided698 when squashing is disabled by default on the project699 returns the squashed commit SHA700 cleans up the temporary directory701 does not keep the branch push event702 when there is a single commit in the merge request703 will still perform the squash704 when squash message matches commit message705 returns that commit SHA706 does not perform any git actions707 when squash message matches commit message but without trailing new line708 returns that commit SHA709 does not perform any git actions710 the squashed commit711 copies the author info from the merge request712 sets the current user as the committer713 has the same diff as the merge request, but a different SHA714 has a default squash commit message if no message was provided715 if a message was provided716 has the same message as the message provided717 when squashing is forbidden on the project718 raises a squash error719 when squashing is enabled by default on the project720 returns the squashed commit SHA721 cleans up the temporary directory722 does not keep the branch push event723 when there is a single commit in the merge request724 will still perform the squash725 when squash message matches commit message726 returns that commit SHA727 does not perform any git actions728 when squash message matches commit message but without trailing new line729 returns that commit SHA730 does not perform any git actions731 the squashed commit732 copies the author info from the merge request733 sets the current user as the committer734 has the same diff as the merge request, but a different SHA735 has a default squash commit message if no message was provided736 if a message was provided737 has the same message as the message provided738 when squashing with files too large to display739 returns the squashed commit SHA740 cleans up the temporary directory741 does not keep the branch push event742 when there is a single commit in the merge request743 will still perform the squash744 when squash message matches commit message745 returns that commit SHA746 does not perform any git actions747 when squash message matches commit message but without trailing new line748 returns that commit SHA749 does not perform any git actions750 the squashed commit751 copies the author info from the merge request752 sets the current user as the committer753 has the same diff as the merge request, but a different SHA754 has a default squash commit message if no message was provided755 if a message was provided756 has the same message as the message provided757 git errors758 with an error in Gitaly UserSquash RPC759 logs the error760 returns an error761 when any other exception is thrown762 logs the error763 returns an error764 cleans up the temporary directory765Integrations::Jira766 behaves like Integrations::ResetSecretFields767 #exposing_secrets_fields768 returns an array of strings769 #reset_secret_fields?770 returns false if no exposing field has changed771 returns true if any exposing field has changed772 validation callback773 when an exposing field has changed774 clears all secret fields775 when a secret field has been updated776 does not clear this secret field777 when a secret field has been updated with the same value778 does not clear this secret field779 when no exposing field has changed780 does not clear any secret fields781 validations782 when integration is active783 is expected to be valid784 is expected to validate that :url cannot be empty/falsy785 is expected to validate that :username cannot be empty/falsy786 is expected to validate that :password cannot be empty/falsy787 is expected to validate that :jira_auth_type cannot be empty/falsy788 is expected to validate that the length of :jira_issue_regex is at most 255789 is expected to validate that the length of :jira_issue_prefix is at most 255790 is expected to validate that :jira_auth_type is either ‹0› or ‹1›791 behaves like issue tracker integration URL attribute792 is expected to allow :url to be ‹"https://example.com"›793 is expected not to allow :url to be ‹"example.com"›794 is expected not to allow :url to be ‹"ftp://example.com"›795 is expected not to allow :url to be ‹"herp-and-derp"›796 behaves like issue tracker integration URL attribute797 is expected to allow :api_url to be ‹"https://example.com"›798 is expected not to allow :api_url to be ‹"example.com"›799 is expected not to allow :api_url to be ‹"ftp://example.com"›800 is expected not to allow :api_url to be ‹"herp-and-derp"›801 with personal_access_token_authorization802 is expected not to validate that :username cannot be empty/falsy803 when URL is for Jira Cloud804 is valid when jira_auth_type is basic805 is invalid when jira_auth_type is PAT806 when integration is inactive807 is expected to be valid808 is expected not to validate that :url cannot be empty/falsy809 is expected not to validate that :username cannot be empty/falsy810 is expected not to validate that :password cannot be empty/falsy811 is expected not to validate that :jira_auth_type cannot be empty/falsy812 is expected not to validate that the length of :jira_issue_regex is at most 255813 is expected not to validate that the length of :jira_issue_prefix is at most 255814 is expected not to validate that :jira_auth_type is either ‹0› or ‹1›815 jira_issue_transition_id816 accepts a blank value817 accepts any string containing numbers818 does not accept a string without numbers819 #options820 sets the URL properly821 leaves out trailing slashes in context822 provides additional cookies to allow basic auth with oracle webgate823 URL without a path824 leaves out trailing slashes in context825 URL with query string parameters826 removes query string parameters827 username with trailing whitespaces828 leaves out trailing whitespaces in username829 using api URL830 leaves out trailing slashes in context831 #fields832 returns custom fields833 #sections834 when project_level? is true835 includes SECTION_TYPE_JIRA_ISSUES836 section SECTION_TYPE_JIRA_ISSUES has `plan` attribute837 when project_level? is false838 does not include SECTION_TYPE_JIRA_ISSUES839 #reference_pattern840 key: "#123", result: ""841 is expected to eq ""842 key: "1#23#12", result: ""843 is expected to eq ""844 key: "JIRA-1234A", result: "JIRA-1234"845 is expected to eq "JIRA-1234"846 key: "JIRA-1234-some_tag", result: "JIRA-1234"847 is expected to eq "JIRA-1234"848 key: "JIRA-1234_some_tag", result: "JIRA-1234"849 is expected to eq "JIRA-1234"850 key: "EXT_EXT-1234", result: "EXT_EXT-1234"851 is expected to eq "EXT_EXT-1234"852 key: "EXT3_EXT-1234", result: "EXT3_EXT-1234"853 is expected to eq "EXT3_EXT-1234"854 key: "3EXT_EXT-1234", result: ""855 is expected to eq ""856 key: "CVE-2022-123", result: ""857 is expected to eq ""858 key: "CVE-123", result: "CVE-123"859 is expected to eq "CVE-123"860 key: "abc-JIRA-1234", result: "JIRA-1234"861 is expected to eq "JIRA-1234"862 with match prefix863 key: "jira##123", result: "", issue_key: ""864 is expected to eq ""865 key: "jira#1#23#12", result: "", issue_key: ""866 is expected to eq ""867 key: "jira#JIRA-1234A", result: "jira#JIRA-1234", issue_key: "JIRA-1234"868 is expected to eq "JIRA-1234"869 key: "jira#JIRA-1234-some_tag", result: "jira#JIRA-1234", issue_key: "JIRA-1234"870 is expected to eq "JIRA-1234"871 key: "JIRA-1234A", result: "", issue_key: ""872 is expected to eq ""873 key: "JIRA-1234-some_tag", result: "", issue_key: ""874 is expected to eq ""875 key: "myjira#JIRA-1234-some_tag", result: "", issue_key: ""876 is expected to eq ""877 key: "MYjira#JIRA-1234-some_tag", result: "", issue_key: ""878 is expected to eq ""879 key: "my-jira#JIRA-1234-some_tag", result: "jira#JIRA-1234", issue_key: "JIRA-1234"880 is expected to eq "JIRA-1234"881 with trailing space in jira_issue_prefix882 leaves the trailing space883 pulls the issue ID without a prefix884 with custom issue pattern885 key: "J1-123", result: "J1-123"886 is expected to eq "J1-123"887 key: "AAbJ J1-123", result: "J1-123"888 is expected to eq "J1-123"889 key: "#A1-123", result: "A1-123"890 is expected to eq "A1-123"891 key: "J1-1234-some_tag", result: "J1-1234"892 is expected to eq "J1-1234"893 key: "J1-1234A", result: "J1-1234"894 is expected to eq "J1-1234"895 key: "J1-1234-some_tag", result: "J1-1234"896 is expected to eq "J1-1234"897 key: "JI1-123", result: ""898 is expected to eq ""899 key: "J1I-123", result: ""900 is expected to eq ""901 key: "JI-123", result: ""902 is expected to eq ""903 key: "#123", result: ""904 is expected to eq ""905 with long running regex906 handles long inputs907 .valid_jira_cloud_url?908 url: "https://abc.atlassian.net", result: true909 is expected to eq true910 url: "http://abc.atlassian.net", result: false911 is expected to eq false912 url: "abc.atlassian.net", result: false913 is expected to eq false914 url: "https://somethingelse.com", result: false915 is expected to eq false916 url: "javascript://test.atlassian.net/%250dalert(document.domain)", result: false917 is expected to eq false918 url: "https://example.com\".atlassian.net", result: false919 is expected to eq false920 url: nil, result: false921 is expected to eq false922 #create923 does not store data into properties924 stores data in data_fields correctly925 when loading serverInfo926 with a Cloud instance927 is detected928 with a Server instance929 is detected930 from an Unknown instance931 and URL ends in .atlassian.net932 deployment_type is set to cloud933 and URL is something else934 deployment_type is set to server935 and no ServerInfo response is received936 and URL ends in .atlassian.net937 deployment_type is set to cloud938 and URL is something else939 deployment_type is set to server940 overriding properties941 with properties942 when data are stored in properties943 behaves like handles jira fields944 reading data945 reads data correctly946 #update947 basic update948 stores updated data in jira_tracker_data table949 when updating the url, api_url, username, or password950 calls serverInfo for url951 calls serverInfo for api_url952 calls serverInfo for username953 calls serverInfo for password954 when updating the integration955 updates deployment type956 when removing the integration957 updates deployment type958 when not updating the url, api_url, username, or password959 does not update deployment type960 when data are stored in separated fields961 behaves like handles jira fields962 reading data963 reads data correctly964 #update965 basic update966 stores updated data in jira_tracker_data table967 when updating the url, api_url, username, or password968 calls serverInfo for url969 calls serverInfo for api_url970 calls serverInfo for username971 calls serverInfo for password972 when updating the integration973 updates deployment type974 when removing the integration975 updates deployment type976 when not updating the url, api_url, username, or password977 does not update deployment type978 when data are stored in both properties and separated fields979 behaves like handles jira fields980 reading data981 reads data correctly982 #update983 basic update984 stores updated data in jira_tracker_data table985 when updating the url, api_url, username, or password986 calls serverInfo for url987 calls serverInfo for api_url988 calls serverInfo for username989 calls serverInfo for password990 when updating the integration991 updates deployment type992 when removing the integration993 updates deployment type994 when not updating the url, api_url, username, or password995 does not update deployment type996 #client997 uses the default GitLab::HTTP timeouts998 with basic auth999 uses correct authorization options1000 with personal access token auth1001 uses correct authorization options1002 #find_issue1003 calls the Jira API to get the issue1004 with options1005 calls the Jira API with the options to get the issue1006 with restricted restrict_project_key option1007 is expected to eq nil1008 and project_key matches1009 calls the Jira API to get the issue1010 #close_issue1011 when resource is a merge request1012 behaves like close_issue1013 calls Jira API1014 tracks usage1015 does not fail if remote_link.all on issue returns nil1016 creates Remote Link reference in Jira for comment1017 does not send comment or remote links to issues already closed1018 does not send comment or remote links to issues with unknown resolution1019 references the GitLab commit1020 references the GitLab commit1021 logs exception when transition id is not valid1022 calls the api with jira_issue_transition_id1023 behaves like Snowplow event tracking with RedisHLL context1024 behaves like Snowplow event tracking1025 is emitted1026 when "comment_on_event_enabled" is set to false1027 creates Remote Link reference but does not create comment1028 when Remote Link already exists1029 does not create comment1030 when custom transition IDs are blank1031 does not transition the issue1032 when using automatic issue transitions1033 uses the next transition with a status category of done1034 when no done transition is available1035 does not attempt to transition1036 when no valid transitions are returned1037 does not attempt to transition1038 when using multiple transition ids1039 calls the api with transition ids separated by comma1040 calls the api with transition ids separated by semicolon1041 when a transition fails1042 stops the sequence1043 when resource is a commit1044 behaves like close_issue1045 calls Jira API1046 tracks usage1047 does not fail if remote_link.all on issue returns nil1048 creates Remote Link reference in Jira for comment1049 does not send comment or remote links to issues already closed1050 does not send comment or remote links to issues with unknown resolution1051 references the GitLab commit1052 references the GitLab commit1053 logs exception when transition id is not valid1054 calls the api with jira_issue_transition_id1055 behaves like Snowplow event tracking with RedisHLL context1056 behaves like Snowplow event tracking1057 is emitted1058 when "comment_on_event_enabled" is set to false1059 creates Remote Link reference but does not create comment1060 when Remote Link already exists1061 does not create comment1062 when custom transition IDs are blank1063 does not transition the issue1064 when using automatic issue transitions1065 uses the next transition with a status category of done1066 when no done transition is available1067 does not attempt to transition1068 when no valid transitions are returned1069 does not attempt to transition1070 when using multiple transition ids1071 calls the api with transition ids separated by comma1072 calls the api with transition ids separated by semicolon1073 when a transition fails1074 stops the sequence1075 #create_cross_reference_note1076 for commits1077 behaves like handles cross-references1078 tracks usage1079 when enabled1080 creates a comment and remote link1081 when comment already exists1082 does not create a comment or remote link1083 when remote link already exists1084 updates the remote link but does not create a comment1085 when disabled1086 does not create a comment or remote link1087 behaves like Snowplow event tracking with RedisHLL context1088 behaves like Snowplow event tracking1089 is emitted1090 for issues1091 behaves like handles cross-references1092 tracks usage1093 when enabled1094 creates a comment and remote link1095 when comment already exists1096 does not create a comment or remote link1097 when remote link already exists1098 updates the remote link but does not create a comment1099 when disabled1100 does not create a comment or remote link1101 behaves like Snowplow event tracking with RedisHLL context1102 behaves like Snowplow event tracking1103 is emitted1104 for merge requests1105 behaves like handles cross-references1106 tracks usage1107 when enabled1108 creates a comment and remote link1109 when comment already exists1110 does not create a comment or remote link1111 when remote link already exists1112 updates the remote link but does not create a comment1113 when disabled1114 does not create a comment or remote link1115 behaves like Snowplow event tracking with RedisHLL context1116 behaves like Snowplow event tracking1117 is emitted1118 for notes1119 behaves like handles cross-references1120 tracks usage1121 when enabled1122 creates a comment and remote link1123 when comment already exists1124 does not create a comment or remote link1125 when remote link already exists1126 updates the remote link but does not create a comment1127 when disabled1128 does not create a comment or remote link1129 behaves like Snowplow event tracking with RedisHLL context1130 behaves like Snowplow event tracking1131 is emitted1132 for snippets1133 behaves like handles cross-references1134 tracks usage1135 when enabled1136 creates a comment and remote link1137 when comment already exists1138 does not create a comment or remote link1139 when remote link already exists1140 updates the remote link but does not create a comment1141 when disabled1142 does not create a comment or remote link1143 behaves like Snowplow event tracking with RedisHLL context1144 behaves like Snowplow event tracking1145 is emitted1146 #test1147 when the test succeeds1148 gets Jira project with URL when API URL not set1149 gets Jira project with API URL if set1150 when the test fails1151 returns result with the error1152 project and issue urls1153 removes trailing slashes from url1154 when gitlab.yml was initialized1155 is prepopulated with the settings1156 favicon urls1157 includes the standard favicon1158 includes returns the custom favicon1159 generating external URLs1160 #web_url1161 handles paths, slashes, and query string1162 preserves existing query string1163 returns an empty string if URL is not set1164 includes Atlassian referrer for SaaS1165 includes Atlassian referrer for self-managed1166 #project_url1167 returns the correct URL1168 returns an empty string if URL is not set1169 #issues_url1170 returns the correct URL1171 returns an empty string if URL is not set1172 #new_issue_url1173 returns the correct URL1174 returns an empty string if URL is not set1175 #issue_transition_enabled?1176 returns true if automatic transitions are enabled1177 returns true if custom transitions are set1178 returns false if automatic and custom transitions are disabled1179 valid_connection? and configured?1180 when the test fails1181 is falsey1182 implies that configured? is also falsey1183 when the test succeeds1184 is truthy1185 when the integration is active1186 implies that configured? is also truthy1187 when the integration is inactive1188 implies that configured? is falsey1189Suggestions::ApplyService1190 patch is appliable1191 non-fork project1192 behaves like successfully creates commit and updates suggestions1193 updates the files with the new content1194 updates suggestion applied and commit_id columns1195 created commit has users email and name1196 tracks apply suggestion event1197 when a custom suggestion commit message1198 is not specified1199 uses the default commit message1200 is specified1201 generates a custom commit message1202 with a user suggested commit message1203 uses the user's commit message1204 when it fails to apply because a file was changed1205 returns error message1206 when HEAD from position is different from source branch HEAD on repo1207 returns error message1208 single suggestion1209 author of suggestion applies suggestion1210 created commit by same author and committer1211 another user applies suggestion1212 created commit has authors info and commiters info1213 multiple suggestions1214 when all the same author1215 uses first authors information1216 when all different authors1217 uses committers information1218 multiple suggestions applied sequentially1219 applies multiple suggestions in subsequent versions correctly1220 multi-line suggestion1221 behaves like successfully creates commit and updates suggestions1222 updates the files with the new content1223 updates suggestion applied and commit_id columns1224 created commit has users email and name1225 tracks apply suggestion event1226 when a custom suggestion commit message1227 is not specified1228 uses the default commit message1229 is specified1230 generates a custom commit message1231 with a user suggested commit message1232 uses the user's commit message1233 remove an empty line suggestion1234 behaves like successfully creates commit and updates suggestions1235 updates the files with the new content1236 updates suggestion applied and commit_id columns1237 created commit has users email and name1238 tracks apply suggestion event1239 when a custom suggestion commit message1240 is not specified1241 uses the default commit message1242 is specified1243 generates a custom commit message1244 with a user suggested commit message1245 uses the user's commit message1246 fork-project1247 updates file in the source project1248 no permission1249 user cannot write in project repo1250 returns error1251 patch is not appliable1252 diff file was not found1253 returns error message1254 behaves like service not tracking apply suggestion event1255 does not track apply suggestion event1256 when not all suggestions belong to the same branch1257 renders error message1258 behaves like service not tracking apply suggestion event1259 does not track apply suggestion event1260 suggestion is not appliable1261 returns error message1262 behaves like service not tracking apply suggestion event1263 does not track apply suggestion event1264 lines of suggestions overlap1265 returns error message1266 behaves like service not tracking apply suggestion event1267 does not track apply suggestion event1268Gitlab::Diff::PositionTracer::LineStrategy1269 #trace1270 diff scenarios1271 when the file was created in the old diff1272 when the file is created in the new diff1273 when the position pointed at an added line in the old diff1274 when the file's content was unchanged between the old and the new diff1275 returns the new position1276 when the position is multiline1277 returns the new position along with line_range1278 when the file's content was changed between the old and the new diff1279 when that line was unchanged between the old and the new diff1280 returns the new position1281 when that line was moved between the old and the new diff1282 returns the new position1283 when that line was changed between the old and the new diff1284 returns the position of the change1285 when that line was deleted between the old and the new diff1286 returns the position of the change1287 when the file is changed in the new diff1288 when the position pointed at an added line in the old diff1289 when the file's content was unchanged between the old and the new diff1290 returns the new position1291 when the file's content was changed between the old and the new diff1292 when that line was unchanged between the old and the new diff1293 returns the new position1294 when that line was moved between the old and the new diff1295 returns the new position1296 when that line was changed between the old and the new diff1297 returns the position of the change1298 when that line was deleted between the old and the new diff1299 returns the position of the change1300 when the file is renamed in the new diff1301 when the position pointed at an added line in the old diff1302 when the file's content was unchanged between the old and the new diff1303 returns the position of the change1304 when the position is multiline1305 returns the new position1306 when the file's content was changed between the old and the new diff1307 when that line was unchanged between the old and the new diff1308 returns the new position1309 when that line was moved between the old and the new diff1310 returns the new position1311 when that line was changed between the old and the new diff1312 returns the position of the change1313 when the file is deleted in the new diff1314 when the position pointed at an added line in the old diff1315 when the file's content was unchanged between the old and the new diff1316 returns the position of the change1317 when the file's content was changed between the old and the new diff1318 when that line was unchanged between the old and the new diff1319 returns the position of the change1320 when that line was moved between the old and the new diff1321 returns the position of the change1322 when that line was changed between the old and the new diff1323 returns the position of the change1324 when that line was deleted between the old and the new diff1325 returns the position of the change1326 when the file is unchanged in the new diff1327 when the position pointed at an added line in the old diff1328 when the file's content was unchanged between the old and the new diff1329 returns the position of the change1330 when the file's content was changed between the old and the new diff1331 when that line was unchanged between the old and the new diff1332 returns the position of the change1333 when that line was moved between the old and the new diff1334 returns the position of the change1335 when that line was changed between the old and the new diff1336 returns the position of the change1337 when that line was deleted between the old and the new diff1338 returns the position of the change1339 when the file was changed in the old diff1340 when the file is created in the new diff1341 when the position pointed at an added line in the old diff1342 when the file's content was unchanged between the old and the new diff1343 returns the new position1344 when the file's content was changed between the old and the new diff1345 when that line was unchanged between the old and the new diff1346 returns the new position1347 when that line was moved between the old and the new diff1348 returns the new position1349 when that line was changed or deleted between the old and the new diff1350 returns the position of the change1351 when the position pointed at a deleted line in the old diff1352 returns the position of the change1353 when the position pointed at an unchanged line in the old diff1354 when the file's content was unchanged between the old and the new diff1355 returns the new position1356 when the file's content was changed between the old and the new diff1357 when that line was unchanged between the old and the new diff1358 returns the new position1359 when that line was moved between the old and the new diff1360 returns the new position1361 when that line was changed or deleted between the old and the new diff1362 returns the position of the change1363 when the file is changed in the new diff1364 when the position pointed at an added line in the old diff1365 when the file's content was unchanged between the old and the new diff1366 returns the new position1367 when the file's content was changed between the old and the new diff1368 when that line was unchanged between the old and the new diff1369 returns the new position1370 when that line was moved between the old and the new diff1371 returns the new position1372 when that line was changed or deleted between the old and the new diff1373 returns the position of the change1374 when the position pointed at a deleted line in the old diff1375 when the file's content was unchanged between the old and the new diff1376 returns the new position1377 typical use scenarios1378 simple push of new commit1379 returns the new positions1380 force push to overwrite last commit1381 returns the new positions1382 force push to delete last commit1383 returns the new positions1384 rebase on top of target branch1385 returns the new positions1386 merge of target branch1387 returns the new positions1388 changing target branch1389 returns the new positions1390Ci::UnlockArtifactsService1391 tag: false1392 #execute1393 when running on a ref before a pipeline1394 unlocks artifacts from older pipelines1395 does not unlock artifacts for tag or branch with same name as ref1396 does not unlock artifacts from newer pipelines1397 does not lock artifacts from old unlocked pipelines1398 does not unlock artifacts from the same pipeline1399 does not unlock artifacts for other refs1400 does not unlock artifacts for child pipeline1401 unlocks job artifact records1402 unlocks pipeline artifact records1403 when running on just the ref1404 unlocks artifacts from older pipelines1405 unlocks artifacts from newer pipelines1406 unlocks artifacts from the same pipeline1407 does not unlock artifacts for tag or branch with same name as ref1408 does not lock artifacts from old unlocked pipelines1409 does not unlock artifacts for other refs1410 unlocks job artifact records1411 unlocks pipeline artifact records1412 #unlock_pipelines_query1413 when running on a ref before a pipeline1414 produces the expected SQL string1415 when running on just the ref1416 produces the expected SQL string1417 #unlock_job_artifacts_query1418 when given a single pipeline ID1419 produces the expected SQL string1420 when given multiple pipeline IDs1421 produces the expected SQL string1422 tag: true1423 #execute1424 when running on a ref before a pipeline1425 unlocks artifacts from older pipelines1426 does not unlock artifacts for tag or branch with same name as ref1427 does not unlock artifacts from newer pipelines1428 does not lock artifacts from old unlocked pipelines1429 does not unlock artifacts from the same pipeline1430 does not unlock artifacts for other refs1431 does not unlock artifacts for child pipeline1432 unlocks job artifact records1433 unlocks pipeline artifact records1434 when running on just the ref1435 unlocks artifacts from older pipelines1436 unlocks artifacts from newer pipelines1437 unlocks artifacts from the same pipeline1438 does not unlock artifacts for tag or branch with same name as ref1439 does not lock artifacts from old unlocked pipelines1440 does not unlock artifacts for other refs1441 unlocks job artifact records1442 unlocks pipeline artifact records1443 #unlock_pipelines_query1444 when running on a ref before a pipeline1445 produces the expected SQL string1446 when running on just the ref1447 produces the expected SQL string1448 #unlock_job_artifacts_query1449 when given a single pipeline ID1450 produces the expected SQL string1451 when given multiple pipeline IDs1452 produces the expected SQL string1453Banzai::Filter::References::MergeRequestReferenceFilter1454 requires project context1455 ignores valid references contained inside 'pre' element1456 ignores valid references contained inside 'code' element1457 ignores valid references contained inside 'a' element1458 ignores valid references contained inside 'style' element1459 performance1460 does not have a N+1 query problem1461 all references1462 adds merge request iid1463 adds project data attribute with project id1464 does not add `has-tooltip` class1465 internal reference1466 links to a valid reference1467 links with adjacent text1468 ignores invalid merge IDs1469 ignores out-of-bounds merge request IDs on the referenced project1470 has the MR title in the title attribute1471 escapes the title attribute1472 includes default classes, without tooltip1473 includes a data-project attribute1474 includes a data-merge-request attribute1475 includes a data-reference-format attribute1476 includes a data-reference-format attribute for URL references1477 includes a data-reference-format attribute for extended summary URL references1478 supports an :only_path context1479 cross-project / cross-namespace complete reference1480 links to a valid reference1481 link has valid text1482 has valid text1483 has correct data attributes1484 ignores invalid merge IDs on the referenced project1485 cross-project / same-namespace complete reference1486 links to a valid reference1487 link has valid text1488 has valid text1489 ignores invalid merge IDs on the referenced project1490 cross-project shorthand reference1491 links to a valid reference1492 link has valid text1493 has valid text1494 ignores invalid merge IDs on the referenced project1495 URL reference for a commit1496 links to a valid reference1497 commit ref tag is valid1498 has valid text1499 ignores invalid commit short_ids on link text1500 cross-project URL reference1501 links to a valid reference1502 links with adjacent text1503 group context1504 links to a valid reference1505MergeRequests::CloseService1506 #execute1507 updates metrics1508 calls the merge request activity counter1509 refreshes the number of open merge requests for a valid MR1510 clean up environments for the merge request1511 schedules CleanupRefsService1512 triggers GraphQL subscription mergeRequestMergeStatusUpdated1513 behaves like cache counters invalidator1514 invalidates counter cache for assignees1515 behaves like merge request reviewers cache counters invalidator1516 invalidates counter cache for reviewers1517 valid params1518 is expected to be valid1519 is expected to be closed1520 executes hooks with close action1521 sends email to user2 about assign of new merge_request1522 creates a resource event1523 marks todos as done1524 when auto merge is enabled1525 cancels the auto merge1526 current user is not authorized to close merge request1527 does not close the merge request1528 does not trigger GraphQL subscription mergeRequestMergeStatusUpdated1529WebHook1530 associations1531 is expected to have many web_hook_logs1532 validations1533 is expected to validate that :url cannot be empty/falsy1534 only consider these branch filter strategies are valid1535 url_variables1536 is expected to allow :url_variables to be ‹{}›1537 is expected to allow :url_variables to be ‹{"foo" => "bar"}›1538 is expected to allow :url_variables to be ‹{"FOO" => "bar"}›1539 is expected to allow :url_variables to be ‹{"MY_TOKEN" => "bar"}›1540 is expected to allow :url_variables to be ‹{"foo2" => "bar"}›1541 is expected to allow :url_variables to be ‹{"x" => "y"}›1542 is expected to allow :url_variables to be ‹{"x" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}›1543 is expected to allow :url_variables to be ‹{"foo" => "bar", "bar" => "baz"}›1544 is expected to allow :url_variables to be ‹{"k1" => "value", "k2" => "value", "k3" => "value", "k4" => "value", "k5" => "value", "k6" => "value", "k7" => "value", "k8" => "value", "k9" => "value", "k10" => "value", "k11" => "value", "k12" => "value", "k13" => "value", "k14" => "value", "k15" => "value", "k16" => "value", "k17" => "value", "k18" => "value", "k19" => "value", "k20" => "value"}›1545 is expected to allow :url_variables to be ‹{"MY-TOKEN" => "bar"}›1546 is expected to allow :url_variables to be ‹{"my_secr3t-token" => "bar"}›1547 is expected to allow :url_variables to be ‹{"x-y-z" => "bar"}›1548 is expected to allow :url_variables to be ‹{"x_y_z" => "bar"}›1549 is expected to allow :url_variables to be ‹{"f.o.o" => "bar"}›1550 is expected not to allow :url_variables to be ‹[]›1551 is expected not to allow :url_variables to be ‹{"foo" => 1}›1552 is expected not to allow :url_variables to be ‹{"bar" => :baz}›1553 is expected not to allow :url_variables to be ‹{"bar" => nil}›1554 is expected not to allow :url_variables to be ‹{"foo" => ""}›1555 is expected not to allow :url_variables to be ‹{"foo" => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}›1556 is expected not to allow :url_variables to be ‹{"has spaces" => "foo"}›1557 is expected not to allow :url_variables to be ‹{"" => "foo"}›1558 is expected not to allow :url_variables to be ‹{"1foo" => "foo"}›1559 is expected not to allow :url_variables to be ‹{"k1" => "value", "k2" => "value", "k3" => "value", "k4" => "value", "k5" => "value", "k6" => "value", "k7" => "value", "k8" => "value", "k9" => "value", "k10" => "value", "k11" => "value", "k12" => "value", "k13" => "value", "k14" => "value", "k15" => "value", "k16" => "value", "k17" => "value", "k18" => "value", "k19" => "value", "k20" => "value", "k21" => "value"}›1560 is expected not to allow :url_variables to be ‹{"MY--TOKEN" => "foo"}›1561 is expected not to allow :url_variables to be ‹{"MY__SECRET" => "foo"}›1562 is expected not to allow :url_variables to be ‹{"x-_y" => "foo"}›1563 is expected not to allow :url_variables to be ‹{"x..y" => "foo"}›1564 url1565 is expected to allow :url to be ‹"http://example.com"›1566 is expected to allow :url to be ‹"https://example.com"›1567 is expected to allow :url to be ‹" https://example.com "›1568 is expected to allow :url to be ‹"http://test.com/api"›1569 is expected to allow :url to be ‹"http://test.com/api?key=abc"›1570 is expected to allow :url to be ‹"http://test.com/api?key=abc&type=def"›1571 is expected not to allow :url to be ‹"example.com"›1572 is expected not to allow :url to be ‹"ftp://example.com"›1573 is expected not to allow :url to be ‹"herp-and-derp"›1574 strips :url before saving it1575 when url is local1576 is expected not to allow :url to be ‹"http://localhost:9000"›1577 is valid if application settings allow local requests from web hooks1578 when there are URL variables1579 is expected to allow :url to be ‹"http://example.com"›1580 is expected to allow :url to be ‹"http://example.com/{one}/{two}"›1581 is expected to allow :url to be ‹"http://example.com/{one}"›1582 is expected to allow :url to be ‹"http://example.com/{two}"›1583 is expected to allow :url to be ‹"http://user:s3cret@example.com/{two}"›1584 is expected to allow :url to be ‹"http://{one}:{two}@example.com"›1585 is expected to allow :url to be ‹"http://{one}"›1586 is expected to allow :url to be ‹"{url}"›1587 is expected not to allow :url to be ‹"http://example.com/{one}/{two}/{three}"›1588 is expected not to allow :url to be ‹"http://example.com/{foo}"›1589 is expected not to allow :url to be ‹"http:{user}:{pwd}//example.com/{foo}"›1590 mentions all missing variable names1591 token1592 is expected to allow :token to be ‹"foobar"›1593 is expected not to allow :token to be ‹"foo\nbar"› or ‹"foo\r\nbar"›1594 push_events_branch_filter1595 with "all branches" strategy1596 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good branch name"›, ‹"good~branchname"›, ‹"good_branchname("›, ‹"good_branchname["›, or ‹""›1597 with "wildcard" strategy1598 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good_branch_name("›, or ‹""›1599 is expected not to allow :push_events_branch_filter to be ‹"bad branch name"›, ‹"bad~branchname"›, or ‹"bad_branch_name["›1600 gets rid of whitespace1601 stores whitespace only as empty1602 with "regex" strategy1603 is expected to allow :push_events_branch_filter to be ‹"good_branch_name"›, ‹"another/good-branch_name"›, ‹"good branch name"›, ‹"good~branch~name"›, or ‹""›1604 is expected not to allow :push_events_branch_filter to be ‹"bad_branch_name("› or ‹"bad_branch_name["›1605 before_validation :reset_token1606 resets token if url changed1607 does not reset token if new url is set together with the same token1608 does not reset token if new url is set together with a new token1609 before_validation :reset_url_variables1610 resets url variables if url changed1611 resets url variables if url is changed but url variables stayed the same1612 resets url variables if url is changed and url variables are appended1613 resets url variables if url is changed and url variables are removed1614 resets url variables if url variables are overwritten1615 does not reset url variables if both url and url variables are changed1616 without url variables1617 does not reset url variables1618 encrypted attributes1619 is expected to contain exactly :token, :url, and :url_variables1620 execute1621 #execute1622 passes force: false to the web hook service by default1623 passes force: true to the web hook service if required1624 #async_execute1625 does not async execute non-executable hooks1626 #destroy1627 does not cascade to web_hook_logs1628 #next_backoff1629 when there was no last backoff1630 is 10 minutes1631 when we have backed off once1632 is twice the initial value1633 when we have backed off 3 times1634 grows exponentially1635 when the previous backoff was large1636 does not exceed the max backoff value1637 #rate_limited?1638 is false when hook has not been rate limited1639 is true when hook has been rate limited1640 #rate_limit1641 returns the hook rate limit1642 #to_json1643 does not error1644 does not contain binary attributes1645 #interpolated_url1646 is not vulnerable to malicious input1647 when the hook URL does not contain variables1648 is expected to have attributes {:interpolated_url => "http://example.com"}1649 when the hook URL contains variables1650 is expected to have attributes {:interpolated_url => "http://example.com/abc/resource?token=xyz"}1651 when a variable is missing1652 raises an error1653 when the URL appears to include percent formatting1654 succeeds, interpolates correctly1655 #update_last_failure1656 is a method of this class1657 #masked_token1658 is expected to be nil1659 with a token1660 is expected to eq "************"1661 #backoff!1662 when we have not backed off before1663 increments the recent_failures count1664 when the recent failure value is the max value of a smallint1665 reduces to MAX_FAILURES1666 when the recent failure value is MAX_FAILURES1667 does not change recent_failures1668 when we have exhausted the grace period1669 sets disabled_until to the next backoff1670 increments the backoff count1671 when we have backed off MAX_FAILURES times1672 does not let the backoff count exceed the maximum failure count1673 does not change disabled_until1674 changes disabled_until when it has elapsed1675 #failed!1676 increments the failure count1677 does not update the hook if the the failure count exceeds the maximum value1678 when the recent failure value is the max value of a smallint1679 does not change recent_failures1680GroupsFinder1681 #execute1682 root level groups1683 user_type: nil, params: {:all_available=>true}, results: [:public_group, :user_public_group]1684 is expected to contain exactly #<Group id:1334 @public_group> and #<Group id:1337 @user_public_group>1685 user_type: nil, params: {:all_available=>false}, results: [:public_group, :user_public_group]1686 is expected to contain exactly #<Group id:1340 @public_group> and #<Group id:1343 @user_public_group>1687 user_type: nil, params: {}, results: [:public_group, :user_public_group]1688 is expected to contain exactly #<Group id:1346 @public_group> and #<Group id:1349 @user_public_group>1689 user_type: :regular, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]1690 is expected to contain exactly #<Group id:1352 @public_group>, #<Group id:1351 @internal_group>, #<Group id:1355 @user_public_group>, #<Group id:1354 @user_internal_group>, and #<Group id:1353 @user_private_group>1691 user_type: :regular, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]1692 is expected to contain exactly #<Group id:1362 @user_public_group>, #<Group id:1361 @user_internal_group>, and #<Group id:1360 @user_private_group>1693 user_type: :regular, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]1694 is expected to contain exactly #<Group id:1366 @public_group>, #<Group id:1365 @internal_group>, #<Group id:1369 @user_public_group>, #<Group id:1368 @user_internal_group>, and #<Group id:1367 @user_private_group>1695 user_type: :regular, params: {:min_access_level=>30}, results: [:user_public_group, :user_internal_group, :user_private_group]1696 is expected to contain exactly #<Group id:1376 @user_public_group>, #<Group id:1375 @user_internal_group>, and #<Group id:1374 @user_private_group>1697 user_type: :external, params: {:all_available=>true}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]1698 is expected to contain exactly #<Group id:1380 @public_group>, #<Group id:1383 @user_public_group>, #<Group id:1382 @user_internal_group>, and #<Group id:1381 @user_private_group>1699 user_type: :external, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]1700 is expected to contain exactly #<Group id:1390 @user_public_group>, #<Group id:1389 @user_internal_group>, and #<Group id:1388 @user_private_group>1701 user_type: :external, params: {}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]1702 is expected to contain exactly #<Group id:1394 @public_group>, #<Group id:1397 @user_public_group>, #<Group id:1396 @user_internal_group>, and #<Group id:1395 @user_private_group>1703 user_type: :admin_without_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]1704 is expected to contain exactly #<Group id:1401 @public_group>, #<Group id:1400 @internal_group>, #<Group id:1404 @user_public_group>, #<Group id:1403 @user_internal_group>, and #<Group id:1402 @user_private_group>1705 user_type: :admin_without_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]1706 is expected to contain exactly #<Group id:1411 @user_public_group>, #<Group id:1410 @user_internal_group>, and #<Group id:1409 @user_private_group>1707 user_type: :admin_without_admin_mode, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]1708 is expected to contain exactly #<Group id:1415 @public_group>, #<Group id:1414 @internal_group>, #<Group id:1418 @user_public_group>, #<Group id:1417 @user_internal_group>, and #<Group id:1416 @user_private_group>1709 user_type: :admin_with_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]1710 is expected to contain exactly #<Group id:1422 @public_group>, #<Group id:1421 @internal_group>, #<Group id:1420 @private_group>, #<Group id:1425 @user_public_group>, #<Group id:1424 @user_internal_group>, and #<Group id:1423 @user_private_group>1711 user_type: :admin_with_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]1712 is expected to contain exactly #<Group id:1432 @user_public_group>, #<Group id:1431 @user_internal_group>, and #<Group id:1430 @user_private_group>1713 user_type: :admin_with_admin_mode, params: {}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]1714 is expected to contain exactly #<Group id:1436 @public_group>, #<Group id:1435 @internal_group>, #<Group id:1434 @private_group>, #<Group id:1439 @user_public_group>, #<Group id:1438 @user_internal_group>, and #<Group id:1437 @user_private_group>1715 subgroups1716 with [nil] parent1717 returns only top-level groups1718 without a user1719 only returns parent and public subgroups1720 with a user1721 returns parent, public, and internal subgroups1722 being member1723 returns parent, public subgroups, internal subgroups, and private subgroups user is member of1724 parent group private1725 being member of parent group1726 returns all subgroups1727 authorized to private project1728 project one level deep1729 includes the subgroup of the project1730 does not include private subgroups deeper down1731 project two levels deep1732 returns all the ancestor groups1733 returns the groups for a given parent1734 being minimal access member of parent group1735 do not return group with minimal_access access1736 with include parent group descendants1737 with nil parent1738 returns all accessible groups1739 without a user1740 only returns the group public descendants1741 when a user is present1742 returns the group public and internal descendants1743 when a parent group member is present1744 returns all group descendants1745 with search1746 returns all groups with matching title1747 returns all groups with matching path1748 does not search in full path if parent is set1749 with group descendants1750 searches in full path if descendant groups are not included1751 with filter_group_ids1752 returns only the groups listed in the filter1753 with include_ancestors1754 if include_ancestors is true1755 returns ancestors of user groups1756 returns subgroup if user is member of project of subgroup1757 returns only groups related to user groups if all_available is false1758 if include_ancestors is false1759 does not return private ancestors of user groups1760 returns project's parent group if user is member of project1761 returns only user groups and their descendants if all_available is false1762Gitlab::ClosingIssueExtractor1763 #closed_by_message1764 with a single reference1765 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1766 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1767 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1768 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1769 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1770 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1771 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1772 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1773 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1774 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1775 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1776 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1777 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1778 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1779 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1780 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1781 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1782 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1783 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1784 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1785 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1786 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1787 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1788 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1789 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1790 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1791 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1792 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1793 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1794 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1795 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1796 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1797 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1798 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1799 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1800 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1801 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1802 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1803 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1804 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1805 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1806 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1807 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1808 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1809 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1810 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1811 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1812 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1813 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1814 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1815 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1816 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1817 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1818 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1819 is expected to eq [#<Issue id:1 namespace461/project-441#1>]1820 with an external issue tracker reference1821 extracts the referenced issue1822 extracts the referenced issue even if GitLab issues are disabled for the project1823 with a cross-project reference1824 is expected to eq [#<Issue id:2 namespace462/project-442#1>]1825 with a cross-project URL1826 is expected to eq [#<Issue id:2 namespace462/project-442#1>]1827 with a cross-project fork reference1828 is expected to be empty1829 when target project has autoclose issues disabled1830 omits the issue reference1831 when target project has issues disabled1832 omits the issue reference1833 with an invalid URL1834 is expected to eq []1835 with an invalid keyword such as suffix insted of fix1836 is expected to eq []1837 with multiple references1838 fetches issues in single line message1839 fetches comma-separated issues references in single line message1840 fetches comma-separated issues numbers in single line message1841 allows oxford commas (comma before and) when referencing multiple issues1842 allows spaces before commas when referencing multiple issues1843 allows non-comma-separated issue numbers in single line message1844 allows mixed comma-separated and non-comma-separated issue numbers in single line message1845 fetches issues in multi-line message1846 fetches issues in hybrid message1847 fetches cross-project references1848 fetches cross-project URL references1849 ignores invalid cross-project URL references1850 with autoclose referenced issues disabled1851 excludes same project references1852 includes issues from other projects with autoclose enabled1853Banzai::Filter::References::SnippetReferenceFilter1854 requires project context1855 ignores valid references contained inside 'pre' element1856 ignores valid references contained inside 'code' element1857 ignores valid references contained inside 'a' element1858 ignores valid references contained inside 'style' element1859 internal reference1860 links to a valid reference1861 links with adjacent text1862 ignores invalid snippet IDs1863 includes a title attribute1864 escapes the title attribute1865 includes default classes1866 includes a data-project attribute1867 includes a data-snippet attribute1868 supports an :only_path context1869 cross-project / cross-namespace complete reference1870 links to a valid reference1871 link has valid text1872 has valid text1873 ignores invalid snippet IDs on the referenced project1874 cross-project / same-namespace complete reference1875 links to a valid reference1876 link has valid text1877 has valid text1878 ignores invalid snippet IDs on the referenced project1879 cross-project shorthand reference1880 links to a valid reference1881 link has valid text1882 has valid text1883 ignores invalid snippet IDs on the referenced project1884 cross-project URL reference1885 links to a valid reference1886 links with adjacent text1887 ignores invalid snippet IDs on the referenced project1888 group context1889 links to a valid reference1890 ignores internal references1891 checking N+11892 does not have N+1 per multiple references per project1893BulkImports::CreateService1894 #execute1895 when gitlab version is 15.5 or higher1896 when a BulkImports::Error is raised while validating the instance version1897 rescues the error and raises a ServiceResponse::Error1898 when direct transfer setting query returns a 4041899 raises a ServiceResponse::Error1900 when required scopes are not present1901 returns ServiceResponse with error if token does not have api scope1902 when token validation succeeds1903 creates bulk import1904 on the same instance1905 tracks the same instance migration1906 projects migration flag1907 when false1908 sets false1909 when true1910 sets true1911 when nil1912 sets true1913 when gitlab version is lower than 15.51914 creates bulk import1915 creates bulk import entities1916 creates bulk import configuration1917 enqueues BulkImportWorker1918 returns success ServiceResponse1919 returns ServiceResponse with error if validation fails1920 on the same instance1921 tracks the same instance migration1922 #user-role1923 defines access_level as not a member1924 when there is a parent_namespace and the user is a member1925 defines access_level from parent namespace membership1926 when there is a destination_namespace but no parent_namespace1927 defines access_level from destination_namespace1928 when there is no destination_namespace or parent_namespace1929 defines access_level as owner1930 #validate_setting_enabled!1931 when the source_type is a group1932 when the source_full_path contains only integer characters1933 makes a graphql request using the group full path and an http request with the correct id1934 when the source_type is a project1935 when the source_full_path contains only integer characters1936 makes a graphql request using the group full path and an http request with the correct id1937 #validate_destination_namespace1938 when the destination_namespace does not exist1939 returns ServiceResponse with an error message1940 when the user does not have permission to create subgroups1941 returns ServiceResponse with an error message1942 when the user does not have permission to create projects1943 returns ServiceResponse with an error message1944 #validate_destination_slug1945 when the destination_slug is invalid1946 returns ServiceResponse with an error message1947 #validate_destination_full_path1948 when the source_type is a group1949 when the provided destination_slug already exists in the destination_namespace1950 returns ServiceResponse with an error message1951 when the destination_slug conflicts with an existing top-level namespace1952 returns ServiceResponse with an error message1953 when the destination_slug does not conflict with an existing top-level namespace1954 returns success ServiceResponse1955 when the source_type is a project1956 when the provided destination_slug already exists in the destination_namespace1957 returns ServiceResponse with an error message1958 when the destination_slug does not conflict with an existing project1959 returns success ServiceResponse1960Gitlab::Usage::MetricDefinition1961 has all definitons valid1962 not_removed1963 includes metrics that are not removed1964 #with_instrumentation_class1965 includes definitions with instrumentation_class1966 with removed metric1967 excludes removed definitions1968 #key1969 returns a symbol from name1970 #validate1971 attribute: :description, value: nil1972 raise exception1973 with skip_validation1974 raise exception if skip_validation: false1975 does not raise exception if has skip_validation: true1976 attribute: :value_type, value: nil1977 raise exception1978 with skip_validation1979 raise exception if skip_validation: false1980 does not raise exception if has skip_validation: true1981 attribute: :value_type, value: "test"1982 raise exception1983 with skip_validation1984 raise exception if skip_validation: false1985 does not raise exception if has skip_validation: true1986 attribute: :status, value: nil1987 raise exception1988 with skip_validation1989 raise exception if skip_validation: false1990 does not raise exception if has skip_validation: true1991 attribute: :milestone, value: nil1992 raise exception1993 with skip_validation1994 raise exception if skip_validation: false1995 does not raise exception if has skip_validation: true1996 attribute: :data_category, value: nil1997 raise exception1998 with skip_validation1999 raise exception if skip_validation: false2000 does not raise exception if has skip_validation: true2001 attribute: :key_path, value: nil2002 raise exception2003 with skip_validation2004 raise exception if skip_validation: false2005 does not raise exception if has skip_validation: true2006 attribute: :product_group, value: nil2007 raise exception2008 with skip_validation2009 raise exception if skip_validation: false2010 does not raise exception if has skip_validation: true2011 attribute: :time_frame, value: nil2012 raise exception2013 with skip_validation2014 raise exception if skip_validation: false2015 does not raise exception if has skip_validation: true2016 attribute: :time_frame, value: "29d"2017 raise exception2018 with skip_validation2019 raise exception if skip_validation: false2020 does not raise exception if has skip_validation: true2021 attribute: :data_source, value: "other"2022 raise exception2023 with skip_validation2024 raise exception if skip_validation: false2025 does not raise exception if has skip_validation: true2026 attribute: :data_source, value: nil2027 raise exception2028 with skip_validation2029 raise exception if skip_validation: false2030 does not raise exception if has skip_validation: true2031 attribute: :distribution, value: nil2032 raise exception2033 with skip_validation2034 raise exception if skip_validation: false2035 does not raise exception if has skip_validation: true2036 attribute: :distribution, value: "test"2037 raise exception2038 with skip_validation2039 raise exception if skip_validation: false2040 does not raise exception if has skip_validation: true2041 attribute: :tier, value: ["test", "ee"]2042 raise exception2043 with skip_validation2044 raise exception if skip_validation: false2045 does not raise exception if has skip_validation: true2046 attribute: :name, value: "count_<adjective_describing>_boards"2047 raise exception2048 with skip_validation2049 raise exception if skip_validation: false2050 does not raise exception if has skip_validation: true2051 attribute: :repair_issue_url, value: nil2052 raise exception2053 with skip_validation2054 raise exception if skip_validation: false2055 does not raise exception if has skip_validation: true2056 attribute: :removed_by_url, value: 12057 raise exception2058 with skip_validation2059 raise exception if skip_validation: false2060 does not raise exception if has skip_validation: true2061 attribute: :performance_indicator_type, value: nil2062 raise exception2063 with skip_validation2064 raise exception if skip_validation: false2065 does not raise exception if has skip_validation: true2066 attribute: :instrumentation_class, value: "Metric_Class"2067 raise exception2068 with skip_validation2069 raise exception if skip_validation: false2070 does not raise exception if has skip_validation: true2071 attribute: :instrumentation_class, value: "metricClass"2072 raise exception2073 with skip_validation2074 raise exception if skip_validation: false2075 does not raise exception if has skip_validation: true2076 conditional validations2077 when metric has broken status2078 has to have repair issue url provided2079 #events2080 when metric is not event based2081 returns empty hash2082 when metric is using old format2083 returns a correct hash2084 when metric is using new format2085 returns a correct hash2086 when metric is using both formats2087 uses the new format2088 #valid_service_ping_status?2089 when metric has active status2090 has to return true2091 when metric has removed status2092 has to return false2093 statuses2094 status: "active", skip_validation?: false2095 returns true/false for skip_validation2096 status: "broken", skip_validation?: false2097 returns true/false for skip_validation2098 status: "removed", skip_validation?: true2099 returns true/false for skip_validation2100 .load_all!2101 has empty list when there are no definition files2102 has one metric when there is one file2103 when the same metric is defined multiple times raises exception2104 dump_metrics_yaml2105 returns a YAML with both metrics in a sequence2106 .metric_definitions_changed?2107 in development2108 has changes on the first invocation2109 when no files are changed2110 does not have changes on the second invocation2111 when file is changed2112 has changes on the next invocation when more than 3 seconds have passed2113 does not have changes on the next invocation when less than 3 seconds have passed2114 in production2115 does not detect changes2116BlobHelper2117 #sanitize_svg_data2118 retains essential elements2119 #edit_blob_button2120 does not render edit button when blob is not text2121 uses the passed blob instead retrieve from repository2122 returns a link with the proper route2123 returns a link with the passed link_opts on the expected route2124 #relative_raw_path2125 pointing from '/file.md' to '/-/raw/main/'2126 pointing from '/test/file.md' to '/-/raw/main/test/'2127 pointing from '/another/test/file.md' to '/-/raw/main/another/test/'2128 viewer related2129 #blob_render_error_reason2130 for error :too_large2131 when the blob size is larger than the absolute size limit2132 returns an error message2133 when the blob size is larger than the size limit2134 returns an error message2135 for error :server_side_but_stored_externally2136 returns an error message2137 #blob_render_error_options2138 for error :collapsed2139 includes a "load it anyway" link2140 for error :too_large2141 does not include a "load it anyway" link2142 includes a "download it" link2143 when the viewer is rich2144 the blob is rendered as text2145 includes a "view the source" link2146 the blob is not rendered as text2147 does not include a "view the source" link2148 when the viewer is not rich2149 does not include a "view the source" link2150 for error :server_side_but_stored_externally2151 does not include a "load it anyway" link2152 does not include a "view the source" link2153 includes a "download it" link2154 #show_suggest_pipeline_creation_celebration?2155 when file is a pipeline config file2156 is true2157 file is invalid format2158 is false2159 does not use the default ci config2160 is false2161 does not have the needed cookie2162 is false2163 blob does not have auxiliary view2164 is false2165 when file is not a pipeline config file2166 is false2167 suggest_pipeline_commit_cookie_name2168 uses project id to make up the cookie name2169 #ide_edit_path2170 returns full IDE path2171 returns full IDE path with second -2172 returns IDE path without relative_url_root2173 escapes special characters2174 does not escape "/" character2175 when user is not logged in2176 returns IDE path inside the project2177 when user cannot push to the project2178 returns IDE path with the user's fork2179 #ide_merge_request_path2180 returns IDE path for the given MR if MR is not merged2181 when the MR comes from a fork2182 returns IDE path for MR in the forked repo with target project included as param2183 when the MR is merged2184 returns default IDE url with master branch2185 includes file path passed2186 when target branch exists2187 returns IDE edit url with the target branch2188 #ide_fork_and_edit_path2189 returns path to fork the repo with a redirect param to the full IDE path2190 does not include notice params with_notice: false2191 when user is not logged in2192 returns nil2193 #fork_and_edit_path2194 returns path to fork the repo with a redirect param to the full edit path2195 when user is not logged in2196 returns nil2197 #editing_ci_config?2198 when path is nil2199 is expected to be falsey2200 when path is not a ci file2201 is expected to be falsey2202 when path ends is gitlab-ci.yml2203 is expected to be truthy2204 when path ends with gitlab-ci.yml2205 is expected to be truthy2206 with custom ci paths2207 is expected to be truthy2208 with custom ci config and path2209 is expected to be truthy2210 #vue_blob_app_data2211 returns data related to blob app2212List2213 behaves like having unique enum values2214 has unique values in "list_type"2215 behaves like boards listable model2216 associations2217 is expected to validate that :position cannot be empty/falsy2218 is expected to validate that :position looks like an integer greater than or equal to 02219 when list_type is set to closed2220 is expected not to validate that :label cannot be empty/falsy2221 is expected not to validate that :position cannot be empty/falsy2222 scopes2223 .ordered2224 returns lists ordered by type and position2225 #destroyable?2226 returns true when list_type is set to label2227 returns false when list_type is set to closed2228 #movable?2229 returns true when list_type is set to label2230 returns false when list_type is set to closed2231 #title2232 returns label name when list_type is set to label2233 returns Open when list_type is set to backlog2234 returns Closed when list_type is set to closed2235 #destroy2236 can be destroyed when list_type is set to label2237 can not be destroyed when list_type is set to closed2238 behaves like list_preferences_for user2239 #preferences_for2240 when user is nil2241 returns not persisted preferences2242 when a user preference already exists2243 loads preference for user2244 when preferences for user does not exist2245 returns not persisted preferences2246 #update_preferences_for2247 when user is present2248 when there are no preferences for user2249 creates new user preferences2250 when there are preferences for user2251 updates user preferences2252 when user is nil2253 does not create user preferences2254 relationships2255 is expected to belong to board required: false2256 is expected to belong to label required: false2257 validations2258 is expected to validate that :board cannot be empty/falsy2259 is expected to validate that :label cannot be empty/falsy2260 is expected to validate that :list_type cannot be empty/falsy2261ProcessCommitWorker2262 #perform2263 does not process the commit when the project does not exist2264 does not process the commit when the user does not exist2265 is labeled as idempotent2266 performs multiple times sequentially without raising an exception2267 processes the commit message2268 updates the issue metrics2269 #process_commit_message2270 when pushing to the default branch2271 closes issues that should be closed per the commit message2272 creates cross references2273 when pushing to a non-default branch2274 does not close any issues2275 does not create cross references2276 when commit is a merge request merge commit to the default branch2277 does not close any issues from the commit message2278 still creates cross references2279 #close_issues2280 creates Issue::CloseWorker jobs2281 #update_issue_metrics2282 when commit has issue reference2283 when issue has no first_mentioned_in_commit_at set2284 updates issue metrics2285 when issue has first_mentioned_in_commit_at earlier than given committed_date2286 doesn't update issue metrics2287 when issue has first_mentioned_in_commit_at later than given committed_date2288 doesn't update issue metrics2289 when commit has no issue references2290 doesn't execute any queries with false conditions2291Gitlab::GithubImport::Importer::PullRequestImporter2292 #execute2293 imports the pull request2294 #create_merge_request2295 when the author could be found2296 imports the pull request with the pull request author as the merge request author2297 returns the created merge request2298 when the source and target branch are identical2299 uses a generated source branch name for the merge request2300 when the import fails due to a foreign key error2301 does not raise any errors2302 when the merge request already exists2303 returns the existing merge request2304 when the author could not be found2305 imports the pull request with the project creator as the merge request author2306 when merge request is invalid2307 fails validation2308 #set_merge_request_assignees2309 when pull request has an assignee2310 sets merge request assignees2311 when pull request does not have any assignees2312 does not set merge request assignees2313 #insert_git_data2314 does not create the source branch if merge request is merged2315 creates a merge request diff and sets it as the latest2316 creates the merge request diff commits2317 when merge request is open2318 creates the source branch2319 is able to retry on pre-receive errors2320 ignores Git command errors when creating a branch2321 ignores Git PreReceive errors when creating a branch2322 when the merge request exists2323 creates the merge request diffs if they do not yet exist2324Integrations::Prometheus2325 behaves like Integrations::BaseMonitoring2326 default values2327 is expected to eq :monitoring2328 redirects2329 does not follow redirects2330 Validations2331 when manual_configuration is enabled2332 does not validates presence of api_url2333 when manual configuration is disabled2334 does not validate presence of api_url2335 local connections allowed2336 does not validate presence of api_url2337 when the api_url domain points to localhost or local network2338 cannot query2339 can query when local requests are allowed2340 #test2341 success2342 reads the discovery endpoint2343 failure2344 fails to read the discovery endpoint2345 when configuration is not valid2346 returns failure message2347 #prometheus_client2348 manual configuration is enabled2349 calls valid?2350 manual configuration is disabled2351 no client provided2352 when local requests are allowed2353 allows local requests2354 when local requests are blocked2355 blocks local requests2356 behind IAP2357 includes the authorization header2358 with invalid IAP JSON2359 does not include authorization header2360 when passed with token_credential_uri2361 param_name: :token_credential_uri2362 does not make any unexpected HTTP requests2363 param_name: :tokencredentialuri2364 does not make any unexpected HTTP requests2365 param_name: :Token_credential_uri2366 does not make any unexpected HTTP requests2367 param_name: :tokenCredentialUri2368 does not make any unexpected HTTP requests2369 #prometheus_available?2370 clusters with enabled prometheus2371 cluster belongs to project2372 returns true2373 cluster belongs to projects group2374 returns true2375 avoids N+1 queries2376 cluster belongs to gitlab instance2377 returns true2378 clusters with prometheus disabled2379 returns false2380 clusters without prometheus2381 returns false2382 no clusters2383 returns false2384 #synchronize_service_state before_save callback2385 no clusters with prometheus are installed2386 when integration is inactive2387 activates integration when manual_configuration is enabled2388 keeps integration inactive when manual_configuration is disabled2389 when integration is active2390 keeps the integration active when manual_configuration is enabled2391 inactivates the integration when manual_configuration is disabled2392 with prometheus installed in the cluster2393 when integration is inactive2394 activates integration when manual_configuration is enabled2395 activates integration when manual_configuration is disabled2396 when integration is active2397 keeps integration active when manual_configuration is enabled2398 keeps integration active when manual_configuration is disabled2399 #track_events after_commit callback2400 enabling manual_configuration2401 tracks enable event2402 tracks disable event2403 #editable?2404 is editable2405 when cluster exists with prometheus enabled2406 remains editable2407 #google_iap_service_account_json2408 with valid JSON2409 masks all JSON values2410 with invalid JSON2411 value: nil2412 is expected to eq nil2413 value: ""2414 is expected to eq ""2415 value: " "2416 is expected to eq " "2417 value: "invalid json"2418 is expected to eq "invalid json"2419Gitlab::Diff::FileCollection::MergeRequestDiff2420 returns a valid instance of a DiffCollection2421 #diff_files2422 does not highlight binary files2423 does not highlight files marked as undiffable in .gitattributes2424 behaves like unfoldable diff2425 calls Gitlab::Diff::File#unfold_diff_lines with correct position2426 behaves like diff statistics2427 when include_stats is true2428 Repository#diff_stats is called2429 Gitlab::Diff::File is initialized with diff stats2430 when should not request diff stats2431 Repository#diff_stats is not called2432 behaves like cacheable diff collection2433 #write_cache2434 calls Gitlab::Diff::HighlightCache#write_if_empty2435 calls Gitlab::Diff::StatsCache#write_if_empty with diff stats2436 #clear_cache2437 calls Gitlab::Diff::HighlightCache#clear2438 calls Gitlab::Diff::StatsCache#clear2439 #diff_files2440 calls Gitlab::Diff::HighlightCache#decorate2441 when there are stats cached2442 does not make a diff stats rpc call2443 when there are no stats cached2444 makes a diff stats rpc call2445 behaves like unsortable diff files2446 #raw_diff_files2447 does not call Gitlab::Diff::FileCollectionSorter even when sorted is true2448Trigger2449 # order random2450 Trigger::Base2451 #invoke!2452 when required methods aren't defined2453 raises a NotImplementedError2454 when required methods are defined2455 waits for downstream pipeline2456 when env variable `FOO_BAR_BRANCH` does not exist2457 triggers the pipeline on the correct project and branch2458 when env variable `FOO_BAR_BRANCH` exists2459 triggers the pipeline on the correct project and branch2460 #variables2461 includes simple forwarded variables2462 #base_variables2463 when CI_COMMIT_TAG is set2464 sets GITLAB_REF_SLUG to CI_COMMIT_REF_NAME2465 when CI_COMMIT_TAG is nil2466 sets GITLAB_REF_SLUG to CI_COMMIT_REF_SLUG2467 when TRIGGERED_USER is set2468 sets TRIGGERED_USER to triggered_user2469 when TRIGGERED_USER is not set2470 sets TRIGGERED_USER to GITLAB_USER_NAME2471 when CI_COMMIT_SHA is set2472 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA2473 #version_file_variables2474 version_file: "GITALY_SERVER_VERSION", version: "1"2475 when set in ENV2476 includes the version from ENV2477 when set in a file2478 includes the version from the file2479 version_file: "GITLAB_ELASTICSEARCH_INDEXER_VERSION", version: "2"2480 when set in ENV2481 includes the version from ENV2482 when set in a file2483 includes the version from the file2484 version_file: "GITLAB_KAS_VERSION", version: "3"2485 when set in ENV2486 includes the version from ENV2487 when set in a file2488 includes the version from the file2489 version_file: "GITLAB_PAGES_VERSION", version: "4"2490 when set in ENV2491 includes the version from ENV2492 when set in a file2493 includes the version from the file2494 version_file: "GITLAB_SHELL_VERSION", version: "5"2495 when set in ENV2496 includes the version from ENV2497 when set in a file2498 includes the version from the file2499 version_file: "GITLAB_WORKHORSE_VERSION", version: "6"2500 when set in ENV2501 includes the version from ENV2502 when set in a file2503 includes the version from the file2504 Trigger::Docs2505 #variables2506 BRANCH_CE2507 when CI_PROJECT_PATH is gitlab-org/gitlab-foss2508 sets BRANCH_CE to CI_COMMIT_REF_NAME2509 BRANCH_EE2510 when CI_PROJECT_PATH is gitlab-org/gitlab2511 sets BRANCH_EE to CI_COMMIT_REF_NAME2512 BRANCH_RUNNER2513 when CI_PROJECT_PATH is gitlab-org/gitlab-runner2514 sets BRANCH_RUNNER to CI_COMMIT_REF_NAME2515 BRANCH_OMNIBUS2516 when CI_PROJECT_PATH is gitlab-org/omnibus-gitlab2517 sets BRANCH_OMNIBUS to CI_COMMIT_REF_NAME2518 BRANCH_CHARTS2519 when CI_PROJECT_PATH is gitlab-org/charts/gitlab2520 sets BRANCH_CHARTS to CI_COMMIT_REF_NAME2521 REVIEW_SLUG2522 when CI_MERGE_REQUEST_IID is set2523 sets REVIEW_SLUG2524 when CI_MERGE_REQUEST_IID is not set2525 sets REVIEW_SLUG2526 .access_token2527 when DOCS_PROJECT_API_TOKEN is set2528 returns the docs-specific access token2529 when DOCS_PROJECT_API_TOKEN is not set2530 returns the default access token2531 #invoke!2532 #downstream_project_path2533 when DOCS_PROJECT_PATH is set2534 triggers the pipeline on the correct project2535 #ref2536 when DOCS_BRANCH is set2537 triggers the pipeline on the correct ref2538 #cleanup!2539 when stopping the environment succeeds2540 displays a success message2541 when stopping the environment fails2542 displays a failure message2543 Trigger::DatabaseTesting2544 #variables2545 invokes the trigger with expected variables2546 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is set2547 sets TOP_UPSTREAM_SOURCE_SHA to ci_merge_request_source_branch_sha2548 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is set as empty2549 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA2550 when CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is not set2551 sets TOP_UPSTREAM_SOURCE_SHA to CI_COMMIT_SHA2552 #invoke!2553 invokes the trigger with expected variables2554 #downstream_project_path2555 when GITLABCOM_DATABASE_TESTING_PROJECT_PATH is set2556 triggers the pipeline on the correct project2557 #ref2558 when GITLABCOM_DATABASE_TESTING_TRIGGER_REF is set2559 triggers the pipeline on the correct ref2560 when no MR notes with the identifier exist yet2561 posts a new note2562 Trigger::CNG2563 #variables2564 does not include redundant variables2565 invokes the trigger with expected variables2566 TRIGGER_BRANCH2567 when CNG_BRANCH is not set2568 sets TRIGGER_BRANCH to master2569 sets TRIGGER_BRANCH to main-jh on JH side2570 when CNG_BRANCH is set2571 sets TRIGGER_BRANCH to cng_branch2572 when CI_COMMIT_REF_NAME is a stable branch2573 sets TRIGGER_BRANCH to the corresponding stable branch2574 when CI_COMMIT_REF_NAME is a stable branch on JH side2575 sets TRIGGER_BRANCH to the corresponding stable branch2576 GITLAB_VERSION2577 when CI_COMMIT_SHA is set2578 sets GITLAB_VERSION to CI_COMMIT_SHA2579 GITLAB_TAG2580 when CI_COMMIT_TAG is set2581 sets GITLAB_TAG to true2582 when CI_COMMIT_TAG is nil2583 sets GITLAB_TAG to nil2584 CE_PIPELINE2585 when Trigger.ee? is true2586 sets CE_PIPELINE to nil2587 when Trigger.ee? is false2588 sets CE_PIPELINE to true2589 EE_PIPELINE2590 when Trigger.ee? is true2591 sets EE_PIPELINE to true2592 when Trigger.ee? is false2593 sets EE_PIPELINE to nil2594 GITLAB_REF_SLUG2595 when CI_COMMIT_TAG is set2596 sets GITLAB_REF_SLUG to CI_COMMIT_REF_NAME2597 when CI_COMMIT_TAG is nil2598 sets GITLAB_REF_SLUG to CI_COMMIT_SHA2599 #version_param_value2600 raw_version: "1.2.3", expected_version: "v1.2.3"2601 when set in ENV2602 includes the version from ENV2603 raw_version: "1.2.3-rc1", expected_version: "v1.2.3-rc1"2604 when set in ENV2605 includes the version from ENV2606 raw_version: "1.2.3-ee", expected_version: "v1.2.3-ee"2607 when set in ENV2608 includes the version from ENV2609 raw_version: "1.2.3-rc1-ee", expected_version: "v1.2.3-rc1-ee"2610 when set in ENV2611 includes the version from ENV2612PostReceiveService2613 when project is nil2614 does not return error2615 behaves like does not record an onboarding progress action2616 is expected not to receive new(*(any args)) 0 times2617 when repository is nil2618 does not return error2619 when both repository and project are nil2620 does not return error2621 with Project2622 returns link to create new merge request2623 returns the link to an existing merge request when it exists2624 does not invoke MergeRequests::PushOptionsHandlerService2625 behaves like post_receive_service actions2626 enqueues a PostReceive worker job2627 decreases the reference counter and returns the result2628 behaves like records an onboarding progress action2629 is expected to receive execute({:action=>:git_write}) 1 time2630 when printing_merge_request_link_enabled is false2631 returns no merge request messages2632 when there are merge_request push options2633 invalidates the branch name cache2634 invokes MergeRequests::PushOptionsHandlerService2635 creates a new merge request2636 links to the newly created merge request2637 adds errors on the service instance to warnings2638 adds ActiveRecord errors on invalid MergeRequest records to warnings2639 with PersonalSnippet2640 does not return link to create new merge request2641 does not return the link to an existing merge request when it exists2642 behaves like post_receive_service actions2643 enqueues a PostReceive worker job2644 decreases the reference counter and returns the result2645 behaves like records an onboarding progress action2646 is expected to receive execute({:action=>:git_write}) 1 time2647 with ProjectSnippet2648 does not return link to create new merge request2649 does not return the link to an existing merge request when it exists2650 behaves like post_receive_service actions2651 enqueues a PostReceive worker job2652 decreases the reference counter and returns the result2653 behaves like records an onboarding progress action2654 is expected to receive execute({:action=>:git_write}) 1 time2655 broadcast message banner exists2656 outputs a broadcast message when show_in_cli is true2657 does not output a broadcast message when show_in_cli is false2658 broadcast message notification exists2659 does not output a broadcast message2660 broadcast message does not exist2661 does not output a broadcast message2662 nil broadcast message2663 does not output a broadcast message2664 broadcast message has a target_path2665 no project path matches2666 does not output the scoped broadcast messages2667 does output another message that doesn't have a target_path2668 project path matches2669 does output the latest scoped broadcast message2670 does not output the older scoped broadcast message2671 does not output another message that doesn't have a target_path2672 with a redirected data2673 returns redirected message on the response2674 with new project data2675 returns new project message on the response2676 #process_mr_push_options2677 when repository belongs to a snippet2678 with PersonalSnippet2679 returns an error message2680 with ProjectSnippet2681 returns an error message2682 #merge_request_urls2683 when repository belongs to a snippet2684 with PersonalSnippet2685 returns an empty array2686 with ProjectSnippet2687 returns an empty array2688Ci::PipelinesForMergeRequestFinder2689 #execute2690 when actor has permission to read pipelines in both parent and forked projects2691 returns all pipelines2692 when actor has permission to read pipelines in both parent and forked projects2693 returns all pipelines2694 when actor has permission to read pipelines in the parent project only2695 returns pipelines in parent2696 when actor has permission to read pipelines in the forked project only2697 returns pipelines in fork2698 when actor does not have permission to read pipelines2699 returns nothing2700 when actor is nil2701 returns nothing2702 #all2703 with single merge_request_diffs2704 behaves like returning pipelines with proper ordering2705 returns all pipelines2706 with multiple irrelevant merge_request_diffs2707 behaves like returning pipelines with proper ordering2708 returns all pipelines2709 with unsaved merge request2710 returns pipelines from diff_head_sha2711 when pipelines exist for the branch and merge request2712 returns merge request pipeline first2713 when there are a branch pipeline and a merge request pipeline2714 returns merge request pipelines first2715 when there are multiple merge request pipelines from the same branch2716 returns only related merge request pipelines2717 when detached merge request pipeline is run on head ref of the merge request2718 sets the head ref of the merge request to the pipeline ref2719 includes the detached merge request pipeline even though the ref is custom path2720PipelineDetailsEntity2721 inherits from PipelineEntity2722 #as_json2723 when pipeline is empty2724 contains details2725 contains flags2726 when disable_manual_and_scheduled_actions is true2727 does not contain manual and scheduled actions2728 when pipeline has manual builds2729 sets :has_manual_actions to true2730 when pipeline is retryable2731 user has ability to retry pipeline2732 retryable flag is true2733 user does not have ability to retry pipeline2734 retryable flag is false2735 when pipeline is cancelable2736 user has ability to cancel pipeline2737 cancelable flag is true2738 user does not have ability to cancel pipeline2739 cancelable flag is false2740 when pipeline has commit statuses2741 contains stages2742 when pipeline has YAML errors2743 contains information about error2744 contains flag that indicates there are errors2745 when pipeline does not have YAML errors2746 does not contain field that normally holds an error2747 contains flag that indicates there are no errors2748 when pipeline is triggered by other pipeline2749 contains an information about depedent pipeline2750 when pipeline triggered other pipeline2751 contains an information about dependent pipeline2752Types::Ci::JobTokenScopeType2753 is expected to eq "CiJobTokenScopeType"2754 has the correct fields2755 query2756 without access to scope2757 returns no projects2758 with access to scope2759 when multiple projects in the allow lists2760 when linked projects are readable2761 behaves like returns projects2762 returns readable projects in scope2763 when job token scope is disabled2764 behaves like returns projects2765 returns readable projects in scope2766 when linked projects are not readable2767 returns readable projects in scope2768 when job token scope is disabled2769 does not return an error2770 returns readable projects in scope2771ApplicationExperiment2772 registers a default control behavior for anonymous experiments2773 #publish2774 tracks the assignment2775 adds to the published experiments2776 #track2777 doesn't track if we shouldn't track2778 tracks the event with the expected arguments and merged contexts2779 when using known context resources2780 includes those using the gitlab standard context2781 falls back to using the group key2782 with the actor key2783 provides it to the tracking call as the user2784 handles when it's not a user record2785 #key_for2786 generates FIPS compliant SHA2 hashes2787 falls back to legacy MD5 when FIPS isn't forced2788 #process_redirect_url2789 generates the correct urls based on where the engine was mounted2790 url: "https://about.gitlab.com/", processed_url: "https://about.gitlab.com/"2791 returns the url or nil if invalid on SaaS2792 considers all urls invalid when not on SaaS2793 url: "https://gitlab.com/", processed_url: "https://gitlab.com/"2794 returns the url or nil if invalid on SaaS2795 considers all urls invalid when not on SaaS2796 url: "http://docs.gitlab.com", processed_url: "http://docs.gitlab.com"2797 returns the url or nil if invalid on SaaS2798 considers all urls invalid when not on SaaS2799 url: "https://docs.gitlab.com/some/path?foo=bar", processed_url: "https://docs.gitlab.com/some/path?foo=bar"2800 returns the url or nil if invalid on SaaS2801 considers all urls invalid when not on SaaS2802 url: "http://badgitlab.com", processed_url: nil2803 returns the url or nil if invalid on SaaS2804 considers all urls invalid when not on SaaS2805 url: "https://gitlab.com.nefarious.net", processed_url: nil2806 returns the url or nil if invalid on SaaS2807 considers all urls invalid when not on SaaS2808 url: "https://unknown.gitlab.com", processed_url: nil2809 returns the url or nil if invalid on SaaS2810 considers all urls invalid when not on SaaS2811 url: "https://badplace.com\nhttps://gitlab.com", processed_url: nil2812 returns the url or nil if invalid on SaaS2813 considers all urls invalid when not on SaaS2814 url: "https://gitlabbcom", processed_url: nil2815 returns the url or nil if invalid on SaaS2816 considers all urls invalid when not on SaaS2817 url: "https://gitlabbcom/", processed_url: nil2818 returns the url or nil if invalid on SaaS2819 considers all urls invalid when not on SaaS2820 url: "http://gdk.test/foo/bar", processed_url: "http://gdk.test/foo/bar"2821 returns the url or nil if invalid on SaaS2822 considers all urls invalid when not on SaaS2823 url: "http://localhost:3000/foo/bar", processed_url: "http://localhost:3000/foo/bar"2824 returns the url or nil if invalid on SaaS2825 considers all urls invalid when not on SaaS2826 when resolving variants2827 returns an assigned name2828 when nesting experiments2829 doesn't raise an exception2830 tracks an event2831 when caching2832 caches the variant determined by the variant resolver2833 doesn't cache a variant if we don't explicitly provide one2834 caches a control variant if we assign it specifically2835 arbitrary attributes2836 sets and gets attributes about an experiment2837 increments a value for an experiment2838 with deprecation warnings2839 doesn't warn on non dev/test environments2840 warns on dev and test environments2841ProtectedBranches::CacheService2842 with entity project2843 behaves like execute with entity2844 #fetch2845 caches the value2846 sets expiry on the key2847 does not set an expiry on the key after the hash is already created2848 when CACHE_LIMIT is exceeded2849 recreates cache2850 when dry_run is on2851 does not use cached value2852 when cache mismatch2853 logs an error2854 when cache matches2855 does not log an error2856 #refresh2857 clears cached values2858 metrics2859 records hit ratio metrics2860 with entity group2861 when feature flag enabled2862 behaves like execute with entity2863 #fetch2864 caches the value2865 sets expiry on the key2866 does not set an expiry on the key after the hash is already created2867 when CACHE_LIMIT is exceeded2868 recreates cache2869 when dry_run is on2870 does not use cached value2871 when cache mismatch2872 logs an error2873 when cache matches2874 does not log an error2875 #refresh2876 clears cached values2877 metrics2878 records hit ratio metrics2879 when feature flag disabled2880 behaves like execute with entity2881 #fetch2882 caches the value2883 sets expiry on the key2884 does not set an expiry on the key after the hash is already created2885 when CACHE_LIMIT is exceeded2886 recreates cache2887 when dry_run is on2888 does not use cached value2889 when cache mismatch2890 logs an error2891 when cache matches2892 does not log an error2893 #refresh2894 clears cached values2895 metrics2896 records hit ratio metrics2897layouts/application2898 behaves like a layout which reflects the application theme setting2899 as a themed layout2900 when no theme is explicitly selected2901 renders with the default theme2902 when user is authenticated & has selected a specific theme2903 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">2904 renders with the Indigo theme2905 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">2906 renders with the Light Indigo theme2907 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">2908 renders with the Blue theme2909 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">2910 renders with the Light Blue theme2911 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">2912 renders with the Green theme2913 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">2914 renders with the Light Green theme2915 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">2916 renders with the Red theme2917 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">2918 renders with the Light Red theme2919 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">2920 renders with the Gray theme2921 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">2922 renders with the Light Gray theme2923 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">2924 renders with the Dark Mode (alpha) theme2925 behaves like a layout which reflects the preferred language2926 when changing the a preferred language2927 renders the correct `lang` attribute in the html element2928 visual review toolbar2929 ENV['REVIEW_APPS_ENABLED'] is set to true2930 renders the visual review toolbar2931 ENV['REVIEW_APPS_ENABLED'] is set to false2932 does not render the visual review toolbar2933 body data elements for pageview context2934 includes the body element page2935 includes the body element page_type_id2936 includes the body element project_id2937 includes the body element namespace_id2938Packages::PackageFileUploader2939 behaves like builds correct paths2940 #store_dir2941 behaves like matches the method pattern2942 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/\d+\/files\/\d+$/2943 #cache_dir2944 behaves like matches the method pattern2945 is expected to match /\/packages\/tmp\/cache/2946 #work_dir2947 behaves like matches the method pattern2948 is expected to match /\/packages\/tmp\/work/2949 #upload_path2950 behaves like matches the method pattern2951 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2952 #relative_path2953 is relative (PENDING: Path not set, skipping.)2954 .absolute_path2955 behaves like matches the method pattern2956 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2957 .base_dir2958 behaves like matches the method pattern2959 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2960 path traversal exploits2961 throws an exception2962 object store is remote2963 behaves like builds correct paths2964 #store_dir2965 behaves like matches the method pattern2966 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/\d+\/files\/\d+$/2967 #cache_dir2968 behaves like matches the method pattern2969 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2970 #work_dir2971 behaves like matches the method pattern2972 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2973 #upload_path2974 behaves like matches the method pattern2975 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2976 #relative_path2977 is relative (PENDING: Path not set, skipping.)2978 .absolute_path2979 behaves like matches the method pattern2980 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2981 .base_dir2982 behaves like matches the method pattern2983 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2984 path traversal exploits2985 throws an exception2986 remote file2987 with object storage enabled2988 can store file remotely2989Gitlab::Ci::Variables::Builder::Pipeline2990 # order random2991 #predefined_variables2992 includes all predefined variables in a valid order2993 when the pipeline is running for a tag2994 includes all predefined variables in a valid order2995 when merge request is present2996 when pipeline for merge request is created2997 exposes merge request pipeline variables2998 exposes diff variables2999 without assignee3000 does not expose assignee variable3001 without milestone3002 does not expose milestone variable3003 without labels3004 does not expose labels variable3005 when pipeline on branch is created3006 when a merge request is created3007 when user has access to project3008 merge request references are returned matching the pipeline3009 when user does not have access to project3010 CI_OPEN_MERGE_REQUESTS is not returned3011 when no a merge request is created3012 CI_OPEN_MERGE_REQUESTS is not returned3013 with merged results3014 exposes merge request pipeline variables3015 exposes diff variables3016 when source is external pull request3017 exposes external pull request pipeline variables3018 variable CI_KUBERNETES_ACTIVE3019 when pipeline.has_kubernetes_active? is true3020 is included with value 'true'3021 when pipeline.has_kubernetes_active? is false3022 is not included3023 variable CI_GITLAB_FIPS_MODE3024 when FIPS flag is enabled3025 is included with value 'true'3026 when FIPS flag is disabled3027 is not included3028 when tag is not found3029 does not expose tag variables3030 without a commit3031 does not expose commit variables3032GoogleCloud::GeneratePipelineService3033 for cloud-run3034 when there is no existing pipeline3035 creates a new branch with commit for cloud-run deployment3036 generated pipeline includes cloud-run deployment3037 simulate errors3038 fails to create branch3039 fails to commit changes3040 when there is an existing pipeline without `deploy` stage3041 introduces a `deploy` stage and includes the deploy-to-cloud-run job3042 stringifies keys from the existing pipelines3043 when there is an existing pipeline with `deploy` stage3044 includes the deploy-to-cloud-run job3045 when there is an existing pipeline with `includes`3046 includes the deploy-to-cloud-run job3047 for cloud-storage3048 when there is no existing pipeline3049 creates a new branch with commit for cloud-storage deployment3050 generated pipeline includes cloud-storage deployment3051 for vision ai3052 when there is no existing pipeline3053 creates a new branch with commit for cloud-run deployment3054 generated pipeline includes vision ai deployment3055 simulate errors3056 fails to create branch3057 fails to commit changes3058 when there is an existing pipeline with `includes`3059 includes the vision ai pipeline3060Gitlab::SidekiqMiddleware::DuplicateJobs::DuplicateJob3061 #schedule3062 behaves like scheduling with deduplication class3063 calls schedule on the strategy3064 when the deduplication depends on a FF3065 when the feature flag is enabled3066 behaves like scheduling with deduplication class3067DEPRECATION WARNING: Invalid Feature Flag my_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)3068 calls schedule on the strategy3069 when the feature flag is disabled3070 behaves like scheduling with deduplication class3071DEPRECATION WARNING: Invalid Feature Flag my_feature_flag stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:39)3072 calls schedule on the strategy3073 #perform3074 calls perform on the strategy3075 with Redis cookies3076 #check!3077 when there was no job in the queue yet3078 is expected to eq "123"3079 adds the idempotency key to the jobs payload3080 when TTL option is not set3081 behaves like sets Redis keys with correct TTL3082 adds an idempotency key with correct ttl3083 when TTL option is set3084 behaves like sets Redis keys with correct TTL3085 adds an idempotency key with correct ttl3086 when there was already a job with same arguments in the same queue3087 is expected to eq "existing-jid"3088 does not change the existing key's TTL3089 sets the existing jid3090 #update_latest_wal_location!3091 stores a wal location to redis with an offset relative to existing wal location3092 UPDATE_WAL_COOKIE_SCRIPT3093 does not create the key3094 when the key exists3095 updates all connections3096 preserves the ttl3097 does not try to set an invalid ttl at the end of expiry3098 and low offsets3099 updates only some connections3100 when a WAL location is nil with existing offsets3101 only updates the main connection3102 #latest_wal_locations3103 when job was deduplicated and wal locations were already persisted3104 is expected to eq {"ci"=>"def", "main"=>"abc"}3105 when job is not deduplication and wal locations were not persisted3106 is expected to be empty3107 #delete!3108 when we didn't track the definition3109 is expected not to raise Exception3110 when the key exists in redis3111 when the idempotency key is not part of the job3112 recalculates the idempotency hash3113 behaves like deleting the duplicate job3114 behaves like deleting keys from redis3115 removes the cookie key from redis3116 when the idempotency key is part of the job3117 does not recalculate the idempotency hash3118 behaves like deleting the duplicate job3119 behaves like deleting keys from redis3120 removes the cookie key from redis3121 #set_deduplicated_flag!3122 when the job is reschedulable3123 sets the key in Redis3124 sets, gets and cleans up the deduplicated flag3125 when the job is not reschedulable3126 does not set the key in Redis3127 does not set the deduplicated flag3128 #duplicate?3129 raises an error if the check wasn't performed3130 returns false if the existing jid equals the job jid3131 returns true if the existing jid is different from the job jid3132 #scheduled?3133 returns false for non-scheduled jobs3134 scheduled jobs3135 returns true3136 #reschedule3137 reschedules the current job3138 #should_reschedule?3139 when the job is reschedulable3140 is expected to eq false3141 with deduplicated flag3142 is expected to eq true3143 when the job is not reschedulable3144 is expected to eq false3145 with deduplicated flag3146 is expected to eq false3147 #scheduled_at3148 returns when the job is scheduled at3149 #options3150 returns worker options3151 #idempotent?3152 when worker class does not exist3153 returns false3154 when worker class does not respond to #idempotent?3155 returns false3156 when worker class is not idempotent3157 returns false3158 when worker class is idempotent3159 returns true3160 when worker class is utilizing load balancing capabilities3161 returns true3162StageEntity3163 #as_json3164 contains relevant fields3165 contains detailed status3166 contains valid name3167 contains path to the stage3168 contains path to the stage dropdown3169 contains stage title3170 does not contain play_details info3171 when the jobs should be grouped3172 exposes the group key3173 and contains commit status3174 contains commit status3175 with a skipped stage3176 does not contain play_all_manual3177 with a scheduled stage3178 contains play_all_manual3179 with a manual stage3180 contains play_all_manual3181Ci::Variable3182 behaves like CI variable3183 is expected to includes the Ci::HasVariable module3184 strips whitespaces when assigning key3185 can convert to runner variable3186 variable type3187 defines variable types3188 defaults variable type to env_var3189 supports variable type file3190 behaves like includes Limitable concern3191 #exceeds_limits?3192 without plan limits configured3193 is expected to eq false3194 without plan limits configured3195 is expected to eq false3196 with an existing model3197 is expected to eq true3198 validations3199 is expected to be a kind of Limitable3200 without plan limits configured3201 can create new models3202 with plan limits configured3203 can create new models3204 with an existing model3205 cannot create new models exceeding the plan limits3206 validations3207 is expected to includes the Presentable module3208 is expected to includes the Ci::Maskable module3209 is expected to includes the HasEnvironmentScope module3210 is expected to validate that :key is case-sensitively unique within the scope of :project_id and :environment_scope, producing a custom validation error on failure3211 is expected to allow :description to be ‹""›3212 is expected to allow :description to be ‹nil›3213 is expected to validate that the length of :description is at most 2553214 .by_environment_scope3215 is expected to contain exactly #<Ci::Variable id: 56, key: [FILTERED], value: nil, encrypted_value: "Xfh4ZIeD98n/C41V+qAfxw==\n", en...ironment_scope: "production", masked: false, variable_type: "env_var", raw: false, description: nil>3216 .unprotected3217 when variable is protected3218 returns nothing3219 when variable is not protected3220 returns the variable3221 loose foreign key on ci_variables.project_id3222 behaves like cleanup by a loose foreign key3223 cleans up (delete or nullify) the model3224 #audit_details3225 equals to the variable's key3226Projects::AutoDevops::DisableService#execute3227 when Auto DevOps disabled at instance level3228 is expected to be falsy3229 when Auto DevOps enabled at instance level3230 when Auto DevOps explicitly enabled on project3231 is expected to be falsy3232 when Auto DevOps explicitly disabled on project3233 is expected to be falsy3234 when Auto DevOps is implicitly enabled3235 when is the first pipeline failure3236 disables Auto DevOps for project3237 when it is not the first pipeline failure3238 explicitly disables Auto DevOps for project3239 when an Auto DevOps pipeline has succeeded before3240 does not disable Auto DevOps for project3241 when project does not have an Auto DevOps record related3242 disables Auto DevOps for project3243 creates a ProjectAutoDevops record3244Types::UserInterface3245 is expected to eq "User"3246 is expected to require graphql authorizations :read_user3247 has the expected fields3248 name field3249 user requests3250 a user3251 returns name3252 a project bot3253 when requester is nil3254 returns nothing3255 when the requester is not a project member3256 returns `Project bot` for a non project member in a public project3257 in a private project3258 returns `****` for a non project member in a private project3259 with a project member3260 returns `Project bot` for a project member3261 in a private project3262 returns `Project bot` for a project member in a private project3263 a group bot3264 when requester is nil3265 returns nothing3266 when the requester is not a group member3267 returns `Group bot` for a non group member in a public group3268 in a private group3269 returns `****` for a non group member in a private group3270 with a group member3271 returns `Group bot` for a group member3272 in a private group3273 returns `Group bot` for a group member in a private group3274 admin requests3275 a user3276 returns name3277 a project bot3278 returns name3279 a group bot3280 returns name3281 snippets field3282 returns snippets3283 callouts field3284 returns user callouts3285 timelogs field3286 returns user timelogs3287 emails field3288 returns user emails3289 namespaceCommitEmails field3290 returns user namespace_commit_emails3291 ide field3292 returns ide3293 code suggestions enabled3294 returns code suggestions enabled3295MergeRequests::ExportCsvService3296 csv_data3297 contains the correct information3298 assignees3299 when assigned3300 contains the names of assignees3301 contains the usernames of assignees3302 when not assigned3303 returns empty strings3304 approvers3305 when approved3306 contains the names of approvers separated by a comma3307 contains the usernames of approvers separated by a comma3308 when not approved3309 returns empty strings3310 merged user3311 MR is merged3312 is merged3313 has a merged user3314 MR is not merged3315 returns empty strings3316 milestone3317 milestone is assigned3318 contains the milestone ID3319 no milestone is assigned3320 returns an empty string3321 #email3322 emails csv3323 renders with a target filesize3324Gitlab::Database::LoadBalancing::SidekiqServerMiddleware3325 #call3326 when worker class does not include WorkerAttributes3327 sticks to the primary3328 sets load balancing strategy to primary3329 when job contains wrapped worker class3330 uses wrapped job if available3331 when worker data consistency is :always3332 sticks to the primary3333 sets load balancing strategy to primary3334 when delay interval has not elapsed3335 does not sleep3336 when worker data consistency is :delayed3337 when database wal location is set3338 behaves like replica is up to date3339 does not stick to the primary3340 sets load balancing strategy to replica3341 when deduplication wal location is set3342 behaves like replica is up to date3343 does not stick to the primary3344 sets load balancing strategy to replica3345 when database location is not set3346 sticks to the primary3347 sets load balancing strategy to primary_no_wal3348 when WAL locations are blank3349 does not sleep3350 when WAL locations are present3351 when delay interval has not elapsed3352 when replica is up to date3353 does not sleep3354 when replica is not up to date3355 sleeps until the minimum delay is reached3356 when replica is never not up to date3357 sleeps until the maximum delay is reached3358 when replica is not up to date3359 when job is executed first3360 raises an error and retries3361 sets load balancing strategy to retry3362 when job is retried3363 and replica still lagging behind3364 sticks to the primary3365 sets load balancing strategy to primary3366 and replica is now up-to-date3367 does not stick to the primary3368 sets load balancing strategy to replica_retried3369 when worker data consistency is :sticky3370 when database wal location is set3371 behaves like replica is up to date3372 does not stick to the primary3373 sets load balancing strategy to replica3374 when deduplication wal location is set3375 behaves like replica is up to date3376 does not stick to the primary3377 sets load balancing strategy to replica3378 when database location is not set3379 sticks to the primary3380 sets load balancing strategy to primary_no_wal3381 when WAL locations are blank3382 does not sleep3383 when WAL locations are present3384 when delay interval has not elapsed3385 when replica is up to date3386 does not sleep3387 when replica is not up to date3388 sleeps until the minimum delay is reached3389 when replica is never not up to date3390 sleeps until the maximum delay is reached3391 when replica is not up to date3392 sticks to the primary3393 sets load balancing strategy to primary3394 #databases_in_sync?3395 treats load balancers without WAL entries as in sync3396 returns true when all load balancers are in sync3397 returns false when the load balancers are not in sync3398 when locations have string keys3399 returns false when the load balancers are not in sync3400Gitlab::Middleware::Multipart3401 #call3402 remote file mode3403 behaves like handling all upload parameters conditions3404 one root parameter3405 builds an UploadedFile3406 two root parameters3407 builds UploadedFiles3408 one nested parameter3409 builds an UploadedFile3410 two nested parameters3411 builds UploadedFiles3412 one deeply nested parameter3413 builds an UploadedFile3414 two deeply nested parameters3415 builds UploadedFiles3416 three parameters nested at different levels3417 builds UploadedFiles3418 and a path set3419 builds an UploadedFile3420 local file mode3421 behaves like handling all upload parameters conditions3422 one root parameter3423 builds an UploadedFile3424 two root parameters3425 builds UploadedFiles3426 one nested parameter3427 builds an UploadedFile3428 two nested parameters3429 builds UploadedFiles3430 one deeply nested parameter3431 builds an UploadedFile3432 two deeply nested parameters3433 builds UploadedFiles3434 three parameters nested at different levels3435 builds UploadedFiles3436 when file is3437 in allowed paths3438 builds an UploadedFile3439 not in allowed paths3440 returns an error3441 with dummy params in remote mode3442 with an invalid secret3443 is expected to raise JWT::VerificationError3444 with an invalid issuer3445 is expected to raise JWT::InvalidIssuerError3446 with invalid rewritten field key3447 [file]3448 is expected to raise RuntimeError with "invalid field: \"[file]\""3449 ;file3450 is expected to raise RuntimeError with "invalid field: \";file\""3451 file]3452 is expected to raise RuntimeError with "invalid field: \"file]\""3453 ;file]3454 is expected to raise RuntimeError with "invalid field: \";file]\""3455 file]]3456 is expected to raise RuntimeError with "invalid field: \"file]]\""3457 file;;3458 is expected to raise RuntimeError with "invalid field: \"file;;\""3459 with an invalid upload key3460 behaves like rejecting the invalid key3461 raises an error3462 behaves like rejecting the invalid key3463 raises an error3464 behaves like rejecting the invalid key3465 raises an error3466 behaves like rejecting the invalid key3467 raises an error3468 behaves like rejecting the invalid key3469 raises an error3470 behaves like rejecting the invalid key3471 raises an error3472 behaves like rejecting the invalid key3473 raises an error3474 with a modified JWT payload3475 raises an error3476 with a modified JWT sig3477 raises an error3478Mutations::Issues::SetConfidential3479 is expected to require graphql authorizations :update_issue3480 #resolve3481 behaves like permission level for issue mutation is correctly verified3482 when the user is not a project member3483 behaves like when the user does not have access to the resource3484 raises an error3485 even if assigned to the issue3486 does not modify issue3487 even if author of the issue3488 does not modify issue3489 when the user is a project member3490 with guest role3491 behaves like when the user does not have access to the resource3492 raises an error3493 even if assigned to the issue3494 does not modify issue3495 even if author of the issue3496 does not modify issue3497 when the user can update the issue3498 returns the issue as confidential3499 when passing confidential as false3500 updates the issue confidentiality to false3501 when guest user is an assignee3502 does not change issue confidentiality3503DeployKeys::BasicDeployKeyEntity3504 does not return an owner payload with_owner option not passed in3505 returns deploy keys3506 is expected to eq {:almost_orphaned=>false, :can_edit=>false, :created_at=>2023-07-27 04:41:17.556060759 +0000, :destro...4", :id=>5, :title=>"My title 482", :updated_at=>2023-07-27 04:41:17.556060759 +0000, :user_id=>nil}3507 user is an admin3508 when admin mode is enabled3509 is expected to include {:can_edit => true}3510 when admin mode is disabled3511 is expected not to include {:can_edit => true}3512 user is a project maintainer3513 project deploy key3514 is expected to include {:can_edit => true}3515 public deploy key3516 is expected to include {:can_edit => true}3517 with_owner option3518 does not return an owner payload when it is set to false3519 when with_owner is set to true3520 returns an owner payload3521 does not return an owner if current_user cannot read the owner3522SystemNotes::CommitService3523 #add_commits3524 behaves like a system note3525 has the correct attributes3526 note body3527 comparison diff link line3528 adds the comparison text3529 without existing commits3530 adds a message header3531 adds a message for each commit3532 with HTML content3533 escapes HTML titles3534 with one commit exceeding the NEW_COMMIT_DISPLAY_LIMIT3535 includes the truncated new commits summary3536 with oldrev3537 includes the truncated new commits summary with the oldrev3538 with multiple commits exceeding the NEW_COMMIT_DISPLAY_LIMIT3539 includes the truncated new commits summary3540 with oldrev3541 includes the truncated new commits summary with the oldrev3542 summary line for existing commits3543 with one existing commit3544 includes the existing commit3545 with new commits exceeding the display limit3546 includes the existing commit as well as the truncated new commit summary3547 with multiple existing commits3548 with oldrev3549 includes a commit range and count3550 with new commits exceeding the display limit3551 includes the existing commit as well as the truncated new commit summary3552 without oldrev3553 includes a commit range and count3554 with new commits exceeding the display limit3555 includes the existing commit as well as the truncated new commit summary3556 on a fork3557 includes the project namespace3558 #tag_commit3559 sets the note text3560 behaves like a system note3561 has the correct attributes3562Gitlab::Ci::Pipeline::Expression::Lexeme::And3563 .build3564 creates a new instance of the token3565 with non-evaluable operands3566 raises an operator error3567 .type3568 is an operator3569 .precedence3570 has a precedence3571 #evaluate3572 when left and right are truthy3573 left_value: true, right_value: 13574 is expected to be truthy3575 is expected to eq 13576 left_value: true, right_value: "a"3577 is expected to be truthy3578 is expected to eq "a"3579 left_value: 1, right_value: true3580 is expected to be truthy3581 is expected to eq true3582 left_value: 1, right_value: "a"3583 is expected to be truthy3584 is expected to eq "a"3585 left_value: "a", right_value: true3586 is expected to be truthy3587 is expected to eq true3588 left_value: "a", right_value: 13589 is expected to be truthy3590 is expected to eq 13591 when left or right is falsey3592 left_value: true, right_value: false3593 is expected to be falsey3594 left_value: true, right_value: nil3595 is expected to be falsey3596 left_value: false, right_value: true3597 is expected to be falsey3598 left_value: false, right_value: nil3599 is expected to be falsey3600 left_value: nil, right_value: true3601 is expected to be falsey3602 left_value: nil, right_value: false3603 is expected to be falsey3604 when left and right are falsey3605 left_value: false, right_value: nil3606 is expected to be falsey3607 is expected to eq false3608 left_value: nil, right_value: false3609 is expected to be falsey3610 is expected to eq nil3611Labels::TransferService3612 behaves like transfer labels3613 #execute3614 recreates missing group labels at project level and assigns them to the issuables3615 recreates missing ancestor group labels at project level and assigns them to the issuables3616 recreates label priorities related to the missing group labels3617 does not recreate missing group labels that are not applied to issues or merge requests3618 does not recreate missing group labels that already exist in the project group3619 updates only label links in the given project3620 when moving within the same ancestor group3621 does not recreate ancestor group labels3622WebHookLog3623 is expected to belong to web_hook required: false3624 is expected to serialize :request_headers class_name => Hash3625 is expected to serialize :request_data class_name => Hash3626 is expected to serialize :response_headers class_name => Hash3627 is expected to validate that :web_hook cannot be empty/falsy3628 .recent3629 does not return web hook logs that are too old3630 returns the web hook logs in descending order3631 #save3632 with basic auth credentials3633 is expected to eq true3634 obfuscates the basic auth credentials3635 with users' emails3636 redacts users' emails3637 before_save3638 #set_url_hash3639 when interpolated_url is nil3640 is expected not to change `web_hook_log.url_hash`3641 when interpolated_url has a blank value3642 is expected not to change `web_hook_log.url_hash`3643 when interpolated_url has a value3644 assigns correct digest value3645 .delete_batch_for3646 does not loop forever3647 when the batch size is less than one3648 raises an argument error3649 when the batch size is smaller than the total3650 is expected to equal true3651 deletes min(batch_size, total) records3652 when the batch size is equal to the total3653 is expected to equal true3654 deletes min(batch_size, total) records3655 when the batch size is greater than the total3656 is expected to equal false3657 deletes min(batch_size, total) records3658 #success?3659 2xx3660 is expected to be truthy3661 not 2xx3662 is expected to be falsey3663 internal erorr3664 is expected to be falsey3665 #internal_error?3666 when response status is not an internal error3667 is expected to be falsey3668 when response status is an internal error3669 is expected to be truthy3670 #request_headers3671 with redacted headers token3672 is expected to eq {"X-Gitlab-Token"=>"[REDACTED]"}3673 with exposed headers token3674 is expected to eq {"X-Gitlab-Token"=>"[REDACTED]"}3675Packages::Maven::Metadata::SyncService3676 #execute3677 permissions3678 role: :anonymous, expected_result: :rejected3679 behaves like returning an error service response3680 returns an error service response3681 role: :developer, expected_result: :rejected3682 behaves like returning an error service response3683 returns an error service response3684 role: :maintainer, expected_result: :accepted3685 behaves like returning a success service response3686 returns a success service response3687 with a maintainer3688 with a jar package3689 with no changes3690 behaves like returning a success service response3691 returns a success service response3692 with changes3693 behaves like returning a success service response3694 returns a success service response3695 with empty versions3696 behaves like returning a success service response3697 returns a success service response3698 with a too big maven metadata file for versions3699 behaves like returning an error service response3700 returns an error service response3701 an error from the create versions xml service3702 behaves like returning an error service response3703 returns an error service response3704 an error from the append package file service3705 behaves like returning an error service response3706 returns an error service response3707 without a package name3708 behaves like returning an error service response3709 returns an error service response3710 without a versionless package for version3711 behaves like returning a success service response3712 returns a success service response3713 without a metadata package file for versions3714 behaves like returning a success service response3715 returns a success service response3716 without a project3717 behaves like returning an error service response3718 returns an error service response3719 with a maven plugin package3720 with no changes3721 behaves like returning a success service response3722 returns a success service response3723 with changes in the versions xml3724 behaves like returning a success service response3725 returns a success service response3726 with changes in the plugin xml3727 behaves like returning a success service response3728 returns a success service response3729 with empty versions3730 behaves like returning a success service response3731 returns a success service response3732 with a too big maven metadata file for plugins3733 behaves like returning an error service response3734 returns an error service response3735 an error from the create versions xml service3736 behaves like returning an error service response3737 returns an error service response3738 an error from the append package file service3739 behaves like returning an error service response3740 returns an error service response3741 without a versionless package for plugins3742 behaves like returning a success service response3743 returns a success service response3744 without a versionless package for versions3745 behaves like returning a success service response3746 returns a success service response3747 without a metadata package file for plugins3748 behaves like returning a success service response3749 returns a success service response3750EnvironmentEntity3751 exposes latest deployment3752 exposes core elements of environment3753 exposes folder path3754 doesn't expose metrics path3755 when there is a successful deployment3756 exposes it as the latest deployment3757 does not expose it as an upcoming deployment3758 when the deployment pipeline has the other manual job3759 exposes the manual job in the latest deployment3760 when there is a running deployment3761 does not expose it as the latest deployment3762 exposes it as an upcoming deployment3763 when the deployment pipeline has the other manual job3764 does not expose the manual job in the latest deployment3765 with deployment platform3766 when deployment platform is a cluster3767 includes cluster_type3768 with auto_stop_in3769 exposes auto stop related information3770 with deployment service ready3771 exposes rollout_status3772 with deployment service not ready3773 does not expose rollout_status3774VersionCheckHelper3775 #show_version_check?3776 return conditions3777 enabled: false, consent: false, is_admin: false, result: false3778 returns correct results3779 enabled: false, consent: false, is_admin: true, result: false3780 returns correct results3781 enabled: false, consent: true, is_admin: false, result: false3782 returns correct results3783 enabled: false, consent: true, is_admin: true, result: false3784 returns correct results3785 enabled: true, consent: false, is_admin: false, result: false3786 returns correct results3787 enabled: true, consent: false, is_admin: true, result: true3788 returns correct results3789 enabled: true, consent: true, is_admin: false, result: false3790 returns correct results3791 enabled: true, consent: true, is_admin: true, result: false3792 returns correct results3793 #gitlab_version_check3794 returns an instance of the VersionCheck class3795 #show_security_patch_upgrade_alert?3796 return conditions3797 show_version_check: false, gitlab_version_check: nil, result: false3798 returns correct results3799 show_version_check: false, gitlab_version_check: {"severity"=>"success"}, result: false3800 returns correct results3801 show_version_check: false, gitlab_version_check: {"severity"=>"danger"}, result: false3802 returns correct results3803 show_version_check: false, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>"some text"}, result: false3804 returns correct results3805 show_version_check: false, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>"false"}, result: false3806 returns correct results3807 show_version_check: false, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>false}, result: false3808 returns correct results3809 show_version_check: false, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>"true"}, result: false3810 returns correct results3811 show_version_check: false, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>true}, result: false3812 returns correct results3813 show_version_check: true, gitlab_version_check: nil, result: false3814 returns correct results3815 show_version_check: true, gitlab_version_check: {"severity"=>"success"}, result: nil3816 returns correct results3817 show_version_check: true, gitlab_version_check: {"severity"=>"danger"}, result: nil3818 returns correct results3819 show_version_check: true, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>"some text"}, result: nil3820 returns correct results3821 show_version_check: true, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>"false"}, result: false3822 returns correct results3823 show_version_check: true, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>false}, result: false3824 returns correct results3825 show_version_check: true, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>"true"}, result: true3826 returns correct results3827 show_version_check: true, gitlab_version_check: {"severity"=>"danger", "critical_vulnerability"=>true}, result: true3828 returns correct results3829 #link_to_version3830 for a pre-release3831 links to commit sha3832 for a normal release3833 links to version tag3834JiraImport::StartImportService3835 when an error is returned from the project validation3836 behaves like responds with error3837 returns error3838 when project validation is ok3839 when Jira project key is not provided3840 behaves like responds with error3841 returns error3842 when correct data provided3843 when import is already running3844 behaves like responds with error3845 returns error3846 when an error is raised while scheduling import3847 saves the error message3848 behaves like responds with error3849 returns error3850 when everything is ok3851 with complete mapping3852 returns success response3853 schedules Jira import3854 creates Jira import data3855 creates Jira import label3856 creates Jira label title with correct number3857 when mapping is nil3858 returns success response3859 when no mapping value is complete3860 returns success response3861 when multiple Jira imports for same Jira project3862 creates Jira label title with correct number3863Users::AuthorizedBuildService3864 #execute3865 behaves like common user build items3866 is expected to be valid3867 sets the created_by_id3868 calls UpdateCanonicalEmailService3869 when user_type is provided3870 when project_bot3871 is expected to equal true3872 when not a project_bot3873 is expected to be human3874 behaves like current user not admin build items3875 with "user_default_external" application setting3876 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true3877 sets the value of Gitlab::CurrentSettings.user_default_external3878 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true3879 sets the value of Gitlab::CurrentSettings.user_default_external3880 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: true3881 sets the value of Gitlab::CurrentSettings.user_default_external3882 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true3883 sets the value of Gitlab::CurrentSettings.user_default_external3884 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true3885 sets the value of Gitlab::CurrentSettings.user_default_external3886 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: true3887 sets the value of Gitlab::CurrentSettings.user_default_external3888 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false3889 sets the value of Gitlab::CurrentSettings.user_default_external3890 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false3891 sets the value of Gitlab::CurrentSettings.user_default_external3892 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false3893 sets the value of Gitlab::CurrentSettings.user_default_external3894 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true3895 sets the value of Gitlab::CurrentSettings.user_default_external3896 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true3897 sets the value of Gitlab::CurrentSettings.user_default_external3898 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true3899 sets the value of Gitlab::CurrentSettings.user_default_external3900 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false3901 sets the value of Gitlab::CurrentSettings.user_default_external3902 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: false3903 sets the value of Gitlab::CurrentSettings.user_default_external3904 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false3905 sets the value of Gitlab::CurrentSettings.user_default_external3906 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false3907 sets the value of Gitlab::CurrentSettings.user_default_external3908 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: false3909 sets the value of Gitlab::CurrentSettings.user_default_external3910 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false3911 sets the value of Gitlab::CurrentSettings.user_default_external3912 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false3913 sets the value of Gitlab::CurrentSettings.user_default_external3914 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false3915 sets the value of Gitlab::CurrentSettings.user_default_external3916 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false3917 sets the value of Gitlab::CurrentSettings.user_default_external3918 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false3919 sets the value of Gitlab::CurrentSettings.user_default_external3920 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false3921 sets the value of Gitlab::CurrentSettings.user_default_external3922 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false3923 sets the value of Gitlab::CurrentSettings.user_default_external3924 when "email_confirmation_setting" application setting is set to `hard`3925 does not confirm the user3926 when "email_confirmation_setting" application setting is set to `off`3927 confirms the user3928 with allowed params3929 sets all allowed attributes3930Security::CiConfiguration::ContainerScanningCreateService3931 #execute3932 user does not belong to project3933 returns an error status3934 does not track a snowplow event3935 user belongs to project3936 does track the snowplow event3937 raises exception if the user does not have permission to create a new branch3938 when exception is raised3939 when branch was created3940 tries to rm branch3941 when branch was not created3942 does not try to rm branch3943 with no parameters3944 returns the path to create a new merge request3945 when the project has a non-default ci config file3946 does track the snowplow event3947 when existing ci config contains anchors/aliases3948 fails with error3949 when parsing existing ci config gives a Psych error3950 fails with error3951 when parsing existing ci config gives any other error3952 is successful3953 when the project is empty3954 returns a ServiceResponse error3955Clusters::Agents::Authorizations::UserAccess::RefreshService3956 # order random3957 #execute3958 group authorization3959 refreshes authorizations for the agent3960 when config contains "access_as" keyword3961 refreshes authorizations for the agent3962 when config contains too many groups3963 authorizes groups up to the limit3964 when config contains no groups or projects3965 removes all authorizations3966 when config contains groups or projects outside of the configuration project hierarchy3967 removes all authorizations3968 when configuration project does not belong to a group3969 removes all authorizations3970 project authorization3971 refreshes authorizations for the agent3972 when config contains "access_as" keyword3973 refreshes authorizations for the agent3974 when project belongs to a user namespace, and is in the same namespace as the agent3975 creates an authorization record for the project3976 when project belongs to a user namespace, and is authorizing itself3977 creates an authorization record for the project3978 when config contains too many projects3979 authorizes projects up to the limit3980 when config contains no groups or projects3981 removes all authorizations3982 when config contains groups or projects outside of the configuration project hierarchy3983 removes all authorizations3984 when configuration project does not belong to a group3985 removes all authorizations3986Gitlab::SidekiqStatus3987 with multi-store feature flags turned on3988 uses Gitlab::Redis::SidekiqStatus.with3989 behaves like tracking status in redis3990 .set3991 stores the job ID3992 allows overriding the expiration time3993 does not store anything with a nil expiry3994 .unset3995 removes the job ID3996 .all_completed?3997 returns true if all jobs have been completed3998 returns false if a job has not yet been completed3999 .running?4000 returns true if job is running4001 returns false if job is not found4002 .num_running4003 returns 0 if all jobs have been completed4004 returns 2 if two jobs are still running4005 .num_completed4006 returns 1 if all jobs have been completed4007 returns 1 if a job has not yet been completed4008 .completed_jids4009 returns the completed job4010 returns only the jobs completed4011 .job_status4012 returns an array of boolean values4013 handles an empty array4014 when both multi-store feature flags are off4015 uses Sidekiq.redis4016 behaves like tracking status in redis4017 .set4018 stores the job ID4019 allows overriding the expiration time4020 does not store anything with a nil expiry4021 .unset4022 removes the job ID4023 .all_completed?4024 returns true if all jobs have been completed4025 returns false if a job has not yet been completed4026 .running?4027 returns true if job is running4028 returns false if job is not found4029 .num_running4030 returns 0 if all jobs have been completed4031 returns 2 if two jobs are still running4032 .num_completed4033 returns 1 if all jobs have been completed4034 returns 1 if a job has not yet been completed4035 .completed_jids4036 returns the completed job4037 returns only the jobs completed4038 .job_status4039 returns an array of boolean values4040 handles an empty array4041 .key_for4042 returns the key for a job ID4043AtomicInternalId4044 #save!4045 when IID is provided4046 tracks the value4047 when importing4048 does not track the value4049 #track_project_iid!4050 tracks the present value4051 when value is set by ensure_project_iid!4052 does not track the value4053 tracks the iid for the scope that is actually present4054 #ensure_project_iid!4055 generates a new value if non is present4056 generates a new value if first set with iid= but later set to nil4057 #clear_scope_iid!4058 when no ensure_if condition is given4059 clears automatically set IIDs4060 does not clear manually set IIDS4061 when an ensure_if condition is given4062 when the ensure_if condition evaluates to true4063 clears automatically set IIDs4064 does not clear manually set IIDs4065 when the ensure_if condition evaluates to false4066 does not clear IIDs4067 #validate_scope_iid_exists!4068 when the presence flag is set4069 raises an error for blank iids on create4070 raises an error for blank iids on update4071 when the presence flag is not set4072 does not raise an error for blank iids on create4073 does not raise an error for blank iids on update4074 .with_project_iid_supply4075 supplies a stream of iid values4076 .track_namespace_iid!4077 tracks the present value4078 when transitioning a model from one scope to another4079 generates the iid on the new scope4080 when models is scoped to namespace and does not have an init proc4081 generates the iid on the new scope4082 supplies a stream of iid values4083Ci::CreatePipelineService4084 rate limiting4085 when user is under the limit4086 allows pipeline creation4087 when user is over the limit4088 blocks pipeline creation4089 with different users4090 allows other members to create pipelines4091 with different commits4092 allows user to create pipeline4093 with different projects4094 allows user to create pipeline4095Gitlab::GithubImport::Importer::IssueImporter4096 .import_if_issue4097 imports an issuable if it is a regular issue4098 does not import the issuable if it is a pull request4099 #execute4100 creates the issue and assignees and updates_search_data4101 #create_issue4102 creates issues with a work item type id4103 produces a valid Issue4104 returns the ID of the created issue4105 when the issue author could be found4106 creates the issue with the found author as the issue author4107 when the issue author could not be found4108 creates the issue with the project creator as the issue author4109 when the import fails due to a foreign key error4110 does not raise any errors4111 #create_assignees4112 inserts the issue assignees in bulk4113Notes::PostProcessService4114 #execute4115 is expected to receive execute(*(any args)) 1 time4116 with a confidential issue4117 doesn't call note hooks/integrations4118 calls confidential-note hooks/integrations4119 when the noteable is a design4120 when the note is the start of a new discussion4121 creates a new system note4122 when the note is a reply within a discussion4123 does not create a new system note4124Packages::Maven::PackageFinder4125 uses CTE in the query4126 #execute!4127 within the project4128 behaves like handling valid and invalid paths4129 with a valid path4130 is expected to eq #<Packages::Package id: 23, project_id: 845, created_at: "2023-07-27 04:44:04.264390000 +0000", updat...ge_type: "maven", creator_id: 1555, status: "default", last_downloaded_at: nil, status_message: nil>4131 with an invalid path4132 raises an error4133 with an uninstallable package4134 is expected to raise ActiveRecord::RecordNotFound4135 within a group4136 behaves like handling valid and invalid paths4137 with a valid path4138 is expected to eq #<Packages::Package id: 23, project_id: 845, created_at: "2023-07-27 04:44:04.264390000 +0000", updat...ge_type: "maven", creator_id: 1555, status: "default", last_downloaded_at: nil, status_message: nil>4139 with an invalid path4140 raises an error4141 with an uninstallable package4142 is expected to raise ActiveRecord::RecordNotFound4143 across all projects4144 raises an error4145 versionless maven-metadata.xml package4146 without order by package file4147 is expected to eq #<Packages::Package id: 29, project_id: 849, created_at: "2023-07-27 04:44:08.667933029 +0000", updat...ge_type: "maven", creator_id: 1562, status: "default", last_downloaded_at: nil, status_message: nil>4148 with order by package file4149 is expected to eq #<Packages::Package id: 27, project_id: 848, created_at: "2023-07-27 04:44:08.382693985 +0000", updat...ge_type: "maven", creator_id: 1560, status: "default", last_downloaded_at: nil, status_message: nil>4150Sidebars::Groups::Menus::PackagesRegistriesMenu4151 behaves like not serializable as super_sidebar_menu_args4152 returns nil4153 #render?4154 when menu has menu items to show4155 returns true4156 when menu does not have any menu item to show4157 returns false4158 #link4159 when Packages Registry is visible4160 menu link points to Packages Registry page4161 when Packages Registry is not visible4162 menu link points to Container Registry page4163 when Container Registry is not visible4164 menu link points to Harbor Registry page4165 when Harbor Registry is not visible4166 menu link points to Dependency Proxy page4167 Menu items4168 Packages Registry4169 when user can read packages4170 when config package setting is disabled4171 behaves like the menu entry is not available4172 the menu item is not added to list of menu items4173 when config package setting is enabled4174 behaves like the menu entry is available4175 the menu item is added to list of menu items4176 Container Registry4177 when user can read container images4178 when config registry setting is disabled4179 behaves like the menu entry is not available4180 the menu item is not added to list of menu items4181 when config registry setting is enabled4182 behaves like the menu entry is available4183 the menu item is added to list of menu items4184 when user cannot read container images4185 behaves like the menu entry is not available4186 the menu item is not added to list of menu items4187 Dependency Proxy4188 when user can read dependency proxy4189 when config dependency_proxy is enabled4190 behaves like the menu entry is available4191 the menu item is added to list of menu items4192 when the group settings exist4193 behaves like the menu entry is available4194 the menu item is added to list of menu items4195 when the proxy is disabled at the group level4196 behaves like the menu entry is not available4197 the menu item is not added to list of menu items4198 when config dependency_proxy is not enabled4199 behaves like the menu entry is not available4200 the menu item is not added to list of menu items4201 when user cannot read dependency proxy4202 behaves like the menu entry is not available4203 the menu item is not added to list of menu items4204 Harbor Registry4205 when config harbor registry setting is disabled4206 behaves like the menu entry is not available4207 the menu item is not added to list of menu items4208 when config harbor registry setting is enabled4209 behaves like the menu entry is available4210 the menu item is added to list of menu items4211 when config harbor registry setting is not activated4212 behaves like the menu entry is not available4213 the menu item is not added to list of menu items4214Groups::AcceptingGroupTransfersFinder4215 # order random4216 #execute4217 when the user does not have the rights to transfer the group4218 returns empty result4219 when the user has the rights to transfer the group4220 does not return empty result4221 excludes the descendants of the group to be transferred4222 excludes the immediate parent of the group to be transferred4223 excludes the groups where the user does not have OWNER access4224 excludes the groups arising from group shares where the user does not have OWNER access4225 includes ancestors, except immediate parent of the group to be transferred4226 includes the other groups where the user has OWNER access4227 includes the other groups where the user has OWNER access through inherited membership4228 includes the groups where the user has OWNER access through group shares4229 on searching with a specific term4230 includes only the groups where the term matches the group name or path4231ContainerRegistry::Migration::ObserverWorker4232 #perform4233 when the migration feature flag is disabled4234 does nothing4235 when the migration is enabled4236 logs all the counts4237 with load balancing enabled4238 uses the replica4239MilestoneNote4240 .from_event4241 behaves like a synthetic note4242 behaves like a system note4243 has the correct attributes4244 #discussion_id4245 returns the expected discussion id4246 with a remove milestone event4247 creates the expected note4248Gitlab::Ci::Reports::Sbom::Component4249 has correct attributes4250 #<=>4251 equal4252 is expected to eq 04253 name lesser4254 is expected to eq -14255 name greater4256 is expected to eq 14257 purl type lesser4258 is expected to eq -14259 purl type greater4260 is expected to eq 14261 purl type nulls first4262 is expected to eq -14263 version lesser4264 is expected to eq -14265 version greater4266 is expected to eq 14267 version nulls first4268 is expected to eq -14269 #ingestible?4270 when component_type is invalid4271 is expected to equal false4272 when purl_type is invalid4273 is expected to equal false4274 when component_type is valid4275 component_type: "library"4276 is expected to equal true4277 when purl_type is valid4278 purl_type: "composer"4279 is expected to equal true4280 purl_type: "conan"4281 is expected to equal true4282 purl_type: "gem"4283 is expected to equal true4284 purl_type: "golang"4285 is expected to equal true4286 purl_type: "maven"4287 is expected to equal true4288 purl_type: "npm"4289 is expected to equal true4290 purl_type: "nuget"4291 is expected to equal true4292 purl_type: "pypi"4293 is expected to equal true4294 purl_type: "apk"4295 is expected to equal true4296 purl_type: "rpm"4297 is expected to equal true4298 purl_type: "deb"4299 is expected to equal true4300 purl_type: "cbl_mariner"4301 is expected to equal true4302 when there is no purl4303 is expected to equal true4304Gitlab::Patch::RedisCacheStore4305 # order random4306 #read_multi_mget4307 when cache is Rails.cache4308 when reading using secondary store as default4309 behaves like reading using cache stores4310 gets multiple cross-slot keys4311 gets multiple keys4312 when reading large amount of keys4313 batches get into pipelines of 1004314 behaves like reading using cache stores4315 gets multiple cross-slot keys4316 gets multiple keys4317 when reading large amount of keys4318 batches get into pipelines of 1004319 when cache is feature flag cache store4320 behaves like reading using cache stores4321 gets multiple cross-slot keys4322 gets multiple keys4323 when reading large amount of keys4324 batches get into pipelines of 1004325 when cache is repository cache store4326 behaves like reading using cache stores4327 gets multiple cross-slot keys4328 gets multiple keys4329 when reading large amount of keys4330 batches get into pipelines of 1004331 #delete_multi_entries4332 when cache is Rails.cache4333 behaves like deleting using cache stores4334 deletes multiple cross-slot keys4335 deletes multiple keys4336 when deleting large amount of keys4337 calls pipeline multiple times4338 when cache is feature flag cache store4339 behaves like deleting using cache stores4340 deletes multiple cross-slot keys4341 deletes multiple keys4342 when deleting large amount of keys4343 calls pipeline multiple times4344 when cache is repository cache store4345 behaves like deleting using cache stores4346 deletes multiple cross-slot keys4347 deletes multiple keys4348 when deleting large amount of keys4349 calls pipeline multiple times4350Blobs::UnfoldPresenter4351 # order random4352 #match_line_text4353 when bottom is true4354 returns empty string4355 when bottom is false4356 returns match line string4357 #initialize4358 with empty params4359 sets default attributes4360 when full is false4361 sets attributes4362 when full is true4363 sets other attributes4364 when to is -14365 sets other attributes4366 #diff_lines4367 when "full" is true4368 returns all lines4369 when last line is empty4370 disregards last line4371 when "since" is equal to 14372 does not add top match line4373 when "since" is greater than 14374 adds top match line4375 when "to" is higher than blob size4376 does not add bottom match line4377 when "to" is equal to blob size4378 does not add bottom match line4379 when "to" is less than blob size4380 adds bottom match line4381 when "to" is less than blob size4382 adds bottom match line4383 when "to" is equal to blob size4384 does not add bottom match line4385 when "to" is "-1"4386 does not add bottom match line4387 last line is the latest blob line4388 #lines4389 when scope is specified4390 returns lines cropped by params4391 when since exceeds number of lines4392 returns an empty list4393 when full is true4394 returns all lines4395Tooling::Mappings::PartialToViewsMappings4396 # order random4397 #execute4398 does not modify the content of the input file4399 when no partials were modified4400 does not change the output file4401 when some partials were modified4402 when the partials are not included in any views4403 does not change the output file4404 when the partials are included in views4405 writes the view including the partial to the output4406 #reconstruct_partial_filename4407 when the partial does not contain a path4408 returns the correct filename4409 when the partial contains a path4410 returns the correct filename4411 #view_includes_modified_partial?4412 when the included partial name is relative to the view file4413 when the partial is not part of the changed files4414 returns false4415 when the partial is part of the changed files4416 returns true4417 when the included partial name is relative to the base views folder4418 when the partial is not part of the changed files4419 returns false4420 when the partial is part of the changed files4421 returns true4422 #extract_partial_keyword4423 returns the correct partial keyword4424 #filter_files4425 when the file does not exist on disk4426 returns an empty array4427 when the file exists on disk4428 when the file is not in the view base folders4429 returns an empty array4430 when the filename does not start with an underscore4431 returns an empty array4432 when the filename does not have the correct extension4433 returns an empty array4434 when the file is a partial4435 returns the file4436 #find_pattern_in_file4437 when the file contains the pattern4438 returns the pattern once4439 when the file does not contain the pattern4440 returns an empty array4441migration_fix_15_114442 # order random4443 migration_fix_15_114444 when fix is needed4445Running 15.11 migration fix for main4446 patches init_schema4447 when fix is not needed because no migrations have been run4448 does nothing4449 when fix is not needed because DB has not been initialized4450 does nothing4451 when fix is not needed because there is an earlier init_schema4452 does nothing4453 when fix is not needed because the fix has been run already4454Running 15.11 migration fix for main4455 does not affect the schema_migrations table4456Ci::CreatePipelineService4457 include:4458 with a local file4459 behaves like including the file4460 includes the job in the file4461 with a local file with rules with a project variable4462 when the rules matches4463 behaves like including the file4464 includes the job in the file4465 when the rules does not match4466 behaves like not including the file4467 does not include the job in the file4468 with a local file with rules with a predefined pipeline variable4469 when the rules matches4470 behaves like including the file4471 includes the job in the file4472 when the rules does not match4473 behaves like not including the file4474 does not include the job in the file4475 with a local file with rules with a run pipeline variable4476 when the rules matches4477 behaves like including the file4478 includes the job in the file4479 when the rules does not match4480 behaves like not including the file4481 does not include the job in the file4482Gitlab::Checks::LfsIntegrity4483 #objects_missing?4484 with LFS not enabled4485 skips integrity check4486 with LFS enabled4487 is true if any LFS blobs are missing4488 is false if LFS objects have already been uploaded4489 nil rev4490 skips integrity check4491 deletion4492 skips integrity check4493 no changes4494 skips integrity check4495Projects::ImportExport::ProjectExportPresenter4496 #description4497 override_description not provided4498 keeps original description4499 override_description provided4500 overrides description4501 #as_json4502 override_description not provided4503 keeps original description4504 override_description provided4505 overrides description4506 #protected_branches4507 returns the project exported protected branches4508 #project_members4509 does not export group members if it has no permission4510 does not export group members as maintainer4511 exports group members as group owner4512 as admin4513 when admin mode is enabled4514 exports group members as admin4515 exports group members as project members4516 when admin mode is disabled4517 does not export group members4518MergeRequestReviewer4519 behaves like having unique enum values4520 has unique values in "state"4521 associations4522 is expected to belong to merge_request class_name => MergeRequest required: false4523 is expected to belong to reviewer class_name => User required: false inverse_of => merge_request_reviewers4524Users::NamespaceCommitEmail4525 # order random4526 is expected to be valid4527 associations4528 is expected to belong to user required: false4529 is expected to belong to namespace required: false4530 is expected to belong to email required: false4531 validations4532 is expected to validate that :user cannot be empty/falsy4533 is expected to validate that :namespace cannot be empty/falsy4534 is expected to validate that :email cannot be empty/falsy4535 is expected to validate that :user is case-sensitively unique within the scope of :namespace_id4536 validate_root_group4537 when root group4538 is expected to be valid4539 when subgroup4540 is invalid and reports the relevant error4541 .delete_for_namespace4542 deletes all records for namespace4543Ci::ExternalPullRequests::CreatePipelineWorker4544 #perform4545 creates the pipeline4546 when the project not found4547 behaves like not calling service4548 does not call the service4549 when the user not found4550 behaves like not calling service4551 does not call the service4552 when the pull request not found4553 behaves like not calling service4554 does not call the service4555 when the pull request does not belong to the project4556 behaves like not calling service4557 does not call the service4558Banzai::ReferenceParser::ExternalIssueParser4559 #nodes_visible_to_user4560 when the link has a data-issue attribute4561 creates reference when the feature is 04562 creates reference when the feature is 104563 creates reference when the feature is 204564 #referenced_by4565 when the link has a data-project attribute4566 when the link has a data-external-issue attribute4567 returns an Array of ExternalIssue instances4568 when the link does not have a data-external-issue attribute4569 returns an empty Array4570 when the link does not have a data-project attribute4571 returns an empty Array4572 #issue_ids_per_project4573 returns a Hash containing range IDs per project4574 does not add a project when the data-external-issue attribute is empty4575BulkImportWorker4576 #perform4577 when no bulk import is found4578 does nothing4579 when bulk import is finished4580 does nothing4581 when bulk import is failed4582 does nothing4583 when all entities are processed4584 marks bulk import as finished4585 when all entities are failed4586 marks bulk import as failed4587 when maximum allowed number of import entities in progress4588 reenqueues itself4589 when bulk import is created4590 marks bulk import as started4591 creates all the required pipeline trackers4592 when there are created entities to process4593 marks a batch of entities as started, enqueues EntityWorker, ExportRequestWorker and reenqueues4594 when there are project entities to process4595 enqueues ExportRequestWorker4596 when exception occurs4597 tracks the exception & marks import as failed4598Gitlab::Spamcheck::Result4599 # order random4600 #initialize4601 verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.014602 returns expected verdict4603 returns expected evaluated?4604 returns expected score4605 verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.54606 returns expected verdict4607 returns expected evaluated?4608 returns expected score4609 verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.754610 returns expected verdict4611 returns expected evaluated?4612 returns expected score4613 verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.994614 returns expected verdict4615 returns expected evaluated?4616 returns expected score4617 verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.04618 returns expected verdict4619 returns expected evaluated?4620 returns expected score4621RuboCop::Cop::InjectEnterpriseEditionModule4622 # order random4623 disallows the use of prepend_mod_with without a String4624 disallows the use of prepend to inject a QA::EE module4625 flags the use of `extend_mod_with` in the middle of a file4626 flags the use of `prepend_mod_with` in the middle of a file4627 disallows the use of include to inject an EE module4628 does not flag the use of `include_mod_with` on the last line4629 does not flag the use of `prepend_mod_with` as long as all injections are at the end of the file4630 does not flag the use of `extend_mod_with` on the last line4631 flags the use of `include_mod_with` in the middle of a file4632 disallows the use of extend_mod_with without a String4633 disallows the use of extend to inject an EE module4634 disallows the use of prepend to inject an extension module4635 autocorrects offenses by just disabling the Cop4636 does not flag the use of `prepend_mod_with` on the last line4637 does not flag the double use of `X_mod_with` on the last line4638 disallows the use of include_mod_with without a String4639Users::UpdateCanonicalEmailService4640 #initialize4641 unsuccessful4642 raises an error if there is no user4643 raises an error if the object is not a User4644 when a user is provided4645 does not error4646 #canonicalize_email4647 when the email domain is included4648 strips out any . or anything after + in the agent for included domains4649 raw_email: "user@includeddomain.com", expected_result: "user@includeddomain.com"4650 is expected to eq "user@includeddomain.com"4651 raw_email: "u.s.e.r@includeddomain.com", expected_result: "user@includeddomain.com"4652 is expected to eq "user@includeddomain.com"4653 raw_email: "user+123@includeddomain.com", expected_result: "user@includeddomain.com"4654 is expected to eq "user@includeddomain.com"4655 raw_email: "us.er+123@includeddomain.com", expected_result: "user@includeddomain.com"4656 is expected to eq "user@includeddomain.com"4657 when the user has an existing canonical email4658 updates the user canonical email record4659 when the email domain is not included4660 returns nil4661 destroys any existing UserCanonicalEmail record4662 when the user email is not processable4663 with4664 is expected to be nil4665 preserves any existing record4666 with nonsense4667 is expected to be nil4668 preserves any existing record4669Gitlab::Analytics::CycleAnalytics::Aggregated::BaseQueryBuilder4670 scopes the query for the given project4671 author_username param4672 returns stage events associated with the given author4673 returns empty result when unknown author is given4674 milestone_title param4675 returns stage events associated with the milestone4676 returns empty result when unknown milestone is given4677 label_name param4678 returns stage events associated with multiple labels4679 does not include records with partial label match4680 assignee_username param4681 returns stage events associated assignee4682 timestamp filtering4683 filters by the end event time range4684 when in_progress items are requested4685 filters by the start event time range4686#<GitlabSettings::Settings:0x00007ba2ba3d9478>4687 #ldap4688 can be accessed with dot syntax all the way down4689 can be accessed in a very specific way that breaks without reassigning each element4690 #host_without_www4691 URL with protocol4692 returns the host4693 URL without protocol4694 returns the host4695 URL with user/port4696 returns the host4697 #weak_passwords_digest_set4698 is a Set4699 contains 4500 password digests4700 includes 8 char weak password digest4701 includes 16 char weak password digest4702 includes long char weak password digest4703 does not include 7 char weak password digest4704 does not include plaintext4705WorkerContext4706 .worker_context4707 allows modifying the context for the entire worker4708 allows fetches the context from a superclass if none was defined4709 .bulk_perform_async_with_contexts4710 calls bulk_perform_async with the arguments4711 behaves like tracking bulk scheduling contexts4712 clears the contexts4713 context contents4714 keeps track of the context per key to schedule4715 does not share contexts across threads4716 .bulk_perform_in_with_contexts4717 calls bulk_perform_in with the arguments and delay4718 behaves like tracking bulk scheduling contexts4719 clears the contexts4720 context contents4721 keeps track of the context per key to schedule4722 does not share contexts across threads4723 #with_context4724 allows modifying context when the job is running4725 yields the arguments to the block4726projects/ci/jobs/_build4727 won't include a column with a link to its pipeline by default4728 can include a column with a link to its pipeline4729Projects::ContainerRepository::Gitlab::DeleteTagsService4730 #execute4731 with tags to delete4732 succeeds when tag delete returns 4044733 succeeds when a tag delete returns 5004734 behaves like deleting tags4735 deletes the tags by name4736 with failures4737 when the delete request fails4738 is expected to eq {:message=>"could not delete tags", :status=>:error}4739 with timeout4740 set to a valid value4741 is expected to eq {:deleted=>["A"], :exception_class_name=>"Projects::ContainerRepository::Gitlab::Timeoutable::TimeoutError", :message=>"error while deleting tags", :status=>:error}4742 tracks the exception4743 set to 04744 behaves like deleting tags4745 deletes the tags by name4746 set to nil4747 behaves like deleting tags4748 deletes the tags by name4749 with a network error4750 is expected to eq {:deleted=>[], :exception_class_name=>"Faraday::TimeoutError", :message=>"error while deleting tags", :status=>:error}4751 tracks the exception4752 with empty tags4753 does not remove anything4754Ci::CompareTestReportsService4755 #execute4756 when head pipeline has test reports4757 returns status and data4758 when base and head pipelines have test reports4759 returns status and data4760 when head pipeline has corrupted test reports4761 returns a parsed TestReports success status and failure on the individual suite4762 test failure history4763 loads recent failures on limited test cases to avoid building up a huge DB query4764PerformanceMonitoring::PrometheusPanel4765 #new4766 accepts old schema format4767 accepts new schema format4768 .from_json4769 creates a PrometheusPanelGroup object4770 validations4771 json_content is not a hash4772 is expected to raise ActiveModel::ValidationError4773 when title is missing4774 is expected to raise ActiveModel::ValidationError4775 when metrics are missing4776 is expected to raise ActiveModel::ValidationError4777 .id4778 returns hexdigest of group_title, type and title as the panel id4779Gitlab::Database::Count::TablesampleCountStrategy4780 #count4781 for tables with an estimated small size4782 performs an exact count4783 for tables with an estimated large size4784 performs a tablesample count4785 insufficient permissions4786 returns an empty hash4787DeploymentSerializer4788 #represent4789 behaves like json schema4790 matches deployment entity schema4791 #represent_concise4792 behaves like json schema4793 matches deployment entity schema4794Pajamas::EmptyStateComponent4795 # order random4796 when description is empty4797 does not render a description4798 when svg_path is empty4799 does not render image4800 when compact4801 renders section with flex direction row4802 default4803 renders the primary action4804 renders the secondary action4805 renders image as illustration4806 renders title4807 renders description4808 renders section with flex direction column4809 with no buttons4810 does not render any buttons4811Gitlab::Ci::Config::Yaml::Interpolator4812 # order random4813 when feature flag ci_interpolation_inputs_refactor is disabled4814 behaves like interpolator4815 when input data is valid4816 correctly interpolates the config4817 when config has a syntax error4818 surfaces an error about invalid config4819 when spec header is invalid4820 surfaces an error about invalid header4821 when interpolation block is invalid4822 correctly interpolates the config4823 when multiple interpolation blocks are invalid4824 correctly interpolates the config4825 #to_hash4826 when interpolation is not used4827 returns original content4828 when interpolation is available4829 correctly interpolates content4830 when provided interpolation argument is invalid4831 returns an error4832 behaves like interpolator4833 when input data is valid4834 correctly interpolates the config4835 when config has a syntax error4836 surfaces an error about invalid config4837 when spec header is invalid4838 surfaces an error about invalid header4839 when interpolation block is invalid4840 correctly interpolates the config4841 when multiple interpolation blocks are invalid4842 correctly interpolates the config4843 #to_hash4844 when interpolation is not used4845 returns original content4846 when interpolation is available4847 correctly interpolates content4848 when provided interpolation argument is invalid4849 returns an error4850Gitlab::Database::AsyncIndexes::IndexCreator4851 #perform4852 creates the index while controlling statement timeout4853 removes the index preparation record from postgres_async_indexes4854 skips logic if not able to acquire exclusive lease4855 logs messages around execution4856 when the index already exists4857 skips index creation4858 removes the index preparation record from postgres_async_indexes4859 logs an appropriate message4860Gitlab::Ci::Status::Pipeline::Common4861 #has_action?4862 is expected not to have action4863 #has_details?4864 when user has access to read pipeline4865 is expected to have details4866 when user does not have access to read pipeline4867 is expected not to have details4868 #details_path4869 links to the pipeline details page4870Gitlab::NullRequestStore4871 #store4872 returns an empty hash4873 #active?4874 returns falsey4875 #read4876 returns nil4877 #[]4878 returns nil4879 #write4880 returns the same value4881 #[]=4882 returns the same value4883 #exist?4884 returns falsey4885 #fetch4886 returns the block result4887 #delete4888 when a block is given4889 yields the key to the block4890 returns the block result4891 when a block is not given4892 returns nil4893Onboarding::Completion4894 # order random4895 #percentage4896 when no onboarding_progress exists4897 is expected to eq 04898 when no action has been completed4899 is expected to eq 04900 when all tracked actions have been completed4901 is expected to eq 1004902 #completed?4903 when code_added4904 when commit_count > 14905 is expected to eq true4906 when branch_count > 14907 is expected to eq true4908 when empty repository4909 is expected to eq false4910 when secure_dast_run4911 when is completed4912 is expected to eq true4913 when is not completed4914 is expected to eq false4915Projects::TriggeredHooks4916 executes hooks by scope4917 applies branch filters, when they match4918 applies branch filters, when they do not match4919 with emoji hooks4920 executes hook4921 when emoji_webhooks feature flag is disabled4922 does not execute the hook4923 when emoji_webhooks feature flag is enabled for the project4924 executes the hook4925GroupDeployKey4926 is expected to validate that :user cannot be empty/falsy4927 is expected to belong to user required: false4928 is expected to have many groups4929 is of type DeployKey4930 #group_deploy_keys_group_for4931 when this group deploy key is linked to a given group4932 returns the relevant group_deploy_keys_group association4933 when this group deploy key is not linked to a given group4934 is expected to be nil4935 .defined_enums4936 excludes the inherited enum4937 #can_be_edited_for4938 when a given user has the :update_group_deploy_key permission for that key4939 is true4940 when a given user does not have the :update_group_deploy_key permission for that key4941 is true when this user has the :update_group_deploy_key_for_group permission for this group4942 is false when this user does not have the :update_group_deploy_key_for_group permission for this group4943 #group_deploy_keys_groups_for_user4944 when a group has a group deploy key4945 returns the related group_deploy_keys_group association when the user can read the group4946 does not return the related group_deploy_keys_group association when the user cannot read the group4947 .for_groups4948 when group deploy keys are enabled for some groups4949 returns these group deploy keys4950Gitlab::Database::Partitioning::SingleNumericListPartition4951 .from_sql4952 uses specified table name4953 uses specified partition name4954 parses the definition4955 #partition_name4956 is the explicit name if provided4957 defaults to the table name followed by the partition value4958 sorting4959 is incomparable if the tables do not match4960 sorts by the value when the tables match4961 sorts by numeric value rather than text value4962Resolvers::PackagePipelinesResolver4963 #resolve4964 contains the expected pipelines4965 with valid after4966 contains the expected pipelines4967 with valid before4968 contains the expected pipelines4969 with invalid after4970 generates an argument error4971 with invalid after key4972 generates an argument error4973 with invalid before4974 generates an argument error4975 with invalid before key4976 generates an argument error4977 with unauthorized user4978 returns nothing4979 with many packages4980 contains the expected pipelines4981 handles n+1 situations4982 .field options4983 sets them properly4984Gitlab::Metrics::Subscribers::RackAttack4985 .payload4986 when the request store is empty4987 returns empty data4988 when the request store already has data4989 returns the accumulated data4990 #throttle4991 behaves like log into auth logger4992 when matched throttle does not require user information4993 logs request information4994 matching user or deploy token authenticated information4995 when matching for user4996 when user not found4997 logs request information and user id4998 when user found4999 logs request information and user meta5000 when matching for deploy token5001 when deploy token found5002 logs request information and user meta5003 #blocklist5004 behaves like log into auth logger5005 when matched throttle does not require user information5006 logs request information5007 matching user or deploy token authenticated information5008 when matching for user5009 when user not found5010 logs request information and user id5011 when user found5012 logs request information and user meta5013 when matching for deploy token5014 when deploy token found5015 logs request information and user meta5016 #track5017 behaves like log into auth logger5018 when matched throttle does not require user information5019 logs request information5020 matching user or deploy token authenticated information5021 when matching for user5022 when user not found5023 logs request information and user id5024 when user found5025 logs request information and user meta5026 when matching for deploy token5027 when deploy token found5028 logs request information and user meta5029 #safelist5030 adds the matched name to safe request store5031Packages::Npm5032 .scope_of5033 package_name: nil, expected_result: nil5034 is expected to eq nil5035 package_name: "test", expected_result: nil5036 is expected to eq nil5037 package_name: "@test", expected_result: nil5038 is expected to eq nil5039 package_name: "test/package", expected_result: nil5040 is expected to eq nil5041 package_name: "@/package", expected_result: nil5042 is expected to eq nil5043 package_name: "@test/package", expected_result: "test"5044 is expected to eq "test"5045 package_name: "@test/", expected_result: nil5046 is expected to eq nil5047Users::UnbanService5048 unban5049 when successful5050 returns success status5051 unbans the user5052 removes the BannedUser5053 logs unban in application logs5054 when failed5055 when user is already active5056 returns state error message5057 behaves like does not modify the BannedUser record or user state5058 does not modify the BannedUser record or user state5059 when user is not an admin5060 returns permissions error message5061 behaves like does not modify the BannedUser record or user state5062 does not modify the BannedUser record or user state5063Ci::CreatePipelineService5064 creation errors and warnings5065 when created successfully5066 when warnings are raised5067 contains only warnings5068 when no warnings are raised5069 contains no warnings5070 when failed to create the pipeline5071 when errors are raised and masked variables are involved5072 contains errors and masks variables5073 when warnings are raised5074 contains both errors and warnings5075 when no warnings are raised5076 contains only errors5077Gitlab::Git::AttributesParser5078 #attributes5079 using a path with attributes5080 returns the attributes as a Hash5081 returns a Hash containing multiple attributes5082 returns a Hash containing attributes for a file with multiple extensions5083 returns a Hash containing attributes for a file in a directory5084 returns a Hash containing attributes with query string parameters5085 returns a Hash containing the attributes for an absolute path5086 returns a Hash containing the attributes when a pattern is defined using an absolute path5087 returns an empty Hash for a defined path without attributes5088 when the "binary" option is set for a path5089 returns true for the "binary" option5090 returns false for the "diff" option5091 using a path without any attributes5092 returns an empty Hash5093 when attributes data is nil5094 returns an empty Hash5095 when attributes data has binary data5096 returns an empty Hash5097 #patterns5098 parses a file with entries5099 parses an entry that uses a tab to separate the pattern and attributes5100 stores patterns in reverse order5101 ignores any comments and empty lines5102 #parse_attributes5103 parses a boolean attribute5104 parses a negated boolean attribute5105 parses a key-value pair5106 parses multiple attributes5107 parses attributes with query string parameters5108 #each_line5109 iterates over every line in the attributes file5110 unsupported encoding5111 does not yield5112Ci::DagPipelineEntity5113 #as_json5114 when pipeline is empty5115 contains stages5116 behaves like matches schema5117 matches schema5118 when pipeline has jobs5119 contains 3 stages5120 behaves like matches schema5121 matches schema5122 when pipeline has parallel jobs, DAG needs and GenericCommitStatus5123 performs the smallest number of queries5124 contains all the data5125 behaves like matches schema5126 matches schema5127Gitlab::GithubImport::Importer::Events::ChangedReviewer5128 # order random5129 #execute5130 behaves like process review_requested & review_request_removed MR events5131 when importing a review_requested event5132 behaves like create expected notes5133 creates expected note5134 creates expected system note metadata5135 when importing a review_request_removed event5136 behaves like create expected notes5137 creates expected note5138 creates expected system note metadata5139Packages::Helm::FileMetadatum5140 relationships5141 is expected to belong to package_file required: false5142 validations5143 #package_file5144 is expected to validate that :package_file cannot be empty/falsy5145 #valid_helm_package_type5146 validates package of type helm5147 #channel5148 validates #channel5149 #metadata5150 validates #metadata5151Projects::ImportExport::RelationExportWorker5152 behaves like an idempotent worker5153 is labeled as idempotent5154 performs multiple times sequentially without raising an exception5155 #perform5156 when relation export has initial status `queued`5157 exports the relation5158 when relation export has status `started`5159 retries the export of the relation5160 when relation export does not have status `queued` or `started`5161 does not export the relation5162 .sidekiq_retries_exhausted5163 sets relation export status to `failed`5164 logs the error message5165Gitlab::Ci::Status::Build::Retried5166 #text5167 does not override status text5168 #icon5169 does not override status icon5170 #group5171 does not override status group5172 #favicon5173 does not override status label5174 #label5175 does not override status label5176 #badge_tooltip5177 returns status5178 #status_tooltip5179 with a failed build5180 does override status_tooltip5181 with another build5182 does override status_tooltip5183 .matches?5184 with a retried build5185 is expected to be truthy5186 with a build that has not been retried5187 is expected to be falsy5188UploaderFinder5189 #execute5190 when successful5191 gets the file-like uploader5192 when path traversal in file name5193 returns nil5194 when unexpected failure5195 returns nil when unexpected error is raised5196WorkItems::Callbacks::AwardEmoji5197 # order random5198 #before_update5199 when awarding an emoji5200 when user has no access5201 does not award the emoji5202 when user has access5203 awards the emoji to the work item5204 when the name is incorrect5205 behaves like raises a WidgetError5206 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "Name is not a valid emoji name"5207 when the action is incorrect5208 behaves like raises a WidgetError5209 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "foo is not a valid action."5210 when removing emoji5211 when user has no access5212 does not remove the emoji5213 when user has access5214 removes existing emoji5215 when work item does not have the emoji5216 behaves like raises a WidgetError5217 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "User has not awarded emoji of type star on the awardable"5218Clusters::Agents::DeleteExpiredEventsService5219 #execute5220 does not delete events if the limit has not been reached5221 there are more events than the limit5222 removes events to remain at the limit, keeping the most recent5223Gitlab::Ci::Variables::Builder::Group5224 #secret_variables5225 when the ref is not protected5226 contains only the CI variables5227 when the ref is protected5228 contains all the variables5229 when environment name is specified5230 when environment scope is exactly matched5231 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007ba253acf9d8 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>5232 when environment scope is matched by wildcard5233 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007ba25af45308 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>5234 when environment scope does not match5235 is expected not to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007ba2625453a0 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>5236 when environment scope has _5237 does not treat it as wildcard5238 when environment name contains underscore5239 matches literally for _5240 when environment scope has %5241 does not treat it as wildcard5242 when environment name contains a percent5243 matches literally for _5244 when variables with the same name have different environment scopes5245 orders the variables from least to most matched5246 when group has children5247 traversal queries5248 recursive5249 returns all variables belonging to the group and parent groups5250 linear5251 returns all variables belonging to the group and parent groups5252BulkImports::Common::Graphql::GetMembersQuery5253 has a valid query5254 #data_path5255 returns data path5256 #page_info_path5257 returns pagination information path5258 #to_s5259 when entity is group5260 queries group & group members5261 when entity is project5262 queries project & project members5263Environments::UpdateService5264 # order random5265 #execute5266 updates the external URL5267 returns successful response5268 when setting a kubernetes namespace to the environment5269 updates the kubernetes namespace5270 returns successful response5271 when setting a cluster agent to the environment5272 returns successful response5273 when user does not have permission to read the agent5274 returns an error5275 when unsetting a cluster agent of the environment5276 returns successful response5277 when params contain invalid value5278 returns an error5279 when disallowed parameter is passed5280 ignores the parameter5281 when user is reporter5282 returns an error5283BulkImports::FileDecompressionService5284 #execute5285 decompresses specified file5286 when validate_import_decompressed_archive_size feature flag is enabled5287 performs decompressed file size validation5288 when validate_import_decompressed_archive_size feature flag is disabled5289 does not perform decompressed file size validation5290 when dir is not in tmpdir5291 raises an error5292 when path is being traversed5293 raises an error5294 when compressed file is a symlink5295 raises an error and removes the file5296 when decompressed file is a symlink5297 raises an error and removes the file5298Gitlab::GlRepository5299 .parse5300 parses a project gl_repository5301 parses a project wiki gl_repository5302 parses a snippet gl_repository5303 parses a design gl_repository5304 throws an argument error on an invalid gl_repository type5305 throws an argument error on an invalid gl_repository id5306SpamLog5307 associations5308 is expected to belong to user required: false5309 validations5310 is expected to validate that :user cannot be empty/falsy5311 #remove_user5312 blocks the user5313 when admin mode is enabled5314 initiates user removal5315 when admin mode is disabled5316 does not allow to remove the user5317 .verify_recaptcha!5318 the record cannot be found5319 updates nothing5320 does not error despite not finding a record5321 the record exists5322 updates recaptcha_verified5323Projects::AlertManagementHelper5324 #alert_management_data5325 without alert_managements_setting5326 returns index page configuration5327 with prometheus integration5328 when manual prometheus integration is active5329 enables alert management5330 when prometheus service is inactive5331 disables alert management5332 with http integration5333 when integration is active5334 enables alert management5335 when integration is inactive5336 disables alert management5337 with an alert5338 enables alert management5339 when user does not have requisite enablement permissions5340 shows error tracking enablement as disabled5341 #alert_management_detail_data5342 returns detail page configuration5343 when user cannot update alert5344 shows error tracking enablement as disabled5345Environments::EnvironmentsFinder5346 #execute5347 filters environments by type5348 with states parameter5349 returns environments with the requested state5350 returns environments with any of the requested states5351 raises exception when requested state is invalid5352 works with symbols5353 returns environments with the requested state5354 returns environments with any of the requested states5355 with search and states5356 searches environments by name and state5357 searches environments by name inside folder and state5358 when enable_environments_search_within_folder FF is disabled5359 ignores name inside folder5360 with id5361 searches environments by name and id5362Gitlab::AlertManagement::Payload5363 #parse5364 without a monitoring_tool specified by caller5365 without a monitoring tool in the payload5366 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic5367 with the payload specifying Prometheus5368 is expected to be a kind of Gitlab::AlertManagement::Payload::Prometheus5369 with gitlab-managed attributes5370 is expected to be a kind of Gitlab::AlertManagement::Payload::ManagedPrometheus5371 with the payload specifying an unknown tool5372 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic5373 with monitoring_tool specified by caller5374 as Prometheus5375 with an externally managed prometheus payload5376 is expected to be a kind of Gitlab::AlertManagement::Payload::Prometheus5377 with a self-managed prometheus payload5378 is expected to be a kind of Gitlab::AlertManagement::Payload::ManagedPrometheus5379 as an unknown tool5380 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic5381 with integration specified by caller5382 passes an integration to a specific payload5383BulkImports::Projects::Graphql::GetSnippetRepositoryQuery5384 has a valid query5385 returns snippet httpUrlToRepo5386 returns snippet createdAt5387 returns snippet title5388 .variables5389 queries project based on source_full_path and pagination5390 .data_path5391 .data_path returns data path5392 .page_info_path5393 .page_info_path returns pagination information path5394Gitlab::Ci::ProjectConfig5395 # order random5396 when config is the Auto-Devops template5397 returns root config including the auto-devops template5398 when config is defined in a custom path in the repository5399 returns root config including the local custom file5400 when config is defined in the default .gitlab-ci.yml5401 returns root config including the canonical CI config file5402 when config is not defined anywhere5403 returns nil5404 when config is passed as a parameter5405 returns the parameter content5406 when bridge job is passed in as parameter5407 returns the content already available in command5408 when config is defined in a separate repository5409 returns root config including the path to another repository5410 when path specifies a refname5411 returns root config including the path and refname to another repository5412 when config is defined remotely5413 returns root config including the remote config5414Banzai::ReferenceParser::ProjectParser5415 #referenced_by5416 when the link has a data-project attribute5417 using an existing project ID5418 returns an Array of projects5419 using a non-existing project ID5420 returns an empty Array5421 using a private project ID5422 returns an empty Array when unauthorized5423 returns an Array when authorized5424notify/user_deactivated_email.text.erb5425 # order random5426 displays the user's name5427 behaves like renders plain text email correctly5428 renders the email without HTML links5429 when additional text setting is not set5430 does not display any additional text5431 when additional text setting is set5432 when additional text feature flag is enabled5433 displays the additional text5434 when additional text feature flag is disabled5435 does not display the additional text5436Types::Packages::Cleanup::PolicyType5437 is expected to eq "PackagesCleanupPolicy"5438 is expected to eq "A packages cleanup policy designed to keep only packages and packages assets that matter most"5439 is expected to require graphql authorizations :admin_package5440 keep_n_duplicated_package_files5441 is expected to have non-null GraphQL type PackagesCleanupKeepDuplicatedPackageFilesEnum5442 next_run_at5443 is expected to have nullable GraphQL type Time5444Gitlab::Counters::LegacyCounter5445 # order random5446 #bulk_increment5447 increments the attribute in the counter record5448 returns the value after the increment5449 executes after counter_record after commit callback5450 #increment5451 increments the attribute in the counter record5452 returns the value after the increment5453 executes after counter_record after commit callback5454GitlabSettings::Settings5455 # order random5456 loads the given section config5457 on lazy loading5458 does not raise exception on initialization if source does not exists5459 #initialize5460 requires a source5461 requires a section5462 sets encodings5463 #reload!5464 reloads the config5465Banzai::Pipeline5466 .[]5467 for nil5468 is expected to eq Banzai::Pipeline::FullPipeline5469 for symbols5470 when known5471 is expected to eq Banzai::Pipeline::FullPipeline5472 when unknown5473 behaves like error5474 is expected to raise NameError with "uninitialized constant Banzai::Pipeline::UnknownPipeline"5475 for classes5476 subclassing Banzai::Pipeline::BasePipeline5477 is expected to eq #<Class:0x00007ba2641d4b60>5478 subclassing other types5479 behaves like error5480 is expected to raise ArgumentError with "unsupported pipeline name Foo (Class)"5481 for other types5482 behaves like error5483 is expected to raise ArgumentError with "unsupported pipeline name \"label\" (String)"5484global_id5485 prepends `Gitlab::Patch::GlobalId`5486 patches GlobalID to find aliased models when a deprecation exists5487 works as normal when no deprecation exists5488OperationsHelper5489 #alerts_settings_data5490 initial integration configuration5491 returns the correct values5492 with external Prometheus configured5493 with external Prometheus enabled5494 returns the correct values5495 with external Prometheus disabled5496 returns the correct values5497 when cluster managed5498 returns the correct values5499 with project alert setting5500 returns the correct values5501 #operations_settings_data5502 returns the correct set of data5503ImportExportCleanUpService5504 #execute5505 when the import/export tmp storage directory does not exist5506 does not remove any archives5507 when the import/export tmp storage directory exists5508 removes old files and logs5509 does not remove new files or logs5510 removes old files and logs5511 does not remove new files or logs5512 with uploader exports5513 removes old files and logs5514 does not remove new files or logs5515Gitlab::Memory::Reports::HeapDump5516 # order random5517 #active?5518 is true when report_heap_dumps is enabled5519 is false when report_heap_dumps is disabled5520 #run5521 when no heap dump is enqueued5522 does nothing and returns false5523 when a heap dump is enqueued5524 dumps heap and returns true5525 #name5526 is set5527Gitlab::Prometheus::MetricGroup5528 .common_metrics5529 returns exactly two groups5530 returns exactly three metric queries5531 orders by priority5532 .for_project5533 returns exactly one common metric5534Resolvers::MergeRequestPipelinesResolver5535 resolves only MRs for the passed merge request5536 with archived project5537 is expected not to contain exactly #<Ci::Pipeline id: 591, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 353, locked: "artifacts_locked", partition_id: 100>5538gitlab:generate_sample_prometheus_data rake task5539 # order random5540 creates the file correctly5541environments routing5542 routing environment folders5543 when using JSON format5544 correctly matches environment name and JSON format5545 when using HTML format5546 correctly matches environment name and HTML format5547 when using implicit format5548 correctly matches environment name5549Resolvers::ReleasesResolver5550 #resolve5551 behaves like releases and group releases resolver5552 when the user does not have access to the project5553 returns an empty response5554 when the user has full access to the project's releases5555 returns all releases associated to the project5556 when order_by is released_at5557 with sort: desc5558 returns the releases ordered by released_at in descending order5559 with sort: asc5560 returns the releases ordered by released_at in ascending order5561 when order_by is created_at5562 with sort: desc5563 returns the releases ordered by created_at in descending order5564 with sort: asc5565 returns the releases ordered by created_at in ascending order5566Mutations::Issues::Move5567 #resolve5568 raises an error if the resource is not accessible to the user5569 when user does not have permissions5570 returns error message5571 when user has sufficient permissions5572 moves issue5573Pajamas::Concerns::CheckboxRadioLabelWithHelpText5574 #render_label_with_help_text5575 calls `#format_options` with correct arguments5576 when `help_text` argument is passed5577 calls `form.label` with `label` and `help_text` arguments used in the block5578 when `help_text` argument is not passed5579 calls `form.label` with `label` argument used in the block5580 #render_label_tag_with_help_text5581 calls `#format_options` with correct arguments5582 when `help_text` argument is passed5583 calls `label_tag` with `label` and `help_text` arguments used in the block5584 when `help_text` argument is not passed5585 calls `label_tag` with `label` argument used in the block5586RuboCop::Cop::Search::AvoidCheckingFinishedOnDeprecatedMigrations5587 # order random5588 when a non deprecated class is used with migration_has_finished?5589 does not flag it as an offense5590 when a deprecated class is used with migration_has_finished?5591 flags it as an offense5592 when migration_has_finished? method is called on another class5593 does not flag it as an offense5594Prometheus::PidProvider5595 .worker_id5596 when running in Sidekiq server mode5597 in a clustered setup5598 is expected to eq "sidekiq_123"5599 in a single process setup5600 is expected to eq "sidekiq"5601 when running in Puma mode5602 when cluster worker id is specified in process name5603 is expected to eq "puma_1"5604 when no worker id is specified in process name5605 is expected to eq "puma_master"5606 when running in unknown mode5607 is expected to eq "process_327"5608StripAttribute5609 .strip_attributes!5610 is expected to respond to #strip_attributes!5611 is expected to include :title5612 #strip_attributes!5613 is expected to eq "8.3"5614Packages::Npm::CreateMetadataCacheWorker5615 # order random5616 #perform5617 behaves like an idempotent worker5618 is labeled as idempotent5619 performs multiple times sequentially without raising an exception5620 creates a new metadata cache5621 when errors happened5622 logs errors5623 without project5624 behaves like does not trigger service to create npm metadata cache5625 is expected not to receive new(*(any args)) 0 times5626 when npm_metadata_cache flag is disabled5627 behaves like does not trigger service to create npm metadata cache5628 is expected not to receive new(*(any args)) 0 times5629Ci::DisableUserPipelineSchedulesService5630 #execute5631 when user has active pipeline schedules5632 disables all active pipeline schedules5633GitHelper5634 #short_sha5635 is expected to eq "d4e043f6"5636 #strip_signature5637 strips PGP SIGNATURE5638 is expected to eq "Version 1.69.0\n\n"5639 strips PGP MESSAGE5640 is expected to eq "Version 1.69.0\n\n"5641 strips SIGNED MESSAGE5642 is expected to eq "this is Roger's signed tag\n\n"5643Gitlab::Ci::Status::Build::Canceled5644 #illustration5645 is expected to include :image, :size, and :title5646 .matches?5647 when build is canceled5648 is a correct match5649 when build is not canceled5650 does not match5651Gitlab::Ci::DecompressedGzipSizeValidator5652 # order random5653 #valid?5654 when file does not exceed allowed decompressed size5655 returns true5656 when the waiter thread no longer exists due to being terminated or crashing5657 gracefully handles the absence of the waiter without raising exception5658 when file exceeds allowed decompressed size5659 returns false5660 when exception occurs during header readings5661 when timeout occurs5662 terminates validator process group5663 when exception occurs5664 terminates validator process group5665 archive path validation5666 when archive path is traversed5667 does not pass validation5668 when archive path is not a string5669 returns false5670 when archive path is a symlink5671 returns false5672 when archive path is not a file5673 returns false5674Groups::AcceptingProjectCreationsFinder5675 # order random5676 #execute5677 only returns groups where the user has access to create projects5678projects/commits/show.html.haml5679 tree controls5680 renders atom feed button with matching path5681 commits date headers5682 when timezone is UTC5683 renders commit date header in user's timezone5684 when timezone is UTC-65685 renders commit date header in user's timezone5686Import::GitlabProjects::FileAcquisitionStrategies::RemoteFile5687 validation5688 is expected to be valid5689 file_url validation5690 validates the file_url scheme5691 when localhost urls are not allowed5692 validates the file_url5693 when the HTTP request fails to recover the headers5694 adds the error message5695 when request is not from an S3 server5696 validates the remote content-length5697 validates the remote content-type5698 when request is from an S3 server5699 does not validate the remote content-length or content-type5700 #project_params5701 returns import_export_upload in the params5702Gitlab::Ci::Reports::Security::ScannedResource5703 when the URI is not a URI5704 raises an error5705 when the URL is valid5706 sets the URL attributes5707Lfs::PushService5708 does nothing if there are no LFS objects5709 #execute5710 uploads the object when upload is requested5711 does not upload the object when upload is not requested5712 verifies the upload if requested5713 skips verification if requested but upload fails5714 returns a failure when submitting a batch fails5715 returns a failure when submitting an upload fails5716 non-project-repository LFS objects5717 only tries to upload the project-repository LFS object5718Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter5719 .track_work_item_created_action5720 behaves like work item unique counter5721 tracks a unique event only once5722 when author is nil5723 does not track the event5724 .track_work_item_title_changed_action5725 behaves like work item unique counter5726 tracks a unique event only once5727 when author is nil5728 does not track the event5729 .track_work_item_date_changed_action5730 behaves like work item unique counter5731 tracks a unique event only once5732 when author is nil5733 does not track the event5734 .track_work_item_labels_changed_action5735 behaves like work item unique counter5736 tracks a unique event only once5737 when author is nil5738 does not track the event5739 .track_work_item_milestone_changed_action5740 behaves like work item unique counter5741 tracks a unique event only once5742 when author is nil5743 does not track the event5744Mutations::Environments::Create5745 # order random5746 #resolve5747 when service execution succeeded5748 returns no errors5749 creates the environment5750 when service cannot create the attribute5751 returns an error5752 when setting cluster agent ID to the environment5753 sets the cluster agent to the environment5754 when user is reporter who does not have permission to access the environment5755 raises an error5756Gitlab::Email::AttachmentUploader5757 #execute5758 uploads all attachments and returns their links5759 with a signed message5760 uploads all attachments except the signature5761 with a signed message with mixed protocol prefix5762 uploads all attachments except the signature5763 with a message with no content type5764 uploads all attachments except the signature5765Gitlab::Database::Migrations::BatchedMigrationLastId5766 # order random5767 base_model: Ci::ApplicationRecord(abstract)5768 #read5769 when the file exists and have content5770 is expected to eq 995771 when the file exists and is blank5772 is expected to be nil5773 when the file doesn't exists5774 is expected to be nil5775 #store5776 creates the file properly5777 stores the proper id in the file5778 base_model: ApplicationRecord(abstract)5779 #read5780 when the file exists and have content5781 is expected to eq 995782 when the file exists and is blank5783 is expected to be nil5784 when the file doesn't exists5785 is expected to be nil5786 #store5787 creates the file properly5788 stores the proper id in the file5789Security::CiConfiguration::SastIacBuildAction5790 with existing .gitlab-ci.yml and when the ci config file configuration was not set5791 behaves like existing .gitlab-ci.yml tests5792 with existing .gitlab-ci.yml5793 sast iac has not been included5794 template includes are an array5795 generates the correct YML5796 template include is not an array5797 generates the correct YML5798 secret_detection has been included5799 secret_detection template include are an array5800 generates the correct YML5801 secret_detection template include is not an array5802 generates the correct YML5803 with existing .gitlab-ci.yml and when the ci config file configuration was deleted5804 behaves like existing .gitlab-ci.yml tests5805 with existing .gitlab-ci.yml5806 sast iac has not been included5807 template includes are an array5808 generates the correct YML5809 template include is not an array5810 generates the correct YML5811 secret_detection has been included5812 secret_detection template include are an array5813 generates the correct YML5814 secret_detection template include is not an array5815 generates the correct YML5816 with no .gitlab-ci.yml5817 autodevops disabled5818 generates the correct YML5819 with autodevops enabled5820 generates the correct YML5821layouts/group5822 # order random5823 without ability to invite members5824 is expected not to have visible css ".js-invite-members-modal"5825 with ability to invite members5826 is expected to have visible css ".js-invite-members-modal"5827MilestonePresenter5828 #milestone_path5829 returns correct path5830Ci::Runners::ProcessRunnerVersionUpdateService5831 #execute5832 with upgrade check returning error5833 does not update ci_runner_versions records5834 when fetching runner releases is disabled5835 does not update ci_runner_versions records5836 with successful result from upgrade check5837 with no existing ci_runner_version record5838 creates ci_runner_versions record5839 with existing ci_runner_version record5840 updates ci_runner_versions record5841 with up-to-date ci_runner_version record5842 does not update ci_runner_versions record5843Users::UpdateHighestMemberRoleService5844 #execute5845 when user_highest_role already exists5846 when the current highest access level equals the already stored highest access level5847 does not update the highest access level5848 when the current highest access level does not equal the already stored highest access level5849 updates the highest access level5850 when user_highest_role does not exist5851 creates an user_highest_role object to store the highest access level5852Gitlab::Usage::Metrics::Instrumentations::CountUsersWithMlCandidatesMetric5853 # order random5854 behaves like a correct instrumented metric value and query5855 behaves like a correct instrumented metric value5856 has correct value5857 behaves like a correct instrumented metric query5858 has correct generate query5859Gitlab::Ci::Matching::BuildMatcher5860 .new5861 when attributes are missing5862 is expected to raise KeyError5863 with attributes5864 is expected to eq true5865 is expected to eq ["tag1", "tag2"]5866 is expected to eq [1, 2, 3]5867 is expected to eq :my_project5868 #protected?5869 when protected is set to true5870 is expected to be truthy5871 when protected is set to false5872 is expected to be falsey5873 #has_tags?5874 when tags are present5875 is expected to be truthy5876 when tags are empty5877 is expected to be falsey5878Gitlab::DependencyLinker::PodspecLinker5879 .support?5880 supports *.podspec5881 does not support other files5882 #link5883 does not link the pod name5884 links the license5885 links the homepage5886 links the source URL5887 links dependencies5888DesignUserMention5889 associations5890 is expected to belong to design required: false5891 is expected to belong to note required: false5892 behaves like has user mentions5893 #has_mentions?5894 when no mentions5895 returns false5896 when mentioned_users_ids not null5897 returns true5898 when mentioned projects5899 returns true5900 when mentioned groups5901 returns true5902groups/milestones/index.html.haml5903 behaves like milestone empty states5904 with no milestones5905 shows empty state5906 does not show tabs or searchbar5907 with no open milestones5908 shows tabs and searchbar5909 shows empty state5910 with no closed milestones5911 shows tabs and searchbar5912 shows empty state on closed milestones5913CreatePipelineWorker5914 #perform5915 when a project not found5916 does not call the Service5917 when a user not found5918 does not call the Service5919 when everything is ok5920 calls the Service5921Mutations::CustomerRelations::Contacts::Update5922 is expected to require graphql authorizations :admin_crm_contact5923 #resolve5924 when the user does not have permission to update a contact5925 raises an error5926 when the contact does not exist5927 raises an error5928 when the user has permission to update a contact5929 updates the organization with correct values5930Gitlab::Git::BlameMode5931 # order random5932 #full?5933 is expected to be falsey5934 when `blame_page_pagination` is disabled5935 is expected to be truthy5936 #pagination?5937 is expected to be truthy5938 when `streaming` params is enabled5939 is expected to be falsey5940 when `no_pagination` param is provided5941 is expected to be falsey5942 when `blame_page_pagination` is disabled5943 is expected to be falsey5944 #streaming?5945 is expected to be falsey5946 when streaming param is provided5947 is expected to be truthy5948Gitlab::Memory::Watchdog::Handlers::SidekiqHandler5949 # order random5950 #call5951 when stop is received after TSTP5952 behaves like handler issues kill command5953 logs sending signal5954 sends TERM to the current process5955 when stop is received after TERM5956 behaves like handler issues kill command5957 logs sending signal5958 sends TERM to the current process5959 when stop is not received5960 when process is not group leader5961 behaves like handler issues kill command5962 logs sending signal5963 sends TERM to the current process5964 when process is a group leader5965 behaves like handler issues kill command5966 logs sending signal5967 sends TERM to the current process5968Ci::BuildFinishedWorker5969 #perform5970 when build exists5971 calculates coverage and calls hooks5972 when build is failed5973 adds a todo5974 when a build can be auto-retried5975 does not add a todo5976 when build has a chat5977 schedules a ChatNotification job5978 when it has a token5979 removes the token5980 when build does not exist5981 does not raise exception5982Terraform::StatesFinder5983 #execute5984 is expected to contain exactly #<Terraform::State id: 1, project_id: 1001, created_at: "2023-07-27 04:51:05.215634739 +0000", update...7826b5fa", name: "state-1", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0> and #<Terraform::State id: 2, project_id: 1001, created_at: "2023-07-27 04:51:05.220306028 +0000", update...c53cde14", name: "state-2", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0>5985 user does not have permission5986 is expected to be empty5987 filtering by name5988 name does not match5989 is expected to be empty5990 name does match5991 is expected to contain exactly #<Terraform::State id: 1, project_id: 1001, created_at: "2023-07-27 04:51:05.215634739 +0000", update...7826b5fa", name: "state-1", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0>5992ProgrammingLanguagesHelper5993 # order random5994 .programming_languages5995 callings ProgrammingLanguage.most_popular5996 .language_state_class5997 when language param matches5998 returns `is-active`5999 when language param does not match6000 returns ``6001 .search_language_placeholder6002 with no `language` param6003 returns a placeholder6004 with a `language` param6005 when invalid6006 returns a placeholder6007 when valid6008 returns the chosen language6009Packages::Debian::ParseDebian822Service6010 with dpkg-deb --field output6011 return as expected, preserving order6012 with control file6013 return as expected, preserving order6014 with empty input6015 return a empty hash6016 with unexpected continuation line6017 raise error6018 with duplicate field6019 raise error6020 with incorrect input6021 raise error6022 with duplicate section6023 raise error6024Mutations::Security::CiConfiguration::BaseSecurityAnalyzer6025 raises a NotImplementedError error if the resolve method is called on the base class6026Gitlab::Ci::Reports::Security::Locations::SecretDetection6027 behaves like vulnerability location6028 #initialize6029 when all params are given6030 initializes an instance6031 param: :file_path6032 when param file_path is missing6033 raises an error6034 param: :start_line6035 when param start_line is missing6036 raises an error6037 #fingerprint6038 generates expected fingerprint6039 #fingerprint_path6040 generates expected fingerprint6041 #==6042 returns true when fingerprints are equal6043 returns false when fingerprints are different6044notify/changed_milestone_email.html.haml6045 milestone without start and due dates6046 renders without date range6047 milestone with start and due dates6048 renders with date range6049RuboCop::Cop::Migration::BackgroundMigrationMissingActiveConcern6050 # order random6051 when outside of a migration6052 behaves like offense is not registered6053 does not register any offenses6054 in ee background migration6055 when scope_to is not used inside prepended block6056 does not register any offenses6057 when scope_to is used inside prepended block6058 does not register any offenses if the module does extend ActiveSupport::Concern6059 registers an offense if the module does not extend ActiveSupport::Concern6060 in non-ee background migration6061 behaves like offense is not registered6062 does not register any offenses6063Gitlab::Auth::Crowd::Authentication6064 login6065 finds the user if authentication is successful6066 is false if the user does not exist6067 is false if the authentication fails6068 fails when crowd is disabled6069 fails if no login is supplied6070 fails if no password is supplied6071Gitlab::Ci::Status::Failed6072 #text6073 is expected to eq "failed"6074 #label6075 is expected to eq "failed"6076 #icon6077 is expected to eq "status_failed"6078 #favicon6079 is expected to eq "favicon_status_failed"6080 #group6081 is expected to eq "failed"6082 #details_path6083 is expected to be nil6084ClusterEntity6085 #as_json6086 when provider type is gcp6087 when status is creating6088 has corresponded data6089 when status is errored6090 has corresponded data6091 when provider type is user6092 has corresponded data6093Blobs::NotebookPresenter6094 highlight receives markdown6095Gitlab::ExceptionsApp6096 .call6097 for a 500 error6098 for an HTML request6099 fills in the request ID6100 HTML-escapes the request ID6101 returns an empty 500 when the 500.html page cannot be found6102 for a JSON request6103 does not include the request ID6104 for a 404 error6105 returns a 404 response that does not include the request ID6106GroupCustomAttribute6107 assocations6108 is expected to belong to group required: false6109 validations6110 is expected to validate that :group cannot be empty/falsy6111 is expected to validate that :key cannot be empty/falsy6112 is expected to validate that :value cannot be empty/falsy6113 is expected to validate that :key is case-sensitively unique within the scope of :group_id6114BulkImports::Projects::Pipelines::CommitNotesPipeline6115 # order random6116 #run6117 imports ci pipeline notes into destination project6118Ml::CandidateMetadata6119 # order random6120 uniqueness of name6121 is unique within candidate6122 associations6123 is expected to belong to candidate required: false6124Peek::Views::Rugged6125 returns no results6126 returns aggregated results6127Packages::Debian::FindOrCreateIncomingService6128 #execute6129 run once6130 creates a new package6131 behaves like assigns the package creator6132 assigns the package creator6133 run twice6134 returns the same object6135Gitlab::AnonymousSession6136 removes obsolete lookup through ip entries6137 #store_session_ip6138 adds session id to proper key6139 adds expiration time to key6140 when there is already one session6141 increments the session count6142 #stored_sessions6143 returns all anonymous sessions per ip6144Metrics::UsersStarredDashboards::DeleteService6145 #execute6146 without dashboard_path6147 does not scope user starred dashboards by dashboard path6148 with dashboard_path6149 does scope user starred dashboards by dashboard path6150Banzai::Filter::References::AbstractReferenceFilter6151 #data_attributes_for6152 is not an XSS vector6153 abstract methods6154 #find_object6155 raises NotImplementedError6156 #url_for_object6157 raises NotImplementedError6158Gitlab::Ci::Variables::Downstream::ExpandableVariableGenerator6159 # order random6160 #for6161 when given a variable without interpolation6162 returns an array containing the variable6163 when given a variable with interpolation6164 returns an array containing the expanded variables6165 when given a variable with nested interpolation6166 returns an array containing the expanded variables6167 when given a variable with expansion on a file variable6168 when expand_file_refs is false6169 returns an array containing the unexpanded variable and the file variable dependency6170 when expand_file_refs is true6171 returns an array containing the expanded variables6172ResourceEvents::AbuseReportEvent6173 # order random6174 validations6175 is expected to be valid6176 is expected to validate that :action cannot be empty/falsy6177 associations6178 is expected to belong to abuse_report required: true6179 is expected to belong to user optional: true6180 #success_message6181 returns a success message for the action6182RuboCop::Cop::Graphql::ResolverType6183 # order random6184 does not add an offense for resolvers that have a type call6185 adds an offense when there is no type annotation6186 does not add an offense unless the class is named using the Resolver convention6187 ignores type calls on other objects6188MergeRequests::Mergeability::CheckBrokenStatusService6189 #execute6190 when the merge request is broken6191 returns a check result with status failed6192 when the merge request is not broken6193 returns a check result with status success6194 #skip?6195 returns false6196 #cacheable?6197 returns false6198Gitlab::View::Presenter::Delegated6199 includes Gitlab::View::Presenter::Base6200 #initialize6201 takes arbitrary key/values and exposes them6202 raise an error if the presentee already respond to method6203 delegation6204 forwards missing methods to subject6205ProductAnalytics::BuildGraphService6206 returns a valid graph hash6207RuboCop::Cop::Migration::AddConcurrentForeignKey6208 # order random6209 when outside of a migration6210 does not register any offenses6211 when in a migration6212 registers an offense when using add_foreign_key6213 does not register an offense when a `NOT VALID` foreign key is added6214 does not register an offense when `add_foreign_key` is within `with_lock_retries`6215PersonalAccessTokenSerializer6216 #represent6217 can render a single token6218 can render a collection of tokens6219ExportCsvWorker6220 delegates call to IssuableExportCsvWorker6221Types::CommitSignatures::SshSignatureType6222 # order random6223 is expected to eq "SshSignature"6224 is expected to include Types::CommitSignatureInterface6225 is expected to require graphql authorizations :download_code6226 contains attributes related to SSH signatures6227Types::DataTransfer::ProjectDataTransferType6228 # order random6229 includes the specific fields6230 #total_egress6231 returns mock data6232 when data_transfer_monitoring_mock_data is disabled6233 calls sum on active record relation6234ExternalLinkHelper6235 returns external link with icon6236 allows options when creating external link with icon6237 sanitizes and returns external link with icon6238ObjectStorage::DeleteStaleDirectUploadsService6239 # order random6240 #execute6241 only deletes stale entries6242 when a stale entry does not have a matching object in the storage6243 does not fail and still remove the stale entry6244 when timeout happens6245 completes the current iteration and reports information about total entries6246AnalyticsBuildSerializer6247 when there is a single object provided6248 contains important elements of analyticsBuild6249OneTrustHelper6250 #one_trust_enabled?6251 with ecomm_instrumentation feature flag disabled6252 is expected to be falsey6253 with ecomm_instrumentation feature flag enabled6254 when no id is set6255 is expected to be falsey6256Gitlab::SidekiqMiddleware::QueryAnalyzer6257 the PreventCrossDatabaseModification6258 #call6259 when there is a cross modification6260 detects cross modifications and tracks exception6261 when the detect_cross_database_modification is disabled6262 does not detect cross modifications6263 when there is no cross modification6264 does not log anything6265RuboCop::Cop::Gitlab::Json6266 # order random6267 when ::JSON is called in EE6268 registers an offense and autocorrects6269 when ::JSON is called6270 registers an offense and autocorrects6271 when ActiveSupport::JSON is called6272 registers an offense and autocorrects6273Types::CustomerRelations::ContactSortEnum6274 is expected to eq "ContactSort"6275 exposes all the contact sort values6276 behaves like common sort values6277 exposes all the existing common sort values6278Packages::Npm::PackagePresenter6279 #name6280 returns the name6281 #versions6282 returns the versions6283 #dist_tags6284 returns the dist_tags6285Gitlab::Search::SortOptions6286 .sort_and_direction6287 using order_by and sort6288 returns matched options6289 using just sort6290 returns matched options6291 when unknown option6292 returns unknown6293WebpackHelper6294 #prefetch_link_tag6295DEPRECATION WARNING: The asset "foo.js" is not present in the asset pipeline.6296Falling back to an asset that may be in the public folder.6297This behavior is deprecated and will be removed.6298To bypass the asset pipeline and preserve this behavior,6299use the `skip_pipeline: true` option.6300 (called from prefetch_link_tag at /builds/gitlab-org/gitlab/app/helpers/webpack_helper.rb:5)6301 returns prefetch link tag6302 #webpack_preload_asset_tag6303 preloads the resource by default6304 prefetches the resource if explicitly asked6305Types::DescriptionVersionType6306 # order random6307 is expected to have graphql field :description6308 is expected to require graphql authorizations :read_issuable6309 is expected to have graphql field :id6310Types::IssuableSearchableFieldEnum6311 is expected to eq "IssuableSearchableField"6312 exposes all the issuable searchable fields6313Gitlab::Utils::MergeHash6314 # order random6315 .crush6316 can flatten a hash to each element6317 .elements6318 deep merges an array of elements6319Glfm::VerifyAllGeneratedFilesAreUpToDate#process6320 # order random6321 when repo is clean6322 when all generated files are up to date6323 does not raise an error6324 when generated file(s) are not up to date6325ERROR: The following files were modified by running GLFM scripts. Please review, verify, and commit the changes:6326M /builds/gitlab-org/gitlab/glfm_specification/output_example_snapshots6327See the CI artifacts for the modified version of the files.6328This is the output of `git diff`:6329 raises an error6330 when repo is dirty6331 raises an error6332Preloaders::RunnerManagerPolicyPreloader6333 # order random6334 avoids N+1 queries when authorizing a list of runner managers6335Types::Ci::Config::GroupType6336 is expected to eq "CiConfigGroup"6337 exposes the expected fields6338ServicePing::PermitDataCategories6339 #execute6340 when usage ping setting is set to true6341 returns all categories6342 when usage ping setting is set to false6343 returns all categories6344Types::AvailabilityEnum6345 is expected to eq "AvailabilityEnum"6346 exposes all the existing access levels6347Gitlab::GrapeLogging::Loggers::FilterParameters6348 # order random6349 .parameters6350 when the log_safety setting is provided6351 includes safe parameters, and filters unsafe ones6352 when the log_safety is not provided6353 behaves like the normal parameter filter6354Types::UserPreferencesType6355 is expected to eq "UserPreferences"6356 exposes the expected fields6357Gitlab::Metrics::Delta6358 #compared_with6359 returns the delta as a Numeric6360 bases the delta on a previously used value6361Gitlab::Ci::Input::Arguments::Unknown6362 # order random6363 raises an error when someone tries to evaluate the value6364 .matches?6365 always matches6366Integrations::HarborSerializers::ArtifactSerializer6367 represents Integrations::HarborSerializers::ArtifactEntity entities6368groups/observability/observability.html.haml6369 # order random6370 renders as expected6371Gitlab::Nav::TopNavMenuItem6372 .build6373 builds a hash from the given args6374Gitlab::GithubImport::ImportProtectedBranchWorker6375 # order random6376 #import6377 imports protected branch rule6378Ci::TriggerSerializer6379 #represent6380 matches schema6381TodosDestroyer::PrivateFeaturesWorker6382 calls the Todos::Destroy::PrivateFeaturesService with the params it was given6383Gitlab::Metrics::Transaction6384 #run6385 is expected to raise NotImplementedError6386CiPlatformMetricsUpdateCronWorker6387 #perform6388 inserts new platform metrics6389Types::Packages::PackageStatusEnum6390 exposes all package statuses6391Gitlab::Usage::Metrics::Instrumentations::GitalyApdexMetric6392 # order random6393 gathers gitaly apdex6394ForkNamespaceSerializer6395 represents ForkNamespaceEntity entities6396Gitlab::GithubImport::ImportCollaboratorWorker6397 # order random6398 #import6399 imports a collaborator6400Knapsack report was generated. Preview:6401{6402 "spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb": 331.2197862240005,6403 "spec/lib/gitlab/auth_spec.rb": 175.2773840130003,6404 "spec/services/merge_requests/squash_service_spec.rb": 97.78693533000023,6405 "spec/models/integrations/jira_spec.rb": 78.95485358499991,6406 "spec/services/suggestions/apply_service_spec.rb": 84.83381912699951,6407 "spec/lib/gitlab/diff/position_tracer/line_strategy_spec.rb": 91.11392648200035,6408 "spec/services/ci/unlock_artifacts_service_spec.rb": 64.98169601399968,6409 "spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb": 40.90935607400024,6410 "spec/services/merge_requests/close_service_spec.rb": 39.22104092099926,6411 "spec/models/hooks/web_hook_spec.rb": 33.06827219300067,6412 "spec/finders/groups_finder_spec.rb": 45.84039217499958,6413 "spec/lib/gitlab/closing_issue_extractor_spec.rb": 34.97493987599955,6414 "spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb": 29.99511190799967,6415 "spec/services/bulk_imports/create_service_spec.rb": 24.5592143949998,6416 "spec/lib/gitlab/usage/metric_definition_spec.rb": 22.52492808399984,6417 "spec/helpers/blob_helper_spec.rb": 27.18842991299971,6418 "spec/models/list_spec.rb": 21.84917330100052,6419 "spec/workers/process_commit_worker_spec.rb": 25.435591092999857,6420 "spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb": 24.70056243199997,6421 "spec/models/integrations/prometheus_spec.rb": 23.897625137000432,6422 "spec/lib/gitlab/diff/file_collection/merge_request_diff_spec.rb": 24.14995778299999,6423 "spec/scripts/trigger-build_spec.rb": 17.725424191000457,6424 "spec/services/post_receive_service_spec.rb": 21.02263067400054,6425 "spec/finders/ci/pipelines_for_merge_request_finder_spec.rb": 19.911631037000006,6426 "spec/serializers/pipeline_details_entity_spec.rb": 18.363862420999794,6427 "spec/graphql/types/ci/job_token_scope_type_spec.rb": 16.108699420999983,6428 "spec/experiments/application_experiment_spec.rb": 13.300368713000353,6429 "spec/services/protected_branches/cache_service_spec.rb": 13.402382092999687,6430 "spec/views/layouts/application.html.haml_spec.rb": 13.651763349999783,6431 "spec/uploaders/packages/package_file_uploader_spec.rb": 11.494985930000439,6432 "spec/lib/gitlab/ci/variables/builder/pipeline_spec.rb": 13.318713450999894,6433 "spec/services/google_cloud/generate_pipeline_service_spec.rb": 13.747059521000665,6434 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job_spec.rb": 13.105381569999736,6435 "spec/serializers/stage_entity_spec.rb": 12.791101568999693,6436 "spec/models/ci/variable_spec.rb": 12.001771933999407,6437 "spec/services/projects/auto_devops/disable_service_spec.rb": 12.074894256000334,6438 "spec/graphql/types/user_type_spec.rb": 16.15604829699987,6439 "spec/services/merge_requests/export_csv_service_spec.rb": 8.868380344999423,6440 "spec/lib/gitlab/database/load_balancing/sidekiq_server_middleware_spec.rb": 11.703562671000327,6441 "spec/lib/gitlab/middleware/multipart_spec.rb": 10.659777628000484,6442 "spec/graphql/mutations/issues/set_confidential_spec.rb": 12.548090822999256,6443 "spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb": 12.20826892399964,6444 "spec/services/system_notes/commit_service_spec.rb": 13.274966404999759,6445 "spec/lib/gitlab/ci/pipeline/expression/lexeme/and_spec.rb": 7.20199970900012,6446 "spec/services/labels/transfer_service_spec.rb": 12.91302953899958,6447 "spec/models/hooks/web_hook_log_spec.rb": 11.124163765000048,6448 "spec/services/packages/maven/metadata/sync_service_spec.rb": 13.58192226600022,6449 "spec/serializers/environment_entity_spec.rb": 9.754839185000492,6450 "spec/helpers/version_check_helper_spec.rb": 9.053880448999735,6451 "spec/services/jira_import/start_import_service_spec.rb": 8.553366325999377,6452 "spec/services/users/authorized_build_service_spec.rb": 9.188474886000222,6453 "spec/services/security/ci_configuration/container_scanning_create_service_spec.rb": 9.519850895000673,6454 "spec/services/clusters/agents/authorizations/user_access/refresh_service_spec.rb": 11.459812951999993,6455 "spec/lib/gitlab/sidekiq_status_spec.rb": 8.497636040999168,6456 "spec/models/concerns/atomic_internal_id_spec.rb": 8.805490202000328,6457 "spec/services/ci/create_pipeline_service/rate_limit_spec.rb": 7.357975597999939,6458 "spec/lib/gitlab/github_import/importer/issue_importer_spec.rb": 7.335076349999326,6459 "spec/services/notes/post_process_service_spec.rb": 7.994984477999424,6460 "spec/finders/packages/maven/package_finder_spec.rb": 7.827203004000694,6461 "spec/lib/sidebars/groups/menus/packages_registries_menu_spec.rb": 5.6963045149996105,6462 "spec/finders/groups/accepting_group_transfers_finder_spec.rb": 7.583100936999472,6463 "spec/workers/container_registry/migration/observer_worker_spec.rb": 7.881959258999814,6464 "spec/models/milestone_note_spec.rb": 6.608128188999217,6465 "spec/lib/gitlab/ci/reports/sbom/component_spec.rb": 5.590296333999504,6466 "spec/lib/gitlab/patch/redis_cache_store_spec.rb": 8.153442102999179,6467 "spec/presenters/blobs/unfold_presenter_spec.rb": 5.965524539000398,6468 "spec/tooling/lib/tooling/mappings/partial_to_views_mappings_spec.rb": 4.445126921999872,6469 "spec/tasks/gitlab/db/migration_fix_15_11_rake_spec.rb": 4.506565817000592,6470 "spec/services/ci/create_pipeline_service/include_spec.rb": 5.338689647999672,6471 "spec/lib/gitlab/checks/lfs_integrity_spec.rb": 8.745707988000504,6472 "spec/presenters/projects/import_export/project_export_presenter_spec.rb": 6.100923755999247,6473 "spec/models/merge_request_reviewer_spec.rb": 4.440612422000413,6474 "spec/models/users/namespace_commit_email_spec.rb": 3.362390862999746,6475 "spec/workers/ci/external_pull_requests/create_pipeline_worker_spec.rb": 5.968973738999921,6476 "spec/lib/banzai/reference_parser/external_issue_parser_spec.rb": 6.43267555500006,6477 "spec/workers/bulk_import_worker_spec.rb": 3.8884021640005813,6478 "spec/lib/gitlab/spamcheck/result_spec.rb": 5.392265151999709,6479 "spec/rubocop/cop/inject_enterprise_edition_module_spec.rb": 5.73802711999997,6480 "spec/services/users/update_canonical_email_service_spec.rb": 3.8641942570002357,6481 "spec/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb": 4.4303898640000625,6482 "spec/initializers/settings_spec.rb": 4.812836496999807,6483 "spec/workers/concerns/worker_context_spec.rb": 2.2848153350005305,6484 "spec/views/projects/jobs/_build.html.haml_spec.rb": 2.5683535990001474,6485 "spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb": 5.4043618120003885,6486 "spec/services/ci/compare_test_reports_service_spec.rb": 5.2835826329992415,6487 "spec/models/performance_monitoring/prometheus_panel_spec.rb": 4.498932127000444,6488 "spec/lib/gitlab/database/count/tablesample_count_strategy_spec.rb": 4.10941287300011,6489 "spec/serializers/deployment_serializer_spec.rb": 3.462941795000006,6490 "spec/components/pajamas/empty_state_component_spec.rb": 4.773073491000105,6491 "spec/lib/gitlab/ci/config/yaml/interpolator_spec.rb": 5.774263407000035,6492 "spec/lib/gitlab/database/async_indexes/index_creator_spec.rb": 1.7696346530001392,6493 "spec/lib/gitlab/ci/status/pipeline/common_spec.rb": 2.7636256709993177,6494 "spec/lib/gitlab/null_request_store_spec.rb": 4.87125854199985,6495 "spec/models/onboarding/completion_spec.rb": 1.8635168049995627,6496 "spec/models/projects/triggered_hooks_spec.rb": 4.8950132199997825,6497 "spec/models/group_deploy_key_spec.rb": 3.4169631889999437,6498 "spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb": 4.373027897999236,6499 "spec/graphql/resolvers/package_pipelines_resolver_spec.rb": 4.42208906399992,6500 "spec/lib/gitlab/metrics/subscribers/rack_attack_spec.rb": 5.836123700999451,6501 "spec/models/packages/npm_spec.rb": 1.3524743030002355,6502 "spec/services/users/unban_service_spec.rb": 6.224390094999762,6503 "spec/services/ci/create_pipeline_service/creation_errors_and_warnings_spec.rb": 3.16960766199918,6504 "spec/lib/gitlab/git/attributes_parser_spec.rb": 7.055373846000293,6505 "spec/serializers/ci/dag_pipeline_entity_spec.rb": 5.596512004000033,6506 "spec/lib/gitlab/github_import/importer/events/changed_reviewer_spec.rb": 3.9119786219998787,6507 "spec/models/packages/helm/file_metadatum_spec.rb": 1.4920072699997036,6508 "spec/workers/projects/import_export/relation_export_worker_spec.rb": 7.0789424249996955,6509 "spec/lib/gitlab/ci/status/build/retried_spec.rb": 4.712221646999751,6510 "spec/finders/uploader_finder_spec.rb": 5.075319212000068,6511 "spec/services/work_items/callbacks/award_emoji_spec.rb": 2.522400541999559,6512 "spec/services/clusters/agents/delete_expired_events_service_spec.rb": 3.6115900510003485,6513 "spec/lib/gitlab/ci/variables/builder/group_spec.rb": 5.559579246999419,6514 "spec/lib/bulk_imports/common/graphql/get_members_query_spec.rb": 1.8619444149999254,6515 "spec/services/environments/update_service_spec.rb": 6.556861762999688,6516 "spec/services/bulk_imports/file_decompression_service_spec.rb": 2.0842183140002817,6517 "spec/lib/gitlab/gl_repository_spec.rb": 2.181095965000168,6518 "spec/models/spam_log_spec.rb": 5.196314302000246,6519 "spec/helpers/projects/alert_management_helper_spec.rb": 2.543950219999715,6520 "spec/finders/environments/environments_finder_spec.rb": 6.171575770000345,6521 "spec/lib/gitlab/alert_management/payload_spec.rb": 1.5314716960001533,6522 "spec/lib/bulk_imports/projects/graphql/get_snippet_repository_query_spec.rb": 4.2494394909999755,6523 "spec/lib/gitlab/ci/project_config_spec.rb": 2.186096104999706,6524 "spec/lib/banzai/reference_parser/project_parser_spec.rb": 3.5669464439997682,6525 "spec/views/notify/user_deactivated_email.text.erb_spec.rb": 2.67318842900022,6526 "spec/graphql/types/packages/cleanup/policy_type_spec.rb": 2.5300836520000303,6527 "spec/lib/gitlab/counters/legacy_counter_spec.rb": 1.6419881760002681,6528 "spec/lib/gitlab_settings/settings_spec.rb": 1.2586626820002493,6529 "spec/lib/banzai/pipeline_spec.rb": 2.57975870700011,6530 "spec/initializers/global_id_spec.rb": 2.9187147459997504,6531 "spec/helpers/operations_helper_spec.rb": 2.025020998999935,6532 "spec/services/import_export_clean_up_service_spec.rb": 2.725842783999724,6533 "spec/lib/gitlab/memory/reports/heap_dump_spec.rb": 2.6953385570004684,6534 "spec/lib/gitlab/prometheus/metric_group_spec.rb": 4.362511710000035,6535 "spec/graphql/resolvers/merge_request_pipelines_resolver_spec.rb": 2.990193807999276,6536 "spec/tasks/gitlab/generate_sample_prometheus_data_rake_spec.rb": 2.694153746999291,6537 "spec/routing/environments_spec.rb": 2.5256371920004312,6538 "spec/graphql/resolvers/releases_resolver_spec.rb": 4.330180472999928,6539 "spec/graphql/mutations/issues/move_spec.rb": 4.313140683999336,6540 "spec/components/pajamas/concerns/checkbox_radio_label_with_help_text_spec.rb": 1.2298639350001395,6541 "spec/rubocop/cop/search/avoid_checking_finished_on_deprecated_migrations_spec.rb": 0.8844665360002182,6542 "spec/lib/prometheus/pid_provider_spec.rb": 1.1817778689992338,6543 "spec/models/concerns/strip_attribute_spec.rb": 1.2564516319998802,6544 "spec/workers/packages/npm/create_metadata_cache_worker_spec.rb": 2.163903165999727,6545 "spec/services/ci/disable_user_pipeline_schedules_service_spec.rb": 2.463285038000322,6546 "spec/helpers/git_helper_spec.rb": 1.0717721290002373,6547 "spec/lib/gitlab/ci/status/build/canceled_spec.rb": 2.0839006839996728,6548 "spec/lib/gitlab/ci/decompressed_gzip_size_validator_spec.rb": 3.642504796999674,6549 "spec/finders/groups/accepting_project_creations_finder_spec.rb": 2.2822143150006013,6550 "spec/views/projects/commits/show.html.haml_spec.rb": 2.0998535830003675,6551 "spec/services/import/gitlab_projects/file_acquisition_strategies/remote_file_spec.rb": 4.924100007000561,6552 "spec/lib/gitlab/ci/reports/security/scanned_resource_spec.rb": 0.6560072080001191,6553 "spec/services/lfs/push_service_spec.rb": 2.1441278090005653,6554 "spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb": 3.2813437820004765,6555 "spec/graphql/mutations/environments/create_spec.rb": 3.5476045460000023,6556 "spec/lib/gitlab/email/attachment_uploader_spec.rb": 2.500256384999375,6557 "spec/lib/gitlab/database/migrations/batched_migration_last_id_spec.rb": 4.885554621000665,6558 "spec/lib/security/ci_configuration/sast_iac_build_action_spec.rb": 1.9207156989996292,6559 "spec/views/layouts/group.html.haml_spec.rb": 1.4615770420004992,6560 "spec/presenters/milestone_presenter_spec.rb": 0.8610648889998629,6561 "spec/services/ci/runners/process_runner_version_update_service_spec.rb": 5.05570043500029,6562 "spec/services/users/update_highest_member_role_service_spec.rb": 2.027563599000132,6563 "spec/lib/gitlab/usage/metrics/instrumentations/count_users_with_ml_candidates_metric_spec.rb": 1.917276729999685,6564 "spec/lib/gitlab/ci/matching/build_matcher_spec.rb": 1.712995808999949,6565 "spec/lib/gitlab/dependency_linker/podspec_linker_spec.rb": 4.353129300000546,6566 "spec/models/design_user_mention_spec.rb": 1.258909881999898,6567 "spec/views/groups/milestones/index.html.haml_spec.rb": 1.4381879640004627,6568 "spec/workers/create_pipeline_worker_spec.rb": 3.1449226830000043,6569 "spec/graphql/mutations/customer_relations/contacts/update_spec.rb": 3.0438358430001244,6570 "spec/lib/gitlab/git/blame_mode_spec.rb": 1.533379135999894,6571 "spec/lib/gitlab/memory/watchdog/handlers/sidekiq_handler_spec.rb": 2.987043909000022,6572 "spec/workers/ci/build_finished_worker_spec.rb": 3.2072468180003852,6573 "spec/finders/terraform/states_finder_spec.rb": 1.3937891200002923,6574 "spec/helpers/programming_languages_helper_spec.rb": 1.1517303709997577,6575 "spec/services/packages/debian/parse_debian822_service_spec.rb": 4.010901372999797,6576 "spec/graphql/mutations/security/ci_configuration/base_security_analyzer_spec.rb": 1.4130832860000737,6577 "spec/lib/gitlab/ci/reports/security/locations/secret_detection_spec.rb": 1.3119134369999301,6578 "spec/views/notify/changed_milestone_email.html.haml_spec.rb": 1.329541574000359,6579 "spec/rubocop/cop/migration/background_migration_missing_active_concern_spec.rb": 2.437698931000341,6580 "spec/lib/gitlab/auth/crowd/authentication_spec.rb": 2.7235677729995587,6581 "spec/lib/gitlab/ci/status/failed_spec.rb": 1.1431499419995816,6582 "spec/serializers/cluster_entity_spec.rb": 1.2775449700002355,6583 "spec/presenters/blobs/notebook_presenter_spec.rb": 1.1220085629993264,6584 "spec/lib/gitlab/exceptions_app_spec.rb": 4.02055683099934,6585 "spec/models/group_custom_attribute_spec.rb": 1.3571527020003487,6586 "spec/lib/bulk_imports/projects/pipelines/commit_notes_pipeline_spec.rb": 1.2308317330007412,6587 "spec/models/ml/candidate_metadata_spec.rb": 1.425519825000265,6588 "spec/lib/peek/views/rugged_spec.rb": 1.2888585369992143,6589 "spec/services/packages/debian/find_or_create_incoming_service_spec.rb": 1.2256108040000981,6590 "spec/lib/gitlab/anonymous_session_spec.rb": 2.6436782600003426,6591 "spec/services/metrics/users_starred_dashboards/delete_service_spec.rb": 2.8136983349995717,6592 "spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb": 1.2185385339998902,6593 "spec/lib/gitlab/ci/variables/downstream/expandable_variable_generator_spec.rb": 1.0926506369996787,6594 "spec/models/resource_events/abuse_report_event_spec.rb": 1.0919155260007756,6595 "spec/rubocop/cop/graphql/resolver_type_spec.rb": 2.322470549999707,6596 "spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb": 2.3501778560003004,6597 "spec/lib/gitlab/view/presenter/delegated_spec.rb": 0.8751510669999334,6598 "spec/services/product_analytics/build_graph_service_spec.rb": 0.7947436449994711,6599 "spec/rubocop/cop/migration/add_concurrent_foreign_key_spec.rb": 0.8927029149999726,6600 "spec/serializers/personal_access_token_serializer_spec.rb": 0.8509443399998418,6601 "spec/workers/export_csv_worker_spec.rb": 0.7616719990001002,6602 "spec/graphql/types/commit_signatures/ssh_signature_type_spec.rb": 3.7879781640003785,6603 "spec/graphql/types/data_transfer/project_data_transfer_type_spec.rb": 1.1271915739998803,6604 "spec/helpers/external_link_helper_spec.rb": 0.8204409230002057,6605 "spec/services/object_storage/delete_stale_direct_uploads_service_spec.rb": 0.8741900779996286,6606 "spec/serializers/analytics_build_serializer_spec.rb": 1.08657736799978,6607 "spec/helpers/one_trust_helper_spec.rb": 0.668059438000455,6608 "spec/lib/gitlab/sidekiq_middleware/query_analyzer_spec.rb": 0.8137253139993845,6609 "spec/rubocop/cop/gitlab/json_spec.rb": 2.4590792989993133,6610 "spec/graphql/types/customer_relations/contact_sort_enum_spec.rb": 2.3189325220000683,6611 "spec/presenters/packages/npm/package_presenter_spec.rb": 0.8348445809997429,6612 "spec/lib/gitlab/search/sort_options_spec.rb": 0.8426245909995487,6613 "spec/helpers/webpack_helper_spec.rb": 0.8069244340003934,6614 "spec/graphql/types/description_version_type_spec.rb": 0.7632473680005205,6615 "spec/graphql/types/issuable_searchable_field_enum_spec.rb": 0.6196598320002522,6616 "spec/lib/gitlab/utils/merge_hash_spec.rb": 2.2252510399994208,6617 "spec/scripts/lib/glfm/verify_all_generated_files_are_up_to_date_spec.rb": 2.4815869770000063,6618 "spec/models/preloaders/runner_manager_policy_preloader_spec.rb": 0.8358028310003647,6619 "spec/graphql/types/ci/config/group_type_spec.rb": 0.5994026739999754,6620 "spec/lib/service_ping/permit_data_categories_spec.rb": 0.6193297019999591,6621 "spec/graphql/types/availability_enum_spec.rb": 0.7051640730005602,6622 "spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb": 0.6705630070000552,6623 "spec/graphql/types/user_preferences_type_spec.rb": 0.5965565340002286,6624 "spec/lib/gitlab/metrics/delta_spec.rb": 0.6251822609992814,6625 "spec/lib/gitlab/ci/input/arguments/unknown_spec.rb": 0.6105548430005001,6626 "spec/serializers/integrations/harbor_serializers/artifact_serializer_spec.rb": 2.1458775080000123,6627 "spec/views/groups/observability/observability.html.haml_spec.rb": 0.5596413670000402,6628 "spec/lib/gitlab/nav/top_nav_menu_item_spec.rb": 2.036834079000073,6629 "spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb": 0.45088493799994467,6630 "spec/serializers/ci/trigger_serializer_spec.rb": 0.5356805800001894,6631 "spec/workers/todos_destroyer/private_features_worker_spec.rb": 0.46744516600028874,6632 "spec/lib/gitlab/metrics/transaction_spec.rb": 0.4437502979999408,6633 "spec/workers/ci_platform_metrics_update_cron_worker_spec.rb": 0.4597287670003425,6634 "spec/graphql/types/packages/package_status_enum_spec.rb": 0.5073362419998375,6635 "spec/lib/gitlab/usage/metrics/instrumentations/gitaly_apdex_metric_spec.rb": 0.4940411239995228,6636 "spec/serializers/fork_namespace_serializer_spec.rb": 0.4871391440001389,6637 "spec/workers/gitlab/github_import/import_collaborator_worker_spec.rb": 0.496302102999834466638}6639Knapsack global time execution for tests: 38m 17s6640Pending: (Failures listed here are expected and do not affect your suite's status)6641 1) Packages::PackageFileUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 6642 # No pattern provided, skipping.6643 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86644 2) Packages::PackageFileUploader behaves like builds correct paths #relative_path is relative6645 # Path not set, skipping.6646 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:406647 3) Packages::PackageFileUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 6648 # No pattern provided, skipping.6649 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86650 4) Packages::PackageFileUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 6651 # No pattern provided, skipping.6652 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86653 5) Packages::PackageFileUploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 6654 # No pattern provided, skipping.6655 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86656 6) Packages::PackageFileUploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 6657 # No pattern provided, skipping.6658 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86659 7) Packages::PackageFileUploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 6660 # No pattern provided, skipping.6661 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86662 8) Packages::PackageFileUploader object store is remote behaves like builds correct paths #relative_path is relative6663 # Path not set, skipping.6664 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:406665 9) Packages::PackageFileUploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 6666 # No pattern provided, skipping.6667 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86668 10) Packages::PackageFileUploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 6669 # No pattern provided, skipping.6670 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:86671Finished in 38 minutes 26 seconds (files took 1 minute 15.3 seconds to load)66723101 examples, 0 failures, 10 pending6673Randomized with seed 123346674[TEST PROF INFO] Time spent in factories: 13:17.738 (34.09% of total time)6675RSpec exited with 0.6676No examples to retry, congrats!6678Running after script...6679$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"6689Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy6691Uploading artifacts...6692WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6693coverage/: found 5 matching artifact files and directories 6694crystalball/: found 2 matching artifact files and directories 6695deprecations/: found 8 matching artifact files and directories 6696knapsack/: found 4 matching artifact files and directories 6697rspec/: found 10 matching artifact files and directories 6698WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 6699log/*.log: found 20 matching artifact files and directories 6700WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4749214633/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com6701WARNING: Retrying... context=artifacts-uploader error=request redirected6702Uploading artifacts as "archive" to coordinator... 201 Created id=4749214633 responseStatus=201 Created token=64_Y-PdN6703Uploading artifacts...6704rspec/rspec-*.xml: found 1 matching artifact files and directories 6705WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4749214633/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com6706WARNING: Retrying... context=artifacts-uploader error=request redirected6707Uploading artifacts as "junit" to coordinator... 201 Created id=4749214633 responseStatus=201 Created token=64_Y-PdN6709Job succeeded