rspec unit pg14 23/28
Passed Started
by
@dstull
Doug Stull
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:true, FF_RESOLVE_FULL_TLS_CHAIN:false6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...10Using docker image sha256:2e09e9db92541ed81b1c00f1d5186f8c262d8b84e8d1755676ea4b25614f30c4 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:afc7bd7a60824044709543a6a700385e412d750d9ab4fc72b427e335e1d0f3ec ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:a9a90ece30d9630d694ab1997cd103ea8ec729789451b983a75c7b58b0062d45 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7ef36177d5d0bc554fbb63d8210ae751bcc538bea7905b51d078d9ab90a755fa ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:d0675d033b87382205d08b598a004a99a1f6c4bd377cc86bb6df8957ce7dbb1c for redis:6.2-alpine with digest redis@sha256:740b5c973d1c9eea6e124a3905ba73d32354d0549f98ccc9e67af1af2a9ba478 ...20Waiting for services to be up and running (timeout 30 seconds)...21Authenticating with credentials from job payload (GitLab Registry)22Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256:3e6c24d49ca804019e2cfcf4951ed994b550043ce6af3757cb550e8c78892a99 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14@sha256:50215d6eb4fdf053dfc39bc8a540c94a214139ba2a583092099c9eac46201eee ...25Running on runner-mf8bef5g-project-278964-concurrent-0 via runner-mf8bef5g-shared-gitlab-org-1692360178-3beffd95...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 150271, done. 31remote: Counting objects: 100% (150271/150271), done. 32remote: Compressing objects: 100% (97595/97595), done. 33remote: Total 150271 (delta 67215), reused 103431 (delta 46893), pack-reused 0 34Receiving objects: 100% (150271/150271), 124.68 MiB | 28.38 MiB/s, done.35Resolving deltas: 100% (67215/67215), done.37 * [new ref] refs/pipelines/972262671 -> refs/pipelines/97226267138Checking out 3f92a6c3 as detached HEAD (ref is refs/merge-requests/129383/merge)...39Skipping Git submodules setup40$ git remote set-url origin "${CI_REPOSITORY_URL}"42Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...43Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 44Successfully extracted cache46Downloading artifacts for compile-test-assets (4900739220)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4900739220 responseStatus=200 OK token=64_6B6sf48Downloading artifacts for detect-tests (4900739241)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4900739241 responseStatus=200 OK token=64_6B6sf50Downloading artifacts for retrieve-tests-metadata (4900739253)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4900739253 responseStatus=200 OK token=64_6B6sf52Downloading artifacts for setup-test-env (4900739227)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4900739227 responseStatus=200 OK token=64_6B6sf55Using docker image sha256:3e6c24d49ca804019e2cfcf4951ed994b550043ce6af3757cb550e8c78892a99 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14@sha256:50215d6eb4fdf053dfc39bc8a540c94a214139ba2a583092099c9eac46201eee ...56$ echo $FOSS_ONLY57$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb58$ export GOPATH=$CI_PROJECT_DIR/.go59$ mkdir -p $GOPATH60$ source scripts/utils.sh61$ source scripts/prepare_build.sh93Using decomposed database config (config/database.yml.decomposed-postgresql)94Geo DB won't be set up.95Embedding DB won't be set up.107$ source ./scripts/rspec_helpers.sh108$ run_timed_command "gem install knapsack --no-document"109$ gem install knapsack --no-document110Successfully installed knapsack-4.0.01111 gem installed112==> 'gem install knapsack --no-document' succeeded in 0 seconds.113$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"118$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"119$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"120$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house"121SKIP_FLAKY_TESTS_AUTOMATICALLY: 122RETRY_FAILED_TESTS_IN_NEW_PROCESS: true123KNAPSACK_GENERATE_REPORT: true124FLAKY_RSPEC_GENERATE_REPORT: true125KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb126KNAPSACK_LOG_LEVEL: debug127KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_23_28_report.json128FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json129FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_23_28_report.json130NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_23_28_report.json131RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-4900739512.txt132CRYSTALBALL: 133RSPEC_TESTS_MAPPING_ENABLED: 134RSPEC_TESTS_FILTER_FILE: 135Shell set options (set -o) enabled:136braceexpand on137hashall on138interactive-comments on139pipefail on140Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-4900739512.json --format RspecJunitFormatter --out rspec/rspec-4900739512.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house -- spec/models/issue_spec.rb spec/models/ci/job_artifact_spec.rb spec/services/projects/overwrite_project_service_spec.rb spec/finders/issues_finder_spec.rb spec/lib/gitlab/git/tree_spec.rb spec/policies/wiki_page_policy_spec.rb spec/services/merge_requests/mergeability_check_service_spec.rb spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb spec/services/auto_merge/base_service_spec.rb spec/lib/gitlab/background_migration/backfill_releases_author_id_spec.rb spec/graphql/types/project_type_spec.rb spec/views/search/_results.html.haml_spec.rb spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb spec/lib/gitlab/github_import/user_finder_spec.rb spec/services/labels/available_labels_service_spec.rb spec/lib/gitlab/gitaly_client/commit_service_spec.rb spec/routing/group_routing_spec.rb spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb spec/models/projects/data_transfer_spec.rb spec/helpers/packages_helper_spec.rb spec/lib/gitlab/background_migration/migrate_links_for_vulnerability_findings_spec.rb spec/services/groups/create_service_spec.rb spec/models/ci/job_token/project_scope_link_spec.rb spec/serializers/pipeline_details_entity_spec.rb spec/finders/group_members_finder_spec.rb spec/models/commit_range_spec.rb spec/lib/gitlab/ci/config/external/processor_spec.rb spec/services/push_event_payload_service_spec.rb spec/lib/gitlab/background_migration/migrate_remediations_for_vulnerability_findings_spec.rb spec/graphql/mutations/discussions/toggle_resolve_spec.rb spec/lib/gitlab/lets_encrypt/client_spec.rb spec/services/issuable/common_system_notes_service_spec.rb spec/lib/gitlab/ci/config/entry/variables_spec.rb spec/lib/gitlab/ci/trace/chunked_io_spec.rb spec/services/merge_requests/retarget_chain_service_spec.rb spec/lib/gitlab/database/load_balancing/host_spec.rb spec/lib/banzai/filter/audio_link_filter_spec.rb spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb spec/lib/gitlab/slash_commands/deploy_spec.rb spec/lib/gitlab/redis/queues_spec.rb spec/graphql/resolvers/work_items_resolver_spec.rb spec/routing/import_routing_spec.rb spec/graphql/types/issue_type_spec.rb spec/services/projects/participants_service_spec.rb spec/services/packages/maven/metadata/sync_service_spec.rb spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb spec/lib/gitlab/database/load_balancing/connection_proxy_spec.rb spec/lib/gitlab/github_import/representation/diff_note_spec.rb spec/lib/extracts_ref_spec.rb spec/views/layouts/header/_new_dropdown.haml_spec.rb spec/services/merge_requests/update_assignees_service_spec.rb spec/services/ci/play_manual_stage_service_spec.rb spec/lib/gitlab/database/migrations/timeout_helpers_spec.rb spec/lib/gitlab/database/count_spec.rb spec/finders/joined_groups_finder_spec.rb spec/lib/gitlab/database/background_migration/prometheus_metrics_spec.rb spec/lib/gitlab/ci/build/context/global_spec.rb spec/services/markup/rendering_service_spec.rb spec/uploaders/file_mover_spec.rb spec/workers/repository_check/single_repository_worker_spec.rb spec/serializers/environment_status_entity_spec.rb spec/lib/gitlab/import_export/group/relation_factory_spec.rb spec/graphql/types/group_type_spec.rb spec/models/ci/build_trace_chunks/database_spec.rb spec/lib/gitlab/database/health_status/indicators/wal_rate_spec.rb spec/services/ci/update_instance_variables_service_spec.rb spec/lib/gitlab/etag_caching/middleware_spec.rb spec/models/ci/catalog/resource_spec.rb spec/views/layouts/devise_empty.html.haml_spec.rb spec/graphql/mutations/issues/set_escalation_status_spec.rb spec/lib/gitlab/ci/status/external/common_spec.rb spec/lib/banzai/filter/references/reference_cache_spec.rb spec/workers/pipeline_metrics_worker_spec.rb spec/helpers/boards_helper_spec.rb spec/lib/gitlab/email/smime/signer_spec.rb spec/lib/gitlab/database/postgres_partitioned_table_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/operating_system_metric_spec.rb spec/helpers/award_emoji_helper_spec.rb spec/services/security/ci_configuration/secret_detection_create_service_spec.rb spec/graphql/resolvers/user_notes_count_resolver_spec.rb spec/services/repository_archive_clean_up_service_spec.rb spec/lib/bitbucket_server/representation/pull_request_spec.rb spec/workers/ci/pending_builds/update_group_worker_spec.rb spec/services/dependency_proxy/request_token_service_spec.rb spec/lib/api/entities/ci/job_request/dependency_spec.rb spec/models/packages/cleanup/policy_spec.rb spec/services/clusters/destroy_service_spec.rb spec/graphql/resolvers/nested_groups_resolver_spec.rb spec/models/redirect_route_spec.rb spec/policies/deploy_token_policy_spec.rb spec/graphql/resolvers/ci/config_resolver_spec.rb spec/services/import/validate_remote_git_endpoint_service_spec.rb spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb spec/services/loose_foreign_keys/cleaner_service_spec.rb spec/services/users/ban_service_spec.rb spec/lib/gitlab/utils/file_info_spec.rb spec/workers/new_issue_worker_spec.rb spec/lib/gitlab/slash_commands/issue_search_spec.rb spec/presenters/alert_management/alert_presenter_spec.rb spec/services/ci/enqueue_job_service_spec.rb spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb spec/finders/packages/go/module_finder_spec.rb spec/lib/gitlab/ci/config/entry/product/parallel_spec.rb spec/services/achievements/create_service_spec.rb spec/lib/gitlab/ci/config/entry/hooks_spec.rb spec/lib/gitlab/diff/file_collection/merge_request_diff_base_spec.rb spec/lib/gitlab/metrics/environment_spec.rb spec/graphql/mutations/todos/mark_all_done_spec.rb spec/services/projects/group_links/update_service_spec.rb spec/models/concerns/where_composite_spec.rb spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb spec/services/topics/merge_service_spec.rb spec/tasks/gitlab/lfs/check_rake_spec.rb spec/services/work_items/widgets/current_user_todos_service/update_service_spec.rb spec/views/projects/_flash_messages.html.haml_spec.rb spec/lib/gitlab/graphs/commits_spec.rb spec/lib/gitlab/middleware/request_context_spec.rb spec/finders/releases/evidence_pipeline_finder_spec.rb spec/workers/packages/cleanup/delete_orphaned_dependencies_worker_spec.rb spec/services/packages/terraform_module/create_package_service_spec.rb spec/models/work_items/widgets/assignees_spec.rb spec/helpers/listbox_helper_spec.rb spec/rubocop/cop/gettext/static_identifier_spec.rb spec/services/packages/mark_packages_for_destruction_service_spec.rb spec/models/merge_request/approval_removal_settings_spec.rb spec/helpers/milestones_helper_spec.rb spec/workers/incident_management/add_severity_system_note_worker_spec.rb spec/rubocop/cop/rake/require_spec.rb spec/helpers/lazy_image_tag_helper_spec.rb spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb spec/lib/gitlab/graphql/representation/tree_entry_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb spec/graphql/types/release_type_spec.rb spec/models/organizations/organization_setting_spec.rb spec/lib/gitlab/ci/parsers_spec.rb spec/workers/gitlab/jira_import/stage/import_labels_worker_spec.rb spec/services/packages/ml_model/create_package_file_service_spec.rb spec/lib/gitlab/gitaly_client/remote_service_spec.rb spec/lib/gitlab/query_limiting/middleware_spec.rb spec/models/abuse/user_trust_score_spec.rb spec/lib/gitlab/ci/config/external/mapper/matcher_spec.rb spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb spec/lib/gitlab/safe_request_loader_spec.rb spec/views/projects/issues/show.html.haml_spec.rb spec/models/project_repository_spec.rb spec/graphql/types/snippets/blob_action_enum_spec.rb spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb spec/lib/bitbucket_server/representation/comment_spec.rb spec/lib/gitlab/metrics/dashboard/repo_dashboard_finder_spec.rb spec/lib/gitlab/metrics/memory_spec.rb spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb spec/graphql/types/projects/base_service_type_spec.rb spec/services/clusters/agent_tokens/track_usage_service_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/analyze_menu_spec.rb spec/lib/gitlab/ci/config/entry/services_spec.rb spec/models/work_items/widgets/description_spec.rb spec/lib/gitlab/sidekiq_status/client_middleware_spec.rb spec/presenters/search_service_presenter_spec.rb spec/lib/gitlab/github_import/representation/collaborator_spec.rb spec/workers/object_pool/join_worker_spec.rb spec/workers/ci/job_artifacts/track_artifact_report_worker_spec.rb spec/graphql/resolvers/deployments_resolver_spec.rb spec/lib/slack/block_kit/incident_management/incident_modal_opened_spec.rb spec/support_specs/database/multiple_databases_helpers_spec.rb spec/lib/gitlab/language_detection_spec.rb spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb spec/services/clusters/agents/delete_service_spec.rb spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb spec/lib/gitlab/github_import/object_counter_spec.rb spec/lib/gitlab/code_navigation_path_spec.rb spec/lib/sidebars/admin/menus/ci_cd_menu_spec.rb spec/rubocop/cop/ignored_columns_spec.rb spec/support_specs/database/prevent_cross_joins_spec.rb spec/graphql/mutations/environments/canary_ingress/update_spec.rb spec/models/integrations/pushover_spec.rb spec/rubocop/cop/code_reuse/presenter_spec.rb spec/lib/gitlab/ci/config/entry/hidden_spec.rb spec/lib/gitlab/avatar_cache_spec.rb spec/models/ci/pipeline_schedule_variable_spec.rb spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb spec/rubocop/cop/rspec/factory_bot/local_static_assignment_spec.rb spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb spec/finders/groups/environment_scopes_finder_spec.rb spec/lib/gitlab/ssh/commit_spec.rb spec/lib/sidebars/user_settings/menus/profile_menu_spec.rb spec/lib/gitlab/cycle_analytics/updater_spec.rb spec/lib/gitlab/sidekiq_signals_spec.rb spec/lib/gitlab/git/raw_diff_change_spec.rb spec/graphql/types/alert_management/domain_filter_enum_spec.rb spec/helpers/groups/settings_helper_spec.rb spec/workers/gitlab/github_import/import_issue_worker_spec.rb spec/helpers/explore_helper_spec.rb spec/serializers/group_access_token_serializer_spec.rb spec/lib/gitlab/diff/parallel_diff_spec.rb spec/serializers/admin/abuse_report_entity_spec.rb spec/lib/gitlab/usage/metrics/aggregates/sources/redis_hll_spec.rb spec/models/concerns/from_except_spec.rb spec/lib/click_house/bind_index_manager_spec.rb spec/workers/authorized_keys_worker_spec.rb spec/lib/banzai/filter/plantuml_filter_spec.rb spec/graphql/types/work_item_type_spec.rb spec/workers/disallow_two_factor_for_group_worker_spec.rb spec/graphql/resolvers/group_resolver_spec.rb spec/lib/gitlab/ci/project_config/source_spec.rb spec/workers/gitlab/import/stuck_import_job_spec.rb spec/lib/gitlab/ci/config/entry/stage_spec.rb spec/lib/bulk_imports/projects/graphql/get_repository_query_spec.rb spec/lib/sidebars/your_work/panel_spec.rb spec/lib/gitlab/pagination/keyset/in_operator_optimization/column_data_spec.rb spec/views/projects/issues/_related_branches.html.haml_spec.rb spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb spec/initializers/rails_asset_host_spec.rb spec/finders/repositories/changelog_tag_finder_spec.rb spec/graphql/types/work_items/widgets/start_and_due_date_update_input_type_spec.rb spec/lib/api/entities/clusters/agent_spec.rb spec/graphql/types/ci/pipeline_type_spec.rb spec/lib/error_tracking/sentry_client/token_spec.rb spec/graphql/types/work_items/widgets/current_user_todos_input_type_spec.rb spec/rubocop/cop/gemspec/avoid_executing_git_spec.rb spec/graphql/types/container_respository_tags_sort_enum_spec.rb spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb spec/models/concerns/vulnerability_finding_helpers_spec.rb spec/lib/gitlab/webpack/graphql_known_operations_spec.rb spec/validators/rsa_key_validator_spec.rb spec/lib/banzai/pipeline/service_desk_email_pipeline_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/manage_menu_spec.rb spec/graphql/types/projects/fork_details_type_spec.rb spec/serializers/admin/user_entity_spec.rb spec/services/gravatar_service_spec.rb spec/presenters/work_item_presenter_spec.rb spec/graphql/types/work_items/widgets/labels_type_spec.rb spec/services/bulk_imports/get_importable_data_service_spec.rb spec/lib/gitlab/ci/status/core_spec.rb spec/serializers/project_mirror_entity_spec.rb spec/helpers/admin/components_helper_spec.rb spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb spec/graphql/types/ci/freeze_period_status_enum_spec.rb spec/lib/gitlab/ci/config/interpolation/functions/base_spec.rb spec/graphql/types/packages/conan/file_metadatum_type_spec.rbKnapsack report generator started!141/builds/gitlab-org/gitlab/ee/app/services/remote_development/service_response_factory.rb:41: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!142/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/create_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!143/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/reconcile_service.rb:38: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!144/builds/gitlab-org/gitlab/ee/app/services/remote_development/workspaces/update_service.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!145/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/main.rb:32: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!146/builds/gitlab-org/gitlab/ee/lib/remote_development/agent_config/updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!147/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!148/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/authorizer.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!149/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!150/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!151/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!152/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!153/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!154/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_fetcher.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!155/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/devfile_flattener.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!156/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!157/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!158/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/editor_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!159/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!160/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:54: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!161/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:102: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!162/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:126: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!163/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:159: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!164/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:202: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!165/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/post_flatten_devfile_validator.rb:235: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!166/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!167/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/pre_flatten_devfile_validator.rb:52: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!168/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!169/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!170/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:18: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!171/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/project_cloner_component_injector.rb:23: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!172/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!173/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!174/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/volume_component_injector.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!175/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/main.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!176/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/authorizer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!177/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!178/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/agent_infos_observer.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!179/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!180/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_extractor.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!181/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_to_infos_converter.rb:14: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!182/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/input/params_validator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!183/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/rails_infos_observer.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!184/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/output/workspaces_to_rails_infos_converter.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!185/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/orphaned_workspaces_observer.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!186/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_from_agent_infos_updater.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!187/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_finder.rb:16: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!188/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/reconcile/persistence/workspaces_to_be_returned_updater.rb:11: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!189Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true}190Test environment set up in 1.951271346 seconds191Issue192 Associations193 is expected to belong to milestone required: false194 is expected to belong to project required: false195 is expected to belong to work_item_type class_name => WorkItems::Type required: false196 is expected to belong to moved_to class_name => Issue required: false197 is expected to have one moved_from class_name => Issue198 is expected to belong to duplicated_to class_name => Issue required: false199 is expected to belong to closed_by class_name => User required: false200 is expected to have many assignees201 is expected to have many user_mentions class_name => IssueUserMention202 is expected to have many designs203 is expected to have many design_versions204 is expected to have one sentry_issue205 is expected to have one alert_management_alert206 is expected to have many alert_management_alerts207 is expected to have many resource_milestone_events208 is expected to have many resource_state_events209 is expected to have and belong to many prometheus_alert_events210 is expected to have and belong to many self_managed_prometheus_alert_events211 is expected to have many prometheus_alerts212 is expected to have many issue_email_participants213 is expected to have one email214 is expected to have many timelogs215 is expected to have one incident_management_issuable_escalation_status216 is expected to have many issue_customer_relations_contacts217 is expected to have many customer_relations_contacts218 is expected to have many incident_management_timeline_events219 is expected to have many assignment_events class_name => ResourceEvents::IssueAssignmentEvent inverse_of => issue220 versions.most_recent221 returns the most recent version222 modules223 is expected to includes the Issuable module224 is expected to includes the Referable module225 is expected to includes the Sortable module226 is expected to includes the Taskable module227 is expected to includes the MilestoneEventable module228 is expected to includes the StateEventable module229 behaves like AtomicInternalId230 .has_internal_id231 Module inclusion232 is expected to includes the AtomicInternalId module233 Validation234 when presence validation is required235 when creating an object236 raises an error if the internal id is blank237 when updating an object238 raises an error if the internal id is blank239 when presence validation is not required240 when creating an object241 does not raise an error if the internal id is blank (PENDING: No reason given)242 when updating an object243 does not raise an error if the internal id is blank (PENDING: No reason given)244 Creating an instance245 saves a new instance properly246 internal id generation247 calls InternalId.generate_next and sets internal id attribute248 does not overwrite an existing internal id249 when the instance has an internal ID set250 calls InternalId.update_last_value and sets the `last_value` to that of the instance251 unsetting the instance internal id on rollback252 when the internal id has been changed253 when the internal id is automatically set254 clears it on the instance255 when the internal id is manually set256 does not clear it on the instance257 when the internal id has not been changed258 preserves the value on the instance259 supply of internal ids260 provides a persistent supply of IID values, sensitive to the current state261 #reset_scope_internal_id_attribute262 rewinds the allocated IID263 allocates the same IID264 validations265 is expected not to allow :confidential to be ‹nil›266 is expected to allow :confidential to be ‹true› or ‹false›267 custom validations268 due_date_after_start_date269 when both values are not present270 is expected to be truthy271 when start date is present and due date is not272 is expected to be truthy273 when due date is present and start date is not274 is expected to be truthy275 when both date values are present276 when due date is greater than start date277 is expected to be truthy278 when due date is equal to start date279 is expected to be truthy280 when due date is before start date281 is expected to be falsey282 adds an error message283 #allowed_work_item_type_change284 old_type: :issue, new_type: :incident, is_valid: true285 is possible to change type only between selected types286 old_type: :incident, new_type: :issue, is_valid: true287 is possible to change type only between selected types288 old_type: :test_case, new_type: :issue, is_valid: true289 is possible to change type only between selected types290 old_type: :issue, new_type: :test_case, is_valid: true291 is possible to change type only between selected types292 old_type: :issue, new_type: :task, is_valid: false293 is possible to change type only between selected types294 old_type: :test_case, new_type: :task, is_valid: false295 is possible to change type only between selected types296 old_type: :incident, new_type: :task, is_valid: false297 is possible to change type only between selected types298 old_type: :task, new_type: :issue, is_valid: false299 is possible to change type only between selected types300 old_type: :task, new_type: :incident, is_valid: false301 is possible to change type only between selected types302 old_type: :task, new_type: :test_case, is_valid: false303 is possible to change type only between selected types304 confidentiality305 when parent and child are confidential306 does not allow to make child not-confidential307 allows to make parent not-confidential308 when parent and child are not-confidential309 does not allow to make parent confidential310 allows to make child confidential311 callbacks312 #ensure_metrics!313 creates metrics after saving314 does not create duplicate metrics for an issue315 records current metrics316 when metrics record is missing317 creates the metrics record318 #ensure_work_item_type319 when a type was already set320 does not fetch a work item type from the DB321 does not fetch a work item type from the DB when updating the type322 ensures a work item type if updated to nil323 when no type was set324 sets a work item type before validation325 does not fetch type from DB if provided during update326 #record_create_action327 records the creation action after saving328 behaves like internal event tracking329 logs to Snowplow330 issue namespace331 sets the namespace_id332 when issue is created333 sets the namespace_id334 when existing issue is saved335 sets the namespace id336 order by upvotes337 .order_upvotes_desc338 orders on upvotes339 .order_upvotes_asc340 orders on upvotes341 .with_alert_management_alerts342 gets only issues with alerts343 .simple_sorts344 includes all keys345 .with_issue_type346 returns issues with the given issue type347 returns issues with the given issue types348 when multiple issue_types are provided349 joins the work_item_types table for filtering350 when a single issue_type is provided351 uses an optimized query for a single work item type352 when no types are provided353 activerecord handles the false condition354 .without_issue_type355 returns issues without the given issue type356 returns issues without the given issue types357 uses the work_item_types table for filtering358 .order_severity359 sorting ascending360 is expected to eq [#<Issue id:77 namespace32/project-32#1>, #<Issue id:76 namespace31/project-31#1>, #<Issue id:75 namespace30/project-30#1>]361 sorting descending362 is expected to eq [#<Issue id:75 namespace30/project-30#1>, #<Issue id:76 namespace31/project-31#1>, #<Issue id:77 namespace32/project-32#1>]363 .order_title364 sorting ascending365 is expected to eq [#<Issue id:79 namespace34/project-34#1>, #<Issue id:80 namespace35/project-35#1>, #<Issue id:81 namespace36/project-36#1>, #<Issue id:78 namespace33/project-33#1>]366 sorting descending367 is expected to eq [#<Issue id:78 namespace33/project-33#1>, #<Issue id:81 namespace36/project-36#1>, #<Issue id:80 namespace35/project-35#1>, #<Issue id:79 namespace34/project-34#1>]368 #order_by_relative_position369 returns ordered list370 order by escalation status371 .order_escalation_status_asc372 is expected to eq [#<Issue id:86 namespace37/project-37#1>, #<Issue id:87 namespace38/project-38#1>, #<Issue id:88 namespace39/project-39#1>]373 .order_escalation_status_desc374 is expected to eq [#<Issue id:87 namespace38/project-38#1>, #<Issue id:86 namespace37/project-37#1>, #<Issue id:88 namespace39/project-39#1>]375 #sort376 by relative_position377 sorts asc with nulls at the end378 #card_attributes379 includes the author name380 includes the assignee name381 #close382 sets closed_at to Time.current when an issue is closed383 changes the state to closed384 when an argument is provided385 and the argument is a User386 changes closed_by to the given user387 and the argument is a not a User388 does not change closed_by389 when an argument is not provided390 does not change closed_by391 #reopen392 sets closed_at to nil when an issue is reopened393 sets closed_by to nil when an issue is reopened394 clears moved_to_id for moved issues395 clears duplicated_to_id for duplicated issues396 changes the state to opened397 #to_reference398 when nil argument399 returns issue id400 returns complete path to the issue with full: true401 when argument is a project402 when same project403 returns issue id404 returns full reference with full: true405 when cross-project in same namespace406 returns a cross-project reference407 when cross-project in different namespace408 returns complete path to the issue409 when argument is a namespace410 when same as issue411 returns path to the issue with the project name412 returns full reference with full: true413 when different to issue namespace414 returns full path to the issue with full: true415 #to_reference with table syntax416 issue: project_issue, full: false, from: nil, result: lazy { "##{issue.iid}" }417 returns correct reference418 issue: project_issue, full: true, from: nil, result: project_issue_full_reference419 returns correct reference420 issue: project_issue, full: false, from: group, result: lazy { "#{project.path}##{issue.iid}" }421 returns correct reference422 issue: project_issue, full: true, from: group, result: project_issue_full_reference423 returns correct reference424 issue: project_issue, full: false, from: parent, result: project_issue_full_reference425 returns correct reference426 issue: project_issue, full: true, from: parent, result: project_issue_full_reference427 returns correct reference428 issue: project_issue, full: false, from: project, result: lazy { "##{issue.iid}" }429 returns correct reference430 issue: project_issue, full: true, from: project, result: project_issue_full_reference431 returns correct reference432 issue: project_issue, full: false, from: project_namespace, result: lazy { "##{issue.iid}" }433 returns correct reference434 issue: project_issue, full: true, from: project_namespace, result: project_issue_full_reference435 returns correct reference436 issue: project_issue, full: false, from: same_namespace_project, result: lazy { "#{project.path}##{issue.iid}" }437 returns correct reference438 issue: project_issue, full: true, from: same_namespace_project, result: project_issue_full_reference439 returns correct reference440 issue: project_issue, full: false, from: same_namespace_project_namespace, result: lazy { "#{project.path}##{issue.iid}" }441 returns correct reference442 issue: project_issue, full: true, from: same_namespace_project_namespace, result: project_issue_full_reference443 returns correct reference444 issue: project_issue, full: false, from: another_group, result: project_issue_full_reference445 returns correct reference446 issue: project_issue, full: true, from: another_group, result: project_issue_full_reference447 returns correct reference448 issue: project_issue, full: false, from: another_namespace_project, result: project_issue_full_reference449 returns correct reference450 issue: project_issue, full: true, from: another_namespace_project, result: project_issue_full_reference451 returns correct reference452 issue: project_issue, full: false, from: another_namespace_project_namespace, result: project_issue_full_reference453 returns correct reference454 issue: project_issue, full: true, from: another_namespace_project_namespace, result: project_issue_full_reference455 returns correct reference456 issue: project_issue, full: false, from: user_namespace, result: project_issue_full_reference457 returns correct reference458 issue: project_issue, full: true, from: user_namespace, result: project_issue_full_reference459 returns correct reference460 issue: group_issue, full: false, from: nil, result: lazy { "##{issue.iid}" }461 returns correct reference462 issue: group_issue, full: true, from: nil, result: group_issue_full_reference463 returns correct reference464 issue: group_issue, full: false, from: user_namespace, result: group_issue_full_reference465 returns correct reference466 issue: group_issue, full: true, from: user_namespace, result: group_issue_full_reference467 returns correct reference468 issue: group_issue, full: false, from: group, result: lazy { "##{issue.iid}" }469 returns correct reference470 issue: group_issue, full: true, from: group, result: group_issue_full_reference471 returns correct reference472 issue: group_issue, full: false, from: parent, result: lazy { "#{group.path}##{issue.iid}" }473 returns correct reference474 issue: group_issue, full: true, from: parent, result: group_issue_full_reference475 returns correct reference476 issue: group_issue, full: false, from: project, result: lazy { "#{group.path}##{issue.iid}" }477 returns correct reference478 issue: group_issue, full: true, from: project, result: group_issue_full_reference479 returns correct reference480 issue: group_issue, full: false, from: project_namespace, result: lazy { "#{group.path}##{issue.iid}" }481 returns correct reference482 issue: group_issue, full: true, from: project_namespace, result: group_issue_full_reference483 returns correct reference484 issue: group_issue, full: false, from: another_group, result: group_issue_full_reference485 returns correct reference486 issue: group_issue, full: true, from: another_group, result: group_issue_full_reference487 returns correct reference488 issue: group_issue, full: false, from: another_namespace_project, result: group_issue_full_reference489 returns correct reference490 issue: group_issue, full: true, from: another_namespace_project, result: group_issue_full_reference491 returns correct reference492 issue: group_issue, full: false, from: another_namespace_project_namespace, result: group_issue_full_reference493 returns correct reference494 issue: group_issue, full: true, from: another_namespace_project_namespace, result: group_issue_full_reference495 returns correct reference496 issue: user_issue, full: false, from: nil, result: lazy { "##{issue.iid}" }497 returns correct reference498 issue: user_issue, full: true, from: nil, result: user_issue_full_reference499 returns correct reference500 issue: user_issue, full: false, from: user_namespace, result: lazy { "##{issue.iid}" }501 returns correct reference502 issue: user_issue, full: true, from: user_namespace, result: user_issue_full_reference503 returns correct reference504 issue: user_issue, full: false, from: group, result: user_issue_full_reference505 returns correct reference506 issue: user_issue, full: true, from: group, result: user_issue_full_reference507 returns correct reference508 issue: user_issue, full: false, from: parent, result: user_issue_full_reference509 returns correct reference510 issue: user_issue, full: true, from: parent, result: user_issue_full_reference511 returns correct reference512 issue: user_issue, full: false, from: project, result: user_issue_full_reference513 returns correct reference514 issue: user_issue, full: true, from: project, result: user_issue_full_reference515 returns correct reference516 issue: user_issue, full: false, from: project_namespace, result: user_issue_full_reference517 returns correct reference518 issue: user_issue, full: true, from: project_namespace, result: user_issue_full_reference519 returns correct reference520 issue: user_issue, full: false, from: another_group, result: user_issue_full_reference521 returns correct reference522 issue: user_issue, full: true, from: another_group, result: user_issue_full_reference523 returns correct reference524 issue: user_issue, full: false, from: another_namespace_project, result: user_issue_full_reference525 returns correct reference526 issue: user_issue, full: true, from: another_namespace_project, result: user_issue_full_reference527 returns correct reference528 issue: user_issue, full: false, from: another_namespace_project_namespace, result: user_issue_full_reference529 returns correct reference530 issue: user_issue, full: true, from: another_namespace_project_namespace, result: user_issue_full_reference531 returns correct reference532 #assignee_or_author?533 returns true for a user that is assigned to an issue534 returns true for a user that is the author of an issue535 returns false for a user that is not the assignee or author536 #related_issues to relate incidents and issues537 returns only authorized related issues for given user538 returns issues with valid issue_link_type539 returns issues including the link creation time540 returns issues including the link update time541 when a user cannot read cross project542 only returns issues within the same project543 #can_move?544 user is not a member of project issue belongs to545 is expected to eq false546 user is reporter in project issue belongs to547 is expected to eq true548 issue not persisted549 is expected to eq false550 checking destination project also551 destination project allowed552 is expected to eq true553 destination project not allowed554 is expected to eq false555 #moved?556 when issue has not been moved557 is expected not to be moved558 when issue has already been moved559 is expected to be moved560 #duplicated?561 issue not duplicated562 is expected to eq false563 issue already duplicated564 is expected to eq true565 #from_service_desk?566 when issue author is support bot567 is expected to be truthy568 when issue author is not support bot569 is expected to be falsey570 #suggested_branch_name571 #to_branch_name does not exists572 returns #to_branch_name573 #to_branch_name exists not ending with -index574 returns #to_branch_name ending with -2575 #to_branch_name exists ending with -index576 returns #to_branch_name ending with max index + 1577 when branch name still exists after 5 attempts578 returns #to_branch_name ending with random characters579 behaves like an editable mentionable580 creates new cross-reference notes when the mentionable text is edited581 behaves like a mentionable582 generates a descriptive back-reference583 extracts references from its reference property584 creates cross-reference notes585 when there are cached markdown fields586 sends in cached markdown fields when appropriate587 when there are cached markdown fields588 refreshes markdown cache if necessary589 when the markdown cache is stale590 persists the refreshed cache so that it does not have to be refreshed every time591 behaves like a Taskable592 with multiple tasks593 returns the correct task status594 #tasks?595 returns true when object has tasks596 returns false when object has no tasks597 with nested tasks598 returns the correct task status599 with an incomplete task600 returns the correct task status601 with tasks that are not formatted correctly602 returns the correct task status603 with a complete task604 returns the correct task status605 with tasks in blockquotes606 returns the correct task status607 .to_branch_name608 parameterizes arguments and joins with dashes609 preserves the case in the first argument610 truncates branch name to at most 100 characters611 truncates dangling parts of the branch name612 takes issue branch template into account613 #to_branch_name614 returns a branch name with the issue title if not confidential615 returns a generic branch name if confidential616 #can_be_worked_on?617 is expected to be can be worked on618 is closed619 is expected not to be can be worked on620 project is forked621 is expected not to be can be worked on622 #participants623 behaves like issuable participants624 when resource parent is public625 and users are referenced on notes626 includes the issue author627 includes the authors of the notes628 and note is confidential629 and mentions users630 only includes users that can read the note as participants631 using a private project632 does not include mentioned users that do not have access to the project633 cached counts634 updates when assignees change635 #visible_to_user?636 with a project637 returns false when feature is disabled638 without a user639 with issue available as public640 returns true when the issue is publicly visible641 returns false when the issue is not publicly visible642 with issues available only to team members in a public project643 returns false644 with a user645 with an admin user646 when admin mode is enabled647 behaves like issue readable by user648 is expected to eq true649 behaves like confidential issue readable by user650 is expected to eq true651 behaves like hidden issue readable by user652 is expected to eq true653 when admin mode is disabled654 behaves like issue not readable by user655 is expected to eq false656 behaves like confidential issue not readable by user657 is expected to eq false658 behaves like hidden issue not readable by user659 is expected to eq false660 with an owner661 behaves like issue readable by user662 is expected to eq true663 behaves like confidential issue readable by user664 is expected to eq true665 behaves like hidden issue not readable by user666 is expected to eq false667 with a reporter user668 behaves like issue readable by user669 is expected to eq true670 behaves like confidential issue readable by user671 is expected to eq true672 behaves like hidden issue not readable by user673 is expected to eq false674 with a guest user675 behaves like issue readable by user676 is expected to eq true677 behaves like confidential issue not readable by user678 is expected to eq false679 behaves like hidden issue not readable by user680 is expected to eq false681 when user is an assignee682 behaves like issue readable by user683 is expected to eq true684 behaves like confidential issue readable by user685 is expected to eq true686 behaves like hidden issue not readable by user687 is expected to eq false688 when user is the author689 behaves like issue readable by user690 is expected to eq true691 behaves like confidential issue readable by user692 is expected to eq true693 behaves like hidden issue not readable by user694 is expected to eq false695 with a user that is not a member696 using a public project697 behaves like issue readable by user698 is expected to eq true699 behaves like confidential issue not readable by user700 is expected to eq false701 behaves like hidden issue not readable by user702 is expected to eq false703 using an internal project704 using an internal user705 behaves like issue readable by user706 is expected to eq true707 behaves like confidential issue not readable by user708 is expected to eq false709 behaves like hidden issue not readable by user710 is expected to eq false711 using an external user712 behaves like issue not readable by user713 is expected to eq false714 behaves like confidential issue not readable by user715 is expected to eq false716 behaves like hidden issue not readable by user717 is expected to eq false718 using an external user719 behaves like issue not readable by user720 is expected to eq false721 behaves like confidential issue not readable by user722 is expected to eq false723 behaves like hidden issue not readable by user724 is expected to eq false725 with an external authentication service726 is `false` when an external authorization service is enabled727 checks the external service to determine if an issue is readable by a user728 does not check the external service if a user does not have access to the project729 with an admin730 when admin mode is enabled731 does not check the external webservice732 when admin mode is disabled733 checks the external service to determine if an issue is readable by the admin734 when issue is moved to a private project735 when user is the author of the original issue736 behaves like issue visible if user has guest access737 when user is not a member738 behaves like issue not readable by user739 is expected to eq false740 behaves like confidential issue not readable by user741 is expected to eq false742 when user is a guest743 behaves like issue readable by user744 is expected to eq true745 behaves like confidential issue readable by user746 is expected to eq true747 when user is an assignee in the original issue748 behaves like issue visible if user has guest access749 when user is not a member750 behaves like issue not readable by user751 is expected to eq false752 behaves like confidential issue not readable by user753 is expected to eq false754 when user is a guest755 behaves like issue readable by user756 is expected to eq true757 behaves like confidential issue readable by user758 is expected to eq true759 when user is not the author or an assignee in original issue760 when user is a guest761 behaves like issue readable by user762 is expected to eq true763 behaves like confidential issue not readable by user764 is expected to eq false765 when user is a reporter766 behaves like issue readable by user767 is expected to eq true768 behaves like confidential issue readable by user769 is expected to eq true770 #publicly_visible?771 project_visiblity: :public, confidential: false, expected_value: true772 is expected to eq true773 project_visiblity: :public, confidential: true, expected_value: false774 is expected to eq false775 project_visiblity: :internal, confidential: false, expected_value: false776 is expected to eq false777 project_visiblity: :internal, confidential: true, expected_value: false778 is expected to eq false779 project_visiblity: :private, confidential: false, expected_value: false780 is expected to eq false781 project_visiblity: :private, confidential: true, expected_value: false782 is expected to eq false783 #allow_possible_spam?784 when the `allow_possible_spam` application setting is turned off785 when the issue is private786 is expected to eq true787 when the user is the support bot788 is expected to eq false789 when the issue is public790 is expected to eq false791 when the `allow_possible_spam` application setting is turned on792 is expected to eq true793 #check_for_spam?794 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:description=>"new"}, check_for_spam?: true795 checks for spam when necessary796 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:title=>"new"}, check_for_spam?: true797 checks for spam when necessary798 support_bot?: false, visibility_level: 20, confidential: true, new_attributes: {:confidential=>false}, check_for_spam?: false799 checks for spam when necessary800 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:confidential=>true}, check_for_spam?: false801 checks for spam when necessary802 support_bot?: false, visibility_level: 20, confidential: true, new_attributes: {:description=>"new"}, check_for_spam?: true803 checks for spam when necessary804 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:title=>"new", :confidential=>true}, check_for_spam?: true805 checks for spam when necessary806 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:description=>"original description"}, check_for_spam?: false807 checks for spam when necessary808 support_bot?: false, visibility_level: 20, confidential: false, new_attributes: {:weight=>3}, check_for_spam?: false809 checks for spam when necessary810 support_bot?: false, visibility_level: 10, confidential: false, new_attributes: {:description=>"new"}, check_for_spam?: true811 checks for spam when necessary812 support_bot?: false, visibility_level: 0, confidential: false, new_attributes: {:description=>"new"}, check_for_spam?: true813 checks for spam when necessary814 support_bot?: true, visibility_level: 20, confidential: true, new_attributes: {:confidential=>false}, check_for_spam?: false815 checks for spam when necessary816 support_bot?: true, visibility_level: 20, confidential: false, new_attributes: {:confidential=>true}, check_for_spam?: false817 checks for spam when necessary818 support_bot?: true, visibility_level: 20, confidential: true, new_attributes: {:description=>"new"}, check_for_spam?: true819 checks for spam when necessary820 support_bot?: true, visibility_level: 20, confidential: false, new_attributes: {:title=>"new", :confidential=>true}, check_for_spam?: true821 checks for spam when necessary822 support_bot?: true, visibility_level: 10, confidential: false, new_attributes: {:description=>"new"}, check_for_spam?: true823 checks for spam when necessary824 support_bot?: true, visibility_level: 0, confidential: false, new_attributes: {:title=>"new"}, check_for_spam?: true825 checks for spam when necessary826 support_bot?: true, visibility_level: 20, confidential: false, new_attributes: {:description=>"original description"}, check_for_spam?: false827 checks for spam when necessary828 support_bot?: true, visibility_level: 0, confidential: true, new_attributes: {:weight=>3}, check_for_spam?: false829 checks for spam when necessary830 removing an issue831 refreshes the number of open issues of the project832 .public_only833 only returns public issues834 .confidential_only835 only returns confidential_only issues836 .without_hidden837 only returns without_hidden issues838 .by_project_id_and_iid839 behaves like a where_composite scope840 we pass an empty array841 returns a null relation842 we pass nil843 returns a null relation844 we pass a singleton composite id845 finds the first result846 we pass group of ids847 finds all the results848 performance849 is not O(N)850 .service_desk851 returns the service desk issue852 behaves like throttled touch853 #touch854 updates the updated_at timestamp855 updates the object at most once per minute856 relative positioning857 is not blocked for repositioning by default858 behaves like a class that supports relative positioning859 #scoped_items860 includes all items with the same scope861 #relative_siblings862 includes all items with the same scope, except self863 .move_nulls_to_end864 moves items with null relative_position to the end865 preserves relative position866 moves the item near the start position when there are no existing positions867 does not perform any moves if all items have their relative_position set868 manages to move nulls to the end even if there is a sequence at the end869 manages to move nulls to the end even if there is not enough space870 manages to move nulls to the end, stacking if we cannot create enough space871 manages to move nulls found in the relative scope872 can move many nulls873 does not have an N+1 issue874 .move_nulls_to_start875 moves items with null relative_position to the start876 moves the item near the start position when there are no existing positions877 preserves relative position878 does not perform any moves if all items have their relative_position set879 manages to move nulls to the start even if there is not enough space880 manages to move nulls to the end, stacking if we cannot create enough space881 #move_before882 moves item before883 can move the item before an item at the start884 can move the item before an item at MIN_POSITION885 can move the item before an item bunched up at MIN_POSITION886 when there is no space887 moves items correctly888 leap-frogging to the left889 can leap-frog STEPS times before needing to rebalance890 there is no space to the left after moving STEPS times891 rebalances to the right892 #move_after893 moves item after894 can move the item after an item bunched up at MAX_POSITION895 when there is no space896 can move the item after an item at MAX_POSITION897 moves items correctly898 leap-frogging899 rebalances after STEPS jumps900 #move_to_start901 places items at most IDEAL_DISTANCE from the start when the range is open902 moves item to the end903 positions the item at MIN_POSITION when there is only one space left904 rebalances when there is already an item at the MIN_POSITION905 deals with a run of elements at the start906 #move_to_end907 places items at most IDEAL_DISTANCE from the start when the range is open908 moves item to the end909 positions the item at MAX_POSITION when there is only one space left910 rebalances when there is already an item at the MAX_POSITION911 deals with a run of elements at the end912 #move_between913 positions item between two other914 positions item between on top915 positions item between to end916 positions items even when after and before positions are the same917 positions item in the middle of other two if distance is big enough918 positions item closer to the middle if we are at the very top919 positions item closer to the middle if we are at the very bottom920 positions item in the middle of other two921 positions item right if we pass non-sequential parameters922 avoids N+1 queries when rebalancing other items923 the two items are next to each other924 behaves like moves item between925 moves the middle item to between left and right926 there is no space927 behaves like moves item between928 moves the middle item to between left and right929 there is a bunch of items930 handles bunches correctly931 behaves like moves item between932 moves the middle item to between left and right933 when block_issue_repositioning flag is enabled for group934 is blocked for repositioning935 does not move issues with null position936 behaves like versioned description937 associations938 is expected to have many description_versions939 save_description_version940 when description was changed941 saves the old and new description for the first update942 only saves the new description for subsequent updates943 sets the new description version to `saved_description_version`944 clears `saved_description_version` after another save that does not change description945 when description was not changed946 does not save any description version947 #previous_updated_at948 returns updated_at value if updated_at did not change at all949 returns updated_at value if `previous_changes` has nil value for `updated_at`950 returns updated_at value if previous updated_at value is not present951 returns previous updated_at when present952 #design_collection953 returns a design collection954 current designs955 an issue has no designs956 is expected to be empty957 an issue only has current designs958 is expected to include #<DesignManagement::Design id:4 namespace1/project-1#1/designs[homescreen-4.jpg]>, #<DesignManagement::Design id:5 namespace1/project-1#1/designs[homescreen-5.jpg]>, and #<DesignManagement::Design id:6 namespace1/project-1#1/designs[homescreen-6.jpg]>959 an issue only has deleted designs960 is expected to be empty961 an issue has a mixture of current and deleted designs962 is expected to contain exactly #<DesignManagement::Design id:10 namespace1/project-1#1/designs[homescreen-10.jpg]> and #<DesignManagement::Design id:12 namespace1/project-1#1/designs[homescreen-12.jpg]>963 banzai_render_context964 sets the label_url_method in the context965 scheduling rebalancing966 when project in user namespace967 behaves like schedules issues rebalancing968 schedules rebalancing if there is no space left969 when project in a group namespace970 behaves like schedules issues rebalancing971 schedules rebalancing if there is no space left972 #allows_reviewers?973 returns false as we do not support reviewers on issues yet974 #issue_type975 gets the type field from the work_item_types table976 when the issue is not persisted977 uses the default work item type978 #issue_type_supports?979 raises error when feature is invalid980 #supports_assignee?981 is expected to eq true982 is expected to eq true983 is expected to eq false984 is expected to eq false985 is expected to eq true986 is expected to eq true987 is expected to eq true988 is expected to eq true989 is expected to eq true990 #supports_time_tracking?991 issue_type: :issue, supports_time_tracking: true992 is expected to eq true993 issue_type: :incident, supports_time_tracking: true994 is expected to eq true995 #supports_move_and_clone?996 issue_type: :issue, supports_move_and_clone: true997 is expected to eq true998 issue_type: :incident, supports_move_and_clone: true999 is expected to eq true1000 #email_participants_emails1001 returns a list of emails1002 #email_participants_downcase1003 returns a list of emails with all uppercase letters replaced with their lowercase counterparts1004 #escalation_status1005 returns the incident_management_issuable_escalation_status association1006 #expire_etag_cache1007 touches the etag cache store1008 #link_reference_pattern1009 with issue url1010 matches with expected attributes1011 with incident url1012 matches with expected attributes1013 order by closed_at1014 .order_closed_at_asc1015 orders on closed at1016 .order_closed_at_desc1017 orders on closed at1018 #full_search1019 when searching non-english terms1020 adds extra where clause to match partial index1021 adds extra where clause to match partial index1022 adds extra where clause to match partial index1023 adds extra where clause to match partial index1024 #work_item_type_with_default1025 is expected to eq #<WorkItems::Type id: 1, base_type: "issue", cached_markdown_version: nil, name: "Issue", description...reated_at: "2023-08-18 12:58:57.207853000 +0000", updated_at: "2023-08-18 12:58:57.207853000 +0000">1026 #unsubscribe_email_participant1027 deletes email for issue11028 does not delete email for issue2 when issue1 is used1029 #update_search_data!1030 copies namespace_id to search data1031Ci::JobArtifact1032 is expected to respond to #file1033 is expected to respond to #created_at1034 is expected to respond to #updated_at1035 is expected to delegate #open to the #file object1036 is expected to delegate #exists? to the #file object1037 Associations1038 is expected to belong to project required: false1039 is expected to belong to job class_name => Ci::Build required: false inverse_of => job_artifacts1040 is expected to validate that :job cannot be empty/falsy1041 is expected to validate that :partition_id cannot be empty/falsy1042 behaves like having unique enum values1043 has unique values in "file_format"1044 has unique values in "locked"1045 has unique values in "accessibility"1046 has unique values in "file_type"1047 has unique values in "file_location"1048 behaves like UpdateProjectStatistics1049 is expected to be a new record1050 when statistic is a counter attribute1051 when creating1052 stores pending increments for async update1053 when updating1054 stores pending increments for async update1055 avoids N + 1 queries1056 when destroying1057 stores pending increment for async update1058 when it is destroyed from the project level1059 does not store pending increments for async update1060 does not schedule a namespace statistics worker1061 after_create_commit callback1062 logs the job artifact create1063 after_destroy_commit callback1064 logs the job artifact destroy1065 .not_expired1066 returns artifacts that have not expired1067 .all_reports1068 is expected to be empty1069 when there are reports1070 is expected to contain exactly #<Ci::JobArtifact project_id: 121, file_type: "junit", size: 568, created_at: "2023-08-18 13:01:36.88...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil> and #<Ci::JobArtifact project_id: 122, file_type: "codequality", size: 1877, created_at: "2023-08-18 13:0...nown", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>1071 .of_report_type1072 test_reports1073 when there is a test report1074 is expected to eq [#<Ci::JobArtifact project_id: 123, file_type: "junit", size: 568, created_at: "2023-08-18 13:01:37.7...own", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>]1075 when there are no test reports1076 is expected to be empty1077 accessibility_reports1078 when there is an accessibility report1079 is expected to eq [#<Ci::JobArtifact project_id: 125, file_type: "accessibility", size: 5977, created_at: "2023-08-18 1...own", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>]1080 when there are no accessibility report1081 is expected to be empty1082 coverage_reports1083 when there is a coverage report1084 is expected to eq [#<Ci::JobArtifact project_id: 126, file_type: "cobertura", size: 576, created_at: "2023-08-18 13:01:...own", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>]1085 when there are no coverage reports1086 is expected to be empty1087 codequality_reports1088 when there is a codequality report1089 is expected to eq [#<Ci::JobArtifact project_id: 128, file_type: "codequality", size: 1877, created_at: "2023-08-18 13:...own", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>]1090 when there are no codequality reports1091 is expected to be empty1092 terraform_reports1093 when there is a terraform report1094 is expected to eq [#<Ci::JobArtifact project_id: 130, file_type: "terraform", size: 40, created_at: "2023-08-18 13:01:4...own", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>]1095 when there are no terraform reports1096 is expected to be empty1097 artifacts_public?1098 when job artifact created by default1099 is expected to be truthy1100 when job artifact created as public1101 is expected to be truthy1102 when job artifact created as private1103 is expected to be falsey1104 and the non_public_artifacts feature flag is disabled1105 is expected to be truthy1106 .file_types_for_report1107 returns the report file types for the report type1108 when given an unrecognized report type1109 raises error1110 .associated_file_types_for1111 file_type: "codequality", result: ["codequality"]1112 is expected to eq ["codequality"]1113 file_type: "quality", result: nil1114 is expected to eq nil1115 .erasable_file_types1116 returns a list of erasable file types1117 .erasable1118 when there is an erasable artifact1119 is expected to eq [#<Ci::JobArtifact project_id: 136, file_type: "junit", size: 568, created_at: "2023-08-18 13:01:44.3...own", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>]1120 when there are no erasable artifacts1121 is expected to be empty1122 .non_trace1123 when there is only a trace job artifact1124 is expected to be empty1125 when there is only a non-trace job artifact1126 is expected to eq [#<Ci::JobArtifact project_id: 139, file_type: "junit", size: 568, created_at: "2023-08-18 13:01:46.0...own", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>]1127 when there are both trace and non-trace job artifacts1128 is expected to eq [#<Ci::JobArtifact project_id: 141, file_type: "junit", size: 568, created_at: "2023-08-18 13:01:47.0...own", partition_id: 100, accessibility: "public", file_final_path: nil, verification_checksum: nil>]1129 .downloadable1130 filters for downloadable artifacts1131 .archived_trace_exists_for?1132 when the specified job_id exists1133 is expected to be truthy1134 when the job does have archived trace1135 is expected to be falsy1136 when the specified job_id does not exist1137 is expected to be falsy1138 #stored?1139 when the file exists1140 is expected to be truthy1141 when the file does not exist1142 is expected to be falsy1143 .for_sha1144 returns job artifacts for a given pipeline sha1145 .for_job_name1146 returns job artifacts for a given job name1147 .unlocked1148 with locked pipelines1149 returns an empty array1150 with unlocked pipelines1151 returns the artifact1152 .order_expired_asc1153 returns ordered artifacts1154 .for_project1155 returns artifacts only for given project(s)1156 created_in_time_range1157 returns artifacts created in given time range1158 .created_at_before1159 returns artifacts1160 .id_before1161 returns artifacts1162 .id_after1163 returns artifacts1164 .ordered_by_id1165 returns artifacts in asc order1166 creating the artifact1167 sets the size from the file size1168 updating the artifact file1169 updates the artifact size1170 when updating any field except the file1171 the `after_commit` hook does not update `file_store`1172 validates file format1173 when archive type with zip format1174 is expected to be valid1175 when archive type without format specification1176 is expected not to be valid1177 when archive type with other formats1178 with 11179 is expected not to be valid1180 with 31181 is expected not to be valid1182 when metadata type with gzip format1183 is expected to be valid1184 when metadata type without format specification1185 is expected not to be valid1186 when metadata type with other formats1187 with 11188 is expected not to be valid1189 with 21190 is expected not to be valid1191 when junit type with gzip format1192 is expected to be valid1193 when junit type without format specification1194 is expected not to be valid1195 when junit type with other formats1196 with 11197 is expected not to be valid1198 with 21199 is expected not to be valid1200 when metrics type with gzip format1201 is expected to be valid1202 when metrics type without format specification1203 is expected not to be valid1204 when metrics type with other formats1205 with 11206 is expected not to be valid1207 with 21208 is expected not to be valid1209 when metrics_referee type with gzip format1210 is expected to be valid1211 when metrics_referee type without format specification1212 is expected not to be valid1213 when metrics_referee type with other formats1214 with 11215 is expected not to be valid1216 with 21217 is expected not to be valid1218 when network_referee type with gzip format1219 is expected to be valid1220 when network_referee type without format specification1221 is expected not to be valid1222 when network_referee type with other formats1223 with 11224 is expected not to be valid1225 with 21226 is expected not to be valid1227 when dotenv type with gzip format1228 is expected to be valid1229 when dotenv type without format specification1230 is expected not to be valid1231 when dotenv type with other formats1232 with 11233 is expected not to be valid1234 with 21235 is expected not to be valid1236 when cobertura type with gzip format1237 is expected to be valid1238 when cobertura type without format specification1239 is expected not to be valid1240 when cobertura type with other formats1241 with 11242 is expected not to be valid1243 with 21244 is expected not to be valid1245 when cluster_applications type with gzip format1246 is expected to be valid1247 when cluster_applications type without format specification1248 is expected not to be valid1249 when cluster_applications type with other formats1250 with 11251 is expected not to be valid1252 with 21253 is expected not to be valid1254 when lsif type with zip format1255 is expected to be valid1256 when lsif type without format specification1257 is expected not to be valid1258 when lsif type with other formats1259 with 11260 is expected not to be valid1261 with 31262 is expected not to be valid1263 when cyclonedx type with gzip format1264 is expected to be valid1265 when cyclonedx type without format specification1266 is expected not to be valid1267 when cyclonedx type with other formats1268 with 11269 is expected not to be valid1270 with 21271 is expected not to be valid1272 when annotations type with gzip format1273 is expected to be valid1274 when annotations type without format specification1275 is expected not to be valid1276 when annotations type with other formats1277 with 11278 is expected not to be valid1279 with 21280 is expected not to be valid1281 when sast type with raw format1282 is expected to be valid1283 when sast type without format specification1284 is expected not to be valid1285 when sast type with other formats1286 with 21287 is expected not to be valid1288 with 31289 is expected not to be valid1290 when secret_detection type with raw format1291 is expected to be valid1292 when secret_detection type without format specification1293 is expected not to be valid1294 when secret_detection type with other formats1295 with 21296 is expected not to be valid1297 with 31298 is expected not to be valid1299 when dependency_scanning type with raw format1300 is expected to be valid1301 when dependency_scanning type without format specification1302 is expected not to be valid1303 when dependency_scanning type with other formats1304 with 21305 is expected not to be valid1306 with 31307 is expected not to be valid1308 when container_scanning type with raw format1309 is expected to be valid1310 when container_scanning type without format specification1311 is expected not to be valid1312 when container_scanning type with other formats1313 with 21314 is expected not to be valid1315 with 31316 is expected not to be valid1317 when cluster_image_scanning type with raw format1318 is expected to be valid1319 when cluster_image_scanning type without format specification1320 is expected not to be valid1321 when cluster_image_scanning type with other formats1322 with 21323 is expected not to be valid1324 with 31325 is expected not to be valid1326 when dast type with raw format1327 is expected to be valid1328 when dast type without format specification1329 is expected not to be valid1330 when dast type with other formats1331 with 21332 is expected not to be valid1333 with 31334 is expected not to be valid1335 when license_scanning type with raw format1336 is expected to be valid1337 when license_scanning type without format specification1338 is expected not to be valid1339 when license_scanning type with other formats1340 with 21341 is expected not to be valid1342 with 31343 is expected not to be valid1344 when accessibility type with raw format1345 is expected to be valid1346 when accessibility type without format specification1347 is expected not to be valid1348 when accessibility type with other formats1349 with 21350 is expected not to be valid1351 with 31352 is expected not to be valid1353 when codequality type with raw format1354 is expected to be valid1355 when codequality type without format specification1356 is expected not to be valid1357 when codequality type with other formats1358 with 21359 is expected not to be valid1360 with 31361 is expected not to be valid1362 when performance type with raw format1363 is expected to be valid1364 when performance type without format specification1365 is expected not to be valid1366 when performance type with other formats1367 with 21368 is expected not to be valid1369 with 31370 is expected not to be valid1371 when browser_performance type with raw format1372 is expected to be valid1373 when browser_performance type without format specification1374 is expected not to be valid1375 when browser_performance type with other formats1376 with 21377 is expected not to be valid1378 with 31379 is expected not to be valid1380 when load_performance type with raw format1381 is expected to be valid1382 when load_performance type without format specification1383 is expected not to be valid1384 when load_performance type with other formats1385 with 21386 is expected not to be valid1387 with 31388 is expected not to be valid1389 when terraform type with raw format1390 is expected to be valid1391 when terraform type without format specification1392 is expected not to be valid1393 when terraform type with other formats1394 with 21395 is expected not to be valid1396 with 31397 is expected not to be valid1398 when requirements type with raw format1399 is expected to be valid1400 when requirements type without format specification1401 is expected not to be valid1402 when requirements type with other formats1403 with 21404 is expected not to be valid1405 with 31406 is expected not to be valid1407 when requirements_v2 type with raw format1408 is expected to be valid1409 when requirements_v2 type without format specification1410 is expected not to be valid1411 when requirements_v2 type with other formats1412 with 21413 is expected not to be valid1414 with 31415 is expected not to be valid1416 when coverage_fuzzing type with raw format1417 is expected to be valid1418 when coverage_fuzzing type without format specification1419 is expected not to be valid1420 when coverage_fuzzing type with other formats1421 with 21422 is expected not to be valid1423 with 31424 is expected not to be valid1425 when api_fuzzing type with raw format1426 is expected to be valid1427 when api_fuzzing type without format specification1428 is expected not to be valid1429 when api_fuzzing type with other formats1430 with 21431 is expected not to be valid1432 with 31433 is expected not to be valid1434 validates DEFAULT_FILE_NAMES1435 expects archive to be included1436 expects metadata to be included1437 expects trace to be included1438 expects junit to be included1439 expects sast to be included1440 expects dependency_scanning to be included1441 expects container_scanning to be included1442 expects dast to be included1443 expects codequality to be included1444 expects license_scanning to be included1445 expects performance to be included1446 expects metrics to be included1447 expects metrics_referee to be included1448 expects network_referee to be included1449 expects lsif to be included1450 expects dotenv to be included1451 expects cobertura to be included1452 expects terraform to be included1453 expects accessibility to be included1454 expects cluster_applications to be included1455 expects secret_detection to be included1456 expects requirements to be included1457 expects coverage_fuzzing to be included1458 expects browser_performance to be included1459 expects load_performance to be included1460 expects api_fuzzing to be included1461 expects cluster_image_scanning to be included1462 expects cyclonedx to be included1463 expects requirements_v2 to be included1464 expects annotations to be included1465 validates TYPE_AND_FORMAT_PAIRS1466 expects archive to be included1467 expects metadata to be included1468 expects trace to be included1469 expects junit to be included1470 expects sast to be included1471 expects dependency_scanning to be included1472 expects container_scanning to be included1473 expects dast to be included1474 expects codequality to be included1475 expects license_scanning to be included1476 expects performance to be included1477 expects metrics to be included1478 expects metrics_referee to be included1479 expects network_referee to be included1480 expects lsif to be included1481 expects dotenv to be included1482 expects cobertura to be included1483 expects terraform to be included1484 expects accessibility to be included1485 expects cluster_applications to be included1486 expects secret_detection to be included1487 expects requirements to be included1488 expects coverage_fuzzing to be included1489 expects browser_performance to be included1490 expects load_performance to be included1491 expects api_fuzzing to be included1492 expects cluster_image_scanning to be included1493 expects cyclonedx to be included1494 expects requirements_v2 to be included1495 expects annotations to be included1496 #file1497 the uploader api1498 is expected to respond to #store_dir1499 is expected to respond to #cache_dir1500 is expected to respond to #work_dir1501 expired?1502 when expire_at is nil1503 returns false1504 when expire_at is in the past1505 returns true1506 when expire_at is in the future1507 returns false1508 #expiring?1509 when expire_at is nil1510 returns false1511 when expire_at is in the past1512 returns false1513 when expire_at is in the future1514 returns true1515 #expire_in1516 is expected to be nil1517 when expire_at is specified1518 is expected to be within 5 of 604799.999724121519 #expire_in=1520 when assigning valid duration1521 when assigning invalid duration1522 when resetting value1523 when setting to 01524 #store_after_commit?1525 when direct upload is enabled1526 when the artifact is a trace1527 returns true1528 when the artifact is not a trace1529 returns false1530 when direct upload is disabled1531 returns false1532 file is being stored1533 when existing object has local store1534 behaves like mounted file in local store1535 is stored locally1536 when direct upload is enabled1537 when file is stored1538 behaves like mounted file in object store1539 is stored remotely1540 .file_types1541 all file types have corresponding limit1542 file_type: "archive"1543 is expected to include "ci_max_artifact_size_archive"1544 file_type: "metadata"1545 is expected to include "ci_max_artifact_size_metadata"1546 file_type: "trace"1547 is expected to include "ci_max_artifact_size_trace"1548 file_type: "junit"1549 is expected to include "ci_max_artifact_size_junit"1550 file_type: "sast"1551 is expected to include "ci_max_artifact_size_sast"1552 file_type: "dependency_scanning"1553 is expected to include "ci_max_artifact_size_dependency_scanning"1554 file_type: "container_scanning"1555 is expected to include "ci_max_artifact_size_container_scanning"1556 file_type: "dast"1557 is expected to include "ci_max_artifact_size_dast"1558 file_type: "codequality"1559 is expected to include "ci_max_artifact_size_codequality"1560 file_type: "license_scanning"1561 is expected to include "ci_max_artifact_size_license_scanning"1562 file_type: "performance"1563 is expected to include "ci_max_artifact_size_performance"1564 file_type: "metrics"1565 is expected to include "ci_max_artifact_size_metrics"1566 file_type: "metrics_referee"1567 is expected to include "ci_max_artifact_size_metrics_referee"1568 file_type: "network_referee"1569 is expected to include "ci_max_artifact_size_network_referee"1570 file_type: "lsif"1571 is expected to include "ci_max_artifact_size_lsif"1572 file_type: "dotenv"1573 is expected to include "ci_max_artifact_size_dotenv"1574 file_type: "cobertura"1575 is expected to include "ci_max_artifact_size_cobertura"1576 file_type: "terraform"1577 is expected to include "ci_max_artifact_size_terraform"1578 file_type: "accessibility"1579 is expected to include "ci_max_artifact_size_accessibility"1580 file_type: "cluster_applications"1581 is expected to include "ci_max_artifact_size_cluster_applications"1582 file_type: "secret_detection"1583 is expected to include "ci_max_artifact_size_secret_detection"1584 file_type: "requirements"1585 is expected to include "ci_max_artifact_size_requirements"1586 file_type: "coverage_fuzzing"1587 is expected to include "ci_max_artifact_size_coverage_fuzzing"1588 file_type: "browser_performance"1589 is expected to include "ci_max_artifact_size_browser_performance"1590 file_type: "load_performance"1591 is expected to include "ci_max_artifact_size_load_performance"1592 file_type: "api_fuzzing"1593 is expected to include "ci_max_artifact_size_api_fuzzing"1594 file_type: "cluster_image_scanning"1595 is expected to include "ci_max_artifact_size_cluster_image_scanning"1596 file_type: "cyclonedx"1597 is expected to include "ci_max_artifact_size_cyclonedx"1598 file_type: "requirements_v2"1599 is expected to include "ci_max_artifact_size_requirements_v2"1600 file_type: "annotations"1601 is expected to include "ci_max_artifact_size_annotations"1602 .max_artifact_size1603 when file type is supported1604 and plan limit is disabled for the given artifact type1605 behaves like basing off the project closest setting1606 is expected to eq 10737418241607 and project closest setting results to zero1608 is expected to eq 01609 and plan limit is enabled for the given artifact type1610 and plan limit is smaller than project setting1611 behaves like basing off the plan limit1612 is expected to eq 10726932481613 and plan limit is larger than project setting1614 behaves like basing off the project closest setting1615 is expected to eq 10737418241616 FastDestroyAll1617 .use_fast_destroy1618 performs cascading delete with fast_destroy_all1619 updates project statistics1620 loose foreign key on ci_job_artifacts.project_id1621 behaves like cleanup by a loose foreign key1622 cleans up (delete or nullify) the model1623 partitioning1624 copies the partition_id from job1625 when the job is missing1626 does not change the partition_id value1627 #filename1628 is expected to eq "ci_build_artifacts.zip"1629 #to_deleted_object_attrs1630 when file_final_path is present1631 returns the store_dir and file based on the file_final_path1632 behaves like returning attributes for object deletion1633 returns the file store1634 when pick_up_at is present1635 returns the pick_up_at value1636 when pick_up_at is not present1637 and expire_at is present1638 sets expire_at as pick_up_at1639 and expire_at is not present1640 sets current time as pick_up_at1641 when file_final_path is not present1642 returns the uploader default store_dir and file_identifier1643 behaves like returning attributes for object deletion1644 returns the file store1645 when pick_up_at is present1646 returns the pick_up_at value1647 when pick_up_at is not present1648 and expire_at is present1649 sets expire_at as pick_up_at1650 and expire_at is not present1651 sets current time as pick_up_at1652Projects::OverwriteProjectService1653 #execute1654 when project does not have any relation1655 behaves like overwrite actions1656 moves deploy keys1657 moves notification settings1658 moves users stars1659 moves project group links1660 moves memberships and authorizations1661 schedules original project for deletion1662 renames the project1663 renames source project to temp name1664 moves lfs objects relationships1665 is expected to eq 31666 when project rename fails1667 source rename1668 moves relations back to source project and raises an exception1669 new project rename1670 moves relations back, renames source project back to original name and raises1671 when project with elements1672 behaves like overwrite actions1673 moves deploy keys1674 moves notification settings1675 moves users stars1676 moves project group links1677 moves memberships and authorizations1678 schedules original project for deletion1679 renames the project1680 renames source project to temp name1681 moves lfs objects relationships1682 is expected to eq 31683 when project rename fails1684 source rename1685 moves relations back to source project and raises an exception1686 new project rename1687 moves relations back, renames source project back to original name and raises1688 forks1689 when moving a root forked project1690 moves the descendant forks1691 updates the fork network1692 when moving a intermediate forked project1693 moves the descendant forks1694 moves the ascendant fork1695 does not update fork network1696 if an exception is raised1697 rollbacks changes1698 removes fork network member1699IssuesFinder1700 behaves like issues or work items finder1701 #execute1702 scope: all1703 returns all items1704 finds items user can access due to group1705 user does not have read permissions1706 when filtering by project id1707 returns no items1708 when there are group-level work items1709 returns no items1710 when filtering by group id1711 returns no items1712 assignee filtering1713 behaves like assignee ID filter1714 returns issuables assigned to that user1715 behaves like assignee NOT ID filter1716 returns issuables not assigned to that user1717 behaves like assignee OR filter1718 returns issuables assigned to the given users1719 when assignee_id does not exist1720 behaves like assignee NOT ID filter1721 returns issuables not assigned to that user1722 filter by username1723 behaves like assignee username filter1724 returns issuables assigned to those users1725 behaves like assignee NOT username filter1726 returns issuables not assigned to those users1727 behaves like assignee OR filter1728 returns issuables assigned to the given users1729 when assignee_username does not exist1730 behaves like assignee NOT username filter1731 returns issuables not assigned to those users1732 behaves like no assignee filter1733 returns issuables not assigned to any assignee1734 returns issuables not assigned to any assignee1735 returns issuables not assigned to any assignee1736 behaves like any assignee filter1738 returns issuables assigned to any assignee1739 returns issuables assigned to any assignee1740 returns issuables assigned to any assignee1741 filtering by release1742 when filter by none1743 returns items without releases1744 when sort by milestone1745 returns items without any releases1746 when filter by any1747 returns items with any releases1748 when sort by milestone1749 returns items without any releases1750 when filter by a release_tag1751 returns the items associated with the release tag1752 when sort by milestone1753 returns the items associated with the release tag1754 when filter by a negated release_tag1755 returns the items not associated with the release1756 when sort by milestone1757 returns the items not associated with the release1758 filtering by projects1759 when projects are passed in a list of ids1760 returns the item belonging to the projects1761 when projects are passed in a subquery1762 returns the item belonging to the projects1763 filtering by group_id1764 when include_subgroup param not set1765 returns all group items1766 when projects outside the group are passed1767 returns no items1768 when projects of the group are passed1769 returns the item within the group and projects1770 when projects of the group are passed as a subquery1771 returns the item within the group and projects1772 when release_tag is passed as a parameter1773 ignores the release_tag parameter1774 when include_subgroup param is true1775 returns all group and subgroup items1776 when mixed projects are passed1777 returns the item within the group and projects1778 filtering by author1779 by author ID1780 returns items created by that user1781 using OR1782 returns items created by any of the given users1783 when feature flag is disabled1784 does not add any filter1785 filtering by NOT author ID1786 returns items not created by that user1787 filtering by nonexistent author ID and issue term using CTE for search1788 returns no results1789 filtering by milestone1790 returns items assigned to that milestone1791 filtering by not milestone1792 returns items not assigned to that milestone1793 with multiple milestones1794 returns items not assigned to both milestones1795 filtering by group milestone1796 returns items assigned to that group milestone1797 using NOT1798 returns items not assigned to that group milestone1799 filtering by no milestone1800 returns items with no milestone1801 returns items with no milestone (deprecated)1802 filtering by any milestone1803 returns items with any assigned milestone1804 returns items with any assigned milestone (deprecated)1805 filtering by upcoming milestone1806 returns items in the upcoming milestone for each project or group1807 using NOT1808 returns items not in upcoming milestones for each project or group, but must have a due date1809 filtering by started milestone1810 returns items in the started milestones for each project1811 using NOT1812 returns items not in the started milestones for each project1813 filtering by label1814 returns items with that label1815 using NOT1816 returns items that do not have that label1817 shadowing the same outside param1818 does not take precedence over labels outside NOT1819 further filtering outside params1820 further filters on the returned resultset1821 filtering by multiple labels1822 returns the unique items with all those labels1823 using NOT1824 returns items that do not have any of the labels provided1825 using OR1826 returns items that have at least one of the given labels1827 when feature flag is disabled1828 does not add any filter1829 filtering by a label that includes any or none in the title1830 returns the unique items with all those labels1831 using NOT1832 returns items that do not have ANY ONE of the labels provided1833 filtering by no label1834 returns items with no labels1835 filtering by any label1836 returns items that have one or more label1837 when the same label exists on project and group levels1838 finds both item records1839 filtering by item term1840 with latin search term1841 returns matching items1842 with non-latin search term1843 returns matching items1844 filtering by item term in title1845 returns items with title match for search term1846 filtering by items iids1847 returns items where iids match1848 using NOT1849 returns items with no iids match1850 filtering by state1851 with opened1852 returns only opened items1853 with closed1854 returns only closed items1855 with all1856 returns all items1857 with invalid state1858 returns all items1859 filtering by created_at1860 through created_after1861 returns items created on or after the given date1862 through created_before1863 returns items created on or before the given date1864 through created_after and created_before1865 returns items created between the given dates1866 filtering by updated_at1867 through updated_after1868 returns items updated on or after the given date1869 through updated_before1870 returns items updated on or before the given date1871 through updated_after and updated_before1872 returns items updated between the given dates1873 filtering by closed_at1874 through closed_after1875 returns items closed on or after the given date1876 through closed_before1877 returns items closed on or before the given date1878 through closed_after and closed_before1879 returns items closed between the given dates1880 filtering by reaction name1881 user searches by no reaction1882 returns items that the user did not react to1883 user searches by any reaction1884 returns items that the user reacted to1885 user searches by "thumbsup" reaction1886 returns items that the user thumbsup to1887 using NOT1888 returns items that the user did not thumbsup to1889 user2 searches by "thumbsup" reaction1890 returns items that the user2 thumbsup to1891 using NOT1892 returns items that the user2 thumbsup to1893 user searches by "thumbsdown" reaction1894 returns items that the user thumbsdown to1895 using NOT1896 returns items that the user thumbsdown to1897 filtering by confidential1898 no filtering1899 returns all items1900 user filters confidential items1901 returns only confidential items1902 user filters only public items1903 returns only public items1904 filtering by item type1905 no type given1906 returns all items1907 incident type1908 returns incident items1909 objective type1910 returns incident items1911 key_result type1912 returns incident items1913 item type1914 returns all items with type issue1915 multiple params1916 returns all items1917 without array1918 returns incident items1919 invalid params1920 returns no items1921 crm filtering1922 filtering by crm contact1923 when the user can read crm contacts1924 returns for that contact1925 when the user can not read crm contacts1926 does not filter by contact1927 filtering by crm organization1928 when the user can read crm organization1929 returns for that crm organization1930 when the user can not read crm organization1931 does not filter by crm organization1932 when the user is unauthorized1933 returns no results1934 when the user can see some, but not all, items1935 returns only items they can see1936 personal scope1937 returns item assigned to the user1938 filtering by project1939 returns items assigned to the user in that project1940 when project restricts items1941 doesn't return team-only items to non team members1942 doesn't return items if feature disabled1943 external authorization1944 behaves like a finder with external authorization service1945 finds the subject1946 with an external authorization service1947 does not include the subject when no project was given1948 includes the subject when a project id was given1949 filtering by due date1950 with param set to no due date1951 returns items with no due date1952 with param set to any due date1953 returns items with any due date1954 with param set to due today1955 returns items due today1956 with param set to due tomorrow1957 returns items due today1958 with param set to overdue1959 returns overdue items1960 with param set to next month and previous two weeks1961 returns items due in the previous two weeks and next month1962 with invalid param1963 returns no items1964 #row_count1965 returns -1 if the query times out1966 when admin mode is enabled1967 returns the number of rows for the default state1968 returns the number of rows for a given state1969 when admin mode is disabled1970 returns no rows1971 #with_confidentiality_access_check1972 when no project filter is given1973 for an anonymous user1974 behaves like returns public, does not return hidden or confidential1975 returns only public items1976 for a user without project membership1977 behaves like returns public, does not return hidden or confidential1978 returns only public items1979 for a guest user1980 behaves like returns public, does not return hidden or confidential1981 returns only public items1982 for a project member with access to view confidential items1983 behaves like returns public and confidential, does not return hidden1984 returns only public and confidential items1985 for an admin1986 when admin mode is enabled1987 behaves like returns public, confidential, and hidden1988 returns all items1989 when admin mode is disabled1990 behaves like returns public, does not return hidden or confidential1991 returns only public items1992 when searching within a specific project1993 for an anonymous user1994 does not filter by confidentiality1995 behaves like returns public, does not return hidden or confidential1996 returns only public items1997 for a user without project membership1998 filters by confidentiality1999 behaves like returns public, does not return hidden or confidential2000 returns only public items2001 for a guest user2002 filters by confidentiality2003 behaves like returns public, does not return hidden or confidential2004 returns only public items2005 for a project member with access to view confidential items2006 does not filter by confidentiality2007 behaves like returns public and confidential, does not return hidden2008 returns only public and confidential items2009 for an admin2010 when admin mode is enabled2011 does not filter by confidentiality2012 behaves like returns public, confidential, and hidden2013 returns all items2014 when admin mode is disabled2015 filters by confidentiality2016 behaves like returns public, does not return hidden or confidential2017 returns only public items2018 #use_cte_for_search?2019 when there is no search param2020 returns false2021 when the force_cte param is falsey2022 returns false2023 when a non-simple sort is given2024 returns false2025 when all conditions are met2026 uses group search optimization2027 returns true2028 uses project search optimization2029 returns true2030 with simple sort2031 returns true2032 with simple sort as a symbol2033 returns true2034 #parent_param=2035 klass: :Project, param: :project_id2036 sets the params2037 klass: :Group, param: :group_id2038 sets the params2039 unexpected parent2040 raises an error2041Gitlab::Git::Tree2042 .where with Gitaly enabled2043 behaves like repo2044 is expected to be a kind of Array2045 is expected to be falsey2046 is expected to eq 22047 is expected to eq 102048 is expected to eq 22049 is expected to be blank2050 with an invalid ref2051 when handle_structured_gitaly_errors feature is disabled2052 is expected to eq []2053 is expected to be nil2054 when path is provided2055 returns a list of tree objects2056 #dir?2057 is expected to be a kind of Gitlab::Git::Tree2058 is expected to eq "3c122d2b7830eca25235131070602575cf8b41a1"2059 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2060 is expected to eq "encoding"2061 is expected to eq "encoding"2062 is expected to eq "40000"2063 is expected to eq "encoding"2064 subdir2065 is expected to be a kind of Gitlab::Git::Tree2066 is expected to eq "a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba"2067 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2068 is expected to eq "html"2069 is expected to eq "files/html"2070 is expected to eq "files/html"2071 subdir_file2072 is expected to be a kind of Gitlab::Git::Tree2073 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2074 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2075 is expected to eq "popen.rb"2076 is expected to eq "files/ruby/popen.rb"2077 is expected to eq "files/ruby/popen.rb"2078 flat_path2079 is expected to eq "files/flat/path/correct"2080 when skip_flat_paths is true2081 is expected to be blank2082 #file?2083 is expected to be a kind of Gitlab::Git::Tree2084 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2085 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2086 is expected to eq ".gitignore"2087 #readme?2088 is expected to be a kind of Gitlab::Git::Tree2089 is expected to eq "README.md"2090 #contributing?2091 is expected to be a kind of Gitlab::Git::Tree2092 is expected to eq "CONTRIBUTING.md"2093 #submodule?2094 is expected to be a kind of Gitlab::Git::Tree2095 is expected to eq "79bceae69cb5750d6567b223597999bfa91cb3b9"2096 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2097 is expected to eq "gitlab-shell"2098 with pagination parameters2099 returns paginated list of tree objects2100 and invalid reference is used2101 when rescue_not_found is set to false2102 raises an IndexError error2103 when rescue_not_found is set to true2104 returns no entries and nil cursor2105 .where with Rugged enabled2106 calls out to the Rugged implementation2107 behaves like repo2108 is expected to be a kind of Array2109 is expected to be falsey2110 is expected to eq 22111 is expected to eq 102112 is expected to eq 22113 is expected to be blank2114 with an invalid ref2115 when handle_structured_gitaly_errors feature is disabled2116 is expected to eq []2117 is expected to be nil2118 when path is provided2119 returns a list of tree objects2120 #dir?2121 is expected to be a kind of Gitlab::Git::Tree2122 is expected to eq "3c122d2b7830eca25235131070602575cf8b41a1"2123 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2124 is expected to eq "encoding"2125 is expected to eq "encoding"2126 is expected to eq "40000"2127 is expected to eq "encoding"2128 subdir2129 is expected to be a kind of Gitlab::Git::Tree2130 is expected to eq "a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba"2131 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2132 is expected to eq "html"2133 is expected to eq "files/html"2134 is expected to eq "files/html"2135 subdir_file2136 is expected to be a kind of Gitlab::Git::Tree2137 is expected to eq "7e3e39ebb9b2bf433b4ad17313770fbe4051649c"2138 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2139 is expected to eq "popen.rb"2140 is expected to eq "files/ruby/popen.rb"2141 is expected to eq "files/ruby/popen.rb"2142 flat_path2143 is expected to eq "files/flat/path/correct"2144 when skip_flat_paths is true2145 is expected to be blank2146 #file?2147 is expected to be a kind of Gitlab::Git::Tree2148 is expected to eq "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82"2149 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2150 is expected to eq ".gitignore"2151 #readme?2152 is expected to be a kind of Gitlab::Git::Tree2153 is expected to eq "README.md"2154 #contributing?2155 is expected to be a kind of Gitlab::Git::Tree2156 is expected to eq "CONTRIBUTING.md"2157 #submodule?2158 is expected to be a kind of Gitlab::Git::Tree2159 is expected to eq "79bceae69cb5750d6567b223597999bfa91cb3b9"2160 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"2161 is expected to eq "gitlab-shell"2162 Pagination2163 returns all tree entries in specific order during cursor pagination2164 with restrictive limit2165 returns limited paginated list of tree objects2166 when limit is equal to number of entries2167 returns all entries without a cursor2168 when limit is 02169 returns empty result2170 when limit is missing2171 returns empty result2172 when limit is negative2173 returns all entries2174 when token is provided2175 returns all entries after token2176 when token does not exist2177 raises a command error2178 when limit is bigger than number of entries2179 returns only available entries2180WikiPagePolicy2181 when user is a direct project member2182 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12183 grants the expected permissions2184 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12185 grants the expected permissions2186 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12187 grants the expected permissions2188 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12189 grants the expected permissions2190 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12191 grants the expected permissions2192 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12193 grants the expected permissions2194 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12195 grants the expected permissions2196 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02197 grants the expected permissions2198 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12199 grants the expected permissions2200 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12201 grants the expected permissions2202 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02203 grants the expected permissions2204 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02205 grants the expected permissions2206 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02207 grants the expected permissions2208 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02209 grants the expected permissions2210 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02211 grants the expected permissions2212 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02213 grants the expected permissions2214 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12215 grants the expected permissions2216 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12217 grants the expected permissions2218 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12219 grants the expected permissions2220 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12221 grants the expected permissions2222 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12223 grants the expected permissions2224 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02225 grants the expected permissions2226 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12227 grants the expected permissions2228 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02229 grants the expected permissions2230 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12231 grants the expected permissions2232 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12233 grants the expected permissions2234 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02235 grants the expected permissions2236 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02237 grants the expected permissions2238 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02239 grants the expected permissions2240 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02241 grants the expected permissions2242 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02243 grants the expected permissions2244 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02245 grants the expected permissions2246 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12247 grants the expected permissions2248 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02249 grants the expected permissions2250 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12251 grants the expected permissions2252 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12253 grants the expected permissions2254 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02255 grants the expected permissions2256 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02257 grants the expected permissions2258 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02259 grants the expected permissions2260 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02261 grants the expected permissions2262 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02263 grants the expected permissions2264 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02265 grants the expected permissions2266 when user is an inherited member from the group2267 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12268 grants the expected permissions2269 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12270 grants the expected permissions2271 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12272 grants the expected permissions2273 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12274 grants the expected permissions2275 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12276 grants the expected permissions2277 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12278 grants the expected permissions2279 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12280 grants the expected permissions2281 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02282 grants the expected permissions2283 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12284 grants the expected permissions2285 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12286 grants the expected permissions2287 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02288 grants the expected permissions2289 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02290 grants the expected permissions2291 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02292 grants the expected permissions2293 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02294 grants the expected permissions2295 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02296 grants the expected permissions2297 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02298 grants the expected permissions2299 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12300 grants the expected permissions2301 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12302 grants the expected permissions2303 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12304 grants the expected permissions2305 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12306 grants the expected permissions2307 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12308 grants the expected permissions2309 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 02310 grants the expected permissions2311 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12312 grants the expected permissions2313 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02314 grants the expected permissions2315 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12316 grants the expected permissions2317 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12318 grants the expected permissions2319 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02320 grants the expected permissions2321 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02322 grants the expected permissions2323 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02324 grants the expected permissions2325 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02326 grants the expected permissions2327 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02328 grants the expected permissions2329 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02330 grants the expected permissions2331 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12332 grants the expected permissions2333 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02334 grants the expected permissions2335 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12336 grants the expected permissions2337 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 12338 grants the expected permissions2339 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02340 grants the expected permissions2341 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02342 grants the expected permissions2343 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 02344 grants the expected permissions2345 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 02346 grants the expected permissions2347 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 02348 grants the expected permissions2349 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 02350 grants the expected permissions2351MergeRequests::MergeabilityCheckService2352 #async_execute2353 updates merge status to checking2354 enqueues MergeRequestMergeabilityCheckWorker2355 when read-only DB2356 does not enqueue MergeRequestMergeabilityCheckWorker2357 #execute2358 behaves like mergeable merge request2359 updates or keeps merge status as can_be_merged2360 reloads merge head diff2361 update diff discussion positions2362 updates the merge ref2363 returns ServiceResponse.success2364 ServiceResponse has merge_ref_head payload2365 when concurrent calls2366 waits first lock and returns "cached" result in subsequent calls2367 writes the merge-ref once2368 resets one merge request upon execution2369 when retry_lease flag is false2370 the first call succeeds, subsequent concurrent calls get a lock error response2371 when broken2372 returns ServiceResponse.error2373 behaves like unmergeable merge request2374 updates or keeps merge status as cannot_be_merged2375 does not change the merge ref HEAD2376 returns ServiceResponse.error2377 when it cannot be merged on git2378 returns ServiceResponse.error and keeps merge status as cannot_be_merged2379 when MR cannot be merged and has no merge ref2380 returns ServiceResponse.error2381 behaves like unmergeable merge request2382 updates or keeps merge status as cannot_be_merged2383 does not change the merge ref HEAD2384 returns ServiceResponse.error2385 when MR cannot be merged and has outdated merge ref2386 returns ServiceResponse.error2387 behaves like unmergeable merge request2388 updates or keeps merge status as cannot_be_merged2389 does not change the merge ref HEAD2390 returns ServiceResponse.error2391 when merge request is not given2392 returns ServiceResponse.error2393 when read-only DB2394 returns ServiceResponse.error2395 when fails to update the merge-ref2396 reloads merge head diff2397 returns ServiceResponse.error2398 behaves like unmergeable merge request2399 updates or keeps merge status as cannot_be_merged2400 does not change the merge ref HEAD2401 returns ServiceResponse.error2402 recheck enforced2403 when MR is marked as mergeable, but repo is not mergeable and MR is not opened2404 returns ServiceResponse.error2405 does not change the merge status2406 when MR is mergeable but merge-ref does not exists2407 behaves like mergeable merge request2408 updates or keeps merge status as can_be_merged2409 reloads merge head diff2410 update diff discussion positions2411 updates the merge ref2412 returns ServiceResponse.success2413 ServiceResponse has merge_ref_head payload2414 when MR is mergeable but merge-ref is already updated2415 returns ServiceResponse.success2416 does not recreate the merge-ref2417 does not reload merge head diff2418Gitlab::SidekiqMiddleware::ServerMetrics2419 behaves like metrics middleware with worker attribution2420 when workers are not attributed2421 behaves like a metrics middleware2422 with mocked prometheus2423 .initialize_process_metrics2424 sets concurrency metrics2425 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process2426 when emit_sidekiq_histogram FF is disabled2427 does not initialize sidekiq_jobs_completion_seconds2428 initializing execution and queueing SLIs2429 initializes the execution and queueing SLIs with labels2430 when the sidekiq_job_completion_metric_initialize feature flag is disabled2431 sets the concurrency metric2432 does not initialize sidekiq_jobs_completion_seconds2433 sidekiq execution SLIs2434 behaves like not initializing sidekiq SLIs2435 does not initialize sidekiq SLIs2436 sidekiq queueing SLIs2437 behaves like not initializing sidekiq SLIs2438 does not initialize sidekiq SLIs2439 #call2440 yields block2441 calls BackgroundTransaction2442 sets queue specific metrics2443 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics2444 sets the thread name if it was nil2445 when job_duration is not available2446 does not set the queue_duration_seconds histogram2447 when error is raised2448 sets sidekiq_jobs_failed_total and reraises2449 records sidekiq SLI error but does not record sidekiq SLI apdex2450 when job is retried2451 sets sidekiq_jobs_retried_total metric2452 when job is interrupted2453 sets sidekiq_jobs_interrupted_total metric2454 with prometheus integrated2455 #call2456 yields block2457 when error is raised2458 sets sidekiq_jobs_failed_total and reraises2459 when a worker is wrapped into ActiveJob2460 behaves like a metrics middleware2461 with mocked prometheus2462 .initialize_process_metrics2463 sets concurrency metrics2464 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process2465 when emit_sidekiq_histogram FF is disabled2466 does not initialize sidekiq_jobs_completion_seconds2467 initializing execution and queueing SLIs2468 initializes the execution and queueing SLIs with labels2469 when the sidekiq_job_completion_metric_initialize feature flag is disabled2470 sets the concurrency metric2471 does not initialize sidekiq_jobs_completion_seconds2472 sidekiq execution SLIs2473 behaves like not initializing sidekiq SLIs2474 does not initialize sidekiq SLIs2475 sidekiq queueing SLIs2476 behaves like not initializing sidekiq SLIs2477 does not initialize sidekiq SLIs2478 #call2479 yields block2480 calls BackgroundTransaction2481 sets queue specific metrics2482 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics2483 sets the thread name if it was nil2484 when job_duration is not available2485 does not set the queue_duration_seconds histogram2486 when error is raised2487 sets sidekiq_jobs_failed_total and reraises2488 records sidekiq SLI error but does not record sidekiq SLI apdex2489 when job is retried2490 sets sidekiq_jobs_retried_total metric2491 when job is interrupted2492 sets sidekiq_jobs_interrupted_total metric2493 with prometheus integrated2494 #call2495 yields block2496 when error is raised2497 sets sidekiq_jobs_failed_total and reraises2498 when workers are attributed2499 high urgency2500 behaves like a metrics middleware2501 with mocked prometheus2502 .initialize_process_metrics2503 sets concurrency metrics2504 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process2505 when emit_sidekiq_histogram FF is disabled2506 does not initialize sidekiq_jobs_completion_seconds2507 initializing execution and queueing SLIs2508 initializes the execution and queueing SLIs with labels2509 when the sidekiq_job_completion_metric_initialize feature flag is disabled2510 sets the concurrency metric2511 does not initialize sidekiq_jobs_completion_seconds2512 sidekiq execution SLIs2513 behaves like not initializing sidekiq SLIs2514 does not initialize sidekiq SLIs2515 sidekiq queueing SLIs2516 behaves like not initializing sidekiq SLIs2517 does not initialize sidekiq SLIs2518 #call2519 yields block2520 calls BackgroundTransaction2521 sets queue specific metrics2522 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics2523 sets the thread name if it was nil2524 when job_duration is not available2525 does not set the queue_duration_seconds histogram2526 when error is raised2527 sets sidekiq_jobs_failed_total and reraises2528 records sidekiq SLI error but does not record sidekiq SLI apdex2529 when job is retried2530 sets sidekiq_jobs_retried_total metric2531 when job is interrupted2532 sets sidekiq_jobs_interrupted_total metric2533 with prometheus integrated2534 #call2535 yields block2536 when error is raised2537 sets sidekiq_jobs_failed_total and reraises2538 no urgency2539 behaves like a metrics middleware2540 with mocked prometheus2541 .initialize_process_metrics2542 sets concurrency metrics2543 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process2544 when emit_sidekiq_histogram FF is disabled2545 does not initialize sidekiq_jobs_completion_seconds2546 initializing execution and queueing SLIs2547 initializes the execution and queueing SLIs with labels2548 when the sidekiq_job_completion_metric_initialize feature flag is disabled2549 sets the concurrency metric2550 does not initialize sidekiq_jobs_completion_seconds2551 sidekiq execution SLIs2552 behaves like not initializing sidekiq SLIs2553 does not initialize sidekiq SLIs2554 sidekiq queueing SLIs2555 behaves like not initializing sidekiq SLIs2556 does not initialize sidekiq SLIs2557 #call2558 yields block2559 calls BackgroundTransaction2560 sets queue specific metrics2561 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics2562 sets the thread name if it was nil2563 when job_duration is not available2564 does not set the queue_duration_seconds histogram2565 when error is raised2566 sets sidekiq_jobs_failed_total and reraises2567 records sidekiq SLI error but does not record sidekiq SLI apdex2568 when job is retried2569 sets sidekiq_jobs_retried_total metric2570 when job is interrupted2571 sets sidekiq_jobs_interrupted_total metric2572 with prometheus integrated2573 #call2574 yields block2575 when error is raised2576 sets sidekiq_jobs_failed_total and reraises2577 external dependencies2578 behaves like a metrics middleware2579 with mocked prometheus2580 .initialize_process_metrics2581 sets concurrency metrics2582 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process2583 when emit_sidekiq_histogram FF is disabled2584 does not initialize sidekiq_jobs_completion_seconds2585 initializing execution and queueing SLIs2586 initializes the execution and queueing SLIs with labels2587 when the sidekiq_job_completion_metric_initialize feature flag is disabled2588 sets the concurrency metric2589 does not initialize sidekiq_jobs_completion_seconds2590 sidekiq execution SLIs2591 behaves like not initializing sidekiq SLIs2592 does not initialize sidekiq SLIs2593 sidekiq queueing SLIs2594 behaves like not initializing sidekiq SLIs2595 does not initialize sidekiq SLIs2596 #call2597 yields block2598 calls BackgroundTransaction2599 sets queue specific metrics2600 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics2601 sets the thread name if it was nil2602 when job_duration is not available2603 does not set the queue_duration_seconds histogram2604 when error is raised2605 sets sidekiq_jobs_failed_total and reraises2606 records sidekiq SLI error but does not record sidekiq SLI apdex2607 when job is retried2608 sets sidekiq_jobs_retried_total metric2609 when job is interrupted2610 sets sidekiq_jobs_interrupted_total metric2611 with prometheus integrated2612 #call2613 yields block2614 when error is raised2615 sets sidekiq_jobs_failed_total and reraises2616 cpu boundary2617 behaves like a metrics middleware2618 with mocked prometheus2619 .initialize_process_metrics2620 sets concurrency metrics2621 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process2622 when emit_sidekiq_histogram FF is disabled2623 does not initialize sidekiq_jobs_completion_seconds2624 initializing execution and queueing SLIs2625 initializes the execution and queueing SLIs with labels2626 when the sidekiq_job_completion_metric_initialize feature flag is disabled2627 sets the concurrency metric2628 does not initialize sidekiq_jobs_completion_seconds2629 sidekiq execution SLIs2630 behaves like not initializing sidekiq SLIs2631 does not initialize sidekiq SLIs2632 sidekiq queueing SLIs2633 behaves like not initializing sidekiq SLIs2634 does not initialize sidekiq SLIs2635 #call2636 yields block2637 calls BackgroundTransaction2638 sets queue specific metrics2639 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics2640 sets the thread name if it was nil2641 when job_duration is not available2642 does not set the queue_duration_seconds histogram2643 when error is raised2644 sets sidekiq_jobs_failed_total and reraises2645 records sidekiq SLI error but does not record sidekiq SLI apdex2646 when job is retried2647 sets sidekiq_jobs_retried_total metric2648 when job is interrupted2649 sets sidekiq_jobs_interrupted_total metric2650 with prometheus integrated2651 #call2652 yields block2653 when error is raised2654 sets sidekiq_jobs_failed_total and reraises2655 memory boundary2656 behaves like a metrics middleware2657 with mocked prometheus2658 .initialize_process_metrics2659 sets concurrency metrics2660 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process2661 when emit_sidekiq_histogram FF is disabled2662 does not initialize sidekiq_jobs_completion_seconds2663 initializing execution and queueing SLIs2664 initializes the execution and queueing SLIs with labels2665 when the sidekiq_job_completion_metric_initialize feature flag is disabled2666 sets the concurrency metric2667 does not initialize sidekiq_jobs_completion_seconds2668 sidekiq execution SLIs2669 behaves like not initializing sidekiq SLIs2670 does not initialize sidekiq SLIs2671 sidekiq queueing SLIs2672 behaves like not initializing sidekiq SLIs2673 does not initialize sidekiq SLIs2674 #call2675 yields block2676 calls BackgroundTransaction2677 sets queue specific metrics2678 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics2679 sets the thread name if it was nil2680 when job_duration is not available2681 does not set the queue_duration_seconds histogram2682 when error is raised2683 sets sidekiq_jobs_failed_total and reraises2684 records sidekiq SLI error but does not record sidekiq SLI apdex2685 when job is retried2686 sets sidekiq_jobs_retried_total metric2687 when job is interrupted2688 sets sidekiq_jobs_interrupted_total metric2689 with prometheus integrated2690 #call2691 yields block2692 when error is raised2693 sets sidekiq_jobs_failed_total and reraises2694 feature category2695 behaves like a metrics middleware2696 with mocked prometheus2697 .initialize_process_metrics2698 sets concurrency metrics2699 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process2700 when emit_sidekiq_histogram FF is disabled2701 does not initialize sidekiq_jobs_completion_seconds2702 initializing execution and queueing SLIs2703 initializes the execution and queueing SLIs with labels2704 when the sidekiq_job_completion_metric_initialize feature flag is disabled2705 sets the concurrency metric2706 does not initialize sidekiq_jobs_completion_seconds2707 sidekiq execution SLIs2708 behaves like not initializing sidekiq SLIs2709 does not initialize sidekiq SLIs2710 sidekiq queueing SLIs2711 behaves like not initializing sidekiq SLIs2712 does not initialize sidekiq SLIs2713 #call2714 yields block2715 calls BackgroundTransaction2716 sets queue specific metrics2717 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics2718 sets the thread name if it was nil2719 when job_duration is not available2720 does not set the queue_duration_seconds histogram2721 when error is raised2722 sets sidekiq_jobs_failed_total and reraises2723 records sidekiq SLI error but does not record sidekiq SLI apdex2724 when job is retried2725 sets sidekiq_jobs_retried_total metric2726 when job is interrupted2727 sets sidekiq_jobs_interrupted_total metric2728 with prometheus integrated2729 #call2730 yields block2731 when error is raised2732 sets sidekiq_jobs_failed_total and reraises2733 combined2734 behaves like a metrics middleware2735 with mocked prometheus2736 .initialize_process_metrics2737 sets concurrency metrics2738 initializes sidekiq_jobs_completion_seconds for the workers in the current Sidekiq process2739 when emit_sidekiq_histogram FF is disabled2740 does not initialize sidekiq_jobs_completion_seconds2741 initializing execution and queueing SLIs2742 initializes the execution and queueing SLIs with labels2743 when the sidekiq_job_completion_metric_initialize feature flag is disabled2744 sets the concurrency metric2745 does not initialize sidekiq_jobs_completion_seconds2746 sidekiq execution SLIs2747 behaves like not initializing sidekiq SLIs2748 does not initialize sidekiq SLIs2749 sidekiq queueing SLIs2750 behaves like not initializing sidekiq SLIs2751 does not initialize sidekiq SLIs2752 #call2753 yields block2754 calls BackgroundTransaction2755 sets queue specific metrics2756 sets sidekiq_jobs_completion_seconds values that are compatible with those from .initialize_process_metrics2757 sets the thread name if it was nil2758 when job_duration is not available2759 does not set the queue_duration_seconds histogram2760 when error is raised2761 sets sidekiq_jobs_failed_total and reraises2762 records sidekiq SLI error but does not record sidekiq SLI apdex2763 when job is retried2764 sets sidekiq_jobs_retried_total metric2765 when job is interrupted2766 sets sidekiq_jobs_interrupted_total metric2767 with prometheus integrated2768 #call2769 yields block2770 when error is raised2771 sets sidekiq_jobs_failed_total and reraises2772 DB load balancing2773 #call2774 when worker declares data consistency2775 increments load balancing counter with defined data consistency2776 when worker does not declare data consistency2777 increments load balancing counter with default data consistency2778 feature attribution2779 when a worker has a feature category2780 uses that category for metrics2781 when a worker does not have a feature category2782 uses the category from the context for metrics2783 when emit_sidekiq_histogram_metrics FF is disabled2784 does not emit histogram metrics2785 emits sidekiq_jobs_completion_seconds_sum metric2786AutoMerge::BaseService2787 #execute2788 sets properies to the merge request2789 yields block2790 returns activated strategy name2791 when merge parameters are given2792 sets merge parameters2793 when strategy is merge when pipeline succeeds2794 sets the auto merge strategy2795 returns activated strategy name2796 calls AutoMergeProcessWorker2797 when failed to save merge request2798 does not yield block2799 returns failed2800 tracks the exception2801 when exception happens in yield block2802 returns failed status2803 rollback the transaction2804 tracks the exception2805 #update2806 when merge params are specified2807 updates merge params2808 #cancel2809 behaves like Canceled or Dropped2810 removes properies from the merge request2811 yields block2812 returns success status2813 when merge params are set2814 removes merge parameters2815 when failed to save2816 does not yield block2817 when failed to save merge request2818 returns error status2819 when exception happens in yield block2820 returns error2821 rollback the transaction2822 tracks the exception2823 #abort2824 behaves like Canceled or Dropped2825 removes properies from the merge request2826 yields block2827 returns success status2828 when merge params are set2829 removes merge parameters2830 when failed to save2831 does not yield block2832 when failed to save2833 returns error status2834 when exception happens in yield block2835 returns error2836 rollback the transaction2837 tracks the exception2838Types::ProjectType2839 is expected to expose permissions using Types::PermissionTypes::Project2840 is expected to eq "Project"2841 is expected to require graphql authorizations :read_project2842 has the expected fields2843 count2844 returns valid projects count2845 container_registry_enabled2846 with `enabled` visibility2847 with non member user2848 returns true2849 with `private` visibility2850 with reporter user2851 returns true2852 with guest user2853 returns false2854 sast_ci_configuration2855 returns the project's sast configuration for global variables2856 returns the project's sast configuration for pipeline variables2857 returns the project's sast configuration for analyzer variables2858 with guest user2859 when project is private2860 returns no configuration2861 when project is public2862 when repository is accessible by everyone2863 returns the project's sast configuration for global variables2864 with non-member user2865 when project is private2866 returns no configuration2867 when project is public2868 when repository is accessible by everyone2869 returns the project's sast configuration for global variables2870 when repository is accessible only by team members2871 returns no configuration2872 with empty repository2873 raises an error2874 issue field2875 is expected to have graphql type Types::IssueType2876 is expected to have graphql resolver #<Class:0x00007b7a6fb32940>2877 issues field2878 is expected to have graphql type Types::IssueConnection2879 is expected to have graphql resolver Resolvers::ProjectIssuesResolver2880 merge_request field2881 is expected to have graphql type Types::MergeRequestType2882 is expected to have graphql resolver Resolvers::MergeRequestResolver2883 is expected to have graphql arguments :iid2884 merge_requests field2885 is expected to have graphql type #<Class:0x00007b7a73433370>2886 is expected to have graphql resolver Resolvers::ProjectMergeRequestsResolver2887 is expected to have graphql arguments :iids, :source_branches, :target_branches, :state, :draft, :approved, :labels, :before, :after, :first, :last, :merged_after, :merged_before, :created_after, :created_before, :updated_after, :updated_before, :author_username, :assignee_username, :reviewer_username, :milestone_title, :not, and :sort2888 pipelineCounts field2889 is expected to have graphql type Types::Ci::PipelineCountsType2890 is expected to have graphql resolver Resolvers::Ci::ProjectPipelineCountsResolver2891 snippets field2892 is expected to have graphql type #<Class:0x00007b7a72582a60>2893 is expected to have graphql resolver Resolvers::Projects::SnippetsResolver2894 grafana_integration field2895 is expected to have graphql type Types::GrafanaIntegrationType2896 is expected to have graphql resolver Resolvers::Projects::GrafanaIntegrationResolver2897 environments field2898 is expected to have graphql type #<Class:0x00007b7a6fa7d1a8>2899 is expected to have graphql resolver Resolvers::EnvironmentsResolver2900 environment field2901 is expected to have graphql type Types::EnvironmentType2902 is expected to have graphql resolver #<Class:0x00007b7a6fa4c148>2903 members field2904 is expected to have graphql type #<Class:0x00007b7a6992d038>2905 is expected to have graphql resolver Resolvers::ProjectMembersResolver2906 boards field2907 is expected to have graphql type #<Class:0x00007b7a696703b8>2908 jira_imports field2909 is expected to have graphql type #<Class:0x00007b7a7343a698>2910 services field2911 is expected to have graphql type #<Class:0x00007b7a735f5c80>2912 releases field2913 is expected to have graphql type Types::ReleaseType2914 is expected to have graphql resolver Resolvers::ReleaseResolver2915 release field2916 is expected to have graphql type #<Class:0x00007b7a739061e0>2917 is expected to have graphql resolver Resolvers::ReleasesResolver2918 container expiration policy field2919 is expected to have graphql type Types::ContainerExpirationPolicyType2920 packages cleanup policy field2921 is expected to have graphql type Types::Packages::Cleanup::PolicyType2922 terraform state field2923 is expected to have graphql type Types::Terraform::StateType2924 is expected to have graphql resolver #<Class:0x00007b7a73e2f400>2925 terraform states field2926 is expected to have graphql type #<Class:0x00007b7a73e35ff8>2927 is expected to have graphql resolver Resolvers::Terraform::StatesResolver2928 timelogs field2929 finds timelogs for project2930 behaves like a GraphQL type with labels2931 has label fields2932 label field2933 is expected to have graphql type Types::LabelType2934 is expected to have graphql arguments :title2935 labels field2936 is expected to have graphql type #<Class:0x00007b7a74042ad0>2937 is expected to have graphql arguments :search_term and :includeAncestorGroups2938 jira_imports2939 when project has Jira imports2940 retrieves the imports2941 when project does not have Jira imports2942 returns an empty result2943 pipeline_analytics field2944 is expected to have graphql type Types::Ci::AnalyticsType2945 is expected to have graphql resolver Resolvers::ProjectPipelineStatisticsResolver2946 jobs field2947 is expected to have graphql type #<Class:0x00007b7a766fa448>2948 is expected to have graphql arguments :statuses and :with_artifacts2949 ci_template field2950 is expected to have graphql type Types::Ci::TemplateType2951 is expected to have graphql arguments :name2952 ci_job_token_scope field2953 is expected to have graphql type Types::Ci::JobTokenScopeType2954 is expected to have graphql resolver Resolvers::Ci::JobTokenScopeResolver2955 incident_management_timeline_event_tags field2956 is expected to have graphql type Types::IncidentManagement::TimelineEventTagType2957 agent_configurations2958 returns configured agents2959 cluster_agents2960 returns associated cluster agents2961 returns count of cluster agents2962 cluster_agent2963 returns associated cluster agents2964 returns count of agent tokens2965 service_desk_address2966 when a user can admin issues2967 is present2968 when a user can not admin issues2969 is empty2970 branch_rules2971 when a user can read protected branches2972 is present and correct2973 when a user cannot read protected branches2974 is empty2975 timeline_event_tags2976 when user has permissions to read project2977 contains timeline event tags2978 languages2979 when the languages haven't been detected yet2980 returns an empty array2981 when the languages were detected before2982 returns the repository languages2983 visible_forks2984 contains all forks2985 with minimum_access_level DEVELOPER2986 contains forks with developer access2987 when current user is not set2988 does not return any forks2989search/_results2990 page size2991 when search results have a count2992 displays the page size2993 when search results do not have a count2994 does not display the page size2995 when searching notes which contain quotes in markdown2996 renders plain quotes2997 rendering all types of search results2998 when scope is issues2999 when admin mode is enabled3000 renders the click text event tracking attributes3001 when admin mode is disabled3002 does not render the click text event tracking attributes3003 when scope is merge_requests3004 when admin mode is enabled3005 renders the click text event tracking attributes3006 when admin mode is disabled3007 does not render the click text event tracking attributes3008 git blame click tracking3009 when admin mode is enabled3010 renders the click link event tracking attributes3011 when admin mode is disabled3012 does not render the click link event tracking attributes3013 when scope is blobs3014 does not render the sidebar3015 when admin mode is enabled3016 renders the click text event tracking attributes3017 when admin mode is disabled3018 does not render the click text event tracking attributes3019 when scope is notes3020 does not render the sidebar3021 when admin mode is enabled3022 renders the click text event tracking attributes3023 when admin mode is disabled3024 does not render the click text event tracking attributes3025 when scope is wiki_blobs3026 does not render the sidebar3027 when admin mode is enabled3028 renders the click text event tracking attributes3029 when admin mode is disabled3030 does not render the click text event tracking attributes3031 when scope is milestones3032 does not render the sidebar3033 when admin mode is enabled3034 renders the click text event tracking attributes3035 when admin mode is disabled3036 does not render the click text event tracking attributes3037Banzai::Filter::References::CommitRangeReferenceFilter3038 requires project context3039 ignores valid references contained inside 'pre' element3040 ignores valid references contained inside 'code' element3041 ignores valid references contained inside 'a' element3042 ignores valid references contained inside 'style' element3043 internal reference3044 links to a valid two-dot reference3045 links to a valid three-dot reference3046 links to a valid short ID3047 links with adjacent text3048 ignores invalid commit IDs3049 includes no title attribute3050 includes default classes3051 includes a data-project attribute3052 includes a data-commit-range attribute3053 supports an :only_path option3054 cross-project / cross-namespace complete reference3055 links to a valid reference3056 link has valid text3057 has valid text3058 ignores invalid commit IDs on the referenced project3059 cross-project / same-namespace complete reference3060 links to a valid reference3061 link has valid text3062 has valid text3063 ignores invalid commit IDs on the referenced project3064 cross-project shorthand reference3065 links to a valid reference3066 link has valid text3067 has valid text3068 ignores invalid commit IDs on the referenced project3069 cross-project URL reference3070 links to a valid reference3071 links with adjacent text3072 ignores invalid commit IDs on the referenced project3073 group context3074 ignores internal references3075 links to a full-path reference3076Gitlab::GithubImport::UserFinder3077 #author_id_for3078 with default author_key3079 returns the user ID for the author of an object3080 returns the ID of the project creator if no user ID could be found3081 returns the ID of the ghost user when the object has no user3082 returns the ID of the ghost user when the given object is nil3083 with a non-default author_key3084 when the author_key parameter is :actor3085 behaves like user ID finder3086 returns the user ID for an object3087 when the author_key parameter is :assignee3088 behaves like user ID finder3089 returns the user ID for an object3090 when the author_key parameter is :requested_reviewer3091 behaves like user ID finder3092 returns the user ID for an object3093 when the author_key parameter is :review_requester3094 behaves like user ID finder3095 returns the user ID for an object3096 #assignee_id_for3097 returns the user ID for the assignee of an issuable3098 returns nil if the issuable does not have an assignee3099 #user_id_for3100 returns the user ID for the given user3101 does not fail with empty input3102 #find3103 without a cache3104 finds a GitLab user for a GitHub user ID3105 finds a GitLab user for a GitHub Email address3106 with a cache3107 returns the cached user ID3108 does not query the database if the cache key exists but is empty3109 #find_from_cache3110 retrieves a GitLab user ID for a GitHub user ID3111 retrieves a GitLab user ID for a GitHub Email address3112 does not query the cache for an Email address when none is given3113 #find_id_from_database3114 returns the GitLab user ID for a GitHub user ID3115 returns the GitLab user ID for a GitHub Email address3116 #email_for_github_username3117 when an Email address is cached3118 reads the Email address from the cache3119 when an Email address is not cached3120 retrieves and caches the Email address when an Email address is available3121 shortens the timeout for Email address in cache when an Email address is private/nil from GitHub3122 when a username does not exist on GitHub3123 caches github username inexistence3124 #cached_id_for_github_id3125 reads a user ID from the cache3126 reads a non existing cache key3127 #cached_id_for_github_email3128 reads a user ID from the cache3129 reads a non existing cache key3130 #id_for_github_id3131 queries and caches the user ID for a given GitHub ID3132 caches a nil value if no ID could be found3133 when importing from github enterprise3134 does not look up the user by external id3135 #id_for_github_email3136 queries and caches the user ID for a given Email address3137 caches a nil value if no ID could be found3138 #query_id_for_github_id3139 returns the ID of the user for the given GitHub user ID3140 returns nil when no user ID could be found3141 #query_id_for_github_email3142 returns the ID of the user for the given Email address3143 returns nil if no user ID could be found3144 #read_id_from_cache3145 reads an ID from the cache3146 reads a cache key with an empty value3147 reads a cache key that does not exist3148Labels::AvailableLabelsService3149 #find_or_create_by_titles3150 when parent is a project3151 when a user is not a project member3152 returns only relevant label ids3153 when a user is a project member3154 creates new labels for not found titles3155 do not cause additional query for finding labels3156 when parent is a group3157 when a user is not a group member3158 returns only relevant label ids3159 when a user is a group member3160 creates new labels for not found titles3161 #filter_labels_ids_in_param3162 accepts a single id parameter3163 when parent is a project3164 returns only relevant label ids3165 returns labels in preserved order3166 when parent is a group3167 returns only relevant label ids3168 #filter_locked_labels_ids_in_param3169 accepts a single id parameter3170 when parent is a project3171 returns only locked label ids3172 returns labels in preserved order3173 when parent is a group3174 returns only locked label ids3175 #available_labels3176 when parent is a project3177 returns only relevant labels3178 when parent is a group3179 returns only relevant labels3180Gitlab::GitalyClient::CommitService3181 #diff_from_parent3182 returns a Gitlab::GitalyClient::DiffStitcher3183 encodes paths correctly3184 when a commit has a parent3185 sends an RPC request with the parent ID as left commit3186 when a commit does not have a parent3187 sends an RPC request with empty tree ref as left commit3188 when given a whitespace param3189 and the param is true3190 uses the ignore all white spaces const3191 and the param is false3192 does not set a whitespace param3193 when given no whitespace param3194 does not set a whitespace param3195 #commit_deltas3196 when a commit has a parent3197 sends an RPC request with the parent ID as left commit3198 when a commit does not have a parent3199 sends an RPC request with empty tree ref as left commit3200 #diff_stats3201 sends an RPC request and returns the stats3202 #find_changed_paths3203 when merge_commit_diff_mode is nil3204 returns all paths, including ones from merge commits3205 passes the revs via the requests kwarg as CommitRequest objects3206 when merge_commit_diff_mode is :unspecified3207 returns all paths, including ones from merge commits3208 passes the revs via the requests kwarg as CommitRequest objects3209 when merge_commit_diff_mode is :include_merges3210 returns all paths, including ones from merge commits3211 passes the revs via the requests kwarg as CommitRequest objects3212 when merge_commit_diff_mode is invalid3213 returns all paths, including ones from merge commits3214 passes the revs via the requests kwarg as CommitRequest objects3215 when merge_commit_diff_mode is :all_parents3216 returns only paths different in all parents3217 passes the revs via the requests kwarg as CommitRequest objects3218 when feature flag "merge_commit_diff_modes" is disabled3219 when merge_commit_diff_mode is nil3220 returns all paths, including ones from merge commits3221 passes the revs via the requests kwarg as CommitRequest objects3222 when merge_commit_diff_mode is :unspecified3223 returns all paths, including ones from merge commits3224 passes the revs via the requests kwarg as CommitRequest objects3225 when merge_commit_diff_mode is :include_merges3226 returns all paths, including ones from merge commits3227 passes the revs via the requests kwarg as CommitRequest objects3228 when merge_commit_diff_mode is invalid3229 returns all paths, including ones from merge commits3230 passes the revs via the requests kwarg as CommitRequest objects3231 when merge_commit_diff_mode is :all_parents3232 returns all paths, including ones from merge commits3233 passes the revs via the requests kwarg as CommitRequest objects3234 when all requested objects are invalid3235 does not send RPC request3236 when commit has an empty SHA3237 does not send RPC request3238 when commit sha is not set3239 does not send RPC request3240 #tree_entries3241 sends a get_tree_entries message with default limit3242 when recursive is "true"3243 sends a get_tree_entries message without the limit3244 with UTF-8 params strings3245 handles string encodings correctly3246 with pagination parameters3247 responds with a pagination cursor3248 with structured errors3249 with ResolveTree error3250 raises an IndexError3251 with Path error3252 with missing file3253 behaves like #get_tree_entries path failure3254 raises an IndexError3255 with path including traversal3256 behaves like #get_tree_entries path failure3257 raises an IndexError3258 with absolute path3259 behaves like #get_tree_entries path failure3260 raises an IndexError3261 with long path3262 behaves like #get_tree_entries path failure3263 raises an IndexError3264 with unkown path error3265 behaves like #get_tree_entries path failure3266 raises an IndexError3267 #commit_count3268 sends a commit_count message3269 with UTF-8 params strings3270 handles string encodings correctly3271 #find_commit3272 sends an RPC request3273 caching3274 when passed revision is a branch name3275 calls Gitaly3276 when passed revision is a commit ID3277 returns a cached commit3278 when caching of the ref name is enabled3279 caches negative entries3280 returns a cached commit3281 #list_commits3282 behaves like a ListCommits request3283 sends a list_commits message3284 with multiple revisions3285 behaves like a ListCommits request3286 sends a list_commits message3287 with reverse: true3288 behaves like a ListCommits request3289 sends a list_commits message3290 with commit message, author, before and after3291 behaves like a ListCommits request3292 sends a list_commits message3293 #list_new_commits3294 with hook environment3295 reject commits which exist in target repository3296 behaves like a #list_all_commits message3297 sends a list_all_commits message3298 keep commits which do not exist in target repository3299 behaves like a #list_all_commits message3300 sends a list_all_commits message3301 mixed existing and nonexisting commits3302 behaves like a #list_all_commits message3303 sends a list_all_commits message3304 with more than 100 commits3305 behaves like a #list_all_commits message3306 sends a list_all_commits message3307 without hook environment3308 behaves like a #list_commits message3309 sends a list_commits message3310 #commit_stats3311 sends an RPC request3312 #find_commits3313 sends an RPC request with NONE when default3314 sends an RPC request3315 sends an RPC request with an author3316 #object_existence_map3317 with empty request3318 doesnt call for Gitaly3319 when revision exists3320 behaves like a CheckObjectsExistRequest3321 returns expected results3322 when revision does not exist3323 behaves like a CheckObjectsExistRequest3324 returns expected results3325 when request contains mixed revisions3326 behaves like a CheckObjectsExistRequest3327 returns expected results3328 when requesting many revisions3329 behaves like a CheckObjectsExistRequest3330 returns expected results3331 #commits_by_message3332 when only the query is provided3333 sends an RPC request with the correct payload3334 when all arguments are provided3335 sends an RPC request with the correct payload3336 when limit and offset are not integers3337 sends an RPC request with the correct payload3338 when revision and path contain non-ASCII characters3339 sends an RPC request with the correct payload3340 #list_commits_by_ref_name3341 lists latest commits grouped by a ref name3342 #raw_blame3343 without a range3344 blames a whole file3345 with a range3346 blames part of a file3347 #get_commit_signatures3348 returns commit signatures for specified commit ids3349 #get_patch_id3350 returns patch_id of given revisions3351 when one of the param is invalid3352 raises an GRPC::InvalidArgument error3353 when two revisions are the same3354 raises an GRPC::FailedPrecondition error3355Groups routing3356 complex group path with dot3357 to #show3358 also supports nested groups3359 also display group#show on the short path3360 to #details3361 to #activity3362 to #issues3363 to #members3364 to #labels3365 to #milestones3366 to #runner_setup_scripts3367 routes to the avatars controller3368 routes to the boards controller3369 routes to the harbor repositories controller3370 routes to the harbor artifacts controller3371 routes to the harbor tags controller3372 routes to the observability controller explore method3373 routes to the observability controller datasources method3374 routes to the usage quotas controller3375 group path starting with help3376 to #show3377 also supports nested groups3378 also display group#show on the short path3379 to #details3380 to #activity3381 to #issues3382 to #members3383 to #labels3384 to #milestones3385 to #runner_setup_scripts3386 routes to the avatars controller3387 routes to the boards controller3388 routes to the harbor repositories controller3389 routes to the harbor artifacts controller3390 routes to the harbor tags controller3391 routes to the observability controller explore method3392 routes to the observability controller datasources method3393 routes to the usage quotas controller3394 group path starting with projects3395 to #show3396 also supports nested groups3397 also display group#show on the short path3398 to #details3399 to #activity3400 to #issues3401 to #members3402 to #labels3403 to #milestones3404 to #runner_setup_scripts3405 routes to the avatars controller3406 routes to the boards controller3407 routes to the harbor repositories controller3408 routes to the harbor artifacts controller3409 routes to the harbor tags controller3410 routes to the observability controller explore method3411 routes to the observability controller datasources method3412 routes to the usage quotas controller3413 dependency proxy for containers3414 routes to #authenticate3415 routes to #upload_manifest3416 routes to #upload_blob3417 routes to #upload_manifest_authorize3418 routes to #upload_blob_authorize3419 image name without namespace3420 routes to #manifest3421 routes to #blob3422 does not route to #blob with an invalid sha3423 does not route to #blob with an invalid image3424 image name with namespace3425 routes to #manifest3426 routes to #blob3427Gitlab::Database::Migrations::TestBatchedBackgroundRunner3428 main database3429 running a real background migration3430 runs sampled jobs from the batched background migration3431 uses the correct params to instrument the background migration3432 uses the filtering clause from the migration3433 exports migration details to a file3434 with jobs to run3435 samples jobs3436 samples 1 job with a batch size higher than the table size3437 does not sample a job if there are zero rows to sample3438 with multiple jobs to run3439 runs all pending jobs based on the last migration id3440 choosing uniform batches to run3441 #uniform_fractions3442 generates evenly distributed sequences of fractions3443 ci database3444 running a real background migration3445 runs sampled jobs from the batched background migration3446 uses the correct params to instrument the background migration3447 uses the filtering clause from the migration3448 exports migration details to a file3449 with jobs to run3450 samples jobs3451 samples 1 job with a batch size higher than the table size3452 does not sample a job if there are zero rows to sample3453 with multiple jobs to run3454 runs all pending jobs based on the last migration id3455 choosing uniform batches to run3456 #uniform_fractions3457 generates evenly distributed sequences of fractions3458Projects::DataTransfer3459 # order random3460 is expected to be valid3461 behaves like CounterAttribute3462 defines a method to store counters3463 repository_egress3464 #increment_counter3465 when attribute is a counter attribute3466 amount: 103467 increments the counter in Redis and logs it3468 does not increment the counter for the record3469 schedules a worker to flush counter increments asynchronously3470 amount: -33471 increments the counter in Redis and logs it3472 does not increment the counter for the record3473 schedules a worker to flush counter increments asynchronously3474 #increment_amount3475 increases the egress in cache3476 #current_counter3477 increases the amount in cache3478 when increment amount is 03479 does nothing3480 #bulk_increment_counter3481 when attribute is a counter attribute3482 increments the counter in Redis and logs each increment3483 does not increment the counter for the record3484 schedules a worker to flush counter increments asynchronously3485 when feature flag split_log_bulk_increment_counter is disabled3486 logs a single total increment3487 artifacts_egress3488 #increment_counter3489 when attribute is a counter attribute3490 amount: 103491 increments the counter in Redis and logs it3492 does not increment the counter for the record3493 schedules a worker to flush counter increments asynchronously3494 amount: -33495 increments the counter in Redis and logs it3496 does not increment the counter for the record3497 schedules a worker to flush counter increments asynchronously3498 #increment_amount3499 increases the egress in cache3500 #current_counter3501 increases the amount in cache3502 when increment amount is 03503 does nothing3504 #bulk_increment_counter3505 when attribute is a counter attribute3506 increments the counter in Redis and logs each increment3507 does not increment the counter for the record3508 schedules a worker to flush counter increments asynchronously3509 when feature flag split_log_bulk_increment_counter is disabled3510 logs a single total increment3511 packages_egress3512 #increment_counter3513 when attribute is a counter attribute3514 amount: 103515 increments the counter in Redis and logs it3516 does not increment the counter for the record3517 schedules a worker to flush counter increments asynchronously3518 amount: -33519 increments the counter in Redis and logs it3520 does not increment the counter for the record3521 schedules a worker to flush counter increments asynchronously3522 #increment_amount3523 increases the egress in cache3524 #current_counter3525 increases the amount in cache3526 when increment amount is 03527 does nothing3528 #bulk_increment_counter3529 when attribute is a counter attribute3530 increments the counter in Redis and logs each increment3531 does not increment the counter for the record3532 schedules a worker to flush counter increments asynchronously3533 when feature flag split_log_bulk_increment_counter is disabled3534 logs a single total increment3535 registry_egress3536 #increment_counter3537 when attribute is a counter attribute3538 amount: 103539 increments the counter in Redis and logs it3540 does not increment the counter for the record3541 schedules a worker to flush counter increments asynchronously3542 amount: -33543 increments the counter in Redis and logs it3544 does not increment the counter for the record3545 schedules a worker to flush counter increments asynchronously3546 #increment_amount3547 increases the egress in cache3548 #current_counter3549 increases the amount in cache3550 when increment amount is 03551 does nothing3552 #bulk_increment_counter3553 when attribute is a counter attribute3554 increments the counter in Redis and logs each increment3555 does not increment the counter for the record3556 schedules a worker to flush counter increments asynchronously3557 when feature flag split_log_bulk_increment_counter is disabled3558 logs a single total increment3559 #update_counters_with_lease3560 updates counters of the record3561 behaves like obtaining lease to update database3562 when it is unable to obtain lock3563 logs a warning3564 when the execution raises error3565 reraises error3566 unique index3567 raises unique index violation3568 when project was moved from one namespace to another3569 creates a new record3570 when a different project is created3571 creates a new record3572 .beginning_of_month3573 is expected to eq 2022-05-01 00:00:00.000000000 +00003574 associations3575 is expected to belong to project required: false3576 is expected to belong to namespace required: false3577 scopes3578 .current_month3579 returns data transfer for the current month3580 .with_project_between_dates3581 returns the correct number of results3582 .with_namespace_between_dates3583 returns the correct number of results3584PackagesHelper3585 #package_registry_instance_url3586 returns conan instance url when registry_type is conant3587 returns npm instance url when registry_type is npm3588 #package_registry_project_url3589 returns maven registry url when registry_type is not provided3590 returns specified registry url when registry_type is provided3591 #pypi_registry_url3592 returns the pypi registry url with token when project is private3593 returns the pypi registry url without token when project is public3594 #composer_registry_url3595 return the composer registry url3596 #composer_config_repository_name3597 return global unique composer registry id3598 #show_cleanup_policy_link3599 com: false, config_registry: false, project_registry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3600 is expected to eq false3601 com: false, config_registry: false, project_registry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3602 is expected to eq false3603 com: false, config_registry: false, project_registry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3604 is expected to eq false3605 com: false, config_registry: false, project_registry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3606 is expected to eq false3607 com: false, config_registry: false, project_registry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3608 is expected to eq false3609 com: false, config_registry: false, project_registry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3610 is expected to eq false3611 com: false, config_registry: false, project_registry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3612 is expected to eq false3613 com: false, config_registry: false, project_registry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3614 is expected to eq false3615 com: false, config_registry: true, project_registry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3616 is expected to eq false3617 com: false, config_registry: true, project_registry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3618 is expected to eq false3619 com: false, config_registry: true, project_registry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3620 is expected to eq false3621 com: false, config_registry: true, project_registry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3622 is expected to eq false3623 com: false, config_registry: true, project_registry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3624 is expected to eq false3625 com: false, config_registry: true, project_registry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3626 is expected to eq false3627 com: false, config_registry: true, project_registry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3628 is expected to eq false3629 com: false, config_registry: true, project_registry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3630 is expected to eq false3631 com: true, config_registry: false, project_registry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3632 is expected to eq false3633 com: true, config_registry: false, project_registry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3634 is expected to eq false3635 com: true, config_registry: false, project_registry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3636 is expected to eq false3637 com: true, config_registry: false, project_registry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3638 is expected to eq false3639 com: true, config_registry: false, project_registry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3640 is expected to eq false3641 com: true, config_registry: false, project_registry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3642 is expected to eq false3643 com: true, config_registry: false, project_registry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3644 is expected to eq false3645 com: true, config_registry: false, project_registry: true, nil_policy: true, container_repositories_exist: true, expected_result: false3646 is expected to eq false3647 com: true, config_registry: true, project_registry: false, nil_policy: false, container_repositories_exist: false, expected_result: false3648 is expected to eq false3649 com: true, config_registry: true, project_registry: false, nil_policy: false, container_repositories_exist: true, expected_result: false3650 is expected to eq false3651 com: true, config_registry: true, project_registry: false, nil_policy: true, container_repositories_exist: false, expected_result: false3652 is expected to eq false3653 com: true, config_registry: true, project_registry: false, nil_policy: true, container_repositories_exist: true, expected_result: false3654 is expected to eq false3655 com: true, config_registry: true, project_registry: true, nil_policy: false, container_repositories_exist: false, expected_result: false3656 is expected to eq false3657 com: true, config_registry: true, project_registry: true, nil_policy: false, container_repositories_exist: true, expected_result: false3658 is expected to eq false3659 com: true, config_registry: true, project_registry: true, nil_policy: true, container_repositories_exist: false, expected_result: false3660 is expected to eq false3661 com: true, config_registry: true, project_registry: true, nil_policy: true, container_repositories_exist: true, expected_result: true3662 is expected to eq true3663 #show_container_registry_settings3664 with container registry config enabled3665 when user has permission3666 is expected to equal true3667 when user does not have permission3668 is expected to equal false3669 with container registry config disabled3670 when user has permission3671 is expected to equal false3672 when user does not have permission3673 is expected to equal false3674 #show_group_package_registry_settings3675 with package registry config enabled3676 with admin3677 is expected to equal true3678 with owner3679 is expected to equal true3680 with maintainer3681 is expected to equal false3682 with developer3683 is expected to equal false3684 with reporter3685 is expected to equal false3686 with guest3687 is expected to equal false3688 with package registry config disabled3689 with admin3690 is expected to equal false3691 with owner3692 is expected to equal false3693 with maintainer3694 is expected to equal false3695 with developer3696 is expected to equal false3697 with reporter3698 is expected to equal false3699 with guest3700 is expected to equal false3701 #can_delete_packages?3702 with package registry config enabled3703 when user has permission3704 is expected to equal true3705 when user does not have permission3706 is expected to equal false3707 with package registry config disabled3708 when user has permission3709 is expected to equal false3710 when user does not have permission3711 is expected to equal false3712 #can_delete_group_packages?3713 with package registry config enabled3714 when user has permission3715 is expected to equal true3716 when user does not have permission3717 is expected to equal false3718 with package registry config disabled3719 when user has permission3720 is expected to equal false3721 when user does not have permission3722 is expected to equal false3723Groups::CreateService#execute3724 visibility level restrictions3725 create groups without restricted visibility level3726 is expected to be persisted3727 cannot create group with restricted visibility level3728 is expected not to be persisted3729 when `setup_for_company:true` is passed3730 creates group with the specified setup_for_company3731 creating a group with `default_branch_protection` attribute3732 for users who have the ability to create a group with `default_branch_protection`3733 creates group with the specified branch protection level3734 for users who do not have the ability to create a group with `default_branch_protection`3735 does not create the group with the specified branch protection level3736 creating a group with `default_branch_protection_defaults` attribute3737 for users who have the ability to create a group with `default_branch_protection`3738 creates group with the specified default branch protection settings3739 for users who do not have the ability to create a group with `default_branch_protection_defaults`3740 does not create the group with the specified default branch protection settings3741 creating a group with `allow_mfa_for_subgroups` attribute3742 creates group without error3743 creating a top level group3744 when user can create a group3745 is expected to be persisted3746 with before_commit callback3747 behaves like has sync-ed traversal_ids3748 is expected to eq [2737]3749 when user can not create a group3750 is expected not to be persisted3751 creating subgroup3752 as group owner3753 is expected to be persisted3754 behaves like has sync-ed traversal_ids3755 is expected to eq [2743, 2744]3756 as guest3757 does not save group and returns an error3758 as owner3759 is expected to be persisted3760 as maintainer3761 is expected to be persisted3762 when visibility level is passed as a string3763 assigns the correct visibility level3764 creating a mattermost team3765 create the chat team with the group3766 creating a setting record3767 create the settings record connected to the group3768 creating a details record3769 create the details record connected to the group3770 create service for the group3771 with an active instance-level integration3772 creates a service from the instance-level integration3773 with an active group-level integration3774 creates a service from the group-level integration3775 with an active subgroup3776 creates a service from the subgroup-level integration3777 shared runners configuration3778 parent group present3779 shared_runners_config: true, descendants_override_disabled_shared_runners_config: false3780 creates group following the parent config3781 shared_runners_config: false, descendants_override_disabled_shared_runners_config: false3782 creates group following the parent config3783 shared_runners_config: false, descendants_override_disabled_shared_runners_config: true3784 creates group following the parent config3785 root group3786 follows default config3787Ci::JobToken::ProjectScopeLink3788 is expected to belong to source_project required: false3789 is expected to belong to target_project required: false3790 is expected to belong to added_by required: false3791 behaves like cleanup by a loose foreign key3792 cleans up (delete or nullify) the model3793 unique index3794 raises an error, when not unique3795 .create3796 when there are more than PROJECT_LINK_DIRECTIONAL_LIMIT existing links3797 invalidates new links and prevents them from being created3798 does not invalidate existing links3799 validations3800 must have a source project3801 must have a target project3802 must have a target project different than source project3803 .with_source3804 returns only the links having the given source project3805 .with_target3806 returns only the links having the given target project3807 .for_source_and_target3808 when link is found3809 is expected to eq #<Ci::JobToken::ProjectScopeLink id: 18, source_project_id: 1056, target_project_id: 1076, added_by_id: 1381, created_at: "2023-08-18 13:14:29.796663138 +0000", direction: "outbound">3810 when link is not found3811 is expected to be nil3812 enums3813 is expected to define :direction as an enum backed by an integer with values ‹{outbound: 0, inbound: 1}›3814 loose foreign key on ci_job_token_project_scope_links.source_project_id3815 behaves like cleanup by a loose foreign key3816 cleans up (delete or nullify) the model3817 loose foreign key on ci_job_token_project_scope_links.target_project_id3818 behaves like cleanup by a loose foreign key3819 cleans up (delete or nullify) the model3820PipelineDetailsEntity3821 inherits from PipelineEntity3822 #as_json3823 when pipeline is empty3824 contains details3825 contains flags3826 when disable_manual_and_scheduled_actions is true3827 does not contain manual and scheduled actions3828 when pipeline has manual builds3829 sets :has_manual_actions to true3830 when pipeline is retryable3831 user has ability to retry pipeline3832 retryable flag is true3833 user does not have ability to retry pipeline3834 retryable flag is false3835 when pipeline is cancelable3836 user has ability to cancel pipeline3837 cancelable flag is true3838 user does not have ability to cancel pipeline3839 cancelable flag is false3840 when pipeline has commit statuses3841 contains stages3842 when pipeline has YAML errors3843 contains information about error3844 contains flag that indicates there are errors3845 when pipeline does not have YAML errors3846 does not contain field that normally holds an error3847 contains flag that indicates there are no errors3848 when pipeline is triggered by other pipeline3849 contains an information about depedent pipeline3850 when pipeline triggered other pipeline3851 contains an information about dependent pipeline3852GroupMembersFinder#execute3853 relations3854 raises an error if a non-supported relation type is used3855 returns the correct access level of the members shared through group sharing3856 subject_relations: [], subject_group: :group, expected_members: []3857 returns correct members3858 subject_relations: [:direct, :inherited], subject_group: :group, expected_members: [:user1_group, :user2_group, :user3_group, :user4_group]3859 returns correct members3860 subject_relations: [:direct], subject_group: :group, expected_members: [:user1_group, :user2_group, :user3_group, :user4_group]3861 returns correct members3862 subject_relations: [:inherited], subject_group: :group, expected_members: []3863 returns correct members3864 subject_relations: [:descendants], subject_group: :group, expected_members: [:user1_sub_sub_group, :user2_sub_group, :user3_sub_group, :user4_sub_group]3865 returns correct members3866 subject_relations: [:shared_from_groups], subject_group: :group, expected_members: [:user1_public_shared_group, :user2_public_shared_group, :user3_public_shared_group, :user4_public_shared_group]3867 returns correct members3868 subject_relations: [:direct, :inherited, :descendants, :shared_from_groups], subject_group: :group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_public_shared_group]3869 returns correct members3870 subject_relations: [], subject_group: :sub_group, expected_members: []3871 returns correct members3872 subject_relations: [:direct, :inherited], subject_group: :sub_group, expected_members: [:user1_sub_group, :user2_group, :user3_sub_group, :user4_group]3873 returns correct members3874 subject_relations: [:direct], subject_group: :sub_group, expected_members: [:user1_sub_group, :user2_sub_group, :user3_sub_group, :user4_sub_group]3875 returns correct members3876 subject_relations: [:inherited], subject_group: :sub_group, expected_members: [:user1_group, :user2_group, :user3_group, :user4_group]3877 returns correct members3878 subject_relations: [:descendants], subject_group: :sub_group, expected_members: [:user1_sub_sub_group, :user2_sub_sub_group, :user3_sub_sub_group, :user4_sub_sub_group]3879 returns correct members3880 subject_relations: [:shared_from_groups], subject_group: :sub_group, expected_members: [:user1_public_shared_group, :user2_public_shared_group, :user3_public_shared_group, :user4_public_shared_group]3881 returns correct members3882 subject_relations: [:direct, :inherited, :descendants, :shared_from_groups], subject_group: :sub_group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_public_shared_group]3883 returns correct members3884 subject_relations: [], subject_group: :sub_sub_group, expected_members: []3885 returns correct members3886 subject_relations: [:direct, :inherited], subject_group: :sub_sub_group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_group]3887 returns correct members3888 subject_relations: [:direct], subject_group: :sub_sub_group, expected_members: [:user1_sub_sub_group, :user2_sub_sub_group, :user3_sub_sub_group, :user4_sub_sub_group]3889 returns correct members3890 subject_relations: [:inherited], subject_group: :sub_sub_group, expected_members: [:user1_sub_group, :user2_group, :user3_sub_group, :user4_group]3891 returns correct members3892 subject_relations: [:descendants], subject_group: :sub_sub_group, expected_members: []3893 returns correct members3894 subject_relations: [:shared_from_groups], subject_group: :sub_sub_group, expected_members: [:user1_public_shared_group, :user2_public_shared_group, :user3_public_shared_group, :user4_public_shared_group]3895 returns correct members3896 subject_relations: [:direct, :inherited, :descendants, :shared_from_groups], subject_group: :sub_sub_group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_public_shared_group]3897 returns correct members3898 search3899 returns searched members if requested3900 returns nothing if search only in inherited relation3901 returns searched member only from sub_group if search only in inherited relation3902 filter by two-factor3903 returns members with two-factor auth if requested by owner3904 returns members without two-factor auth if requested by owner3905 returns direct members with two-factor auth if requested by owner3906 returns inherited members with two-factor auth if requested by owner3907 returns direct members without two-factor auth if requested by owner3908 returns inherited members without two-factor auth if requested by owner3909 filter by access levels3910 by owner3911 returns owners3912 by maintainer3913 returns owners3914 by owner and maintainer3915 returns owners and maintainers3916 filter by user type3917 when the user is an owner3918 when filtering by project bots3919 returns filtered members3920 when filtering by service accounts3921 returns filtered members3922 when the user is a maintainer3923 returns unfiltered members3924 when the user is a developer3925 returns unfiltered members3926CommitRange3927 raises ArgumentError when given an invalid range string3928 modules3929 is expected to includes the Referable module3930 #initialize3931 does not modify strings in-place3932 #to_s3933 is correct for three-dot syntax3934 is correct for two-dot syntax3935 #to_reference3936 returns a String reference to the object3937 returns a String reference to the object3938 supports a cross-project reference3939 #reference_link_text3940 returns a String reference to the object3941 returns a String reference to the object3942 supports a cross-project reference3943 #to_param3944 includes the correct keys3945 includes the correct values for a three-dot range3946 includes the correct values for a two-dot range3947 #exclude_start?3948 is false for three-dot ranges3949 is true for two-dot ranges3950 #valid_commits?3951 with a valid repo3952 is false when `sha_from` is invalid3953 is false when `sha_to` is invalid3954 is true when both `sha_from` and `sha_to` are valid3955 without a valid repo3956 returns false3957Gitlab::Ci::Config::External::Processor3958 #perform3959 when no external files defined3960 returns the same values3961 when an invalid local file is defined3962 raises an error3963 when an invalid remote file is defined3964 raises an error3965 with a valid remote external file is defined3966 appends the file to the values3967 removes the 'include' keyword3968 when the remote file has `include` with rules:exists3969 evaluates the rule as false3970 removes the 'include' keyword3971 with a valid local external file is defined3972 appends the file to the values3973 removes the 'include' keyword3974 with multiple external files are defined3975 appends the files to the values3976 removes the 'include' keyword3977 when external files are defined but not valid3978 raises an error3979 when both external files and values defined the same key3980 takes precedence3981 when a nested includes are defined3982 when project is public3983 properly expands all includes3984 propagates the pipeline logger3985 stores includes3986 when user is reporter of another project3987 properly expands all includes3988 when user is not allowed3989 raises an error3990 when too many includes is included3991 raises an error3992 when config includes an external configuration file via SSL web request3993 with an acceptable certificate3994 is expected to include {:image => "image:1.0"}3995 with a self-signed certificate3996 returns a reportable configuration error3997 include:component3998 appends the file to the values3999 when a valid project file is defined4000 appends the file to the values4001 when valid project files are defined in a single include4002 appends the file to the values4003 stores includes4004 when local file path has wildcard4005 fetches the matched files4006 stores includes4007 when rules defined4008 when a rule is invalid4009 raises IncludeError4010 when FF `ci_refactor_external_rules` is disabled4011 raises IncludeError4012PushEventPayloadService4013 #execute4014 creates a new PushEventPayload row4015 sets the push_event_payload association of the used event4016 #commit_title4017 returns nil if no commits were pushed4018 returns a String limited to 70 characters4019 does not truncate the commit message if it is shorter than 70 characters4020 includes the first line of a commit message if the message spans multiple lines4021 #commit_from_id4022 returns nil when creating a new ref4023 returns the ID of the first commit when pushing to an existing ref4024 #commit_to_id4025 returns nil when removing an existing ref4026 #commit_count4027 returns the number of commits4028 raises when the push data does not contain the commits count4029 #ref4030 returns the name of the ref4031 raises when the push data does not contain the ref name4032 #revision_before4033 returns the revision from before the push4034 raises when the push data does not contain the before revision4035 #revision_after4036 returns the revision from after the push4037 raises when the push data does not contain the after revision4038 #trimmed_ref4039 returns the ref name without its prefix4040 #create?4041 returns true when creating a new ref4042 returns false when pushing to an existing ref4043 #remove?4044 returns true when removing an existing ref4045 returns false pushing to an existing ref4046 #action4047 returns :created when creating a ref4048 returns :removed when removing an existing ref4049 returns :pushed when pushing to an existing ref4050 #ref_type4051 returns :tag for a tag4052 returns :branch for a branch4053Mutations::Discussions::ToggleResolve4054 #resolve4055 when discussion is on a merge request4056 behaves like a working resolve method4057 when the user does not have permission4058 raises an error if the resource is not accessible to the user4059 when the user has permission4060 when discussion cannot be found4061 raises an error4062 when the `resolve` argument is true4063 returns a resolved discussion4064 returns empty errors4065 when the discussion is already resolved4066 returns a resolved discussion4067 returns empty errors4068 when the service raises an `ActiveRecord::RecordNotSaved` error4069 does not resolve the discussion4070 returns errors4071 when the `resolve` argument is false4072 when the discussion is resolved4073 returns an unresolved discussion4074 returns empty errors4075 when the service raises an `ActiveRecord::RecordNotSaved` error4076 does not unresolve the discussion4077 returns errors4078 when the discussion is already unresolved4079 returns an unresolved discussion4080 returns empty errors4081 when user is the author and discussion is locked4082 raises an error4083 when discussion is on a design4084 behaves like a working resolve method4085 when the user does not have permission4086 raises an error if the resource is not accessible to the user4087 when the user has permission4088 when discussion cannot be found4089 raises an error4090 when the `resolve` argument is true4091 returns a resolved discussion4092 returns empty errors4093 when the discussion is already resolved4094 returns a resolved discussion4095 returns empty errors4096 when the service raises an `ActiveRecord::RecordNotSaved` error4097 does not resolve the discussion4098 returns errors4099 when the `resolve` argument is false4100 when the discussion is resolved4101 returns an unresolved discussion4102 returns empty errors4103 when the service raises an `ActiveRecord::RecordNotSaved` error4104 does not unresolve the discussion4105 returns errors4106 when the discussion is already unresolved4107 returns an unresolved discussion4108 returns empty errors4109 when user is the author and discussion is locked4110 raises an error4111Gitlab::LetsEncrypt::Client4112 #new_order4113 ensures account registration4114 generates and stores private key and initialize acme client with it4115 returns order4116 when private key is saved in settings4117 uses current value of private key4118 when acme integration is disabled4119 raises error4120 #load_order4121 ensures account registration4122 generates and stores private key and initialize acme client with it4123 loads order4124 when private key is saved in settings4125 uses current value of private key4126 when acme integration is disabled4127 raises error4128 #load_challenge4129 ensures account registration4130 generates and stores private key and initialize acme client with it4131 loads challenge4132 when private key is saved in settings4133 uses current value of private key4134 when acme integration is disabled4135 raises error4136 #terms_of_service_url4137 returns valid url4138Issuable::CommonSystemNotesService4139 on issuable update4140 behaves like system note creation4141 creates 1 system note with the correct content4142 behaves like system note creation4143 creates 1 system note with the correct content4144 behaves like system note creation4145 creates 1 system note with the correct content4146 behaves like system note creation4147 creates 1 system note with the correct content4148 when new label is added4149 creates a resource label event4150 with merge requests Draft note4151 adding Draft note4152 behaves like system note creation4153 creates 1 system note with the correct content4154 and changing title4155 behaves like draft notes creation4156 creates Draft toggle and title change notes4157 removing Draft note4158 behaves like system note creation4159 creates 1 system note with the correct content4160 and changing title4161 behaves like draft notes creation4162 creates Draft toggle and title change notes4163 when changing dates4164 behaves like system note for issuable date changes4165 creates a system note for due_date set4166 creates a system note for start_date set4167 creates a note when both start and due date are changed4168 does not call SystemNoteService if no dates are changed4169 on issuable create4170 does not create system note for title and description4171 creates a resource label event for labels added4172 when changing milestones4173 does not create a system note for milestone set4174 creates a milestone change event4175 when changing dates4176 behaves like system note for issuable date changes4177 creates a system note for due_date set4178 creates a system note for start_date set4179 creates a note when both start and due date are changed4180 does not call SystemNoteService if no dates are changed4181Gitlab::Ci::Config::Entry::Variables4182 when entry config value has key-value pairs4183 behaves like valid config4184 #value4185 returns hash with key value strings4186 #errors4187 does not append errors4188 #valid?4189 is valid4190 #value_with_data4191 returns variable with data4192 #value_with_prefill_data4193 returns variable with prefill data4194 with numeric keys and values in the config4195 behaves like valid config4196 #value4197 returns hash with key value strings4198 #errors4199 does not append errors4200 #valid?4201 is valid4202 when key is an array4203 behaves like invalid config4204 #valid?4205 is not valid4206 #errors4207 saves errors4208 when value is a symbol4209 behaves like valid config4210 #value4211 returns hash with key value strings4212 #errors4213 does not append errors4214 #valid?4215 is valid4216 when value is a boolean4217 behaves like invalid config4218 #valid?4219 is not valid4220 #errors4221 saves errors4222 when entry config value has unallowed value key-value pair and value is a string4223 when there is no allowed_value_data metadata4224 behaves like invalid config4225 #valid?4226 is not valid4227 #errors4228 saves errors4229 when metadata has the allowed_value_data key4230 behaves like valid config4231 #value4232 returns hash with key value strings4233 #errors4234 does not append errors4235 #valid?4236 is valid4237 #value_with_data4238 returns variable with data4239 #value_with_prefill_data4240 returns variable with prefill data4241 when entry config value has options4242 when metadata has allowed_value_data4243 behaves like valid config4244 #value4245 returns hash with key value strings4246 #errors4247 does not append errors4248 #valid?4249 is valid4250 #value_with_data4251 returns variable with data4252 #value_with_prefill_data4253 returns variable with prefill data4254 when entry config value has key-value pair and hash4255 behaves like invalid config4256 #valid?4257 is not valid4258 #errors4259 saves errors4260 when metadata has allowed_value_data4261 behaves like valid config4262 #value4263 returns hash with key value strings4264 #errors4265 does not append errors4266 #valid?4267 is valid4268 #value_with_data4269 returns variable with data4270 #value_with_prefill_data4271 returns variable with prefill data4272 when entry value is an array4273 behaves like invalid config4274 #valid?4275 is not valid4276 #errors4277 saves errors4278 when metadata has allowed_value_data4279 when entry value has hash with other key-pairs4280 behaves like invalid config4281 #valid?4282 is not valid4283 #errors4284 saves errors4285 when entry config value has hash without description4286 behaves like valid config4287 #value4288 returns hash with key value strings4289 #errors4290 does not append errors4291 #valid?4292 is valid4293Gitlab::Ci::Trace::ChunkedIO4294 #initialize4295 when a chunk exists4296 is expected to eq 34297 when two chunks exist4298 is expected to eq 64299 when no chunks exists4300 is expected to eq 04301 #seek4302 when moves pos to end of the file4303 is expected to eq 1924414304 when moves pos to middle of the file4305 is expected to eq 962204306 when moves pos around4307 matches the result4308 #eof?4309 when current pos is at end of the file4310 is expected to be truthy4311 when current pos is not at end of the file4312 is expected to be falsey4313 #each_line4314 when buffer size is smaller than file size4315 yields lines4316 when buffer size is larger than file size4317 calls get_chunk only once4318 when buffer consist of many empty lines4319 yields lines4320 #read4321 when read the whole size4322 when buffer size is smaller than file size4323 is expected to eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"4324 when buffer size is larger than file size4325 is expected to eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"4326 when chunk is missing data4327 raises an error4328 when read only first 100 bytes4329 when buffer size is smaller than file size4330 reads a trace4331 when buffer size is larger than file size4332 reads a trace4333 when tries to read oversize4334 when buffer size is smaller than file size4335 reads a trace4336 when buffer size is larger than file size4337 reads a trace4338 when tries to read 0 bytes4339 when buffer size is smaller than file size4340 reads a trace4341 when buffer size is larger than file size4342 reads a trace4343 #readline4344 when buffer size is smaller than file size4345 behaves like all line matching4346 is expected to eq "\e[0;m\n"4347 when buffer size is larger than file size4348 behaves like all line matching4349 is expected to eq "\e[0;m\n"4350 when pos is at middle of the file4351 reads from pos4352 when chunk is missing data4353 raises an error4354 when utf-8 is being used4355 has known length4356 behaves like all line matching4357 is expected to eq "\xF0\x9F\x98\xBA"4358 #write4359 when data does not exist4360 when buffer size is smaller than file size4361 behaves like writes a trace4362 is expected to eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"4363 when buffer size is larger than file size4364 behaves like writes a trace4365 is expected to eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"4366 when data already exists4367 when buffer size is smaller than file size4368 behaves like appends a trace4369 is expected to eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"4370 when buffer size is larger than file size4371 behaves like appends a trace4372 is expected to eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"4373 #truncate4374 when data does not exist4375 when buffer size is smaller than file size4376 behaves like truncates a trace4377 is expected to eq "\e[0KRunnin"4378 when buffer size is larger than file size4379 behaves like truncates a trace4380 is expected to eq "\e[0KRunnin"4381 #destroy!4382 deletes4383MergeRequests::RetargetChainService4384 #execute4385 when there is another MR4386 in the same project4387 and current is merged4388 behaves like retargets merge request4389 another merge request is retargeted4390 and current is closed4391 behaves like does not retarget merge request4392 another merge request is unchanged4393 and another is closed4394 behaves like does not retarget merge request4395 another merge request is unchanged4396 and another is merged4397 behaves like does not retarget merge request4398 another merge request is unchanged4399 in forked project4400 when user has access to source project4401 behaves like retargets merge request4402 another merge request is retargeted4403 when user does not have access to source project4404 behaves like does not retarget merge request4405 another merge request is unchanged4406 and current and another MR is from a fork4407 behaves like does not retarget merge request4408 another merge request is unchanged4409 when many merge requests are to be retargeted4410 retargets only 4 of them4411Gitlab::Database::LoadBalancing::Host4412 #connection4413 returns a connection from the pool4414 #disconnect!4415 disconnects the pool4416 disconnects the pool when waiting for connections takes too long4417 #release_connection4418 releases the current connection from the pool4419 #offline!4420 marks the host as offline4421 #online?4422 when the replica status is recent enough4423 returns the latest status4424 returns an offline status4425 when the replica status is outdated4426 refreshes the status4427 and replica is not up to date4428 marks the host offline4429 when the replica is not online4430 returns false when ActionView::Template::Error is raised4431 returns false when ActiveRecord::StatementInvalid is raised4432 returns false when PG::Error is raised4433 returns false when ActiveRecord::ConnectionNotEstablished is raised4434 #refresh_status4435 refreshes the status4436 clears the cache for latest_lsn_query4437 #check_replica_status?4438 returns true when we need to check the replica status4439 returns false when we do not need to check the replica status4440 #replica_is_up_to_date?4441 when the lag time is below the threshold4442 returns true4443 when the lag time exceeds the threshold4444 returns true if the data is recent enough4445 returns false when the data is not recent enough4446 #replication_lag_below_threshold4447 returns true when the lag time is below the threshold4448 returns false when the lag time exceeds the threshold4449 returns false when no lag time could be calculated4450 #data_is_recent_enough?4451 returns true when the data is recent enough4452 returns false when the data is not recent enough4453 returns false when no lag size could be calculated4454 #replication_lag_time4455 returns the lag time as a Float4456 returns nil when the database query returned no rows4457 #replication_lag_size4458 returns the lag size as an Integer4459 returns nil when the database query returned no rows4460 returns nil when the database connection fails4461 when can_track_logical_lsn? is false4462 uses LATEST_LSN_WITHOUT_LOGICAL_QUERY4463 when can_track_logical_lsn? is true4464 uses LATEST_LSN_WITH_LOGICAL_QUERY4465 when CAN_TRACK_LOGICAL_LSN_QUERY raises connection errors4466 uses LATEST_LSN_WITHOUT_LOGICAL_QUERY4467 #primary_write_location4468 returns the write location of the primary4469 #caught_up?4470 returns true when a host has caught up4471 returns false when diff query returns nothing4472 returns false when a host has not caught up4473 returns false when the connection fails4474 #database_replica_location4475 returns the write ahead location of the replica4476 returns nil when the database query returned no rows4477 returns nil when the database connection fails4478 #query_and_release4479 executes a SQL query4480 releases the connection after running the query4481 returns an empty Hash in the event of an error4482 #host4483 returns the hostname4484Banzai::Filter::AudioLinkFilter4485 when the element src has an audio extension4486 behaves like an audio element4487 replaces the image tag with an audio tag4488 behaves like an audio element4489 replaces the image tag with an audio tag4490 behaves like an audio element4491 replaces the image tag with an audio tag4492 behaves like an audio element4493 replaces the image tag with an audio tag4494 behaves like an audio element4495 replaces the image tag with an audio tag4496 behaves like an audio element4497 replaces the image tag with an audio tag4498 behaves like an audio element4499 replaces the image tag with an audio tag4500 behaves like an audio element4501 replaces the image tag with an audio tag4502 behaves like an audio element4503 replaces the image tag with an audio tag4504 behaves like an audio element4505 replaces the image tag with an audio tag4506 when the element has no src attribute4507 behaves like an unchanged element4508 leaves the document unchanged4509 when the element src is an image4510 behaves like an unchanged element4511 leaves the document unchanged4512 when the element src has an invalid file extension4513 behaves like an unchanged element4514 leaves the document unchanged4515 when data-canonical-src is empty4516 and src is audio4517 behaves like an audio element4518 replaces the image tag with an audio tag4519 and src is an image4520 behaves like an unchanged element4521 leaves the document unchanged4522 when data-canonical-src is set4523 uses the correct src4524Projects::HashedStorage::MigrateAttachmentsService4525 #execute4526 works even when project validation fails4527 when succeeds4528 moves attachments to hashed storage layout4529 returns true4530 sets skipped to false4531 when original folder does not exist anymore4532 skips moving folders and go to next4533 returns true4534 sets skipped to true4535 when target folder already exists4536 succeed when target is empty4537 succeed when target include only discardable items4538 raises AttachmentCannotMoveError when there are non discardable items on target path4539 #old_disk_path4540 returns old disk_path for project4541 #new_disk_path4542 returns new disk_path for project4543 #target_path_discardable?4544 returns true when it include only items on the discardable list4545Gitlab::SlashCommands::Deploy4546 #execute4547 if no environment is defined4548 does not execute an action4549 with environment4550 without actions4551 does not execute an action4552 when single action has been matched4553 returns success result4554 when more than one action has been matched4555 when there is no specific actions with a environment name4556 returns error about too many actions defined4557 when one of the actions is environement specific action4558 deploys to production4559 when one of the actions is a teardown action4560 deploys to production4561 with extra spaces in the deploy command4562 deploys to production4563 self.match4564 matches the environment4565 matches the environment with spaces in it4566 matches the environment name with surrounding spaces4567 returns nil for text that is not a deploy command4568 returns nil for a partial command4569 with ReDoS attempts4570 has smaller than linear execution time growth with a malformed "to"4571Gitlab::Redis::Queues4572 .config_file_name4573 when there is no config file anywhere4574 is expected to be nil4575 .store4576 with old format4577 behaves like redis store4578 instantiates Redis::Store4579 with the namespace4580 uses specified namespace4581 with new format4582 behaves like redis store4583 instantiates Redis::Store4584 with the namespace4585 uses specified namespace4586 .params4587 withstands mutation4588 when url contains unix socket reference4589 with old format4590 returns path key instead4591 with new format4592 returns path key instead4593 when url is host based4594 with old format4595 returns hash with host, port, db, and password4596 with new format4597 rails_env: "development", host: "development-host"4598 returns hash with host, port, db, and password4599 rails_env: "test", host: "test-host"4600 returns hash with host, port, db, and password4601 rails_env: "production", host: "production-host"4602 returns hash with host, port, db, and password4603 with redis cluster format4604 rails_env: "development", host: "development-master"4605 returns hash with cluster and password4606 rails_env: "test", host: "test-master"4607 returns hash with cluster and password4608 rails_env: "production", host: "production-master"4609 returns hash with cluster and password4610 .url4611 withstands mutation4612 when yml file with env variable4613 reads redis url from env variable4614 .version4615 returns a version4616 .with4617 when running on single-threaded runtime4618 instantiates a connection pool with size 54619 when running on multi-threaded runtime4620 instantiates a connection pool with a size based on the concurrency of the worker4621 when there is no config at all4622 can run an empty block4623 #db4624 with old format4625 returns the correct db4626 with new format4627 returns the correct db4628 with cluster-mode4629 returns the correct db4630 #sentinels4631 when sentinels are defined4632 rails_env: "development", hosts: ["development-replica1", "development-replica2"]4633 returns an array of hashes with host and port keys4634 rails_env: "test", hosts: ["test-replica1", "test-replica2"]4635 returns an array of hashes with host and port keys4636 rails_env: "production", hosts: ["production-replica1", "production-replica2"]4637 returns an array of hashes with host and port keys4638 when sentinels are not defined4639 returns nil4640 when cluster is defined4641 returns nil4642 #sentinels?4643 when sentinels are defined4644 returns true4645 when sentinels are not defined4646 is expected to eq nil4647 when cluster is defined4648 returns false4649 #raw_config_hash4650 returns old-style single url config in a hash4651 returns cluster config without url key in a hash4652 #fetch_config4653 raises an exception when the config file contains invalid yaml4654 when redis.yml exists4655 uses config/redis.yml4656 when no config file exsits4657 returns nil4658 when resque.yml exists4659 returns the config from resque.yml4660 #raw_config_hash4661 when the config url is present4662 sets the configured url4663Resolvers::WorkItemsResolver4664 is expected to have nullable GraphQL type WorkItemConnection4665 with a project4666 #resolve4667 finds all items4668 filters by state4669 returns items user can see4670 batches queries that only include IIDs4671 finds a specific item with iids4672 finds multiple items with iids4673 finds only the items within the project we are looking at4674 when searching items4675 behaves like graphql query for searching issuables4676 uses search optimization4677 filters issuables by title4678 filters issuables by description4679 with in param4680 generates an error if param search is missing4681 filters issuables by title and description4682 filters issuables by description only4683 filters issuables by title only4684 sorting4685 when sorting by created4686 sorts items ascending4687 sorts items descending4688 when sorting by title4689 sorts items ascending4690 sorts items descending4691 when passing a non existent, batch loaded project4692 returns nil without breaking4693Import::GithubController routing4694 to #personal_access_token4695 to #cancel_all4696 to #counts4697 behaves like importer routing4698 to #create4699 to #new4700 to #status4701 to #callback4702 to #jobs4703 to #realtime_changes4704Import::GiteaController routing4705 to #personal_access_token4706 behaves like importer routing4707 to #create4708 to #new4709 to #status4710 to #callback4711 to #jobs4712 to #realtime_changes4713Import::BitbucketController routing4714 behaves like importer routing4715 to #create4716 to #new4717 to #status4718 to #callback4719 to #jobs4720 to #realtime_changes4721Import::BitbucketServerController routing4722 behaves like importer routing4723 to #create4724 to #new4725 to #status4726 to #callback4727 to #jobs4728 to #realtime_changes4729Import::FogbugzController routing4730 to #callback4731 to #new_user_map4732 to #create_user_map4733 behaves like importer routing4734 to #create4735 to #new4736 to #status4737 to #callback4738 to #jobs4739 to #realtime_changes4740Import::GitlabProjectsController routing4741 to #create4742 to #new4743Import::GithubGroupsController routing4744 to #status4745Types::IssueType4746 is expected to expose permissions using Types::PermissionTypes::Issue4747 is expected to eq "Issue"4748 is expected to require graphql authorizations :read_issue4749 is expected to include Types::Notes::NoteableInterface4750 is expected to include Types::CurrentUserTodos4751 has specific fields4752 pagination and count4753 when user does not have the permission4754 does not return an error4755 returns no data4756 count4757 returns total count4758 total count does not change between pages4759 pagination4760 returns new ids during pagination4761 issue notes4762 query issue notes4763 when user signed in4764 behaves like does not include private notes4765 does not return private notes4766 when user member of the project4767 behaves like includes private notes4768 returns all notes4769 when user is anonymous4770 behaves like does not include private notes4771 does not return private notes4772 hidden4773 when issue is hidden4774 returns `true`4775 when issue is visible4776 returns `false`4777 escalation_status4778 is expected to be nil4779 for an incident4780 is expected to be nil4781 with an escalation status record4782 is expected to eq "TRIGGERED"4783Projects::ParticipantsService4784 #execute4785 includes `All Project and Group Members`4786 does not return duplicate author4787 N+1 checks4788 avoids N+1 UserDetail queries4789 avoids N+1 groups queries4790 group items4791 group user counts4792 returns correct user counts for groups4793 avatar_url4794 returns an url for the avatar4795 returns an url for the avatar with relative url4796 when `disable_all_mention` FF is enabled4797 does not include `All Project and Group Members`4798 #project_members4799 when there is a project in group namespace4800 returns members of a group4801 when there is a private group and a public project4802 when the private group is invited to the public project4803 does not return the private group4804 returns private group members4805 returns the project maintainer4806 returns project members from an invited public group4807 returns members of the ancestral groups of the private group4808 returns invited group members of the private group4809Packages::Maven::Metadata::SyncService4810 #execute4811 permissions4812 role: :anonymous, expected_result: :rejected4813 behaves like returning an error service response4814 returns an error service response4815 role: :developer, expected_result: :rejected4816 behaves like returning an error service response4817 returns an error service response4818 role: :maintainer, expected_result: :accepted4819 behaves like returning a success service response4820 returns a success service response4821 with a maintainer4822 with a jar package4823 with no changes4824 behaves like returning a success service response4825 returns a success service response4826 with changes4827 behaves like returning a success service response4828 returns a success service response4829 with empty versions4830 behaves like returning a success service response4831 returns a success service response4832 with a too big maven metadata file for versions4833 behaves like returning an error service response4834 returns an error service response4835 an error from the create versions xml service4836 behaves like returning an error service response4837 returns an error service response4838 an error from the append package file service4839 behaves like returning an error service response4840 returns an error service response4841 without a package name4842 behaves like returning an error service response4843 returns an error service response4844 without a versionless package for version4845 behaves like returning a success service response4846 returns a success service response4847 without a metadata package file for versions4848 behaves like returning a success service response4849 returns a success service response4850 without a project4851 behaves like returning an error service response4852 returns an error service response4853 with a maven plugin package4854 with no changes4855 behaves like returning a success service response4856 returns a success service response4857 with changes in the versions xml4858 behaves like returning a success service response4859 returns a success service response4860 with changes in the plugin xml4861 behaves like returning a success service response4862 returns a success service response4863 with empty versions4864 behaves like returning a success service response4865 returns a success service response4866 with a too big maven metadata file for plugins4867 behaves like returning an error service response4868 returns an error service response4869 an error from the create versions xml service4870 behaves like returning an error service response4871 returns an error service response4872 an error from the append package file service4873 behaves like returning an error service response4874 returns an error service response4875 without a versionless package for plugins4876 behaves like returning a success service response4877 returns a success service response4878 without a versionless package for versions4879 behaves like returning a success service response4880 returns a success service response4881 without a metadata package file for plugins4882 behaves like returning a success service response4883 returns a success service response4884Gitlab::Ci::Pipeline::Chain::Populate4885 when pipeline doesn not have seeds block4886 does not persist the pipeline4887 does not break the chain4888 populates pipeline with stages4889 correctly assigns user4890 has pipeline iid4891 when pipeline is empty4892 breaks the chain4893 appends an error about missing stages4894 wastes pipeline iid4895 increments the error metric4896 pipeline protect4897 when ref is protected4898 does not protect the pipeline4899 when ref is not protected4900 does not protect the pipeline4901 when pipeline has validation errors4902 breaks the chain4903 appends validation error4904 wastes pipeline iid4905 when there is a seed blocks present4906 when seeds block builds some resources4907 populates pipeline with resources described in the seeds block4908 has pipeline iid4909 when seeds block tries to persist some resources4910 raises error4911 when pipeline gets persisted during the process4912 raises error4913 when variables policy is specified4914 when using only/except build policies4915 behaves like a correct pipeline4916 populates pipeline according to used policies4917 when variables expression is specified4918 when pipeline iid is the subject4919 behaves like a correct pipeline4920 populates pipeline according to used policies4921Gitlab::Database::LoadBalancing::ConnectionProxy4922 #select4923 performs a read4924 #select_all4925 method signatures match4926 using a SELECT query4927 runs the query on a secondary4928 using a SELECT FOR UPDATE query4929 runs the query on the primary and sticks to it4930 sanitize_limit4931 runs the query on the replica4932 select4933 runs the query on the replica4934 select_one4935 runs the query on the replica4936 select_rows4937 runs the query on the replica4938 quote_column_name4939 runs the query on the replica4940 delete4941 runs the query on the primary and sticks to it4942 delete_all4943 runs the query on the primary and sticks to it4944 insert4945 runs the query on the primary and sticks to it4946 update4947 runs the query on the primary and sticks to it4948 update_all4949 runs the query on the primary and sticks to it4950 exec_insert_all4951 runs the query on the primary and sticks to it4952 methods using exec_insert_all on the connection4953 #upsert4954-- create_table(:_test_connection_proxy_insert_all, {:force=>true})4955 -> 0.0076s4956-- drop_table(:_test_connection_proxy_insert_all, {:force=>true})4957 -> 0.0021s4958 upserts a record and marks the session to stick to the primary4959 #insert_all!4960-- create_table(:_test_connection_proxy_insert_all, {:force=>true})4961 -> 0.0060s4962-- drop_table(:_test_connection_proxy_insert_all, {:force=>true})4963 -> 0.0019s4964 inserts multiple records and marks the session to stick to the primary4965 #insert4966-- create_table(:_test_connection_proxy_insert_all, {:force=>true})4967 -> 0.0060s4968-- drop_table(:_test_connection_proxy_insert_all, {:force=>true})4969 -> 0.0019s4970 inserts a single record and marks the session to stick to the primary4971 #transaction4972 session fallbacks ambiguous queries to replicas4973 with a read query4974 runs the transaction and any nested queries on the replica4975 with a write query4976 raises an exception4977 session does not fallback to replicas for ambiguous queries4978 with a read query4979 runs the transaction and any nested queries on the primary and stick to it4980 with a write query4981 runs the transaction and any nested queries on the primary and stick to it4982 #method_missing4983 runs the query on the primary without sticking to it4984 properly forwards keyword arguments4985 current session prefers to fallback ambiguous queries to replicas4986 runs the query on the replica4987 properly forwards keyword arguments4988 #read_using_load_balancer4989 with a regular session4990 uses a secondary4991 with a regular session and forcing all reads to replicas4992 uses a secondary4993 with a session using the primary but forcing all reads to replicas4994 uses a secondary4995 with a session using the primary4996 uses the primary4997 #write_using_load_balancer4998 uses but does not stick to the primary4999Gitlab::GithubImport::Representation::DiffNote5000 .from_api_response5001 behaves like a DiffNote representation5002 returns an instance of DiffNote5003 the returned DiffNote5004 includes the number of the merge request5005 includes the file path of the diff5006 includes the commit ID5007 includes the created timestamp5008 includes the updated timestamp5009 includes the GitHub ID5010 returns the noteable type5011 #diff_hash5012 returns a Hash containing the diff details5013 #diff_position5014 when the diff is an addition5015 returns a Gitlab::Diff::Position5016 when the diff is an deletion5017 returns a Gitlab::Diff::Position5018 #github_identifiers5019 returns a hash with needed identifiers5020 #line_code5021 generates the proper line code5022 when comment on file5023 generates line code for first line5024 #note and #contains_suggestion?5025 includes the note body5026 when the note have a suggestion5027 returns the suggestion formatted in the note5028 when the note have a multiline suggestion5029 returns the multi-line suggestion formatted in the note5030 #author5031 includes the user details5032 when the author is empty5033 does not set the user if the response did not include a user5034 #discussion_id5035 finds or generates discussion_id value5036 .from_json_hash5037 behaves like a DiffNote representation5038 returns an instance of DiffNote5039 the returned DiffNote5040 includes the number of the merge request5041 includes the file path of the diff5042 includes the commit ID5043 includes the created timestamp5044 includes the updated timestamp5045 includes the GitHub ID5046 returns the noteable type5047 #diff_hash5048 returns a Hash containing the diff details5049 #diff_position5050 when the diff is an addition5051 returns a Gitlab::Diff::Position5052 when the diff is an deletion5053 returns a Gitlab::Diff::Position5054 #github_identifiers5055 returns a hash with needed identifiers5056 #line_code5057 generates the proper line code5058 when comment on file5059 generates line code for first line5060 #note and #contains_suggestion?5061 includes the note body5062 when the note have a suggestion5063 returns the suggestion formatted in the note5064 when the note have a multiline suggestion5065 returns the multi-line suggestion formatted in the note5066 #author5067 includes the user details5068 when the author is empty5069 does not set the user if the response did not include a user5070ExtractsRef5071 #assign_ref_vars5072 behaves like assigns ref vars5073 assigns the repository var5074 ref contains %205075 is not converted to a space in @id5076 ref contains trailing space5077 strips surrounding space5078 ref contains leading space5079 strips surrounding space5080 path contains space5081 is not converted to %20 in @path5082 subclass overrides get_id5083 uses ref returned by get_id5084 ref and path are nil5085 does not set commit5086 when ref and path have incorrect format5087 does not raise an exception5088 when a ref_type parameter is provided5089 sets a fully_qualified_ref variable5090 #ref_type5091 delegates to .ref_type5092 .ref_type5093 when ref_type is nil5094 is expected to eq nil5095 when ref_type is heads5096 is expected to eq "heads"5097 when ref_type is tags5098 is expected to eq "tags"5099 when ref_type is invalid5100 is expected to eq nil5101 .qualify_ref5102 when ref_type is nil5103 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"5104 when ref_type valid5105 is expected to eq "refs/heads/570e7b2abdd848b95f2f578043fc23bd6f6fd24d"5106 when ref_type is invalid5107 is expected to eq "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"5108 behaves like extracts refs5109 #extract_ref5110 returns an empty pair when no repository_container is set5111 without a path5112 extracts a valid branch5113 extracts a valid tag5114 extracts a valid commit ref without a path5115 falls back to a primitive split for an invalid ref5116 does not fetch ref names when there is no slash5117 fetches ref names when there is a slash5118 with a path5119 extracts a valid branch5120 extracts a valid tag5121 extracts a valid commit SHA5122 falls back to a primitive split for an invalid ref5123 extracts the longest matching ref5124 when the repository does not have ambiguous refs5125 does not fetch all ref names when the first path component is a ref5126 fetches all ref names when the first path component is not a ref5127 when the repository has ambiguous refs5128 always fetches all ref names5129layouts/header/_new_dropdown5130 with group-specific links5131 as a Group owner5132 has a "New project" link5133 has a "New subgroup" link5134 invite members item5135 behaves like invite member selector5136 with ability to invite members5137 is expected to have visible css ".js-invite-members-trigger"5138 without ability to invite members5139 is expected not to have visible css ".js-invite-members-trigger"5140 with project-specific links5141 as a Project owner5142 has a "New issue" link5143 has a "New merge request" link5144 has a "New snippet" link5145 as a Project guest5146 has no "New merge request" link5147 has no "New snippet" link5148 invite members item5149 behaves like invite member selector5150 with ability to invite members5151 is expected to have visible css ".js-invite-members-trigger"5152 without ability to invite members5153 is expected not to have visible css ".js-invite-members-trigger"5154 with global links5155 has a "New project" link5156 has a "New group" link5157 has a "New snippet" link5158 when partial exists in a menu item5159 renders the menu item partial without rendering invite modal partial5160 when the user is not allowed to do anything5161 is nil5162MergeRequests::UpdateAssigneesService5163 execute5164 when the parameters are valid5165 does not update the assignees if they do not have access5166 is more efficient than using the full update-service5167 when using sentinel values5168 when using assignee_ids5169 behaves like removing all assignees5170 removes all assignees5171 enqueues the correct background work5172 when using assignee_id5173 behaves like removing all assignees5174 removes all assignees5175 enqueues the correct background work5176 when the assignee_ids parameter is the empty list5177 behaves like removing all assignees5178 removes all assignees5179 enqueues the correct background work5180 behaves like it updates and enqueues the job5181 correctly updates the MR and enqueues the job5182Ci::PlayManualStageService#execute5183 when pipeline has manual processables5184 starts manual processables from pipeline5185 updates manual processables5186 when pipeline has no manual processables5187 does not update the processables5188 when user does not have permission on a specific processable5189 logs the error5190Gitlab::Database::Migrations::TimeoutHelpers5191 # order random5192 #disable_statement_timeout5193-- transaction_open?()5194 -> 0.0003s5195 disables statement timeouts to current transaction only5196 with real environment5197-- execute("SET statement_timeout TO '20000'")5198 -> 0.0017s5199-- execute("SHOW statement_timeout")5200 -> 0.0012s5201-- transaction_open?()5202 -> 0.0002s5203-- execute("SET LOCAL statement_timeout TO 0")5204 -> 0.0018s5205-- execute("SHOW statement_timeout")5206 -> 0.0010s5207-- execute("SHOW statement_timeout")5208 -> 0.0009s5209-- execute("RESET statement_timeout")5210 -> 0.0013s5211 defines statement to 0 only for current transaction5212 when passing a blocks5213-- execute("SET statement_timeout TO '20000'")5214 -> 0.0033s5215 disables statement timeouts on session level and executes the block5216 with real environment5217-- execute("SET statement_timeout TO '20000'")5218 -> 0.0039s5219-- execute("SET statement_timeout TO '20000'")5220 -> 0.0012s5221-- execute("SHOW statement_timeout")5222 -> 0.0011s5223-- execute("SET statement_timeout TO 0")5224 -> 0.0010s5225-- execute("SHOW statement_timeout")5226 -> 0.0017s5227-- execute("SHOW statement_timeout")5228 -> 0.0013s5229-- execute("RESET statement_timeout")5230 -> 0.0008s5231-- execute("RESET statement_timeout")5232 -> 0.0009s5233-- execute("RESET statement_timeout")5234 -> 0.0008s5235 defines statement to 0 for any code run inside the block5236 when the statement_timeout is already disabled5237 yields control without disabling the timeout or resetting5238Gitlab::Database::Count5239 .approximate_counts5240 fallbacks5241 gets results from first strategy5242 gets more results from second strategy if some counts are missing5243 does not get more results as soon as all counts are present5244 default strategies5245 with a read-only database5246 only uses the ExactCountStrategy5247 with a read-write database5248 uses the available strategies5249JoinedGroupsFinder5250 #execute5251 without a user5252 only shows public groups from profile owner5253 with a user5254 when the profile visitor is in the private group5255 only shows groups where both users are authorized to see5256 if profile visitor is in one of the private group projects5257 shows group5258 external users5259 if not a member5260 does not show internal groups5261 if authorized5262 shows internal groups if authorized5263Gitlab::Database::BackgroundMigration::PrometheusMetrics5264 #track5265 reports batch_size5266 reports sub_batch_size5267 reports interval5268 reports job duration5269 increments updated tuples (currently based on batch_size)5270 reports migrated tuples5271 reports the total tuple count for the migration5272 reports last updated at timestamp5273 reports summary of query timings5274 when the tracking record does not having timing metrics5275 does not attempt to report query timings5276Gitlab::Ci::Build::Context::Global5277 #variables5278 is expected to be an instance of Gitlab::Ci::Variables::Collection5279 behaves like variables collection5280 is expected to include {"CI_COMMIT_REF_NAME" => "master"}5281 is expected to include {"CI_PIPELINE_IID" => "1"}5282 is expected to include {"CI_PROJECT_PATH" => "namespace1096/project-1293"}5283 is expected not to have key "CI_JOB_NAME"5284 with passed yaml variables5285 is expected to include {"SUPPORTED" => "parsed"}5286 #variables_hash5287 is expected to be an instance of ActiveSupport::HashWithIndifferentAccess5288 behaves like variables collection5289 is expected to include {"CI_COMMIT_REF_NAME" => "master"}5290 is expected to include {"CI_PIPELINE_IID" => "1"}5291 is expected to include {"CI_PROJECT_PATH" => "namespace1102/project-1299"}5292 is expected not to have key "CI_JOB_NAME"5293 with passed yaml variables5294 is expected to include {"SUPPORTED" => "parsed"}5295Markup::RenderingService5296 # order random5297 #execute5298 when text is missing5299 returns an empty string5300 when file_name is missing5301 returns html (rendered by Banzai)5302 when postprocess_context is missing5303 returns html (rendered by Banzai)5304 when rendered context is present5305 returns an empty string5306 when file is a markdown file5307 returns html (rendered by Banzai)5308 when file is asciidoc file5309 returns html (rendered by Gitlab::Asciidoc)5310 when file is a regular text file5311 returns html (rendered by ActionView::TagHelper)5312 when file has an unknown type5313 returns html (rendered by Gitlab::OtherMarkup)5314 with reStructuredText5315 returns rendered html5316 when input has an invalid syntax5317 uses a simple formatter for html5318FileMover5319 #execute5320 local storage5321 when move and field update successful5322 updates the description correctly5323 updates existing upload record5324 when update_markdown fails5325 does not update the description5326 does not change the upload record5327 when tmp uploader is not local storage5328 when move and field update successful5329 updates the description correctly5330 creates new target upload record an delete the old upload5331 when update_markdown fails5332 does not update the description5333 does not change the upload record5334 security5335 when relative path is involved5336 does not trigger move if path is outside designated directory5337 when symlink is involved5338 does not trigger move if path is outside designated directory5339RepositoryCheck::SingleRepositoryWorker5340 skips when the project has no push events5341 fails when the project has push events and a broken repository5342 succeeds when the project repo is valid5343 fails if the wiki repository is broken5344 skips wikis when disabled5345 creates missing wikis5346EnvironmentStatusEntity5347 # order random5348 is expected not to include :metrics_monitoring_url5349 is expected to include :name5350 is expected to include :id5351 is expected not to include :stop_url5352 is expected to include :deployed_at_formatted5353 is expected not to include :retry_url5354 is expected to include :environment_available5355 is expected to include :external_url5356 is expected to include :status5357 is expected to include :details5358 is expected to include :external_url_formatted5359 is expected to include :url5360 is expected to include :changes5361 is expected not to include :metrics_url5362 is expected to include :deployed_at5363 when deployment has metrics5364 when deployment succeeded5365 returns metrics url5366 when deployment is running5367 does not return metrics url5368 when the user is project maintainer5369 is expected to include :stop_url5370 is expected to include :retry_url5371Gitlab::ImportExport::Group::RelationFactory5372 label object5373 does not have the original ID5374 does not have the original group_id5375 has the new group_id5376 excluded attributes5377 are removed from the imported object5378 behaves like Notes user references5379 when the importer is admin5380 and the note author is not mapped5381 is expected to eq #<User id:1706 @user678>5382 is expected to include "*By Administrator"5383 and the note author is the importer user5384 is expected to eq #<User id:1708 @user680>5385 is expected not to include "*By Administrator"5386 and the note author exists in the target instance5387 is expected to eq #<User id:1710 @user682>5388 is expected not to include "*By Administrator"5389 when the importer is not admin5390 and the note author is not mapped5391 is expected to eq #<User id:1714 @user686>5392 is expected to include "*By Administrator"5393 and the note author is the importer user5394 is expected to eq #<User id:1716 @user688>5395 is expected to include "*By Administrator"5396 and the note author exists in the target instance5397 is expected to eq #<User id:1719 @user691>5398 is expected to include "*By Administrator"5399 when relation is namespace_settings5400 is expected to eq nil5401Types::GroupType5402 is expected to expose permissions using Types::PermissionTypes::Group5403 is expected to eq "Group"5404 is expected to require graphql authorizations :read_group5405 has the expected fields5406 boards field5407 returns boards5408 members field5409 is expected to have graphql type #<Class:0x00007b7a698e3e60>5410 is expected to have graphql resolver Resolvers::GroupMembersResolver5411 timelogs field5412 finds timelogs between start time and end time5413 contact_state_counts field5414 is expected to have graphql type Types::CustomerRelations::ContactStateCountsType5415 is expected to have graphql resolver Resolvers::Crm::ContactStateCountsResolver5416 organization_state_counts field5417 is expected to have graphql type Types::CustomerRelations::OrganizationStateCountsType5418 is expected to have graphql resolver Resolvers::Crm::OrganizationStateCountsResolver5419 releases field5420 is expected to have graphql type #<Class:0x00007b7a739061e0>5421 is expected to have graphql resolver Resolvers::GroupReleasesResolver5422 work_items field5423 is expected to have graphql type #<Class:0x00007b7a6fb0a3f0>5424 is expected to have graphql resolver Resolvers::Namespaces::WorkItemsResolver5425 behaves like a GraphQL type with labels5426 has label fields5427 label field5428 is expected to have graphql type Types::LabelType5429 is expected to have graphql arguments :title5430 labels field5431 is expected to have graphql type #<Class:0x00007b7a74042ad0>5432 is expected to have graphql arguments :search_term, :includeAncestorGroups, :includeDescendantGroups, and :onlyGroupLabels5433 milestones5434 avoids N+1 queries5435Ci::BuildTraceChunks::Database5436 #data5437 when data exists5438 returns the data5439 when data does not exist5440 returns nil5441 #set_data5442 when data exists5443 overwrites data5444 when data does not exist5445 sets new data5446 #delete_data5447 when data exists5448 deletes data5449 when data does not exist5450 does nothing5451 #size5452 when data exists5453 returns data bytesize correctly5454 when data does not exist5455 returns zero5456 #keys5457 returns empty array5458Gitlab::Database::HealthStatus::Indicators::WalRate5459 # order random5460 behaves like Prometheus Alert based health indicator5461 #evaluate5462 behaves like Patroni Apdex Evaluator5463 with main schema5464 returns NoSignal signal in case the feature flag is disabled5465 returns Normal signal when SLI condition is met5466 returns Stop signal when SLI condition is not met5467 without prometheus_alert_db_indicators_settings5468 returns Unknown signal5469 when Prometheus client is not ready5470 returns Unknown signal5471 when apdex SLI query is not configured5472 returns Unknown signal5473 when slo is not configured5474 returns Unknown signal5475 when SLI can not be calculated5476 result: nil5477 returns Unknown signal5478 result: []5479 returns Unknown signal5480 result: [{}]5481 returns Unknown signal5482 result: [{"value"=>1}]5483 returns Unknown signal5484 result: [{"value"=>[1]}]5485 returns Unknown signal5486 behaves like Patroni Apdex Evaluator5487 with ci schema5488 returns NoSignal signal in case the feature flag is disabled5489 returns Normal signal when SLI condition is met5490 returns Stop signal when SLI condition is not met5491 without prometheus_alert_db_indicators_settings5492 returns Unknown signal5493 when Prometheus client is not ready5494 returns Unknown signal5495 when apdex SLI query is not configured5496 returns Unknown signal5497 when slo is not configured5498 returns Unknown signal5499 when SLI can not be calculated5500 result: nil5501 returns Unknown signal5502 result: []5503 returns Unknown signal5504 result: [{}]5505 returns Unknown signal5506 result: [{"value"=>1}]5507 returns Unknown signal5508 result: [{"value"=>[1]}]5509 returns Unknown signal5510Ci::UpdateInstanceVariablesService5511 #execute5512 without variables5513 is expected to be truthy5514 with insert only variables5515 is expected to be truthy5516 persists all the records5517 persists attributes5518 with update only variables5519 is expected to be truthy5520 does not change the count5521 updates the records in place5522 with insert and update variables5523 is expected to be truthy5524 inserts only one record5525 persists all the records5526 with insert, update, and destroy variables5527 is expected to be truthy5528 persists all the records5529 with invalid variables5530 is expected to be falsey5531 does not insert any records5532 does not update existing records5533 returns errors5534 when deleting non existing variables5535 is expected to raise ActiveRecord::RecordNotFound5536 when updating non existing variables5537 is expected to raise ActiveRecord::RecordNotFound5538Gitlab::EtagCaching::Middleware5539 .skip!5540 sets the skip header on the response5541 when ETag caching is not enabled for current route5542 does not add ETag headers5543 passes status code from app5544 does not set feature category attribute5545 when there is no ETag in store for given resource5546 generates ETag5547 when If-None-Match header was specified5548 tracks "etag_caching_key_not_found" event5549 when there is ETag in store for given resource5550 returns the correct headers5551 when the matching route requests that the ETag is skipped5552 returns the correct headers5553 when If-None-Match header matches ETag in store5554 does not call app5555 returns status code 3045556 sets correct headers5557 pushes expected information in to the context5558 returns empty body5559 tracks "etag_caching_cache_hit" event5560 behaves like sends a process_action.action_controller notification5561 sends the expected payload5562 publishes process_action.action_controller event to be picked up by lograge's subscriber5563 when polling is disabled5564 returns status code 4295565 behaves like sends a process_action.action_controller notification5566 sends the expected payload5567 publishes process_action.action_controller event to be picked up by lograge's subscriber5568 when If-None-Match header does not match ETag in store5569 calls app5570 tracks "etag_caching_resource_changed" event5571 when If-None-Match header is not specified5572 tracks "etag_caching_header_missing" event5573 when GitLab instance is using a relative URL5574 uses full path as cache key5575Ci::Catalog::Resource5576 # order random5577 is expected to delegate #avatar_path to the #project object5578 is expected to delegate #forks_count to the #project object5579 is expected to delegate #name to the #project object5580 is expected to have many components class_name => Ci::Catalog::Resources::Component5581 is expected to belong to project required: false5582 is expected to define :state as an enum backed by an integer with values ‹{draft: 0, published: 1}›5583 is expected to delegate #description to the #project object5584 is expected to delegate #star_count to the #project object5585 is expected to have many versions class_name => Ci::Catalog::Resources::Version5586 .order_by_name_desc5587 returns catalog resources sorted by descending name5588 #latest_version5589 returns the latest release5590 .order_by_created_at_desc5591 returns catalog resources sorted by descending created at5592 #state5593 defaults to draft5594 .for_projects5595 returns catalog resources for the given project IDs5596 #versions5597 returns releases ordered by released date descending5598 .order_by_name_asc5599 returns catalog resources sorted by ascending name5600layouts/devise_empty5601 behaves like a layout which reflects the application theme setting5602 as a themed layout5603 when no theme is explicitly selected5604 renders with the default theme5605 when user is authenticated & has selected a specific theme5606 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">5607 renders with the Indigo theme5608 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">5609 renders with the Light Indigo theme5610 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">5611 renders with the Blue theme5612 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">5613 renders with the Light Blue theme5614 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">5615 renders with the Green theme5616 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">5617 renders with the Light Green theme5618 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">5619 renders with the Red theme5620 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">5621 renders with the Light Red theme5622 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">5623 renders with the Gray theme5624 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">5625 renders with the Light Gray theme5626 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">5627 renders with the Dark Mode (alpha) theme5628 behaves like a layout which reflects the preferred language5629 when changing the a preferred language5630 renders the correct `lang` attribute in the html element5631Mutations::Issues::SetEscalationStatus5632 #resolve5633 behaves like permission level for issue mutation is correctly verified5634 when the user is not a project member5635 behaves like when the user does not have access to the resource5636 raises an error5637 even if assigned to the issue5638 does not modify issue5639 even if author of the issue5640 does not modify issue5641 when the user is a project member5642 with guest role5643 behaves like when the user does not have access to the resource5644 raises an error5645 even if assigned to the issue5646 does not modify issue5647 even if author of the issue5648 does not modify issue5649 when the user can update the issue5650 behaves like permission level for issue mutation is correctly verified5651 when the user is not a project member5652 behaves like when the user does not have access to the resource5653 raises an error5654 even if assigned to the issue5655 does not modify issue5656 even if author of the issue5657 does not modify issue5658 when the user is a project member5659 with guest role5660 behaves like when the user does not have access to the resource5661 raises an error5662 even if assigned to the issue5663 does not modify issue5664 even if author of the issue5665 does not modify issue5666 when the user can update the escalation status5667 returns the issue with the escalation policy5668 returns errors when issue update fails5669 with non-incident issue is provided5670 raises an error5671Gitlab::Ci::Status::External::Common5672 #label5673 returns description5674 when description is nil5675 uses core status label5676 when description is empty string5677 uses core status label5678 #has_action?5679 is expected not to have action5680 #has_details?5681 when user has access to read commit status5682 is expected to have details5683 when user does not have access to read commit status5684 is expected not to have details5685 #details_path5686 links to the external target URL5687Banzai::Filter::References::ReferenceCache5688 #load_references_per_parent5689 loads references grouped per parent paths5690 when rendered_html is memoized5691 reuses memoized rendered HTML when available5692 when result is not available5693 is expected not to raise Exception5694 #load_parent_per_reference5695 returns a Hash containing projects grouped per parent paths5696 #load_records_per_parent5697 returns a Hash containing projects grouped per parent paths5698 #initialize_reference_cache5699 does not have an N+1 query problem with cross projects5700 #find_for_paths5701 with RequestStore disabled5702 returns a list of Projects for a list of paths5703 return an empty array for paths that do not exist5704 with RequestStore enabled5705 returns a list of Projects for a list of paths5706 when no project with that path exists5707 returns no value5708 adds the ref to the project refs cache5709 #current_parent_path5710 returns the path of the current parent5711 #current_project_namespace_path5712 returns the path of the current project namespace5713 #full_project_path5714 returns current parent path when no ref specified5715 returns combined namespace and project ref5716 returns uses default namespace and project ref when namespace nil5717 #full_group_path5718 returns current parent path when no group ref specified5719 returns group ref5720PipelineMetricsWorker5721 #perform5722 when pipeline is running5723 records the build start time5724 clears the build end time5725 records the pipeline5726 when pipeline succeeded5727 records the build end time5728 records the pipeline5729BoardsHelper5730 #build_issue_link_base5731 project board5732 returns correct path for project board5733 group board5734 returns correct path for base group5735 returns correct path for subgroup5736 #board_base_url5737 when group board5738 generates the correct url5739 when project board5740 generates the correct url5741 #current_board_namespace5742 when group board5743 returns the correct namespace5744 project under group5745 when project board5746 returns the correct namespace5747 project under user namespace5748 when project board5749 returns the correct namespace5750 #board_data5751 project_board5752 returns board type as parent5753 returns can_update for user permissions on the board5754 returns required label endpoints5755 returns the group id of a project5756 can_admin_list5757 returns can_admin_list as false by default5758 returns can_admin_list as true when user can admin the board lists5759 can_admin_board5760 returns can_admin_board as false by default5761 returns can_admin_board as true when user can admin the board5762 group board5763 returns correct path for base group5764 returns required label endpoints5765 returns the group id5766 can_admin_list5767 returns can_admin_list as false by default5768 returns can_admin_list as true when user can admin the board lists5769Gitlab::Email::Smime::Signer5770 when using an intermediate CA5771 signs data appropriately with SMIME5772 when not using an intermediate CA5773 signs data appropriately with SMIME5774Gitlab::Database::PostgresPartitionedTable5775 associations5776 is expected to have many postgres_partitions5777 behaves like a postgres model5778 .by_identifier5779 finds the Gitlab::Database::PostgresPartitionedTable5780 raises an error if not found5781 raises ArgumentError if given a non-fully qualified identifier5782 #to_s5783 returns the name5784 #schema5785 returns the schema5786 #name5787 returns the name5788 .find_by_name_in_current_schema5789 finds the partitioned tables in the current schema by name5790 does not find partitioned tables in a different schema5791 .each_partition5792 without partitions5793 does not yield control5794 with partitions5795 yields control with partition as argument5796 #dynamic?5797 returns true for tables partitioned by range5798 returns true for tables partitioned by list5799 returns false for tables partitioned by hash5800 #static?5801 returns false for tables partitioned by range5802 returns false for tables partitioned by list5803 returns true for tables partitioned by hash5804 #strategy5805 returns the partitioning strategy5806 #key_columns5807 returns the partitioning key columns5808Gitlab::Usage::Metrics::Instrumentations::OperatingSystemMetric5809 # order random5810 when on Debian with armv architecture5811 behaves like a correct instrumented metric value5812 has correct value5813 behaves like a correct instrumented metric value5814/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_MARKER5815/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 here5816/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_SPLIT5817/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 here5818 has correct value5819AwardEmojiHelper5820 .toggle_award_url5821 note on personal snippet5822 returns correct url5823 note on project item5824 returns correct url5825 personal snippet5826 returns correct url5827 merge request5828 returns correct url5829 issue5830 returns correct url5831Security::CiConfiguration::SecretDetectionCreateService5832 #execute5833 user does not belong to project5834 returns an error status5835 does not track a snowplow event5836 user belongs to project5837 does track the snowplow event5838 raises exception if the user does not have permission to create a new branch5839 when exception is raised5840 when branch was created5841 tries to rm branch5842 when branch was not created5843 does not try to rm branch5844 with no parameters5845 returns the path to create a new merge request5846 when the project has a non-default ci config file5847 does track the snowplow event5848 when existing ci config contains anchors/aliases5849 returns a ServiceResponse error5850 when parsing existing ci config gives a Psych error5851 returns a ServiceResponse error5852 when parsing existing ci config gives any other error5853 is successful5854 when the project is empty5855 returns a ServiceResponse error5856Resolvers::UserNotesCountResolver5857 #resolve5858 is expected to have nullable GraphQL type Int5859 when counting notes from an issue5860 when counting notes from a public issue5861 returns the number of non-system notes for the issue5862 when a user has permission to view notes5863 returns the number of notes for the issue5864 when a user does not have permission to view notes5865 generates an error5866 when counting notes from a merge request5867 when counting notes from a public merge request5868 returns the number of non-system notes for the merge request5869 when a user has permission to view notes5870 returns the number of notes for the merge request5871 when a user does not have permission to view notes5872 generates an error5873RepositoryArchiveCleanUpService5874 #execute (new archive locations)5875 removes outdated archives and directories in a new-style path5876 removes outdated archives and directories in a versioned path5877 does not remove directories when they contain outdated non-archives5878 does not remove in-date archives in a new-style path5879 #execute (legacy archive locations)5880 when the downloads directory does not exist5881 does not remove any archives5882 when the downloads directory exists5883 removes files older than 2 hours that matches valid archive extensions5884 with files older than 2 hours that does not matches valid archive extensions5885 behaves like invalid archive files5886 does not remove files and directory5887 with files older than 2 hours inside invalid directories5888 behaves like invalid archive files5889 does not remove files and directory5890 with files newer than 2 hours that matches valid archive extensions5891 behaves like invalid archive files5892 does not remove files and directory5893 with files newer than 2 hours that does not matches valid archive extensions5894 behaves like invalid archive files5895 does not remove files and directory5896 with files newer than 2 hours inside invalid directories5897 behaves like invalid archive files5898 does not remove files and directory5899BitbucketServer::Representation::PullRequest5900 #author5901 is expected to eq "root"5902 #author_email5903 is expected to eq "joe.montana@49ers.com"5904 #author_username5905 returns username5906 when username is absent5907 returns slug5908 when slug and username are absent5909 returns displayName5910 #description5911 is expected to eq "Test"5912 #reviewers5913 is expected to eq 25914 #iid5915 is expected to eq 75916 #state5917 is expected to eq "merged"5918 declined pull requests5919 returns closed5920 open pull requests5921 returns open5922 #merged?5923 is expected to be truthy5924 #created_at5925 is expected to eq 15306006355926 #updated_at5927 is expected to eq 15306006485928 #title5929 is expected to eq "Added a new line"5930 #source_branch_name5931 is expected to eq "refs/heads/root/CODE_OF_CONDUCTmd-1530600625006"5932 #source_branch_sha5933 is expected to eq "074e2b4dddc5b99df1bf9d4a3f66cfc15481fdc8"5934 #target_branch_name5935 is expected to eq "refs/heads/master"5936 #target_branch_sha5937 is expected to eq "839fa9a2d434eb697815b8fcafaecc51accfdbbc"5938 #to_hash5939 is expected to match (a hash including {:author_email => "joe.montana@49ers.com", :author_username => "username", :author => "root", :description => "Test", :reviewers => (contain exactly hash_including("user" => "hash_including(\"emailAddress\" => \"jane@doe.com\", \"slug\" => \"jane_doe\")") and hash_including("user" => "hash_including(\"emailAddress\" => \"john@smith.com\", \"slug\" => \"john_smith\")")), :source_branch_name => "refs/heads/root/CODE_OF_CONDUCTmd-1530600625006", :source_branch_sha => "074e2b4dddc5b99df1bf9d4a3f66cfc15481fdc8", :target_branch_name => "refs/heads/master", :target_branch_sha => "839fa9a2d434eb697815b8fcafaecc51accfdbbc", :title => "Added a new line"})5940Ci::PendingBuilds::UpdateGroupWorker5941 #perform5942 when a group is not provided5943 does not call the service5944 when everything is ok5945 calls the service5946 is labeled as idempotent5947 performs multiple times sequentially without raising an exception5948 updates the pending builds5949DependencyProxy::RequestTokenService5950 remote request is successful5951 is expected to eq :success5952 is expected to eq "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3"5953 remote request is not found5954 is expected to eq :error5955 is expected to eq 4045956 is expected to eq "Expected 200 response code for an access token"5957 failed to parse response body5958 is expected to eq :error5959 is expected to eq 5005960 is expected to eq "Failed to parse a response body for an access token"5961 net timeout exception5962 is expected to eq :error5963 is expected to eq 5995964 is expected to eq "execution expired"5965API::Entities::Ci::JobRequest::Dependency5966 returns the dependency id5967 returns the dependency name5968 returns the token belonging to the running job5969 returns the dependency artifacts_file5970Packages::Cleanup::Policy5971 relationships5972 is expected to belong to project required: false5973 validations5974 is expected to validate that :project cannot be empty/falsy5975 is expected to validate that :keep_n_duplicated_package_files is either ‹"all"›, ‹"1"›, ‹"10"›, ‹"20"›, ‹"30"›, ‹"40"›, or ‹"50"›, producing a custom validation error on failure5976 .active5977 is expected to contain exactly #<Packages::Cleanup::Policy created_at: "2023-08-18 13:20:32.209794101 +0000", updated_at: "2023-08-1...id: 1310, next_run_at: "2023-08-19 01:20:32.209636141 +0000", keep_n_duplicated_package_files: "10">5978 .with_packages5979 is expected to contain exactly #<Packages::Cleanup::Policy created_at: "2023-08-18 13:20:32.832156817 +0000", updated_at: "2023-08-1...id: 1312, next_run_at: "2023-08-19 01:20:32.832048717 +0000", keep_n_duplicated_package_files: "10">5980 .runnable5981 is expected to contain exactly #<Packages::Cleanup::Policy created_at: "2023-08-18 13:20:33.533540934 +0000", updated_at: "2023-08-1...id: 1314, next_run_at: "2023-08-17 13:20:33.536475254 +0000", keep_n_duplicated_package_files: "10">5982 #keep_n_duplicated_package_files_disabled?5983 with value set to all5984 is expected to eq true5985 with value set to 15986 is expected to eq false5987Clusters::DestroyService5988 #execute5989 when correct params5990 when params are empty5991 behaves like only removes cluster5992 does not start cleanup5993 destroys the cluster5994 when cleanup param is false5995 behaves like only removes cluster5996 does not start cleanup5997 destroys the cluster5998 when cleanup param is true5999 does not destroy cluster6000 transition cluster#cleanup_status from cleanup_not_started to cleanup_removing_project_namespaces6001Resolvers::NestedGroupsResolver6002 # order random6003 #resolve6004 when parent group is public6005 when `include_parent_descendants` is false6006 when user is not logged in6007 behaves like access to all public subgroups6008 returns all public subgroups of the parent group6009 when user is logged in6010 behaves like access to all public subgroups6011 returns all public subgroups of the parent group6012 when `include_parent_descendants` is true6013 when user is not logged in6014 behaves like access to all public descendant groups6015 returns all public descendant groups of the parent group ordered by ASC name6016 when user is logged in6017 behaves like access to all public descendant groups6018 returns all public descendant groups of the parent group ordered by ASC name6019 with owned argument set as true6020 returns only descendant groups owned by the user6021 with search argument6022 returns only descendant groups with matching name or path6023 when parent group is private6024 when `include_parent_descendants` is true6025 when user is not logged in6026 behaves like returning empty results6027 returns empty results6028 when user is logged in6029 returns all private descendant groups6030 when `include_parent_descendants` is false6031 when user is not logged in6032 behaves like returning empty results6033 returns empty results6034 when user is logged in6035 returns private subgroups6036RedirectRoute6037 relationships6038 is expected to belong to source required: false6039 validations6040 is expected to validate that :source cannot be empty/falsy6041 is expected to validate that :path cannot be empty/falsy6042 is expected to validate that :path is case-insensitively unique6043 .matching_path_and_descendants6044 when the redirect route matches with same casing6045 returns correct routes6046 when the redirect route matches with different casing6047 returns correct routes6048DeployTokenPolicy6049 creating a deploy key6050 when user is maintainer6051 is expected to be allowed :create_deploy_token6052 when user is not maintainer6053 is expected to be disallowed :create_deploy_token6054 updating a deploy key6055 when user is maintainer6056 is expected to be allowed :update_deploy_token6057 when user is not maintainer6058 is expected to be disallowed :update_deploy_token6059Resolvers::Ci::ConfigResolver6060 #resolve6061 when the user can create a pipeline6062 with a valid .gitlab-ci.yml6063 with a sha6064 behaves like a valid config file6065 lints the ci config file and returns the merged yaml file6066 without a sha6067 behaves like a valid config file6068 lints the ci config file and returns the merged yaml file6069 with an invalid .gitlab-ci.yml6070 responds with errors about invalid syntax6071 with an invalid SHA6072 logs the invalid SHA to Sentry6073 when the user cannot create a pipeline6074 returns an error stating that the user cannot access the linting6075Import::ValidateRemoteGitEndpointService6076 #execute6077 correctly handles URLs with fragment6078 passes basic auth when credentials are provided6079 when uri is using git:// protocol6080 returns success6081 when uri is using an invalid protocol6082 reports error when invalid URL is provided6083 when uri is invalid6084 reports error when invalid URL is provided6085 when receiving HTTP response6086 returns success when HTTP response is valid and contains correct payload6087 reports error when status code is not 2006088 reports error when invalid URL is provided6089 reports error when required header is missing6090 reports error when body is in invalid format6091 reports error when exception is raised6092Gitlab::Ci::Config::Entry::Inherit::Default6093 validations6094 config: true, valid: true6095 is expected to eq true6096 config: false, valid: true6097 is expected to eq true6098 config: ["image"], valid: true6099 is expected to eq true6100 config: ["unknown"], valid: false6101 is expected to eq false6102 config: [:image], valid: false6103 is expected to eq false6104 config: [true], valid: false6105 is expected to eq false6106 config: "string", valid: false6107 is expected to eq false6108 #inherit?6109 config: true, inherit: true6110 is expected to eq true6111 config: false, inherit: false6112 is expected to eq false6113 config: ["image"], inherit: true6114 is expected to eq true6115 config: ["before_script"], inherit: false6116 is expected to eq false6117LooseForeignKeys::CleanerService6118 when invalid foreign key definition is passed6119 when invalid on_delete argument was given6120 raises KeyError6121 query generation6122 when single primary key is used6123 generates an IN query for nullifying the rows6124 generates an IN query for deleting the rows6125 when composite primary key is used6126 generates an IN query for deleting the rows6127 when the query generation is incorrect (paranoid check)6128 raises error if the foreign key condition is missing6129 when with_skip_locked parameter is true6130 generates a query with the SKIP LOCKED clause6131Users::BanService6132 ban6133 when successful6134 returns success status6135 bans the user6136 creates a BannedUser6137 logs ban in application logs6138 tracks the event6139 when failed6140 when user is blocked6141 returns state error message6142 behaves like does not modify the BannedUser record or user state6143 does not modify the BannedUser record or user state6144 when user is not an admin6145 returns permissions error message6146 behaves like does not modify the BannedUser record or user state6147 does not modify the BannedUser record or user state6148Gitlab::Utils::FileInfo6149 # order random6150 .linked?6151 raises an error when file does not exist6152 when file is a File::Stat6153 behaves like identifies a linked file6154 returns false when file or dir is not a link6155 returns true when file or dir is symlinked6156 returns true when file has more than one hard link6157 when file is path6158 behaves like identifies a linked file6159 returns false when file or dir is not a link6160 returns true when file or dir is symlinked6161 returns true when file has more than one hard link6162 .shares_hard_link?6163 raises an error when file does not exist6164 when file is a File::Stat6165 behaves like identifies a file that shares a hard link6166 returns false when file or dir does not share hard links6167 returns true when file has more than one hard link6168 when file is path6169 behaves like identifies a file that shares a hard link6170 returns false when file or dir does not share hard links6171 returns true when file has more than one hard link6172NewIssueWorker6173 #perform6174 when an issue not found6175 does not call Services6176 logs an error6177 when a user not found6178 does not call Services6179 logs an error6180 with a user6181 when the new issue author is blocked6182 behaves like a new issue where the current_user cannot trigger notifications6183 does not create a notification for the mentioned user6184 when the new issue author is a ghost6185 behaves like a new issue where the current_user cannot trigger notifications6186 does not create a notification for the mentioned user6187 when everything is ok6188 creates a new event record6189 creates a notification for the mentioned user6190 calls Issues::AfterCreateService6191 when a class is set6192 creates event with the correct type6193Gitlab::SlashCommands::IssueSearch6194 #execute6195 when the user has no access6196 only returns the open issues6197 the user has access6198 returns all results6199 without hits on the query6200 returns an empty collection6201 self.match6202 matches the query6203AlertManagement::AlertPresenter6204 #issue_description6205 with an empty payload6206 is expected to eq "**Start time:** 18 August 2023, 1:21PM (UTC) \n**Severity:** critical \n**GitLab alert:** http://localhost/namespace1195/project-1393/-/alert_management/2/details\n"6207 with optional alert attributes6208 is expected to eq "**Start time:** 18 August 2023, 1:21PM (UTC) \n**Severity:** critical \n**full_query:** `metric > ...ui. \n**GitLab alert:** http://localhost/namespace1195/project-1393/-/alert_management/3/details\n"6209 with incident markdown6210 is expected to eq "**Start time:** 18 August 2023, 1:21PM (UTC) \n**Severity:** critical \n**GitLab alert:** http://l...ocalhost/namespace1195/project-1393/-/alert_management/2/details\n\n\n---\n\n**`markdown example`**"6211 #start_time6212 formats the start time of the alert6213 #details_url6214 returns the details URL6215 #details6216 renders the payload as inline hash6217Ci::EnqueueJobService#execute6218 # order random6219 calls enqueue!6220 calls Ci::ResetSkippedJobsService6221 assigns the user to the job6222 returns the job6223 when variables are supplied6224 assigns the variables to the job6225 when a transition block is supplied6226 calls the transition block instead of enqueue!6227 when the job transition is invalid6228 raises StateMachines::InvalidTransition6229Sidebars::Projects::Menus::MergeRequestsMenu6230 behaves like serializable as super_sidebar_menu_args6231 returns hash with provided attributes6232 returns hash with an item_id6233 #render?6234 when repository is not present6235 returns false6236 when repository is present6237 when user can read merge requests6238 returns true6239 when user cannot read merge requests6240 returns false6241 #pill_count6242 returns zero when there are no open merge requests6243 memoizes the query6244 when there are open merge requests6245 returns the number of open merge requests6246 formatting6247 when the count value is over 10006248 returns truncated digits6249Packages::Go::ModuleFinder6250 #execute6251 with module name equal to project name6252 returns a module with empty path6253 with module name starting with project name and slash6254 returns a module with non-empty path6255 with a module name not equal to and not starting with project name6256 returns nil6257 with relative path component6258 behaves like an invalid path6259 #module_name6260 returns the expected name6261 #execute6262 returns nil6263 with many relative path components6264 behaves like an invalid path6265 #module_name6266 returns the expected name6267 #execute6268 returns nil6269Gitlab::Ci::Config::Entry::Product::Parallel6270 with invalid config6271 when it is not a numeric value6272 behaves like invalid config6273 #valid?6274 is expected not to be valid6275 #errors6276 returns error about invalid type6277 when it is lower than one6278 behaves like invalid config6279 #valid?6280 is expected not to be valid6281 #errors6282 returns error about invalid type6283 when it is bigger than 2006284 behaves like invalid config6285 #valid?6286 is expected not to be valid6287 #errors6288 returns error about invalid type6289 when it is not an integer6290 behaves like invalid config6291 #valid?6292 is expected not to be valid6293 #errors6294 returns error about invalid type6295 with empty hash config6296 behaves like invalid config6297 #valid?6298 is expected not to be valid6299 #errors6300 returns error about invalid type6301 with numeric config6302 when job is specified6303 #valid?6304 is expected to be valid6305 #value6306 returns job needs configuration6307 when :numeric is not allowed6308 behaves like invalid config6309 #valid?6310 is expected not to be valid6311 #errors6312 returns error about invalid type6313 with matrix builds config6314 when matrix is specified6315 #valid?6316 is expected to be valid6317 #value6318 returns job needs configuration6319 when :matrix is not allowed6320 behaves like invalid config6321 #valid?6322 is expected not to be valid6323 #errors6324 returns error about invalid type6325Achievements::CreateService6326 # order random6327 #execute6328 when user does not have permission6329 returns an error6330 when user has permission6331 creates an achievement6332 returns an error when the achievement is not persisted6333Gitlab::Ci::Config::Entry::Hooks6334 # order random6335 #value6336 returns a hash6337 validations6338 when passing a valid hook6339 is expected to be valid6340 when passing an invalid hook6341 is expected not to be valid6342 when entry config is not a hash6343 is expected not to be valid6344Gitlab::Diff::FileCollection::MergeRequestDiffBase6345 #overflow?6346 when it is not overflown6347 returns false6348 when it is overflown6349 returns true6350 #diff_files6351 measures diffs_highlight_cache_decorate6352 #cache_key6353 returns cache_key from merge_request_diff6354Gitlab::Metrics::Environment6355 # order random6356 .web? .api? .git?6357 env_var: "web", git: false, api: false, web: true6358 each method returns as expected6359 env_var: "api", git: false, api: true, web: false6360 each method returns as expected6361 env_var: "git", git: true, api: false, web: false6362 each method returns as expected6363 env_var: "websockets", git: false, api: false, web: false6364 each method returns as expected6365 env_var: nil, git: true, api: true, web: true6366 each method returns as expected6367 env_var: "", git: true, api: true, web: true6368 each method returns as expected6369Mutations::Todos::MarkAllDone6370 is expected to require graphql authorizations :update_user6371 #resolve6372 marks all pending todos as done6373 behaves as expected if there are no todos for the requesting user6374 when user is not logged in6375 fails with the expected error6376Projects::GroupLinks::UpdateService#execute6377 updates existing link6378 project authorizations update6379 calls AuthorizedProjectUpdate::ProjectRecalculateWorker to update project authorizations6380 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations6381 updates project authorizations of users who had access to the project via the group share6382 with only param not requiring authorization refresh6383 does not perform any project authorizations update using `AuthorizedProjectUpdate::ProjectRecalculateWorker`6384WhereComposite6385 .where_composite6386 requires at least one permitted key6387 requires all arguments to match the permitted_keys6388 attaches a key error as cause if a key is missing6389 returns an empty relation if there are no arguments6390 permits extra arguments6391 can handle multiple fields6392 is equivalent to ids.map { |attrs| model.find_by(attrs) }6393 constructs (A&B) for one argument6394 constructs (A&B) OR (C&D) for two arguments6395 constructs (A&B) OR (C&D) OR (E&F) for three arguments6396 large sets of IDs6397 constructs correct trees of constraints6398 raises errors if too many IDs are passed6399projects/settings/ci_cd/_autodevops_form6400 shows a warning message about Kubernetes cluster6401 when the project has an available kubernetes cluster6402 does not show a warning message about Kubernetes cluster6403 shows a warning message about base domain6404Topics::MergeService6405 #execute6406 merges source topic into target topic6407 refreshes counters of target topic6408 when source topic fails to delete6409 reverts previous changes6410 for parameter validation6411 source_topic_parameter: nil, target_topic_parameter: target_topic, expected_message: "The source topic is not a topic."6412 raises correct error6413 source_topic_parameter: source_topic, target_topic_parameter: nil, expected_message: "The target topic is not a topic."6414 raises correct error6415 source_topic_parameter: target_topic, target_topic_parameter: target_topic, expected_message: "The source topic and the target topic are identical."6416 raises correct error6417gitlab:lfs rake tasks6418 check6419 outputs the integrity check for each batch6420 errors out about missing files on the file system6421 errors out about invalid checksum6422WorkItems::Widgets::CurrentUserTodosService::UpdateService6423 # order random6424 #before_update_in_transaction6425 when adding a todo6426 when user has no access6427 does add a todo6428 when user has access6429 creates a new todo for the user and the work item6430 when marking as done6431 when user has no access6432 does not change todo status6433 when resolving all todos of the work item6434 resolves todos of the user for the work item6435 when resolving a specific todo6436 resolves todos of the user for the work item6437projects/_flash_messages6438 when current_user has read_code permission6439 when user has a terraform state6440 doesn't show the terraform notification banner6441 when there are no .tf files in the repository6442 doesn't show the terraform notification banner6443 when .tf files are present in the repository and user does not have any terraform states6444 shows the terraform notification banner6445Gitlab::Graphs::Commits6446 #commit_per_day6447 when range is only commits from today6448 is expected to eq 26449 when range is only commits from today6450 #commit_per_day6451 is expected to eq 26452 #duration6453 is expected to eq 06454 with commits from yesterday and today6455 #commit_per_day6456 is expected to eq 1.06457 #duration6458 is expected to eq 16459Gitlab::Middleware::RequestContext6460 #call6461 setting the client ip6462 with X-Forwarded-For headers6463 returns the load balancer IP6464 request6465 sets the `client_ip`6466 sets the `request_start_time`6467 sets the `spam_params`6468Releases::EvidencePipelineFinder#execute6469 when the tag is passed6470 returns the evidence pipeline6471 when the ref is passed6472 returns the evidence pipeline6473 empty params6474 returns nil6475 params[:evidence_pipeline] is present6476 returns the passed evidence pipeline6477Packages::Cleanup::DeleteOrphanedDependenciesWorker6478 # order random6479 is expected to be truthy6480 is expected to includes the CronjobQueue module6481 #perform6482 deletes only orphaned dependencies6483 executes 3 queries6484 when the worker is running for more than the max time6485 sets the last processed dependency id in redis cache6486 when the worker reaches the maximum number of batches6487 iterates over only 1 batch6488 sets the last processed dependency id in redis cache6489 when the worker finishes processing in less than the max time6490 clears the last processed last_processed_packages_dependency_id from redis cache6491 when logging extra metadata6492 logs the last proccessed id & the deleted rows count6493Packages::TerraformModule::CreatePackageService6494 #execute6495 valid package6496 behaves like creating a package6497 creates a package6498 package already exists elsewhere6499 is expected to eq 4036500 is expected to equal "Access Denied"6501 marked as pending_destruction6502 behaves like creating a package6503 creates a package6504 version already exists6505 is expected to eq 4036506 is expected to equal "Package version already exists."6507 marked as pending_destruction6508 behaves like creating a package6509 creates a package6510 with empty version6511 is expected to eq 4006512 is expected to eq "Version is empty."6513WorkItems::Widgets::Assignees6514 .type6515 is expected to eq :assignees6516 .quick_action_params6517 is expected to include :assignee_ids6518 #type6519 is expected to eq :assignees6520 #assignees6521 is expected to eq #<ActiveRecord::Associations::CollectionProxy [#<User id:1944 @user793>]>6522 #allows_multiple_assignees?6523 is expected to eq false6524ListboxHelper6525 #gl_redirect_listbox_tag6526 creates root element with expected classes6527 sets data attributes for items and selected6528 adds styled button6529 sets button text to selected item6530 given html_options6531 applies them to the root element6532 when selected does not match any item6533 selected: nil6534 selects first item6535 selected: "qux"6536 selects first item6537RuboCop::Cop::Gettext::StaticIdentifier6538 # order random6539 #s_()6540 does not flag correct use6541 flags incorrect use6542 #n_()6543 does not flag correct use6544 flags incorrect use6545 edge cases6546 does not flag6547 #N_()6548 does not flag correct use6549 flags incorrect use6550 #_()6551 does not flag correct use6552 flags incorrect use6553Packages::MarkPackagesForDestructionService6554 # order random6555 #execute6556 when the user is authorized6557 when it is successful6558 marks the packages as pending destruction6559 with maven packages6560 marks the packages as pending destruction6561 without version6562 marks the packages as pending destruction6563 when it is not successful6564 returns an error ServiceResponse6565 when the user is not authorized6566 returns an error ServiceResponse6567MergeRequest::ApprovalRemovalSettings6568 validations6569 when enabling selective_code_owner_removals and reset_approvals_on_push is disabled6570 is expected to be valid6571 when enabling selective_code_owner_removals and reset_approvals_on_push is enabled6572 is expected not to be valid6573 when enabling reset_approvals_on_push and selective_code_owner_removals is disabled6574 is expected to be valid6575 when enabling reset_approvals_on_push and selective_code_owner_removals is enabled6576 is expected not to be valid6577 when enabling reset_approvals_on_push and selective_code_owner_removals6578 is expected not to be valid6579MilestonesHelper6580 # order random6581 #milestone_header_class6582 primary: true, issuables: [nil], header_color: "gl-bg-blue-500 gl-text-white", header_border: ""6583 is expected to eq "gl-bg-blue-500 gl-text-white gl-display-flex"6584 primary: true, issuables: [], header_color: "gl-bg-blue-500 gl-text-white", header_border: "gl-border-bottom-0 gl-rounded-base"6585 is expected to eq "gl-bg-blue-500 gl-text-white gl-border-bottom-0 gl-rounded-base gl-display-flex"6586 primary: false, issuables: [], header_color: "", header_border: "gl-border-bottom-0 gl-rounded-base"6587 is expected to eq " gl-border-bottom-0 gl-rounded-base gl-display-flex"6588 primary: false, issuables: [nil], header_color: "", header_border: ""6589 is expected to eq " gl-display-flex"6590 #milestone_counter_class6591 when primary is set to true6592 is expected to eq "gl-text-white"6593 when primary is set to false6594 is expected to eq "gl-text-gray-500"6595IncidentManagement::AddSeveritySystemNoteWorker6596 # order random6597 #perform6598 when incident and user exist6599 creates a system note6600 creates a timeline event6601 when incident does not exist6602 behaves like does not add anything6603 does not change incident notes count6604 does not create a timeline event6605 when incident_id is nil6606 behaves like does not add anything6607 does not change incident notes count6608 does not create a timeline event6609 when issue is not an incident6610 behaves like does not add anything6611 does not change incident notes count6612 does not create a timeline event6613 when user does not exist6614 behaves like does not add anything6615 does not change incident notes count6616 does not create a timeline event6617 when user_id is nil6618 behaves like does not add anything6619 does not change incident notes count6620 does not create a timeline event6621RuboCop::Cop::Rake::Require6622 # order random6623 in a Rake file6624 registers an offenses for require methods6625 does not register offense inside `task` definition6626 does not register offense inside a block definition6627 does not register offense inside a method definition6628 does not register offense when require task related files6629 when outside of a Rake file6630 registers an offenses for require methods6631 #in_rake_file?6632 in a Rake file6633 is expected to equal true6634 when outside of a Rake file6635 is expected to equal false6636LazyImageTagHelper6637 #image_tag6638 when only source passed6639 returns a lazy image tag by default6640 when lazy mode is disabled6641 returns a normal image tag6642 when Dark Mode is enabled6643 when auto dark enabled6644 adds an auto dark mode class from gitlab-ui6645 when auto dark disabled6646 does nothing6647 when dark variant is present6648 uses dark variant as a source6649 when Dark Mode is disabled6650 when auto dark enabled6651 does not add a dark mode class from gitlab-ui6652 when auto dark disabled6653 does nothing6654 when dark variant is present6655 uses original image as a source6656 when auto_dark and dark_variant are both passed6657 does not add a dark mode class from gitlab-ui6658Mutations::Security::CiConfiguration::ConfigureSast6659 is expected to require graphql authorizations :push_code6660 #resolve6661 generates an error if the resource is not accessible to the user6662 when user does not have enough permissions6663 generates an error6664 when user is a maintainer of a different project6665 generates an error6666 when the user does not have permission to create a new branch6667 returns an array of errors6668 when the user can create a merge request6669 when service successfully generates a path to create a new merge request6670 returns a success path6671 when service can not generate any path to create a new merge request6672 returns an array of errors6673Gitlab::Graphql::Representation::TreeEntry6674 .decorate6675 returns NilClass when given nil6676 returns array of TreeEntry6677Gitlab::Analytics::CycleAnalytics::StageEvents::IssueStageEnd6678 behaves like value stream analytics event6679 is expected to be a kind of String6680 is expected to be a kind of Symbol6681 is expected to include ApplicationRecord(abstract)6682 is expected to respond to #timestamp_projection6683 is expected to respond to #html_description6684 is expected to be a kind of Array6685 #apply_query_customization6686 expects an ActiveRecord::Relation object as argument and returns a modified version of it6687 #hash_code6688 returns a hash that uniquely identifies an event6689 does not differ when the same object is built with the same params6690 behaves like LEFT JOIN-able value stream analytics event6691 can use the event as LEFT JOIN6692 when looking at the record with data6693 contains the timestamp expression6694 when looking at the record without data6695 returns nil for the timestamp expression6696Types::ReleaseType6697 is expected to require graphql authorizations :read_release6698 has the expected fields6699 assets field6700 is expected to have graphql type Types::ReleaseAssetsType6701 links field6702 is expected to have graphql type Types::ReleaseLinksType6703 milestones field6704 is expected to have graphql type #<Class:0x00007b7a738ecd80>6705 evidences field6706 is expected to have graphql type #<Class:0x00007b7a737eff40>6707 author field6708 is expected to have graphql type Types::UserType6709 commit field6710 is expected to have graphql type Types::CommitType6711Organizations::OrganizationSetting6712 # order random6713 validations6714 for json schema6715 is expected to allow :settings to be ‹{restricted_visibility_levels: []}›6716 when trying to store an unsupported key6717 is expected not to allow :settings to be ‹{unsupported_key: "some_value"}›6718 when key 'restricted_visibility_levels' is invalid6719 is expected not to allow :settings to be ‹{restricted_visibility_levels: ["some_string"]}›6720 when setting restricted_visibility_levels6721 is one or more of Gitlab::VisibilityLevel constants6722 associations6723 is expected to belong to organization required: false6724Gitlab::Ci::Parsers6725 .fabricate!6726 when file_type is junit6727 fabricates the class6728 when file_type is cobertura6729 fabricates the class6730 when file_type is accessibility6731 fabricates the class6732 when file_type is codequality6733 fabricates the class6734 when file_type is terraform6735 fabricates the class6736 when file_type does not exist6737 raises an error6738 .instrument!6739 prepends the Instrumentation module into each parser6740Gitlab::JiraImport::Stage::ImportLabelsWorker6741 modules6742 behaves like include import workers modules6743 is expected to includes the ApplicationWorker module6744 is expected to includes the Gitlab::JiraImport::QueueOptions module6745 is expected to includes the Gitlab::JiraImport::ImportWorker module6746 #perform6747 when import did not start6748 behaves like cannot do Jira import6749 does not advance to next stage6750 behaves like does not advance to next stage6751 does not advance to next stage6752 when import started6753 executes labels importer6754 behaves like advance to next stage6755 advances to issues stage6756Packages::MlModel::CreatePackageFileService6757 # order random6758 #execute6759 without existing package6760 creates package file6761 with existing package6762 adds the package file and updates status and ci_build6763Gitlab::GitalyClient::RemoteService6764 #find_remote_root_ref6765 sends an find_remote_root_ref message and returns the root ref6766 ensure ref is a valid UTF-8 string6767 #update_remote_mirror6768 sends an update_remote_mirror message6769 .exists?6770 when the remote doesn't exist6771 returns false6772Gitlab::QueryLimiting::Middleware6773 #call6774 runs the application with query limiting in place6775 #action_name6776 using a Rails request6777 returns the name of the controller and action6778 includes the content type if this is not text/html6779 using a Grape API request6780 returns the name of the request method and endpoint path6781 returns nil if the route can not be retrieved6782Abuse::UserTrustScore6783 # order random6784 #spam_score6785 when the user is a spammer6786 returns the expected score6787 when the user is not a spammer6788 returns the expected score6789 #remove_old_scores6790 if max events is exceeded6791 removes the oldest events6792 #arkose_custom_score6793 when the user has an arkose custom risk score6794 returns the latest score6795 when the user does not have an arkose custom risk score6796 defaults to zero6797 #arkose_global_score6798 when the user has an arkose global risk score6799 returns the latest score6800 when the user does not have an arkose global risk score6801 defaults to zero6802 #spammer?6803 when the user is a spammer6804 classifies the user as a spammer6805 when the user is not a spammer6806 does not classify the user as a spammer6807 #telesign_score6808 when the user has a telesign risk score6809 returns the latest score6810 when the user does not have a telesign risk score6811 defaults to zero6812Gitlab::Ci::Config::External::Mapper::Matcher6813 # order random6814 #process6815 returns an array of file objects6816 when a location is not valid6817 raises an error6818 when the invalid location includes a masked variable6819 raises an error with a masked sentence6820 when a location is ambiguous6821 raises an error6822Gitlab::ErrorTracking::Processor::GrpcErrorProcessor6823 .call6824 when there is no GRPC exception6825 with Raven event6826 behaves like leaves data unchanged6827 is expected to include {:fingerprint => ["ArgumentError", "Missing arguments"]}6828 with Sentry event6829 behaves like leaves data unchanged6830 is expected to include {:fingerprint => ["ArgumentError", "Missing arguments"]}6831 when there is a GRPC exception with a debug string6832 with Raven event6833 behaves like processes the exception6834 removes the debug error string and stores it as an extra field6835 with no custom fingerprint6836 removes the debug error string and stores it as an extra field6837 with Sentry event6838 behaves like processes the exception6839 removes the debug error string and stores it as an extra field6840 with no custom fingerprint6841 removes the debug error string and stores it as an extra field6842 when there is a wrapped GRPC exception with a debug string6843 with Raven event6844 behaves like processes the exception6845 removes the debug error string and stores it as an extra field6846 with no custom fingerprint6847 removes the debug error string and stores it as an extra field6848 with Sentry event6849 behaves like processes the exception6850 removes the debug error string and stores it as an extra field6851 with no custom fingerprint6852 removes the debug error string and stores it as an extra field6853Gitlab::SafeRequestLoader6854 .execute6855 gets data from the store and returns it6856 #execute6857 without a block6858 raises an error6859 when a resource_id is nil6860 contains resource_data with nil key6861 with SafeRequestStore considerations6862 when request store is active6863 gets data from the store6864 with already loaded resource_ids6865 does not re-fetch data if resource_id already exists6866 with mixture of new and existing resource_ids6867 when block does not filter for only the missing resource_ids6868 overwrites existing keyed data with results from the block6869 when passing the missing resource_ids to a block that filters for them6870 only updates resource_data with keyed items that did not exist6871 with default_value for resource_ids that did not exist in the results6872 when default_value is provided6873 populates a default value6874 when default_value is not provided6875 populates a default_value of nil6876 when request store is not active6877 has no data added from the store6878 with mixture of new and existing resource_ids6879 when block does not filter out existing resource_data keys6880 overwrites existing keyed data with results from the block6881 when passing the missing resource_ids to a block that filters for them6882 only updates resource_data with keyed items that did not exist6883 with default_value for resource_ids that did not exist in the results6884 when default_value is provided6885 populates a default value6886 when default_value is not provided6887 populates a default_value of nil6888projects/issues/show6889 when the issue is related to a sentry error6890 renders a stack trace6891 when the issue is not related to a sentry error6892 does not render a stack trace6893ProjectRepository6894 associations6895 is expected to belong to shard required: false6896 is expected to belong to project required: false6897 behaves like shardable scopes6898 .for_repository_storage6899 returns the objects for a given repository storage6900 .excluding_repository_storage6901 returns the objects excluding the given repository storage6902 .for_shard6903 returns the objects for a given shard6904 .find_project6905 finds project by disk path6906 returns nil when it does not find the project6907Types::Snippets::BlobActionEnum6908 is expected to eq "SnippetBlobActionEnum"6909 exposes all file input action types6910Projects::RefreshBuildArtifactsSizeStatisticsWorker6911 #perform_work6912 when refresh job is present6913 logs refresh information6914 when refresh job is not present6915 logs refresh information6916 #remaining_work_count6917 and there are remaining refresh jobs6918 is expected to eq 16919 and there are no remaining refresh jobs6920 is expected to eq 06921 #max_running_jobs6922 is expected to eq 06923 when projects_build_artifacts_size_refresh flag is enabled6924 is expected to eq 16925 when projects_build_artifacts_size_refresh_medium flag is enabled6926 is expected to eq 36927 when projects_build_artifacts_size_refresh_high flag is enabled6928 is expected to eq 56929BitbucketServer::Representation::Comment6930 #id6931 is expected to eq 96932 #author_username6933 returns username6934 when username is absent6935 returns slug6936 when slug and username are absent6937 returns displayName6938 #author_email6939 is expected to eq "test.user@example.com"6940 #note6941 is expected to eq "is this a new line?"6942 #created_at6943 is expected to be a kind of Time6944 #updated_at6945 is expected to be a kind of Time6946 #comments6947 is expected to eq 46948 is expected to all be a kind of BitbucketServer::Representation::Comment6949 is expected to contain exactly "Hello world", "Ok", "hello", and "hi"6950 comments have the right parent6951Gitlab::Metrics::Dashboard::RepoDashboardFinder6952 .list_dashboards6953 deletes dashboard cache entries6954 returns empty array when there are no dashboards6955 when there are project dashboards available6956 returns the dashboard list6957 .read_dashboard6958 raises error when dashboard does not exist6959 when there are project dashboards available6960 reads dashboard6961Gitlab::Metrics::Memory6962 .gc_heap_fragmentation6963 when the Ruby heap is perfectly utilized6964 is expected to eq 06965 when the Ruby heap is greatly fragmented6966 is expected to be > 0.996967 when the Ruby heap is semi-fragmented6968 is expected to eq 0.56969Mutations::Notes::RepositionImageDiffNote6970 #resolve6971 when the user does not have permission6972 raises an error if the resource is not accessible to the user6973 when the user has permission6974 mutates the note6975 when the note is a DiffNote, but not on an image6976 raises an error6977Types::Projects::Services::BaseServiceType6978 is expected to eq "BaseService"6979 has basic expected fields6980 is expected to require graphql authorizations :admin_project6981Clusters::AgentTokens::TrackUsageService6982 #execute6983 when last_used_at was updated recently6984 updates cache but not database6985 when last_used_at was not updated recently6986 updates cache and database6987 with invalid token6988 still updates caches and database6989 agent is not connected6990 creates an activity event6991 agent is connected6992 does not create an activity event6993Sidebars::Groups::SuperSidebarMenus::AnalyzeMenu6994 # order random6995 defines list of NilMenuItem placeholders6996 has title and sprite_icon6997Gitlab::Ci::Config::Entry::Services6998 when configuration is valid6999 #valid?7000 is valid7001 #value7002 returns valid array7003 when configuration is invalid7004 #valid?7005 is invalid7006 when configuration has ports7007 when with_image_ports metadata is not enabled7008 #valid?7009 is not valid7010 when with_image_ports metadata is enabled7011 #valid?7012 is valid7013 #value7014 returns valid array7015 services alias7016 when they are not unique7017 #valid?7018 is invalid7019 when they are unique7020 #valid?7021 is valid7022 when one of the duplicated alias is in a service without ports7023 is valid7024 when there are not any ports7025 is valid7026WorkItems::Widgets::Description7027 .type7028 is expected to eq :description7029 #type7030 is expected to eq :description7031 #description7032 is expected to eq "Title"7033 #edited?7034 is expected to be truthy7035 #last_edited_at7036 is expected to eq 2023-08-08 13:22:22.244704000 +00007037 #last_edited_by7038 when the work item is edited7039 when last edited user still exists in the DB7040 is expected to eq #<User id:2000 @user813>7041 when last edited user no longer exists7042 is expected to eq #<User id:2002 @ghost>7043 when the work item is not edited yet7044 is expected to be nil7045Gitlab::SidekiqStatus::ClientMiddleware7046 #call7047 when the job has status_expiration set7048 tracks the job in Redis7049 when the job does not have status_expiration set7050 does not track the job in Redis7051SearchServicePresenter7052 #search_objects7053 objects do not respond to eager_load7054 users scope7055 does not eager load anything7056 #show_results_status?7057 with_count: true, show_snippets: true, show_sort_dropdown: true, result: true7058 is expected to eq true7059 with_count: false, show_snippets: true, show_sort_dropdown: false, result: true7060 is expected to eq true7061 with_count: false, show_snippets: false, show_sort_dropdown: true, result: true7062 is expected to eq true7063 with_count: false, show_snippets: false, show_sort_dropdown: false, result: false7064 is expected to eq false7065 #advanced_search_enabled?7066 is expected to eq false7067Gitlab::GithubImport::Representation::Collaborator7068 # order random7069 .from_api_response7070 behaves like a Collaborator7071 returns an instance of Collaborator7072 with Collaborator7073 includes the user ID7074 includes the username7075 includes the role7076 #github_identifiers7077 returns a hash with needed identifiers7078 .from_json_hash7079 behaves like a Collaborator7080 returns an instance of Collaborator7081 with Collaborator7082 includes the user ID7083 includes the username7084 includes the role7085 #github_identifiers7086 returns a hash with needed identifiers7087ObjectPool::JoinWorker7088 #perform7089 when the pool is not joinable7090 doesn't raise an error7091 when the pool has been joined before7092 succeeds in joining7093Ci::JobArtifacts::TrackArtifactReportWorker7094 # order random7095 #perform7096 when pipeline is found7097 executed service7098 behaves like an idempotent worker7099 is labeled as idempotent7100 performs multiple times sequentially without raising an exception7101 does not try to increment again for the test event7102 does not try to increment again for the coverage event7103 when pipeline is not found7104 does not execute service7105Resolvers::DeploymentsResolver7106 # order random7107 #resolve7108 finds the deployment7109 finds the deployment when status matches7110 does not find the deployment when status does not match7111 transforms order_by for finder7112Slack::BlockKit::IncidentManagement::IncidentModalOpened7113 # order random7114 #build7115 generates blocks for modal7116 sets projects in the project selection7117 sets initial project option as the first project path7118 truncates the path value if more than 75 chars7119Database::MultipleDatabasesHelpers7120 # order random7121 preloads database version for ApplicationRecord7122 preloads database version for Ci::ApplicationRecord7123 .with_added_ci_connection7124 when only a single database is setup7125 connects Ci::ApplicationRecord to the main database for the duration of the block (PENDING: Skipping because some of the extra databases [:ci] are setup)7126 when multiple databases are setup7127 does not mock the original Ci::ApplicationRecord connection7128 .with_reestablished_active_record_base7129 when doing establish_connection7130 on ActiveRecord::Base7131 raises exception7132 when using with_reestablished_active_record_base7133 does not raise exception7134 on Ci::ApplicationRecord7135 raises exception7136 when using with_reestablished_active_record_base7137 does not raise exception7138 when trying to access connection7139 when reconnect is true7140 does not raise exception7141 when reconnect is false7142 does raise exception7143Gitlab::LanguageDetection7144 #languages7145 returns the language names7146 #insertions7147 only includes new languages7148 #updates7149 updates the share of languages7150 does not include languages to be removed7151 when silent writes occur7152 doesn't include them in the result7153 #deletions7154 lists undetected languages7155Gitlab::Analytics::UsageTrends::WorkersArgumentBuilder7156 when no measurement identifiers are given7157 returns empty array7158 when measurement identifiers are given7159 returns worker arguments7160 when bogus measurement identifiers are given7161 skips bogus measurement identifiers7162 when custom min and max queries are present7163 uses custom min/max for ids7164Clusters::Agents::DeleteService7165 #execute7166 without user permissions7167 fails to delete when the user has no permissions7168 with user permissions7169 deletes a cluster agent7170BulkImports::Common::Pipelines::LabelsPipeline7171 #run7172 imports group labels into destination group and removes tmpdir7173 #load7174 when label is not persisted7175 saves the label7176 when label is missing7177 returns7178Gitlab::GithubImport::ObjectCounter7179 validates the operation being incremented7180 increments the counter and saves the key to be listed in the summary later7181 does not increment the counter if the given value is <= 07182 expires etag cache of relevant realtime change endpoints on increment7183 .summary7184 when there are cached import statistics7185 includes cached object counts stats in response7186 when there are no cached import statistics7187 when project import is in progress7188 includes an empty object counts stats in response7189 when project import is not in progress7190 includes project import checksums in response7191Gitlab::CodeNavigationPath7192 when there is an artifact with code navigation data7193 when a pipeline exist for a sha7194 returns path to a file in the artifact7195 when passed commit sha is nil7196 returns path to a file in the artifact7197 when a pipeline exist for the latest commits7198 returns path to a file in the artifact7199Sidebars::Admin::Menus::CiCdMenu7200 # order random7201 behaves like Admin menu7202 renders the correct link7203 renders the correct title7204 renders the correct icon7205 renders the separator if needed7206 #render?7207 when user is admin7208 renders7209 when user is not admin7210 does not render7211 when user is not logged in7212 does not render7213 behaves like Admin menu with sub menus7214 contains submemus7215RuboCop::Cop::IgnoredColumns7216 # order random7217 flags use of `self.ignored_columns +=` instead of the IgnorableColumns concern7218 flags use of `self.ignored_columns =` instead of the IgnorableColumns concern7219 when only CE model exist7220 does not flag `ignore_columns` usage in CE model7221 does not flag `ignore_column` usage in CE model7222 when CE and EE model exist7223 flags `ignore_columns` usage in EE model7224 flags `ignore_column` usage in EE model7225 when only EE model exist7226 does not flag `ignore_columns` usage in EE model7227 does not flag `ignore_column` usage in EE model7228Database::PreventCrossJoins7229 when running in a default scope7230 when only non-CI tables are used7231 does not raise exception7232 when only CI tables are used7233 does not raise exception7234 when CI and non-CI tables are used7235 raises exception7236 when annotation is used7237 does not raise exception7238 when allow_cross_joins_across_databases is used7239 does not raise exception7240 when allow_cross_joins_across_databases is used7241 does not raise exception7242 when there is a parser error7243 does not raise parse PGQuery::ParseError7244 when an ALTER INDEX query is used7245 does not raise exception7246Mutations::Environments::CanaryIngress::Update7247 #resolve7248 when service execution succeeded7249 returns no errors7250 with certificate_based_clusters disabled7251 returns notice about feature removal7252 when service encounters a problem7253 returns an error7254 when user is reporter who does not have permission to access the environment7255 raises an error7256Integrations::Pushover7257 Validations7258 when integration is active7259 is expected to validate that :api_key cannot be empty/falsy7260 is expected to validate that :user_key cannot be empty/falsy7261 is expected to validate that :priority cannot be empty/falsy7262 when integration is inactive7263 is expected not to validate that :api_key cannot be empty/falsy7264 is expected not to validate that :user_key cannot be empty/falsy7265 is expected not to validate that :priority cannot be empty/falsy7266 Execute7267 calls Pushover API7268RuboCop::Cop::CodeReuse::Presenter7269 # order random7270 flags the use of a Presenter in a Serializer7271 flags the use of a Presenter in a Service class7272 flags the use of a Presenter in a Finder7273 flags the use of a Presenter in a model instance method7274 flags the use of a Presenter in a model class method7275 flags the use of a Service class in a Presenter7276 flags the use of a Presenter in a worker7277Gitlab::Ci::Config::Entry::Hidden7278 .matching?7279 when name starts with dot7280 is expected to be truthy7281 when name does not start with dot7282 is expected to be falsey7283 .new7284 validations7285 when entry config value is correct7286 #value7287 returns key value7288 #valid?7289 is valid7290 when entry value is not correct7291 when config is empty7292 #valid7293 is invalid7294 #leaf?7295 is a leaf7296 #relevant?7297 is not a relevant entry7298Gitlab::AvatarCache7299 #by_email7300 writes a new value into the cache7301 finds the cached value and doesn't execute the block7302 finds the cached value in the request store and doesn't execute the block7303 #delete_by_email7304 no emails, somehow7305 is expected to eq 07306 single email7307 removes the email7308 multiple emails7309 removes the emails it finds7310 when deleting over 1000 emails7311 deletes in batches of 10007312Ci::PipelineScheduleVariable7313 behaves like CI variable7314 is expected to includes the Ci::HasVariable module7315 strips whitespaces when assigning key7316 can convert to runner variable7317 variable type7318 defines variable types7319 defaults variable type to env_var7320 supports variable type file7321Projects::ScheduleBulkRepositoryShardMovesService7322 behaves like moves repository shard in bulk7323 #execute7324 schedules container repository storage moves7325 read-only repository7326 does not get scheduled7327 .enqueue7328 defers to the worker7329RuboCop::Cop::RSpec::FactoryBot::LocalStaticAssignment7330 # order random7331 does not flag local assignments in unrelated blocks7332 behaves like local static assignment7333 flags static local assignment in `transient`7334 does not flag correct use7335 behaves like local static assignment7336 flags static local assignment in `trait :closed`7337 does not flag correct use7338 behaves like local static assignment7339 flags static local assignment in `factory :project`7340 does not flag correct use7341Gitlab::Ci::Build::Rules::Rule::Clause::If7342 #satisfied_by?7343 when expression is a basic string comparison7344 when comparison is true7345 is expected to eq true7346 when comparison is false7347 is expected to eq false7348 when expression is a regexp7349 when comparison is true7350 is expected to eq true7351 when comparison is false7352 is expected to eq false7353 when both side of the expression are variables7354 when comparison is true7355 is expected to eq true7356 when comparison is false7357 is expected to eq false7358Groups::EnvironmentScopesFinder7359 # order random7360 #execute7361 with default no arguments7362 is expected to contain exactly "environment1", "environment2", and "environment3"7363 with search7364 is expected to contain exactly "environment1"7365 with specific name7366 is expected to contain exactly "environment3"7367Gitlab::Ssh::Commit7368 #signature7369 returns the cached signature on multiple calls7370 when all expected data is present7371 calls signature verifier and uses returned attributes7372 when signed_by_key is nil7373 creates signature without a key_id7374 #update_signature!7375 updates verification status7376Sidebars::UserSettings::Menus::ProfileMenu7377 # order random7378 behaves like User settings menu7379 does not contain any sub menu7380 renders the correct link7381 renders the correct title7382 renders the correct icon7383 defines correct active route7384 behaves like User settings menu #render? method7385 #render?7386 when user is logged in7387 renders7388 when user is not logged in7389 does not render7390Gitlab::CycleAnalytics::Updater7391 updates authors7392 maps the correct user7393 updates builds7394 maps the correct build7395Gitlab::SidekiqSignals7396 .install7397 not a process group leader7398 does nothing7399 as a process group leader7400 installs its own signal handlers for TERM and INT only7401 installs a forwarding signal handler for INT7402 raises if sidekiq no longer traps SIGINT7403 installs a forwarding signal handler for TERM7404 raises if sidekiq no longer traps SIGTERM7405Gitlab::Git::RawDiffChange7406 bad input7407 does not set most of the attrs7408 adding a file7409 initialize the proper attrs7410 renaming a file7411 initialize the proper attrs7412 modifying a file7413 initialize the proper attrs7414 deleting a file7415 initialize the proper attrs7416Types::AlertManagement::DomainFilterEnum7417 is expected to eq "AlertManagementDomainFilter"7418 exposes all the severity values7419Groups::SettingsHelper7420 #group_settings_confirm_modal_data7421 prevent_delete_response: true, is_button_disabled: "true", form_value_id: nil7422 returns expected parameters7423 prevent_delete_response: true, is_button_disabled: "true", form_value_id: "fake_form_id"7424 returns expected parameters7425 prevent_delete_response: false, is_button_disabled: "false", form_value_id: nil7426 returns expected parameters7427 prevent_delete_response: false, is_button_disabled: "false", form_value_id: "fake_form_id"7428 returns expected parameters7429Gitlab::GithubImport::ImportIssueWorker7430 #import7431 imports an issue7432 #increment_object_counter?7433 when github issue is a pull request7434 returns false7435ExploreHelper7436 #explore_nav_links7437 has all the expected links by default7438 #public_visibility_restricted?7439 delegates to Gitlab::VisibilityLevel7440 #projects_filter_items7441 returns correct dropdown items7442 #projects_filter_selected7443 when visibility_level is present7444 returns corresponding item7445 when visibility_level is empty7446 returns corresponding item7447GroupAccessTokenSerializer7448 #represent7449 can render a single token7450 can render a collection of tokens7451Gitlab::Diff::ParallelDiff7452 #parallelize7453 returns an array of arrays containing the parsed diff7454Admin::AbuseReportEntity7455 # order random7456 #as_json7457 exposes correct attributes7458 correctly exposes `reported user`7459 correctly exposes `reporter`7460 correctly exposes :report_path7461Gitlab::Usage::Metrics::Aggregates::Sources::RedisHll7462 .calculate_events_union7463 calls Gitlab::UsageDataCounters::HLLRedisCounter.calculate_events_union7464 prevents from using fallback value as valid union result7465 .calculate_metrics_intersections7466 uses values returned by union to compute the intersection7467 raises error if union is < 07468FromExcept7469 behaves like from set operator7470 #from_except7471 selects from the results of the EXCEPT7472 returns empty set when passing empty array7473 supports the use of a custom alias for the sub query7474 supports keeping duplicate rows7475ClickHouse::BindIndexManager7476 # order random7477 #next_bind_str7478 when initialized without a start index7479 starts from index 1 by default7480 increments the bind string on subsequent calls7481 when initialized with a start index7482 starts from the given index7483 increments the bind string on subsequent calls7484AuthorizedKeysWorker7485 #perform7486 authorized_keys is enabled7487 #add_key7488 delegates to Gitlab::AuthorizedKeys7489 #remove_key7490 delegates to Gitlab::AuthorizedKeys7491 all other commands7492 raises an error7493 authorized_keys is disabled7494 does nothing7495Banzai::Filter::PlantumlFilter7496 replaces plantuml pre tag with img tag7497 allows the lang attribute on the code tag to support RST files processed by gitlab-markup gem7498 does not replace plantuml pre tag with img tag if disabled7499 does not replace plantuml pre tag with img tag if url is invalid7500Types::WorkItemType7501 is expected to eq "WorkItem"7502 is expected to require graphql authorizations :read_work_item7503 is expected to expose permissions using Types::PermissionTypes::WorkItem7504 has specific fields7505DisallowTwoFactorForGroupWorker7506 updates group7507 updates group members7508Resolvers::GroupResolver7509 #resolve7510 batch-resolves groups by full path7511 resolves an unknown full_path to nil7512 treats group full path as case insensitive7513Gitlab::Ci::ProjectConfig::Source7514 # order random7515 #internal_include_prepended?7516 is expected to eq false7517 #content7518 is expected to raise NotImplementedError7519 #source7520 is expected to raise NotImplementedError7521Gitlab::Import::StuckImportJob7522 marks the stuck import project as failed and track the error on import_failures7523Gitlab::Ci::Config::Entry::Stage7524 validations7525 when stage config value is correct7526 #value7527 returns a stage key7528 #valid?7529 is valid7530 when value has a wrong type7531 reports errors about wrong type7532 .default7533 returns default stage7534BulkImports::Projects::Graphql::GetRepositoryQuery7535 has a valid query7536 returns project repository url7537 queries project based on source_full_path7538Sidebars::YourWork::Panel7539 # order random7540 implements #super_sidebar_context_header7541 behaves like a panel with uniquely identifiable menu items7542 all menu_items have unique item_id7543 all menu_items have an item_id7544Gitlab::Pagination::Keyset::InOperatorOptimization::ColumnData7545 accepts symbols for original_column_name and as7546 #array_aggregated_column_name7547 is expected to eq "issues_id_array"7548 #projection7549 returns the Arel projection for the column with a new alias7550projects/issues/_related_branches7551 shows the related branches with their build status7552Gitlab::Pagination::Keyset::InOperatorOptimization::ArrayScopeColumns7553 builds array column names7554 when no columns are given7555 is expected to raise /No array columns were given/7556 when Arel AS node is given as input7557 works with Arel AS nodes7558Rails asset host initializer7559 uses no asset host by default7560 with cdn_host defined in gitlab.yml7561 returns https://gitlab.example.com7562Repositories::ChangelogTagFinder7563 #execute7564 when the regular expression is invalid7565 raises Gitlab::Changelog::Error7566 when there is a previous tag7567 returns the previous tag7568 when there is no previous tag7569 returns nil7570Types::WorkItems::Widgets::StartAndDueDateUpdateInputType7571 is expected to eq "WorkItemWidgetStartAndDueDateUpdateInput"7572 is expected to contain exactly "startDate" and "dueDate"7573API::Entities::Clusters::Agent7574 includes basic fields7575Types::Ci::PipelineType7576 is expected to eq "Pipeline"7577 is expected to expose permissions using Types::PermissionTypes::Ci::Pipeline7578 contains attributes related to a pipeline7579ErrorTracking::SentryClient::Token7580 # order random7581 .masked_token?7582 with masked token7583 is expected to be truthy7584 without masked token7585 is expected to be falsey7586Types::WorkItems::Widgets::CurrentUserTodosInputType7587 # order random7588 is expected to contain exactly "action" and "todoId"7589 is expected to eq "WorkItemWidgetCurrentUserTodosInput"7590RuboCop::Cop::Gemspec::AvoidExecutingGit7591 # order random7592 does not flag violation for using a glob7593 flags violation for executing git7594Types::ContainerRepositoryTagsSortEnum7595 is expected to eq "ContainerRepositoryTagSort"7596 exposes all the existing issue sort values7597Types::DesignManagement::DesignCollectionCopyStateEnum7598 is expected to eq "DesignCollectionCopyState"7599 exposes the correct event states7600VulnerabilityFindingHelpers7601 #requires_manual_resolution?7602 returns false if the finding does not require manual resolution7603 returns true when the finding requires manual resolution7604Gitlab::Webpack::GraphqlKnownOperations7605 .load7606 when file loader returns7607 returns memoized value7608 when file loader errors7609 returns empty array7610RsaKeyValidator7611 is not valid when invalid RSA key is provided7612 is valid when valid RSA key is provided7613Banzai::Pipeline::ServiceDeskEmailPipeline7614 # order random7615 .filters7616 returns the expected type7617 excludes ServiceDeskUploadLinkFilter7618Sidebars::Groups::SuperSidebarMenus::ManageMenu7619 # order random7620 defines list of NilMenuItem placeholders7621 has title and sprite_icon7622Types::Projects::ForkDetailsType7623 # order random7624 has specific fields7625 is expected to eq "ForkDetails"7626Admin::UserEntity7627 #as_json7628 exposes correct attributes7629GravatarService7630 #execute7631 replaces the placeholders7632WorkItemPresenter7633 # order random7634 presents a work item and uses methods defined in IssuePresenter7635Types::WorkItems::Widgets::LabelsType7636 exposes the expected fields7637BulkImports::GetImportableDataService7638 #execute7639 returns version_validation and a response7640Gitlab::Ci::Status::Core7641 #cache_key7642 uses the subject's cache key7643ProjectMirrorEntity7644 exposes project-specific elements7645Admin::ComponentsHelper7646 # order random7647 #database_versions7648 returns expected database data7649Gitlab::Kubernetes::ConfigMaps::AwsNodeAuth7650 #generate7651 builds a Kubeclient Resource7652Types::Ci::FreezePeriodStatusEnum7653 # order random7654 exposes all freeze period statuses7655Gitlab::Ci::Config::Interpolation::Functions::Base7656 # order random7657 defines an expected interface for child classes7658Types::Packages::Conan::FileMetadatumType7659 includes conan file metadatum fields7660Knapsack report was generated. Preview:7661{7662 "spec/models/issue_spec.rb": 153.08053301400014,7663 "spec/models/ci/job_artifact_spec.rb": 99.93195195499993,7664 "spec/services/projects/overwrite_project_service_spec.rb": 125.03324494100025,7665 "spec/finders/issues_finder_spec.rb": 54.43866256399997,7666 "spec/lib/gitlab/git/tree_spec.rb": 64.35993746399981,7667 "spec/policies/wiki_page_policy_spec.rb": 58.17249391900032,7668 "spec/services/merge_requests/mergeability_check_service_spec.rb": 64.1948846600003,7669 "spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb": 15.197336834999987,7670 "spec/services/auto_merge/base_service_spec.rb": 54.969773840000016,7671 "spec/graphql/types/project_type_spec.rb": 31.856608370999766,7672 "spec/views/search/_results.html.haml_spec.rb": 39.32827224999983,7673 "spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb": 31.82556714200018,7674 "spec/lib/gitlab/github_import/user_finder_spec.rb": 28.21428198600006,7675 "spec/services/labels/available_labels_service_spec.rb": 28.560361177999766,7676 "spec/lib/gitlab/gitaly_client/commit_service_spec.rb": 7.4359536410001965,7677 "spec/routing/group_routing_spec.rb": 9.210584865999408,7678 "spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb": 20.861224610000136,7679 "spec/models/projects/data_transfer_spec.rb": 4.5685761450004065,7680 "spec/helpers/packages_helper_spec.rb": 11.98749197699999,7681 "spec/services/groups/create_service_spec.rb": 15.734810546000517,7682 "spec/models/ci/job_token/project_scope_link_spec.rb": 18.907975905000058,7683 "spec/serializers/pipeline_details_entity_spec.rb": 15.060418961999858,7684 "spec/finders/group_members_finder_spec.rb": 15.394690413999342,7685 "spec/models/commit_range_spec.rb": 15.995878892000292,7686 "spec/lib/gitlab/ci/config/external/processor_spec.rb": 14.972448737000377,7687 "spec/services/push_event_payload_service_spec.rb": 17.59590795599979,7688 "spec/graphql/mutations/discussions/toggle_resolve_spec.rb": 9.245671244000732,7689 "spec/lib/gitlab/lets_encrypt/client_spec.rb": 10.69836531600049,7690 "spec/services/issuable/common_system_notes_service_spec.rb": 9.064390434000416,7691 "spec/lib/gitlab/ci/config/entry/variables_spec.rb": 3.562118198999997,7692 "spec/lib/gitlab/ci/trace/chunked_io_spec.rb": 8.511464522999631,7693 "spec/services/merge_requests/retarget_chain_service_spec.rb": 10.881661506000455,7694 "spec/lib/gitlab/database/load_balancing/host_spec.rb": 4.775606555000195,7695 "spec/lib/banzai/filter/audio_link_filter_spec.rb": 10.754611442999703,7696 "spec/services/projects/hashed_storage/migrate_attachments_service_spec.rb": 9.873364089999995,7697 "spec/lib/gitlab/slash_commands/deploy_spec.rb": 10.79843430100027,7698 "spec/lib/gitlab/redis/queues_spec.rb": 2.3742966030004027,7699 "spec/graphql/resolvers/work_items_resolver_spec.rb": 6.789190406000671,7700 "spec/routing/import_routing_spec.rb": 2.951097721000224,7701 "spec/graphql/types/issue_type_spec.rb": 5.816509397999653,7702 "spec/services/projects/participants_service_spec.rb": 8.870053956999982,7703 "spec/services/packages/maven/metadata/sync_service_spec.rb": 6.239576444000704,7704 "spec/lib/gitlab/ci/pipeline/chain/populate_spec.rb": 4.056681391999518,7705 "spec/lib/gitlab/database/load_balancing/connection_proxy_spec.rb": 1.9482378510001581,7706 "spec/lib/gitlab/github_import/representation/diff_note_spec.rb": 2.229794275999666,7707 "spec/lib/extracts_ref_spec.rb": 2.179688102,7708 "spec/views/layouts/header/_new_dropdown.haml_spec.rb": 3.9147113560002254,7709 "spec/services/merge_requests/update_assignees_service_spec.rb": 7.414853545000369,7710 "spec/services/ci/play_manual_stage_service_spec.rb": 8.054291831000228,7711 "spec/lib/gitlab/database/migrations/timeout_helpers_spec.rb": 6.425350011999399,7712 "spec/lib/gitlab/database/count_spec.rb": 6.143917215999863,7713 "spec/finders/joined_groups_finder_spec.rb": 7.6971032929996,7714 "spec/lib/gitlab/database/background_migration/prometheus_metrics_spec.rb": 4.44612943500033,7715 "spec/lib/gitlab/ci/build/context/global_spec.rb": 6.719430868000018,7716 "spec/services/markup/rendering_service_spec.rb": 5.9551467090004735,7717 "spec/uploaders/file_mover_spec.rb": 4.178452568000466,7718 "spec/workers/repository_check/single_repository_worker_spec.rb": 5.943154048999531,7719 "spec/serializers/environment_status_entity_spec.rb": 5.651924934000817,7720 "spec/lib/gitlab/import_export/group/relation_factory_spec.rb": 6.0258901699999114,7721 "spec/graphql/types/group_type_spec.rb": 2.0773217249998197,7722 "spec/models/ci/build_trace_chunks/database_spec.rb": 5.0986611589996755,7723 "spec/lib/gitlab/database/health_status/indicators/wal_rate_spec.rb": 1.6394096370004263,7724 "spec/services/ci/update_instance_variables_service_spec.rb": 2.003965323000557,7725 "spec/lib/gitlab/etag_caching/middleware_spec.rb": 1.2294200149999597,7726 "spec/models/ci/catalog/resource_spec.rb": 1.7736182110002119,7727 "spec/views/layouts/devise_empty.html.haml_spec.rb": 2.4957003359995724,7728 "spec/graphql/mutations/issues/set_escalation_status_spec.rb": 4.278352485999676,7729 "spec/lib/gitlab/ci/status/external/common_spec.rb": 5.1390050639993206,7730 "spec/lib/banzai/filter/references/reference_cache_spec.rb": 1.94683182999961,7731 "spec/workers/pipeline_metrics_worker_spec.rb": 5.628029297000467,7732 "spec/helpers/boards_helper_spec.rb": 3.137927650000165,7733 "spec/lib/gitlab/email/smime/signer_spec.rb": 2.0734225559999686,7734 "spec/lib/gitlab/database/postgres_partitioned_table_spec.rb": 1.1396737260001828,7735 "spec/lib/gitlab/usage/metrics/instrumentations/operating_system_metric_spec.rb": 2.559124487999725,7736 "spec/helpers/award_emoji_helper_spec.rb": 4.335544368999763,7737 "spec/services/security/ci_configuration/secret_detection_create_service_spec.rb": 4.2448423900004855,7738 "spec/graphql/resolvers/user_notes_count_resolver_spec.rb": 3.025022032999914,7739 "spec/services/repository_archive_clean_up_service_spec.rb": 2.5674910670004465,7740 "spec/lib/bitbucket_server/representation/pull_request_spec.rb": 1.1227866879999056,7741 "spec/workers/ci/pending_builds/update_group_worker_spec.rb": 3.439294883999537,7742 "spec/services/dependency_proxy/request_token_service_spec.rb": 1.3316204940001626,7743 "spec/lib/api/entities/ci/job_request/dependency_spec.rb": 4.809095113000694,7744 "spec/models/packages/cleanup/policy_spec.rb": 2.976977369999986,7745 "spec/services/clusters/destroy_service_spec.rb": 5.065734492999582,7746 "spec/graphql/resolvers/nested_groups_resolver_spec.rb": 1.5514995879993876,7747 "spec/models/redirect_route_spec.rb": 1.2053181479996056,7748 "spec/policies/deploy_token_policy_spec.rb": 3.0953591150000648,7749 "spec/graphql/resolvers/ci/config_resolver_spec.rb": 1.7973361390004357,7750 "spec/services/import/validate_remote_git_endpoint_service_spec.rb": 0.8980400840000584,7751 "spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb": 0.6413151339993419,7752 "spec/services/loose_foreign_keys/cleaner_service_spec.rb": 2.86309052300021,7753 "spec/services/users/ban_service_spec.rb": 2.0282562209995376,7754 "spec/lib/gitlab/utils/file_info_spec.rb": 0.6994057669999165,7755 "spec/workers/new_issue_worker_spec.rb": 4.047428642999876,7756 "spec/lib/gitlab/slash_commands/issue_search_spec.rb": 2.557040398999561,7757 "spec/presenters/alert_management/alert_presenter_spec.rb": 0.7571496310001748,7758 "spec/services/ci/enqueue_job_service_spec.rb": 3.5280625539999164,7759 "spec/lib/sidebars/projects/menus/merge_requests_menu_spec.rb": 1.9793963270003587,7760 "spec/finders/packages/go/module_finder_spec.rb": 1.0721136840002146,7761 "spec/lib/gitlab/ci/config/entry/product/parallel_spec.rb": 1.0442052870002954,7762 "spec/services/achievements/create_service_spec.rb": 0.9481556490000003,7763 "spec/lib/gitlab/ci/config/entry/hooks_spec.rb": 0.4632107459992767,7764 "spec/lib/gitlab/diff/file_collection/merge_request_diff_base_spec.rb": 5.390183604999947,7765 "spec/lib/gitlab/metrics/environment_spec.rb": 0.39441400400028215,7766 "spec/graphql/mutations/todos/mark_all_done_spec.rb": 3.221085650000532,7767 "spec/services/projects/group_links/update_service_spec.rb": 2.3182757370004765,7768 "spec/models/concerns/where_composite_spec.rb": 1.185133730000416,7769 "spec/views/projects/settings/ci_cd/_autodevops_form.html.haml_spec.rb": 2.451520081000126,7770 "spec/services/topics/merge_service_spec.rb": 1.7435143550001158,7771 "spec/tasks/gitlab/lfs/check_rake_spec.rb": 1.7823206299999583,7772 "spec/services/work_items/widgets/current_user_todos_service/update_service_spec.rb": 3.605013436000263,7773 "spec/views/projects/_flash_messages.html.haml_spec.rb": 1.9950089550002303,7774 "spec/lib/gitlab/graphs/commits_spec.rb": 2.4574870910000755,7775 "spec/lib/gitlab/middleware/request_context_spec.rb": 0.3254390210004203,7776 "spec/finders/releases/evidence_pipeline_finder_spec.rb": 2.683129533999818,7777 "spec/workers/packages/cleanup/delete_orphaned_dependencies_worker_spec.rb": 1.162431932999425,7778 "spec/services/packages/terraform_module/create_package_service_spec.rb": 2.2166664679998576,7779 "spec/models/work_items/widgets/assignees_spec.rb": 0.8487055389996385,7780 "spec/helpers/listbox_helper_spec.rb": 0.5729924830002346,7781 "spec/rubocop/cop/gettext/static_identifier_spec.rb": 0.696833637999589,7782 "spec/services/packages/mark_packages_for_destruction_service_spec.rb": 2.8254972260001523,7783 "spec/models/merge_request/approval_removal_settings_spec.rb": 2.37072032100059,7784 "spec/helpers/milestones_helper_spec.rb": 0.5171053290005148,7785 "spec/workers/incident_management/add_severity_system_note_worker_spec.rb": 1.595435391999672,7786 "spec/rubocop/cop/rake/require_spec.rb": 0.5487662249997811,7787 "spec/helpers/lazy_image_tag_helper_spec.rb": 1.073889983999834,7788 "spec/graphql/mutations/security/ci_configuration/configure_sast_spec.rb": 2.5164386729993566,7789 "spec/lib/gitlab/graphql/representation/tree_entry_spec.rb": 1.3701921380006752,7790 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb": 1.5641414960000475,7791 "spec/graphql/types/release_type_spec.rb": 0.5364673160001985,7792 "spec/models/organizations/organization_setting_spec.rb": 0.427458829999523,7793 "spec/lib/gitlab/ci/parsers_spec.rb": 0.48682811300022877,7794 "spec/workers/gitlab/jira_import/stage/import_labels_worker_spec.rb": 1.5744803540001158,7795 "spec/services/packages/ml_model/create_package_file_service_spec.rb": 1.0790164330001062,7796 "spec/lib/gitlab/gitaly_client/remote_service_spec.rb": 2.333952224999848,7797 "spec/lib/gitlab/query_limiting/middleware_spec.rb": 0.38858375400013756,7798 "spec/models/abuse/user_trust_score_spec.rb": 0.9723623649997535,7799 "spec/lib/gitlab/ci/config/external/mapper/matcher_spec.rb": 0.3233529519993681,7800 "spec/lib/gitlab/error_tracking/processor/grpc_error_processor_spec.rb": 0.9055091430000175,7801 "spec/lib/gitlab/safe_request_loader_spec.rb": 0.8740967069998078,7802 "spec/views/projects/issues/show.html.haml_spec.rb": 2.3215601660003813,7803 "spec/models/project_repository_spec.rb": 1.5059229819999018,7804 "spec/graphql/types/snippets/blob_action_enum_spec.rb": 0.23059271300007822,7805 "spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb": 1.2426417630003925,7806 "spec/lib/bitbucket_server/representation/comment_spec.rb": 0.7700295289996575,7807 "spec/lib/gitlab/metrics/dashboard/repo_dashboard_finder_spec.rb": 1.6474118460000682,7808 "spec/lib/gitlab/metrics/memory_spec.rb": 0.2951818749997983,7809 "spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb": 1.5422662870005297,7810 "spec/graphql/types/projects/base_service_type_spec.rb": 0.27871023699935904,7811 "spec/services/clusters/agent_tokens/track_usage_service_spec.rb": 1.2881067589996746,7812 "spec/lib/sidebars/groups/super_sidebar_menus/analyze_menu_spec.rb": 0.2009765659995537,7813 "spec/lib/gitlab/ci/config/entry/services_spec.rb": 0.526019167999948,7814 "spec/models/work_items/widgets/description_spec.rb": 1.1751594510005816,7815 "spec/lib/gitlab/sidekiq_status/client_middleware_spec.rb": 0.21207201500055817,7816 "spec/presenters/search_service_presenter_spec.rb": 1.0611631349993331,7817 "spec/lib/gitlab/github_import/representation/collaborator_spec.rb": 0.4930996220000452,7818 "spec/workers/object_pool/join_worker_spec.rb": 1.6690911430005144,7819 "spec/workers/ci/job_artifacts/track_artifact_report_worker_spec.rb": 1.2367427449999013,7820 "spec/graphql/resolvers/deployments_resolver_spec.rb": 1.1991907090005043,7821 "spec/lib/slack/block_kit/incident_management/incident_modal_opened_spec.rb": 1.2003320089997942,7822 "spec/support_specs/database/multiple_databases_helpers_spec.rb": 0.6553097129999514,7823 "spec/lib/gitlab/language_detection_spec.rb": 0.844004520999988,7824 "spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb": 1.2294163850001496,7825 "spec/services/clusters/agents/delete_service_spec.rb": 1.6318222980007704,7826 "spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb": 1.30975044600018,7827 "spec/lib/gitlab/github_import/object_counter_spec.rb": 0.8931246150004881,7828 "spec/lib/gitlab/code_navigation_path_spec.rb": 1.0828357020000112,7829 "spec/lib/sidebars/admin/menus/ci_cd_menu_spec.rb": 0.4477819769999769,7830 "spec/rubocop/cop/ignored_columns_spec.rb": 0.4812395839999226,7831 "spec/support_specs/database/prevent_cross_joins_spec.rb": 0.49910783100040135,7832 "spec/graphql/mutations/environments/canary_ingress/update_spec.rb": 1.140930235000269,7833 "spec/models/integrations/pushover_spec.rb": 0.575912741999673,7834 "spec/rubocop/cop/code_reuse/presenter_spec.rb": 0.43048838800041267,7835 "spec/lib/gitlab/ci/config/entry/hidden_spec.rb": 0.4028232330001629,7836 "spec/lib/gitlab/avatar_cache_spec.rb": 0.5061268999997992,7837 "spec/models/ci/pipeline_schedule_variable_spec.rb": 0.43387697900016065,7838 "spec/services/projects/schedule_bulk_repository_shard_moves_service_spec.rb": 0.8535730399999011,7839 "spec/rubocop/cop/rspec/factory_bot/local_static_assignment_spec.rb": 0.409363091999694,7840 "spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb": 0.33864086999983556,7841 "spec/finders/groups/environment_scopes_finder_spec.rb": 0.582269341999563,7842 "spec/lib/gitlab/ssh/commit_spec.rb": 0.9255015409999032,7843 "spec/lib/sidebars/user_settings/menus/profile_menu_spec.rb": 0.4827664829999776,7844 "spec/lib/gitlab/cycle_analytics/updater_spec.rb": 0.7050073660002454,7845 "spec/lib/gitlab/sidekiq_signals_spec.rb": 0.3644753470007345,7846 "spec/lib/gitlab/git/raw_diff_change_spec.rb": 0.32384341200031486,7847 "spec/graphql/types/alert_management/domain_filter_enum_spec.rb": 0.19978784599970822,7848 "spec/helpers/groups/settings_helper_spec.rb": 0.44479677799972706,7849 "spec/workers/gitlab/github_import/import_issue_worker_spec.rb": 0.6341852750001635,7850 "spec/helpers/explore_helper_spec.rb": 0.3747429760005616,7851 "spec/serializers/group_access_token_serializer_spec.rb": 0.8323216119997596,7852 "spec/lib/gitlab/diff/parallel_diff_spec.rb": 0.9187132619999829,7853 "spec/serializers/admin/abuse_report_entity_spec.rb": 0.3918073539998659,7854 "spec/lib/gitlab/usage/metrics/aggregates/sources/redis_hll_spec.rb": 0.2892706859993268,7855 "spec/models/concerns/from_except_spec.rb": 0.2883024660004594,7856 "spec/lib/click_house/bind_index_manager_spec.rb": 0.2715739280001799,7857 "spec/workers/authorized_keys_worker_spec.rb": 0.3160798930002784,7858 "spec/lib/banzai/filter/plantuml_filter_spec.rb": 0.3126401529998475,7859 "spec/graphql/types/work_item_type_spec.rb": 0.2587488889994347,7860 "spec/workers/disallow_two_factor_for_group_worker_spec.rb": 0.6659085720002622,7861 "spec/graphql/resolvers/group_resolver_spec.rb": 0.41100109099988913,7862 "spec/lib/gitlab/ci/project_config/source_spec.rb": 0.2528903499996886,7863 "spec/workers/gitlab/import/stuck_import_job_spec.rb": 0.59987836000073,7864 "spec/lib/gitlab/ci/config/entry/stage_spec.rb": 0.28674317699915264,7865 "spec/lib/bulk_imports/projects/graphql/get_repository_query_spec.rb": 0.37102900599984423,7866 "spec/lib/sidebars/your_work/panel_spec.rb": 0.32185294200007775,7867 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/column_data_spec.rb": 0.25667674000033003,7868 "spec/views/projects/issues/_related_branches.html.haml_spec.rb": 0.5837143210001159,7869 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb": 0.23973744100021577,7870 "spec/initializers/rails_asset_host_spec.rb": 0.189832258000024,7871 "spec/finders/repositories/changelog_tag_finder_spec.rb": 0.2917988159997549,7872 "spec/graphql/types/work_items/widgets/start_and_due_date_update_input_type_spec.rb": 0.20308570599991072,7873 "spec/lib/api/entities/clusters/agent_spec.rb": 0.5611772129996098,7874 "spec/graphql/types/ci/pipeline_type_spec.rb": 0.24185924100038392,7875 "spec/lib/error_tracking/sentry_client/token_spec.rb": 0.19074648799960414,7876 "spec/graphql/types/work_items/widgets/current_user_todos_input_type_spec.rb": 0.19381844700001238,7877 "spec/rubocop/cop/gemspec/avoid_executing_git_spec.rb": 0.21525161400040815,7878 "spec/graphql/types/container_respository_tags_sort_enum_spec.rb": 0.21057180499974493,7879 "spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb": 0.19946472700030426,7880 "spec/models/concerns/vulnerability_finding_helpers_spec.rb": 0.21009871499973087,7881 "spec/lib/gitlab/webpack/graphql_known_operations_spec.rb": 0.20925470499969379,7882 "spec/validators/rsa_key_validator_spec.rb": 0.21521378499983257,7883 "spec/lib/banzai/pipeline/service_desk_email_pipeline_spec.rb": 0.2099895450000986,7884 "spec/lib/sidebars/groups/super_sidebar_menus/manage_menu_spec.rb": 0.2183100940001168,7885 "spec/graphql/types/projects/fork_details_type_spec.rb": 0.20139773699975194,7886 "spec/serializers/admin/user_entity_spec.rb": 0.25644166999973095,7887 "spec/services/gravatar_service_spec.rb": 0.2322362120003163,7888 "spec/presenters/work_item_presenter_spec.rb": 0.18770817799941142,7889 "spec/graphql/types/work_items/widgets/labels_type_spec.rb": 0.162382190000244,7890 "spec/services/bulk_imports/get_importable_data_service_spec.rb": 0.20195477599918377,7891 "spec/lib/gitlab/ci/status/core_spec.rb": 0.17609601899948757,7892 "spec/serializers/project_mirror_entity_spec.rb": 0.18558282799949666,7893 "spec/helpers/admin/components_helper_spec.rb": 0.1705726499994853,7894 "spec/lib/gitlab/kubernetes/config_maps/aws_node_auth_spec.rb": 0.16497579000042606,7895 "spec/graphql/types/ci/freeze_period_status_enum_spec.rb": 0.17854622899994865,7896 "spec/lib/gitlab/ci/config/interpolation/functions/base_spec.rb": 0.1853510990003997,7897 "spec/graphql/types/packages/conan/file_metadatum_type_spec.rb": 0.186882286999207287898}7899Knapsack global time execution for tests: 24m 05s7900Pending: (Failures listed here are expected and do not affect your suite's status)7901 1) Issue 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 blank7902 # No reason given7903 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:497904 2) Issue 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 blank7905 # No reason given7906 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:577907 3) Database::MultipleDatabasesHelpers .with_added_ci_connection when only a single database is setup connects Ci::ApplicationRecord to the main database for the duration of the block7908 # Skipping because some of the extra databases [:ci] are setup7909 # ./spec/support_specs/database/multiple_databases_helpers_spec.rb:897910Finished in 24 minutes 11 seconds (files took 1 minute 24.38 seconds to load)79113737 examples, 0 failures, 3 pending7912Randomized with seed 246657913[TEST PROF INFO] Time spent in factories: 13:26.223 (54.06% of total time)7914RSpec exited with 0.7915No examples to retry, congrats!7917Running after script...7918$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"7923Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy7925Uploading artifacts...7926WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7927coverage/: found 5 matching artifact files and directories 7928crystalball/: found 2 matching artifact files and directories 7929WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7930knapsack/: found 4 matching artifact files and directories 7931rspec/: found 16 matching artifact files and directories 7932WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7933log/*.log: found 17 matching artifact files and directories 7934WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4900739512/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7935WARNING: Retrying... context=artifacts-uploader error=request redirected7936Uploading artifacts as "archive" to coordinator... 201 Created id=4900739512 responseStatus=201 Created token=64_6B6sf7937Uploading artifacts...7938rspec/rspec-*.xml: found 1 matching artifact files and directories 7939WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4900739512/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7940WARNING: Retrying... context=artifacts-uploader error=request redirected7941Uploading artifacts as "junit" to coordinator... 201 Created id=4900739512 responseStatus=201 Created token=64_6B6sf7943Job succeeded