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

🤖 GitLab Bot 🤖
1Running with gitlab-runner 16.1.0~beta.59.g83c66823 (83c66823)2 on green-1.shared-gitlab-org.runners-manager.gitlab.com/default Mf8beF5G, system ID: s_673deea48c2a3 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-mf8bef5g-project-278964-concurrent-0 via runner-mf8bef5g-shared-gitlab-org-1690429267-3be71d78...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 | 29.62 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...44Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 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_ynab949Downloading artifacts for retrieve-tests-metadata (4749214304)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214304 responseStatus=200 OK token=64_ynab951Downloading artifacts for setup-test-env (4749214206)...52Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4749214206 responseStatus=200 OK token=64_ynab954Using 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_5_28_report.json125FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json126FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_5_28_report.json127NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_5_28_report.json128SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests_rspec_unit_pg14_5_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-4749214614.json --format RspecJunitFormatter --out rspec/rspec-4749214614.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house -- spec/models/merge_request_spec.rb spec/lib/gitlab/usage_data_metrics_spec.rb spec/finders/snippets_finder_spec.rb spec/lib/gitlab/import_export/project/relation_factory_spec.rb spec/policies/wiki_page_policy_spec.rb spec/services/issuable/bulk_update_service_spec.rb spec/services/resource_access_tokens/create_service_spec.rb spec/serializers/merge_request_widget_entity_spec.rb spec/lib/gitlab/import_export/importer_spec.rb spec/lib/gitlab/email/handler/create_note_handler_spec.rb spec/lib/gitlab/ci/parsers/security/validators/schema_validator_spec.rb spec/models/hooks/project_hook_spec.rb spec/lib/gitlab/background_migration/rebalance_partition_id_spec.rb spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb spec/lib/banzai/color_parser_spec.rb spec/services/members/invitation_reminder_email_service_spec.rb spec/presenters/commit_status_presenter_spec.rb spec/lib/gitlab/process_supervisor_spec.rb spec/helpers/events_helper_spec.rb spec/lib/container_registry/gitlab_api_client_spec.rb spec/services/git/tag_hooks_service_spec.rb spec/services/users/destroy_service_spec.rb spec/services/namespaces/in_product_marketing_emails_service_spec.rb spec/lib/gitlab/gitaly_client/operation_service_spec.rb spec/lib/gitlab/database/gitlab_schema_spec.rb spec/services/users/build_service_spec.rb spec/lib/gitlab/import_export/import_failure_service_spec.rb spec/models/integrations/buildkite_spec.rb spec/lib/gitlab/fake_application_settings_spec.rb spec/services/ci/update_build_state_service_spec.rb spec/services/deployments/link_merge_requests_service_spec.rb spec/services/clusters/create_service_spec.rb spec/presenters/clusterable_presenter_spec.rb spec/helpers/members_helper_spec.rb spec/lib/gitlab/ci/ansi2html_spec.rb spec/models/release_highlight_spec.rb spec/models/ci/build_trace_metadata_spec.rb spec/workers/merge_requests/update_head_pipeline_worker_spec.rb spec/models/project_group_link_spec.rb spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb spec/lib/gitlab/ci/config/entry/release_spec.rb spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb spec/lib/gitlab/diff/suggestion_spec.rb spec/lib/gitlab/diff/suggestions_parser_spec.rb spec/lib/gitlab/graphql/pagination/active_record_array_connection_spec.rb spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb spec/services/deployments/older_deployments_drop_service_spec.rb spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb spec/lib/gitlab/auth/ldap/user_spec.rb spec/models/ci/external_pull_request_spec.rb spec/workers/new_note_worker_spec.rb spec/lib/gitlab/database/async_indexes/migration_helpers_spec.rb spec/lib/bulk_imports/common/pipelines/milestones_pipeline_spec.rb spec/finders/crm/organizations_finder_spec.rb spec/models/fork_network_spec.rb spec/lib/gitlab/consul/internal_spec.rb spec/lib/gitlab/chat/output_spec.rb spec/lib/gitlab/issuable_metadata_spec.rb spec/views/projects/tags/index.html.haml_spec.rb spec/policies/achievements/user_achievement_policy_spec.rb spec/tasks/gitlab/external_diffs_rake_spec.rb spec/lib/gitlab/ci/build/step_spec.rb spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb spec/lib/error_tracking/sentry_client/projects_spec.rb spec/lib/gitlab/github_import/importer/note_importer_spec.rb spec/components/pajamas/banner_component_spec.rb spec/models/ci/runner_namespace_spec.rb spec/lib/gitlab/ci/trace/archive_spec.rb spec/lib/gitlab/checks/container_moved_spec.rb spec/presenters/tree_entry_presenter_spec.rb spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb spec/lib/gitlab/database/postgres_partitioned_table_spec.rb spec/graphql/resolvers/project_packages_resolver_spec.rb spec/lib/gitlab/ci/pipeline/logger_spec.rb spec/helpers/ci/status_helper_spec.rb spec/lib/gitlab/database/query_analyzer_spec.rb spec/models/ci/catalog/resource_spec.rb spec/models/issue_assignee_spec.rb spec/lib/gitlab/database/async_indexes/postgres_async_index_spec.rb spec/lib/gitlab/git/blame_spec.rb spec/services/users/update_todo_count_cache_service_spec.rb spec/models/bulk_imports/export_status_spec.rb spec/components/pajamas/avatar_component_spec.rb spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb spec/lib/gitlab/ci/reports/security/scanner_spec.rb spec/models/identity_spec.rb spec/models/integrations/youtrack_spec.rb spec/rubocop/cop/lint/last_keyword_argument_spec.rb spec/lib/gitlab/changelog/committer_spec.rb spec/services/ml/experiment_tracking/experiment_repository_spec.rb spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb spec/lib/gitlab/safe_request_loader_spec.rb spec/models/concerns/featurable_spec.rb spec/lib/gitlab/database/reindexing/index_selection_spec.rb spec/lib/api/entities/wiki_page_spec.rb spec/workers/update_highest_role_worker_spec.rb spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb spec/graphql/mutations/alert_management/prometheus_integration/create_spec.rb spec/lib/sidebars/user_settings/menus/access_tokens_menu_spec.rb spec/lib/api/helpers/merge_requests_helpers_spec.rb spec/lib/gitlab/zoom_link_extractor_spec.rb spec/lib/gitlab/ci/interpolation/template_spec.rb spec/models/note_diff_file_spec.rb spec/tooling/danger/sidekiq_args_spec.rb spec/services/packages/composer/version_parser_service_spec.rb spec/workers/bulk_imports/relation_export_worker_spec.rb spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb spec/services/packages/create_package_file_service_spec.rb spec/services/service_desk/custom_email_verifications/create_service_spec.rb spec/models/packages/go/module_spec.rb spec/workers/gitlab/github_gists_import/start_import_worker_spec.rb spec/lib/gitlab/git_post_receive_spec.rb spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb spec/models/packages/debian/file_entry_spec.rb spec/lib/gitlab/ci/status/build/action_spec.rb spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb spec/channels/application_cable/connection_spec.rb spec/policies/protected_branch_access_policy_spec.rb spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb spec/services/ci/generate_kubeconfig_service_spec.rb spec/lib/gitlab/hook_data/issue_builder_spec.rb spec/lib/gitlab/import/import_failure_service_spec.rb spec/lib/bulk_imports/pipeline/extracted_data_spec.rb spec/models/custom_emoji_spec.rb spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb spec/graphql/resolvers/error_tracking/sentry_errors_resolver_spec.rb spec/workers/members/expiring_email_notification_worker_spec.rb spec/lib/gitlab/metrics/dashboard/stages/panel_ids_inserter_spec.rb spec/tasks/gitlab/x509/update_rake_spec.rb spec/lib/container_registry/registry_spec.rb spec/services/security/ci_configuration/sast_parser_service_spec.rb spec/lib/gitlab/config/entry/attributable_spec.rb spec/policies/application_setting/term_policy_spec.rb spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb spec/workers/database/ci_namespace_mirrors_consistency_check_worker_spec.rb spec/serializers/evidences/release_entity_spec.rb spec/lib/banzai/reference_parser/mentioned_user_parser_spec.rb spec/lib/gitlab/config/entry/unspecified_spec.rb spec/services/ci/ensure_stage_service_spec.rb spec/workers/concerns/packages/error_handling_spec.rb spec/lib/object_storage/fog_helpers_spec.rb spec/lib/gitlab/background_migration/encrypt_ci_trigger_token_spec.rb spec/graphql/resolvers/group_resolver_spec.rb spec/services/wiki_pages/event_create_service_spec.rb spec/workers/remove_unaccepted_member_invites_worker_spec.rb spec/tooling/danger/bulk_database_actions_spec.rb spec/initializers/rails_yaml_safe_load_spec.rb spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb spec/lib/gitlab/chat/responder_spec.rb spec/lib/bulk_imports/common/extractors/ndjson_extractor_spec.rb spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb spec/lib/gitlab/github_import/importer/lfs_object_importer_spec.rb spec/lib/gitlab/usage_data/topology_spec.rb spec/lib/gitlab/github_import/importer/events/reopened_spec.rb spec/lib/banzai/filter/markdown_engines/base_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_ml_experiments_metric_spec.rb spec/workers/ci/update_locked_unknown_artifacts_worker_spec.rb spec/models/preloaders/group_root_ancestor_preloader_spec.rb spec/serializers/project_mirror_serializer_spec.rb spec/lib/gitlab/route_map_spec.rb spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb spec/views/notify/push_to_merge_request_email.text.haml_spec.rb spec/lib/gitlab/github_import/importer/pull_requests/review_request_importer_spec.rb spec/services/customer_relations/contacts/create_service_spec.rb spec/graphql/types/work_items/available_export_fields_enum_spec.rb spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb spec/models/users/group_callout_spec.rb spec/models/concerns/file_store_mounter_spec.rb spec/lib/gitlab/graphql/batch_key_spec.rb spec/lib/gitlab/manifest_import/manifest_spec.rb spec/services/users/dismiss_group_callout_service_spec.rb spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb spec/lib/gitlab/cache/json_cache_spec.rb spec/workers/groups/update_two_factor_requirement_for_members_worker_spec.rb spec/serializers/group_access_token_serializer_spec.rb spec/views/dashboard/projects/index.html.haml_spec.rb spec/models/concerns/from_set_operator_spec.rb spec/workers/clusters/cleanup/service_account_worker_spec.rb spec/services/pages_domains/create_service_spec.rb spec/serializers/group_link/project_group_link_entity_spec.rb spec/lib/gitlab/memory/watchdog/sidekiq_event_reporter_spec.rb spec/graphql/types/container_repository_type_spec.rb spec/lib/gitlab/sidekiq_signals_spec.rb spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb spec/views/shared/nav/_sidebar.html.haml_spec.rb spec/lib/api/entities/ci/job_request/image_spec.rb spec/services/ci/queue/pending_builds_strategy_spec.rb spec/services/work_items/prepare_import_csv_service_spec.rb spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb spec/tooling/lib/tooling/parallel_rspec_runner_spec.rb spec/validators/sha_validator_spec.rb spec/support_specs/graphql/var_spec.rb spec/models/concerns/safely_change_column_default_spec.rb spec/workers/gitlab/github_import/import_issue_worker_spec.rb spec/serializers/import/bitbucket_provider_repo_entity_spec.rb spec/lib/gitlab/sidekiq_versioning/worker_spec.rb spec/lib/gitlab/doorkeeper_secret_storing/secret/pbkdf2_sha512_spec.rb spec/lib/gitlab/source_spec.rb spec/serializers/import/github_realtime_repo_serializer_spec.rb spec/services/mattermost/create_team_service_spec.rb spec/workers/detect_repository_languages_worker_spec.rb spec/finders/repositories/changelog_tag_finder_spec.rb spec/serializers/import/bitbucket_server_provider_repo_entity_spec.rb spec/lib/gitlab/memory/watchdog/monitor_state_spec.rb spec/graphql/types/packages/package_details_type_spec.rb spec/rubocop/cop/rspec/env_assignment_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/analyze_menu_spec.rb spec/lib/gitlab/database/postgres_hll/buckets_spec.rb spec/views/import/gitlab_projects/new.html.haml_spec.rb spec/lib/gitlab/utils/safe_inline_hash_spec.rb spec/lib/gitlab/import_export/duration_measuring_spec.rb spec/graphql/types/x509_issuer_type_spec.rb spec/lib/gitlab/memory/watchdog/handlers/null_handler_spec.rb spec/scripts/pipeline/create_test_failure_issues_spec.rb spec/lib/atlassian/jira_connect/serializers/base_entity_spec.rb spec/graphql/types/user_callout_feature_name_enum_spec.rb spec/lib/gitlab/quick_actions/substitution_definition_spec.rb spec/validators/rsa_key_validator_spec.rb spec/graphql/types/work_items/widgets/start_and_due_date_update_input_type_spec.rb spec/graphql/types/ci/runner_architecture_type_spec.rb spec/presenters/key_presenter_spec.rb spec/lib/peek/views/memory_spec.rb spec/graphql/types/branch_rules/branch_protection_type_spec.rb spec/graphql/types/packages/package_dependency_type_spec.rb spec/lib/api/entities/bulk_import_spec.rb spec/lib/system_check/app/gitlab_cable_config_exists_check_spec.rb spec/graphql/types/permission_types/snippet_spec.rb spec/serializers/integrations/project_serializer_spec.rb spec/graphql/types/permission_types/deployment_spec.rb spec/models/blob_viewer/podspec_spec.rb spec/models/concerns/commit_signature_spec.rb spec/lib/gitlab/kubernetes/generic_secret_spec.rb spec/serializers/codequality_reports_comparer_entity_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/edition_metric_spec.rb spec/lib/gitlab/kubernetes/pod_cmd_spec.rb spec/graphql/types/ci/config_variable_type_spec.rb spec/services/spam/spam_action_service_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.903268427 seconds178MergeRequest179 associations180 is expected to belong to target_project class_name => Project required: false181 is expected to belong to source_project class_name => Project required: false182 is expected to belong to merge_user class_name => User required: false183 is expected to belong to head_pipeline class_name => Ci::Pipeline required: false inverse_of => merge_requests_as_head_pipeline184 is expected to have many assignees through merge_request_assignees185 is expected to have many reviewers through merge_request_reviewers186 is expected to have many merge_request_diffs187 is expected to have many user_mentions class_name => MergeRequestUserMention188 is expected to belong to milestone required: false189 is expected to have many resource_milestone_events190 is expected to have many resource_state_events191 is expected to have many draft_notes192 is expected to have many reviews inverse_of => merge_request193 is expected to have many reviewed_by_users through reviews source => author194 is expected to have one cleanup_schedule inverse_of => merge_request195 is expected to have many created_environments class_name => Environment inverse_of => merge_request196 is expected to have many assignment_events class_name => ResourceEvents::MergeRequestAssignmentEvent inverse_of => merge_request197 for forks198 does not load another project due to inverse relationship199 finds the associated merge request200 #reviewed_by_users201 when the same user has several reviews202 returns distinct users203 .from_and_to_forks204 returns only MRs from and to forks (with no internal MRs)205 .order_merged_at_asc206 returns MRs ordered by merged_at ascending207 .order_merged_at_desc208 returns MRs ordered by merged_at descending209 .order_closed_at_asc210 returns MRs ordered by closed_at ascending211 .order_closed_at_desc212 returns MRs ordered by closed_at descending213 .with_jira_issue_keys214 is expected to contain exactly #<MergeRequest id:16 namespace1/project-1!1> and #<MergeRequest id:17 namespace1/project-1!2>215 is expected not to include #<MergeRequest id:18 namespace1/project-1!3>216 scopes217 .preload_target_project_with_namespace218 returns MR with the target project's namespace preloaded219 .review_requested220 returns MRs that have any review requests221 .no_review_requested222 returns MRs that have no review requests223 .review_requested_to224 returns MRs that the user has been requested to review225 .no_review_requested_to226 returns MRs that the user has not been requested to review227 .drafts228 returns MRs where draft == true229 .by_sorted_source_branches230 returns merge requests sorted by name and id231 .without_hidden232 only returns public issuables233 when feature flag is disabled234 returns public and hidden issuables235 #squash?236 disabled in database237 is expected to be falsy238 enabled in database239 is expected to be truthy240 #default_squash_commit_message241 returns the merge request title242 uses template from target project243 modules244 is expected to includes the Issuable module245 is expected to includes the Referable module246 is expected to includes the Sortable module247 is expected to includes the Taskable module248 is expected to includes the MilestoneEventable module249 is expected to includes the StateEventable module250 behaves like AtomicInternalId251 .has_internal_id252 Module inclusion253 is expected to includes the AtomicInternalId module254 Validation255 when presence validation is required256 when creating an object257 raises an error if the internal id is blank258 when updating an object259 raises an error if the internal id is blank260 when presence validation is not required261 when creating an object262 does not raise an error if the internal id is blank (PENDING: No reason given)263 when updating an object264 does not raise an error if the internal id is blank (PENDING: No reason given)265 Creating an instance266 saves a new instance properly267 internal id generation268 calls InternalId.generate_next and sets internal id attribute269 does not overwrite an existing internal id270 when the instance has an internal ID set271 calls InternalId.update_last_value and sets the `last_value` to that of the instance272 unsetting the instance internal id on rollback273 when the internal id has been changed274 when the internal id is automatically set275 clears it on the instance276 when the internal id is manually set277 does not clear it on the instance278 when the internal id has not been changed279 preserves the value on the instance280 supply of internal ids281 provides a persistent supply of IID values, sensitive to the current state282 #reset_scope_internal_id_attribute283 rewinds the allocated IID284 allocates the same IID285 validation286 is expected to validate that :target_branch cannot be empty/falsy287 is expected to validate that :source_branch cannot be empty/falsy288 Validation of merge user with Merge When Pipeline Succeeds289 allows user to be nil when the feature is disabled290 is invalid without merge user291 is valid with merge user292 for branch293 branch_name: "foo", valid: true294 validates source_branch295 validates target_branch296 branch_name: "foo:bar", valid: false297 validates source_branch298 validates target_branch299 branch_name: "+foo:bar", valid: false300 validates source_branch301 validates target_branch302 branch_name: "foo bar", valid: false303 validates source_branch304 validates target_branch305 branch_name: "-foo", valid: false306 validates source_branch307 validates target_branch308 branch_name: "HEAD", valid: true309 validates source_branch310 validates target_branch311 branch_name: "refs/heads/master", valid: true312 validates source_branch313 validates target_branch314 for forks315 allows merge requests for sibling-forks316 #validate_target_project317 when projects #merge_requests_enabled? is true318 is expected to eq true319 when projects #merge_requests_enabled? is false320 is invalid321 when #import? is true322 is expected to eq true323 callbacks324 #ensure_merge_request_diff325 when skip_ensure_merge_request_diff is true326 does not create a merge_request_diff after create327 when skip_ensure_merge_request_diff is false328 creates merge_request_diff after create329 #ensure_merge_request_metrics330 creates metrics after saving331 does not duplicate metrics for a merge request332 does not create duplicated metrics records when MR is concurrently updated333 syncs the `target_project_id` to the metrics record334 #set_draft_status335 MR is a draft336 sets draft to true337 MR is not a draft338 sets draft to true339 respond to340 is expected to respond to #unchecked?341 is expected to respond to #checking?342 is expected to respond to #can_be_merged?343 is expected to respond to #cannot_be_merged?344 is expected to respond to #merge_params345 is expected to respond to #merge_when_pipeline_succeeds346 .by_commit_sha347 with sha contained in latest merge request diff348 returns merge requests349 with sha contained not in latest merge request diff350 returns empty requests351 with sha not contained in352 returns empty result353 .by_merge_commit_sha354 returns merge requests that match the given merge commit355 .by_squash_commit_sha356 returns merge requests that match the given squash commit357 .by_merge_or_squash_commit_sha358 returns merge requests that match the given squash and merge commits359 .join_metrics360 when a no target_project_id is available361 moves target_project_id condition to the merge request metrics362 when a target_project_id is present in the where conditions363 moves target_project_id condition to the merge request metrics364 .by_related_commit_sha365 when commit is a squash commit366 is expected to eq [#<MergeRequest id:54 namespace1/project-1!1>]367 when commit is a part of the merge request368 is expected to eq [#<MergeRequest id:55 namespace1/project-1!1>]369 when commit is a merge commit370 is expected to eq [#<MergeRequest id:56 namespace1/project-1!1>]371 when commit is not found372 is expected to be empty373 when commit is part of the merge request and a squash commit at the same time374 is expected to eq [#<MergeRequest id:57 namespace1/project-1!1>]375 .in_projects376 returns the merge requests for a set of projects377 .set_latest_merge_request_diff_ids!378 sets IDs for merge requests, whether they are already set or not379 .recent_target_branches380 returns target branches sort by updated at desc381 .sort_by_attribute382 merged_at383 sorts asc384 sorts desc385 closed_at386 sorts asc387 sorts desc388 sorts asc when its closed_at389 title390 sorts asc391 sorts desc392 time to merge calculations393 .total_time_to_merge394 returns the sum of the time to merge for all merged MRs395 when merged_at is earlier than created_at396 returns nil397 when scoped with :merged_before and :merged_after398 excludes merge requests outside of the date range399 #target_branch_sha400 returns memoized value401 when the target branch does not exist402 returns nil403 #card_attributes404 includes the author name405 includes the assignees name406 #assignee_or_author?407 returns true for a user that is assigned to a merge request408 returns true for a user that is the author of a merge request409 returns false for a user that is not the assignee or author410 #visible_closing_issues_for411 shows only allowed issues to guest412 shows only allowed issues to developer413 when external issue tracker is enabled414 calls non #closes_issues to retrieve data415 #cache_merge_request_closes_issues!416 caches closed issues417 does not cache closed issues when merge request is closed418 does not cache closed issues when merge request is merged419 when both internal and external issue trackers are enabled420 does not cache issues from external trackers421 caches an internal issue422 when only external issue tracker enabled423 does not cache issues from external trackers424 does not cache an internal issue425 caches issues from another project with issues enabled426 #source_branch_sha427 returns memoized value428 with diffs429 returns the sha of the source branch last commit430 without diffs431 returns the sha of the source branch last commit432 when there is a tag name matching the branch name433 returns the sha of the source branch last commit434 when the merge request is being created435 returns nil436 #to_reference437 returns a String reference to the object438 supports a cross-project reference439 returns a String reference with the full path440 #raw_diffs441 when there are MR diffs442 delegates to the MR diffs443 when there are no MR diffs444 delegates to the compare object445 #diffs446 when there are MR diffs447 delegates to the MR diffs448 when there are no MR diffs449 delegates to the compare object, setting expanded: true450 #note_positions_for_paths451 returns a Gitlab::Diff::PositionCollection452 within all diff files453 returns correct positions454 within specific diff file455 returns correct positions456 within no diff files457 returns no positions458 when user is given459 returns notes and draft notes positions460 when user is not given461 returns notes positions462 #discussions_diffs463 with commit diff note464 behaves like discussions diffs collection465 initializes Gitlab::DiscussionsDiff::FileCollection with correct data466 eager loads relations467 with merge request diff note468 behaves like discussions diffs collection469 initializes Gitlab::DiscussionsDiff::FileCollection with correct data470 eager loads relations471 #diff_size472 when there are MR diffs473 returns the correct count474 returns the correct overflow count475 does not perform highlighting476 when there are no MR diffs477 returns the correct count478 returns the correct overflow count479 does not perform highlighting480 #modified_paths481 when past_merge_request_diff is specified482 returns affected file paths from specified past_merge_request_diff483 when compare is present484 and diff_stats are not present485 returns affected file paths from compare486 and diff_stats are present487 returns affected file paths from compare488 when no arguments provided489 returns affected file paths for merge_request_diff490 #new_paths491 returns new path of changed files492 #related_notes493 includes notes for commits494 includes notes for commits from target project as well495 excludes system notes for commits496 #for_fork?497 returns true if the merge request is for a fork498 returns false if is not for a fork499 #closes_issues500 accesses the set of issues that will be closed on acceptance501 only lists issues as to be closed if it targets the default branch502 ignores referenced issues when auto-close is disabled503 #issues_mentioned_but_not_closing504 detects issues mentioned in description but not closed505 when the project has an external issue tracker506 detects issues mentioned in description but not closed507 #draft?508 detects the 'draft:' prefix509 detects the 'Draft: ' prefix510 detects the '[Draft]' prefix511 detects the '[DRAFT] ' prefix512 returns false513 when 'WIP:' prefixes the title514 when 'WIP: ' prefixes the title515 when '[WIP]' prefixes the title516 when '[WIP] ' prefixes the title517 when ' [WIP] WIP: [WIP] WIP:' prefixes the title518 when 'WIP ' prefixes the title519 when '(WIP)' prefixes the title520 when 'draft' prefixes the title521 when 'Draft' prefixes the title522 when 'Draft -' prefixes the title523 when 'draft - ' prefixes the title524 when 'Draft ' prefixes the title525 when 'draft ' prefixes the title526 when merge request title is simply 'WIP'527 when WIP is in the middle of the title528 when WIP is at the end of the title529 when title contains words starting with WIP530 when title contains words containing with WIP531 when merge request title is simply 'Draft'532 when Draft is in the middle of the title533 when Draft is at the end of the title534 when title contains words starting with Draft535 when title contains words containing with Draft536 when Draft: in the middle of the title537 when the title does not contain draft538 is aliased to #draft?539 #draftless_title540 removes a 'draft:' prefix541 is satisfies the #work_in_progress? method542 removes a 'Draft: ' prefix543 is satisfies the #work_in_progress? method544 removes a '[Draft]' prefix545 is satisfies the #work_in_progress? method546 removes a '[DRAFT] ' prefix547 is satisfies the #work_in_progress? method548 doesn't remove a 'WIP:' prefix549 doesn't remove a 'WIP: ' prefix550 doesn't remove a '[WIP]' prefix551 doesn't remove a '[WIP] ' prefix552 doesn't remove a '[WIP] WIP: [WIP] WIP:' prefix553 removes only draft prefix from the MR title554 does not remove WIP in the middle of the title555 does not remove Draft in the middle of the title556 does not remove WIP at the end of the title557 does not remove Draft at the end of the title558 #draft_title559 adds the Draft: prefix to the title560 does not add the Draft: prefix multiple times561 is satisfies the #work_in_progress? method562 #permits_force_push?563 when source branch is not protected564 is expected to be truthy565 when source branch is protected566 when force push is not allowed567 is expected to be falsey568 when force push is allowed569 is expected to be truthy570 #can_remove_source_branch?571 can't be removed when its a protected branch572 can't be removed because source project has been deleted573 can't remove a root ref574 is unable to remove the source branch for a project the user cannot push to575 can be removed if the last commit is the head of the source branch576 cannot be removed if the last commit is not also the head of the source branch577 #source_branch_exists?578 when the source project is set579 returns true when the branch exists580 when the source project is not set581 returns false582 #default_merge_commit_message583 includes merge information as the title584 includes its title in the body585 includes its closed issues in the body586 includes its reference in the body587 excludes multiple linebreak runs when description is blank588 includes its description in the body589 does not includes its description in the body590 uses template from target project591 ignores template when include_description is true592 #auto_merge_strategy593 is expected to eq "merge_when_pipeline_succeeds"594 when auto merge is disabled595 is expected to be nil596 #committers597 returns all the committers of every commit in the merge request598 returns an empty array if no committer is associated with a user599 #diverged_commits_count600 when the target branch does not exist anymore601 does not crash602 returns 0603 diverged on same repository604 counts commits that are on target branch but not on source branch605 diverged on fork606 counts commits that are on target branch but not on source branch607 rebased on fork608 counts commits that are on target branch but not on source branch609 caching610 caches the output611 invalidates the cache when the source sha changes612 invalidates the cache when the target sha changes613 behaves like an editable mentionable614 creates new cross-reference notes when the mentionable text is edited615 behaves like a mentionable616 generates a descriptive back-reference617 extracts references from its reference property618 creates cross-reference notes619 when there are cached markdown fields620 sends in cached markdown fields when appropriate621 when there are cached markdown fields622 refreshes markdown cache if necessary623 when the markdown cache is stale624 persists the refreshed cache so that it does not have to be refreshed every time625 behaves like a Taskable626 with multiple tasks627 returns the correct task status628 #tasks?629 returns true when object has tasks630 returns false when object has no tasks631 with nested tasks632 returns the correct task status633 with an incomplete task634 returns the correct task status635 with tasks that are not formatted correctly636 returns the correct task status637 with a complete task638 returns the correct task status639 with tasks in blockquotes640 returns the correct task status641 #commit_shas642 persisted merge request643 with a limit644 returns a limited number of commit shas645 without a limit646 returns all commit shas of the merge request diff647 new merge request648 returns diff_head_sha as an array649 compare commits650 without a limit651 returns all shas of compare commits652 with a limit653 returns a limited number of shas654 head pipeline655 #head_pipeline656 returns nil for MR without head_pipeline_id657 when the source project does not exist658 returns nil659 #actual_head_pipeline660 returns nil for MR with old pipeline661 returns the pipeline for MR with recent pipeline662 returns the pipeline for MR with recent merge request pipeline663 returns nil when source project does not exist664 #merge_pipeline665 returns nil when not merged666 when the MR is merged667 and there is a merge commit668 returns the pipeline associated with that merge request669 and there is no merge commit, but there is a diff head670 returns the pipeline associated with that merge request671 and there is no merge commit, but there is a squash commit672 returns the pipeline associated with that merge request673 #has_ci?674 has ci675 returns true if MR has head_pipeline_id and commits676 returns true if MR has any pipeline and commits677 returns true if MR has CI integration and commits678 has no ci679 returns false if MR has no CI integration nor pipeline, and no commits680 #update_head_pipeline681 when there is a pipeline with the diff head sha682 updates the head pipeline683 when merge request has already had head pipeline684 when failed to find an actual head pipeline685 does not update the current head pipeline686 when detached merge request pipeline is run on head ref of the merge request687 sets the head ref of the merge request to the pipeline ref688 updates correctly even though the target branch name of the merge request is different from the pipeline ref689 when sha is not HEAD of the source branch690 does not update head pipeline691 when there are no pipelines with the diff head sha692 does not update the head pipeline693 #has_test_reports?694 when head pipeline has test reports695 is expected to be truthy696 when head pipeline does not have test reports697 is expected to be falsey698 #has_accessibility_reports?699 when head pipeline has an accessibility reports700 is expected to be truthy701 when head pipeline does not have accessibility reports702 is expected to be falsey703 #has_coverage_reports?704 when head pipeline has coverage reports705 is expected to be truthy706 when head pipeline does not have coverage reports707 is expected to be falsey708 #has_codequality_mr_diff_report?709 when head pipeline has codequality mr diff report710 is expected to be truthy711 when head pipeline does not have codeqquality mr diff report712 is expected to be falsey713 #has_codequality_reports?714 when head pipeline has a codequality report715 is expected to be truthy716 when head pipeline does not have a codequality report717 is expected to be falsey718 #has_terraform_reports?719 when head pipeline has terraform reports720 returns true721 when head pipeline does not have terraform reports722 returns false723 #has_sast_reports?724 when head pipeline has sast reports725 is expected to be truthy726 when head pipeline does not have sast reports727 is expected to be falsey728 #has_secret_detection_reports?729 when head pipeline has secret detection reports730 is expected to be truthy731 when head pipeline does not have secrets detection reports732 is expected to be falsey733 #calculate_reactive_cache734 when given an unknown service class name735 raises a NameError exception736 when given a known service class name737 does not raises a NameError exception738 #find_exposed_artifacts739 when head pipeline has exposed artifacts740 when reactive cache worker is parsing results asynchronously741 returns status742 when reactive cache worker is inline743 returns status and data744 when an error occurrs745 returns an error message746 when cached results is not latest747 raises and InvalidateReactiveCache error748 #find_coverage_reports749 when head pipeline has coverage reports750 when reactive cache worker is parsing results asynchronously751 returns status752 when reactive cache worker is inline753 returns status and data754 when an error occurrs755 returns an error message756 when cached results is not latest757 raises and InvalidateReactiveCache error758 #find_codequality_mr_diff_reports759 when head pipeline has coverage reports760 when reactive cache worker is parsing results asynchronously761 returns status762 when reactive cache worker is inline763 returns status and data764 when an error occurrs765 returns an error message766 when cached results is not latest767 raises and InvalidateReactiveCache error768 #compare_test_reports769 when head pipeline has test reports770 when reactive cache worker is parsing asynchronously771 returns status772 when reactive cache worker is inline773 returns status and data774 when cached results is not latest775 raises and InvalidateReactiveCache error776 when head pipeline does not have test reports777 returns status and error message778 #compare_accessibility_reports779 when head pipeline has accessibility reports780 when reactive cache worker is parsing results asynchronously781 returns parsing status782 when reactive cache worker is inline783 returns parsed status784 when an error occurrs785 returns an error status786 when cached result is not latest787 raises an InvalidateReactiveCache error788 #compare_codequality_reports789 when head pipeline has codequality report790 when reactive cache worker is parsing results asynchronously791 returns parsing status792 when reactive cache worker is inline793 returns parsed status794 when an error occurrs795 returns an error status796 when cached result is not latest797 raises an InvalidateReactiveCache error798 #all_commit_shas799 when merge request is persisted800 with a completely different branch801 behaves like returning all SHA802 returns all SHAs from all merge_request_diffs803 with a branch having no difference804 behaves like returning all SHA805 returns all SHAs from all merge_request_diffs806 when merge request is not persisted807 when compare commits are set in the service808 returns commits from compare commits temporary data809 when compare commits are not set in the service810 returns array with diff head sha element only811 #short_merge_commit_sha812 returns short id when there is a merge_commit_sha813 returns nil when there is no merge_commit_sha814 #merged_commit_sha815 returns nil when not merged816 when the MR is merged817 returns merge_commit_sha when there is a merge_commit_sha818 returns squash_commit_sha when there is a squash_commit_sha819 returns diff_head_sha when there are no merge_commit_sha and squash_commit_sha820 #short_merged_commit_sha821 when merged_commit_sha is nil822 returns nil823 when merged_commit_sha is present824 returns shortened merged_commit_sha825 #can_be_reverted?826 when there is no merge_commit for the MR827 returns false828 when the MR has been merged829 when there is no revert commit830 returns true831 when there is no merged_at for the MR832 returns true833 when there is a revert commit834 but merged at timestamp cannot be found835 returns false836 when the revert commit is mentioned in a note after the MR was merged837 returns false838 when there is no merged_at for the MR839 returns false840 when the revert commit is mentioned in a note just before the MR was merged841 returns false842 when the revert commit is mentioned in a note long before the MR was merged843 returns true844 #merged_at845 when MR is not merged846 returns nil847 when metrics has merged_at data848 returns metrics merged_at849 when merged event is persisted, but no metrics merged_at is persisted850 returns merged event creation date851 when no metrics or merge event exists852 when resource event for the merge exists853 returns the resource event creation date854 when system note for the merge exists855 returns the merging note creation date856 #participants857 includes the merge request author858 includes the authors of the notes859 cached counts860 updates when assignees change861 #merge_async862 enqueues MergeWorker job and updates merge_jid863 #rebase_async864 atomically enqueues a RebaseWorker job and updates rebase_jid865 refuses to enqueue a job if a rebase is in progress866 refuses to enqueue a job if the MR is not open867 raises ActiveRecord::LockWaitTimeout after 6 tries868 #mergeable?869 returns false if #mergeable_state? is false870 return true if #mergeable_state? is true and the MR #can_be_merged? is true871 return true if #mergeable_state? is true and the MR #can_be_merged? is false872 with skip_ci_check option873 mergeable_ci_state: false, skip_ci_check: false, expected_mergeable: false874 overrides mergeable_ci_state?875 mergeable_ci_state: false, skip_ci_check: true, expected_mergeable: true876 overrides mergeable_ci_state?877 mergeable_ci_state: true, skip_ci_check: false, expected_mergeable: true878 overrides mergeable_ci_state?879 mergeable_ci_state: true, skip_ci_check: true, expected_mergeable: true880 overrides mergeable_ci_state?881 with skip_discussions_check option882 mergeable_discussions_state: false, skip_discussions_check: false, expected_mergeable: false883 overrides mergeable_discussions_state?884 mergeable_discussions_state: false, skip_discussions_check: true, expected_mergeable: true885 overrides mergeable_discussions_state?886 mergeable_discussions_state: true, skip_discussions_check: false, expected_mergeable: true887 overrides mergeable_discussions_state?888 mergeable_discussions_state: true, skip_discussions_check: true, expected_mergeable: true889 overrides mergeable_discussions_state?890 #skipped_mergeable_checks891 options: {}, skip_ci_check: false892 is expected to include {:skip_ci_check => false}893 options: {:auto_merge_requested=>false}, skip_ci_check: false894 is expected to include {:skip_ci_check => false}895 options: {:auto_merge_requested=>true}, skip_ci_check: true896 is expected to include {:skip_ci_check => true}897 #check_mergeability898 if the merge status is unchecked899 behaves like method that executes MergeabilityCheckService900 executes MergeabilityCheckService901 when async is true902 executes MergeabilityCheckService asynchronously903 if the merge status is checking904 behaves like method that executes MergeabilityCheckService905 executes MergeabilityCheckService906 when async is true907 executes MergeabilityCheckService asynchronously908 if the merge status is checked909 does not call MergeabilityCheckService910 #mergeable_state?911 behaves like for mergeable_state912 checks if merge request can be merged913 when not open914 returns false915 when working in progress916 returns false917 when broken918 returns false919 when failed920 when #mergeable_ci_state? is false921 returns false922 returns true when skipping ci check923 when #mergeable_discussions_state? is false924 returns false925 returns true when skipping discussions check926 #public_merge_status927 status: "cannot_be_merged_rechecking", public_status: "checking"928 is expected to eq "checking"929 status: "preparing", public_status: "checking"930 is expected to eq "checking"931 status: "checking", public_status: "checking"932 is expected to eq "checking"933 status: "cannot_be_merged", public_status: "cannot_be_merged"934 is expected to eq "cannot_be_merged"935 #head_pipeline_active?936 when project lacks a head_pipeline relation937 returns false938 when project has a head_pipeline relation939 accesses the value from the head_pipeline940 #actual_head_pipeline_success?941 when project lacks an actual_head_pipeline relation942 returns false943 when project has a actual_head_pipeline relation944 accesses the value from the actual_head_pipeline945 #actual_head_pipeline_active?946 when project lacks an actual_head_pipeline relation947 returns false948 when project has a actual_head_pipeline relation949 accesses the value from the actual_head_pipeline950 #mergeable_ci_state?951 when it is only allowed to merge when build is green952 and a failed pipeline is associated953 is expected to be falsey954 and a successful pipeline is associated955 is expected to be truthy956 and a skipped pipeline is associated957 is expected to be falsey958 when no pipeline is associated959 is expected to be falsey960 when it is only allowed to merge when build is green or skipped961 and a failed pipeline is associated962 is expected to be falsey963 and a successful pipeline is associated964 is expected to be truthy965 and a skipped pipeline is associated966 is expected to be truthy967 when no pipeline is associated968 is expected to be falsey969 when merges are not restricted to green builds970 and a failed pipeline is associated971 is expected to be truthy972 when no pipeline is associated973 is expected to be truthy974 and a skipped pipeline is associated975 is expected to be truthy976 when no pipeline is associated977 is expected to be truthy978 #mergeable_discussions_state?979 when project.only_allow_merge_if_all_discussions_are_resolved == true980 with all discussions resolved981 returns true982 with unresolved discussions983 returns false984 with no discussions985 returns true986 when project.only_allow_merge_if_all_discussions_are_resolved == false987 with unresolved discussions988 returns true989 #reload_diff990 calls MergeRequests::ReloadDiffsService#execute with correct params991 when using the after_update hook to update992 when the branches are updated993 uses the new heads to generate the diff994 #update_diff_discussion_positions995 updates diff discussion positions996 does not call the resolve method997 when resolve_outdated_diff_discussions is set998 when the active discussion is resolved in the update999 calls MergeRequests::ResolvedDiscussionNotificationService1000 when the active discussion does not have resolved in the update1001 does not call the resolve method1002 when the active discussion was already resolved1003 does not call the resolve method1004 #branch_merge_base_commit1005 source and target branch exist1006 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"1007 is expected to be a kind of Commit1008 when the target branch does not exist1009 returns nil1010 #diff_refs1011 with diffs1012 does not touch the repository1013 returns expected diff_refs1014 when importing1015 returns MR diff_refs1016 #source_project_missing?1017 when the fork exists1018 is expected to be falsey1019 when the source project is the same as the target project1020 is expected to be falsey1021 when the fork does not exist1022 returns true1023 #merge_ongoing?1024 returns true when the merge request is locked1025 returns true when merge_id, MR is not merged and it has no running job1026 returns false when merge_jid is nil1027 returns false if MR is merged1028 returns false if there is no merge job running1029 #closed_or_merged_without_fork?1030 when the merge request is closed1031 returns false if the fork exist1032 returns true if the fork does not exist1033 when the merge request was merged1034 returns false if the fork exist1035 returns true if the fork does not exist1036 when the merge request is open1037 returns false1038 #reopenable?1039 when the merge request is closed1040 returns true1041 forked project1042 returns false if unforked1043 returns false if the source project is deleted1044 returns false if the merge request is merged1045 when the merge request is opened1046 returns false1047 #pipeline_coverage_delta1048 when both source and target branches have coverage information1049 returns the appropriate coverage delta1050 when target branch does not have coverage information1051 returns nil1052 when source branch does not have coverage information1053 returns nil for coverage_delta1054 neither source nor target branch has coverage information1055 returns nil for coverage_delta1056 #use_merge_base_pipeline_for_comparison?1057 is expected to eq false1058 #comparison_base_pipeline1059 when service class uses merge base pipeline1060 returns the base_pipeline when merge does not have a merge request pipeline1061 when merge request has a merge request pipeline1062 returns the merge_base_pipeline1063 when service_class does not use merge base pipeline1064 returns the base_pipeline1065 when merge request has a merge request pipeline1066 returns the base pipeline1067 #base_pipeline1068 returns latest pipeline for the target branch1069 #merge_base_pipeline1070 returns a pipeline pointing to a commit on the target ref1071 #has_commits?1072 returns true when merge request diff has commits1073 when commits_count is nil1074 returns false1075 #has_no_commits?1076 returns true when merge request diff has 0 commits1077 #merge_request_diff_for1078 runs a single query on the initial call, and none afterwards1079 with diff refs1080 returns the diffs1081 with a commit SHA1082 returns the diffs1083 #version_params_for1084 when the diff refs are for an older merge request version1085 returns the diff ID for the version to show1086 when the diff refs are for a comparison between merge request versions1087 returns the diff ID and start sha of the versions to compare1088 when the diff refs are not for a merge request version1089 returns nil1090 #fetch_ref!1091 fetches the ref and expires the ancestor cache1092 #eager_fetch_ref!1093 fetches the ref and expires the ancestor cache1094 only fetches the ref once after saved1095 removing a merge request1096 refreshes the number of open merge requests of the target project1097 behaves like throttled touch1098 #touch1099 updates the updated_at timestamp1100 updates the object at most once per minute1101 state machine transitions1102 #unlock_mr1103 updates merge request head pipeline and sets merge_jid to nil1104 #mark_as_preparing1105 when the status is unchecked1106 is a valid state transition1107 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1108 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1109 when the status is checking1110 is not a valid state transition1111 when the status is can_be_merged1112 is not a valid state transition1113 when the status is cannot_be_merged_recheck1114 is not a valid state transition1115 when the status is cannot_be_merged1116 is not a valid state transition1117 when the status is cannot_be_merged_rechecking1118 is not a valid state transition1119 #mark_as_unchecked1120 when the status is unchecked1121 is not a valid state transition1122 when the status is checking1123 is a valid state transition1124 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1125 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:348 namespace1/project-158!1>) 1 time1126 when skip_merge_status_trigger is set to true1127 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1128 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1129 when transaction is not committed1130 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1131 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1132 when the status is can_be_merged1133 is a valid state transition1134 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1135 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:352 namespace1/project-162!1>) 1 time1136 when skip_merge_status_trigger is set to true1137 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1138 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1139 when transaction is not committed1140 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1141 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1142 when the status is cannot_be_merged_recheck1143 is not a valid state transition1144 when the status is cannot_be_merged1145 is a valid state transition1146 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1147 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:357 namespace1/project-167!1>) 1 time1148 when skip_merge_status_trigger is set to true1149 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1150 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1151 when transaction is not committed1152 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1153 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1154 when the status is cannot_be_merged_rechecking1155 is a valid state transition1156 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1157 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:361 namespace1/project-171!1>) 1 time1158 when skip_merge_status_trigger is set to true1159 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1160 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1161 when transaction is not committed1162 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1163 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1164 #mark_as_checking1165 when the status is unchecked1166 is a valid state transition1167 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1168 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1169 when the status is checking1170 is not a valid state transition1171 when the status is can_be_merged1172 is not a valid state transition1173 when the status is cannot_be_merged_recheck1174 is a valid state transition1175 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1176 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1177 when the status is cannot_be_merged1178 is not a valid state transition1179 when the status is cannot_be_merged_rechecking1180 is not a valid state transition1181 #mark_as_mergeable1182 when the status is unchecked1183 is a valid state transition1184 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1185 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:373 namespace1/project-183!1>) 1 time1186 when skip_merge_status_trigger is set to true1187 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1188 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1189 when transaction is not committed1190 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1191 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1192 when the status is checking1193 is a valid state transition1194 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1195 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:377 namespace1/project-187!1>) 1 time1196 when skip_merge_status_trigger is set to true1197 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1198 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1199 when transaction is not committed1200 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1201 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1202 when the status is can_be_merged1203 is not a valid state transition1204 when the status is cannot_be_merged_recheck1205 is a valid state transition1206 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1207 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:382 namespace1/project-192!1>) 1 time1208 when skip_merge_status_trigger is set to true1209 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1210 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1211 when transaction is not committed1212 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1213 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1214 when the status is cannot_be_merged1215 is not a valid state transition1216 when the status is cannot_be_merged_rechecking1217 is a valid state transition1218 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1219 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:387 namespace1/project-197!1>) 1 time1220 when skip_merge_status_trigger is set to true1221 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1222 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1223 when transaction is not committed1224 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1225 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1226 #mark_as_unmergeable1227 when the status is unchecked1228 is a valid state transition1229 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1230 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:391 namespace1/project-201!1>) 1 time1231 when skip_merge_status_trigger is set to true1232 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1233 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1234 when transaction is not committed1235 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1236 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1237 when the status is checking1238 is a valid state transition1239 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1240 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:395 namespace1/project-205!1>) 1 time1241 when skip_merge_status_trigger is set to true1242 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1243 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1244 when transaction is not committed1245 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1246 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1247 when the status is can_be_merged1248 is not a valid state transition1249 when the status is cannot_be_merged_recheck1250 is a valid state transition1251 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1252 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:400 namespace1/project-210!1>) 1 time1253 when skip_merge_status_trigger is set to true1254 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1255 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1256 when transaction is not committed1257 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1258 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1259 when the status is cannot_be_merged1260 is not a valid state transition1261 when the status is cannot_be_merged_rechecking1262 is a valid state transition1263 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription1264 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:405 namespace1/project-215!1>) 1 time1265 when skip_merge_status_trigger is set to true1266 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1267 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1268 when transaction is not committed1269 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription1270 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times1271 transition to closed1272 with merge error1273 clears merge error1274 transition to merged1275 resets the merge error1276 when it is a first contribution1277 sets first_contribution1278 doesn't set first_contribution not first contribution1279 transition to cannot_be_merged1280 opened1281 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged1282 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check1283 notifies conflict, whenever newly unmergeable1284 notifies conflict, whenever newly unmergeable with async mergeability check1285 does not notify whenever merge request is newly unmergeable due to other reasons1286 locked1287 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged1288 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check1289 notifies conflict, whenever newly unmergeable1290 notifies conflict, whenever newly unmergeable with async mergeability check1291 does not notify whenever merge request is newly unmergeable due to other reasons1292 closed1293 does not notify1294 merged1295 does not notify1296 source branch is missing1297 does not raise error1298 check_state?1299 indicates whether MR is still checking for mergeability1300 #should_be_rebased?1301 returns false for the same source and target branches1302 #rebase_in_progress?1303 rebase_jid: "foo", jid_valid: true, result: true1304 is expected to eq true1305 rebase_jid: "foo", jid_valid: false, result: false1306 is expected to eq false1307 rebase_jid: "", jid_valid: true, result: false1308 is expected to eq false1309 rebase_jid: nil, jid_valid: true, result: false1310 is expected to eq false1311 #allow_collaboration1312 is false when pushing by a maintainer is not possible1313 is true when pushing by a maintainer is possible1314 #collaborative_push_possible?1315 does not allow maintainer to push if the source project is the same as the target1316 allows maintainer to push when both source and target are public1317 is not available for protected branches1318 #can_allow_collaboration?1319 is false if the user does not have push access to the source project1320 is true when the user has push access to the source project1321 #merge_participants1322 contains author1323 when merge_when_pipeline_succeeds? is true1324 when merge user is author1325 author is not a project member1326 is empty1327 author is a project member1328 contains author only1329 when merge user and author are different users1330 merge user is not a member1331 contains author only1332 both author and merge users are project members1333 contains author and merge user1334 .merge_request_ref?1335 when ref is ref name of a branch1336 is expected to be falsey1337 when ref is HEAD ref path of a branch1338 is expected to be falsey1339 when ref is HEAD ref path of a merge request1340 is expected to be truthy1341 when ref is merge ref path of a merge request1342 is expected to be truthy1343 .merge_train_ref?1344 when ref is ref name of a branch1345 is expected to be falsey1346 when ref is HEAD ref path of a branch1347 is expected to be falsey1348 when ref is HEAD ref path of a merge request1349 is expected to be falsey1350 when ref is merge ref path of a merge request1351 is expected to be falsey1352 when ref is train ref path of a merge request1353 is expected to be truthy1354 #in_locked_state1355 when the merge request does not change state1356 returns to previous state and has no errors on the object1357 when the merge request is merged while locked1358 becomes merged and has no errors on the object1359 #schedule_cleanup_refs1360 deletes refs asynchronously1361 when merge_request_delete_gitaly_refs_in_batches is disabled1362 does schedule MergeRequests::CleanupRefWorker1363 when merge_request_cleanup_ref_worker_async is disabled1364 deletes all refs from the target project1365 #cleanup_refs1366 when removing all refs1367 deletes all refs from the target project1368 when removing only train ref1369 deletes train ref from the target project1370 .with_auto_merge_enabled1371 is expected to contain exactly #<MergeRequest id:435 namespace1/project-245!1>1372 behaves like versioned description1373 associations1374 is expected to have many description_versions1375 save_description_version1376 when description was changed1377 saves the old and new description for the first update1378 only saves the new description for subsequent updates1379 sets the new description version to `saved_description_version`1380 clears `saved_description_version` after another save that does not change description1381 when description was not changed1382 does not save any description version1383 #commits1384 persisted merge request1385 with a limit1386 returns a limited number of commits1387 without a limit1388 returns all commits of the merge request diff1389 with a page1390 returns a limited number of commits for page1391 new merge request1392 compare commits1393 without a limit1394 returns all the compare commits1395 with a limit1396 returns a limited number of commits1397 #recent_commits1398 returns the safe number of commits1399 #recent_visible_deployments1400 returns visible deployments1401 only returns a limited number of deployments1402 #diffable_merge_ref?1403 merge request can be merged1404 merge_head diff is not created1405 returns true1406 merge_head diff is created1407 returns true1408 merge request is merged1409 returns false1410 merge request cannot be merged1411 returns false1412 #predefined_variables1413 caches all SQL-sourced data on the first call1414 banzai_render_context1415 sets the label_url_method in the context1416 #head_pipeline_builds_with_coverage1417 delegates to head_pipeline1418 #merge_ref_head1419 when merge_ref_sha is not present1420 returns the commit based on merge ref path1421 when merge_ref_sha is present1422 returns the commit based on cached merge_ref_sha1423 #allows_reviewers?1424 returns true1425 #update_and_mark_in_progress_merge_commit_sha1426 updates commit ID1427 #enabled_reports1428 report_type: :sast, with_reports: :with_sast_reports, feature: :sast1429 when head pipeline has reports1430 is expected to be truthy1431 when head pipeline does not have reports1432 is expected to be falsy1433 report_type: :secret_detection, with_reports: :with_secret_detection_reports, feature: :secret_detection1434 when head pipeline has reports1435 is expected to be truthy1436 when head pipeline does not have reports1437 is expected to be falsy1438 #includes_ci_config?1439 when diff_stats is nil1440 is expected to eq false1441 when diff_stats does not include the ci config path of the project1442 is expected to eq false1443 when diff_stats includes the ci config path of the project1444 is expected to eq true1445 .from_fork1446 returns merge requests from forks only1447 behaves like it has loose foreign keys1448 has at least one loose foreign key definition1449 has the deletion trigger present1450 records record deletions1451 cleans up record deletions1452 loose foreign key on merge_requests.head_pipeline_id1453 behaves like cleanup by a loose foreign key1454 cleans up (delete or nullify) the model1455 #merge_blocked_by_other_mrs?1456 returns false when there is no blocking merge requests1457 #merge_request_reviewers_with1458 returns reviewers1459 #merge_request_assignees_with1460 returns assignees1461 #recent_diff_head_shas1462 when the association is not loaded1463 has up to MAX_RECENT_DIFF_HEAD_SHAS, ordered most recent first1464 supports limits1465 when the association is loaded1466 has up to MAX_RECENT_DIFF_HEAD_SHAS, ordered most recent first1467 supports limits1468 does not issue any queries1469 #target_default_branch?1470 returns false1471 with target_branch equal project default branch1472 returns false1473 #can_suggest_reviewers?1474 returns false1475 #suggested_reviewer_users1476 is expected to be empty1477 #hidden?1478 is expected to eq false1479 when the author is banned1480 is expected to eq true1481 when the feature flag is disabled1482 is expected to eq false1483 #diffs_batch_cache_with_max_age?1484 returns true1485 when diffs_batch_cache_with_max_age is disabled1486 returns false1487 #prepared?1488 when prepared_at is nil1489 returns false1490 when prepared_at is not nil1491 returns true1492 prepare1493 calls NewMergeRequestWorker1494 #check_for_spam?1495 is expected to eq true1496 when project is private1497 is expected to eq false1498 when no spammable attribute has changed1499 is expected to eq false1500Gitlab::UsageDataMetrics1501 .uncached_data1502 with instrumentation_class1503 includes top level keys1504/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1505/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1506/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1507/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1508 includes counts keys1509/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1510/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1511/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1512/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1513 includes usage_activity_by_stage keys1514/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1515/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1516/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1517/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1518 includes usage_activity_by_stage metrics1519/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1520/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1521/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1522/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1523 includes usage_activity_by_stage_monthly keys1524/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1525/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1526/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1527/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1528 includes settings keys1529 Redis_HLL_counters1530/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: already initialized constant MACROS_MARKER1531/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:25: warning: previous definition of MACROS_MARKER was here1532/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: already initialized constant DO_NOT_SPLIT1533/builds/gitlab-org/gitlab/vendor/ruby/3.0.0/gems/ohai-17.9.0/lib/ohai/plugins/rpm.rb:27: warning: previous definition of DO_NOT_SPLIT was here1534 is included in the Service Ping hash structure1535SnippetsFinder1536 #initialize1537 raises ArgumentError when a project and author are given1538 #execute1539 filter by scope1540 returns all snippets for 'all' scope1541 returns all snippets for 'are_private' scope1542 returns all snippets for 'are_internal' scope1543 returns all snippets for 'are_public' scope1544 filter by author1545 returns internal snippets1546 returns private snippets1547 returns public snippets1548 returns all snippets1549 returns only public snippets if unauthenticated user1550 returns all snippets for an admin in admin mode1551 returns all public and internal snippets for an admin without admin mode1552 when the author is a User object1553 returns all public and internal snippets1554 when the author is the User id1555 returns all public and internal snippets1556 when author is not valid1557 returns quickly1558 filter by project1559 returns public and internal snippets for non project members1560 returns public snippets for non project members1561 returns internal snippets for non project members1562 does not return private snippets for non project members1563 returns all snippets for project members1564 returns private snippets for project members1565 returns all snippets for an admin in admin mode1566 returns public and internal snippets for an admin without admin mode1567 when project is a Project object1568 returns public personal and project snippets for unauthorized user1569 when project is a Project id1570 returns public personal and project snippets for unauthorized user1571 filter by author1572 returns all snippets for project members1573 when project is not valid1574 returns quickly1575 filter by snippet type1576 when filtering by only_personal snippet1577 returns all personal snippets for the admin1578 returns only personal snippets visible by user1579 returns only internal or public personal snippets for user without snippets1580 filtering by ids1581 returns only personal snippet1582 explore snippets1583 returns only public personal snippets for unauthenticated users1584 also returns internal personal snippets for authenticated users1585 returns all personal snippets for admins when in admin mode1586 also returns internal personal snippets for admins without admin mode1587 when the user cannot read cross project1588 returns only personal snippets when the user cannot read cross project1589 when only project snippets are required1590 returns no records1591 when project snippets are disabled1592 returns quickly1593 no sort param is provided1594 returns snippets sorted by id1595 sort param is provided1596 returns snippets sorted by sort param1597 behaves like snippet visibility1598 For project snippets1599 project_visibility: :public, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: true1600 For project and unauthenticated users1601 returns proper outcome1602 Without a given project and unauthenticated users1603 returns proper outcome1604 project_visibility: :public, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1605 For project and unauthenticated users1606 returns proper outcome1607 Without a given project and unauthenticated users1608 returns proper outcome1609 project_visibility: :public, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1610 For project and unauthenticated users1611 returns proper outcome1612 Without a given project and unauthenticated users1613 returns proper outcome1614 project_visibility: :public, feature_visibility: :enabled, user_type: :external, snippet_visibility: :public, outcome: true1615 For project and external users1616 returns proper outcome1617 Without a given project and external users1618 returns proper outcome1619 project_visibility: :public, feature_visibility: :enabled, user_type: :external, snippet_visibility: :internal, outcome: false1620 For project and external users1621 returns proper outcome1622 Without a given project and external users1623 returns proper outcome1624 project_visibility: :public, feature_visibility: :enabled, user_type: :external, snippet_visibility: :private, outcome: false1625 For project and external users1626 returns proper outcome1627 Without a given project and external users1628 returns proper outcome1629 project_visibility: :public, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :public, outcome: true1630 For project and non_member users1631 returns proper outcome1632 Without a given project and non_member users1633 returns proper outcome1634 project_visibility: :public, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :internal, outcome: true1635 For project and non_member users1636 returns proper outcome1637 Without a given project and non_member users1638 returns proper outcome1639 project_visibility: :public, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :private, outcome: false1640 For project and non_member users1641 returns proper outcome1642 Without a given project and non_member users1643 returns proper outcome1644 project_visibility: :public, feature_visibility: :enabled, user_type: :member, snippet_visibility: :public, outcome: true1645 For project and member users1646 returns proper outcome1647 Without a given project and member users1648 returns proper outcome1649 project_visibility: :public, feature_visibility: :enabled, user_type: :member, snippet_visibility: :internal, outcome: true1650 For project and member users1651 returns proper outcome1652 Without a given project and member users1653 returns proper outcome1654 project_visibility: :public, feature_visibility: :enabled, user_type: :member, snippet_visibility: :private, outcome: true1655 For project and member users1656 returns proper outcome1657 Without a given project and member users1658 returns proper outcome1659 project_visibility: :public, feature_visibility: :enabled, user_type: :author, snippet_visibility: :public, outcome: true1660 For project and author users1661 returns proper outcome1662 Without a given project and author users1663 returns proper outcome1664 project_visibility: :public, feature_visibility: :enabled, user_type: :author, snippet_visibility: :internal, outcome: true1665 For project and author users1666 returns proper outcome1667 Without a given project and author users1668 returns proper outcome1669 project_visibility: :public, feature_visibility: :enabled, user_type: :author, snippet_visibility: :private, outcome: true1670 For project and author users1671 returns proper outcome1672 Without a given project and author users1673 returns proper outcome1674 project_visibility: :public, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :public, outcome: false1675 For project and unauthenticated users1676 returns proper outcome1677 Without a given project and unauthenticated users1678 returns proper outcome1679 project_visibility: :public, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1680 For project and unauthenticated users1681 returns proper outcome1682 Without a given project and unauthenticated users1683 returns proper outcome1684 project_visibility: :public, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1685 For project and unauthenticated users1686 returns proper outcome1687 Without a given project and unauthenticated users1688 returns proper outcome1689 project_visibility: :public, feature_visibility: :private, user_type: :external, snippet_visibility: :public, outcome: false1690 For project and external users1691 returns proper outcome1692 Without a given project and external users1693 returns proper outcome1694 project_visibility: :public, feature_visibility: :private, user_type: :external, snippet_visibility: :internal, outcome: false1695 For project and external users1696 returns proper outcome1697 Without a given project and external users1698 returns proper outcome1699 project_visibility: :public, feature_visibility: :private, user_type: :external, snippet_visibility: :private, outcome: false1700 For project and external users1701 returns proper outcome1702 Without a given project and external users1703 returns proper outcome1704 project_visibility: :public, feature_visibility: :private, user_type: :non_member, snippet_visibility: :public, outcome: false1705 For project and non_member users1706 returns proper outcome1707 Without a given project and non_member users1708 returns proper outcome1709 project_visibility: :public, feature_visibility: :private, user_type: :non_member, snippet_visibility: :internal, outcome: false1710 For project and non_member users1711 returns proper outcome1712 Without a given project and non_member users1713 returns proper outcome1714 project_visibility: :public, feature_visibility: :private, user_type: :non_member, snippet_visibility: :private, outcome: false1715 For project and non_member users1716 returns proper outcome1717 Without a given project and non_member users1718 returns proper outcome1719 project_visibility: :public, feature_visibility: :private, user_type: :member, snippet_visibility: :public, outcome: true1720 For project and member users1721 returns proper outcome1722 Without a given project and member users1723 returns proper outcome1724 project_visibility: :public, feature_visibility: :private, user_type: :member, snippet_visibility: :internal, outcome: true1725 For project and member users1726 returns proper outcome1727 Without a given project and member users1728 returns proper outcome1729 project_visibility: :public, feature_visibility: :private, user_type: :member, snippet_visibility: :private, outcome: true1730 For project and member users1731 returns proper outcome1732 Without a given project and member users1733 returns proper outcome1734 project_visibility: :public, feature_visibility: :private, user_type: :author, snippet_visibility: :public, outcome: true1735 For project and author users1736 returns proper outcome1737 Without a given project and author users1738 returns proper outcome1739 project_visibility: :public, feature_visibility: :private, user_type: :author, snippet_visibility: :internal, outcome: true1740 For project and author users1741 returns proper outcome1742 Without a given project and author users1743 returns proper outcome1744 project_visibility: :public, feature_visibility: :private, user_type: :author, snippet_visibility: :private, outcome: true1745 For project and author users1746 returns proper outcome1747 Without a given project and author users1748 returns proper outcome1749 project_visibility: :public, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false1750 For project and unauthenticated users1751 returns proper outcome1752 Without a given project and unauthenticated users1753 returns proper outcome1754 project_visibility: :public, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1755 For project and unauthenticated users1756 returns proper outcome1757 Without a given project and unauthenticated users1758 returns proper outcome1759 project_visibility: :public, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1760 For project and unauthenticated users1761 returns proper outcome1762 Without a given project and unauthenticated users1763 returns proper outcome1764 project_visibility: :public, feature_visibility: :disabled, user_type: :external, snippet_visibility: :public, outcome: false1765 For project and external users1766 returns proper outcome1767 Without a given project and external users1768 returns proper outcome1769 project_visibility: :public, feature_visibility: :disabled, user_type: :external, snippet_visibility: :internal, outcome: false1770 For project and external users1771 returns proper outcome1772 Without a given project and external users1773 returns proper outcome1774 project_visibility: :public, feature_visibility: :disabled, user_type: :external, snippet_visibility: :private, outcome: false1775 For project and external users1776 returns proper outcome1777 Without a given project and external users1778 returns proper outcome1779 project_visibility: :public, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :public, outcome: false1780 For project and non_member users1781 returns proper outcome1782 Without a given project and non_member users1783 returns proper outcome1784 project_visibility: :public, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :internal, outcome: false1785 For project and non_member users1786 returns proper outcome1787 Without a given project and non_member users1788 returns proper outcome1789 project_visibility: :public, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :private, outcome: false1790 For project and non_member users1791 returns proper outcome1792 Without a given project and non_member users1793 returns proper outcome1794 project_visibility: :public, feature_visibility: :disabled, user_type: :member, snippet_visibility: :public, outcome: false1795 For project and member users1796 returns proper outcome1797 Without a given project and member users1798 returns proper outcome1799 project_visibility: :public, feature_visibility: :disabled, user_type: :member, snippet_visibility: :internal, outcome: false1800 For project and member users1801 returns proper outcome1802 Without a given project and member users1803 returns proper outcome1804 project_visibility: :public, feature_visibility: :disabled, user_type: :member, snippet_visibility: :private, outcome: false1805 For project and member users1806 returns proper outcome1807 Without a given project and member users1808 returns proper outcome1809 project_visibility: :public, feature_visibility: :disabled, user_type: :author, snippet_visibility: :public, outcome: false1810 For project and author users1811 returns proper outcome1812 Without a given project and author users1813 returns proper outcome1814 project_visibility: :public, feature_visibility: :disabled, user_type: :author, snippet_visibility: :internal, outcome: false1815 For project and author users1816 returns proper outcome1817 Without a given project and author users1818 returns proper outcome1819 project_visibility: :public, feature_visibility: :disabled, user_type: :author, snippet_visibility: :private, outcome: false1820 For project and author users1821 returns proper outcome1822 Without a given project and author users1823 returns proper outcome1824 project_visibility: :internal, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false1825 For project and unauthenticated users1826 returns proper outcome1827 Without a given project and unauthenticated users1828 returns proper outcome1829 project_visibility: :internal, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1830 For project and unauthenticated users1831 returns proper outcome1832 Without a given project and unauthenticated users1833 returns proper outcome1834 project_visibility: :internal, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1835 For project and unauthenticated users1836 returns proper outcome1837 Without a given project and unauthenticated users1838 returns proper outcome1839 project_visibility: :internal, feature_visibility: :enabled, user_type: :external, snippet_visibility: :public, outcome: false1840 For project and external users1841 returns proper outcome1842 Without a given project and external users1843 returns proper outcome1844 project_visibility: :internal, feature_visibility: :enabled, user_type: :external, snippet_visibility: :internal, outcome: false1845 For project and external users1846 returns proper outcome1847 Without a given project and external users1848 returns proper outcome1849 project_visibility: :internal, feature_visibility: :enabled, user_type: :external, snippet_visibility: :private, outcome: false1850 For project and external users1851 returns proper outcome1852 Without a given project and external users1853 returns proper outcome1854 project_visibility: :internal, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :public, outcome: true1855 For project and non_member users1856 returns proper outcome1857 Without a given project and non_member users1858 returns proper outcome1859 project_visibility: :internal, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :internal, outcome: true1860 For project and non_member users1861 returns proper outcome1862 Without a given project and non_member users1863 returns proper outcome1864 project_visibility: :internal, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :private, outcome: false1865 For project and non_member users1866 returns proper outcome1867 Without a given project and non_member users1868 returns proper outcome1869 project_visibility: :internal, feature_visibility: :enabled, user_type: :member, snippet_visibility: :public, outcome: true1870 For project and member users1871 returns proper outcome1872 Without a given project and member users1873 returns proper outcome1874 project_visibility: :internal, feature_visibility: :enabled, user_type: :member, snippet_visibility: :internal, outcome: true1875 For project and member users1876 returns proper outcome1877 Without a given project and member users1878 returns proper outcome1879 project_visibility: :internal, feature_visibility: :enabled, user_type: :member, snippet_visibility: :private, outcome: true1880 For project and member users1881 returns proper outcome1882 Without a given project and member users1883 returns proper outcome1884 project_visibility: :internal, feature_visibility: :enabled, user_type: :author, snippet_visibility: :public, outcome: true1885 For project and author users1886 returns proper outcome1887 Without a given project and author users1888 returns proper outcome1889 project_visibility: :internal, feature_visibility: :enabled, user_type: :author, snippet_visibility: :internal, outcome: true1890 For project and author users1891 returns proper outcome1892 Without a given project and author users1893 returns proper outcome1894 project_visibility: :internal, feature_visibility: :enabled, user_type: :author, snippet_visibility: :private, outcome: true1895 For project and author users1896 returns proper outcome1897 Without a given project and author users1898 returns proper outcome1899 project_visibility: :internal, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :public, outcome: false1900 For project and unauthenticated users1901 returns proper outcome1902 Without a given project and unauthenticated users1903 returns proper outcome1904 project_visibility: :internal, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1905 For project and unauthenticated users1906 returns proper outcome1907 Without a given project and unauthenticated users1908 returns proper outcome1909 project_visibility: :internal, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1910 For project and unauthenticated users1911 returns proper outcome1912 Without a given project and unauthenticated users1913 returns proper outcome1914 project_visibility: :internal, feature_visibility: :private, user_type: :external, snippet_visibility: :public, outcome: false1915 For project and external users1916 returns proper outcome1917 Without a given project and external users1918 returns proper outcome1919 project_visibility: :internal, feature_visibility: :private, user_type: :external, snippet_visibility: :internal, outcome: false1920 For project and external users1921 returns proper outcome1922 Without a given project and external users1923 returns proper outcome1924 project_visibility: :internal, feature_visibility: :private, user_type: :external, snippet_visibility: :private, outcome: false1925 For project and external users1926 returns proper outcome1927 Without a given project and external users1928 returns proper outcome1929 project_visibility: :internal, feature_visibility: :private, user_type: :non_member, snippet_visibility: :public, outcome: false1930 For project and non_member users1931 returns proper outcome1932 Without a given project and non_member users1933 returns proper outcome1934 project_visibility: :internal, feature_visibility: :private, user_type: :non_member, snippet_visibility: :internal, outcome: false1935 For project and non_member users1936 returns proper outcome1937 Without a given project and non_member users1938 returns proper outcome1939 project_visibility: :internal, feature_visibility: :private, user_type: :non_member, snippet_visibility: :private, outcome: false1940 For project and non_member users1941 returns proper outcome1942 Without a given project and non_member users1943 returns proper outcome1944 project_visibility: :internal, feature_visibility: :private, user_type: :member, snippet_visibility: :public, outcome: true1945 For project and member users1946 returns proper outcome1947 Without a given project and member users1948 returns proper outcome1949 project_visibility: :internal, feature_visibility: :private, user_type: :member, snippet_visibility: :internal, outcome: true1950 For project and member users1951 returns proper outcome1952 Without a given project and member users1953 returns proper outcome1954 project_visibility: :internal, feature_visibility: :private, user_type: :member, snippet_visibility: :private, outcome: true1955 For project and member users1956 returns proper outcome1957 Without a given project and member users1958 returns proper outcome1959 project_visibility: :internal, feature_visibility: :private, user_type: :author, snippet_visibility: :public, outcome: true1960 For project and author users1961 returns proper outcome1962 Without a given project and author users1963 returns proper outcome1964 project_visibility: :internal, feature_visibility: :private, user_type: :author, snippet_visibility: :internal, outcome: true1965 For project and author users1966 returns proper outcome1967 Without a given project and author users1968 returns proper outcome1969 project_visibility: :internal, feature_visibility: :private, user_type: :author, snippet_visibility: :private, outcome: true1970 For project and author users1971 returns proper outcome1972 Without a given project and author users1973 returns proper outcome1974 project_visibility: :internal, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false1975 For project and unauthenticated users1976 returns proper outcome1977 Without a given project and unauthenticated users1978 returns proper outcome1979 project_visibility: :internal, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false1980 For project and unauthenticated users1981 returns proper outcome1982 Without a given project and unauthenticated users1983 returns proper outcome1984 project_visibility: :internal, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false1985 For project and unauthenticated users1986 returns proper outcome1987 Without a given project and unauthenticated users1988 returns proper outcome1989 project_visibility: :internal, feature_visibility: :disabled, user_type: :external, snippet_visibility: :public, outcome: false1990 For project and external users1991 returns proper outcome1992 Without a given project and external users1993 returns proper outcome1994 project_visibility: :internal, feature_visibility: :disabled, user_type: :external, snippet_visibility: :internal, outcome: false1995 For project and external users1996 returns proper outcome1997 Without a given project and external users1998 returns proper outcome1999 project_visibility: :internal, feature_visibility: :disabled, user_type: :external, snippet_visibility: :private, outcome: false2000 For project and external users2001 returns proper outcome2002 Without a given project and external users2003 returns proper outcome2004 project_visibility: :internal, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :public, outcome: false2005 For project and non_member users2006 returns proper outcome2007 Without a given project and non_member users2008 returns proper outcome2009 project_visibility: :internal, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :internal, outcome: false2010 For project and non_member users2011 returns proper outcome2012 Without a given project and non_member users2013 returns proper outcome2014 project_visibility: :internal, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :private, outcome: false2015 For project and non_member users2016 returns proper outcome2017 Without a given project and non_member users2018 returns proper outcome2019 project_visibility: :internal, feature_visibility: :disabled, user_type: :member, snippet_visibility: :public, outcome: false2020 For project and member users2021 returns proper outcome2022 Without a given project and member users2023 returns proper outcome2024 project_visibility: :internal, feature_visibility: :disabled, user_type: :member, snippet_visibility: :internal, outcome: false2025 For project and member users2026 returns proper outcome2027 Without a given project and member users2028 returns proper outcome2029 project_visibility: :internal, feature_visibility: :disabled, user_type: :member, snippet_visibility: :private, outcome: false2030 For project and member users2031 returns proper outcome2032 Without a given project and member users2033 returns proper outcome2034 project_visibility: :internal, feature_visibility: :disabled, user_type: :author, snippet_visibility: :public, outcome: false2035 For project and author users2036 returns proper outcome2037 Without a given project and author users2038 returns proper outcome2039 project_visibility: :internal, feature_visibility: :disabled, user_type: :author, snippet_visibility: :internal, outcome: false2040 For project and author users2041 returns proper outcome2042 Without a given project and author users2043 returns proper outcome2044 project_visibility: :internal, feature_visibility: :disabled, user_type: :author, snippet_visibility: :private, outcome: false2045 For project and author users2046 returns proper outcome2047 Without a given project and author users2048 returns proper outcome2049 project_visibility: :private, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2050 For project and unauthenticated users2051 returns proper outcome2052 Without a given project and unauthenticated users2053 returns proper outcome2054 project_visibility: :private, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2055 For project and unauthenticated users2056 returns proper outcome2057 Without a given project and unauthenticated users2058 returns proper outcome2059 project_visibility: :private, feature_visibility: :enabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2060 For project and unauthenticated users2061 returns proper outcome2062 Without a given project and unauthenticated users2063 returns proper outcome2064 project_visibility: :private, feature_visibility: :enabled, user_type: :external, snippet_visibility: :public, outcome: true2065 For project and external users2066 returns proper outcome2067 Without a given project and external users2068 returns proper outcome2069 project_visibility: :private, feature_visibility: :enabled, user_type: :external, snippet_visibility: :internal, outcome: true2070 For project and external users2071 returns proper outcome2072 Without a given project and external users2073 returns proper outcome2074 project_visibility: :private, feature_visibility: :enabled, user_type: :external, snippet_visibility: :private, outcome: true2075 For project and external users2076 returns proper outcome2077 Without a given project and external users2078 returns proper outcome2079 project_visibility: :private, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :public, outcome: false2080 For project and non_member users2081 returns proper outcome2082 Without a given project and non_member users2083 returns proper outcome2084 project_visibility: :private, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :internal, outcome: false2085 For project and non_member users2086 returns proper outcome2087 Without a given project and non_member users2088 returns proper outcome2089 project_visibility: :private, feature_visibility: :enabled, user_type: :non_member, snippet_visibility: :private, outcome: false2090 For project and non_member users2091 returns proper outcome2092 Without a given project and non_member users2093 returns proper outcome2094 project_visibility: :private, feature_visibility: :enabled, user_type: :member, snippet_visibility: :public, outcome: true2095 For project and member users2096 returns proper outcome2097 Without a given project and member users2098 returns proper outcome2099 project_visibility: :private, feature_visibility: :enabled, user_type: :member, snippet_visibility: :internal, outcome: true2100 For project and member users2101 returns proper outcome2102 Without a given project and member users2103 returns proper outcome2104 project_visibility: :private, feature_visibility: :enabled, user_type: :member, snippet_visibility: :private, outcome: true2105 For project and member users2106 returns proper outcome2107 Without a given project and member users2108 returns proper outcome2109 project_visibility: :private, feature_visibility: :enabled, user_type: :author, snippet_visibility: :public, outcome: true2110 For project and author users2111 returns proper outcome2112 Without a given project and author users2113 returns proper outcome2114 project_visibility: :private, feature_visibility: :enabled, user_type: :author, snippet_visibility: :internal, outcome: true2115 For project and author users2116 returns proper outcome2117 Without a given project and author users2118 returns proper outcome2119 project_visibility: :private, feature_visibility: :enabled, user_type: :author, snippet_visibility: :private, outcome: true2120 For project and author users2121 returns proper outcome2122 Without a given project and author users2123 returns proper outcome2124 project_visibility: :private, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2125 For project and unauthenticated users2126 returns proper outcome2127 Without a given project and unauthenticated users2128 returns proper outcome2129 project_visibility: :private, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2130 For project and unauthenticated users2131 returns proper outcome2132 Without a given project and unauthenticated users2133 returns proper outcome2134 project_visibility: :private, feature_visibility: :private, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2135 For project and unauthenticated users2136 returns proper outcome2137 Without a given project and unauthenticated users2138 returns proper outcome2139 project_visibility: :private, feature_visibility: :private, user_type: :external, snippet_visibility: :public, outcome: true2140 For project and external users2141 returns proper outcome2142 Without a given project and external users2143 returns proper outcome2144 project_visibility: :private, feature_visibility: :private, user_type: :external, snippet_visibility: :internal, outcome: true2145 For project and external users2146 returns proper outcome2147 Without a given project and external users2148 returns proper outcome2149 project_visibility: :private, feature_visibility: :private, user_type: :external, snippet_visibility: :private, outcome: true2150 For project and external users2151 returns proper outcome2152 Without a given project and external users2153 returns proper outcome2154 project_visibility: :private, feature_visibility: :private, user_type: :non_member, snippet_visibility: :public, outcome: false2155 For project and non_member users2156 returns proper outcome2157 Without a given project and non_member users2158 returns proper outcome2159 project_visibility: :private, feature_visibility: :private, user_type: :non_member, snippet_visibility: :internal, outcome: false2160 For project and non_member users2161 returns proper outcome2162 Without a given project and non_member users2163 returns proper outcome2164 project_visibility: :private, feature_visibility: :private, user_type: :non_member, snippet_visibility: :private, outcome: false2165 For project and non_member users2166 returns proper outcome2167 Without a given project and non_member users2168 returns proper outcome2169 project_visibility: :private, feature_visibility: :private, user_type: :member, snippet_visibility: :public, outcome: true2170 For project and member users2171 returns proper outcome2172 Without a given project and member users2173 returns proper outcome2174 project_visibility: :private, feature_visibility: :private, user_type: :member, snippet_visibility: :internal, outcome: true2175 For project and member users2176 returns proper outcome2177 Without a given project and member users2178 returns proper outcome2179 project_visibility: :private, feature_visibility: :private, user_type: :member, snippet_visibility: :private, outcome: true2180 For project and member users2181 returns proper outcome2182 Without a given project and member users2183 returns proper outcome2184 project_visibility: :private, feature_visibility: :private, user_type: :author, snippet_visibility: :public, outcome: true2185 For project and author users2186 returns proper outcome2187 Without a given project and author users2188 returns proper outcome2189 project_visibility: :private, feature_visibility: :private, user_type: :author, snippet_visibility: :internal, outcome: true2190 For project and author users2191 returns proper outcome2192 Without a given project and author users2193 returns proper outcome2194 project_visibility: :private, feature_visibility: :private, user_type: :author, snippet_visibility: :private, outcome: true2195 For project and author users2196 returns proper outcome2197 Without a given project and author users2198 returns proper outcome2199 project_visibility: :private, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :public, outcome: false2200 For project and unauthenticated users2201 returns proper outcome2202 Without a given project and unauthenticated users2203 returns proper outcome2204 project_visibility: :private, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :internal, outcome: false2205 For project and unauthenticated users2206 returns proper outcome2207 Without a given project and unauthenticated users2208 returns proper outcome2209 project_visibility: :private, feature_visibility: :disabled, user_type: :unauthenticated, snippet_visibility: :private, outcome: false2210 For project and unauthenticated users2211 returns proper outcome2212 Without a given project and unauthenticated users2213 returns proper outcome2214 project_visibility: :private, feature_visibility: :disabled, user_type: :external, snippet_visibility: :public, outcome: false2215 For project and external users2216 returns proper outcome2217 Without a given project and external users2218 returns proper outcome2219 project_visibility: :private, feature_visibility: :disabled, user_type: :external, snippet_visibility: :internal, outcome: false2220 For project and external users2221 returns proper outcome2222 Without a given project and external users2223 returns proper outcome2224 project_visibility: :private, feature_visibility: :disabled, user_type: :external, snippet_visibility: :private, outcome: false2225 For project and external users2226 returns proper outcome2227 Without a given project and external users2228 returns proper outcome2229 project_visibility: :private, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :public, outcome: false2230 For project and non_member users2231 returns proper outcome2232 Without a given project and non_member users2233 returns proper outcome2234 project_visibility: :private, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :internal, outcome: false2235 For project and non_member users2236 returns proper outcome2237 Without a given project and non_member users2238 returns proper outcome2239 project_visibility: :private, feature_visibility: :disabled, user_type: :non_member, snippet_visibility: :private, outcome: false2240 For project and non_member users2241 returns proper outcome2242 Without a given project and non_member users2243 returns proper outcome2244 project_visibility: :private, feature_visibility: :disabled, user_type: :member, snippet_visibility: :public, outcome: false2245 For project and member users2246 returns proper outcome2247 Without a given project and member users2248 returns proper outcome2249 project_visibility: :private, feature_visibility: :disabled, user_type: :member, snippet_visibility: :internal, outcome: false2250 For project and member users2251 returns proper outcome2252 Without a given project and member users2253 returns proper outcome2254 project_visibility: :private, feature_visibility: :disabled, user_type: :member, snippet_visibility: :private, outcome: false2255 For project and member users2256 returns proper outcome2257 Without a given project and member users2258 returns proper outcome2259 project_visibility: :private, feature_visibility: :disabled, user_type: :author, snippet_visibility: :public, outcome: false2260 For project and author users2261 returns proper outcome2262 Without a given project and author users2263 returns proper outcome2264 project_visibility: :private, feature_visibility: :disabled, user_type: :author, snippet_visibility: :internal, outcome: false2265 For project and author users2266 returns proper outcome2267 Without a given project and author users2268 returns proper outcome2269 project_visibility: :private, feature_visibility: :disabled, user_type: :author, snippet_visibility: :private, outcome: false2270 For project and author users2271 returns proper outcome2272 Without a given project and author users2273 returns proper outcome2274 For personal snippets2275 snippet_visibility: :public, user_type: :unauthenticated, outcome: true2276 For personal and public snippets with unauthenticated user2277 returns proper outcome2278 snippet_visibility: :public, user_type: :external, outcome: true2279 For personal and public snippets with external user2280 returns proper outcome2281 snippet_visibility: :public, user_type: :non_member, outcome: true2282 For personal and public snippets with non_member user2283 returns proper outcome2284 snippet_visibility: :public, user_type: :author, outcome: true2285 For personal and public snippets with author user2286 returns proper outcome2287 snippet_visibility: :internal, user_type: :unauthenticated, outcome: false2288 For personal and internal snippets with unauthenticated user2289 returns proper outcome2290 snippet_visibility: :internal, user_type: :external, outcome: false2291 For personal and internal snippets with external user2292 returns proper outcome2293 snippet_visibility: :internal, user_type: :non_member, outcome: true2294 For personal and internal snippets with non_member user2295 returns proper outcome2296 snippet_visibility: :internal, user_type: :author, outcome: true2297 For personal and internal snippets with author user2298 returns proper outcome2299 snippet_visibility: :private, user_type: :unauthenticated, outcome: false2300 For personal and private snippets with unauthenticated user2301 returns proper outcome2302 snippet_visibility: :private, user_type: :external, outcome: false2303 For personal and private snippets with external user2304 returns proper outcome2305 snippet_visibility: :private, user_type: :non_member, outcome: false2306 For personal and private snippets with non_member user2307 returns proper outcome2308 snippet_visibility: :private, user_type: :author, outcome: true2309 For personal and private snippets with author user2310 returns proper outcome2311 when the user cannot read cross project2312 returns only personal snippets2313 external authorization2314 includes the result if the external service allows access2315 does not include any results if the external service denies access2316 behaves like a finder with external authorization service2317 finds the subject2318 with an external authorization service2319 does not include the subject when no project was given2320 includes the subject when a project id was given2321Gitlab::ImportExport::Project::RelationFactory2322 hook object2323 does not have the original ID2324 does not have the original integration_id2325 does not have the original project_id2326 has the new project_id2327 has a nil token2328 original service exists2329 does not have the original integration_id2330 excluded attributes2331 are removed from the imported object2332 merge_request object2333 has preloaded author2334 has preloaded updated_by2335 has preloaded source project2336 has preloaded target project2337 issue object2338 has preloaded project2339 computing relative position2340 when max relative position in the hierarchy is not cached2341 has computed new relative_position2342 when max relative position in the hierarchy is cached2343 has computed new relative_position2344 when issue_type is provided in the hash2345 sets the correct work_item_type2346 when work_item_type is provided in the hash2347 sets the correct work_item_type2348 when issue_type is provided in the hash as well as a work_item_type2349 makes work_item_type take precedence over issue_type2350 label object2351 has preloaded project2352 has preloaded group2353 pipeline_schedule2354 when relation_hash has active set to true2355 the created object is not active2356 when relation_hash has active set to false2357 the created object is not active2358 Potentially hazardous foreign keys2359 does not preserve any foreign key IDs2360 overrided model with pluralized name2361 does not raise errors2362 Project references2363 does not preserve any project foreign key IDs2364 behaves like Notes user references2365 when the importer is admin2366 and the note author is not mapped2367 is expected to eq #<User id:582 @user142>2368 is expected to include "*By Administrator"2369 and the note author is the importer user2370 is expected to eq #<User id:588 @user146>2371 is expected not to include "*By Administrator"2372 and the note author exists in the target instance2373 is expected to eq #<User id:597 @user152>2374 is expected not to include "*By Administrator"2375 when the importer is not admin2376 and the note author is not mapped2377 is expected to eq #<User id:602 @user156>2378 is expected to include "*By Administrator"2379 and the note author is the importer user2380 is expected to eq #<User id:608 @user160>2381 is expected to include "*By Administrator"2382 and the note author exists in the target instance2383 is expected to eq #<User id:614 @user164>2384 is expected to include "*By Administrator"2385 encrypted attributes2386 has no value for the encrypted attribute2387 event object2388 has preloaded project2389 protected branch access levels2390 merge access level2391 when access level is no one2392 keeps no one access level2393 when access level is below maintainer2394 sets access level to maintainer2395 when access level is above maintainer2396 sets access level to maintainer2397 root ancestor membership2398 when importer user is root group owner2399 keeps access level as is2400 when user membership in root group is missing2401 sets access level to maintainer2402 when root ancestor is not a group2403 sets access level to maintainer2404 push access level2405 when access level is no one2406 keeps no one access level2407 when access level is below maintainer2408 sets access level to maintainer2409 when access level is above maintainer2410 sets access level to maintainer2411 root ancestor membership2412 when importer user is root group owner2413 keeps access level as is2414 when user membership in root group is missing2415 sets access level to maintainer2416 when root ancestor is not a group2417 sets access level to maintainer2418WikiPagePolicy2419 when user is a direct project member2420 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12421 grants the expected permissions2422 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12423 grants the expected permissions2424 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12425 grants the expected permissions2426 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12427 grants the expected permissions2428 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12429 grants the expected permissions2430 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12431 grants the expected permissions2432 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12433 grants the expected permissions2434 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02435 grants the expected permissions2436 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12437 grants the expected permissions2438 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12439 grants the expected permissions2440 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02441 grants the expected permissions2442 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02443 grants the expected permissions2444 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02445 grants the expected permissions2446 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02447 grants the expected permissions2448 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02449 grants the expected permissions2450 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02451 grants the expected permissions2452 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12453 grants the expected permissions2454 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12455 grants the expected permissions2456 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12457 grants the expected permissions2458 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12459 grants the expected permissions2460 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12461 grants the expected permissions2462 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02463 grants the expected permissions2464 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12465 grants the expected permissions2466 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02467 grants the expected permissions2468 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12469 grants the expected permissions2470 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12471 grants the expected permissions2472 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02473 grants the expected permissions2474 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02475 grants the expected permissions2476 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02477 grants the expected permissions2478 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02479 grants the expected permissions2480 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02481 grants the expected permissions2482 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02483 grants the expected permissions2484 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12485 grants the expected permissions2486 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02487 grants the expected permissions2488 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12489 grants the expected permissions2490 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12491 grants the expected permissions2492 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02493 grants the expected permissions2494 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02495 grants the expected permissions2496 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02497 grants the expected permissions2498 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02499 grants the expected permissions2500 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02501 grants the expected permissions2502 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02503 grants the expected permissions2504 when user is an inherited member from the group2505 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12506 grants the expected permissions2507 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12508 grants the expected permissions2509 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12510 grants the expected permissions2511 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12512 grants the expected permissions2513 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12514 grants the expected permissions2515 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12516 grants the expected permissions2517 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12518 grants the expected permissions2519 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02520 grants the expected permissions2521 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12522 grants the expected permissions2523 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12524 grants the expected permissions2525 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02526 grants the expected permissions2527 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02528 grants the expected permissions2529 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02530 grants the expected permissions2531 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02532 grants the expected permissions2533 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02534 grants the expected permissions2535 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02536 grants the expected permissions2537 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12538 grants the expected permissions2539 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12540 grants the expected permissions2541 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12542 grants the expected permissions2543 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12544 grants the expected permissions2545 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12546 grants the expected permissions2547 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02548 grants the expected permissions2549 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12550 grants the expected permissions2551 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02552 grants the expected permissions2553 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12554 grants the expected permissions2555 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12556 grants the expected permissions2557 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02558 grants the expected permissions2559 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02560 grants the expected permissions2561 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02562 grants the expected permissions2563 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02564 grants the expected permissions2565 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02566 grants the expected permissions2567 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02568 grants the expected permissions2569 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12570 grants the expected permissions2571 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02572 grants the expected permissions2573 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12574 grants the expected permissions2575 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12576 grants the expected permissions2577 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02578 grants the expected permissions2579 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02580 grants the expected permissions2581 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02582 grants the expected permissions2583 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02584 grants the expected permissions2585 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02586 grants the expected permissions2587 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02588 grants the expected permissions2589Issuable::BulkUpdateService2590 with issuables at a project level2591 behaves like bulk update service2592 result count only includes authorized issuables2593 when issuable_ids are passed as an array2594 updates assignees2595 with unpermitted attributes2596 does not update the issues2597 when issuable update service raises an ArgumentError2598 returns an error response2599 close issues2600 succeeds and returns the correct number of issues updated2601 closes all the issues passed2602 behaves like scheduling cached group count clear2603 schedules worker2604 reopen issues2605 succeeds and returns the correct number of issues updated2606 reopens all the issues passed2607 behaves like scheduling cached group count clear2608 schedules worker2609 updating merge request assignee2610 when the new assignee ID is a valid user2611 succeeds2612 updates the assignee to the user ID passed2613 when the new assignee ID is 02614 unassigns the issues2615 when the new assignee IDs array is empty2616 removes all assignees2617 updating issue assignee2618 when the new assignee ID is a valid user2619 succeeds2620 updates the assignee to the user ID passed2621 when the new assignee ID is 02622 unassigns the issues2623 when the new assignee IDs array is empty2624 removes all assignees2625 updating milestones2626 behaves like updates milestones2627 succeeds2628 updates the issuables milestone2629 behaves like not scheduling cached group count clear2630 does not schedule worker2631 updating labels2632 behaves like updating labels2633 when add_label_ids are passed2634 adds those label IDs to all issues passed2635 does not update issues not passed in2636 when remove_label_ids are passed2637 removes those label IDs from all issues passed2638 does not update issues not passed in2639 when add_label_ids and remove_label_ids are passed2640 adds the label IDs to all issues passed2641 removes the label IDs from all issues passed2642 does not update issues not passed in2643 subscribe to issues2644 subscribes the given user2645 unsubscribe from issues2646 unsubscribes the given user2647 updating issues from external project2648 updates only issues that belong to the parent project2649 with issuables at a group level2650 behaves like bulk update service2651 result count only includes authorized issuables2652 when issuable_ids are passed as an array2653 updates assignees2654 updating milestones2655 when issues2656 behaves like updates milestones2657 succeeds2658 updates the issuables milestone2659 when merge requests2660 behaves like updates milestones2661 succeeds2662 updates the issuables milestone2663 updating labels2664 behaves like updating labels2665 when add_label_ids are passed2666 adds those label IDs to all issues passed2667 does not update issues not passed in2668 when remove_label_ids are passed2669 removes those label IDs from all issues passed2670 does not update issues not passed in2671 when add_label_ids and remove_label_ids are passed2672 adds the label IDs to all issues passed2673 removes the label IDs from all issues passed2674 does not update issues not passed in2675 with issues from external group2676 updates issues that belong to the parent group or descendants2677 when no parent is provided2678 returns an unscoped update error2679ResourceAccessTokens::CreateService2680 #execute2681 when resource is a project2682 behaves like when user does not have permission to create a resource bot2683 behaves like token creation fails2684 does not add the project bot as a member2685 immediately destroys the bot user if one was created2686 behaves like correct error message2687 returns correct error message2688 user with valid permission2689 behaves like allows creation of bot with valid params2690 is expected to change `User.count` by 12691 creates resource bot user2692 logs the event2693 email confirmation status2694 when created by an admin2695 when admin mode is enabled2696 behaves like creates a user that has their email confirmed2697 creates a user that has their email confirmed2698 when admin mode is disabled2699 returns error2700 when created by a non-admin2701 behaves like creates a user that has their email confirmed2702 creates a user that has their email confirmed2703 bot name2704 when no name is passed2705 uses default name2706 when user provides name2707 overrides the default name value2708 bot username and email2709 check email domain2710 contains SecureRandom part2711 email name is the same as username2712 when conflicts2713 when username is reserved2714 when username is reserved by user2715 uniquifies username and email2716 when it conflicts with top-level group namespace2717 uniquifies username and email2718 when it conflicts with top-level group namespace that includes upcased characters2719 uniquifies username and email2720 when email is reserved2721 when it conflicts with confirmed primary email2722 uniquifies username and email2723 when it conflicts with unconfirmed primary email2724 uniquifies username and email2725 when it conflicts with confirmed secondary email2726 uniquifies username and email2727 when email and username is reserved2728 uniquifies username and email2729 access level2730 when user does not specify an access level2731 adds the bot user as a maintainer in the resource2732 when user specifies an access level2733 behaves like bot with access level2734 adds the bot user with the specified access level in the resource2735 with DEVELOPER access_level, in string format2736 behaves like bot with access level2737 adds the bot user with the specified access level in the resource2738 when user is external2739 creates resource bot user with external status2740 personal access token2741 is expected to change `PersonalAccessToken.count` by 12742 when user does not provide scope2743 has default scopes2744 when user provides scope explicitly2745 overrides the default scope value2746 expires_at2747 when no expiration value is passed2748 defaults to PersonalAccessToken::MAX_PERSONAL_ACCESS_TOKEN_LIFETIME_IN_DAYS2749 project bot membership expires when PAT expires2750 when user provides expiration value2751 overrides the default expiration value2752 expiry of the project bot member2753 sets the project bot to expire on the same day as the token2754 when invalid scope is passed2755 behaves like token creation fails2756 does not add the project bot as a member2757 immediately destroys the bot user if one was created2758 behaves like correct error message2759 returns correct error message2760 when access provisioning fails2761 with MAINTAINER access_level, in integer format2762 behaves like token creation fails2763 does not add the project bot as a member2764 immediately destroys the bot user if one was created2765 behaves like correct error message2766 returns correct error message2767 with MAINTAINER access_level, in string format2768 behaves like token creation fails2769 does not add the project bot as a member2770 immediately destroys the bot user if one was created2771 behaves like correct error message2772 returns correct error message2773 when user specifies an access level of OWNER for the bot2774 when the executor is a MAINTAINER2775 with OWNER access_level, in integer format2776 behaves like token creation fails2777 does not add the project bot as a member2778 immediately destroys the bot user if one was created2779 behaves like correct error message2780 returns correct error message2781 with OWNER access_level, in string format2782 behaves like token creation fails2783 does not add the project bot as a member2784 immediately destroys the bot user if one was created2785 behaves like correct error message2786 returns correct error message2787 when the executor is an OWNER2788 adds the bot user with the specified access level in the resource2789 when resource is a group2790 behaves like when user does not have permission to create a resource bot2791 behaves like token creation fails2792 does not add the project bot as a member2793 immediately destroys the bot user if one was created2794 behaves like correct error message2795 returns correct error message2796 user with valid permission2797 behaves like allows creation of bot with valid params2798 is expected to change `User.count` by 12799 creates resource bot user2800 logs the event2801 email confirmation status2802 when created by an admin2803 when admin mode is enabled2804 behaves like creates a user that has their email confirmed2805 creates a user that has their email confirmed2806 when admin mode is disabled2807 returns error2808 when created by a non-admin2809 behaves like creates a user that has their email confirmed2810 creates a user that has their email confirmed2811 bot name2812 when no name is passed2813 uses default name2814 when user provides name2815 overrides the default name value2816 bot username and email2817 check email domain2818 contains SecureRandom part2819 email name is the same as username2820 when conflicts2821 when username is reserved2822 when username is reserved by user2823 uniquifies username and email2824 when it conflicts with top-level group namespace2825 uniquifies username and email2826 when it conflicts with top-level group namespace that includes upcased characters2827 uniquifies username and email2828 when email is reserved2829 when it conflicts with confirmed primary email2830 uniquifies username and email2831 when it conflicts with unconfirmed primary email2832 uniquifies username and email2833 when it conflicts with confirmed secondary email2834 uniquifies username and email2835 when email and username is reserved2836 uniquifies username and email2837 access level2838 when user does not specify an access level2839 adds the bot user as a maintainer in the resource2840 when user specifies an access level2841 behaves like bot with access level2842 adds the bot user with the specified access level in the resource2843 with DEVELOPER access_level, in string format2844 behaves like bot with access level2845 adds the bot user with the specified access level in the resource2846 when user is external2847 creates resource bot user with external status2848 personal access token2849 is expected to change `PersonalAccessToken.count` by 12850 when user does not provide scope2851 has default scopes2852 when user provides scope explicitly2853 overrides the default scope value2854 expires_at2855 when no expiration value is passed2856 defaults to PersonalAccessToken::MAX_PERSONAL_ACCESS_TOKEN_LIFETIME_IN_DAYS2857 project bot membership expires when PAT expires2858 when user provides expiration value2859 overrides the default expiration value2860 expiry of the project bot member2861 sets the project bot to expire on the same day as the token2862 when invalid scope is passed2863 behaves like token creation fails2864 does not add the project bot as a member2865 immediately destroys the bot user if one was created2866 behaves like correct error message2867 returns correct error message2868 when access provisioning fails2869 with MAINTAINER access_level, in integer format2870 behaves like token creation fails2871 does not add the project bot as a member2872 immediately destroys the bot user if one was created2873 behaves like correct error message2874 returns correct error message2875 with MAINTAINER access_level, in string format2876 behaves like token creation fails2877 does not add the project bot as a member2878 immediately destroys the bot user if one was created2879 behaves like correct error message2880 returns correct error message2881 when user specifies an access level of OWNER for the bot2882 adds the bot user with the specified access level in the resource2883MergeRequestWidgetEntity2884 has email_patches_path2885 has plain_diff_path2886 has human access2887 has new pipeline path for project2888 has security_reports_docs_path2889 source_project_full_path2890 includes the full path of the source project2891 when the source project is missing2892 returns `nil` for the source project2893 can_create_pipeline_in_target_project2894 when user has permission2895 includes the correct permission info2896 when user does not have permission2897 includes the correct permission info2898 issues links2899 includes issues links when requested2900 omits issue links by default2901 merge_request_add_ci_config_path2902 when there is a standard ci config file in the source project2903 no ci config path2904 when there is no standard ci config file in the source project2905 when user has permissions2906 has add ci config path2907 has expected params2908 when auto devops is enabled2909 returns a blank ci config path2910 when source project is missing2911 returns a blank ci config path2912 when there are no commits2913 returns a blank ci config path2914 when build feature is disabled2915 has no path2916 when creating the pipeline is not allowed2917 has no path2918 when merge request is merged2919 returns a blank ci config path2920 when merge request is closed2921 returns a blank ci config path2922 when source branch does not exist2923 returns a blank ci config path2924 when user does not have permissions2925 has add ci config path2926 user callouts2927 provides a valid path value for user callout path2928 provides a valid value for suggest pipeline feature id2929 when source project is deleted2930 returns a blank rebase_path2931 has source_project_default_url2932 returns the default url to the source project2933 when source project is nil2934 returns nil2935 when gitpod is disabled2936 exposes gitpod attributes2937 when gitpod is enabled2938 exposes gitpod attributes2939 when gitpod is enabled for user2940 exposes gitpod_enabled as true2941 is_dismissed_suggest_pipeline2942 when user is logged in2943 when the suggest pipeline feature is enabled2944 is false2945 when suggest pipeline has been dismissed2946 is true2947 when the suggest pipeline feature is disabled2948 is true2949 when user is not logged in2950 is true2951Gitlab::ImportExport::Importer2952 #execute2953 succeeds2954 extracts the archive2955 checks the version2956 all restores are executed2957 calls the Gitlab::ImportExport::AvatarRestorer2958 calls the Gitlab::ImportExport::RepoRestorer2959 calls the Gitlab::ImportExport::UploadsRestorer2960 calls the Gitlab::ImportExport::LfsRestorer2961 calls the Gitlab::ImportExport::StatisticsRestorer2962 calls the Gitlab::ImportExport::SnippetsRepoRestorer2963 calls the Gitlab::ImportExport::DesignRepoRestorer2964 calls RepoRestorer with project and wiki2965 removes the import file2966 removes tmp files2967 sets the correct visibility_level when visibility level is a string2968 with sample_data_template2969 initializes the Sample::TreeRestorer2970 without sample_data_template2971 initializes the ProjectTree2972 when import fails2973 when there is a graceful error2974 raises and exception2975 behaves like removes any non migrated snippet2976 is expected to be present2977 when an unexpected exception is raised2978 captures it and raises the Projects::ImportService::Error exception2979 behaves like removes any non migrated snippet2980 is expected to be present2981 when project successfully restored2982 with a project in a user's namespace2983 when import_data2984 has original_path2985 overwrites existing project2986 has not original_path2987 does not call the overwrite service2988 with a project in a group namespace2989 has original_path2990 overwrites existing project2991 does not allow user to overwrite existing project2992Gitlab::Email::Handler::CreateNoteHandler2993 behaves like reply processing shared examples2994 when the user could not be found2995 raises a UserNotFoundError2996 when the user is not authorized to the project2997 raises a ProjectNotFound2998 behaves like note handler shared examples2999 when the noteable could not be found3000 raises a NoteableNotFoundError3001 when the note could not be saved3002 raises an InvalidNoteError3003 because the note was update commands only3004 and current user cannot update noteable3005 does not raise an error3006 and current user can update noteable3007 does not raise an error3008 when the note contains quick actions3009 and current user cannot update the noteable3010 only executes the commands that the user can perform3011 and current user can update noteable3012 posts a note and updates the noteable3013 when the reply is blank3014 raises an EmptyEmailError3015 when discussion is locked3016 behaves like checks permissions on noteable examples3017 when user has access3018 creates a comment3019 when user does not have access3020 raises UserNotAuthorizedError3021 when everything is fine3022 adds all attachments3023 when the service desk3024 is enabled3025 when issues are enabled for everyone3026 creates a comment3027 when quick actions are present3028 when author is a support_bot3029 encloses quick actions with code span markdown3030 when issues are protected members only3031 creates a comment3032 when issues are disabled3033 does not create a comment3034 is disabled3035 does not create a comment3036 when the recipient address does not include a mail key3037 raises a UnknownIncomingEmail3038 when the incoming email is from a different email address3039 when the issue is not a Service Desk issue3040 with only one email address3041 raises a UserNotFoundError3042 with a secondary verified email address3043 does not raise a UserNotFoundError3044 when the issue is a Service Desk issue3045 does not raise a UserNotFoundError3046 when no sent notification for the mail key could be found3047 raises a SentNotificationNotFoundError3048 when issue is confidential3049 behaves like checks permissions on noteable examples3050 when user has access3051 creates a comment3052 when user does not have access3053 raises UserNotAuthorizedError3054 when everything is fine3055 behaves like a reply to existing comment3056 creates a discussion3057 when sub-addressing is not supported3058 mail key is in the References header3059 behaves like an email that contains a mail key3060 fetches the mail key from the References header and creates a comment3061 mail key is in the References header with a comma3062 behaves like an email that contains a mail key3063 fetches the mail key from the References header and creates a comment3064 when email contains reply3065 when noteable is not an issue3066 behaves like no content message3067 when email contains quoted text only3068 raises an EmptyEmailError3069 when email contains quoted text and quick commands only3070 does not create a discussion3071 when email contains text, quoted text and quick commands3072 creates a discussion without appended reply3073 when noteable is an issue3074 behaves like no content message3075 when email contains quoted text only3076 raises an EmptyEmailError3077 when email contains quoted text and quick commands only3078 does not create a discussion3079 when email contains text, quoted text and quick commands3080 creates a discussion with appended reply3081 when note is not a discussion3082 behaves like a reply to existing comment3083 creates a discussion3084 when note is authored from external author for service desk3085 when email contains text, quoted text and quick commands3086 creates a discussion3087 links external participant3088Gitlab::Ci::Parsers::Security::Validators::SchemaValidator3089 SUPPORTED_VERSIONS3090 matches DEPRECATED_VERSIONS keys3091 when all files under schema path are explicitly listed3092 cluster_image_scanning 15.0.03093 container_scanning 15.0.03094 coverage_fuzzing 15.0.03095 dast 15.0.03096 dependency_scanning 15.0.03097 sast 15.0.03098 secret_detection 15.0.03099 cluster_image_scanning 15.0.13100 container_scanning 15.0.13101 coverage_fuzzing 15.0.13102 dast 15.0.13103 dependency_scanning 15.0.13104 sast 15.0.13105 secret_detection 15.0.13106 cluster_image_scanning 15.0.23107 container_scanning 15.0.23108 coverage_fuzzing 15.0.23109 dast 15.0.23110 dependency_scanning 15.0.23111 sast 15.0.23112 secret_detection 15.0.23113 cluster_image_scanning 15.0.43114 container_scanning 15.0.43115 coverage_fuzzing 15.0.43116 dast 15.0.43117 dependency_scanning 15.0.43118 sast 15.0.43119 secret_detection 15.0.43120 cluster_image_scanning 15.0.53121 container_scanning 15.0.53122 coverage_fuzzing 15.0.53123 dast 15.0.53124 dependency_scanning 15.0.53125 sast 15.0.53126 secret_detection 15.0.53127 cluster_image_scanning 15.0.63128 container_scanning 15.0.63129 coverage_fuzzing 15.0.63130 dast 15.0.63131 dependency_scanning 15.0.63132 sast 15.0.63133 secret_detection 15.0.63134 when every SUPPORTED_VERSION has a corresponding JSON file3135 cluster_image_scanning 15.0.0 schema file is present3136 cluster_image_scanning 15.0.1 schema file is present3137 cluster_image_scanning 15.0.2 schema file is present3138 cluster_image_scanning 15.0.4 schema file is present3139 cluster_image_scanning 15.0.5 schema file is present3140 cluster_image_scanning 15.0.6 schema file is present3141 container_scanning 15.0.0 schema file is present3142 container_scanning 15.0.1 schema file is present3143 container_scanning 15.0.2 schema file is present3144 container_scanning 15.0.4 schema file is present3145 container_scanning 15.0.5 schema file is present3146 container_scanning 15.0.6 schema file is present3147 coverage_fuzzing 15.0.0 schema file is present3148 coverage_fuzzing 15.0.1 schema file is present3149 coverage_fuzzing 15.0.2 schema file is present3150 coverage_fuzzing 15.0.4 schema file is present3151 coverage_fuzzing 15.0.5 schema file is present3152 coverage_fuzzing 15.0.6 schema file is present3153 dast 15.0.0 schema file is present3154 dast 15.0.1 schema file is present3155 dast 15.0.2 schema file is present3156 dast 15.0.4 schema file is present3157 dast 15.0.5 schema file is present3158 dast 15.0.6 schema file is present3159 dependency_scanning 15.0.0 schema file is present3160 dependency_scanning 15.0.1 schema file is present3161 dependency_scanning 15.0.2 schema file is present3162 dependency_scanning 15.0.4 schema file is present3163 dependency_scanning 15.0.5 schema file is present3164 dependency_scanning 15.0.6 schema file is present3165 sast 15.0.0 schema file is present3166 sast 15.0.1 schema file is present3167 sast 15.0.2 schema file is present3168 sast 15.0.4 schema file is present3169 sast 15.0.5 schema file is present3170 sast 15.0.6 schema file is present3171 secret_detection 15.0.0 schema file is present3172 secret_detection 15.0.1 schema file is present3173 secret_detection 15.0.2 schema file is present3174 secret_detection 15.0.4 schema file is present3175 secret_detection 15.0.5 schema file is present3176 secret_detection 15.0.6 schema file is present3177 #valid?3178 when given a supported MAJOR.MINOR schema version3179 behaves like report is valid3180 and the report is valid3181 is expected to be truthy3182 behaves like report is invalid3183 and the report is invalid3184 is expected to be falsey3185 behaves like logs related information3186 logs related information3187 when given a supported schema version3188 behaves like report is valid3189 and the report is valid3190 is expected to be truthy3191 behaves like report is invalid3192 and the report is invalid3193 is expected to be falsey3194 behaves like logs related information3195 logs related information3196 when given a deprecated schema version3197 and the report passes schema validation3198 is expected to be truthy3199 behaves like logs related information3200 logs related information3201 and the report does not pass schema validation3202 is expected to be falsey3203 when given an unsupported schema version3204 and the report is valid3205 is expected to be falsey3206 behaves like logs related information3207 logs related information3208 and the report is invalid3209 is expected to be falsey3210 and scanner information is empty3211 logs related information3212 when not given a schema version3213nil versions are discouraged and will be deprecated in Rubygems 43214 is expected to be falsey3215 #errors3216 when given a supported schema version3217 behaves like report is valid with no error3218 and the report is valid3219 is expected to be empty3220 and the report is invalid3221 behaves like report with expected errors3222 is expected to contain exactly "root is missing required keys: vulnerabilities"3223 when given a deprecated schema version3224 behaves like report is valid with no error3225 and the report is valid3226 is expected to be empty3227 and the report does not pass schema validation3228 behaves like report with expected errors3229 is expected to contain exactly "property '/version' does not match pattern: ^[0-9]+\\.[0-9]+\\.[0-9]+$" and "root is missing required keys: vulnerabilities"3230 when given an unsupported schema version3231 and the report is valid3232 behaves like report with expected errors3233 is expected to contain exactly "Version 12.37.0 for report type dast is unsupported, supported versions for this report type are: 15...liest supported versions of this report type, to show all the errors but will not ingest the report"3234 and the report is invalid3235 behaves like report with expected errors3236 is expected to contain exactly "Version 12.37.0 for report type dast is unsupported, supported versions for this report type are: 15...liest supported versions of this report type, to show all the errors but will not ingest the report" and "root is missing required keys: vulnerabilities"3237 when not given a schema version3238 behaves like report with expected errors3239 is expected to contain exactly "root is missing required keys: version" and "Report version not provided, dast report type supports versions: 15.0.0, 15.0.1, 15.0.2, 15.0.4, 15....liest supported versions of this report type, to show all the errors but will not ingest the report"3240 #deprecation_warnings3241 when given a supported schema version3242 and the report is valid3243 is expected to be empty3244 and the report is invalid3245 is expected to be empty3246 when given a deprecated schema version3247 and the report passes schema validation3248 behaves like report with expected warnings3249 is expected to contain exactly "version V2.7.0 for report type dast is deprecated. However, GitLab will still attempt to parse and i...e security report to one of the following versions: 15.0.0, 15.0.1, 15.0.2, 15.0.4, 15.0.5, 15.0.6."3250 and the report does not pass schema validation3251 behaves like report with expected warnings3252 is expected to contain exactly "version V2.7.0 for report type dast is deprecated. However, GitLab will still attempt to parse and i...e security report to one of the following versions: 15.0.0, 15.0.1, 15.0.2, 15.0.4, 15.0.5, 15.0.6."3253 when given an unsupported schema version3254 behaves like report with expected warnings3255 is expected to contain exactly3256 #warnings3257 when given a supported MAJOR.MINOR schema version3258 and the report is valid3259 is expected to contain exactly "This report uses a supported MAJOR.MINOR schema version but the PATCH version doesn't match any vendored schema version. Validation will be attempted against version 15.0.6"3260 with license3261 tries to validate against the latest patch version available3262 and the report is invalid3263 is expected to contain exactly "This report uses a supported MAJOR.MINOR schema version but the PATCH version doesn't match any vendored schema version. Validation will be attempted against version 15.0.6"3264 behaves like logs related information3265 logs related information3266 when given a supported schema version3267 behaves like report is valid with no warning3268 and the report is valid3269 is expected to be empty3270 and the report is invalid3271 is expected to be empty3272 when given a deprecated schema version3273 and the report passes schema validation3274 is expected to be empty3275 and the report does not pass schema validation3276 is expected to be empty3277 when given an unsupported schema version3278 behaves like report is valid with no warning3279 and the report is valid3280 is expected to be empty3281 and the report is invalid3282 is expected to be empty3283 when not given a schema version3284 is expected to be empty3285ProjectHook3286 .executable/.disabled3287 finds the correct set of project hooks3288 when the flag is disabled3289 causes all hooks to be considered executable3290 causes no hooks to be considered disabled3291 #executable?3292 recent_failures: 0, not_until: :not_set, executable: true3293 has the correct state3294 when the flag is disabled3295 is always executable3296 recent_failures: 0, not_until: :past, executable: true3297 has the correct state3298 when the flag is disabled3299 is always executable3300 recent_failures: 0, not_until: :future, executable: true3301 has the correct state3302 when the flag is disabled3303 is always executable3304 recent_failures: 0, not_until: :now, executable: true3305 has the correct state3306 when the flag is disabled3307 is always executable3308 recent_failures: 1, not_until: :not_set, executable: true3309 has the correct state3310 when the flag is disabled3311 is always executable3312 recent_failures: 1, not_until: :past, executable: true3313 has the correct state3314 when the flag is disabled3315 is always executable3316 recent_failures: 1, not_until: :future, executable: true3317 has the correct state3318 when the flag is disabled3319 is always executable3320 recent_failures: 3, not_until: :not_set, executable: true3321 has the correct state3322 when the flag is disabled3323 is always executable3324 recent_failures: 3, not_until: :past, executable: true3325 has the correct state3326 when the flag is disabled3327 is always executable3328 recent_failures: 3, not_until: :future, executable: true3329 has the correct state3330 when the flag is disabled3331 is always executable3332 recent_failures: 4, not_until: :not_set, executable: false3333 has the correct state3334 when the flag is disabled3335 is always executable3336 recent_failures: 4, not_until: :past, executable: true3337 has the correct state3338 when the flag is disabled3339 is always executable3340 recent_failures: 4, not_until: :now, executable: false3341 has the correct state3342 when the flag is disabled3343 is always executable3344 recent_failures: 4, not_until: :future, executable: false3345 has the correct state3346 when the flag is disabled3347 is always executable3348 #enable!3349 makes a hook executable if it was marked as failed3350 makes a hook executable if it is currently backed off3351 does not update hooks unless necessary3352 is expected to change `hook.executable?` from false to true3353 #backoff!3354 when we have not backed off before3355 does not disable the hook3356 when we have exhausted the grace period3357 is expected to change `hook.backoff_count` by 13358 when the hook is permanently disabled3359 does not set disabled_until3360 does not increment the backoff count3361 when the flag is disabled3362 does not increment backoff count3363 #failed!3364 is expected to change `hook.recent_failures` by 13365 when the flag is disabled3366 does not increment recent failure count3367 #disable!3368 disables a hook3369 does nothing if the hook is already disabled3370 is expected to change `hook.executable?` from true to false3371 when the flag is disabled3372 does not disable the hook3373 #temporarily_disabled?3374 is false when not temporarily disabled3375 allows FAILURE_THRESHOLD initial failures before we back-off3376 when hook has been told to back off3377 is true3378 when the flag is disabled3379 is false3380 #permanently_disabled?3381 is false when not disabled3382 when hook has been disabled3383 is true3384 when the flag is disabled3385 is false3386 #alert_status3387 is expected to eq :executable3388 when hook has been disabled3389 is expected to eq :disabled3390 when the flag is disabled3391 is expected to eq :executable3392 when hook has been backed off3393 is expected to eq :temporarily_disabled3394 when the flag is disabled3395 is expected to eq :executable3396 associations3397 is expected to belong to project required: false3398 validations3399 is expected to validate that :project cannot be empty/falsy3400 behaves like includes Limitable concern3401 #exceeds_limits?3402 without plan limits configured3403 is expected to eq false3404 without plan limits configured3405 is expected to eq false3406 with an existing model3407 is expected to eq true3408 validations3409 is expected to be a kind of Limitable3410 without plan limits configured3411 can create new models3412 with plan limits configured3413 can create new models3414 with an existing model3415 cannot create new models exceeding the plan limits3416 .for_projects3417 finds related project hooks3418 .push_hooks3419 returns hooks for push events only3420 .tag_push_hooks3421 returns hooks for tag push events only3422 #parent3423 returns the associated project3424 #application_context3425 includes the type and project3426 #update_last_failure3427 is a method of this class3428 when the hook is executable3429 when the state was previously failing3430 does update the state3431 when there is another failing sibling hook3432 does not update the state3433 caches the current value3434 when the state was previously unknown3435 does not update the state3436 when the state was previously not failing3437 does not update the state3438 does not cache the current value3439 when the hook is failed3440 there is no prior value3441 updates last_failure3442 updates any_failed?3443 when there is a prior last_failure, from before now3444 updates the state3445 does not change the failing state3446 there is a prior value, from after now3447 does not update the state3448Gitlab::Database::BackgroundMigration::BatchedMigrationRunner3449 #run_migration_job3450 when the migration has no previous jobs3451 when the migration has batches to process3452 runs the job for the first batch3453 migration health3454 puts migration on hold on stop signal3455 optimizes migration on normal signal3456 optimizes migration on no signal3457 optimizes migration on unknown signal3458 when the batch maximum exceeds the migration maximum3459 clamps the batch maximum to the migration maximum3460 when the migration has no batches to process3461 behaves like it has completed the migration3462 does not create and run a migration job3463 marks the migration as finished3464 when the migration should stop3465 changes the status to failure3466 when the migration has previous jobs3467 when the migration has no batches remaining3468 behaves like it has completed the migration3469 does not create and run a migration job3470 marks the migration as finished3471 when the migration has batches to process3472 runs the migration job for the next batch3473 when the batch minimum exceeds the migration maximum3474 behaves like it has completed the migration3475 does not create and run a migration job3476 marks the migration as finished3477 when migration has failed jobs3478 retries the failed job3479 when failed job has reached the maximum number of attempts3480 marks the migration as failed3481 when migration has stuck jobs3482 retries the stuck job3483 when migration has possible stuck jobs3484 keeps the migration active3485 when the migration has batches to process and failed jobs3486 runs next batch then retries the failed job3487 #run_entire_migration3488 when not in a development or test environment3489 raises an error3490 when the given migration is not active3491 does not create and run migration jobs3492 when the given migration is active3493 runs all jobs inline until finishing the migration3494 #finalize3495 when the migration is not yet completed3496-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3497 -> 0.0015s3498-- create_table(:_test_batched_migrations_test_table, {:id=>false})3499 -> 0.0032s3500-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")3501 -> 0.0013s3502-- execute("SELECT * FROM _test_batched_migrations_test_table WHERE some_id_convert_to_bigint IS NULL")3503 -> 0.0012s3504-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3505 -> 0.0023s3506 completes the migration3507 when migration fails to complete3508-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3509 -> 0.0010s3510-- create_table(:_test_batched_migrations_test_table, {:id=>false})3511 -> 0.0025s3512-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")3513 -> 0.0013s3514-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3515 -> 0.0021s3516 raises an error3517 when the migration is already finished3518-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3519 -> 0.0011s3520-- create_table(:_test_batched_migrations_test_table, {:id=>false})3521 -> 0.0027s3522-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")3523 -> 0.0013s3524-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3525 -> 0.0015s3526 is a no-op3527 when the migration does not exist3528-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3529 -> 0.0011s3530-- create_table(:_test_batched_migrations_test_table, {:id=>false})3531 -> 0.0027s3532-- execute("INSERT INTO _test_batched_migrations_test_table VALUES (1, 1), (2, 2), (3, NULL), (4, NULL), (5, NULL), (6, NULL), (7, NULL), (8, NULL)")3533 -> 0.0013s3534-- drop_table(:_test_batched_migrations_test_table, {:if_exists=>true})3535 -> 0.0015s3536 is a no-op3537 .finalize3538 when the connection is passed3539 initializes the object with the given connection3540Banzai::ColorParser3541 .parse3542 HEX format3543 parses the valid hex color #abc3544 parses the valid hex color #ABC3545 parses the valid hex color #d2d2d23546 parses the valid hex color #D2D2D23547 parses the valid hex color #123a3548 parses the valid hex color #123A3549 parses the valid hex color #123456aa3550 parses the valid hex color #123456AA3551 does not parse the invalid hex color #3552 does not parse the invalid hex color #13553 does not parse the invalid hex color #123554 does not parse the invalid hex color #12g3555 does not parse the invalid hex color #12G3556 does not parse the invalid hex color #123453557 does not parse the invalid hex color #r2r2r23558 does not parse the invalid hex color #R2R2R23559 does not parse the invalid hex color #12345673560 does not parse the invalid hex color # 1233561 does not parse the invalid hex color # 12343562 does not parse the invalid hex color # 1234563563 does not parse the invalid hex color # 123456783564 does not parse the invalid hex color #1 2 33565 does not parse the invalid hex color #123 43566 does not parse the invalid hex color #12 34 563567 does not parse the invalid hex color #123456 783568 RGB format3569 parses the valid rgb color rgb(0,0,0)3570 parses the valid rgb color rgb(255,255,255)3571 parses the valid rgb color rgb(0, 0, 0)3572 parses the valid rgb color RGB(0,0,0)3573 parses the valid rgb color rgb(0,0,0,0)3574 parses the valid rgb color rgb(0,0,0,0.0)3575 parses the valid rgb color rgb(0,0,0,.0)3576 parses the valid rgb color rgb(0,0,0, 0)3577 parses the valid rgb color rgb(0,0,0, 0.0)3578 parses the valid rgb color rgb(0,0,0, .0)3579 parses the valid rgb color rgb(0,0,0,1)3580 parses the valid rgb color rgb(0,0,0,1.0)3581 parses the valid rgb color rgba(0,0,0)3582 parses the valid rgb color rgba(0,0,0,0)3583 parses the valid rgb color RGBA(0,0,0)3584 parses the valid rgb color rgb(0%,0%,0%)3585 parses the valid rgb color rgba(0%,0%,0%,0%)3586 does not parse the invalid rgb color FOOrgb(0,0,0)3587 does not parse the invalid rgb color rgb(0,0,0)BAR3588 does not parse the invalid rgb color rgb(0,0,-1)3589 does not parse the invalid rgb color rgb(0,0,-0)3590 does not parse the invalid rgb color rgb(0,0,256)3591 does not parse the invalid rgb color rgb(0,0,0,-0.1)3592 does not parse the invalid rgb color rgb(0,0,0,-0.0)3593 does not parse the invalid rgb color rgb(0,0,0,-.1)3594 does not parse the invalid rgb color rgb(0,0,0,1.1)3595 does not parse the invalid rgb color rgb(0,0,0,2)3596 does not parse the invalid rgb color rgba(0,0,0,)3597 does not parse the invalid rgb color rgba(0,0,0,0.)3598 does not parse the invalid rgb color rgba(0,0,0,1.)3599 does not parse the invalid rgb color rgb(0,0,0%)3600 does not parse the invalid rgb color rgb(101%,0%,0%)3601 HSL format3602 parses the valid hsl color hsl(0,0%,0%)3603 parses the valid hsl color hsl(0,100%,100%)3604 parses the valid hsl color hsl(540,0%,0%)3605 parses the valid hsl color hsl(-720,0%,0%)3606 parses the valid hsl color hsl(0deg,0%,0%)3607 parses the valid hsl color hsl(0DEG,0%,0%)3608 parses the valid hsl color hsl(0, 0%, 0%)3609 parses the valid hsl color HSL(0,0%,0%)3610 parses the valid hsl color hsl(0,0%,0%,0)3611 parses the valid hsl color hsl(0,0%,0%,0.0)3612 parses the valid hsl color hsl(0,0%,0%,.0)3613 parses the valid hsl color hsl(0,0%,0%, 0)3614 parses the valid hsl color hsl(0,0%,0%, 0.0)3615 parses the valid hsl color hsl(0,0%,0%, .0)3616 parses the valid hsl color hsl(0,0%,0%,1)3617 parses the valid hsl color hsl(0,0%,0%,1.0)3618 parses the valid hsl color hsla(0,0%,0%)3619 parses the valid hsl color hsla(0,0%,0%,0)3620 parses the valid hsl color HSLA(0,0%,0%)3621 parses the valid hsl color hsl(1rad,0%,0%)3622 parses the valid hsl color hsl(1.1rad,0%,0%)3623 parses the valid hsl color hsl(.1rad,0%,0%)3624 parses the valid hsl color hsl(-1rad,0%,0%)3625 parses the valid hsl color hsl(1RAD,0%,0%)3626 does not parse the invalid hsl color hsl(+0,0%,0%)3627 does not parse the invalid hsl color hsl(0,0,0%)3628 does not parse the invalid hsl color hsl(0,0%,0)3629 does not parse the invalid hsl color hsl(0 deg,0%,0%)3630 does not parse the invalid hsl color hsl(0,-0%,0%)3631 does not parse the invalid hsl color hsl(0,101%,0%)3632 does not parse the invalid hsl color hsl(0,-1%,0%)3633 does not parse the invalid hsl color hsl(0,0%,0%,-0.1)3634 does not parse the invalid hsl color hsl(0,0%,0%,-.1)3635 does not parse the invalid hsl color hsl(0,0%,0%,1.1)3636 does not parse the invalid hsl color hsl(0,0%,0%,2)3637 does not parse the invalid hsl color hsl(0,0%,0%,)3638 does not parse the invalid hsl color hsl(0,0%,0%,0.)3639 does not parse the invalid hsl color hsl(0,0%,0%,1.)3640 does not parse the invalid hsl color hsl(deg,0%,0%)3641 does not parse the invalid hsl color hsl(rad,0%,0%)3642Members::InvitationReminderEmailService3643 sending invitation reminders3644 expires_at_days: 0, send_reminder_at_days: []3645 sends an invitation reminder only on the expected days3646 sends an invitation reminder only on the expected days3647 sends an invitation reminder only on the expected days3648 sends an invitation reminder only on the expected days3649 sends an invitation reminder only on the expected days3650 sends an invitation reminder only on the expected days3651 sends an invitation reminder only on the expected days3652 sends an invitation reminder only on the expected days3653 sends an invitation reminder only on the expected days3654 sends an invitation reminder only on the expected days3655 sends an invitation reminder only on the expected days3656 expires_at_days: 1, send_reminder_at_days: []3657 sends an invitation reminder only on the expected days3658 sends an invitation reminder only on the expected days3659 sends an invitation reminder only on the expected days3660 sends an invitation reminder only on the expected days3661 sends an invitation reminder only on the expected days3662 sends an invitation reminder only on the expected days3663 sends an invitation reminder only on the expected days3664 sends an invitation reminder only on the expected days3665 sends an invitation reminder only on the expected days3666 sends an invitation reminder only on the expected days3667 sends an invitation reminder only on the expected days3668 expires_at_days: 2, send_reminder_at_days: [1]3669 sends an invitation reminder only on the expected days3670 sends an invitation reminder only on the expected days3671 sends an invitation reminder only on the expected days3672 sends an invitation reminder only on the expected days3673 sends an invitation reminder only on the expected days3674 sends an invitation reminder only on the expected days3675 sends an invitation reminder only on the expected days3676 sends an invitation reminder only on the expected days3677 sends an invitation reminder only on the expected days3678 sends an invitation reminder only on the expected days3679 sends an invitation reminder only on the expected days3680 expires_at_days: 3, send_reminder_at_days: [1, 2]3681 sends an invitation reminder only on the expected days3682 sends an invitation reminder only on the expected days3683 sends an invitation reminder only on the expected days3684 sends an invitation reminder only on the expected days3685 sends an invitation reminder only on the expected days3686 sends an invitation reminder only on the expected days3687 sends an invitation reminder only on the expected days3688 sends an invitation reminder only on the expected days3689 sends an invitation reminder only on the expected days3690 sends an invitation reminder only on the expected days3691 sends an invitation reminder only on the expected days3692 expires_at_days: 4, send_reminder_at_days: [1, 2, 3]3693 sends an invitation reminder only on the expected days3694 sends an invitation reminder only on the expected days3695 sends an invitation reminder only on the expected days3696 sends an invitation reminder only on the expected days3697 sends an invitation reminder only on the expected days3698 sends an invitation reminder only on the expected days3699 sends an invitation reminder only on the expected days3700 sends an invitation reminder only on the expected days3701 sends an invitation reminder only on the expected days3702 sends an invitation reminder only on the expected days3703 sends an invitation reminder only on the expected days3704 expires_at_days: 5, send_reminder_at_days: [1, 2, 4]3705 sends an invitation reminder only on the expected days3706 sends an invitation reminder only on the expected days3707 sends an invitation reminder only on the expected days3708 sends an invitation reminder only on the expected days3709 sends an invitation reminder only on the expected days3710 sends an invitation reminder only on the expected days3711 sends an invitation reminder only on the expected days3712 sends an invitation reminder only on the expected days3713 sends an invitation reminder only on the expected days3714 sends an invitation reminder only on the expected days3715 sends an invitation reminder only on the expected days3716 expires_at_days: 6, send_reminder_at_days: [1, 3, 5]3717 sends an invitation reminder only on the expected days3718 sends an invitation reminder only on the expected days3719 sends an invitation reminder only on the expected days3720 sends an invitation reminder only on the expected days3721 sends an invitation reminder only on the expected days3722 sends an invitation reminder only on the expected days3723 sends an invitation reminder only on the expected days3724 sends an invitation reminder only on the expected days3725 sends an invitation reminder only on the expected days3726 sends an invitation reminder only on the expected days3727 sends an invitation reminder only on the expected days3728 expires_at_days: 7, send_reminder_at_days: [1, 3, 5]3729 sends an invitation reminder only on the expected days3730 sends an invitation reminder only on the expected days3731 sends an invitation reminder only on the expected days3732 sends an invitation reminder only on the expected days3733 sends an invitation reminder only on the expected days3734 sends an invitation reminder only on the expected days3735 sends an invitation reminder only on the expected days3736 sends an invitation reminder only on the expected days3737 sends an invitation reminder only on the expected days3738 sends an invitation reminder only on the expected days3739 sends an invitation reminder only on the expected days3740 expires_at_days: 8, send_reminder_at_days: [2, 3, 6]3741 sends an invitation reminder only on the expected days3742 sends an invitation reminder only on the expected days3743 sends an invitation reminder only on the expected days3744 sends an invitation reminder only on the expected days3745 sends an invitation reminder only on the expected days3746 sends an invitation reminder only on the expected days3747 sends an invitation reminder only on the expected days3748 sends an invitation reminder only on the expected days3749 sends an invitation reminder only on the expected days3750 sends an invitation reminder only on the expected days3751 sends an invitation reminder only on the expected days3752 expires_at_days: 9, send_reminder_at_days: [2, 4, 7]3753 sends an invitation reminder only on the expected days3754 sends an invitation reminder only on the expected days3755 sends an invitation reminder only on the expected days3756 sends an invitation reminder only on the expected days3757 sends an invitation reminder only on the expected days3758 sends an invitation reminder only on the expected days3759 sends an invitation reminder only on the expected days3760 sends an invitation reminder only on the expected days3761 sends an invitation reminder only on the expected days3762 sends an invitation reminder only on the expected days3763 sends an invitation reminder only on the expected days3764 expires_at_days: 10, send_reminder_at_days: [2, 4, 8]3765 sends an invitation reminder only on the expected days3766 sends an invitation reminder only on the expected days3767 sends an invitation reminder only on the expected days3768 sends an invitation reminder only on the expected days3769 sends an invitation reminder only on the expected days3770 sends an invitation reminder only on the expected days3771 sends an invitation reminder only on the expected days3772 sends an invitation reminder only on the expected days3773 sends an invitation reminder only on the expected days3774 sends an invitation reminder only on the expected days3775 sends an invitation reminder only on the expected days3776 expires_at_days: 11, send_reminder_at_days: [2, 4, 8]3777 sends an invitation reminder only on the expected days3778 sends an invitation reminder only on the expected days3779 sends an invitation reminder only on the expected days3780 sends an invitation reminder only on the expected days3781 sends an invitation reminder only on the expected days3782 sends an invitation reminder only on the expected days3783 sends an invitation reminder only on the expected days3784 sends an invitation reminder only on the expected days3785 sends an invitation reminder only on the expected days3786 sends an invitation reminder only on the expected days3787 sends an invitation reminder only on the expected days3788 expires_at_days: 12, send_reminder_at_days: [2, 5, 9]3789 sends an invitation reminder only on the expected days3790 sends an invitation reminder only on the expected days3791 sends an invitation reminder only on the expected days3792 sends an invitation reminder only on the expected days3793 sends an invitation reminder only on the expected days3794 sends an invitation reminder only on the expected days3795 sends an invitation reminder only on the expected days3796 sends an invitation reminder only on the expected days3797 sends an invitation reminder only on the expected days3798 sends an invitation reminder only on the expected days3799 sends an invitation reminder only on the expected days3800 expires_at_days: 13, send_reminder_at_days: [2, 5, 10]3801 sends an invitation reminder only on the expected days3802 sends an invitation reminder only on the expected days3803 sends an invitation reminder only on the expected days3804 sends an invitation reminder only on the expected days3805 sends an invitation reminder only on the expected days3806 sends an invitation reminder only on the expected days3807 sends an invitation reminder only on the expected days3808 sends an invitation reminder only on the expected days3809 sends an invitation reminder only on the expected days3810 sends an invitation reminder only on the expected days3811 sends an invitation reminder only on the expected days3812 expires_at_days: 14, send_reminder_at_days: [2, 5, 10]3813 sends an invitation reminder only on the expected days3814 sends an invitation reminder only on the expected days3815 sends an invitation reminder only on the expected days3816 sends an invitation reminder only on the expected days3817 sends an invitation reminder only on the expected days3818 sends an invitation reminder only on the expected days3819 sends an invitation reminder only on the expected days3820 sends an invitation reminder only on the expected days3821 sends an invitation reminder only on the expected days3822 sends an invitation reminder only on the expected days3823 sends an invitation reminder only on the expected days3824 expires_at_days: 15, send_reminder_at_days: [2, 5, 10]3825 sends an invitation reminder only on the expected days3826 sends an invitation reminder only on the expected days3827 sends an invitation reminder only on the expected days3828 sends an invitation reminder only on the expected days3829 sends an invitation reminder only on the expected days3830 sends an invitation reminder only on the expected days3831 sends an invitation reminder only on the expected days3832 sends an invitation reminder only on the expected days3833 sends an invitation reminder only on the expected days3834 sends an invitation reminder only on the expected days3835 sends an invitation reminder only on the expected days3836 expires_at_days: nil, send_reminder_at_days: [2, 5, 10]3837 sends an invitation reminder only on the expected days3838 sends an invitation reminder only on the expected days3839 sends an invitation reminder only on the expected days3840 sends an invitation reminder only on the expected days3841 sends an invitation reminder only on the expected days3842 sends an invitation reminder only on the expected days3843 sends an invitation reminder only on the expected days3844 sends an invitation reminder only on the expected days3845 sends an invitation reminder only on the expected days3846 sends an invitation reminder only on the expected days3847 sends an invitation reminder only on the expected days3848CommitStatusPresenter3849 inherits from Gitlab::View::Presenter::Delegated3850 #callout_failure_message3851 when troubleshooting doc is available3852 appends the troubleshooting link3853 covers all failure reasons3854 unknown_failure3855 is a valid status3856 script_failure3857 is a valid status3858 api_failure3859 is a valid status3860 stuck_or_timeout_failure3861 is a valid status3862 runner_system_failure3863 is a valid status3864 missing_dependency_failure3865 is a valid status3866 runner_unsupported3867 is a valid status3868 stale_schedule3869 is a valid status3870 job_execution_timeout3871 is a valid status3872 archived_failure3873 is a valid status3874 unmet_prerequisites3875 is a valid status3876 scheduler_failure3877 is a valid status3878 data_integrity_failure3879 is a valid status3880 forward_deployment_failure3881 is a valid status3882 user_blocked3883 is a valid status3884 project_deleted3885 is a valid status3886 ci_quota_exceeded3887 is a valid status3888 pipeline_loop_detected3889 is a valid status3890 no_matching_runner3891 is a valid status3892 trace_size_exceeded3893 is a valid status3894 builds_disabled3895 is a valid status3896 environment_creation_failure3897 is a valid status3898 deployment_rejected3899 is a valid status3900 failed_outdated_deployment_job3901 is a valid status3902 protected_environment_failure3903 is a valid status3904 insufficient_bridge_permissions3905 is a valid status3906 downstream_bridge_project_not_found3907 is a valid status3908 invalid_bridge_trigger3909 is a valid status3910 upstream_bridge_project_not_found3911 is a valid status3912 insufficient_upstream_permissions3913 is a valid status3914 bridge_pipeline_is_child_pipeline3915 is a valid status3916 downstream_pipeline_creation_failed3917 is a valid status3918 secrets_provider_not_found3919 is a valid status3920 reached_max_descendant_pipelines_depth3921 is a valid status3922 ip_restriction_failure3923 is a valid status3924 reached_max_pipeline_hierarchy_size3925 is a valid status3926 invalid failure message3927 is an invalid status3928Gitlab::ProcessSupervisor3929 #supervise3930 while supervised processes are alive3931 does not invoke callback3932 when a supervised process dies3933 triggers callback with the dead PIDs and adds new PIDs to supervised PIDs39351st Try error in ./spec/lib/gitlab/process_supervisor_spec.rb:58:3936execution expired3938RSpec::Retry: 2nd try ./spec/lib/gitlab/process_supervisor_spec.rb:583939 deduplicates PIDs returned from callback3940 accepts single PID returned from callback3941 but supervisor has entered shutdown3942 does not trigger callback again3943 signal handling3944 termination signals3945 when TERM results in timely shutdown of processes3946 forwards them to observed processes without waiting for grace period to expire3947 when TERM does not result in timely shutdown of processes3948 issues a KILL signal after the grace period expires3949 forwarded signals3950 forwards given signals to the observed processes3951 #shutdown3952 when supervisor is supervising processes3953 when supervisor is alive3954 signals TERM then KILL to all supervised processes3955 stops the supervisor3956 when supervisor has already shut down3957 does nothing3958 when supervisor never started3959 does nothing3960EventsHelper3961 # order random3962 #event_target_path3963 when target is a work item3964 is expected to eq "/namespace337/project-593/-/work_items/1"3965 when target is not a work item3966 is expected to eq [#<Project id:577 namespace337/project-593>>, #<Issue id:146 namespace337/project-593#1>]3967 #event_wiki_page_target_url3968 links to the wiki page3969 without canonical slug3970 links to the home page3971 #event_commit_title3972 returns the first line, truncated to 70 chars3973 is not html-safe3974 handles empty strings3975 handles nil values3976 does not escape HTML entities3977 #event_wiki_title_html3978 produces a suitable title chunk3979 #event_preposition3980 for wiki page events3981 returns a suitable phrase3982 for push action events3983 returns a suitable phrase3984 for commented actions3985 returns a suitable phrase3986 for any event with a target3987 returns a suitable phrase3988 for milestone events3989 returns a suitable phrase3990 for non-matching events3991 returns no preposition3992 #event_feed_url3993 returns project commit url3994 returns event note target url3995 returns project url3996 returns push event feed url3997 returns nil for push event with multiple refs3998 for issue3999 returns the project issue url4000 contains the project issue IID link4001 for merge request4002 returns the project merge request url4003 contains the project merge request IID link4004 #event_note_target_url4005 returns a commit note url4006 returns a project snippet note url4007 returns a personal snippet note url4008 returns a project issue url4009 returns a merge request url4010 for design note events4011 returns an appropriate URL4012 #event_filter_visible4013 for :designs4014 without relevant instance variable4015 is expected to equal true4016 with assigned project4017 with permission4018 is expected to equal true4019 without permission4020 is expected to equal false4021 with projects assigned4022 with permission4023 is expected to equal true4024 with empty collection4025 is expected to equal false4026 without permission4027 is expected to equal false4028 with group assigned4029 without projects in the group4030 is expected to equal false4031 with at least one project in the project4032 with permission4033 is expected to equal true4034 without permission4035 is expected to equal false4036 #localized_action_name4037 handles all valid design events4038 handles correct base actions4039 trait: :created, localized_action_key: "Event|created"4040 with correct name and method4041 trait: :updated, localized_action_key: "Event|opened"4042 with correct name and method4043 trait: :closed, localized_action_key: "Event|closed"4044 with correct name and method4045 trait: :reopened, localized_action_key: "Event|opened"4046 with correct name and method4047 trait: :commented, localized_action_key: "Event|commented on"4048 with correct name and method4049 trait: :merged, localized_action_key: "Event|accepted"4050 with correct name and method4051 trait: :joined, localized_action_key: "Event|joined"4052 with correct name and method4053 trait: :left, localized_action_key: "Event|left"4054 with correct name and method4055 trait: :destroyed, localized_action_key: "Event|destroyed"4056 with correct name and method4057 trait: :expired, localized_action_key: "Event|removed due to membership expiration from"4058 with correct name and method4059 trait: :approved, localized_action_key: "Event|approved"4060 with correct name and method4061 #link_to_author4062 returns a link to the author4063 returns the author name if the author is not present4064 returns "You" if the author is the current user4065ContainerRegistry::GitlabApiClient4066 #supports_gitlab_api?4067 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true4068 returns the expected result4069 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true4070 returns the expected result4071 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true4072 returns the expected result4073 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true4074 returns the expected result4075 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true4076 returns the expected result4077 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false4078 returns the expected result4079 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false4080 returns the expected result4081 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false4082 returns the expected result4083 with 401 response4084 is expected to be truthy4085 #pre_import_repository4086 status_code: 200, expected_result: :already_imported4087 is expected to eq :already_imported4088 status_code: 202, expected_result: :ok4089 is expected to eq :ok4090 status_code: 400, expected_result: :bad_request4091 is expected to eq :bad_request4092 status_code: 401, expected_result: :unauthorized4093 is expected to eq :unauthorized4094 status_code: 404, expected_result: :not_found4095 is expected to eq :not_found4096 status_code: 409, expected_result: :already_being_imported4097 is expected to eq :already_being_imported4098 status_code: 418, expected_result: :error4099 is expected to eq :error4100 status_code: 424, expected_result: :pre_import_failed4101 is expected to eq :pre_import_failed4102 status_code: 425, expected_result: :already_being_imported4103 is expected to eq :already_being_imported4104 status_code: 429, expected_result: :too_many_imports4105 is expected to eq :too_many_imports4106 #import_repository4107 status_code: 200, expected_result: :already_imported4108 is expected to eq :already_imported4109 status_code: 202, expected_result: :ok4110 is expected to eq :ok4111 status_code: 400, expected_result: :bad_request4112 is expected to eq :bad_request4113 status_code: 401, expected_result: :unauthorized4114 is expected to eq :unauthorized4115 status_code: 404, expected_result: :not_found4116 is expected to eq :not_found4117 status_code: 409, expected_result: :already_being_imported4118 is expected to eq :already_being_imported4119 status_code: 418, expected_result: :error4120 is expected to eq :error4121 status_code: 424, expected_result: :pre_import_failed4122 is expected to eq :pre_import_failed4123 status_code: 425, expected_result: :already_being_imported4124 is expected to eq :already_being_imported4125 status_code: 429, expected_result: :too_many_imports4126 is expected to eq :too_many_imports4127 #cancel_repository_import4128 status_code: 200, expected_result: :already_imported4129 is expected to eq {:migration_state=>nil, :status=>:already_imported}4130 status_code: 202, expected_result: :ok4131 is expected to eq {:migration_state=>nil, :status=>:ok}4132 status_code: 400, expected_result: :bad_request4133 is expected to eq {:migration_state=>nil, :status=>:bad_request}4134 status_code: 401, expected_result: :unauthorized4135 is expected to eq {:migration_state=>nil, :status=>:unauthorized}4136 status_code: 404, expected_result: :not_found4137 is expected to eq {:migration_state=>nil, :status=>:not_found}4138 status_code: 409, expected_result: :already_being_imported4139 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}4140 status_code: 418, expected_result: :error4141 is expected to eq {:migration_state=>nil, :status=>:error}4142 status_code: 424, expected_result: :pre_import_failed4143 is expected to eq {:migration_state=>nil, :status=>:pre_import_failed}4144 status_code: 425, expected_result: :already_being_imported4145 is expected to eq {:migration_state=>nil, :status=>:already_being_imported}4146 status_code: 429, expected_result: :too_many_imports4147 is expected to eq {:migration_state=>nil, :status=>:too_many_imports}4148 bad request4149 is expected to eq {:migration_state=>"this_is_a_test", :status=>:bad_request}4150 force cancel4151 is expected to eq {:migration_state=>nil, :status=>:ok}4152 #import_status4153 with successful response4154 with a status4155 is expected to eq "this_is_a_test"4156 with no status4157 is expected to eq "error"4158 with non successful response4159 is expected to eq "pre_import_failed"4160 #repository_details4161 with sizing self4162 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}4163 with sizing self_with_descendants4164 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}4165 with sizing4166 is expected to eq {"foo"=>"bar", "this"=>"is_a_test"}4167 with non successful response4168 is expected to eq {}4169 #tags4170 with valid parameters4171 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-07-27T04:32:16.485Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}4172 with a response with a link header4173 is expected to eq {:pagination=>{:next=>{:uri=>#<URI::HTTP http://sandbox.org/test?last=b>}}, :response_body=>[{"create...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}4174 with a large page size set4175 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-07-27T04:32:16.787Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}4176 with a last parameter set4177 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2023-07-27T04:32:16.939Z", "digest"=>"sha256:12345...a_type"=>"application/vnd.oci.image.manifest.v1+json", "name"=>"latest", "size_bytes"=>1234567892}]}4178 with non successful response4179 logs an error and returns an empty hash4180 #sub_repositories_with_tag4181 with valid parameters4182 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2022-06-07T12:11:13.633+00:00", "name"=>"docker-al...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}4183 with a response with a link header4184 is expected to eq {:pagination=>{:next=>{:uri=>#<URI::HTTP http://sandbox.org/test?last=c>}}, :response_body=>[{"create...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}4185 with a large page size set4186 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2022-06-07T12:11:13.633+00:00", "name"=>"docker-al...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}4187 with a last parameter set4188 is expected to eq {:pagination=>{}, :response_body=>[{"created_at"=>"2022-06-07T12:11:13.633+00:00", "name"=>"docker-al...git-base", "path"=>"gitlab-org/build/cng/git-base", "updated_at"=>"2022-06-07T14:37:49.251+00:00"}]}4189 with non successful response4190 logs an error and returns an empty hash4191 .supports_gitlab_api?4192 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true4193 returns the expected result4194 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: true4195 returns the expected result4196 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: false, expected_result: true4197 returns the expected result4198 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: ["gitlab_v1_api"], expect_registry_to_be_pinged: true, expected_result: false4199 returns the expected result4200 registry_gitlab_api_enabled: true, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true4201 returns the expected result4202 registry_gitlab_api_enabled: true, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: true4203 returns the expected result4204 registry_gitlab_api_enabled: false, is_on_dot_com: true, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false4205 returns the expected result4206 registry_gitlab_api_enabled: false, is_on_dot_com: false, container_registry_features: [], expect_registry_to_be_pinged: true, expected_result: false4207 returns the expected result4208 with the registry disabled4209 returns false4210 with a blank registry url4211 returns false4212 .deduplicated_size4213 with successful response4214 is expected to eq 5554215 with unsuccessful response4216 is expected to eq nil4217 with the registry disabled4218 is expected to eq nil4219 with a nil path4220 is expected to eq nil4221 with uppercase path4222 is expected to eq 5554223 .one_project_with_container_registry_tag4224 with successful response4225 behaves like fetching the project from container repository and path4226 fetches the project from the given path details4227 returns nil when path is invalid4228 returns nil when there is no container_repository matching the path4229 with unsuccessful response4230 is expected to eq nil4231 with uppercase path4232 behaves like fetching the project from container repository and path4233 fetches the project from the given path details4234 returns nil when path is invalid4235 returns nil when there is no container_repository matching the path4236 #each_sub_repositories_with_tag_page4237 when no block is given4238 raises an Argument error4239 when a block is given4240 with an empty page4241 behaves like iterating through a page4242 iterates through one page4243 with one page4244 behaves like iterating through a page4245 iterates through one page4246 with two pages4247 iterates through two pages4248 when max pages is reached4249 raises an error4250 without a page size set4251 uses a default size4252 with an empty client response4253 breaks the loop4254 with a nil page4255 behaves like iterating through a page4256 iterates through one page4257Git::TagHooksService4258 System hooks4259 executes system hooks4260 Webhooks4261 executes hooks on the project4262 Pipelines4263 creates a new pipeline4264 Push data4265 annotated tag4266 has expected push data attributes4267 with repository data4268 has expected repository attributes4269 with commits4270 is expected to be a kind of Array4271 has 1 element4272 the commit4273 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}4274 has expected commit attributes4275 with an author4276 has expected author attributes4277 lightweight tag4278 has expected push data attributes4279 with repository data4280 has expected repository attributes4281 with commits4282 is expected to be a kind of Array4283 has 1 element4284 the commit4285 is expected to include {:timestamp => "2014-02-27T11:01:38+02:00"}4286 has expected commit attributes4287 with an author4288 has expected author attributes4289Users::DestroyService4290 Initiates user deletion and deletes all their personal projects4291 no options are given4292 creates GhostUserMigration record to handle migration in a worker4293 will delete the personal project4294 personal projects in pending_delete4295 destroys a personal project in pending_delete4296 solo owned groups present4297 returns the user with attached errors4298 does not delete the user, nor the group4299 deletions with solo owned groups4300 deletes solo owned groups4301 deletions with inherited group owners4302 does not delete the group4303 user personal's repository removal4304 storages4305 legacy storage4306 removes repository4307 hashed storage4308 removes repository4309 repository removal status is taken into account4310 raises exception4311 calls the before/after callbacks4312 of project_members4313 of group_members4314 prometheus metrics4315 scheduled records4316 with a single record4317 updates the scheduled records gauge4318 with approximate count due to large number of records4319 updates the scheduled records gauge4320 lag4321 update the lag gauge4322 Deletion permission checks4323 does not delete the user when user is not an admin4324 allows users to delete their own account4325 allows user to be deleted if skip_authorization: true4326 when admin mode is enabled4327 allows admins to delete anyone4328 when admin mode is disabled4329 disallows admins to delete anyone4330Namespaces::InProductMarketingEmailsService#execute4331 records sent emails4332 for each track and series with the right conditions4333 track: :create, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4334 is expected to send in product marketing email 1450, 2262, :create, and 04335 track: :create, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}4336 is expected to send in product marketing email 1450, 2262, :create, and 14337 track: :create, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}4338 is expected to send in product marketing email 1450, 2262, :create, and 24339 track: :team_short, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4340 is expected to send in product marketing email 1450, 2262, :team_short, and 04341 track: :trial_short, interval: 2, actions_completed: {:created_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sat, 20 Mar 2021 10:14:40.000000000 UTC +00:00}4342 is expected to send in product marketing email 1450, 2262, :trial_short, and 04343 track: :admin_verify, interval: 3, actions_completed: {:created_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 19 Mar 2021 10:14:40.000000000 UTC +00:00}4344 is expected to send in product marketing email 1450, 2262, :admin_verify, and 04345 track: :verify, interval: 4, actions_completed: {:created_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Thu, 18 Mar 2021 10:14:40.000000000 UTC +00:00}4346 is expected to send in product marketing email 1450, 2262, :verify, and 04347 track: :verify, interval: 8, actions_completed: {:created_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 14 Mar 2021 10:14:40.000000000 UTC +00:00}4348 is expected to send in product marketing email 1450, 2262, :verify, and 14349 track: :verify, interval: 13, actions_completed: {:created_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Tue, 09 Mar 2021 10:14:40.000000000 UTC +00:00}4350 is expected to send in product marketing email 1450, 2262, :verify, and 24351 track: :trial, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4352 is expected to send in product marketing email 1450, 2262, :trial, and 04353 track: :trial, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}4354 is expected to send in product marketing email 1450, 2262, :trial, and 14355 track: :trial, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}4356 is expected to send in product marketing email 1450, 2262, :trial, and 24357 track: :team, interval: 1, actions_completed: {:created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Sun, 21 Mar 2021 10:14:40.000000000 UTC +00:00}4358 is expected to send in product marketing email 1450, 2262, :team, and 04359 track: :team, interval: 5, actions_completed: {:created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Wed, 17 Mar 2021 10:14:40.000000000 UTC +00:00}4360 is expected to send in product marketing email 1450, 2262, :team, and 14361 track: :team, interval: 10, actions_completed: {:created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :git_write_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :pipeline_created_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00, :trial_started_at=>Fri, 12 Mar 2021 10:14:40.000000000 UTC +00:00}4362 is expected to send in product marketing email 1450, 2262, :team, and 24363 when initialized with a different track4364 is expected not to send in product marketing email4365 when the previous track actions have been completed4366 is expected to send in product marketing email 1450, 2262, :team_short, and 04367 when initialized with a different interval4368 is expected not to send in product marketing email4369 when the previous track action was completed within the intervals range4370 is expected to send in product marketing email 1450, 2262, :create, and 14371 when the previous track action is not yet completed4372 is expected not to send in product marketing email4373 when the previous track action is completed outside the intervals range4374 is expected not to send in product marketing email4375 when the current track action is completed4376 is expected not to send in product marketing email4377 when the user cannot perform the current track's action4378 is expected not to send in product marketing email4379 when the user has not opted into marketing emails4380 is expected not to send in product marketing email4381 do not send emails twice4382 when user already got a specific email4383 is expected not to send in product marketing email 1452, anything, :create, and 04384 when user already got sent the whole track4385 does not send any of the emails anymore4386 when user is in two groups4387 when both groups would get the same email4388 does not send the same email twice4389 when other group gets a different email4390 sends both emails4391 when invoked with a non existing track4392 is expected to raise ArgumentError with "Track foo not defined"4393 when group is a sub-group4394 does not raise an exception4395Gitlab::GitalyClient::OperationService4396 #user_create_branch4397 sends a user_create_branch message and returns a Gitlab::git::Branch4398 with structured errors4399 with CustomHookError4400 when details contain stderr without prefix4401 behaves like failed branch creation4402 raised a PreRecieveError4403 when details contain stderr with prefix4404 behaves like failed branch creation4405 raised a PreRecieveError4406 when details contain stdout without prefix4407 behaves like failed branch creation4408 raised a PreRecieveError4409 when details contain stdout with prefix4410 behaves like failed branch creation4411 raised a PreRecieveError4412 when details contain no stderr or stdout4413 behaves like failed branch creation4414 raised a PreRecieveError4415 #user_update_branch4416 sends a user_update_branch message4417 when pre_receive_error is present4418 throws a PreReceive exception4419 #user_merge_to_ref4420 sends a user_merge_to_ref message4421 #user_delete_branch4422 sends a user_delete_branch message4423 with a custom hook error4424 when details contain stderr4425 behaves like a failed branch deletion4426 raises a PreReceiveError4427 when details contain stdout4428 behaves like a failed branch deletion4429 raises a PreReceiveError4430 with a non-detailed error4431 raises a GRPC error4432 #user_merge_branch4433 sends a user_merge_branch message4434 with an exception with the UserMergeBranchError4435 raises PreRecieveError with the error message4436 with a custom hook error4437 when details contain stderr without prefix4438 behaves like a failed merge4439 raises a PreReceiveError4440 when details contain stderr with prefix4441 behaves like a failed merge4442 raises a PreReceiveError4443 when details contain stdout without prefix4444 behaves like a failed merge4445 raises a PreReceiveError4446 when details contain stdout with prefix4447 behaves like a failed merge4448 raises a PreReceiveError4449 when details contain no stderr or stdout4450 behaves like a failed merge4451 raises a PreReceiveError4452 with an exception without the detailed error4453 raises PermissionDenied4454 with ReferenceUpdateError4455 returns nil4456 #user_ff_branch4457 sends a user_ff_branch message and returns a BranchUpdate object4458 when the response has no branch_update4459 is expected to be nil4460 when the pre-receive hook fails4461 raises the error4462 #user_cherry_pick4463 when AccessCheckError is raised4464 behaves like #user_cherry_pick with a gRPC error4465 raises an exception4466 when NotAncestorError is raised4467 behaves like #user_cherry_pick with a gRPC error4468 raises an exception4469 when MergeConflictError is raised4470 behaves like #user_cherry_pick with a gRPC error4471 raises an exception4472 when a non-detailed gRPC error is raised4473 behaves like #user_cherry_pick with a gRPC error4474 raises an exception4475 #user_revert4476 behaves like cherry pick and revert errors4477 when a pre_receive_error is present4478 raises a PreReceiveError4479 when a commit_error is present4480 raises a CommitError4481 when a create_tree_error is present4482 raises a CreateTreeError4483 when branch_update is nil4484 is expected to be nil4485 #rebase4486 when AccessError is raised4487 behaves like #rebase with an error4488 raises a GitError exception4489 when RebaseConflictError is raised4490 behaves like #rebase with an error4491 raises a GitError exception4492 when non-detailed gRPC error is raised4493 behaves like #rebase with an error4494 raises a GitError exception4495 #user_squash4496 sends a user_squash message and returns the squash sha4497 when ResolveRevisionError is raised4498 behaves like #user_squash with an error4499 raises a GitError exception4500 when RebaseConflictError is raised4501 behaves like #user_squash with an error4502 raises a GitError exception4503 when non-detailed gRPC error is raised4504 behaves like #user_squash with an error4505 raises a GitError exception4506 #user_commit_files4507 with unstructured errors4508 when a pre_receive_error is present4509 raises a PreReceiveError4510 when an index_error is present4511 raises an IndexError4512 when branch_update is nil4513 is expected to be nil4514 with structured errors4515 with AccessCheckError4516 raises a PreReceiveError4517 with IndexError4518 with missing file4519 behaves like #user_commit_files failure4520 raises an IndexError4521 with existing directory4522 behaves like #user_commit_files failure4523 raises an IndexError4524 with existing file4525 behaves like #user_commit_files failure4526 raises an IndexError4527 with invalid path4528 behaves like #user_commit_files failure4529 raises an IndexError4530 with directory traversal4531 behaves like #user_commit_files failure4532 raises an IndexError4533 with empty path4534 behaves like #user_commit_files failure4535 raises an IndexError4536 with unspecified error4537 behaves like #user_commit_files failure4538 raises an IndexError4539 with an exception without the detailed error4540 with an index error from libgit24541 raises IndexError4542 with a generic error4543 raises PermissionDenied4544 with CustomHookError4545 raises a PreReceiveError4546 #user_commit_patches4547 applies the patch correctly4548 when the patch could not be applied4549 raises the correct error4550 #add_tag4551 without tag message4552 creates a lightweight tag4553 with tag message4554 creates an annotated tag4555 with preexisting tag4556 raises a TagExistsError4557 with invalid target4558 raises an InvalidRef error4559 with internal error4560 raises an Internal error4561 with structured errors4562 with ReferenceExistsError4563 raises a TagExistsError4564 with AccessCheckError4565 raises a PreReceiveError4566 with CustomHookError4567 raises a PreReceiveError4568Gitlab::Database::GitlabSchema4569 .deleted_views_and_tables_to_schema4570 all tables and views have assigned a known gitlab_schema4571 .views_and_tables_to_schema4572 all tables and views have assigned a known gitlab_schema4573 all tables and views are unique4574 for /builds/gitlab-org/gitlab/db/docs4575 validates 'main' using 'ActiveRecord::Base'4576 new data sources are added4577 non-existing data sources are removed4578 validates 'ci' using 'Ci::ApplicationRecord'4579 new data sources are added4580 non-existing data sources are removed4581 .dictionary_path_globs4582 returns an array of path globs4583 returns an array of path globs4584 returns an array of path globs4585 returns an array of path globs4586 .tables_to_schema4587 returns only tables4588 .views_to_schema4589 returns only views4590 .table_schemas!4591 returns the matched schemas4592 when one of the tables does not have a matching table schema4593 raises error4594 .table_schema4595 behaves like maps table name to table schema4596 name: "ci_builds", classification: :gitlab_ci4597 is expected to eq :gitlab_ci4598 name: "my_schema.ci_builds", classification: :gitlab_ci4599 is expected to eq :gitlab_ci4600 name: "my_schema.ci_runner_machine_builds_100", classification: :gitlab_ci4601 is expected to eq :gitlab_ci4602 name: "my_schema._test_gitlab_main_table", classification: :gitlab_main4603 is expected to eq :gitlab_main4604 name: "information_schema.columns", classification: :gitlab_internal4605 is expected to eq :gitlab_internal4606 name: "audit_events_part_5fc467ac26", classification: :gitlab_main4607 is expected to eq :gitlab_main4608 name: "_test_gitlab_main_table", classification: :gitlab_main4609 is expected to eq :gitlab_main4610 name: "_test_gitlab_ci_table", classification: :gitlab_ci4611 is expected to eq :gitlab_ci4612 name: "_test_gitlab_main_clusterwide_table", classification: :gitlab_main_clusterwide4613 is expected to eq :gitlab_main_clusterwide4614 name: "_test_gitlab_main_cell_table", classification: :gitlab_main_cell4615 is expected to eq :gitlab_main_cell4616 name: "_test_gitlab_pm_table", classification: :gitlab_pm4617 is expected to eq :gitlab_pm4618 name: "_test_my_table", classification: :gitlab_shared4619 is expected to eq :gitlab_shared4620 name: "pg_attribute", classification: :gitlab_internal4621 is expected to eq :gitlab_internal4622 when mapping fails4623 is expected to be nil4624 when an index name is used as the table name4625 is expected to be nil4626 .table_schema!4627 behaves like maps table name to table schema4628 name: "ci_builds", classification: :gitlab_ci4629 is expected to eq :gitlab_ci4630 name: "my_schema.ci_builds", classification: :gitlab_ci4631 is expected to eq :gitlab_ci4632 name: "my_schema.ci_runner_machine_builds_100", classification: :gitlab_ci4633 is expected to eq :gitlab_ci4634 name: "my_schema._test_gitlab_main_table", classification: :gitlab_main4635 is expected to eq :gitlab_main4636 name: "information_schema.columns", classification: :gitlab_internal4637 is expected to eq :gitlab_internal4638 name: "audit_events_part_5fc467ac26", classification: :gitlab_main4639 is expected to eq :gitlab_main4640 name: "_test_gitlab_main_table", classification: :gitlab_main4641 is expected to eq :gitlab_main4642 name: "_test_gitlab_ci_table", classification: :gitlab_ci4643 is expected to eq :gitlab_ci4644 name: "_test_gitlab_main_clusterwide_table", classification: :gitlab_main_clusterwide4645 is expected to eq :gitlab_main_clusterwide4646 name: "_test_gitlab_main_cell_table", classification: :gitlab_main_cell4647 is expected to eq :gitlab_main_cell4648 name: "_test_gitlab_pm_table", classification: :gitlab_pm4649 is expected to eq :gitlab_pm4650 name: "_test_my_table", classification: :gitlab_shared4651 is expected to eq :gitlab_shared4652 name: "pg_attribute", classification: :gitlab_internal4653 is expected to eq :gitlab_internal4654 when mapping fails4655 raises error4656 when testing cross schema access4657 .cross_joins_allowed?4658 schemas: [], result: true4659 is expected to eq true4660 schemas: [:gitlab_main_clusterwide, :gitlab_main], result: true4661 is expected to eq true4662 schemas: [:gitlab_main_clusterwide, :gitlab_ci], result: false4663 is expected to eq false4664 schemas: [:gitlab_main_clusterwide, :gitlab_main, :gitlab_ci], result: false4665 is expected to eq false4666 schemas: [:gitlab_main_clusterwide, :gitlab_internal], result: false4667 is expected to eq false4668 schemas: [:gitlab_main, :gitlab_ci], result: false4669 is expected to eq false4670 schemas: [:gitlab_main_clusterwide, :gitlab_main, :gitlab_shared], result: true4671 is expected to eq true4672 schemas: [:gitlab_main_clusterwide, :gitlab_shared], result: true4673 is expected to eq true4674 .cross_transactions_allowed?4675 schemas: [], result: true4676 is expected to eq true4677 schemas: [:gitlab_main_clusterwide, :gitlab_main], result: true4678 is expected to eq true4679 schemas: [:gitlab_main_clusterwide, :gitlab_ci], result: false4680 is expected to eq false4681 schemas: [:gitlab_main_clusterwide, :gitlab_main, :gitlab_ci], result: false4682 is expected to eq false4683 schemas: [:gitlab_main_clusterwide, :gitlab_internal], result: true4684 is expected to eq true4685 schemas: [:gitlab_main, :gitlab_ci], result: false4686 is expected to eq false4687 schemas: [:gitlab_main_clusterwide, :gitlab_main, :gitlab_shared], result: true4688 is expected to eq true4689 schemas: [:gitlab_main_clusterwide, :gitlab_shared], result: true4690 is expected to eq true4691 .cross_foreign_key_allowed?4692 schemas: [], result: false4693 is expected to eq false4694 schemas: [:gitlab_main_clusterwide, :gitlab_main], result: true4695 is expected to eq true4696 schemas: [:gitlab_main_clusterwide, :gitlab_ci], result: false4697 is expected to eq false4698 schemas: [:gitlab_main_clusterwide, :gitlab_internal], result: false4699 is expected to eq false4700 schemas: [:gitlab_main, :gitlab_ci], result: false4701 is expected to eq false4702 schemas: [:gitlab_main_clusterwide, :gitlab_shared], result: false4703 is expected to eq false4704Users::BuildService4705 #execute4706 with nil current_user4707 behaves like common user build items4708 is expected to be valid4709 sets the created_by_id4710 calls UpdateCanonicalEmailService4711 when user_type is provided4712 when project_bot4713 is expected to equal true4714 when not a project_bot4715 is expected to be human4716 behaves like current user not admin build items4717 with "user_default_external" application setting4718 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4719 sets the value of Gitlab::CurrentSettings.user_default_external4720 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4721 sets the value of Gitlab::CurrentSettings.user_default_external4722 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: true4723 sets the value of Gitlab::CurrentSettings.user_default_external4724 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4725 sets the value of Gitlab::CurrentSettings.user_default_external4726 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4727 sets the value of Gitlab::CurrentSettings.user_default_external4728 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: true4729 sets the value of Gitlab::CurrentSettings.user_default_external4730 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4731 sets the value of Gitlab::CurrentSettings.user_default_external4732 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4733 sets the value of Gitlab::CurrentSettings.user_default_external4734 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4735 sets the value of Gitlab::CurrentSettings.user_default_external4736 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4737 sets the value of Gitlab::CurrentSettings.user_default_external4738 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4739 sets the value of Gitlab::CurrentSettings.user_default_external4740 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4741 sets the value of Gitlab::CurrentSettings.user_default_external4742 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4743 sets the value of Gitlab::CurrentSettings.user_default_external4744 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: false4745 sets the value of Gitlab::CurrentSettings.user_default_external4746 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4747 sets the value of Gitlab::CurrentSettings.user_default_external4748 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4749 sets the value of Gitlab::CurrentSettings.user_default_external4750 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: false4751 sets the value of Gitlab::CurrentSettings.user_default_external4752 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4753 sets the value of Gitlab::CurrentSettings.user_default_external4754 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4755 sets the value of Gitlab::CurrentSettings.user_default_external4756 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4757 sets the value of Gitlab::CurrentSettings.user_default_external4758 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4759 sets the value of Gitlab::CurrentSettings.user_default_external4760 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4761 sets the value of Gitlab::CurrentSettings.user_default_external4762 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4763 sets the value of Gitlab::CurrentSettings.user_default_external4764 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4765 sets the value of Gitlab::CurrentSettings.user_default_external4766 when "email_confirmation_setting" application setting is set to `hard`4767 does not confirm the user4768 when "email_confirmation_setting" application setting is set to `off`4769 confirms the user4770 with allowed params4771 sets all allowed attributes4772 with non admin current_user4773 raises AccessDeniedError exception4774 with an admin current_user4775 behaves like common user build items4776 is expected to be valid4777 sets the created_by_id4778 calls UpdateCanonicalEmailService4779 when user_type is provided4780 when project_bot4781 is expected to equal true4782 when not a project_bot4783 is expected to be human4784 with allowed params4785 sets all allowed attributes4786 with "user_default_external" application setting4787 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: true4788 sets the value of Gitlab::CurrentSettings.user_default_external4789 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4790 sets the value of Gitlab::CurrentSettings.user_default_external4791 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4792 sets the value of Gitlab::CurrentSettings.user_default_external4793 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: true4794 sets the value of Gitlab::CurrentSettings.user_default_external4795 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4796 sets the value of Gitlab::CurrentSettings.user_default_external4797 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4798 sets the value of Gitlab::CurrentSettings.user_default_external4799 user_default_external: true, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4800 sets the value of Gitlab::CurrentSettings.user_default_external4801 user_default_external: true, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4802 sets the value of Gitlab::CurrentSettings.user_default_external4803 user_default_external: true, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4804 sets the value of Gitlab::CurrentSettings.user_default_external4805 user_default_external: true, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4806 sets the value of Gitlab::CurrentSettings.user_default_external4807 user_default_external: true, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4808 sets the value of Gitlab::CurrentSettings.user_default_external4809 user_default_external: true, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4810 sets the value of Gitlab::CurrentSettings.user_default_external4811 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: nil, result: false4812 sets the value of Gitlab::CurrentSettings.user_default_external4813 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: nil, result: true4814 sets the value of Gitlab::CurrentSettings.user_default_external4815 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: nil, result: false4816 sets the value of Gitlab::CurrentSettings.user_default_external4817 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "", result: false4818 sets the value of Gitlab::CurrentSettings.user_default_external4819 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "", result: true4820 sets the value of Gitlab::CurrentSettings.user_default_external4821 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "", result: false4822 sets the value of Gitlab::CurrentSettings.user_default_external4823 user_default_external: false, external: nil, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4824 sets the value of Gitlab::CurrentSettings.user_default_external4825 user_default_external: false, external: true, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4826 sets the value of Gitlab::CurrentSettings.user_default_external4827 user_default_external: false, external: false, email: "fl@example.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4828 sets the value of Gitlab::CurrentSettings.user_default_external4829 user_default_external: false, external: nil, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4830 sets the value of Gitlab::CurrentSettings.user_default_external4831 user_default_external: false, external: true, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: true4832 sets the value of Gitlab::CurrentSettings.user_default_external4833 user_default_external: false, external: false, email: "tester.ext@domain.com", user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?", result: false4834 sets the value of Gitlab::CurrentSettings.user_default_external4835Gitlab::ImportExport::ImportFailureService4836 #log_import_failure4837 when importable is a group4838 behaves like log import failure4839 tracks error4840 saves data to ImportFailure4841 when importable is a project4842 behaves like log import failure4843 tracks error4844 saves data to ImportFailure4845 when ImportFailure does not support importable class4846 raise exception4847 #with_retry4848 when exceptions are retriable4849 exception: GRPC::DeadlineExceeded4850 when retry succeeds4851 retries and logs import failure once with correct params4852 when retry continues to fail with intermittent errors4853 retries the number of times allowed and raise exception4854 logs import failure each time and raise exception4855 exception: ActiveRecord::QueryCanceled4856 when retry succeeds4857 retries and logs import failure once with correct params4858 when retry continues to fail with intermittent errors4859 retries the number of times allowed and raise exception4860 logs import failure each time and raise exception4861 when exception is not retriable4862 raise the exception4863Integrations::Buildkite4864 behaves like Integrations::BaseCi4865 default values4866 is expected to eq :ci4867 behaves like Integrations::ResetSecretFields4868 #exposing_secrets_fields4869 returns an array of strings4870 #reset_secret_fields?4871 returns false if no exposing field has changed4872 returns true if any exposing field has changed4873 validation callback4874 when an exposing field has changed4875 clears all secret fields4876 when a secret field has been updated4877 does not clear this secret field4878 when a secret field has been updated with the same value4879 does not clear this secret field4880 when no exposing field has changed4881 does not clear any secret fields4882 behaves like Integrations::HasWebHook4883 associations4884 is expected to have one service_hook inverse_of => integration4885 callbacks4886 calls #update_web_hook! when enabled4887 does not call #update_web_hook! when disabled4888 does not call #update_web_hook! when validation fails4889 #hook_url4890 returns a string4891 #url_variables4892 returns a hash4893 #hook_ssl_verification4894 returns a boolean4895 delegates to #enable_ssl_verification if the concern is included4896 #update_web_hook!4897 creates or updates a service hook4898 raises an error if the service hook could not be saved4899 does not attempt to save the service hook if there are no changes4900 #execute_web_hook!4901 creates the webhook if necessary and executes it4902 raises an error if the service hook could not be saved4903 Validations4904 when integration is active4905 is expected to validate that :project_url cannot be empty/falsy4906 is expected to validate that :token cannot be empty/falsy4907 behaves like issue tracker integration URL attribute4908 is expected to allow :project_url to be ‹"https://example.com"›4909 is expected not to allow :project_url to be ‹"example.com"›4910 is expected not to allow :project_url to be ‹"ftp://example.com"›4911 is expected not to allow :project_url to be ‹"herp-and-derp"›4912 when integration is inactive4913 is expected not to validate that :project_url cannot be empty/falsy4914 is expected not to validate that :token cannot be empty/falsy4915 .supported_events4916 supports push, merge_request, and tag_push events4917 commits methods4918 always activates SSL verification after saved4919 #hook_url4920 returns the webhook url4921 #commit_status_path4922 returns the correct status page4923 #build_page4924 returns the correct build page4925 #commit_status4926 returns the contents of the reactive cache4927 #calculate_reactive_cache4928 #commit_status4929 sets commit status to :error when status is 5004930 sets commit status to :error when status is 4044931 passes through build status untouched when status is 2004932 sets commit status to :error with a Net::OpenTimeout error4933 sets commit status to :error with a Net::ReadTimeout error4934 sets commit status to :error with a Net::WriteTimeout error4935 sets commit status to :error with a Gitlab::HTTP::ReadTotalTimeout error4936 sets commit status to :error with a EOFError error4937 sets commit status to :error with a SocketError error4938 sets commit status to :error with a OpenSSL::SSL::SSLError error4939 sets commit status to :error with a OpenSSL::OpenSSLError error4940 sets commit status to :error with a Errno::ECONNRESET error4941 sets commit status to :error with a Errno::ECONNREFUSED error4942 sets commit status to :error with a Errno::EHOSTUNREACH error4943 sets commit status to :error with a Errno::ENETUNREACH error4944 sets commit status to :error with a Gitlab::HTTP::BlockedUrlError error4945 sets commit status to :error with a Gitlab::HTTP::RedirectionTooDeep error4946 sets commit status to :error with a Net::HTTPBadResponse error4947Gitlab::FakeApplicationSettings4948 defines methods for default attributes4949 defines predicate methods for boolean properties4950 does not define a predicate method for non-boolean properties4951 returns nil for undefined attributes4952 does not override an existing predicate method4953 behaves like application settings examples4954 predicate method changes when value is updated4955 restricted signup domains4956 behaves like string of domains4957 sets single domain4958 sets multiple domains with spaces4959 sets multiple domains with newlines and a space4960 sets multiple domains with commas4961 sets multiple domains with semicolon4962 sets multiple domains with mixture of everything4963 removes duplicates4964 does not fail with garbage values4965 does not raise error with nil4966 denied signup domains4967 sets multiple domain with file4968 behaves like string of domains4969 sets single domain4970 sets multiple domains with spaces4971 sets multiple domains with newlines and a space4972 sets multiple domains with commas4973 sets multiple domains with semicolon4974 sets multiple domains with mixture of everything4975 removes duplicates4976 does not fail with garbage values4977 does not raise error with nil4978 outbound_local_requests_whitelist4979 clears outbound_local_requests_allowlist_arrays memoization4980 behaves like string of domains4981 sets single domain4982 sets multiple domains with spaces4983 sets multiple domains with newlines and a space4984 sets multiple domains with commas4985 sets multiple domains with semicolon4986 sets multiple domains with mixture of everything4987 removes duplicates4988 does not fail with garbage values4989 does not raise error with nil4990 outbound_local_requests_allowlist_arrays4991 separates the IPs and domains4992 add_to_outbound_local_requests_whitelist4993 adds entry to outbound_local_requests_whitelist4994 clears outbound_local_requests_allowlist_arrays memoization4995 does not raise error with nil4996 does not raise error with nil4997 usage ping settings4998 when the usage ping is disabled in gitlab.yml4999 does not allow the usage ping to be configured5000 when the usage ping is disabled in the DB5001 returns false for usage_ping_enabled5002 when the usage ping is enabled in the DB5003 returns false for usage_ping_enabled5004 when the usage ping is enabled in gitlab.yml5005 allows the usage ping to be configured5006 when the usage ping is disabled in the DB5007 returns false for usage_ping_enabled5008 when the usage ping is enabled in the DB5009 returns true for usage_ping_enabled5010 #allowed_key_types5011 excludes disabled key types5012 in non-FIPS mode5013 includes all key types by default5014 in FIPS mode5015 excludes DSA from supported key types5016 #key_restriction_for5017 returns the restriction value for recognised types5018 allows types to be passed as a string5019 returns forbidden for unrecognised type5020 #allow_signup?5021 returns true5022 returns false if signup is disabled5023 returns false if password authentication is disabled for the web interface5024 #pick_repository_storage5025 chooses repository based on weight5026 #normalized_repository_storage_weights5027 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0, "backup"=>1.0}5028 normalizes storage weights5029 config_storages: ["default", "backup"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>0.5, "backup"=>0.5}5030 normalizes storage weights5031 config_storages: ["default", "backup"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>0.2, "backup"=>0.8}5032 normalizes storage weights5033 config_storages: ["default", "backup"], storages: {"default"=>0, "backup"=>0}, normalized: {"default"=>0.0, "backup"=>0.0}5034 normalizes storage weights5035 config_storages: ["default"], storages: {"default"=>0, "backup"=>100}, normalized: {"default"=>0.0}5036 normalizes storage weights5037 config_storages: ["default"], storages: {"default"=>100, "backup"=>100}, normalized: {"default"=>1.0}5038 normalizes storage weights5039 config_storages: ["default"], storages: {"default"=>20, "backup"=>80}, normalized: {"default"=>1.0}5040 normalizes storage weights5041 #user_default_internal_regex_enabled?5042 user_default_external: false, user_default_internal_regex: nil, result: false5043 is expected to eq false5044 user_default_external: false, user_default_internal_regex: "", result: false5045 is expected to eq false5046 user_default_external: false, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: false5047 is expected to eq false5048 user_default_external: true, user_default_internal_regex: "", result: false5049 is expected to eq false5050 user_default_external: true, user_default_internal_regex: nil, result: false5051 is expected to eq false5052 user_default_external: true, user_default_internal_regex: "^(?:(?!\\.ext@).)*$\\r?\\n?", result: true5053 is expected to eq true5054 #archive_builds_older_than5055 when the archive_builds_in_seconds is set5056 is expected to be within 60 of 2023-07-27 03:40:29.980339340 +00005057 when the archive_builds_in_seconds is set5058 is expected to be nil5059 #commit_email_hostname5060 when the value is provided5061 returns the provided value5062 when the value is not provided5063 returns the default from the class5064Ci::UpdateBuildStateService5065 when build has unknown failure reason5066 updates a build status5067 when build has failed5068 sends a build failed event to Snowplow5069 when build does not have checksum5070 when state has changed5071 updates a state of a running build5072 returns 200 OK status5073 does not increment finalized trace metric5074 when it is a heartbeat request5075 updates a build timestamp5076 when state is unknown5077 responds with 400 bad request5078 when build has a checksum5079 when build does not have associated trace chunks5080 updates a build status5081 updates the allow_failure flag5082 does not increment invalid trace metric5083 does not increment chunks_invalid_checksum trace metric5084 when build trace has been migrated5085 updates a build state5086 updates the allow_failure flag5087 responds with 200 OK status5088 does not set a backoff value5089 increments trace finalized operation metric5090 records migration duration in a histogram5091 when trace checksum is not valid5092 increments invalid trace metric5093 increments chunks_invalid_checksum trace metric5094 when trace checksum is valid5095 does not increment invalid or corrupted trace metric5096 when using deprecated parameters5097 does not increment invalid or corrupted trace metric5098 when trace checksum is invalid and the log is corrupted5099 increments invalid and corrupted trace metrics5100 when trace checksum is invalid but the log seems fine5101 does not increment corrupted trace metric5102 when failed to acquire a build trace lock5103 accepts a state update request5104 increment locked trace metric5105 when build trace has not been migrated yet5106 does not update a build state5107 responds with 202 accepted5108 sets a request backoff value5109 schedules live chunks for migration5110 creates a pending state record5111 increments trace accepted operation metric5112 does not increment invalid trace metric5113 when build pending state is outdated5114 responds with 200 OK5115 updates build state5116 increments discarded traces metric5117 does not increment finalized trace metric5118 when build pending state has changes5119 uses stored state and responds with 200 OK5120 increments conflict trace metric5121 when live traces are disabled5122 responds with 200 OK5123Deployments::LinkMergeRequestsService5124 #execute5125 when the deployment is for a review environment5126 does nothing5127 when the deployment is for one of the production environments5128 links merge requests5129 when the deployment failed5130 does nothing5131 when there is a previous deployment5132 links all merge requests merged since the previous deployment5133 when there are no previous deployments5134 links all merged merge requests5135 #link_merge_requests_for_range5136 links merge requests5137 links picked merge requests5138 doesn't link the same merge_request twice5139 #link_all_merged_merge_requests5140 links all merged merge requests targeting the deployed branch5141Clusters::CreateService5142 when provider is gcp5143 when project has no clusters5144 when correct params5145 creates a cluster object5146 when invalid params5147 returns an error5148 when project has a cluster5149 creates another cluster5150 when another cluster exists5151 when correct params5152 creates a cluster object5153 when invalid params5154 returns an error5155 when params includes :management_project_id5156 management_project is non-existent5157 does not persist the cluster and adds errors5158 project cluster5159 when user is authorized to adminster manangement_project5160 persists the cluster5161 when user is not authorized to adminster manangement_project5162 does not persist the cluster and adds errors5163 when manangement_project is outside of the namespace scope5164 does not persist the cluster5165 group cluster5166 when user is authorized to adminster manangement_project5167 persists the cluster5168 when user is not authorized to adminster manangement_project5169 does not persist the cluster and adds errors5170 when manangement_project is outside of the namespace scope5171 does not persist the cluster5172 instance cluster5173 when user is authorized to adminster manangement_project5174 persists the cluster5175 when user is not authorized to adminster manangement_project5176 does not persist the cluster and adds errors5177ClusterablePresenter5178 .fabricate5179 creates an object from a descendant presenter5180 #can_create_cluster?5181 when clusterable is a group5182 behaves like appropriate member permissions5183 with a developer5184 is expected to be falsy5185 with a maintainer5186 is expected to be truthy5187 when clusterable is a project5188 behaves like appropriate member permissions5189 with a developer5190 is expected to be falsy5191 with a maintainer5192 is expected to be truthy5193 #can_add_cluster?5194 when clusterable is a group5195 behaves like appropriate member permissions5196 with a developer5197 is expected to be falsy5198 with a maintainer5199 is expected to be truthy5200 when clusterable is a project5201 behaves like appropriate member permissions5202 with a developer5203 is expected to be falsy5204 with a maintainer5205 is expected to be truthy5206 #can_admin_cluster?5207 when clusterable is a group5208 behaves like appropriate member permissions5209 with a developer5210 is expected to be falsy5211 with a maintainer5212 is expected to be truthy5213 when clusterable is a project5214 behaves like appropriate member permissions5215 with a developer5216 is expected to be falsy5217 with a maintainer5218 is expected to be truthy5219 #environments_cluster_path5220 is expected to be nil5221 #index_path5222 without options5223 is expected to eq "/groups/group202/-/clusters"5224 with options5225 is expected to eq "/groups/group203/-/clusters.json"5226MembersHelper5227 #remove_member_message5228 is expected to eq "Are you sure you want to remove Sidney Jones1123 from the Sidney Jones1122 / Project-689 Name project?"5229 is expected to eq "Are you sure you want to revoke the invitation for to join the Sidney Jones1125 / Project-691 Name project?"5230 is expected to eq "Are you sure you want to deny Sidney Jones1129's request to join the Sidney Jones1128 / Project-693 Name project?"5231 is expected to eq "Are you sure you want to withdraw your access request for the Sidney Jones1130 / Project-694 Name project?"5232 is expected to eq "Are you sure you want to remove Sidney Jones1132 from the group204 group and any subresources?"5233 is expected to eq "Are you sure you want to revoke the invitation for to join the group206 group?"5234 is expected to eq "Are you sure you want to deny Sidney Jones1134's request to join the group208 group?"5235 is expected to eq "Are you sure you want to withdraw your access request for the group209 group?"5236 an accepted user invitation with no user associated5237 logs an exception and shows orphaned status5238 a pending member invitation with no user associated5239 does not error when there is an invitation for the requestor5240 #remove_member_title5241 is expected to eq "Remove user from project"5242 is expected to eq "Deny access request from project"5243 is expected to eq "Remove user from group and any subresources"5244 is expected to eq "Deny access request from group"5245 #leave_confirmation_message5246 is expected to eq "Are you sure you want to leave the \"Sidney Jones1147 / Project-700 Name\" project?"5247 is expected to eq "Are you sure you want to leave the \"group215\" group?"5248 #localized_tasks_to_be_done_choices5249 has a translation for all `TASKS_TO_BE_DONE` keys5250 #member_request_access_link5251 returns request link for project members5252 returns the request link for group members5253Gitlab::Ci::Ansi2html5254 prints non-ansi as-is5255 strips non-color-changing control sequences5256 prints simply red5257 prints simply red without trailing reset5258 prints simply yellow5259 prints default on blue5260 prints red on blue5261 resets colors after red on blue5262 performs color change from red/blue to yellow/blue5263 performs color change from red/blue to yellow/green5264 performs color change from red/blue to reset to yellow/green5265 ignores unsupported codes5266 prints light red5267 prints default on light red5268 performs color change from red/blue to default/blue5269 performs color change from light red/blue to default/blue5270 prints bold text5271 resets bold text5272 prints italic text5273 resets italic text5274 prints underlined text5275 resets underlined text5276 prints concealed text5277 resets concealed text5278 prints crossed-out text5279 resets crossed-out text5280 can print 256 xterm fg colors5281 can print 256 xterm fg colors on normal magenta background5282 can print 256 xterm bg colors5283 can print 256 xterm fg bold colors5284 can print 256 xterm bg colors on normal magenta foreground5285 prints bold colored text vividly5286 prints bold light colored text correctly5287 prints <5288 replaces newlines with line break tags5289 groups carriage returns with newlines5290 replaces invalid UTF-8 data5291 incremental update5292 with split word5293 behaves like stateable converter5294 to returns html to append5295 with split sequence5296 behaves like stateable converter5297 to returns html to append5298 with partial sequence5299 behaves like stateable converter5300 to returns html to append5301 with new line5302 behaves like stateable converter5303 to returns html to append5304 with section markers5305 do not allow XSS injections5306 behaves like a legit section5307 prints light red5308 begins with a section_start html marker5309 ends with a section_end html marker5310 section name includes $5311 behaves like forbidden char in section_name5312 ignores sections5313 section name includes <5314 behaves like forbidden char in section_name5315 ignores sections5316 section name contains .-_5317 behaves like a legit section5318 prints light red5319 begins with a section_start html marker5320 ends with a section_end html marker5321 truncates5322 returns truncated output5323 does not append output5324ReleaseHighlight5325 .paginated_query5326 with page param5327 when there is another page of results5328 responds with paginated query results5329 when there is NOT another page of results5330 responds with paginated query results and no next_page5331 when that specific page does not exist5332 returns nil5333 .paginated5334 with no page param5335 uses multiple levels of cache5336 returns platform specific items5337 parses the description as markdown and returns html, and links are target="_blank"5338 logs an error if theres an error parsing markdown for an item, and skips it5339 when Gitlab.com5340 responds with a different set of data5341 YAML parsing throws an exception5342 fails gracefully and logs an error5343 .most_recent_item_count5344 uses process memory cache5345 when recent release items exist5346 returns the count from the most recent file5347 when recent release items do NOT exist5348 returns nil5349 .most_recent_version_digest5350 uses process memory cache5351 when recent release items exist5352 returns a digest from the release of the first item of the most recent file5353 when recent release items do NOT exist5354 returns nil5355 .load_items5356 whats new for all tiers5357 returns all items5358 whats new for current tier only5359 returns items with package=Free5360 YAML parsing throws an exception5361 fails gracefully and logs an error5362 QueryResult5363 responds to map5364 .current_package5365 returns Free5366 .file_paths5367 joins relative file paths with the root path to avoid caching the root url5368Ci::BuildTraceMetadata5369 is expected to belong to build required: false5370 is expected to belong to trace_artifact required: false5371 is expected to validate that :build cannot be empty/falsy5372 is expected to validate that :archival_attempts cannot be empty/falsy5373 #can_attempt_archival_now?5374 when archival_attempts is over the limit5375 is expected to be falsey5376 when last_archival_attempt_at is not set5377 is expected to be truthy5378 when last_archival_attempt_at is set5379 is expected to be truthy5380 when last_archival_attempt_at is too close5381 is expected to be falsey5382 #archival_attempts_available?5383 when archival_attempts is over the limit5384 is expected to be falsey5385 when archival_attempts is at the limit5386 is expected to be truthy5387 #increment_archival_attempts!5388 increments the attempts5389 updates the last_archival_attempt_at timestamp5390 #track_archival!5391 stores the artifact id and timestamp5392 .find_or_upsert_for!5393 creates a new record5394 with existing records5395 returns the existing record5396 #remote_checksum_valid?5397 checksum: nil, remote_checksum: nil, result: false5398 is expected to eq false5399 checksum: nil, remote_checksum: "a", result: false5400 is expected to eq false5401 checksum: "a", remote_checksum: nil, result: false5402 is expected to eq false5403 checksum: "a", remote_checksum: "b", result: false5404 is expected to eq false5405 checksum: "b", remote_checksum: "a", result: false5406 is expected to eq false5407 checksum: "a", remote_checksum: "a", result: true5408 is expected to eq true5409 partitioning5410 assigns the same partition id as the one that build has (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)5411MergeRequests::UpdateHeadPipelineWorker5412 behaves like subscribes to event5413 consumes the published event5414 behaves like an idempotent worker5415 is labeled as idempotent5416 performs multiple times sequentially without raising an exception5417 when merge requests already exist for this source branch5418 when the head pipeline sha equals merge request sha5419 updates head pipeline of each merge request5420 when the merge request is not open5421 only updates the open merge requests5422 when the head pipeline sha does not equal merge request sha5423 does not update the head piepeline of MRs5424 when there is no pipeline for source branch5425 does not update merge request head pipeline5426 when merge request target project is different from source project5427 updates head pipeline for merge request5428 when the pipeline is not the latest for the branch5429 does not update merge request head pipeline5430 when pipeline has errors5431 updates merge request head pipeline reference5432ProjectGroupLink5433 Associations5434 is expected to belong to group required: false5435 is expected to belong to project required: false5436 Validation5437 is expected to validate that :project_id cannot be empty/falsy5438 is expected to validate that :group_id is case-sensitively unique within the scope of :project_id, producing a custom validation error on failure5439 is expected to validate that :group cannot be empty/falsy5440 is expected to validate that :group_access cannot be empty/falsy5441 doesn't allow a project to be shared with the group it is in5442 doesn't allow a project to be shared with an ancestor of the group it is in5443 does not allow a project to be shared with `OWNER` access level5444 scopes5445 .non_guests5446 returns all records which are greater than Guests access5447 search by group name5448 is expected to eq [#<ProjectGroupLink id: 13, project_id: 726, group_id: 2603, created_at: "2023-07-27 04:42:45.520318126 +0000", updated_at: "2023-07-27 04:42:45.520318126 +0000", group_access: 30, expires_at: nil>]5449 is expected to be empty5450Gitlab::Ci::Reports::TestSuiteSummary5451 #name5452 when test suite summary has several build report results5453 returns the suite name5454 #build_ids5455 when test suite summary has several build report results5456 returns the build ids5457 #total_time5458 when test suite summary has several build report results5459 returns the total time5460 #success_count5461 when test suite summary has several build report results5462 returns the total success5463 #failed_count5464 when test suite summary has several build report results5465 returns the total failed5466 #error_count5467 when test suite summary has several build report results5468 returns the total errored5469 #skipped_count5470 when test suite summary has several build report results5471 returns the total skipped5472 #total_count5473 when test suite summary has several build report results5474 returns the total count5475 #suite_error5476 when there are no build report results with suite errors5477 is expected to be nil5478 when there are build report results with suite errors5479 includes the first suite error from the collection of build report results5480 #to_h5481 when test suite summary has several build report results5482 returns the total as a hash5483Gitlab::Ci::Config::Entry::Release5484 validation5485 when entry config value is correct5486 behaves like a valid entry5487 #value5488 returns release configuration5489 #valid?5490 is valid5491 when value includes 'assets' keyword5492 behaves like a valid entry5493 #value5494 returns release configuration5495 #valid?5496 is valid5497 when value includes 'name' keyword5498 behaves like a valid entry5499 #value5500 returns release configuration5501 #valid?5502 is valid5503 when value includes 'ref' keyword5504 behaves like a valid entry5505 #value5506 returns release configuration5507 #valid?5508 is valid5509 when value includes 'released_at' keyword5510 behaves like a valid entry5511 #value5512 returns release configuration5513 #valid?5514 is valid5515 when value includes 'milestones' keyword5516 for an array of milestones5517 behaves like a valid entry5518 #value5519 returns release configuration5520 #valid?5521 is valid5522 for a single milestone5523 behaves like a valid entry5524 #value5525 returns release configuration5526 #valid?5527 is valid5528 when value includes 'ref' keyword5529 when 'ref' is a full commit SHA5530 behaves like a valid entry5531 #value5532 returns release configuration5533 #valid?5534 is valid5535 when 'ref' is a short commit SHA5536 behaves like a valid entry5537 #value5538 returns release configuration5539 #valid?5540 is valid5541 when 'ref' is a branch name5542 behaves like a valid entry5543 #value5544 returns release configuration5545 #valid?5546 is valid5547 when 'ref' is a semantic versioning tag5548 behaves like a valid entry5549 #value5550 returns release configuration5551 #valid?5552 is valid5553 when 'ref' is a semantic versioning tag rc5554 behaves like a valid entry5555 #value5556 returns release configuration5557 #valid?5558 is valid5559 when value includes 'released_at' keyword5560 behaves like a valid entry5561 #value5562 returns release configuration5563 #valid?5564 is valid5565 when value includes 'milestones' keyword5566 for an array of milestones5567 behaves like a valid entry5568 #value5569 returns release configuration5570 #valid?5571 is valid5572 for a single milestone5573 behaves like a valid entry5574 #value5575 returns release configuration5576 #valid?5577 is valid5578 when value includes 'tag_message' keyword5579 behaves like a valid entry5580 #value5581 returns release configuration5582 #valid?5583 is valid5584 when 'tag_message' is nil5585 behaves like a valid entry5586 #value5587 returns release configuration5588 #valid?5589 is valid5590 when entry value is not correct5591 #errors5592 when value of attribute is invalid5593 behaves like reports error5594 reports error5595 when release description is missing5596 behaves like reports error5597 reports error5598 when release tag_name is missing5599 behaves like reports error5600 reports error5601 when there is an unknown key present5602 behaves like reports error5603 reports error5604 when `released_at` is not a valid date5605 behaves like reports error5606 reports error5607 when `ref` is not valid5608 behaves like reports error5609 reports error5610 when `milestones` is not an array of strings5611 behaves like reports error5612 reports error5613 when `tag_message` is not a string5614 behaves like reports error5615 reports error5616Gitlab::ImportExport::SnippetRepoRestorer5617 when the snippet does not have a bundle file path5618 behaves like no bundle file present5619 creates the repository from the database content5620 does not call snippet update statistics service5621 when the repository creation fails5622 returns false5623 when the snippet bundle path is not present5624 behaves like no bundle file present5625 creates the repository from the database content5626 does not call snippet update statistics service5627 when the repository creation fails5628 returns false5629 when the snippet repository bundle exists5630 refreshes snippet statistics5631 when it is valid5632 creates the repository from the bundle5633 sets same shard in snippet repository as in the repository storage5634 when it is invalid5635 returns false and deletes the repository from disk and the database5636Gitlab::Diff::Suggestion5637 #to_hash5638 when changing content surpasses the top limit5639 behaves like correct suggestion raw content5640 returns correct raw data5641 returns diff lines with correct line numbers5642 when changing content surpasses the amount of lines in the blob (bottom)5643 behaves like correct suggestion raw content5644 returns correct raw data5645 returns diff lines with correct line numbers5646 when lines are within blob lines boundary5647 behaves like correct suggestion raw content5648 returns correct raw data5649 returns diff lines with correct line numbers5650Gitlab::Diff::SuggestionsParser5651 .parse5652 single-line suggestions5653 returns a list of Gitlab::Diff::Suggestion5654 parsed suggestion has correct data5655 multi-line suggestions5656 returns a list of Gitlab::Diff::Suggestion5657 suggestion with above and below param has correct data5658 suggestion with above param has correct data5659 suggestion with below param has correct data5660Gitlab::Graphql::Pagination::ActiveRecordArrayConnection5661 behaves like a connection with collection methods5662 responds to to_a5663 responds to size5664 responds to map5665 responds to include?5666 responds to empty?5667 behaves like a redactable connection5668 no redactor set5669 contains the unwanted item5670 does not redact more than once5671 redactor is set5672 does not contain the unwanted item5673 does not redact more than once5674 #nodes5675 is expected to contain exactly #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: nil>, #<Packages::BuildInfo id: 2, package_id: 2, pipeline_id: nil>, and #<Packages::BuildInfo id: 3, package_id: 3, pipeline_id: nil>5676 with first set5677 is expected to contain exactly #<Packages::BuildInfo id: 1, package_id: 1, pipeline_id: nil> and #<Packages::BuildInfo id: 2, package_id: 2, pipeline_id: nil>5678 with last set5679 is expected to contain exactly #<Packages::BuildInfo id: 2, package_id: 2, pipeline_id: nil> and #<Packages::BuildInfo id: 3, package_id: 3, pipeline_id: nil>5680 #next_page?5681 before: nil, first: nil, max_page_size: nil, result: false5682 is expected to eq false5683 before: 1, first: nil, max_page_size: nil, result: true5684 is expected to eq true5685 before: nil, first: 1, max_page_size: nil, result: true5686 is expected to eq true5687 before: nil, first: 10, max_page_size: nil, result: false5688 is expected to eq false5689 before: nil, first: 1, max_page_size: 1, result: true5690 is expected to eq true5691 before: nil, first: 1, max_page_size: 10, result: true5692 is expected to eq true5693 before: nil, first: 10, max_page_size: 10, result: false5694 is expected to eq false5695 #previous_page?5696 after: nil, last: nil, max_page_size: nil, result: false5697 is expected to eq false5698 after: 1, last: nil, max_page_size: nil, result: true5699 is expected to eq true5700 after: nil, last: 1, max_page_size: nil, result: true5701 is expected to eq true5702 after: nil, last: 10, max_page_size: nil, result: false5703 is expected to eq false5704 after: nil, last: 1, max_page_size: 1, result: true5705 is expected to eq true5706 after: nil, last: 1, max_page_size: 10, result: true5707 is expected to eq true5708 after: nil, last: 10, max_page_size: 10, result: false5709 is expected to eq false5710 #cursor_for5711 is expected to eq "eyJpZCI6IjEifQ"5712 with a BatchLoader::GraphQL item5713 is expected to eq "eyJpZCI6IjE2ODAifQ"5714 #dup5715 properly handles items duplication5716Deploy-ECS.gitlab-ci.yml5717 the created pipeline5718 creates the expected jobs5719 behaves like no pipeline yaml error5720 does not have any error5721 when the DAST template is also included5722 does not have any error5723 when running a pipeline for a branch5724 creates the expected jobs5725 behaves like no pipeline yaml error5726 does not have any error5727 when deploying to ECS Fargate5728 creates the expected jobs5729Deployments::OlderDeploymentsDropService5730 #execute5731 when deployment is nil5732 behaves like it does not drop any build5733 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5734 when a deployment is passed in5735 and there is no active deployment for the related environment5736 behaves like it does not drop any build5737 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5738 and there are active deployment for the related environment5739 and there is no older deployment than "deployment"5740 behaves like it does not drop any build5741 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5742 and there is an older deployment than "deployment"5743 drops that older deployment5744 when older deployable is a manual job5745 does not drop any builds nor track the exception5746 when deployable.drop raises RuntimeError5747 does not drop an older deployment and tracks the exception5748 when ActiveRecord::StaleObjectError is raised5749 resets the object via Gitlab::OptimisticLocking5750 and there is no deployable for that older deployment5751 behaves like it does not drop any build5752 is expected to not change `Ci::Build::ActiveRecord_Relation#count`5753Gitlab::Cleanup::OrphanLfsFileReferences5754 dry run5755 prints messages and does not delete references5756 regular run5757 prints messages and deletes invalid reference5758 does nothing if the project has no LFS objects5759 LFS object is in design repository5760 is not removed5761 LFS object is in wiki repository5762 is not removed5763 LFS for project snippets5764 is disabled5765Gitlab::Auth::Ldap::User5766 #should_save?5767 marks existing ldap user as changed5768 marks existing non-ldap user if the email matches as changed5769 does not mark existing ldap user as changed5770 #valid_sign_in?5771 returns true5772 returns false if the GitLab user is not valid5773 find or create5774 finds the user if already existing5775 connects to existing non-ldap user if the email matches5776 connects to existing ldap user if the extern_uid changes5777 connects to existing ldap user if the extern_uid changes and email address has upper case characters5778 maintains an identity per provider5779 creates a new user if not found5780 when signup is disabled5781 creates the user5782 when user confirmation email is enabled5783 creates and confirms the user anyway5784 when the current minimum password length is different from the default minimum password length5785 creates the user5786 updating email5787 when LDAP sets an email5788 has a real email5789 has email set as synced5790 has email set as read-only5791 has synced attributes provider set to ldapmain5792 when LDAP doesn't set an email5793 has a temp email5794 has email set as not synced5795 does not have email set as read-only5796 blocking5797 signup5798 dont block on create5799 is expected not to be blocked5800 block on create5801 is expected to be blocked5802 sign-in5803 dont block on create5804 is expected not to be blocked5805 block on create5806 is expected not to be blocked5807Ci::ExternalPullRequest5808 # order random5809 is expected to belong to project required: false5810 #actual_branch_head?5811 when source sha matches the head of the branch5812 returns true5813 when source sha does not match the head of the branch5814 returns true5815 #open?5816 returns true if status is open5817 returns false if status is not open5818 #modified_paths5819 returns modified paths5820 create_or_update_from_params5821 when pull request does not exist5822 when params are correct5823 saves the model successfully and returns it5824 yields the model5825 when params are not correct5826 returns an invalid model5827 when pull request exists5828 when params are correct5829 updates the model successfully and returns it5830 when params are not correct5831 returns an invalid model5832 #from_fork?5833 returns true if source_repository differs from target_repository5834 returns false if source_repository is the same as target_repository5835 with a loose foreign key on external_pull_requests.project_id5836 behaves like cleanup by a loose foreign key5837 cleans up (delete or nullify) the model5838 #closed?5839 returns true if status is closed5840 returns false if status is not closed5841 validations5842 when source branch not present5843 behaves like has errors on5844 has errors for source_branch5845 when status not present5846 behaves like has errors on5847 has errors for status5848 when pull request is from a fork5849 behaves like has errors on5850 has errors for base5851NewNoteWorker5852 when Note found5853 calls NotificationService#new_note5854 calls Notes::PostProcessService#execute5855 when Note not found5856 logs NewNoteWorker process skipping5857 does not raise errors5858 does not call NotificationService5859 does not call Notes::PostProcessService5860 when note does not require notification5861 does not create a new note notification5862 when Note author has been blocked5863 does not call NotificationService5864 when Note author has been deleted5865 does not call NotificationService5866Gitlab::Database::AsyncIndexes::MigrationHelpers5867 #unprepare_async_index5868 destroys the record5869 when an explicit name is given5870 destroys the record5871 when the async index table does not exist5872 does not raise an error5873 #unprepare_async_index_by_name5874 destroys the record5875 when the async index table does not exist5876 does not raise an error5877 #prepare_async_index5878 creates the record for the async index5879 when an explicit name is given5880 creates the record with the given name5881 when the index already exists5882 does not create the record5883 when the record already exists5884 does attempt to create the record5885 updates definition if changed5886 does not update definition if not changed5887 when the async index table does not exist5888 does not raise an error5889 #prepare_async_index_from_sql5890 requires ddl mode5891 when the given index is invalid5892 raises a RuntimeError5893 when the given index is valid5894 when the index algorithm is not concurrent5895 raises a RuntimeError5896 when the index algorithm is concurrent5897 when the statement tries to create an index for non-existing table5898 raises a RuntimeError5899 when the statement tries to create an index for an existing table5900 when the async index creation is not available5901 does not raise an error5902 when the async index creation is available5903 when there is already an index with the given name5904 does not create the async index record5905 when there is no index with the given name5906 creates the async index record5907 sets the async index attributes correctly5908 when the given SQL has whitespace5909 creates the async index record5910 sets the async index attributes correctly5911 #prepare_async_index_removal5912 creates the record for the async index removal5913 when the index does not exist5914 does not create the record5915 when the record already exists5916 does attempt to create the record5917BulkImports::Common::Pipelines::MilestonesPipeline5918 group milestone5919 behaves like bulk_imports milestones pipeline5920 #run5921 imports milestones into destination5922 #load5923 when milestone is not persisted5924 saves the milestone5925 when milestone is missing5926 returns5927 project milestone5928 behaves like bulk_imports milestones pipeline5929 imports events5930 #run5931 imports milestones into destination5932 #load5933 when milestone is not persisted5934 saves the milestone5935 when milestone is missing5936 returns5937Crm::OrganizationsFinder5938 #execute5939 when customer relations feature is enabled for the group5940 when user does not have permissions to see organizations in the group5941 returns an empty array5942 when user is member of the root group5943 when feature flag is enabled5944 returns all group organizations5945 when user is member of the sub group5946 returns an empty array5947 when customer relations feature is disabled for the group5948 returns an empty array5949 with search informations5950 when search term is empty5951 returns all group organizations alphabetically ordered5952 when search term is not empty5953 searches for name5954 searches for description5955 searches for name and description5956 when searching for organizations state5957 returns only inactive organizations5958 returns only active organizations5959 when searching for organizations ids5960 returns the expected organizations5961 when sorting5962 returns the organiztions sorted by name in ascending order5963 returns the organizations sorted by description in descending order5964 returns the contacts sorted by default_rate in ascending order5965 .counts_by_state5966 returns correct counts5967ForkNetwork5968 #add_root_as_member5969 adds the root project as a member when creating a new root network5970 #find_fork_in5971 finds all fork of the current network in al collection5972 #merge_requests5973 finds merge requests within the fork network5974 for a deleted project5975 keeps the fork network5976 allows multiple fork networks where the root project is deleted5977Gitlab::Consul::Internal5978 .api_url5979 returns correct value5980 when consul setting is not present in gitlab.yml5981 does not fail5982 .discover_service5983 behaves like returns nil given blank value of5984 with5985 is expected to be nil5986 with5987 is expected to be nil5988 behaves like returns nil given blank value of5989 with5990 is expected to be nil5991 with5992 is expected to be nil5993 one service discovered5994 returns the service address and port5995 multiple services discovered5996 uses the first service5997 behaves like handles failure response5998 raises Gitlab::Consul::Internal::SocketError when SocketError is rescued5999 raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued6000 raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued6001 raises Consul::Internal::UnexpectedResponseError when StandardError is rescued6002 raises Consul::Internal::UnexpectedResponseError when request returns 5006003 raises Consul::Internal::UnexpectedResponseError when request returns non json data6004 .discover_prometheus_server_address6005 returns the server address6006 behaves like returns nil given blank value of6007 with6008 is expected to be nil6009 with6010 is expected to be nil6011 behaves like handles failure response6012 raises Gitlab::Consul::Internal::SocketError when SocketError is rescued6013 raises Gitlab::Consul::Internal::SSLError when OpenSSL::SSL::SSLError is rescued6014 raises Gitlab::Consul::Internal::ECONNREFUSED when Errno::ECONNREFUSED is rescued6015 raises Consul::Internal::UnexpectedResponseError when StandardError is rescued6016 raises Consul::Internal::UnexpectedResponseError when request returns 5006017 raises Consul::Internal::UnexpectedResponseError when request returns non json data6018Gitlab::Chat::Output6019 #to_s6020 returns the chat reply as a String6021 without the chat_reply trace section6022 falls back to using the step_script trace section6023 without the step_script trace section6024 falls back to using the build_script trace section6025 without the build_script trace section6026 raises MissingBuildSectionError6027 #without_executed_command_line6028 returns the input without the first line6029 returns an empty String when the input is empty6030 returns an empty String when the input consits of a single newline6031 #find_build_trace_section6032 returns nil when no section could be found6033 returns the trace section when it could be found6034Gitlab::IssuableMetadata6035 returns an empty Hash if an empty collection is provided6036 raises an error when given a collection with no limit6037 issues6038 aggregates stats on issues6039 merge requests6040 aggregates stats on merge requests6041projects/tags/index.html.haml6042 when tag is associated with a release6043 when name does not contain a backslash6044 renders a link to the release page6045 when name contains backslash6046 renders a link to the release page with backslash escaped6047 when the most recent build for a tag has artifacts6048 renders the Artifacts section in the download list6049 renders artifact download links6050 when the most recent build for a tag has expired artifacts6051 does not render the Artifacts section in the download list6052 does not render artifact download links6053 build stats6054 shows build status or placeholder when pipelines present6055 shows no build status or placeholder when no pipelines present6056 shows no build status or placeholder when pipelines are private6057 when Gitaly is unavailable6058 renders an error6059Achievements::UserAchievementPolicy6060 # order random6061 is readable to everyone when user has public profile6062 when user has private profile6063 for achievement owner6064 is visible6065 for group maintainer6066 is visible6067 for others6068 is hidden6069 when group is private6070 for achievement owner6071 is visible6072 for group maintainer6073 is visible6074 for others6075 is visible6076gitlab:external_diffs rake tasks6077 force_object_storage task6078 forces externally stored merge request diffs to object storage6079 limits batches according to BATCH_SIZE, START_ID, and END_ID6080Gitlab::Ci::Build::Step6081 #from_commands6082 when script option is specified6083 behaves like has correct script6084 fabricates an object6085 when before and script option is specified6086 behaves like has correct script6087 fabricates an object6088 when timeout option is specified in seconds6089 has job level timeout6090 behaves like has correct script6091 fabricates an object6092 #from_release6093 with release6094 returns the release-cli command line6095 when release is empty6096 does not fabricate an object6097 #from_after_script6098 when after_script is empty6099 does not fabricate an object6100 when after_script is not empty6101 fabricates an object6102Resolvers::DesignManagement::Version::DesignAtVersionResolver6103 #resolve6104 passing combinations of arguments6105 passing no arguments6106 behaves like a bad argument6107 generates an error6108 passing all arguments6109 behaves like a bad argument6110 generates an error6111 passing any two arguments6112 behaves like a bad argument6113 generates an error6114 passing id6115 finds the design6116 when the user cannot see designs6117 returns nothing6118 passing design_id6119 finds the design6120 when the user cannot see designs6121 returns nothing6122 passing filename6123 finds the design6124 when the user cannot see designs6125 returns nothing6126 attempting to retrieve an object not visible at this version6127 passing id6128 does not find the design6129 passing design_id6130 does not find the design6131 passing filename6132 does not find the design6133Security::CiConfiguration::DependencyScanningCreateService6134 # order random6135 #execute6136 user does not belong to project6137 returns an error status6138 does not track a snowplow event6139 user belongs to project6140 does track the snowplow event6141 raises exception if the user does not have permission to create a new branch6142 when exception is raised6143 when branch was created6144 tries to rm branch6145 when branch was not created6146 does not try to rm branch6147 with no parameters6148 returns the path to create a new merge request6149 when the project has a non-default ci config file6150 does track the snowplow event6151 when existing ci config contains anchors/aliases6152 fails with error6153 when parsing existing ci config gives a Psych error6154 fails with error6155 when parsing existing ci config gives any other error6156 is successful6157 when the project is empty6158 returns a ServiceResponse error6159ErrorTracking::SentryClient::Projects6160 # order random6161 #projects6162 behaves like calls sentry api6163 calls sentry api6164 behaves like has correct return type6165 returns objects of type Gitlab::ErrorTracking::Project6166 behaves like has correct length6167 is expected to eq 26168 behaves like Sentry API response size limit6169 raises an exception when response is too large6170 essential keys missing in API response6171 raises exception6172 optional keys missing in sentry response6173 behaves like calls sentry api6174 calls sentry api6175 behaves like has correct return type6176 returns objects of type Gitlab::ErrorTracking::Project6177 behaves like has correct length6178 is expected to eq 16179 error object created from sentry response6180 sentry_project_object: :id, sentry_response: :id6181 is expected to eq "2"6182 sentry_project_object: :name, sentry_response: :name6183 is expected to eq "sentry-example"6184 sentry_project_object: :status, sentry_response: :status6185 is expected to eq "active"6186 sentry_project_object: :slug, sentry_response: :slug6187 is expected to eq "sentry-example"6188 sentry_project_object: :organization_name, sentry_response: [:organization, :name]6189 is expected to eq "Sentry"6190 sentry_project_object: :organization_id, sentry_response: [:organization, :id]6191 is expected to eq "1"6192 sentry_project_object: :organization_slug, sentry_response: [:organization, :slug]6193 is expected to eq "sentry"6194 redirects6195 behaves like no Sentry redirects6196 does not follow redirects6197 when exception is raised6198 behaves like maps Sentry exceptions6199 HTTParty::Error6200 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"6201 Net::OpenTimeout6202 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"6203 SocketError6204 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"6205 OpenSSL::SSL::SSLError6206 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"6207 Errno::ECONNREFUSED6208 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"6209 StandardError6210 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"6211Gitlab::GithubImport::Importer::NoteImporter6212 #execute6213 produces a valid Note6214 skips markdown field cache callback6215 when the noteable exists6216 when the author could be found6217 imports the note with the found author as the note author6218 when the note author could not be found6219 imports the note with the project creator as the note author6220 when the note have invalid chars6221 removes invalid chars6222 when note is invalid6223 fails validation6224 when the noteable does not exist6225 does not import the note6226 when the import fails due to a foreign key error6227 does not raise any errors6228 #find_noteable_id6229 returns the ID of the noteable6230Pajamas::BannerComponent6231 basic usage6232 renders its content6233 renders its title6234 renders a close button6235 button_text and button_link6236 define the primary action6237 banner_options6238 are on the banner6239 with custom classes6240 don't conflict with internal banner_classes6241 close_options6242 are on the close button6243 embedded6244 by default (false)6245 keeps the banner's borders6246 when set to true6247 removes the banner's borders6248 variant6249 by default (promotion)6250 applies no variant class6251 when set to introduction6252 applies the introduction class to the banner6253 applies the confirm class to the close button6254 when set to unknown variant6255 ignores the unknown variant6256 illustration6257 has none by default6258 with svg_path6259 renders an image as illustration6260 with illustration slot6261 renders the slot content as illustration6262 and conflicting svg_path6263 uses the slot content6264 with primary_action slot6265 renders the slot content as the primary action6266 and conflicting button_text and button_link6267 uses the slot content6268Ci::RunnerNamespace6269 behaves like includes Limitable concern6270 #exceeds_limits?6271 without plan limits configured6272 is expected to eq false6273 without plan limits configured6274 is expected to eq false6275 with an existing model6276 is expected to eq true6277 validations6278 is expected to be a kind of Limitable6279 without plan limits configured6280 can create new models6281 with plan limits configured6282 can create new models6283 with an existing model6284 cannot create new models exceeding the plan limits6285 behaves like cleanup by a loose foreign key6286 cleans up (delete or nullify) the model6287 .for_runner6288 with runner ids6289 returns requested runner namespaces6290 with runners6291 returns requested runner namespaces6292Gitlab::Ci::Trace::Archive6293 with transactional fixtures6294 #execute6295 computes and assigns checksum6296 validating artifact checksum6297 when the object store is disabled6298 behaves like skips validations6299 behaves like valid6300 does not count as invalid6301 behaves like local checksum only6302 generates only local checksum6303 with FIPS enabled6304 does not generate md5 checksums6305 behaves like valid6306 does not count as invalid6307 with direct_upload enabled6308 checksums match6309 behaves like valid6310 does not count as invalid6311 when the checksum does not match6312 counts as invalid6313 with FIPS enabled6314 does not generate md5 checksums6315 behaves like valid6316 does not count as invalid6317 with FIPS enabled6318 does not generate md5 checksums6319 behaves like valid6320 does not count as invalid6321 without transactional fixtures6322 #execute!6323 does not upload the trace inside a database transaction6324Gitlab::Checks::ContainerMoved6325 .fetch_message6326 with a redirect message queue6327 returns the redirect message6328 deletes the redirect message from redis6329 with a message in the legacy key6330 returns and deletes the legacy message6331 with no redirect message queue6332 returns nil6333 #add_message6334 queues a redirect message6335 when user is nil6336 handles anonymous clones6337 #message6338 with project6339 behaves like errors per protocol6340 when protocol is http6341 behaves like returns redirect message6342 is expected to eq "Project 'foo/bar' was moved to 'user844/project-906'.\n\nPlease update your Git remote:\n\n git remote set-url origin http://localhost/user844/project-906.git\n"6343 when protocol is ssh6344 behaves like returns redirect message6345 is expected to eq "Project 'foo/bar' was moved to 'user844/project-906'.\n\nPlease update your Git remote:\n\n git remote set-url origin git@localhost:user844/project-906.git\n"6346 with wiki6347 behaves like errors per protocol6348 when protocol is http6349 behaves like returns redirect message6350 is expected to eq "Project wiki 'foo/bar' was moved to 'user844/project-906.wiki'.\n\nPlease update your Git remote:\n\n git remote set-url origin http://localhost/user844/project-906.wiki.git\n"6351 when protocol is ssh6352 behaves like returns redirect message6353 is expected to eq "Project wiki 'foo/bar' was moved to 'user844/project-906.wiki'.\n\nPlease update your Git remote:\n\n git remote set-url origin git@localhost:user844/project-906.wiki.git\n"6354 with project snippet6355 behaves like errors per protocol6356 when protocol is http6357 behaves like returns redirect message6358 is expected to eq "Project snippet 'foo/bar' was moved to 'user844/project-906/snippets/85'.\n\nPlease update your Git remote:\n\n git remote set-url origin http://localhost/user844/project-906/snippets/85.git\n"6359 when protocol is ssh6360 behaves like returns redirect message6361 is expected to eq "Project snippet 'foo/bar' was moved to 'user844/project-906/snippets/85'.\n\nPlease update your Git remote:\n\n git remote set-url origin git@localhost:user844/project-906/snippets/85.git\n"6362 with personal snippet6363 behaves like errors per protocol6364 when protocol is http6365 behaves like returns redirect message6366 is expected to eq "Personal snippet 'foo/bar' was moved to 'snippets/86'.\n\nPlease update your Git remote:\n\n git remote set-url origin http://localhost/snippets/86.git\n"6367 when protocol is ssh6368 behaves like returns redirect message6369 is expected to eq "Personal snippet 'foo/bar' was moved to 'snippets/86'.\n\nPlease update your Git remote:\n\n git remote set-url origin git@localhost:snippets/86.git\n"6370TreeEntryPresenter6371 .web_url6372 is expected to eq "http://localhost/namespace611/project-907/-/tree/master/bar"6373 #web_path6374 is expected to eq "/namespace612/project-908/-/tree/master/bar"6375 when blob has ref_type6376 .web_url6377 is expected to eq "http://localhost/namespace613/project-909/-/tree/master/bar?ref_type=heads"6378 #web_path6379 is expected to eq "/namespace614/project-910/-/tree/master/bar?ref_type=heads"6380ResourceEvents::SyntheticMilestoneNotesBuilderService6381 #execute6382 builds milestone notes for resource milestone events6383 behaves like filters by paginated notes6384 only returns given notes6385 when paginated notes is empty6386 does not return any notes6387Gitlab::Database::PostgresPartitionedTable6388 associations6389 is expected to have many postgres_partitions6390 behaves like a postgres model6391 .by_identifier6392 finds the Gitlab::Database::PostgresPartitionedTable6393 raises an error if not found6394 raises ArgumentError if given a non-fully qualified identifier6395 #to_s6396 returns the name6397 #schema6398 returns the schema6399 #name6400 returns the name6401 .find_by_name_in_current_schema6402 finds the partitioned tables in the current schema by name6403 does not find partitioned tables in a different schema6404 .each_partition6405 without partitions6406 does not yield control6407 with partitions6408 yields control with partition as argument6409 #dynamic?6410 returns true for tables partitioned by range6411 returns true for tables partitioned by list6412 returns false for tables partitioned by hash6413 #static?6414 returns false for tables partitioned by range6415 returns false for tables partitioned by list6416 returns true for tables partitioned by hash6417 #strategy6418 returns the partitioning strategy6419 #key_columns6420 returns the partitioning key columns6421Resolvers::ProjectPackagesResolver6422 #resolve6423 behaves like group and projects packages resolver6424 without sort6425 returns the proper packages6426 with sorting and filtering6427 CREATED_DESC6428 is expected to eq [#<Packages::Package id: 9, project_id: 881, created_at: "2023-07-27 03:46:57.519941624 +0000", updat...e_type: "conan", creator_id: 1866, status: "default", last_downloaded_at: nil, status_message: nil>]6429 NAME_DESC6430 is expected to eq [#<Packages::Package id: 9, project_id: 881, created_at: "2023-07-27 03:46:57.519941624 +0000", updat...e_type: "conan", creator_id: 1866, status: "default", last_downloaded_at: nil, status_message: nil>]6431 VERSION_DESC6432 is expected to eq [#<Packages::Package id: 9, project_id: 881, created_at: "2023-07-27 03:46:57.519941624 +0000", updat...e_type: "conan", creator_id: 1866, status: "default", last_downloaded_at: nil, status_message: nil>]6433 TYPE_ASC6434 is expected to eq [#<Packages::Package id: 9, project_id: 881, created_at: "2023-07-27 03:46:57.519941624 +0000", updat...e_type: "conan", creator_id: 1866, status: "default", last_downloaded_at: nil, status_message: nil>]6435 CREATED_ASC6436 is expected to eq [#<Packages::Package id: 7, project_id: 881, created_at: "2023-07-26 04:46:57.041331423 +0000", updat...age_type: "maven", creator_id: 1866, status: "error", last_downloaded_at: nil, status_message: nil>]6437 NAME_ASC6438 is expected to eq [#<Packages::Package id: 7, project_id: 881, created_at: "2023-07-26 04:46:57.041331423 +0000", updat...age_type: "maven", creator_id: 1866, status: "error", last_downloaded_at: nil, status_message: nil>]6439 VERSION_ASC6440 is expected to eq [#<Packages::Package id: 7, project_id: 881, created_at: "2023-07-26 04:46:57.041331423 +0000", updat...age_type: "maven", creator_id: 1866, status: "error", last_downloaded_at: nil, status_message: nil>]6441 TYPE_DESC6442 is expected to eq [#<Packages::Package id: 7, project_id: 881, created_at: "2023-07-26 04:46:57.041331423 +0000", updat...age_type: "maven", creator_id: 1866, status: "error", last_downloaded_at: nil, status_message: nil>]6443 filter by package_name6444 is expected to eq [#<Packages::Package id: 7, project_id: 881, created_at: "2023-07-26 04:46:57.041331423 +0000", updat...e_type: "conan", creator_id: 1866, status: "default", last_downloaded_at: nil, status_message: nil>]6445 filter by package_type6446 is expected to eq [#<Packages::Package id: 7, project_id: 881, created_at: "2023-07-26 04:46:57.041331423 +0000", updat...e_type: "conan", creator_id: 1866, status: "default", last_downloaded_at: nil, status_message: nil>]6447 filter by status6448 is expected to eq [#<Packages::Package id: 9, project_id: 881, created_at: "2023-07-27 03:46:57.519941624 +0000", updat...age_type: "maven", creator_id: 1866, status: "error", last_downloaded_at: nil, status_message: nil>]6449 include_versionless6450 is expected to include #<Packages::Package id: 11, project_id: 881, created_at: "2023-07-27 04:45:57.834349866 +0000", updat...ge_type: "maven", creator_id: 1866, status: "default", last_downloaded_at: nil, status_message: nil>6451Gitlab::Ci::Pipeline::Logger6452 #log_when6453 stores blocks for later evaluation6454 #instrument6455 returns the block's value6456 records durations of instrumented operations6457 raises an error when block is not provided6458 when once: true6459 logs only one observation6460 #instrument_once_with_sql6461 with a single query6462 is expected to eq 06463 includes SQL metrics6464 with multiple queries6465 is expected to eq 06466 includes SQL metrics6467 when there are not SQL operations6468 is expected to eq 1236469 does not include SQL metrics6470 #observe6471 records durations of observed operations6472 when once: true6473 records the latest observation6474 logs data as expected6475 #commit6476 when the feature flag is enabled6477 logs to application.json6478 with log conditions6479 does not log when the conditions are false6480 logs when a condition is true6481 with unexistent observations in condition6482 does not commit the log6483 when project is not passed and pipeline is not persisted6484 logs to application.json6485 when the feature flag is disabled6486 does not log6487Ci::StatusHelper6488 #ci_icon_for_status6489 renders to correct svg on success6490 renders the correct svg on failure6491 #ci_text_for_status6492 when status is manual6493 changes the status to blocked6494 when status is success6495 changes the status to passed6496 when status is something else6497 returns status unchanged6498 #pipeline_status_cache_key6499 builds a cache key for pipeline status6500 #render_status_with_link6501 renders a passed status icon6502 has 'Pipeline' as the status type in the title6503 has the success status icon6504 when pipeline has commit path6505 links to commit6506 does not contain a span element6507 has 'Pipeline' as the status type in the title6508 has the correct status icon6509 when different type than pipeline is provided6510 has the provided type in the title6511 when tooltip_placement is provided6512 has the provided tooltip placement6513 when additional CSS classes are provided6514 has appended extra class to icon classes6515 when container is provided6516 has the provided container in data6517 when icon_size is provided6518 has the svg class to change size6519Gitlab::Database::QueryAnalyzer6520 the hook is enabled by default in specs6521 does process queries and gets normalized SQL6522 does prevent recursive execution6523 #within6524 when it is already initialized6525 does initialize analyzer only once6526 does initialize user analyzer when enabled6527 does initialize user analyzer only once6528 does not initializer user analyzer when disabled6529 when initializer is enabled6530 calls begin! and end!6531 when begin! raises the end! is not called6532 when user analyzers are used6533 calls begin! and end!6534 #process_sql6535 does not analyze query if not enabled6536 does analyze query if enabled6537 does track exception if query cannot be parsed6538 does track exception if analyzer raises exception on enabled?6539 does track exception if analyzer raises exception on analyze6540 does call analyze only on enabled initializers6541 does not call analyze on suppressed analyzers6542 does call analyze on suppressed analyzers if some queries require tracking6543Ci::Catalog::Resource6544 # order random6545 is expected to belong to project required: false6546 is expected to delegate #description to the #project object6547 is expected to have many versions class_name => Ci::Catalog::Resources::Version6548 is expected to delegate #avatar_path to the #project object6549 is expected to delegate #forks_count to the #project object6550 is expected to define :state as an enum backed by an integer with values ‹{draft: 0, published: 1}›6551 is expected to delegate #star_count to the #project object6552 is expected to delegate #name to the #project object6553 #versions6554 returns releases ordered by released date descending6555 .order_by_name_desc6556 returns catalog resources sorted by descending name6557 .order_by_name_asc6558 returns catalog resources sorted by ascending name6559 .for_projects6560 returns catalog resources for the given project IDs6561 #state6562 defaults to draft6563 .order_by_created_at_desc6564 returns catalog resources sorted by descending created at6565 #latest_version6566 returns the latest release6567IssueAssignee6568 associations6569 is expected to belong to issue class_name => Issue required: false6570 is expected to belong to assignee class_name => User required: false6571 validations6572 is expected to validate that :assignee is case-sensitively unique within the scope of :issue_id6573 scopes6574 in_projects6575 returns issue assignees for given project6576 on_issues6577 returns issue assignees for given issues6578Gitlab::Database::AsyncIndexes::PostgresAsyncIndex6579 is expected to be a kind of Gitlab::Database::SharedModel(abstract)6580 validations6581 is expected to validate that :name cannot be empty/falsy6582 is expected to validate that the length of :name is at most 636583 is expected to validate that :table_name cannot be empty/falsy6584 is expected to validate that the length of :table_name is at most 1276585 is expected to validate that :definition cannot be empty/falsy6586 is expected to validate that the length of :definition is at most 20486587 is expected to validate that the length of :last_error is at most 100006588 when passing a long schema name6589 behaves like table_name is invalid6590 is invalid6591 when passing a long table name6592 behaves like table_name is invalid6593 is invalid6594 when passing a long table name and schema name6595 behaves like table_name is invalid6596 is invalid6597 when invalid table name is given6598 behaves like table_name is invalid6599 is invalid6600 when passing a definition with beginning or trailing whitespace6601 strips the definition field6602 scopes6603 .to_create6604 is expected to contain exactly #<Gitlab::Database::AsyncIndexes::PostgresAsyncIndex id: 19, created_at: "2023-07-27 04:47:33.2798515...nition: "CREATE INDEX users_id_13 ON users (id)", table_name: "users", attempts: 0, last_error: nil>6605 .to_drop6606 is expected to contain exactly #<Gitlab::Database::AsyncIndexes::PostgresAsyncIndex id: 20, created_at: "2023-07-27 04:47:33.2849227...ers_id_14", definition: "DROP INDEX users_id_14", table_name: "users", attempts: 0, last_error: nil>6607 .ordered6608 is expected to contain exactly #<Gitlab::Database::AsyncIndexes::PostgresAsyncIndex id: 20, created_at: "2023-07-27 04:47:33.2849227...ers_id_14", definition: "DROP INDEX users_id_14", table_name: "users", attempts: 0, last_error: nil>6609 #handle_exception!6610 increases the attempts number6611 saves error details6612Gitlab::Git::Blame6613 blaming a file6614 has the right number of lines6615 blaming a range6616 only returns the range6617 ISO-8859 encoding6618 converts to UTF-86619 unknown encoding6620 converts to UTF-86621 renamed file6622 includes the previous path6623Users::UpdateTodoCountCacheService6624 #execute6625 updates the todos_counts for users6626 avoids N+1 queries6627 executes one query per batch of users6628 sets the correct cache expire time6629BulkImports::ExportStatus6630 #started?6631 when export status is started6632 returns true6633 when export status is not started6634 returns false6635 when export status is not present6636 returns false6637 when something goes wrong during export status fetch6638 returns false6639 #failed?6640 when export status is failed6641 returns true6642 when export status is not failed6643 returns false6644 when export status is not present6645 returns false6646 when something goes wrong during export status fetch6647 returns false6648 #empty?6649 when export status is present6650 is expected to eq false6651 when export status is not present6652 returns true6653 when export status is empty6654 returns true6655 when something goes wrong during export status fetch6656 returns false6657 #error6658 returns error message6659 when something goes wrong during export status fetch6660 raises RetryPipelineError6661 when error is not retriable6662 returns exception class as error6663 when error raised is not a network error6664 returns exception class as error6665 batching information6666 #batched?6667 when export is batched6668 returns true6669 when export is not batched6670 returns false6671 when export batch information is missing6672 returns false6673 #batches_count6674 when batches count is present6675 returns batches count6676 when batches count is missing6677 returns 06678 #batch6679 when export is batched6680 when batch number is in range6681 returns batch information6682 when batch number is less than 16683 raises error6684 when export is not batched6685 returns nil6686Pajamas::AvatarComponent6687 avatar shape6688 for a User6689 has a circle shape6690 for a Project6691 has default shape (rect)6692 for a Group6693 has default shape (rect)6694 avatar image6695 when it has an uploaded image6696 uses the avatar_url as image src6697 uses a srcset for higher resolution on retina displays6698 uses lazy loading6699 with size option6700 uses that size as param for image src and srcset6701 when a project or group has no uploaded image6702 uses an identicon with the record's initial6703 when the record has no id6704 uses an identicon with default background color6705 when a user has no uploaded image6706 uses a gravatar6707 options6708 alt6709 with a value6710 uses given value as alt text6711 without a value6712 uses the record's name as alt text6713 class6714 has the correct custom class6715 size6716 has the correct size class6717Gitlab::Ci::Build::Artifacts::Metadata6718 metadata file exists6719 #find_entries! empty string6720 matches correct paths6721 matches metadata for every path6722 return Hashes for each metadata6723 #find_entries! other_artifacts_0.1.2/6724 matches correct paths6725 #find_entries! other_artifacts_0.1.2/another-subdirectory/6726 matches correct paths6727 #find_entries! recursively for other_artifacts_0.1.2/6728 matches correct paths6729 #to_entry6730 is expected to be an instance of Gitlab::Ci::Build::Artifacts::Metadata::Entry6731 #full_version6732 is expected to eq "GitLab Build Artifacts Metadata 0.0.1"6733 #version6734 is expected to eq "0.0.1"6735 #errors6736 is expected to eq {}6737 metadata file does not exist6738 #find_entries!6739 raises error6740 metadata file is invalid6741 #find_entries!6742 raises error6743 generated metadata6744 #find_entries!6745 reads expected number of entries6746Gitlab::Ci::Reports::Security::Scanner6747 #initialize6748 when all params are given6749 initializes an instance6750 when attribute external_id is missing6751 raises an error6752 when attribute name is missing6753 raises an error6754 #key6755 returns external_id6756 #to_hash6757 returns expected hash6758 when vendor is not defined6759 returns expected hash6760 #==6761 when external_id is equal6762 returns true6763 when external_id is different6764 returns false6765 #<=>6766 when the `external_id` of the scanners are different6767 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16768 is expected to eq -16769 scanner_1_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16770 is expected to eq -16771 scanner_1_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: 16772 is expected to eq 16773 scanner_1_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16774 is expected to eq -16775 scanner_1_attributes: {:external_id=>"spotbugs", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16776 is expected to eq -16777 scanner_1_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"unknown", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16778 is expected to eq -16779 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>nil}, expected_comparison_result: 16780 is expected to eq 16781 when the `external_id` of the scanners are equal6782 when the `name` of the scanners are different6783 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"a", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"b", :vendor=>"bar"}, expected_comparison_result: -16784 is expected to eq -16785 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"d", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"c", :vendor=>"bar"}, expected_comparison_result: 16786 is expected to eq 16787 when the `name` of the scanners are equal6788 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 06789 is expected to eq 06790 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, expected_comparison_result: -16791 is expected to eq -16792 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 16793 is expected to eq 16794Identity6795 relations6796 is expected to belong to user required: false6797 fields6798 is expected to respond to #provider6799 is expected to respond to #extern_uid6800 validations6801 with existing user and provider6802 returns false for a duplicate entry6803 returns true when a different provider is used6804 with newly-created user6805 successfully validates even with a nil user_id6806 #is_ldap?6807 returns true if it is a ldap identity6808 returns false if it is not a ldap identity6809 .with_extern_uid6810 LDAP identity6811 finds the identity when the DN is formatted differently6812 any other provider6813 the extern_uid lookup is case insensitive6814 .with_any_extern_uid6815 provider with extern uid6816 finds any extern uids associated with a provider6817 provider with nil extern uid6818 has no results when there are no extern uids6819 no provider6820 has no results when there is no associated provider6821 callbacks6822 before_save6823 normalizes extern uid6824 if extern_uid changes6825 if current_uid is nil6826 if extern_uid changed and not nil6827 after_destroy6828 if user synced attributes metadada provider6829 matches the identity provider6830 removes the user synced attributes6831 does not matche the identity provider6832 does not remove the user synced attributes6833Integrations::Youtrack6834 Validations6835 when integration is active6836 is expected to validate that :project_url cannot be empty/falsy6837 is expected to validate that :issues_url cannot be empty/falsy6838 behaves like issue tracker integration URL attribute6839 is expected to allow :project_url to be ‹"https://example.com"›6840 is expected not to allow :project_url to be ‹"example.com"›6841 is expected not to allow :project_url to be ‹"ftp://example.com"›6842 is expected not to allow :project_url to be ‹"herp-and-derp"›6843 behaves like issue tracker integration URL attribute6844 is expected to allow :issues_url to be ‹"https://example.com"›6845 is expected not to allow :issues_url to be ‹"example.com"›6846 is expected not to allow :issues_url to be ‹"ftp://example.com"›6847 is expected not to allow :issues_url to be ‹"herp-and-derp"›6848 when integration is inactive6849 is expected not to validate that :project_url cannot be empty/falsy6850 is expected not to validate that :issues_url cannot be empty/falsy6851 #reference_pattern6852 does allow project prefix on the reference6853 allows lowercase project key on the reference6854 behaves like allows project key on reference pattern6855 allows underscores in the project name6856 allows numbers in the project name6857 requires the project name to begin with A-Z6858 does not allow issue number to finish with a letter6859 #fields6860 only returns the project_url and issues_url fields6861RuboCop::Cop::Lint::LastKeywordArgument6862 # order random6863 deprecation files does exist6864 registers an offense for last keyword warning6865 does not register an offense for other warning types6866 registers an offense for the new method call6867 registers an offense and corrects by converting hash to kwarg6868 registers an offense on the last non-block argument6869 does not register an offense if the only argument is a block argument6870 registers an offense and corrects by converting splat to double splat6871 does not register an offense if already a kwarg6872 does not register an offense if the method name does not match6873 does not register an offense if the line number does not match6874 does not register an offense if the filename does not match6875 with Ruby 3.06876 does not register an offense with known warning6877 deprecation files does not exist6878 does not register an offense6879Gitlab::Changelog::Committer6880 #commit6881 when the release isn't in the changelog6882 commits the changes6883 when the release is already in the changelog6884 doesn't commit the changes6885 when committing the changes fails6886 retries the operation6887 when the changelog changes before saving the changes6888 raises a Error6889Ml::ExperimentTracking::ExperimentRepository6890 # order random6891 #all6892 fetches experiments for project6893 #create!6894 creates the experiment6895 when name exists6896 throws error6897 when has tags6898 creates the experiment with tag6899 when name is missing6900 throws error6901 #by_iid_or_name6902 when iid passed6903 fetches the experiment6904 and name passed6905 ignores the name6906 and does not exist6907 is expected to eq nil6908 when iid is not passed and name is passed6909 when name exists6910 fetches the experiment6911 when name does not exist6912 is expected to eq nil6913 #add_tag!6914 adds a new tag6915 when name missing6916 throws RecordInvalid6917 when tag was already added6918 throws RecordInvalid6919Metrics::Dashboard::ClusterMetricsEmbedService6920 .valid_params?6921 is expected to be truthy6922 returns false with missing param6923 returns false with missing param6924 returns false with missing param6925 returns false with missing param6926 returns false with missing param6927 missing all params6928 is expected to be falsy6929 #get_dashboard6930 returns one panel6931 returns panel by title and y_label6932 behaves like valid embedded dashboard service response6933 behaves like valid dashboard service response for schema6934 returns a json representation of the dashboard6935 behaves like caches the unprocessed dashboard for subsequent calls6936 is expected to receive load_raw!(*(any args)) 1 time6937Gitlab::SafeRequestLoader6938 .execute6939 gets data from the store and returns it6940 #execute6941 without a block6942 raises an error6943 when a resource_id is nil6944 contains resource_data with nil key6945 with SafeRequestStore considerations6946 when request store is active6947 gets data from the store6948 with already loaded resource_ids6949 does not re-fetch data if resource_id already exists6950 with mixture of new and existing resource_ids6951 when block does not filter for only the missing resource_ids6952 overwrites existing keyed data with results from the block6953 when passing the missing resource_ids to a block that filters for them6954 only updates resource_data with keyed items that did not exist6955 with default_value for resource_ids that did not exist in the results6956 when default_value is provided6957 populates a default value6958 when default_value is not provided6959 populates a default_value of nil6960 when request store is not active6961 has no data added from the store6962 with mixture of new and existing resource_ids6963 when block does not filter out existing resource_data keys6964 overwrites existing keyed data with results from the block6965 when passing the missing resource_ids to a block that filters for them6966 only updates resource_data with keyed items that did not exist6967 with default_value for resource_ids that did not exist in the results6968 when default_value is provided6969 populates a default value6970 when default_value is not provided6971 populates a default_value of nil6972Featurable6973 .set_available_features6974 is expected to contain exactly :feature1, :feature2, and :feature36975 #*_enabled?6976 is expected to be falsey6977 is expected to be truthy6978 .quoted_access_level_column6979 returns the table name and quoted column name for a feature6980 .access_level_attribute6981 is expected to eq :feature1_access_level6982 raises error for unspecified feature6983 #access_level6984 returns access level6985 #feature_available?6986 when features are disabled6987 returns false6988 when features are enabled only for team members6989 when user is not present6990 returns false6991 when user can read all resources6992 returns true6993 when user cannot read all resources6994 raises NotImplementedError exception6995 when feature is enabled for everyone6996 returns true6997Gitlab::Database::Reindexing::IndexSelection6998 orders by highest relative bloat first6999 excludes indexes with a relative bloat level below 20%7000 excludes indexes smaller than 1 GiB ondisk size7001 includes indexes larger than 100 GiB ondisk size7002 with time frozen7003 does not return indexes with reindex action in the last 10 days7004 with restricted tables7005 when executed on Fridays7006 is expected not to include #<Gitlab::Database::PostgresIndex identifier: "public.some_index_74", indexrelid: 74, schema: "public...efinition: "CREATE INDEX public.some_index_74 ON ci_builds (ba...", ondisk_size_bytes: 107374182400>7007 when executed on Saturdays7008 is expected to include #<Gitlab::Database::PostgresIndex identifier: "public.some_index_85", indexrelid: 85, schema: "public...efinition: "CREATE INDEX public.some_index_85 ON ci_builds (ba...", ondisk_size_bytes: 107374182400>7009 when executed on Sundays7010 is expected not to include #<Gitlab::Database::PostgresIndex identifier: "public.some_index_96", indexrelid: 96, schema: "public...efinition: "CREATE INDEX public.some_index_96 ON ci_builds (ba...", ondisk_size_bytes: 107374182400>7011 when executed on Mondays7012 is expected not to include #<Gitlab::Database::PostgresIndex identifier: "public.some_index_107", indexrelid: 107, schema: "publ...efinition: "CREATE INDEX public.some_index_107 ON ci_builds (b...", ondisk_size_bytes: 107374182400>7013API::Entities::WikiPage7014 returns the proper encoding for the wiki page content7015 returns the raw wiki page content7016 when render_html param is passed7017 when it is true7018 returns the wiki page content rendered7019 includes the wiki page version in the render context7020 when page is an Ascii document7021 renders the page without errors7022 when content contains a reference7023 expands the reference in the content7024 when it is false7025 returns the raw wiki page content7026UpdateHighestRoleWorker7027 #perform7028 when user is not found7029 does not update or deletes any highest role7030 when user is found7031 when user is active and not internal7032 when user highest role exists7033 updates the highest role for the user7034 when user highest role does not exist7035 creates the highest role for the user7036 when user is either inactive or internal7037 additional_attributes: {:state=>"blocked"}7038 deletes highest role7039 additional_attributes: {:user_type=>:alert_bot}7040 deletes highest role7041 when user highest role does not exist7042 does not delete a highest role7043projects/issues/service_desk/_service_desk_info_content7044 when service desk is disabled7045 when the logged user is at least maintainer7046 shows the info including the project settings link7047 when the logged user is at only a developer7048 shows the info without the project settings link7049 when service desk is enabled7050 when the logged user is at least reporter7051 shows the info including the email address7052 when the logged user is at only a guest7053 shows the info without the email address7054 when user is not logged in7055 shows the info without the email address7056Mutations::AlertManagement::PrometheusIntegration::Create7057 is expected to require graphql authorizations :admin_project7058 #resolve7059 user has access to project7060 when Prometheus Integration already exists7061 returns errors7062 when api_url is nil7063 creates the integration7064 when UpdateService responds with success7065 returns the integration with no errors7066 creates a corresponding token7067 when UpdateService responds with an error7068 returns errors7069 when resource is not accessible to the user7070 raises an error if the resource is not accessible to the user7071Sidebars::UserSettings::Menus::AccessTokensMenu7072 # order random7073 #render?7074 when personal access tokens are disabled7075 when user is logged in7076 does not render7077 when user is not logged in7078 does not render7079 when personal access tokens are enabled7080 when user is logged in7081 renders7082 when user is not logged in7083 does not render7084 behaves like User settings menu7085 does not contain any sub menu7086 renders the correct link7087 renders the correct title7088 renders the correct icon7089 defines correct active route7090API::Helpers::MergeRequestsHelpers7091 #handle_merge_request_errors!7092 when merge request is valid7093 returns nil7094 when merge request is invalid7095 responds to a project_access error with unprocessable_entity7096 responds to a branch_conflict error with unprocessable_entity7097 responds to a validate_fork error with unprocessable_entity7098 responds to a base error with unprocessable_entity7099 responds to a validate_branches error with conflict7100 responds with bad request7101Gitlab::ZoomLinkExtractor7102 #links7103 text: "issue text https://zoom.us/j/123 and https://zoom.us/s/1123433", links: ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]7104 is expected to eq ["https://zoom.us/j/123", "https://zoom.us/s/1123433"]7105 text: "https://zoom.us/j/1123433 issue text", links: ["https://zoom.us/j/1123433"]7106 is expected to eq ["https://zoom.us/j/1123433"]7107 text: "issue https://zoom.us/my/1123433 text", links: ["https://zoom.us/my/1123433"]7108 is expected to eq ["https://zoom.us/my/1123433"]7109 text: "issue https://gitlab.com and https://gitlab.zoom.us/s/1123433", links: ["https://gitlab.zoom.us/s/1123433"]7110 is expected to eq ["https://gitlab.zoom.us/s/1123433"]7111 text: "https://gitlab.zoom.us/j/1123433", links: ["https://gitlab.zoom.us/j/1123433"]7112 is expected to eq ["https://gitlab.zoom.us/j/1123433"]7113 text: "https://gitlab.zoom.us/my/1123433", links: ["https://gitlab.zoom.us/my/1123433"]7114 is expected to eq ["https://gitlab.zoom.us/my/1123433"]7115 #match?7116 is true when a zoom link found7117 is false when no zoom link found7118Gitlab::Ci::Interpolation::Template7119 # order random7120 interpolates the values properly7121 collects interpolation blocks7122 when template is too large7123 returns an error7124 when template consists of nested arrays with hashes and values7125 performs a valid interpolation7126 when template contains symbols that need interpolation7127 performs a valid interpolation7128 when interpolation can not be performed7129 does not interpolate the config7130 when there are too many interpolation blocks7131 returns an error7132NoteDiffFile7133 associations7134 is expected to belong to diff_note required: false7135 validations7136 is expected to validate that :diff_note cannot be empty/falsy7137 .referencing_sha7138 finds note diff files by project and sha7139 excludes note diff files with the wrong project7140 excludes note diff files with the wrong sha7141Tooling::Danger::SidekiqArgs7142 # order random7143 #add_comment_for_matched_line7144 when args are changed7145 adds suggestion at the correct lines7146 when args are not changed7147 does not add suggestion7148 #changed_worker_files7149 returns added, modified, and renamed_after files by default7150 with include_ee: :exclude7151 returns spec files without EE-specific files7152 with include_ee: :only7153 returns EE-specific spec files only7154 #args_changed?7155 before: " - def perform", after: " + def perform(abc)", result: true7156 returns correct result7157 before: " - def perform", after: " + def perform(abc)", result: true7158 returns correct result7159 before: " - def perform(abc)", after: " + def perform(def)", result: true7160 returns correct result7161 before: " - def perform(abc, def)", after: " + def perform(abc)", result: true7162 returns correct result7163 before: " - def perform(abc, def)", after: " + def perform(def, abc)", result: true7164 returns correct result7165 before: " - def perform", after: " - def perform", result: false7166 returns correct result7167 before: " + def perform", after: " + def perform", result: false7168 returns correct result7169 before: " - def perform(abc)", after: " - def perform(abc)", result: false7170 returns correct result7171 before: " + def perform(abc)", after: " + def perform(abc)", result: false7172 returns correct result7173 before: " - def perform(abc)", after: " + def perform_foo(abc)", result: false7174 returns correct result7175Packages::Composer::VersionParserService7176 #execute7177 tagname: nil, branchname: "master", expected_version: "dev-master"7178 is expected to eq "dev-master"7179 tagname: nil, branchname: "my-feature", expected_version: "dev-my-feature"7180 is expected to eq "dev-my-feature"7181 tagname: nil, branchname: "12-feature", expected_version: "dev-12-feature"7182 is expected to eq "dev-12-feature"7183 tagname: nil, branchname: "v1", expected_version: "1.x-dev"7184 is expected to eq "1.x-dev"7185 tagname: nil, branchname: "v1.x", expected_version: "1.x-dev"7186 is expected to eq "1.x-dev"7187 tagname: nil, branchname: "v1.7.x", expected_version: "1.7.x-dev"7188 is expected to eq "1.7.x-dev"7189 tagname: nil, branchname: "v1.7", expected_version: "1.7.x-dev"7190 is expected to eq "1.7.x-dev"7191 tagname: nil, branchname: "1.7.x", expected_version: "1.7.x-dev"7192 is expected to eq "1.7.x-dev"7193 tagname: "v1.0.0", branchname: nil, expected_version: "1.0.0"7194 is expected to eq "1.0.0"7195 tagname: "v1.0", branchname: nil, expected_version: "1.0"7196 is expected to eq "1.0"7197 tagname: "v1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"7198 is expected to eq "1.0.1+meta"7199 tagname: "1.0", branchname: nil, expected_version: "1.0"7200 is expected to eq "1.0"7201 tagname: "1.0.2", branchname: nil, expected_version: "1.0.2"7202 is expected to eq "1.0.2"7203 tagname: "1.0.2-beta2", branchname: nil, expected_version: "1.0.2-beta2"7204 is expected to eq "1.0.2-beta2"7205 tagname: "1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"7206 is expected to eq "1.0.1+meta"7207BulkImports::RelationExportWorker7208 #perform7209 is labeled as idempotent7210 performs multiple times sequentially without raising an exception7211 when export record does not exist7212 creates export record7213 when export is batched7214 when relation is batchable7215 executes export service7216 when relation is not batchable7217 executes export service7218 when export is not batched7219 executes export service7220Gitlab::Metrics::Samplers::ThreadsSampler7221 behaves like metrics sampler7222 when sampling interval is passed explicitly7223 is expected to eq 427224 when sampling interval is passed through the environment7225 is expected to eq 427226 when no sampling interval is passed anywhere7227 uses the hardcoded default7228 #start7229 calls the sample method on the sampler thread7230 with warmup set to true7231 calls the sample method first on the caller thread7232 #safe_sample7233 calls #sample once7234 when sampling fails with error7235 recovers from errors7236 with logger7237 logs errors7238 #sample7239 sets the gauge for the concurrency total7240 thread counts7241 reports if any of the threads per group uses the db7242 thread names7243 thread_names: [nil], expected_names: ["unnamed"]7244 is expected to receive set({:thread_name=>"unnamed", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7245 thread_names: ["puma threadpool 1", "puma threadpool 001", "puma threadpool 002"], expected_names: ["puma threadpool"]7246 is expected to receive set({:thread_name=>"puma threadpool", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7247 thread_names: ["sidekiq_worker_thread"], expected_names: ["sidekiq_worker_thread"]7248 is expected to receive set({:thread_name=>"sidekiq_worker_thread", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7249 thread_names: ["some_sampler", "some_exporter"], expected_names: ["some_sampler", "some_exporter"]7250 is expected to receive set({:thread_name=>"some_exporter", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7251 thread_names: ["unknown", "thing"], expected_names: ["unrecognized"]7252 is expected to receive set({:thread_name=>"unrecognized", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7253Packages::CreatePackageFileService7254 #execute7255 with valid params7256 creates a new package file7257 behaves like assigns build to package file7258 with build info7259 assigns the pipeline to the package7260 creates a new PackageFileBuildInfo record7261 file is missing7262 raises an error7263ServiceDesk::CustomEmailVerifications::CreateService7264 # order random7265 #execute7266 behaves like a verification process that exits early7267 aborts verification process and exits early7268 when feature flag :service_desk_custom_email is disabled7269 behaves like a verification process that exits early7270 aborts verification process and exits early7271 when service desk setting exists7272 aborts verification process and exits early7273 when user has maintainer role in project7274 initiates verification process successfully7275 when providing invalid SMTP credentials7276 behaves like a verification process with ramp up error7277 aborts verification process7278 behaves like a verification process with ramp up error7279 aborts verification process7280 behaves like a verification process with ramp up error7281 aborts verification process7282Packages::Go::Module7283 #path_valid?7284 with root path7285 with major version 07286 returns true7287 with major version 17288 returns true7289 with major version 27290 returns false7291 with path ./v27292 with major version 07293 returns false7294 with major version 17295 returns false7296 with major version 27297 returns true7298 #gomod_valid?7299 with good gomod7300 returns true7301 with bad gomod7302 returns false7303 with empty gomod7304 returns false7305Gitlab::GithubGistsImport::StartImportWorker7306 # order random7307 .sidekiq_retries_exhausted7308 sets status to failed7309 #perform7310 when import was successfull7311 imports all the gists7312 when importer returns an error7313 raises an error7314 when rate limit is reached7315 reschedules worker7316Gitlab::GitPostReceive7317 #includes_branches?7318 with no branches7319 returns false7320 with branches7321 returns true7322 with malformed changes7323 returns false7324 #includes_tags?7325 with no tags7326 returns false7327 with tags7328 returns true7329 with malformed changes7330 returns false7331 #includes_default_branch?7332 with no default branch7333 returns false7334 with a project with no default branch7335 returns true7336 with default branch7337 returns true7338Ci::CreatePipelineService7339 # order random7340 when project has not exceeded the active jobs limit7341 creates the pipeline successfully7342 when project has exceeded the active jobs limit7343 fails the pipeline before populating it7344Users::MigrateRecordsToGhostUserInBatchesService7345 # order random7346 #execute7347 stops when execution time limit reached7348 calls Users::MigrateRecordsToGhostUserService7349 process jobs ordered by the consume_after timestamp7350 reschedules job in case of an error7351Packages::Debian::FileEntry7352 validations7353 is expected to be valid7354 #filename7355 is expected to validate that :filename cannot be empty/falsy7356 is expected not to allow :filename to be ‹"Hé"›7357 #size7358 is expected to validate that :size cannot be empty/falsy7359 #md5sum7360 is expected to validate that :md5sum cannot be empty/falsy7361 is expected not to allow :md5sum to be ‹"12345678901234567890123456789012"›, producing a custom validation error on failure7362 #section7363 is expected to validate that :section cannot be empty/falsy7364 #priority7365 is expected to validate that :priority cannot be empty/falsy7366 #sha1sum7367 is expected to validate that :sha1sum cannot be empty/falsy7368 is expected not to allow :sha1sum to be ‹"1234567890123456789012345678901234567890"›, producing a custom validation error on failure7369 #sha256sum7370 is expected to validate that :sha256sum cannot be empty/falsy7371 is expected not to allow :sha256sum to be ‹"1234567890123456789012345678901234567890123456789012345678901234"›, producing a custom validation error on failure7372 #package_file7373 is expected to validate that :package_file cannot be empty/falsy7374 #component7375 without section7376 is expected to eq "main"7377 with empty section7378 is expected to eq "main"7379 with ruby section7380 is expected to eq "main"7381 with contrib/ruby section7382 is expected to eq "contrib"7383Gitlab::Ci::Status::Build::Action7384 #label7385 when status has action7386 does not append text7387 when status does not have action7388 appends text about action not allowed7389 .matches?7390 when build is playable action7391 is a correct match7392 when build is not playable action7393 does not match7394 #badge_tooltip7395 returns the status7396Projects::ScheduleBulkRepositoryShardMovesWorker7397 behaves like schedules bulk repository shard moves7398 #perform7399 is labeled as idempotent7400 performs multiple times sequentially without raising an exception7401 schedules container repository storage moves7402ApplicationCable::Connection7403 when session cookie is set7404 when user is logged in7405 sets current_user7406 with a stale password7407 sets current_user to nil7408 when user is not logged in7409 sets current_user to nil7410 when session cookie is not set7411 sets current_user to nil7412 when session cookie is an empty string7413 sets current_user to nil7414ProtectedBranchAccessPolicy7415 # order random7416 as maintainers7417 can be read7418 as guests7419 can not be read7420Tooling::Mappings::JsToSystemSpecsMappings7421 # order random7422 #filter_files7423 when no files were changed7424 returns an empty array7425 when JS files were changed7426 returns the path to the JS files7427 when JS files are deleted7428 returns an empty array7429 #execute7430 when no JS files were changed7431 does not change the output file7432 when some JS files were changed7433 when the JS files are not present on disk7434 does not change the output file7435 when the JS files are present on disk7436 when no system specs match the JS keyword7437 does not change the output file7438 when a system spec matches the JS keyword7439 adds the new specs to the output file7440 #system_specs_for_edition7441 when a file is not a ruby spec7442 does not return that file7443 when a file is a ruby spec7444 returns that file7445 when FOSS7446 checks the correct folder7447 when EE7448 checks the correct folder7449 when JiHu7450 checks the correct folder7451 #construct_js_keywords7452 returns a singularized keyword based on the first folder the file is in7453 when the files are under the pages folder7454 captures the second folder7455Ci::GenerateKubeconfigService7456 #execute7457 returns a Kubeconfig Template7458 adds a cluster7459 filters the pipeline's agents by `nil` environment7460 adds user and context for all eligible agents7461 when environment is specified7462 filters the pipeline's agents by the specified environment7463Gitlab::HookData::IssueBuilder7464 #build7465 includes safe attribute7466 includes additional attrs7467 when the issue has an image in the description7468 sets the image to use an absolute URL7469 for incident7470 includes additional attr7471Gitlab::Import::ImportFailureService7472 .track7473 with all arguments provided7474 invokes a new instance and executes7475 with only necessary arguments utilizing defaults7476 invokes a new instance and executes7477 #execute7478 when tracking metrics7479 tracks the failed import7480 when using the project as reference7481 when it fails the import7482 behaves like logs the exception and fails the import7483 when the failure does not abort the import7484 when it does not fail the import7485 behaves like logs the exception and does not fail the import7486 when the failure does not abort the import7487 when using the import_state as reference7488 when it fails the import7489 behaves like logs the exception and fails the import7490 when the failure does not abort the import7491 when it does not fail the import7492 behaves like logs the exception and does not fail the import7493 when the failure does not abort the import7494BulkImports::Pipeline::ExtractedData7495 #has_next_page?7496 when next page is present7497 returns true7498 when next page is not present7499 returns false7500 #next_page7501 returns next page cursor information7502 #each7503 when block is present7504 yields each data item7505 when block is not present7506 returns enumerator7507CustomEmoji7508 Associations7509 is expected to belong to namespace required: false inverse_of => custom_emoji7510 is expected to belong to creator required: false inverse_of => created_custom_emoji7511 is expected to have db column named file7512 is expected to validate that :creator cannot be empty/falsy7513 is expected to validate that the length of :name is at most 367514 is expected to validate that :name cannot be empty/falsy7515 is expected to have db column named external7516 exclusion of duplicated emoji7517 disallows emoji names of built-in emoji7518 disallows very long invalid emoji name without regular expression backtracking issues7519 disallows duplicate custom emoji names within namespace7520 disallows non http and https file value7521Gitlab::Template::GitlabCiYmlTemplate7522 .all7523 combines the globals and rest7524 does not include Browser-Performance template in FOSS7525 #content7526 loads the full file7527 behaves like file template shared examples7528 .all7529 strips the .gitlab-ci.yml suffix7530 ensures that the template name is used exactly once7531 .by_category7532 returns sorted results7533 .find7534 returns nil if the file does not exist7535 returns the corresponding object of a valid file7536 #<=>7537 sorts lexicographically7538Gitlab::Ci::Config::Entry::Trigger::Forward7539 when entry config is correct7540 returns set values7541 is expected to be valid7542 when entry config value is empty7543 returns empty7544 is expected to be valid7545 when entry value is not correct7546 invalid attribute7547 is expected not to be valid7548 reports error7549 non-boolean value7550 is expected not to be valid7551 reports error7552Resolvers::ErrorTracking::SentryErrorsResolver7553 is expected to have nullable GraphQL type SentryErrorConnection7554 #resolve7555 with insufficient user permission7556 returns nil7557 with sufficient permission7558 when after arg given7559 gives the cursor arg7560 when no issues fetched7561 returns nil7562 when issues returned7563 sets the issues7564 sets the pagination variables7565 returns an externally paginated array7566Members::ExpiringEmailNotificationWorker7567 # order random7568 #perform7569 with not notified member7570 notify member7571 with notified member7572 not notify member7573 when feature member_expiring_email_notification is disabled7574 not notify member7575Gitlab::Metrics::Dashboard::Stages::PanelIdsInserter7576 #transform!7577 when dashboard panels are present7578 assigns unique ids to each panel using PerformanceMonitoring::PrometheusPanel7579 when dashboard panels has duplicated ids7580 no panel has assigned id7581 when there are no panels in the dashboard7582 raises a processing error7583 when there are no panel_groups in the dashboard7584 raises a processing error7585 when dashboard panels has unknown schema attributes7586 no panel has assigned id7587 logs the failure7588gitlab:x509 namespace rake task7589 update_signatures7590 changes from unverified to verified if the certificate store contains the root certificate7591 returns if no signature is available7592ContainerRegistry::Registry7593 is expected to respond to #client7594 is expected to respond to #uri7595 is expected to respond to #path7596 is expected not to be nil7597 #path7598 path from URL7599 is expected to eq "example.com"7600 custom path7601 is expected to eq "registry.example.com"7602 #gitlab_api_client7603 returns a GitLabApiClient with an import token7604Security::CiConfiguration::SastParserService7605 #configuration7606 parses the configuration for SAST7607 while populating current values of the entities7608 when .gitlab-ci.yml is present7609 populates the current values from the file7610 SAST_EXCLUDED_ANALYZERS is set7611 enables analyzers correctly7612 when .gitlab-ci.yml is absent7613 populates the current values with the default values7614 when .gitlab-ci.yml does not include the sast job7615 populates the current values with the default values7616Gitlab::Config::Entry::Attributable7617 when config is a hash7618 returns the value of config7619 returns no method error for unknown attributes7620 and is provided a prefix7621 returns the value of config7622 when config is not a hash7623 returns nil7624 when method is already defined in a superclass7625 raises an error7626ApplicationSetting::TermPolicy7627 has the correct permissions7628 for anonymous users7629 has the correct permissions7630 when the terms are not current7631 has the correct permissions7632 when the user already accepted the terms7633 has the correct permissions7634Resolvers::Ci::RunnerSetupResolver7635 #resolve7636 with container platforms7637 returns install instructions7638 does not return register instructions7639 with regular platforms7640 returns install and register instructions7641Database::CiNamespaceMirrorsConsistencyCheckWorker7642 #perform7643 executes the consistency check on namespaces7644 logs should contain the detailed mismatches7645 reports the differences to the logs7646 calls the consistency_fix_service to fix the inconsistencies7647Evidences::ReleaseEntity7648 exposes the expected fields7649 when the release has milestones7650 exposes these milestones7651 when the release has no milestone7652 exposes an empty array for milestones7653Banzai::ReferenceParser::MentionedUserParser7654 #gather_references7655 when the link has a data-group attribute7656 using an existing group ID7657 returns empty list of users7658 when the link has a data-project attribute7659 using an existing project ID7660 returns empty list of users7661 when the link has a data-user attribute7662 returns an Array of users7663Gitlab::Config::Entry::Unspecified7664 #valid?7665 delegates method to entry7666 #errors7667 delegates method to entry7668 #value7669 delegates method to entry7670 #specified?7671 is always false7672Ci::EnsureStageService#execute7673 when build has a stage assigned7674 does not create a new stage7675 when build does not have a stage assigned7676 creates a new stage7677 when build is invalid7678 does not create a new stage7679 when new stage can not be created because of an exception7680 retries up to two times7681Packages::ErrorHandling7682 # order random7683 #process_package_file_error7684 logs the error with the correct parameters7685 with controlled exception ArgumentError7686 behaves like updates the package status and status message7687 aggregate_failures7688 with controlled exception ActiveRecord::RecordInvalid7689 behaves like updates the package status and status message7690 aggregate_failures7691 with controlled exception Packages::Helm::ExtractFileMetadataService::ExtractionError7692 behaves like updates the package status and status message7693 aggregate_failures7694 with controlled exception Packages::Nuget::ExtractMetadataFileService::ExtractionError7695 behaves like updates the package status and status message7696 aggregate_failures7697 with controlled exception Packages::Nuget::UpdatePackageFromMetadataService::InvalidMetadataError7698 behaves like updates the package status and status message7699 aggregate_failures7700 with controlled exception Packages::Nuget::UpdatePackageFromMetadataService::ZipError7701 behaves like updates the package status and status message7702 aggregate_failures7703 with controlled exception Packages::Rubygems::ProcessGemService::ExtractionError7704 behaves like updates the package status and status message7705 aggregate_failures7706 with controlled exception Packages::Rubygems::ProcessGemService::InvalidMetadataError7707 behaves like updates the package status and status message7708 aggregate_failures7709 with all other errors7710 behaves like updates the package status and status message7711 aggregate_failures7712 with a very long error message7713 truncates the error message7714ObjectStorage::FogHelpers7715 # order random7716 #available?7717 when object storage is enabled7718 is expected to eq true7719 when object storage is disabled7720 is expected to eq false7721 when implementing class did not define storage_location_identifier7722 raises an error7723Resolvers::GroupResolver7724 #resolve7725 batch-resolves groups by full path7726 resolves an unknown full_path to nil7727 treats group full path as case insensitive7728WikiPages::EventCreateService7729 #execute7730 returns a successful response7731 creates a wiki page event7732 returns an event in the payload7733 records the slug for the page7734 the user is nil7735 raises an error on construction7736 the action is illegal7737 returns an error7738 does not create an event7739 the action is a deletion7740 does not synchronize the wiki metadata timestamps with the git commit7741RemoveUnacceptedMemberInvitesWorker7742 #perform7743 unaccepted members7744 removes unaccepted members7745 invited members still within expiration threshold7746 leaves invited members7747 accepted members7748 leaves accepted members7749Tooling::Danger::BulkDatabaseActions7750 # order random7751 #add_comment_for_bulk_database_action_method_usage7752 when file is a non-spec Ruby file7753 method_call: "update_all(revoked: true)", expect_comment?: true7754 correctly handles potential bulk database action7755 method_call: "destroy_all", expect_comment?: true7756 correctly handles potential bulk database action7757 method_call: "delete_all", expect_comment?: true7758 correctly handles potential bulk database action7759 method_call: "update(revoked: true)", expect_comment?: true7760 correctly handles potential bulk database action7761 method_call: "delete", expect_comment?: true7762 correctly handles potential bulk database action7763 method_call: "update_two_factor", expect_comment?: false7764 correctly handles potential bulk database action7765 method_call: "delete_keys(key)", expect_comment?: false7766 correctly handles potential bulk database action7767 method_call: "destroy_hook(hook)", expect_comment?: false7768 correctly handles potential bulk database action7769 method_call: "destroy_all_merged", expect_comment?: false7770 correctly handles potential bulk database action7771 method_call: "update_all_mirrors", expect_comment?: false7772 correctly handles potential bulk database action7773 for spec directories7774 for FOSS spec file7775 behaves like no Danger comment7776 does not comment on the bulk update action usage7777 for EE spec file7778 behaves like no Danger comment7779 does not comment on the bulk update action usage7780 for JiHu spec file7781 behaves like no Danger comment7782 does not comment on the bulk update action usage7783Rails YAML safe load7784 # order random7785 with default permitted classes7786 deserializes data7787 with unpermitted classes7788 throws an exception7789Packages::CleanupArtifactWorker7790 #model7791 is expected to raise NotImplementedError7792 #log_metadata7793 is expected to raise NotImplementedError7794 #log_cleanup_item7795 is expected to raise NotImplementedError7796Gitlab::Chat::Responder7797 .responder_for7798 using a regular build7799 returns nil7800 using a chat build7801 when response_url starts with 'https://hooks.slack.com/'7802 is expected to be an instance of Gitlab::Chat::Responder::Slack7803 when response_url does not start with 'https://hooks.slack.com/'7804 is expected to be an instance of Gitlab::Chat::Responder::Mattermost7805BulkImports::Common::Extractors::NdjsonExtractor7806 #extract7807 returns ExtractedData7808 #remove_tmpdir7809 removes tmp dir7810Gitlab::Email::Hook::DisableEmailInterceptor7811 does not send emails7812Gitlab::GithubImport::Importer::LfsObjectImporter7813 #execute7814 calls the LfsDownloadService with the lfs object attributes7815Gitlab::UsageData::Topology7816 #topology_usage_data7817 can reach a ready Prometheus client7818 behaves like query topology data from Prometheus7819 tracking node metrics7820 contains node level metrics for each instance7821 and some node memory metrics are missing7822 removes the respective entries and includes the failures7823 and services run on the same node but report different instance values7824 normalizes equivalent instance values and maps them to the same node7825 and node metrics are missing but service metrics exist7826 still reports service metrics7827 and unknown services are encountered7828 filters out unknown service data and reports the unknown services as a failure7829 and an error is raised when querying Prometheus7830 without timeout failures7831 returns empty result and executes subsequent queries as usual7832 with timeout failures7833 exception: Errno::ETIMEDOUT7834 returns empty result and cancelled subsequent queries7835 exception: Net::OpenTimeout7836 returns empty result and cancelled subsequent queries7837 exception: Net::ReadTimeout7838 returns empty result and cancelled subsequent queries7839 can not reach a ready Prometheus client7840 behaves like returns empty result with no failures7841 is expected to eq {:duration_s=>0, :failures=>[]}7842 when top-level function raises error7843 returns empty result with generic failure7844Gitlab::GithubImport::Importer::Events::Reopened7845 with Issue7846 behaves like new event7847 creates expected event and state event7848 with MergeRequest7849 behaves like new event7850 creates expected event and state event7851Banzai::Filter::MarkdownEngines::Base7852 # order random7853 raise error if render not implemented7854 turns off sourcepos7855Gitlab::Usage::Metrics::Instrumentations::CountProjectsWithMlExperimentsMetric7856 # order random7857 behaves like a correct instrumented metric value and query7858 behaves like a correct instrumented metric value7859 has correct value7860 behaves like a correct instrumented metric query7861 has correct generate query7862Ci::UpdateLockedUnknownArtifactsWorker7863 #perform7864 executes an instance of Ci::JobArtifacts::UpdateUnknownLockedStatusService7865Preloaders::GroupRootAncestorPreloader7866 when the preloader is used7867 when no additional preloads are provided7868 behaves like executes N matching DB queries7869 executes the specified root_ancestor queries7870 strong_memoizes the correct root_ancestor7871 when additional preloads are provided7872 behaves like executes N matching DB queries7873 executes the specified root_ancestor queries7874 strong_memoizes the correct root_ancestor7875 when the preloader is not used7876 behaves like executes N matching DB queries7877 executes the specified root_ancestor queries7878 strong_memoizes the correct root_ancestor7879ProjectMirrorSerializer7880 represents ProjectMirror entities7881Gitlab::RouteMap7882 #initialize7883 when the data is not YAML7884 raises an error7885 when the data is not a YAML array7886 raises an error7887 when an entry is not a hash7888 raises an error7889 when an entry does not have a source key7890 raises an error7891 when an entry does not have a public key7892 raises an error7893 when an entry source is not a valid regex7894 raises an error7895 when all is good7896 returns a route map7897 #public_path_for_source_path7898 returns the public path for a provided source path7899 malicious regexp7900 takes under a second7901Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker7902 #import7903 imports the issues and diff notes7904 #importers7905 when optional stage single_endpoint_notes_import is enabled7906 includes single endpoint diff notes importer7907 when optional stage single_endpoint_notes_import is disabled7908 includes default diff notes importer7909notify/push_to_merge_request_email.text.haml7910 behaves like renders plain text email correctly7911 renders the email without HTML links7912Gitlab::GithubImport::Importer::PullRequests::ReviewRequestImporter7913 # order random7914 imports merge request reviewers that were found7915CustomerRelations::Contacts::CreateService7916 #execute7917 when user does not have permission7918 returns an error7919 when user has permission7920 creates a contact7921 returns an error when the contact is not persisted7922 returns an error when the organization_id is invalid7923 returns an error when the organization belongs to a different group7924Types::WorkItems::AvailableExportFieldsEnum7925 # order random7926 is expected to eq "AvailableExportFields"7927 enum values7928 field_name: "ID", field_value: "id"7929 exposes correct available fields7930 field_name: "TYPE", field_value: "type"7931 exposes correct available fields7932 field_name: "TITLE", field_value: "title"7933 exposes correct available fields7934 field_name: "DESCRIPTION", field_value: "description"7935 exposes correct available fields7936 field_name: "AUTHOR", field_value: "author"7937 exposes correct available fields7938 field_name: "AUTHOR_USERNAME", field_value: "author username"7939 exposes correct available fields7940 field_name: "CREATED_AT", field_value: "created_at"7941 exposes correct available fields7942Gitlab::GithubImport::Importer::Attachments::IssuesImporter7943 # order random7944 #object_type7945 is expected to eq :issue_attachment7946 #collection_method7947 is expected to eq :issue_attachments7948 #id_for_already_imported_cache7949 is expected to eq 12357950 #sidekiq_worker_class7951 is expected to eq Gitlab::GithubImport::Attachments::ImportIssueWorker7952 #sequential_import7953 imports each project issue attachments7954 when issue is already processed7955 doesn't import this issue attachments7956Users::GroupCallout7957 behaves like having unique enum values7958 has unique values in "feature_name"7959 relationships7960 is expected to belong to group required: false7961 validations7962 is expected to validate that :group cannot be empty/falsy7963 is expected to validate that :feature_name cannot be empty/falsy7964 is expected to validate that :feature_name is unique within the scope of :user_id and :group_id7965 #source_feature_name7966 provides string based off source and feature7967FileStoreMounter7968 # order random7969 .mount_file_store_uploader7970 skip_store_file: true, file_field: :file7971 defines instance methods and registers a callback7972 skip_store_file: false, file_field: :file7973 defines instance methods and registers a callback7974 skip_store_file: false, file_field: :signed_file7975 defines instance methods and registers a callback7976 skip_store_file: true, file_field: :signed_file7977 defines instance methods and registers a callback7978 with an unknown file_field7979 is expected to raise ArgumentError with "file_field not allowed: unknown"7980 with an instance7981 #update_file_store7982 calls update column7983 #store_file_now!7984 calls the dynamic functions7985Gitlab::Graphql::BatchKey7986 is equal to keys of the same object, regardless of lookahead or object name7987 delegates attribute lookup methods to the inner object7988 allows the object to be named more meaningfully7989 works as a hash key7990 #requires?7991 returns false if the lookahead was not provided7992 lookahead was provided7993 returns false if the path is empty7994 it selects the field7995 returns true7996 it does not select the field7997 returns false7998Gitlab::ManifestImport::Manifest7999 #valid?8000 valid file8001 is expected to equal true8002 missing or invalid attributes8003 is expected to equal false8004 errors8005 is expected to include "Make sure a <remote> tag is present and is valid."8006 is expected to include "Make sure every <project> tag has name and path attributes."8007 #projects8008 is expected to eq 6608009 is expected to eq "platform/build"8010 is expected to eq "build/make"8011 is expected to eq "https://android-review.googlesource.com/platform/build"8012Users::DismissGroupCalloutService8013 #execute8014 sets the group_id8015 behaves like dismissing user callout8016 creates a new user callout8017 returns a user callout8018 sets the dismissed_at attribute to current time8019 updates an existing callout dismissed_at time8020 does not update an invalid record with dismissed_at time8021Gitlab::Ci::Build::Prerequisite::Factory8022 .for_build8023 prerequisite is unmet8024 is expected to eq [#<InstanceDouble(Gitlab::Ci::Build::Prerequisite::KubernetesNamespace) (anonymous)>]8025 prerequisite is met8026 is expected to be empty8027Gitlab::Cache::JsonCache8028 # order random8029 #write8030 raises an error8031 #read8032 raises an error8033 #fetch8034 raises an error8035 #active?8036 when backend respond to active? method8037 delegates to the underlying cache implementation8038 when backend does not respond to active? method8039 returns true8040 #expire8041 calls delete from the backend on the cache_key8042 raises an error8043Groups::UpdateTwoFactorRequirementForMembersWorker8044 # order random8045 #perform8046 calls #update_two_factor_requirement_for_members8047 is labeled as idempotent8048 performs multiple times sequentially without raising an exception8049 requires 2fa for group members correctly8050 when group not found8051 returns nil8052GroupAccessTokenSerializer8053 #represent8054 can render a single token8055 can render a collection of tokens8056dashboard/projects/index.html.haml8057 shows the project the user is a member of in the list8058 shows the "New project" button8059FromSetOperator8060 when set operator method already exists8061 is expected to raise RuntimeError8062 with members8063 as array8064 is expected not to make queries8065 behaves like set operator called with correct members8066 is expected to receive new([#<ActiveRecord::Relation [#<Group id:3389 @group322>]>, #<ActiveRecord::Relation [#<Group id:3390 @group323>]>], anything) 1 time8067 as multiple parameters8068 is expected not to make queries8069 behaves like set operator called with correct members8070 is expected to receive new([#<ActiveRecord::Relation [#<Group id:3389 @group322>]>, #<ActiveRecord::Relation [#<Group id:3390 @group323>]>], anything) 1 time8071Clusters::Cleanup::ServiceAccountWorker8072 #perform8073 when cluster.cleanup_status is cleanup_removing_service_account8074 calls Clusters::Cleanup::ServiceAccountService8075 when cluster.cleanup_status is not cleanup_removing_service_account8076 does not call Clusters::Cleanup::ServiceAccountService8077PagesDomains::CreateService8078 # order random8079 when the user has the required permissions8080 when it saves the domain successfully8081 creates the domain and publishes a PagesDomainCreatedEvent8082 when it fails to save the domain8083 does not create a pages domain and does not publish a PagesDomainCreatedEvent8084 when the user does not have the required permissions8085 does not create a pages domain and does not publish a PagesDomainCreatedEvent8086GroupLink::ProjectGroupLinkEntity8087 matches json schema8088 when current user has `admin_project_member` permissions8089 exposes `can_update` and `can_remove` as `true`8090 when current user is a group owner8091 exposes `can_remove` as true8092 when current user is not a group owner8093 exposes `can_remove` as false8094Gitlab::Memory::Watchdog::SidekiqEventReporter8095 # order random8096 #strikes_exceeded8097 delegates #strikes_exceeded with correct arguments8098 increment running jobs counter8099 delegations8100 is expected to delegate #started to the #event_reporter object8101 is expected to delegate #stopped to the #event_reporter object8102 is expected to delegate #threshold_violated to the #event_reporter object8103 is expected to delegate #logger to the #event_reporter object8104Types::ContainerRepositoryType8105 is expected to eq "ContainerRepository"8106 is expected to eq "A container repository"8107 is expected to require graphql authorizations :read_container_image8108 is expected to have graphql fields :id, :name, :path, :location, :created_at, :updated_at, :expiration_policy_started_at, :status, :tags_count, :can_delete, :expiration_policy_cleanup_status, :project, :migration_state, and :last_cleanup_deleted_tags_count8109 status field8110 returns status enum8111 expiration_policy_cleanup_status field8112 returns cleanup status enum8113Gitlab::SidekiqSignals8114 .install8115 not a process group leader8116 does nothing8117 as a process group leader8118 installs its own signal handlers for TERM and INT only8119 installs a forwarding signal handler for INT8120 raises if sidekiq no longer traps SIGINT8121 installs a forwarding signal handler for TERM8122 raises if sidekiq no longer traps SIGTERM8123DependencyProxy::CleanupBlobWorker8124 behaves like dependency_proxy_cleanup_worker8125 #perform_work8126 with no work to do8127 is expected to be nil8128 with work to do8129 deletes the oldest artifact pending destruction based on updated_at8130 #max_running_jobs8131 is expected to eq 58132 #remaining_work_count8133 is expected to eq 38134shared/nav/_sidebar.html.haml8135 when sidebar has a scope menu8136 renders the scope menu8137 when sidebar does not have a scope menu8138 when sidebar has a custom scope menu partial defined8139 renders the custom partial8140API::Entities::Ci::JobRequest::Image8141 returns the image name8142 returns the entrypoint8143 returns the ports8144 returns the pull policy8145 when the ports param is nil8146 does not return the ports8147Ci::Queue::PendingBuildsStrategy8148 # order random8149 builds_for_group_runner8150 returns builds ordered by build ID8151WorkItems::PrepareImportCsvService8152 # order random8153 when file is uploaded correctly8154 returns a success message8155 enqueues the ImportWorkItemsCsvWorker8156 when file upload fails8157 returns an error message8158Gitlab::Ci::Config::Normalizer::MatrixStrategy8159 .applies_to?8160 with hash that has :matrix key8161 is expected to be truthy8162 with hash that does not have :matrix key8163 is expected to be falsey8164 with a number8165 is expected to be falsey8166 .build_from8167 is expected to eq 48168 has attributes8169 has parallelized name8170Tooling::ParallelRSpecRunner8171 #run8172 without filter_tests_file option8173 behaves like runs node tests8174 runs rspec with tests allocated for this node8175 given filter tests file8176 when filter_tests_file is empty8177 behaves like runs node tests8178 runs rspec with tests allocated for this node8179 when filter_tests_file does not exist8180 behaves like runs node tests8181 runs rspec with tests allocated for this node8182 when filter_tests_file is not empty8183 behaves like runs node tests8184 runs rspec with tests allocated for this node8185 with rspec args8186 behaves like runs node tests8187 runs rspec with tests allocated for this node8188ShaValidator8189 with empty value8190 does not add any error if value is empty8191 with valid sha8192 does not add any error8193 with invalid sha8194 adds error to the record8195Graphql::Var8196 associates a name with a type and an initially empty value8197 has a correct signature8198 implements to_graphql_value as $name8199 can set a value using with, returning a new object8200 returns an object suitable for passing to post_graphql(variables:)8201SafelyChangeColumnDefault8202 # order random8203 forces the column to be written on a change8204 does not send the old column value if the default has changed8205 does not write the column without a change8206 prevents writing new default in place of the old default8207Gitlab::GithubImport::ImportIssueWorker8208 #import8209 imports an issue8210 #increment_object_counter?8211 when github issue is a pull request8212 returns false8213Import::BitbucketProviderRepoEntity8214 behaves like exposes required fields for import entity8215 exposes required fields8216 correctly exposes id8217 correctly exposes full name8218 correctly exposes sanitized name8219 correctly exposes provider link8220Gitlab::SidekiqVersioning::Worker8221 .version8222 when called with an argument8223 sets the version option8224 when called without an argument8225 returns the version option8226 #job_version8227 when job_version is not set8228 returns latest version8229 when job_version is set8230 returns the set version8231Gitlab::DoorkeeperSecretStoring::Secret::Pbkdf2Sha5128232 # order random8233 STRETCHES8234 is 20_0008235 .secret_matches?8236 match by hashing the input if the stored value is hashed8237 SALT8238 is empty8239 .transform_secret8240 generates a PBKDF2+SHA512 hashed value in the correct format8241Gitlab::Source8242 # order random8243 .ref8244 when not on a pre-release8245 is expected to eq "v15.0.0-ee"8246 when on a pre-release8247 is expected to eq "a123a123"8248 .release_url8249 when not on a pre-release8250 returns a tag url8251 when on a pre-release8252 returns a commit url8253Import::GithubRealtimeRepoSerializer8254 # order random8255 .entity_class8256 #represent8257 when a single object is being serialized8258 serializes organization object8259 when multiple objects are being serialized8260 serializes array of organizations8261Mattermost::CreateTeamService8262 # order random8263 adds an error if a team could not be created8264 creates a team8265DetectRepositoryLanguagesWorker8266 #perform8267 calls de DetectRepositoryLanguages service8268 when invalid ids are used8269 does not raise when the project could not be found8270Repositories::ChangelogTagFinder8271 #execute8272 when the regular expression is invalid8273 raises Gitlab::Changelog::Error8274 when there is a previous tag8275 returns the previous tag8276 when there is no previous tag8277 returns nil8278Import::BitbucketServerProviderRepoEntity8279 behaves like exposes required fields for import entity8280 exposes required fields8281 correctly exposes id8282 correctly exposes full name8283 correctly exposes sanitized name8284 correctly exposes provider link8285Gitlab::Memory::Watchdog::MonitorState8286 # order random8287 #call8288 when threshold is not violated8289 returns correct result8290 when threshold is violated8291 returns correct result8292 when strikes_exceeded8293 returns correct result8294Types::Packages::PackageDetailsType8295 is expected to eq "Represents a package details in the Package Registry"8296 is expected to require graphql authorizations :read_package8297 includes all the package fields8298RuboCop::Cop::RSpec::EnvAssignment8299 # order random8300 with a key using double quotes8301 behaves like an offensive and correction ENV#[]= call8302 registers an offense for `ENV["FOO"] = 'bar'` and corrects8303 with a key using single quotes8304 behaves like an offensive and correction ENV#[]= call8305 registers an offense for `ENV['FOO'] = 'bar'` and corrects8306Sidebars::Groups::SuperSidebarMenus::AnalyzeMenu8307 # order random8308 has title and sprite_icon8309 defines list of NilMenuItem placeholders8310Gitlab::Database::PostgresHll::Buckets8311 #estimated_distinct_count8312 provides estimated cardinality8313 #merge_hash!8314 merges two hashes together into union of two sets8315 #to_json8316 serialize HyperLogLog buckets as hash8317import/gitlab_projects/new.html.haml8318 when the user has no other namespaces8319 adds a namespace_id hidden field tag with the namespace id as value8320 when the user can select other namespaces8321 shows a namespace_id select8322Gitlab::Utils::SafeInlineHash8323 # order random8324 .merge_keys!8325 when hash is too big8326 raises an exception8327 when hash has an acceptaable size8328 returns a result of InlineHash8329Gitlab::ImportExport::DurationMeasuring8330 measures method execution duration8331 #with_duration_measuring8332 yields control8333 returns result of the yielded block8334Types::X509IssuerType8335 # order random8336 is expected to eq "X509Issuer"8337 contains attributes for X.509 issuers8338Gitlab::Memory::Watchdog::Handlers::NullHandler8339 # order random8340 #call8341 does nothing8342CreateTestFailureIssues8343 # order random8344 CreateTestFailureIssue8345 #upsert8346 when no issues are found8347 calls CreateIssue#execute(payload)8348 when issues are found8349 when issue already has the latest format8350 behaves like existing issue update8351 calls UpdateIssue#execute(payload)8352Atlassian::JiraConnect::Serializers::BaseEntity8353 generates the update_sequence_id8354 with update_sequence_id option8355 uses the custom update_sequence_id8356Types::UserCalloutFeatureNameEnum8357 is expected to eq "UserCalloutFeatureNameEnum"8358 exposes all the existing user callout feature names8359Gitlab::QuickActions::SubstitutionDefinition8360 #perform_substitution!8361 returns nil if content is nil8362 when content contains command name8363 performs the substitution by default8364 when content contains command name in word8365 does not perform the substitution8366RsaKeyValidator8367 is not valid when invalid RSA key is provided8368 is valid when valid RSA key is provided8369Types::WorkItems::Widgets::StartAndDueDateUpdateInputType8370 is expected to eq "WorkItemWidgetStartAndDueDateUpdateInput"8371 is expected to contain exactly "startDate" and "dueDate"8372Types::Ci::RunnerArchitectureType8373 is expected to eq "RunnerArchitecture"8374 exposes the expected fields8375KeyPresenter8376 # order random8377 #humanized_error_message8378 when public key is unsupported8379 returns the custom error message8380 when key is expired8381 returns Active Record error message8382Peek::Views::Memory8383 with process_action.action_controller notification8384 returns empty results when it has not yet fired8385 returns memory instrumentation data when it has fired8386Types::BranchRules::BranchProtectionType8387 # order random8388 is expected to have graphql fields :merge_access_levels, :push_access_levels, and :allow_force_push8389 is expected to require graphql authorizations :read_protected_branch8390Types::Packages::PackageDependencyType8391 includes package file fields8392API::Entities::BulkImport8393 has the correct attributes8394SystemCheck::App::GitlabCableConfigExistsCheck8395 # order random8396 #check?8397 when config/cable.yml exists8398 is expected to eq true8399 when config/cable.yml does not exist8400 is expected to eq false8401Types::PermissionTypes::Snippet8402 returns the snippets permissions8403Integrations::ProjectSerializer8404 represents Integrations::ProjectEntity entities8405Types::PermissionTypes::Deployment8406 # order random8407 is expected to include graphql fields :update_deployment and :destroy_deployment8408BlobViewer::Podspec8409 #package_name8410 returns the package name8411CommitSignature8412 # order random8413 #signed_by_user8414 when class does not define the signed_by_user method8415 raises a NoMethodError with custom message8416Gitlab::Kubernetes::GenericSecret8417 #generate8418 is expected to eq #<Kubeclient::Resource type="Opaque", metadata={:name=>"example-name", :namespace=>"example-namespace"}, data="example-data">8419CodequalityReportsComparerEntity8420 #as_json8421 when base and head report have errors8422 contains correct compared codequality report details8423Gitlab::Usage::Metrics::Instrumentations::EditionMetric8424 # order random8425 behaves like a correct instrumented metric value8426 has correct value8427Gitlab::Kubernetes::PodCmd8428 .retry_command8429 constructs string properly8430Types::Ci::ConfigVariableType8431 # order random8432 is expected to have graphql fields :key, :description, and :value8433Knapsack report was generated. Preview:8434{8435 "spec/models/merge_request_spec.rb": 453.9008712760001,8436 "spec/lib/gitlab/usage_data_metrics_spec.rb": 116.50625476000005,8437 "spec/finders/snippets_finder_spec.rb": 128.28753908199997,8438 "spec/lib/gitlab/import_export/project/relation_factory_spec.rb": 78.32407751200026,8439 "spec/policies/wiki_page_policy_spec.rb": 68.84690665200014,8440 "spec/services/issuable/bulk_update_service_spec.rb": 63.62834628900009,8441 "spec/services/resource_access_tokens/create_service_spec.rb": 44.24191039800007,8442 "spec/serializers/merge_request_widget_entity_spec.rb": 57.11080231200003,8443 "spec/lib/gitlab/import_export/importer_spec.rb": 40.37066783499995,8444 "spec/lib/gitlab/email/handler/create_note_handler_spec.rb": 40.940575867999996,8445 "spec/lib/gitlab/ci/parsers/security/validators/schema_validator_spec.rb": 34.63266296699976,8446 "spec/models/hooks/project_hook_spec.rb": 36.11848144800024,8447 "spec/lib/gitlab/database/background_migration/batched_migration_runner_spec.rb": 32.27419501700024,8448 "spec/lib/banzai/color_parser_spec.rb": 24.720664812999985,8449 "spec/services/members/invitation_reminder_email_service_spec.rb": 52.10521164900001,8450 "spec/presenters/commit_status_presenter_spec.rb": 27.066927305999798,8451 "spec/lib/gitlab/process_supervisor_spec.rb": 17.840518752000207,8452 "spec/helpers/events_helper_spec.rb": 23.906678092999755,8453 "spec/lib/container_registry/gitlab_api_client_spec.rb": 24.766366840000046,8454 "spec/services/git/tag_hooks_service_spec.rb": 24.516416341999957,8455 "spec/services/users/destroy_service_spec.rb": 24.20977083400021,8456 "spec/services/namespaces/in_product_marketing_emails_service_spec.rb": 18.043398230000093,8457 "spec/lib/gitlab/gitaly_client/operation_service_spec.rb": 19.448229043000083,8458 "spec/lib/gitlab/database/gitlab_schema_spec.rb": 21.26948580899989,8459 "spec/services/users/build_service_spec.rb": 19.3798341669999,8460 "spec/lib/gitlab/import_export/import_failure_service_spec.rb": 16.602171060000273,8461 "spec/models/integrations/buildkite_spec.rb": 19.24106420599992,8462 "spec/lib/gitlab/fake_application_settings_spec.rb": 19.712333416000092,8463 "spec/services/ci/update_build_state_service_spec.rb": 15.850841307999872,8464 "spec/services/deployments/link_merge_requests_service_spec.rb": 16.680558475999987,8465 "spec/services/clusters/create_service_spec.rb": 13.43548661900013,8466 "spec/presenters/clusterable_presenter_spec.rb": 13.514212063999821,8467 "spec/helpers/members_helper_spec.rb": 15.56925853499979,8468 "spec/lib/gitlab/ci/ansi2html_spec.rb": 14.01922067300029,8469 "spec/models/release_highlight_spec.rb": 16.364468966000004,8470 "spec/models/ci/build_trace_metadata_spec.rb": 10.403604727999664,8471 "spec/workers/merge_requests/update_head_pipeline_worker_spec.rb": 9.519275825000022,8472 "spec/models/project_group_link_spec.rb": 9.977109344999917,8473 "spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb": 7.090226966000046,8474 "spec/lib/gitlab/ci/config/entry/release_spec.rb": 12.111592102000031,8475 "spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb": 11.281783280999662,8476 "spec/lib/gitlab/diff/suggestion_spec.rb": 7.850590283999736,8477 "spec/lib/gitlab/diff/suggestions_parser_spec.rb": 9.194231295000009,8478 "spec/lib/gitlab/graphql/pagination/active_record_array_connection_spec.rb": 9.873269185000026,8479 "spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb": 10.559599884000363,8480 "spec/services/deployments/older_deployments_drop_service_spec.rb": 10.224634153999887,8481 "spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb": 6.530666872999973,8482 "spec/lib/gitlab/auth/ldap/user_spec.rb": 8.366983934000018,8483 "spec/models/ci/external_pull_request_spec.rb": 11.786125372000242,8484 "spec/workers/new_note_worker_spec.rb": 4.353982603000077,8485 "spec/lib/gitlab/database/async_indexes/migration_helpers_spec.rb": 9.980567328000234,8486 "spec/lib/bulk_imports/common/pipelines/milestones_pipeline_spec.rb": 5.801810716000091,8487 "spec/finders/crm/organizations_finder_spec.rb": 8.271829679999883,8488 "spec/models/fork_network_spec.rb": 8.513919595000061,8489 "spec/lib/gitlab/consul/internal_spec.rb": 6.324789214999782,8490 "spec/lib/gitlab/chat/output_spec.rb": 8.451349528999799,8491 "spec/lib/gitlab/issuable_metadata_spec.rb": 5.735388030000195,8492 "spec/views/projects/tags/index.html.haml_spec.rb": 11.26674455300008,8493 "spec/policies/achievements/user_achievement_policy_spec.rb": 5.641374534999613,8494 "spec/tasks/gitlab/external_diffs_rake_spec.rb": 6.0102335840001615,8495 "spec/lib/gitlab/ci/build/step_spec.rb": 5.098937027999909,8496 "spec/graphql/resolvers/design_management/version/design_at_version_resolver_spec.rb": 4.406787718000032,8497 "spec/services/security/ci_configuration/dependency_scanning_create_service_spec.rb": 8.816026287000113,8498 "spec/lib/error_tracking/sentry_client/projects_spec.rb": 4.464260736000142,8499 "spec/lib/gitlab/github_import/importer/note_importer_spec.rb": 5.709725431999686,8500 "spec/components/pajamas/banner_component_spec.rb": 3.5193593310000324,8501 "spec/models/ci/runner_namespace_spec.rb": 5.873848802999873,8502 "spec/lib/gitlab/ci/trace/archive_spec.rb": 6.606415619000018,8503 "spec/lib/gitlab/checks/container_moved_spec.rb": 4.084630207999908,8504 "spec/presenters/tree_entry_presenter_spec.rb": 6.931488819000151,8505 "spec/services/resource_events/synthetic_milestone_notes_builder_service_spec.rb": 3.494578353000179,8506 "spec/lib/gitlab/database/postgres_partitioned_table_spec.rb": 6.141832195999996,8507 "spec/graphql/resolvers/project_packages_resolver_spec.rb": 6.8442009639998105,8508 "spec/lib/gitlab/ci/pipeline/logger_spec.rb": 6.649248945999716,8509 "spec/helpers/ci/status_helper_spec.rb": 5.945331006999822,8510 "spec/lib/gitlab/database/query_analyzer_spec.rb": 5.454379676999906,8511 "spec/models/ci/catalog/resource_spec.rb": 3.4675545950003652,8512 "spec/models/issue_assignee_spec.rb": 6.386424392000208,8513 "spec/lib/gitlab/database/async_indexes/postgres_async_index_spec.rb": 5.804212905999975,8514 "spec/lib/gitlab/git/blame_spec.rb": 4.85403990199984,8515 "spec/services/users/update_todo_count_cache_service_spec.rb": 4.445127327000137,8516 "spec/models/bulk_imports/export_status_spec.rb": 8.2080382930003,8517 "spec/components/pajamas/avatar_component_spec.rb": 4.297560864999923,8518 "spec/lib/gitlab/ci/build/artifacts/metadata_spec.rb": 5.234942598999623,8519 "spec/lib/gitlab/ci/reports/security/scanner_spec.rb": 6.0365403229998265,8520 "spec/models/identity_spec.rb": 6.2225952919998235,8521 "spec/models/integrations/youtrack_spec.rb": 6.081236029999673,8522 "spec/rubocop/cop/lint/last_keyword_argument_spec.rb": 3.5950582770001347,8523 "spec/lib/gitlab/changelog/committer_spec.rb": 5.61669130700011,8524 "spec/services/ml/experiment_tracking/experiment_repository_spec.rb": 4.267611657000089,8525 "spec/services/metrics/dashboard/cluster_metrics_embed_service_spec.rb": 4.719462049999947,8526 "spec/lib/gitlab/safe_request_loader_spec.rb": 4.987722073999976,8527 "spec/models/concerns/featurable_spec.rb": 2.1314143530003093,8528 "spec/lib/gitlab/database/reindexing/index_selection_spec.rb": 5.481359515999884,8529 "spec/lib/api/entities/wiki_page_spec.rb": 4.3843969610002205,8530 "spec/workers/update_highest_role_worker_spec.rb": 3.411044948000381,8531 "spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb": 2.1271893439998166,8532 "spec/graphql/mutations/alert_management/prometheus_integration/create_spec.rb": 4.263840266999978,8533 "spec/lib/sidebars/user_settings/menus/access_tokens_menu_spec.rb": 2.9842533239998374,8534 "spec/lib/api/helpers/merge_requests_helpers_spec.rb": 2.5970005559997844,8535 "spec/lib/gitlab/zoom_link_extractor_spec.rb": 2.7770819249999477,8536 "spec/lib/gitlab/ci/interpolation/template_spec.rb": 1.3240261219998501,8537 "spec/models/note_diff_file_spec.rb": 6.352195652999853,8538 "spec/tooling/danger/sidekiq_args_spec.rb": 2.50107441199998,8539 "spec/services/packages/composer/version_parser_service_spec.rb": 5.086862378000205,8540 "spec/workers/bulk_imports/relation_export_worker_spec.rb": 3.711542190000273,8541 "spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb": 4.092900548000216,8542 "spec/services/packages/create_package_file_service_spec.rb": 3.6558636029994886,8543 "spec/services/service_desk/custom_email_verifications/create_service_spec.rb": 3.897039219000362,8544 "spec/models/packages/go/module_spec.rb": 3.454008125000655,8545 "spec/workers/gitlab/github_gists_import/start_import_worker_spec.rb": 3.5788131980007165,8546 "spec/lib/gitlab/git_post_receive_spec.rb": 2.3026804730006916,8547 "spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb": 2.240812967000238,8548 "spec/services/users/migrate_records_to_ghost_user_in_batches_service_spec.rb": 3.1585457130004215,8549 "spec/models/packages/debian/file_entry_spec.rb": 4.571436938000261,8550 "spec/lib/gitlab/ci/status/build/action_spec.rb": 5.034658171000046,8551 "spec/workers/projects/schedule_bulk_repository_shard_moves_worker_spec.rb": 1.5509984780001105,8552 "spec/channels/application_cable/connection_spec.rb": 1.2565424849999545,8553 "spec/policies/protected_branch_access_policy_spec.rb": 1.5595994679997602,8554 "spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb": 4.942285937000634,8555 "spec/services/ci/generate_kubeconfig_service_spec.rb": 1.9042865369992796,8556 "spec/lib/gitlab/hook_data/issue_builder_spec.rb": 1.7862236950004444,8557 "spec/lib/gitlab/import/import_failure_service_spec.rb": 4.353933411999606,8558 "spec/lib/bulk_imports/pipeline/extracted_data_spec.rb": 1.0226395400004549,8559 "spec/models/custom_emoji_spec.rb": 5.1223134860001664,8560 "spec/lib/gitlab/template/gitlab_ci_yml_template_spec.rb": 1.664541430999634,8561 "spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb": 1.3599470389999624,8562 "spec/graphql/resolvers/error_tracking/sentry_errors_resolver_spec.rb": 4.36298737099969,8563 "spec/workers/members/expiring_email_notification_worker_spec.rb": 1.4886412619998737,8564 "spec/lib/gitlab/metrics/dashboard/stages/panel_ids_inserter_spec.rb": 1.2327640970006541,8565 "spec/tasks/gitlab/x509/update_rake_spec.rb": 4.12267855600021,8566 "spec/lib/container_registry/registry_spec.rb": 2.5958534170003986,8567 "spec/services/security/ci_configuration/sast_parser_service_spec.rb": 2.711912599000243,8568 "spec/lib/gitlab/config/entry/attributable_spec.rb": 2.2664836950007157,8569 "spec/policies/application_setting/term_policy_spec.rb": 3.8120151450002595,8570 "spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb": 1.0245620899995629,8571 "spec/workers/database/ci_namespace_mirrors_consistency_check_worker_spec.rb": 2.544364809000399,8572 "spec/serializers/evidences/release_entity_spec.rb": 2.371626718999323,8573 "spec/lib/banzai/reference_parser/mentioned_user_parser_spec.rb": 2.649245633000646,8574 "spec/lib/gitlab/config/entry/unspecified_spec.rb": 1.9429236249998212,8575 "spec/services/ci/ensure_stage_service_spec.rb": 2.3953422679996947,8576 "spec/workers/concerns/packages/error_handling_spec.rb": 2.3134091230003833,8577 "spec/lib/object_storage/fog_helpers_spec.rb": 0.6913360790003935,8578 "spec/graphql/resolvers/group_resolver_spec.rb": 0.8285546910001358,8579 "spec/services/wiki_pages/event_create_service_spec.rb": 2.089618626000629,8580 "spec/workers/remove_unaccepted_member_invites_worker_spec.rb": 3.3500307109998175,8581 "spec/tooling/danger/bulk_database_actions_spec.rb": 3.4580285750007533,8582 "spec/initializers/rails_yaml_safe_load_spec.rb": 0.8587661599995045,8583 "spec/workers/concerns/packages/cleanup_artifact_worker_spec.rb": 0.7071944979998079,8584 "spec/lib/gitlab/chat/responder_spec.rb": 1.4011375879999832,8585 "spec/lib/bulk_imports/common/extractors/ndjson_extractor_spec.rb": 0.9724478030002501,8586 "spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb": 0.5759539860000586,8587 "spec/lib/gitlab/github_import/importer/lfs_object_importer_spec.rb": 0.7155989469993074,8588 "spec/lib/gitlab/usage_data/topology_spec.rb": 3.223622589000115,8589 "spec/lib/gitlab/github_import/importer/events/reopened_spec.rb": 3.015609960999427,8590 "spec/lib/banzai/filter/markdown_engines/base_spec.rb": 0.6526803120004843,8591 "spec/lib/gitlab/usage/metrics/instrumentations/count_projects_with_ml_experiments_metric_spec.rb": 1.4453614340000058,8592 "spec/workers/ci/update_locked_unknown_artifacts_worker_spec.rb": 1.7852622039999915,8593 "spec/models/preloaders/group_root_ancestor_preloader_spec.rb": 2.9713304540000536,8594 "spec/serializers/project_mirror_serializer_spec.rb": 0.4121372950003206,8595 "spec/lib/gitlab/route_map_spec.rb": 2.903534218000459,8596 "spec/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker_spec.rb": 1.4935148909999043,8597 "spec/views/notify/push_to_merge_request_email.text.haml_spec.rb": 1.6769580290001613,8598 "spec/lib/gitlab/github_import/importer/pull_requests/review_request_importer_spec.rb": 2.851842428999589,8599 "spec/services/customer_relations/contacts/create_service_spec.rb": 1.6164841029994932,8600 "spec/graphql/types/work_items/available_export_fields_enum_spec.rb": 2.836331328999222,8601 "spec/lib/gitlab/github_import/importer/attachments/issues_importer_spec.rb": 1.5218305779999355,8602 "spec/models/users/group_callout_spec.rb": 1.219619256000442,8603 "spec/models/concerns/file_store_mounter_spec.rb": 4.080853675000071,8604 "spec/lib/gitlab/graphql/batch_key_spec.rb": 1.4093139859996882,8605 "spec/lib/gitlab/manifest_import/manifest_spec.rb": 2.6919668179998553,8606 "spec/services/users/dismiss_group_callout_service_spec.rb": 2.6879121889996895,8607 "spec/lib/gitlab/ci/build/prerequisite/factory_spec.rb": 1.3680075779993786,8608 "spec/lib/gitlab/cache/json_cache_spec.rb": 2.629684212000029,8609 "spec/workers/groups/update_two_factor_requirement_for_members_worker_spec.rb": 2.660678249000739,8610 "spec/serializers/group_access_token_serializer_spec.rb": 0.9611378420004257,8611 "spec/views/dashboard/projects/index.html.haml_spec.rb": 1.1107292130000133,8612 "spec/models/concerns/from_set_operator_spec.rb": 1.1465581920001569,8613 "spec/workers/clusters/cleanup/service_account_worker_spec.rb": 1.0725545259992941,8614 "spec/services/pages_domains/create_service_spec.rb": 2.7391298749998896,8615 "spec/serializers/group_link/project_group_link_entity_spec.rb": 2.5395278470004996,8616 "spec/lib/gitlab/memory/watchdog/sidekiq_event_reporter_spec.rb": 1.2146164969999518,8617 "spec/graphql/types/container_repository_type_spec.rb": 1.082063195000046,8618 "spec/lib/gitlab/sidekiq_signals_spec.rb": 3.7311732950001897,8619 "spec/workers/dependency_proxy/cleanup_blob_worker_spec.rb": 1.0662355249996835,8620 "spec/views/shared/nav/_sidebar.html.haml_spec.rb": 1.0813741539996045,8621 "spec/lib/api/entities/ci/job_request/image_spec.rb": 0.9667006620002212,8622 "spec/services/ci/queue/pending_builds_strategy_spec.rb": 0.9246125350000511,8623 "spec/services/work_items/prepare_import_csv_service_spec.rb": 2.3759207169996444,8624 "spec/lib/gitlab/ci/config/normalizer/matrix_strategy_spec.rb": 2.4178126150000026,8625 "spec/tooling/lib/tooling/parallel_rspec_runner_spec.rb": 1.0775182249999489,8626 "spec/validators/sha_validator_spec.rb": 0.7304870160005521,8627 "spec/support_specs/graphql/var_spec.rb": 2.2829677319996335,8628 "spec/models/concerns/safely_change_column_default_spec.rb": 2.290090171999509,8629 "spec/workers/gitlab/github_import/import_issue_worker_spec.rb": 0.8592603890001556,8630 "spec/serializers/import/bitbucket_provider_repo_entity_spec.rb": 0.8893913769998107,8631 "spec/lib/gitlab/sidekiq_versioning/worker_spec.rb": 0.8057599619996836,8632 "spec/lib/gitlab/doorkeeper_secret_storing/secret/pbkdf2_sha512_spec.rb": 2.3778107970001656,8633 "spec/lib/gitlab/source_spec.rb": 2.131704622000143,8634 "spec/serializers/import/github_realtime_repo_serializer_spec.rb": 0.7352135950004595,8635 "spec/services/mattermost/create_team_service_spec.rb": 0.8863408770002934,8636 "spec/workers/detect_repository_languages_worker_spec.rb": 0.81459827100025,8637 "spec/finders/repositories/changelog_tag_finder_spec.rb": 0.7220366460005607,8638 "spec/serializers/import/bitbucket_server_provider_repo_entity_spec.rb": 2.151144209999984,8639 "spec/lib/gitlab/memory/watchdog/monitor_state_spec.rb": 2.0294293380002273,8640 "spec/graphql/types/packages/package_details_type_spec.rb": 0.8430633689995375,8641 "spec/rubocop/cop/rspec/env_assignment_spec.rb": 0.5891249039996183,8642 "spec/lib/sidebars/groups/super_sidebar_menus/analyze_menu_spec.rb": 0.6075327140006266,8643 "spec/lib/gitlab/database/postgres_hll/buckets_spec.rb": 0.6989792479998869,8644 "spec/views/import/gitlab_projects/new.html.haml_spec.rb": 0.6451283019996481,8645 "spec/lib/gitlab/utils/safe_inline_hash_spec.rb": 0.5398921269998027,8646 "spec/lib/gitlab/import_export/duration_measuring_spec.rb": 2.021845758999916,8647 "spec/graphql/types/x509_issuer_type_spec.rb": 1.818524680000337,8648 "spec/lib/gitlab/memory/watchdog/handlers/null_handler_spec.rb": 0.4176102949995766,8649 "spec/scripts/pipeline/create_test_failure_issues_spec.rb": 0.6329017110001587,8650 "spec/lib/atlassian/jira_connect/serializers/base_entity_spec.rb": 0.5578768459999992,8651 "spec/graphql/types/user_callout_feature_name_enum_spec.rb": 0.5950415440001962,8652 "spec/lib/gitlab/quick_actions/substitution_definition_spec.rb": 0.7144394670003749,8653 "spec/validators/rsa_key_validator_spec.rb": 0.5404554980004832,8654 "spec/graphql/types/work_items/widgets/start_and_due_date_update_input_type_spec.rb": 0.5352383480003482,8655 "spec/graphql/types/ci/runner_architecture_type_spec.rb": 1.867866667999806,8656 "spec/presenters/key_presenter_spec.rb": 1.8389451590001045,8657 "spec/lib/peek/views/memory_spec.rb": 0.5619383960001869,8658 "spec/graphql/types/branch_rules/branch_protection_type_spec.rb": 0.633513691999724,8659 "spec/graphql/types/packages/package_dependency_type_spec.rb": 0.4270052539995959,8660 "spec/lib/api/entities/bulk_import_spec.rb": 0.48560319099942717,8661 "spec/lib/system_check/app/gitlab_cable_config_exists_check_spec.rb": 0.6131548630000907,8662 "spec/graphql/types/permission_types/snippet_spec.rb": 0.4216898439999568,8663 "spec/serializers/integrations/project_serializer_spec.rb": 0.4290719850005189,8664 "spec/graphql/types/permission_types/deployment_spec.rb": 0.4231461640001726,8665 "spec/models/blob_viewer/podspec_spec.rb": 0.43204151400004775,8666 "spec/models/concerns/commit_signature_spec.rb": 0.4367322139996759,8667 "spec/lib/gitlab/kubernetes/generic_secret_spec.rb": 0.4165832849994331,8668 "spec/serializers/codequality_reports_comparer_entity_spec.rb": 0.4276801340001839,8669 "spec/lib/gitlab/usage/metrics/instrumentations/edition_metric_spec.rb": 1.7729204229999596,8670 "spec/lib/gitlab/kubernetes/pod_cmd_spec.rb": 0.41003700499913975,8671 "spec/graphql/types/ci/config_variable_type_spec.rb": 1.7386158159997658672}8673Knapsack global time execution for tests: 38m 45s8674Pending: (Failures listed here are expected and do not affect your suite's status)8675 1) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank8676 # No reason given8677 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:498678 2) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank8679 # No reason given8680 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:578681 3) Ci::BuildTraceMetadata partitioning assigns the same partition id as the one that build has8682 # Skipping partitioning tests until `ci_builds` is partitioned8683 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8684 RSpec::Core::Pending::SkipDeclaredInExample8685 # ./spec/support/helpers/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8686 # ./spec/support/fast_quarantine.rb:23:in `block (2 levels) in <top (required)>'8687 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'8688 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'8689 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'8690Finished in 38 minutes 54 seconds (files took 1 minute 21.9 seconds to load)86914057 examples, 0 failures, 3 pending8692Randomized with seed 191188693[TEST PROF INFO] Time spent in factories: 12:26.646 (31.44% of total time)8694RSpec exited with 0.8695No examples to retry, congrats!8697Running after script...8698$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"8708Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8710Uploading artifacts...8711WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8712coverage/: found 5 matching artifact files and directories 8713crystalball/: found 2 matching artifact files and directories 8714WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8715knapsack/: found 4 matching artifact files and directories 8716rspec/: found 10 matching artifact files and directories 8717WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8718log/*.log: found 18 matching artifact files and directories 8719WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4749214614/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8720WARNING: Retrying... context=artifacts-uploader error=request redirected8721Uploading artifacts as "archive" to coordinator... 201 Created id=4749214614 responseStatus=201 Created token=64_ynab98722Uploading artifacts...8723rspec/rspec-*.xml: found 1 matching artifact files and directories 8724WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4749214614/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8725WARNING: Retrying... context=artifacts-uploader error=request redirected8726Uploading artifacts as "junit" to coordinator... 201 Created id=4749214614 responseStatus=201 Created token=64_ynab98728Job succeeded