rspec unit pg14 single-db-ci-connection 21/28
Passed Started
by
@vshushlin

Vladimir Shushlin
1Receiving objects: 100% (148580/148580), 135.67 MiB | 31.37 MiB/s, done.2Resolving deltas: 100% (64637/64637), done.4 * [new ref] refs/pipelines/1043537122 -> refs/pipelines/10435371225Checking out 537c07c6 as detached HEAD (ref is refs/merge-requests/118829/merge)...6Skipping Git submodules setup7$ git remote set-url origin "${CI_REPOSITORY_URL}"9Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...10Downloading cache from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 11Successfully extracted cache13Downloading artifacts for compile-test-assets (5336650410)...14Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650410 responseStatus=200 OK token=64_N81Fr15Downloading artifacts for detect-tests (5336650454)...16Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650454 responseStatus=200 OK token=64_N81Fr17Downloading artifacts for retrieve-tests-metadata (5336650473)...18Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650473 responseStatus=200 OK token=64_N81Fr19Downloading artifacts for setup-test-env (5336650424)...20Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650424 responseStatus=200 OK token=64_N81Fr22Using docker image sha256:d68252162deca904d1a0066983188b98dfe3f6fe8181458b0a55905e79ed85a1 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14@sha256:2113f34affc7e2ee40bac87419dcd7c65a94d4abfa9edb86192e1aa6a1e46590 ...23$ echo $FOSS_ONLY24$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb25$ export GOPATH=$CI_PROJECT_DIR/.go26$ mkdir -p $GOPATH27$ source scripts/utils.sh28$ source scripts/prepare_build.sh60Using two connections, single database config (config/database.yml.postgresql)61Geo DB won't be set up.62Embedding DB won't be set up.83$ source ./scripts/rspec_helpers.sh84$ run_timed_command "gem install knapsack --no-document"85$ gem install knapsack --no-document86Successfully installed knapsack-4.0.0871 gem installed88==> 'gem install knapsack --no-document' succeeded in 1 seconds.89$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"94$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"95$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"96$ tooling/bin/create_job_metrics_file || true97[job-metrics] Creating the job metrics file for the CI/CD job.98$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"99RETRY_FAILED_TESTS_IN_NEW_PROCESS: true100KNAPSACK_GENERATE_REPORT: true101FLAKY_RSPEC_GENERATE_REPORT: true102KNAPSACK_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.rb103KNAPSACK_LOG_LEVEL: debug104KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_single-db-ci-connection_21_28_report.json105FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json106FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_single-db-ci-connection_21_28_report.json107NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_single-db-ci-connection_21_28_report.json108RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-5336650989.txt109CRYSTALBALL: 110RSPEC_TESTS_MAPPING_ENABLED: 111RSPEC_TESTS_FILTER_FILE: 112Shell set options (set -o) enabled:113braceexpand on114hashall on115interactive-comments on116pipefail on117Running 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-5336650989.json --format RspecJunitFormatter --out rspec/rspec-5336650989.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request -- spec/scripts/lib/glfm/update_example_snapshots_spec.rb spec/models/packages/package_spec.rb spec/services/todos/destroy/entity_leave_service_spec.rb spec/policies/group_policy_spec.rb spec/models/ci/runner_spec.rb spec/services/ci/register_job_service_spec.rb spec/models/commit_spec.rb spec/policies/ci/build_policy_spec.rb spec/services/projects/prometheus/alerts/notify_service_spec.rb spec/services/ci/retry_job_service_spec.rb spec/lib/gitlab/health_checks/redis_spec.rb spec/lib/gitlab/conflict/file_spec.rb spec/models/project_statistics_spec.rb spec/finders/personal_access_tokens_finder_spec.rb spec/services/work_items/update_service_spec.rb spec/models/work_item_spec.rb spec/lib/gitlab/data_builder/push_spec.rb spec/services/packages/maven/find_or_create_package_service_spec.rb spec/lib/gitlab/email/message/repository_push_spec.rb spec/services/system_note_service_spec.rb spec/services/test_hooks/project_service_spec.rb spec/lib/gitlab/pagination/keyset/in_operator_optimization/query_builder_spec.rb spec/serializers/merge_request_poll_cached_widget_entity_spec.rb spec/helpers/commits_helper_spec.rb spec/presenters/group_clusterable_presenter_spec.rb spec/views/notify/pipeline_success_email.text.erb_spec.rb spec/services/projects/update_pages_service_spec.rb spec/lib/sbom/package_url_spec.rb spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb spec/lib/banzai/filter/reference_redactor_filter_spec.rb spec/lib/gitlab/background_migration/backfill_default_branch_protection_namespace_setting_spec.rb spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb spec/finders/users_finder_spec.rb spec/lib/api/entities/snippet_spec.rb spec/models/ci/build_metadata_spec.rb spec/services/projects/protect_default_branch_service_spec.rb spec/workers/new_merge_request_worker_spec.rb spec/models/clusters/kubernetes_namespace_spec.rb spec/models/hooks/active_hook_filter_spec.rb spec/workers/merge_request_cleanup_refs_worker_spec.rb spec/lib/gitlab/ci/config/entry/release_spec.rb spec/lib/gitlab/git/tag_spec.rb spec/policies/achievements/user_achievement_policy_spec.rb spec/helpers/nav/top_nav_helper_spec.rb spec/serializers/stage_entity_spec.rb spec/graphql/resolvers/ci/all_jobs_resolver_spec.rb spec/finders/concerns/finder_with_cross_project_access_spec.rb spec/graphql/mutations/incident_management/timeline_event/update_spec.rb spec/models/pages_deployment_spec.rb spec/models/error_tracking/error_spec.rb spec/finders/context_commits_finder_spec.rb spec/services/labels/find_or_create_service_spec.rb spec/finders/packages/conan/package_finder_spec.rb spec/models/integrations/ewm_spec.rb spec/lib/gitlab/ci/config/entry/root_spec.rb spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb spec/lib/gitlab/audit/auditor_spec.rb spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb spec/services/projects/container_repository/third_party/cleanup_tags_service_spec.rb spec/views/admin/dashboard/index.html.haml_spec.rb spec/lib/gitlab/ci/config/entry/needs_spec.rb spec/models/packages/debian/project_component_file_spec.rb spec/models/clusters/providers/gcp_spec.rb spec/lib/gitlab/background_migration/remove_backfilled_job_artifacts_expire_at_spec.rb spec/lib/bulk_imports/common/transformers/member_attributes_transformer_spec.rb spec/helpers/boards_helper_spec.rb spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb spec/workers/merge_requests/create_approval_event_worker_spec.rb spec/helpers/admin/user_actions_helper_spec.rb spec/lib/gitlab/ci/pipeline/logger_spec.rb spec/lib/gitlab/import_export/project/sample/relation_factory_spec.rb spec/models/label_link_spec.rb spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb spec/lib/gitlab/deploy_key_access_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_sent_metric_spec.rb spec/models/integrations/chat_message/alert_message_spec.rb spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb spec/lib/gitlab/web_hooks/rate_limiter_spec.rb spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb spec/lib/gitlab/omniauth_initializer_spec.rb spec/services/ci/job_token_scope/add_project_service_spec.rb spec/views/layouts/terms.html.haml_spec.rb spec/lib/gitlab/metrics/background_transaction_spec.rb spec/workers/project_cache_worker_spec.rb spec/views/projects/issues/service_desk/_issue.html.haml_spec.rb spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb spec/models/ci/build_need_spec.rb spec/services/issuable/callbacks/milestone_spec.rb spec/lib/gitlab/ci/reports/test_case_spec.rb spec/lib/gitlab/memory/watchdog/configurator_spec.rb spec/models/wiki_page/slug_spec.rb spec/graphql/types/base_argument_spec.rb spec/lib/safe_zip/extract_params_spec.rb spec/lib/gitlab/usage/metric_spec.rb spec/helpers/users/group_callouts_helper_spec.rb spec/lib/banzai/filter/custom_emoji_filter_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb spec/lib/gitlab/hook_data/base_builder_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb spec/lib/atlassian/jira_connect/jwt/asymmetric_spec.rb spec/graphql/mutations/custom_emoji/destroy_spec.rb spec/lib/gitlab/local_and_remote_storage_migration/pages_deployment_migrater_spec.rb spec/lib/gitlab/otp_key_rotator_spec.rb spec/services/suggestions/outdate_service_spec.rb spec/services/loose_foreign_keys/process_deleted_records_service_spec.rb spec/models/label_priority_spec.rb spec/workers/personal_access_tokens/expiring_worker_spec.rb spec/lib/file_size_validator_spec.rb spec/lib/gitlab/hook_data/user_builder_spec.rb spec/services/projects/move_notification_settings_service_spec.rb spec/models/concerns/token_authenticatable_strategies/base_spec.rb spec/lib/gitlab/database/database_connection_info_spec.rb spec/services/ci/create_pipeline_service/parameter_content_spec.rb spec/tasks/config_lint_rake_spec.rb spec/validators/qualified_domain_array_validator_spec.rb spec/lib/gitlab/tracking/incident_management_spec.rb spec/lib/gitlab/ci/processable_object_hierarchy_spec.rb spec/lib/atlassian/jira_connect/jwt/symmetric_spec.rb spec/serializers/merge_request_widget_commit_entity_spec.rb spec/models/concerns/where_composite_spec.rb spec/services/users/registrations_build_service_spec.rb spec/workers/incident_management/pager_duty/process_incident_worker_spec.rb spec/lib/gitlab/metrics/environment_spec.rb spec/services/protected_branches/destroy_service_spec.rb spec/services/spam/ham_service_spec.rb spec/models/system_note_metadata_spec.rb spec/graphql/mutations/labels/create_spec.rb spec/serializers/ci/daily_build_group_report_result_entity_spec.rb spec/lib/sidebars/groups/menus/merge_requests_menu_spec.rb spec/lib/bulk_imports/groups/loaders/group_loader_spec.rb spec/lib/gitlab/ci/config/external/file/template_spec.rb spec/lib/gitlab/github_import/importer/events/closed_spec.rb spec/components/pajamas/radio_component_spec.rb spec/lib/atlassian/jira_connect/serializers/repository_entity_spec.rb spec/rubocop/cop/scalability/cron_worker_context_spec.rb spec/lib/sidebars/user_settings/menus/gpg_keys_menu_spec.rb spec/graphql/resolvers/users_resolver_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/distinct_count_projects_with_expiration_policy_metric_spec.rb spec/graphql/resolvers/repository_branch_names_resolver_spec.rb spec/models/blob_viewer/markup_spec.rb spec/models/concerns/file_store_mounter_spec.rb spec/presenters/packages/helm/index_presenter_spec.rb spec/services/users/auto_ban_service_spec.rb spec/workers/analytics/usage_trends/counter_job_worker_spec.rb spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb spec/uploaders/object_storage/cdn_spec.rb spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb spec/services/projects/forks_count_service_spec.rb spec/lib/gitlab/asset_proxy_spec.rb spec/components/pajamas/spinner_component_spec.rb spec/workers/ci/archive_trace_worker_spec.rb spec/models/concerns/as_cte_spec.rb spec/finders/uploader_finder_spec.rb spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb spec/models/projects/branch_rule_spec.rb spec/serializers/container_tag_entity_spec.rb spec/finders/applications_finder_spec.rb spec/models/user_mentions/merge_request_user_mention_spec.rb spec/presenters/member_presenter_spec.rb spec/policies/application_setting_policy_spec.rb spec/views/admin/sessions/new.html.haml_spec.rb spec/views/projects/pages/new.html.haml_spec.rb spec/workers/bulk_imports/stuck_import_worker_spec.rb spec/models/concerns/enum_inheritance_spec.rb spec/lib/gitlab/health_checks/server_spec.rb spec/services/ci/job_artifacts/delete_service_spec.rb spec/lib/gitlab/auth/ldap/authentication_spec.rb spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb spec/workers/tasks_to_be_done/create_worker_spec.rb spec/lib/bitbucket/representation/comment_spec.rb spec/lib/gitlab/memory/watchdog/handlers/sidekiq_handler_spec.rb spec/lib/bulk_imports/groups/pipelines/group_attributes_pipeline_spec.rb spec/models/concerns/from_union_spec.rb spec/workers/pages/deactivated_deployments_delete_cron_worker_spec.rb spec/lib/bulk_imports/projects/graphql/get_snippet_repository_query_spec.rb spec/rubocop/cop/migration/schema_addition_methods_no_post_spec.rb spec/policies/identity_provider_policy_spec.rb spec/lib/gitlab/sidekiq_versioning/middleware_spec.rb spec/helpers/tracking_helper_spec.rb spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb spec/services/google_cloud/fetch_google_ip_list_service_spec.rb spec/lib/gitlab/database/query_analyzers/prevent_set_operator_mismatch/common_table_expressions_spec.rb spec/lib/constraints/activity_pub_constrainer_spec.rb spec/lib/gitlab/wiki_file_finder_spec.rb spec/lib/gitlab/jira_import/metadata_collector_spec.rb spec/lib/bulk_imports/common/extractors/ndjson_extractor_spec.rb spec/lib/gitlab/config_checker/puma_rugged_checker_spec.rb spec/serializers/import/github_realtime_repo_entity_spec.rb spec/lib/gitlab/ci/templates/kaniko_gitlab_ci_yaml_spec.rb spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb spec/serializers/analytics/cycle_analytics/stage_entity_spec.rb spec/finders/packages/composer/packages_finder_spec.rb spec/graphql/types/dependency_proxy/group_setting_type_spec.rb spec/lib/gitlab/ci/config/external/mapper/filter_spec.rb spec/lib/banzai/filter/timeout_text_pipeline_filter_spec.rb spec/services/users/banned_user_base_service_spec.rb spec/lib/gitlab/usage/metrics/key_path_processor_spec.rb spec/initializers/database_config_spec.rb spec/serializers/evidences/release_entity_spec.rb spec/models/pages/virtual_domain_spec.rb spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies_spec.rb spec/rubocop/cop/rspec/web_mock_enable_spec.rb spec/helpers/access_tokens_helper_spec.rb spec/lib/gitlab/safe_request_purger_spec.rb spec/policies/packages/package_policy_spec.rb spec/services/work_items/build_service_spec.rb spec/helpers/organizations/organization_helper_spec.rb spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb spec/graphql/types/availability_enum_spec.rb spec/graphql/types/packages/package_base_type_spec.rb spec/lib/slack/manifest_spec.rb spec/graphql/types/ci_configuration/sast/ui_component_size_enum_spec.rb spec/models/concerns/integrations/has_web_hook_spec.rb spec/services/merge_requests/mergeability/check_open_status_service_spec.rb spec/services/packages/debian/extract_deb_metadata_service_spec.rb spec/graphql/types/packages/cleanup/keep_duplicated_package_files_enum_spec.rb spec/services/keys/destroy_service_spec.rb spec/serializers/admin/reported_content_entity_spec.rb spec/graphql/types/clusters/agents/authorizations/user_access_type_spec.rb spec/lib/gitlab/checks/timed_logger_spec.rb spec/lib/gitlab/graphql/tracers/logger_tracer_spec.rb spec/lib/gitlab/ci/config/interpolation/functions/base_spec.rb spec/graphql/types/blame/blame_type_spec.rb spec/lib/gitlab/string_range_marker_spec.rb spec/graphql/types/ci/pipeline_message_type_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_instance_type_active_metric_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/schema_inconsistencies_metric_spec.rb spec/policies/instance_metadata_policy_spec.rb spec/lib/gitlab/database/migrations/observers/query_log_spec.rb spec/services/events/render_service_spec.rb spec/graphql/types/project_member_relation_enum_spec.rb spec/views/layouts/_published_experiments.html.haml_spec.rb spec/graphql/types/branch_type_spec.rb spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb spec/graphql/types/work_items/widget_type_enum_spec.rb spec/graphql/types/merge_requests/mergeability_check_status_enum_spec.rb spec/lib/gitlab/markdown_cache/field_data_spec.rb spec/graphql/types/ci/config/need_type_spec.rb spec/lib/gitlab/import_export/import_test_coverage_spec.rb spec/workers/environments/auto_stop_cron_worker_spec.rb spec/helpers/enable_search_settings_helper_spec.rb spec/uploaders/uploader_helper_spec.rb spec/graphql/types/permission_types/work_item_spec.rb spec/workers/system_hook_push_worker_spec.rb spec/workers/trending_projects_worker_spec.rb spec/lib/gitlab/sidekiq_versioning_spec.rb spec/tooling/danger/rubocop_inline_disable_suggestion_spec.rbKnapsack report generator started!118/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!119/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!120/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!121/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!122/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!123/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!124/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!125/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!126/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!127/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:19: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!128/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!129/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!130/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!131/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!132/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!133/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!134/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!135/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!136/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!137/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!138/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!139/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!140/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!141/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!142/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!143/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!144/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!145/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!146/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!147/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!148/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!149/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!150/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!151/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!152/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:15: 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/workspace_creator.rb:24: 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/workspace_creator.rb:25: 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/workspace_creator.rb:28: 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/workspace_variables_creator.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/reconcile/main.rb:43: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!158/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/authorizer.rb:12: 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/update/updater.rb:13: 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/reconcile/input/agent_infos_observer.rb:15: 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/reconcile/input/params_extractor.rb:14: 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/reconcile/input/params_extractor.rb:16: 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/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!164/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!165/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!166/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!167/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!168/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!169/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!170/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!171Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}172[TEST PROF INFO] Time spent in factories: 00:08.636 (48.3% of total time)173[TEST PROF INFO] Time spent in factories: 00:08.636 (48.2% of total time)174Test environment set up in 0.499114942 seconds175Glfm::UpdateExampleSnapshots#process176 # order random177 with full processing of static and WYSIWYG HTML178 manually-curated input specification config files179 can be empty180 writing html.yml and prosemirror_json.yml181 writes the correct content182 error handling when manually-curated input specification config files contain invalid example names:183 for glfm_example_status.yml184 raises error185 for glfm_example_metadata.yml186 raises error187 for glfm_example_normalizations.yml188 raises error189 glfm_example_status.yml190 when skip_update_example_snapshots entry is truthy191 still writes the example to examples_index.yml192 still writes the example to markdown.yml193 when any other skip_update_example_snapshot_* is also truthy194 raises an error195 writing examples_index.yml196 writes the correct content197 writing markdown.yml198 writes the correct content199Packages::Package200 is expected to be a kind of Packages::Downloadable201 behaves like having unique enum values202 has unique values in "package_type"203 has unique values in "status"204 relationships205 is expected to belong to project required: false206 is expected to belong to creator required: false207 is expected to have many package_files dependent => destroy208 is expected to have many dependency_links inverse_of => package209 is expected to have many tags inverse_of => package210 is expected to have many build_infos inverse_of => package211 is expected to have many installable_nuget_package_files inverse_of => package212 is expected to have one conan_metadatum inverse_of => package213 is expected to have one maven_metadatum inverse_of => package214 is expected to have one debian_publication class_name => Packages::Debian::Publication inverse_of => package215 is expected to have one debian_distribution class_name => Packages::Debian::ProjectDistribution through debian_publication source => distribution inverse_of => packages216 is expected to have one nuget_metadatum inverse_of => package217 is expected to have one rubygems_metadatum inverse_of => package218 is expected to have one npm_metadatum inverse_of => package219 is expected to have one rpm_metadatum inverse_of => package220 is expected to have many nuget_symbols inverse_of => package221 .with_debian_codename222 is expected to contain exactly #<Packages::Package id: 1, project_id: 1, created_at: "2023-10-20 08:33:09.219956392 +0000", updated_...ge_type: "debian", creator_id: 127, status: "default", last_downloaded_at: nil, status_message: nil>223 .with_debian_codename_or_suite224 with a codename225 is expected to contain exactly #<Packages::Package id: 2, project_id: 5, created_at: "2023-10-20 08:33:10.435774453 +0000", updated_...ge_type: "debian", creator_id: 131, status: "default", last_downloaded_at: nil, status_message: nil>226 with a suite227 is expected to contain exactly #<Packages::Package id: 3, project_id: 6, created_at: "2023-10-20 08:33:10.815260708 +0000", updated_...ge_type: "debian", creator_id: 132, status: "default", last_downloaded_at: nil, status_message: nil>228 .with_composer_target229 selects packages with the specified sha230 .sort_by_attribute231 behaves like package sorting by attribute232 sorting by name233 ascending order234 is expected to eq [#<Packages::Package id: 7, project_id: 10, created_at: "2023-10-20 08:33:12.662925322 +0000", update...ge_type: "maven", creator_id: 136, status: "default", last_downloaded_at: nil, status_message: nil>]235 descending order236 is expected to eq [#<Packages::Package id: 14, project_id: 10, created_at: "2023-10-19 08:33:13.000000000 +0000", updat...kage_type: "npm", creator_id: 136, status: "default", last_downloaded_at: nil, status_message: nil>]237 behaves like package sorting by attribute238 sorting by created_at239 ascending order240 is expected to eq [#<Packages::Package id: 18, project_id: 10, created_at: "2023-10-19 08:33:13.000000000 +0000", updat...ge_type: "nuget", creator_id: 136, status: "default", last_downloaded_at: nil, status_message: nil>]241 descending order242 is expected to eq [#<Packages::Package id: 20, project_id: 10, created_at: "2023-10-20 08:33:14.435676530 +0000", updat...ge_type: "maven", creator_id: 136, status: "default", last_downloaded_at: nil, status_message: nil>]243 behaves like package sorting by attribute244 sorting by version245 ascending order246 is expected to eq [#<Packages::Package id: 26, project_id: 10, created_at: "2023-10-19 08:33:14.000000000 +0000", updat...kage_type: "npm", creator_id: 136, status: "default", last_downloaded_at: nil, status_message: nil>]247 descending order248 is expected to eq [#<Packages::Package id: 27, project_id: 10, created_at: "2023-10-20 08:33:15.458370879 +0000", updat...ge_type: "maven", creator_id: 136, status: "default", last_downloaded_at: nil, status_message: nil>]249 behaves like package sorting by attribute250 sorting by type251 ascending order252 is expected to eq [#<Packages::Package id: 34, project_id: 10, created_at: "2023-10-19 08:33:16.000000000 +0000", updat...ge_type: "nuget", creator_id: 136, status: "default", last_downloaded_at: nil, status_message: nil>]253 descending order254 is expected to eq [#<Packages::Package id: 36, project_id: 10, created_at: "2023-10-20 08:33:16.593526692 +0000", updat...ge_type: "maven", creator_id: 136, status: "default", last_downloaded_at: nil, status_message: nil>]255 behaves like package sorting by attribute256 sorting by project_path257 ascending order258 is expected to eq [#<Packages::Package id: 39, project_id: 10, created_at: "2023-10-20 08:33:17.187028658 +0000", updat...kage_type: "npm", creator_id: 146, status: "default", last_downloaded_at: nil, status_message: nil>]259 descending order260 is expected to eq [#<Packages::Package id: 48, project_id: 22, created_at: "2023-10-20 08:33:18.917943548 +0000", updat...kage_type: "npm", creator_id: 136, status: "default", last_downloaded_at: nil, status_message: nil>]261 .for_projects262 returns package1 and package2263 validations264 is expected to validate that :project cannot be empty/falsy265 is expected to validate that :name is case-sensitively unique within the scope of :project_id, :version, and :package_type266 #name267 is expected to allow :name to be ‹"my/domain/com/my-app"›268 is expected to allow :name to be ‹"my.app-11.07.2018"›269 is expected not to allow :name to be ‹"my(dom$$$ain)com.my-app"›270 conan package271 is expected to allow :name to be ‹"foo+bar"›272 is expected to allow :name to be ‹"foo_bar"›273 is expected to allow :name to be ‹"foo.bar"›274 is expected not to allow :name to be ‹"f_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_bf_b"›275 is expected not to allow :name to be ‹"+foobar"›276 is expected not to allow :name to be ‹".foobar"›277 is expected not to allow :name to be ‹"%foo%bar"›278 debian package279 is expected to allow :name to be ‹"0ad"›280 is expected to allow :name to be ‹"g++"›281 is expected not to allow :name to be ‹"a_b"›282 debian incoming283 is expected to allow :name to be ‹"incoming"›284 is expected not to allow :name to be ‹"0ad"›285 is expected not to allow :name to be ‹"g++"›286 is expected not to allow :name to be ‹"a_b"›287 generic package288 is expected to allow :name to be ‹"123"›289 is expected to allow :name to be ‹"foo"›290 is expected to allow :name to be ‹"foo.bar.baz-2.0-20190901.47283-1"›291 is expected not to allow :name to be ‹"../../foo"›292 is expected not to allow :name to be ‹"..\\..\\foo"›293 is expected not to allow :name to be ‹"%2f%2e%2e%2f%2essh%2fauthorized_keys"›294 is expected not to allow :name to be ‹"$foo/bar"›295 is expected not to allow :name to be ‹"my file name"›296 is expected not to allow :name to be ‹"!!().for(:name)().for(:name)"›297 helm package298 is expected to allow :name to be ‹"prometheus"›299 is expected to allow :name to be ‹"rook-ceph"›300 is expected not to allow :name to be ‹"a+b"›301 is expected not to allow :name to be ‹"Hé"›302 nuget package303 is expected to allow :name to be ‹"My.Package"›304 is expected to allow :name to be ‹"My.Package.Mvc"›305 is expected to allow :name to be ‹"MyPackage"›306 is expected to allow :name to be ‹"My.23.Package"›307 is expected to allow :name to be ‹"My23Package"›308 is expected to allow :name to be ‹"runtime.my-test64.runtime.package.Mvc"›309 is expected to allow :name to be ‹"my_package"›310 is expected not to allow :name to be ‹"My/package"›311 is expected not to allow :name to be ‹"../../../my_package"›312 is expected not to allow :name to be ‹"%2e%2e%2fmy_package"›313 npm package314 is expected to allow :name to be ‹"@group-1/package"›315 is expected to allow :name to be ‹"@any-scope/package"›316 is expected to allow :name to be ‹"unscoped-package"›317 is expected not to allow :name to be ‹"@inv@lid-scope/package"›318 is expected not to allow :name to be ‹"@scope/../../package"›319 is expected not to allow :name to be ‹"@scope%2e%2e%fpackage"›320 is expected not to allow :name to be ‹"@scope/sub/package"›321 terraform module package322 is expected to allow :name to be ‹"my-module/my-system"›323 is expected to allow :name to be ‹"my/module"›324 is expected not to allow :name to be ‹"my-module"›325 is expected not to allow :name to be ‹"My-Module"›326 is expected not to allow :name to be ‹"my_module"›327 is expected not to allow :name to be ‹"my.module"›328 is expected not to allow :name to be ‹"../../../my-module"›329 is expected not to allow :name to be ‹"%2e%2e%2fmy-module"›330 #version331 conan package332 is expected to allow :version to be ‹"1.2"›333 is expected to allow :version to be ‹"1.2.3-beta"›334 is expected to allow :version to be ‹"1.2.3-pre1+build2"›335 is expected not to allow :version to be ‹"1"›336 is expected not to allow :version to be ‹"1.21.21.21.21.21.21.21.21.21.21.21.21.21.21.21.21.2"›337 is expected not to allow :version to be ‹"1./2.3"›338 is expected not to allow :version to be ‹".1.2.3"›339 is expected not to allow :version to be ‹"+1.2.3"›340 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›341 composer package342 is expected to allow :version to be ‹"dev-master"›343 is expected to allow :version to be ‹"2.x-dev"›344 behaves like validating version to be SemVer compliant for345 for composer_package346 is expected to allow :version to be ‹"1.2.3"›347 is expected to allow :version to be ‹"1.2.3-beta"›348 is expected to allow :version to be ‹"1.2.3-alpha.3"›349 is expected not to allow :version to be ‹"1"›350 is expected not to allow :version to be ‹"1.2"›351 is expected not to allow :version to be ‹"1./2.3"›352 is expected not to allow :version to be ‹"../../../../../1.2.3"›353 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›354 debian package355 is expected to allow :version to be ‹"2:4.9.5+dfsg-5+deb10u1"›356 is expected not to allow :version to be ‹"1_0"›357 debian incoming358 is expected to allow :version to be ‹nil›359 is expected not to allow :version to be ‹"2:4.9.5+dfsg-5+deb10u1"›360 is expected not to allow :version to be ‹"1_0"›361 maven package362 is expected to allow :version to be ‹"0"›363 is expected to allow :version to be ‹"1"›364 is expected to allow :version to be ‹"10"›365 is expected to allow :version to be ‹"1.0"›366 is expected to allow :version to be ‹"1.3.350.v20200505-1744"›367 is expected to allow :version to be ‹"1.1-beta-2"›368 is expected to allow :version to be ‹"1.2-SNAPSHOT"›369 is expected to allow :version to be ‹"12.1.2-2-1"›370 is expected to allow :version to be ‹"1.2.3-beta"›371 is expected to allow :version to be ‹"10.2.3-beta"›372 is expected to allow :version to be ‹"2.0.0.v200706041905-7C78EK9E_EkMNfNOd2d8qq"›373 is expected to allow :version to be ‹"1.2-alpha-1-20050205.060708-1"›374 is expected to allow :version to be ‹"703220b4e2cea9592caeb9f3013f6b1e5335c293"›375 is expected to allow :version to be ‹"RELEASE"›376 is expected not to allow :version to be ‹"..1.2.3"›377 is expected not to allow :version to be ‹"1.2.3..beta"›378 is expected not to allow :version to be ‹" 1.2.3"›379 is expected not to allow :version to be ‹"1.2.3 \r\t"›380 is expected not to allow :version to be ‹"\r\t 1.2.3"›381 is expected not to allow :version to be ‹"1.2.3-4/../../"›382 is expected not to allow :version to be ‹"1.2.3-4%2e%2e%"›383 is expected not to allow :version to be ‹"../../../../../1.2.3"›384 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›385 pypi package386 is expected to allow :version to be ‹"0.1"›387 is expected to allow :version to be ‹"2.0"›388 is expected to allow :version to be ‹"1.2.0"›389 is expected to allow :version to be ‹"0100!0.0"›390 is expected to allow :version to be ‹"00!1.2"›391 is expected to allow :version to be ‹"1.0a"›392 is expected to allow :version to be ‹"1.0-a"›393 is expected to allow :version to be ‹"1.0.a1"›394 is expected to allow :version to be ‹"1.0a1"›395 is expected to allow :version to be ‹"1.0-a1"›396 is expected to allow :version to be ‹"1.0alpha1"›397 is expected to allow :version to be ‹"1.0b1"›398 is expected to allow :version to be ‹"1.0beta1"›399 is expected to allow :version to be ‹"1.0rc1"›400 is expected to allow :version to be ‹"1.0pre1"›401 is expected to allow :version to be ‹"1.0preview1"›402 is expected to allow :version to be ‹"1.0.dev1"›403 is expected to allow :version to be ‹"1.0.DEV1"›404 is expected to allow :version to be ‹"1.0.post1"›405 is expected to allow :version to be ‹"1.0.rev1"›406 is expected to allow :version to be ‹"1.0.r1"›407 is expected to allow :version to be ‹"1.0c2"›408 is expected to allow :version to be ‹"2012.15"›409 is expected to allow :version to be ‹"1.0+5"›410 is expected to allow :version to be ‹"1.0+abc.5"›411 is expected to allow :version to be ‹"1!1.1"›412 is expected to allow :version to be ‹"1.0c3"›413 is expected to allow :version to be ‹"1.0rc2"›414 is expected to allow :version to be ‹"1.0c1"›415 is expected to allow :version to be ‹"1.0b2-346"›416 is expected to allow :version to be ‹"1.0b2.post345"›417 is expected to allow :version to be ‹"1.0b2.post345.dev456"›418 is expected to allow :version to be ‹"1.2.rev33+123456"›419 is expected to allow :version to be ‹"1.1.dev1"›420 is expected to allow :version to be ‹"1.0b1.dev456"›421 is expected to allow :version to be ‹"1.0a12.dev456"›422 is expected to allow :version to be ‹"1.0b2"›423 is expected to allow :version to be ‹"1.0.dev456"›424 is expected to allow :version to be ‹"1.0c1.dev456"›425 is expected to allow :version to be ‹"1.0.post456"›426 is expected to allow :version to be ‹"1.0.post456.dev34"›427 is expected to allow :version to be ‹"1.2+123abc"›428 is expected to allow :version to be ‹"1.2+abc"›429 is expected to allow :version to be ‹"1.2+abc123"›430 is expected to allow :version to be ‹"1.2+abc123def"›431 is expected to allow :version to be ‹"1.2+1234.abc"›432 is expected to allow :version to be ‹"1.2+123456"›433 is expected to allow :version to be ‹"1.2.r32+123456"›434 is expected to allow :version to be ‹"1!1.2.rev33+123456"›435 is expected to allow :version to be ‹"1.0a12"›436 is expected to allow :version to be ‹"1.2.3-45+abcdefgh"›437 is expected to allow :version to be ‹"v1.2.3"›438 is expected not to allow :version to be ‹"1.2.3-45-abcdefgh"›439 is expected not to allow :version to be ‹"..1.2.3"›440 is expected not to allow :version to be ‹" 1.2.3"›441 is expected not to allow :version to be ‹"1.2.3 \r\t"›442 is expected not to allow :version to be ‹"\r\t 1.2.3"›443 is expected not to allow :version to be ‹"1./2.3"›444 is expected not to allow :version to be ‹"1.2.3-4/../../"›445 is expected not to allow :version to be ‹"1.2.3-4%2e%2e%"›446 is expected not to allow :version to be ‹"../../../../../1.2.3"›447 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›448 generic package449 is expected to validate that :version cannot be empty/falsy450 is expected to allow :version to be ‹"1.2.3"›451 is expected to allow :version to be ‹"1.3.350"›452 is expected to allow :version to be ‹"1.3.350-20201230123456"›453 is expected to allow :version to be ‹"1.2.3-rc1"›454 is expected to allow :version to be ‹"1.2.3g"›455 is expected to allow :version to be ‹"1.2"›456 is expected to allow :version to be ‹"1.2.bananas"›457 is expected to allow :version to be ‹"v1.2.4-build"›458 is expected to allow :version to be ‹"d50d836eb3de6177ce6c7a5482f27f9c2c84b672"›459 is expected to allow :version to be ‹"this_is_a_string_only"›460 is expected not to allow :version to be ‹"..1.2.3"›461 is expected not to allow :version to be ‹" 1.2.3"›462 is expected not to allow :version to be ‹"1.2.3 \r\t"›463 is expected not to allow :version to be ‹"\r\t 1.2.3"›464 is expected not to allow :version to be ‹"1.2.3-4/../../"›465 is expected not to allow :version to be ‹"1.2.3-4%2e%2e%"›466 is expected not to allow :version to be ‹"../../../../../1.2.3"›467 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›468 is expected not to allow :version to be ‹""›469 is expected not to allow :version to be ‹nil›470 helm package471 is expected not to allow :version to be ‹nil›472 is expected not to allow :version to be ‹""›473 is expected to allow :version to be ‹"v1.2.3"›474 is expected to allow :version to be ‹"1.2.3"›475 is expected not to allow :version to be ‹"v1.2"›476 behaves like validating version to be SemVer compliant for477 for npm_package478 is expected to allow :version to be ‹"1.2.3"›479 is expected to allow :version to be ‹"1.2.3-beta"›480 is expected to allow :version to be ‹"1.2.3-alpha.3"›481 is expected not to allow :version to be ‹"1"›482 is expected not to allow :version to be ‹"1.2"›483 is expected not to allow :version to be ‹"1./2.3"›484 is expected not to allow :version to be ‹"../../../../../1.2.3"›485 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›486 behaves like validating version to be SemVer compliant for487 for terraform_module_package488 is expected to allow :version to be ‹"1.2.3"›489 is expected to allow :version to be ‹"1.2.3-beta"›490 is expected to allow :version to be ‹"1.2.3-alpha.3"›491 is expected not to allow :version to be ‹"1"›492 is expected not to allow :version to be ‹"1.2"›493 is expected not to allow :version to be ‹"1./2.3"›494 is expected not to allow :version to be ‹"../../../../../1.2.3"›495 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›496 nuget package497 is expected to allow :version to be ‹"1.2"›498 is expected to allow :version to be ‹"1.2.3"›499 is expected to allow :version to be ‹"1.2.3.4"›500 is expected to allow :version to be ‹"1.2.3-beta"›501 is expected to allow :version to be ‹"1.2.3-alpha.3"›502 is expected not to allow :version to be ‹"1"›503 is expected not to allow :version to be ‹"1./2.3"›504 is expected not to allow :version to be ‹"../../../../../1.2.3"›505 is expected not to allow :version to be ‹"%2e%2e%2f1.2.3"›506 #npm_package_already_taken507 maven package508 will allow a package of the same name509 npm package510 following the naming convention511 with the second package in the project of the first package512 with no duplicated name513 behaves like validating the first package514 validates the first package515 behaves like validating the second package516 validates the second package517 with duplicated name518 behaves like validating the first package519 validates the first package520 behaves like validating the second package521 validates the second package522 with duplicate name and duplicated version523 behaves like validating the first package524 validates the first package525 behaves like not validating the second package526 does not validate the second package527 behaves like validating both if the first package is pending destruction528 behaves like validating the first package529 validates the first package530 behaves like validating the second package531 validates the second package532 with the second package in a different project than the first package533 with no duplicated name534 behaves like validating the first package535 validates the first package536 behaves like validating the second package537 validates the second package538 with duplicated name539 behaves like validating the first package540 validates the first package541 behaves like validating the second package542 validates the second package543 with duplicate name and duplicated version544 behaves like validating the first package545 validates the first package546 behaves like not validating the second package547 does not validate the second package548 behaves like validating both if the first package is pending destruction549 behaves like validating the first package550 validates the first package551 behaves like validating the second package552 validates the second package553 not following the naming convention554 with the second package in the project of the first package555 with no duplicated name556 behaves like validating the first package557 validates the first package558 behaves like validating the second package559 validates the second package560 with duplicated name561 behaves like validating the first package562 validates the first package563 behaves like validating the second package564 validates the second package565 with duplicate name and duplicated version566 behaves like validating the first package567 validates the first package568 behaves like not validating the second package569 does not validate the second package570 behaves like validating both if the first package is pending destruction571 behaves like validating the first package572 validates the first package573 behaves like validating the second package574 validates the second package575 with the second package in a different project than the first package576 with no duplicated name577 behaves like validating the first package578 validates the first package579 behaves like validating the second package580 validates the second package581 with duplicated name582 behaves like validating the first package583 validates the first package584 behaves like validating the second package585 validates the second package586 with duplicate name and duplicated version587 behaves like validating the first package588 validates the first package589 behaves like validating the second package590 validates the second package591 behaves like validating both if the first package is pending destruction592 behaves like validating the first package593 validates the first package594 behaves like validating the second package595 validates the second package596 recipe uniqueness for conan packages597 will allow a conan package with same project, name, version and package_type598 will not allow a conan package with same recipe (name, version, metadatum.package_channel, metadatum.package_username, and package_type)599 with pending destruction package600 will allow a conan package with same recipe (name, version, metadatum.package_channel, metadatum.package_username, and package_type)601 #valid_composer_global_name602 with different name and different project603 is expected to be valid604 with same name and different project605 will not validate second package606 with pending destruction package607 is expected to be valid608 uniqueness for package type debian609 will not allow a Debian package with same project, name, version and distribution610 will not allow a Debian package with same project, name, version, but no distribution611 with pending_destruction package612 will allow a Debian package with same project, name, version and distribution613 project id, name, version and package type uniqueness for package type maven614 will not allow a maven package with same project, name, version and package_type615 with pending_destruction package616 will allow a maven package with same project, name, version and package_type617 project id, name, version and package type uniqueness for package type npm618 will not allow a npm package with same project, name, version and package_type619 with pending_destruction package620 will allow a npm package with same project, name, version and package_type621 project id, name, version and package type uniqueness for package type nuget622 will not allow a nuget package with same project, name, version and package_type623 with pending_destruction package624 will allow a nuget package with same project, name, version and package_type625 project id, name, version and package type uniqueness for package type pypi626 will not allow a pypi package with same project, name, version and package_type627 with pending_destruction package628 will allow a pypi package with same project, name, version and package_type629 project id, name, version and package type uniqueness for package type composer630 will not allow a composer package with same project, name, version and package_type631 with pending_destruction package632 will allow a composer package with same project, name, version and package_type633 project id, name, version and package type uniqueness for package type generic634 will not allow a generic package with same project, name, version and package_type635 with pending_destruction package636 will allow a generic package with same project, name, version and package_type637 project id, name, version and package type uniqueness for package type golang638 will not allow a golang package with same project, name, version and package_type639 with pending_destruction package640 will allow a golang package with same project, name, version and package_type641 project id, name, version and package type uniqueness for package type debian642 will not allow a debian package with same project, name, version and package_type643 with pending_destruction package644 will allow a debian package with same project, name, version and package_type645 project id, name, version and package type uniqueness for package type rubygems646 will not allow a rubygems package with same project, name, version and package_type647 with pending_destruction package648 will allow a rubygems package with same project, name, version and package_type649 project id, name, version and package type uniqueness for package type helm650 will not allow a helm package with same project, name, version and package_type651 with pending_destruction package652 will allow a helm package with same project, name, version and package_type653 project id, name, version and package type uniqueness for package type terraform_module654 will not allow a terraform_module package with same project, name, version and package_type655 with pending_destruction package656 will allow a terraform_module package with same project, name, version and package_type657 project id, name, version and package type uniqueness for package type rpm658 will not allow a rpm package with same project, name, version and package_type659 with pending_destruction package660 will allow a rpm package with same project, name, version and package_type661 project id, name, version and package type uniqueness for package type ml_model662 will not allow a ml_model package with same project, name, version and package_type663 with pending_destruction package664 will allow a ml_model package with same project, name, version and package_type665 #destroy666 updates the project statistics667 .by_name_and_file_name668 finds a package with correct arguiments669 will raise error if not found670 .debian_incoming_package!671 when incoming exists672 is expected to eq #<Packages::Package id: 185, project_id: 145, created_at: "2023-10-20 08:34:29.380941542 +0000", upda...ge_type: "debian", creator_id: 271, status: "default", last_downloaded_at: nil, status_message: nil>673 when incoming not found674 is expected to raise ActiveRecord::RecordNotFound675 .with_package_type676 is expected to eq [#<Packages::Package id: 188, project_id: 148, created_at: "2023-10-20 08:34:31.155007782 +0000", upd...erraform_module", creator_id: 274, status: "default", last_downloaded_at: nil, status_message: nil>]677 .without_package_type678 is expected to eq [#<Packages::Package id: 190, project_id: 150, created_at: "2023-10-20 08:34:32.130280252 +0000", upd...kage_type: "npm", creator_id: 276, status: "default", last_downloaded_at: nil, status_message: nil>]679 version scopes680 .has_version681 includes only packages with version attribute682 .with_version683 includes only packages with specified version684 .without_version_like685 includes packages without the version pattern686 conan scopes687 .with_conan_channel688 includes only packages with specified version689 .with_conan_username690 includes only packages with specified version691 .preload_conan_metadatum692 loads conan metadatum693 .with_npm_scope694 is expected to contain exactly #<Packages::Package id: 208, project_id: 168, created_at: "2023-10-20 08:34:40.119100009 +0000", upda...ckage_type: "npm", creator_id: 294, status: "default", last_downloaded_at: nil, status_message: nil>695 .without_nuget_temporary_name696 does not include nuget temporary packages697 .limit_recent698 is expected to contain exactly #<Packages::Package id: 215, project_id: 175, created_at: "2023-10-20 08:34:42.862201868 +0000", upda...age_type: "nuget", creator_id: 301, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 214, project_id: 174, created_at: "2023-10-20 08:34:42.502912723 +0000", upda...age_type: "nuget", creator_id: 300, status: "default", last_downloaded_at: nil, status_message: nil>699 with several packages700 .pluck_names701 is expected to contain exactly "FooBar", "foobar", "@namespace385/package-32", and "@namespace386/package-33"702 .pluck_versions703 is expected to contain exactly "1.0.27", "1.0.28", "1.0.58", and "1.0.59"704 .with_name_like705 with downcase name706 is expected to contain exactly #<Packages::Package id: 216, project_id: 176, created_at: "2023-10-20 08:34:43.138142897 +0000", upda...age_type: "nuget", creator_id: 302, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 217, project_id: 177, created_at: "2023-10-20 08:34:43.443241485 +0000", upda...age_type: "nuget", creator_id: 303, status: "default", last_downloaded_at: nil, status_message: nil>707 with prefix wildcard708 is expected to contain exactly #<Packages::Package id: 216, project_id: 176, created_at: "2023-10-20 08:34:43.138142897 +0000", upda...age_type: "nuget", creator_id: 302, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 217, project_id: 177, created_at: "2023-10-20 08:34:43.443241485 +0000", upda...age_type: "nuget", creator_id: 303, status: "default", last_downloaded_at: nil, status_message: nil>709 with suffix wildcard710 is expected to contain exactly #<Packages::Package id: 216, project_id: 176, created_at: "2023-10-20 08:34:43.138142897 +0000", upda...age_type: "nuget", creator_id: 302, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 217, project_id: 177, created_at: "2023-10-20 08:34:43.443241485 +0000", upda...age_type: "nuget", creator_id: 303, status: "default", last_downloaded_at: nil, status_message: nil>711 with surrounding wildcards712 is expected to contain exactly #<Packages::Package id: 216, project_id: 176, created_at: "2023-10-20 08:34:43.138142897 +0000", upda...age_type: "nuget", creator_id: 302, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 217, project_id: 177, created_at: "2023-10-20 08:34:43.443241485 +0000", upda...age_type: "nuget", creator_id: 303, status: "default", last_downloaded_at: nil, status_message: nil>713 .search_by_name714 is expected to contain exactly #<Packages::Package id: 216, project_id: 176, created_at: "2023-10-20 08:34:43.138142897 +0000", upda...age_type: "nuget", creator_id: 302, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 217, project_id: 177, created_at: "2023-10-20 08:34:43.443241485 +0000", upda...age_type: "nuget", creator_id: 303, status: "default", last_downloaded_at: nil, status_message: nil>715 .with_normalized_pypi_name716 is expected to contain exactly #<Packages::Package id: 220, project_id: 180, created_at: "2023-10-20 08:34:44.700834744 +0000", upda...kage_type: "pypi", creator_id: 306, status: "default", last_downloaded_at: nil, status_message: nil>717 .with_case_insensitive_version718 is expected to contain exactly #<Packages::Package id: 221, project_id: 181, created_at: "2023-10-20 08:34:45.055498949 +0000", upda...age_type: "nuget", creator_id: 307, status: "default", last_downloaded_at: nil, status_message: nil>719 .with_case_insensitive_name720 is expected to contain exactly #<Packages::Package id: 222, project_id: 182, created_at: "2023-10-20 08:34:45.391574035 +0000", upda...age_type: "nuget", creator_id: 308, status: "default", last_downloaded_at: nil, status_message: nil>721 .with_nuget_version_or_normalized_version722 version: "1.0.7", with_normalized: true, expected: [nuget_package]723 is expected to contain exactly #<Packages::Package id: 223, project_id: 183, created_at: "2023-10-20 08:34:46.841066697 +0000", upda...age_type: "nuget", creator_id: 309, status: "default", last_downloaded_at: nil, status_message: nil>724 version: "1.0.7", with_normalized: false, expected: []725 is expected to contain exactly726 version: "1.0.7+r3456", with_normalized: true, expected: [nuget_package]727 is expected to contain exactly #<Packages::Package id: 223, project_id: 183, created_at: "2023-10-20 08:34:46.841066697 +0000", upda...age_type: "nuget", creator_id: 309, status: "default", last_downloaded_at: nil, status_message: nil>728 version: "1.0.7+r3456", with_normalized: false, expected: [nuget_package]729 is expected to contain exactly #<Packages::Package id: 223, project_id: 183, created_at: "2023-10-20 08:34:46.841066697 +0000", upda...age_type: "nuget", creator_id: 309, status: "default", last_downloaded_at: nil, status_message: nil>730 status scopes731 .displayable732 does not include non-displayable packages733 .installable734 does not include non-installable packages735 includes installable packages736 .with_status737 returns packages with specified status738 .select_distinct_name739 returns only distinct names740 sorting741 orders packages by their projects name ascending742 orders packages by their projects name descending743 behaves like order_project_path scope744 orders packages by their projects path asc, then package id asc745 behaves like order_project_path_desc scope746 orders packages by their projects path desc, then package id desc747 .order_by_package_file748 orders packages their associated package_file's created_at date749 .keyset_pagination_order750 is expected to raise NoMethodError751 with valid params752 ascending direction753 is expected to eq "\"projects\".\"name\" ASC NULLS LAST, \"packages_packages\".\"id\" ASC"754 descending direction755 is expected to eq "\"projects\".\"name\" DESC NULLS FIRST, \"packages_packages\".\"id\" DESC"756 #versions757 returns other package versions of the same package name belonging to the project758 does not return different packages759 #pipeline760 package without pipeline761 returns nil if there is no pipeline762 package with pipeline763 returns the pipeline764 #pipelines765 package without pipeline766 is expected to be empty767 package with pipeline768 is expected to contain exactly #<Ci::Pipeline id: 2, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil...ha: nil, external_pull_request_id: nil, ci_ref_id: 2, locked: "artifacts_locked", partition_id: 100> and #<Ci::Pipeline id: 3, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: nil...ha: nil, external_pull_request_id: nil, ci_ref_id: 3, locked: "artifacts_locked", partition_id: 100>769 #tag_names770 is expected to eq []771 with tags772 is expected to contain exactly "tag1", "tag2", and "tag3"773 #debian_incoming?774 is expected to eq false775 with debian_incoming776 is expected to eq true777 with debian_package778 is expected to eq false779 #debian_package?780 is expected to eq false781 with debian_incoming782 is expected to eq false783 with debian_package784 is expected to eq true785 #infrastructure_package?786 is expected to eq false787 with generic package788 is expected to eq false789 with terraform module package790 is expected to eq true791 plan_limits792 File size limits for maven793 plan_limits includes column maven_max_file_size794 File size limits for npm795 plan_limits includes column npm_max_file_size796 File size limits for conan797 plan_limits includes column conan_max_file_size798 File size limits for nuget799 plan_limits includes column nuget_max_file_size800 File size limits for pypi801 plan_limits includes column pypi_max_file_size802 File size limits for generic803 plan_limits includes column generic_packages_max_file_size804 File size limits for golang805 plan_limits includes column golang_max_file_size806 File size limits for debian807 plan_limits includes column debian_max_file_size808 File size limits for rubygems809 plan_limits includes column rubygems_max_file_size810 File size limits for helm811 plan_limits includes column helm_max_file_size812 File size limits for terraform_module813 plan_limits includes column terraform_module_max_file_size814 File size limits for rpm815 plan_limits includes column rpm_max_file_size816 File size limits for ml_model817 plan_limits includes column ml_model_max_file_size818 #last_build_info819 without build_infos820 returns nil821 with build_infos822 returns the last build info823 #package_settings824 returns the namespace package_settings825 #sync_maven_metadata826 enqueues a sync worker job827 with no user828 behaves like not enqueuing a sync worker job829 does not enqueue a sync worker job830 with a versionless maven package831 behaves like not enqueuing a sync worker job832 does not enqueue a sync worker job833 with a non maven package834 behaves like not enqueuing a sync worker job835 does not enqueue a sync worker job836 #mark_package_files_for_destruction837 enqueues a sync worker job838 for a package non pending destruction839 does not enqueues a sync worker job840 #create_build_infos!841 with a valid build842 creates a build info843 with an already existing build info844 does not create a build info845 with a nil build846 does not create a build info847 with a build without a pipeline848 does not create a build info849 with identical pending destruction package850 for package format maven851 is expected to be valid852 for package format npm853 is expected to be valid854 for package format conan855 is expected to be valid856 for package format nuget857 is expected to be valid858 for package format pypi859 is expected to be valid860 for package format composer861 is expected to be valid862 for package format generic863 is expected to be valid864 for package format golang865 is expected to be valid866 for package format debian867 is expected to be valid868 for package format rubygems869 is expected to be valid870 for package format helm871 is expected to be valid872 for package format terraform_module873 is expected to be valid874 for package format rpm875 is expected to be valid876 for package format ml_model877 is expected to be valid878 #normalized_pypi_name879 package_name: "ASDF", normalized_name: "asdf"880 is expected to eq "asdf"881 package_name: "a.B_c-d", normalized_name: "a-b-c-d"882 is expected to eq "a-b-c-d"883 package_name: "a-------b....c___d", normalized_name: "a-b-c-d"884 is expected to eq "a-b-c-d"885 #normalized_nuget_version886 is expected to eq "1.0.0"887 #publish_creation_event888 when package is generic889 publishes an event890 when package is not generic891 does not create event892 inheritance893 for package format maven894 maps to Packages::Package895 for package format npm896 maps to Packages::Package897 for package format conan898 maps to Packages::Package899 for package format nuget900 maps to Packages::Package901 for package format pypi902 maps to Packages::Package903 for package format composer904 maps to Packages::Package905 for package format generic906 maps to Packages::Package907 for package format golang908 maps to Packages::Package909 for package format debian910 maps to Packages::Package911 for package format rubygems912 maps to Packages::Package913 for package format helm914 maps to Packages::Package915 for package format terraform_module916 maps to Packages::Package917 for package format rpm918 maps to Packages::Package919 for package format ml_model920 maps to the correct class921Todos::Destroy::EntityLeaveService922 #execute923 updating a Project924 when project is private925 when user is not a member of the project926 removes project todos for the provided user927 access permissions928 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos929 behaves like using different access permissions930 is expected not to change `Todo.count`931 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos932 behaves like using different access permissions933 is expected to contain exactly #<Todo id: 18, user_id: 403, project_id: 275, target_id: 11, target_type: "Issue", author_id: 406, ac...-20 08:35:34.157800751 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 15, user_id: 403, project_id: 284, target_id: 9, target_type: "Issue", author_id: 415, act...-20 08:35:32.938354830 +0000", commit_id: nil, group_id: 686, resolved_by_action: nil, note_id: nil>934 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos935 behaves like using different access permissions936 is expected not to change `Todo.count`937 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos938 behaves like using different access permissions939 is expected to contain exactly #<Todo id: 32, user_id: 403, project_id: 275, target_id: 19, target_type: "Issue", author_id: 406, ac...-20 08:35:39.520050113 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 29, user_id: 403, project_id: 292, target_id: 17, target_type: "Issue", author_id: 423, ac...-20 08:35:38.378090829 +0000", commit_id: nil, group_id: 686, resolved_by_action: nil, note_id: nil>940 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos941 behaves like using different access permissions942 is expected not to change `Todo.count`943 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos944 behaves like using different access permissions945 is expected to contain exactly #<Todo id: 46, user_id: 403, project_id: 275, target_id: 27, target_type: "Issue", author_id: 406, ac...-20 08:35:45.190143942 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 43, user_id: 403, project_id: 300, target_id: 25, target_type: "Issue", author_id: 431, ac...-20 08:35:43.864785876 +0000", commit_id: nil, group_id: 686, resolved_by_action: nil, note_id: nil>946 when project is private in an internal/public group947 when user is not a member of the project948 removes project todos for the provided user949 access permissions950 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos951 behaves like using different access permissions952 is expected not to change `Todo.count`953 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos954 behaves like using different access permissions955 is expected to contain exactly #<Todo id: 67, user_id: 403, project_id: 304, target_id: 39, target_type: "Issue", author_id: 436, ac...-20 08:35:54.917552646 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 64, user_id: 403, project_id: 313, target_id: 37, target_type: "Issue", author_id: 445, ac...-20 08:35:53.794062332 +0000", commit_id: nil, group_id: 746, resolved_by_action: nil, note_id: nil>956 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos957 behaves like using different access permissions958 is expected not to change `Todo.count`959 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos960 behaves like using different access permissions961 is expected to contain exactly #<Todo id: 81, user_id: 403, project_id: 304, target_id: 47, target_type: "Issue", author_id: 436, ac...-20 08:36:01.503633248 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 78, user_id: 403, project_id: 321, target_id: 45, target_type: "Issue", author_id: 453, ac...-20 08:36:00.347292195 +0000", commit_id: nil, group_id: 746, resolved_by_action: nil, note_id: nil>962 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos963 behaves like using different access permissions964 is expected not to change `Todo.count`965 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos966 behaves like using different access permissions967 is expected to contain exactly #<Todo id: 95, user_id: 403, project_id: 304, target_id: 55, target_type: "Issue", author_id: 436, ac...-20 08:36:06.677764165 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 92, user_id: 403, project_id: 329, target_id: 53, target_type: "Issue", author_id: 461, ac...-20 08:36:05.494189214 +0000", commit_id: nil, group_id: 746, resolved_by_action: nil, note_id: nil>968 when project is not private969 enqueues the PrivateFeaturesWorker970 confidential issues971 when a user is not an author of confidential issue972 behaves like removes confidential issues and internal notes todos973 is expected to change `Todo.count` from 7 to 5974 when a user is an author of confidential issue975 behaves like removes only internal notes todos976 is expected to change `Todo.count` from 7 to 6977 when a user is an assignee of confidential issue978 behaves like removes only internal notes todos979 is expected to change `Todo.count` from 7 to 6980 access permissions981 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos982 behaves like using different access permissions983 is expected not to change `Todo.count`984 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos985 behaves like using different access permissions986 is expected to change `Todo.count` from 7 to 5987 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos988 behaves like using different access permissions989 is expected not to change `Todo.count`990 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos991 behaves like using different access permissions992 is expected to change `Todo.count` from 7 to 5993 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos994 behaves like using different access permissions995 is expected not to change `Todo.count`996 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos997 behaves like using different access permissions998 is expected to change `Todo.count` from 7 to 5999 feature visibility check1000 when issues are visible only to project members1001 removes only users issue todos1002 updating a Group1003 when group is private1004 when a user leaves a group1005 removes group and subproject todos for the user1006 access permissions1007 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1008 behaves like using different access permissions1009 is expected not to change `Todo.count`1010 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1011 behaves like using different access permissions1012 is expected to contain exactly #<Todo id: 193, user_id: 403, project_id: 275, target_id: 111, target_type: "Issue", author_id: 406, ...-20 08:36:48.974540883 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 190, user_id: 403, project_id: 396, target_id: 109, target_type: "Issue", author_id: 539, ...-20 08:36:47.691459700 +0000", commit_id: nil, group_id: 686, resolved_by_action: nil, note_id: nil>1013 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1014 behaves like using different access permissions1015 is expected not to change `Todo.count`1016 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1017 behaves like using different access permissions1018 is expected to contain exactly #<Todo id: 207, user_id: 403, project_id: 275, target_id: 119, target_type: "Issue", author_id: 406, ...-20 08:36:54.557486815 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 204, user_id: 403, project_id: 404, target_id: 117, target_type: "Issue", author_id: 547, ...-20 08:36:53.368734705 +0000", commit_id: nil, group_id: 686, resolved_by_action: nil, note_id: nil>1019 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1020 behaves like using different access permissions1021 is expected not to change `Todo.count`1022 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_and_merge_request_todos1023 behaves like using different access permissions1024 is expected to contain exactly #<Todo id: 221, user_id: 403, project_id: 275, target_id: 127, target_type: "Issue", author_id: 406, ...-20 08:37:00.781366864 +0000", commit_id: nil, group_id: nil, resolved_by_action: nil, note_id: nil> and #<Todo id: 218, user_id: 403, project_id: 412, target_id: 125, target_type: "Issue", author_id: 555, ...-20 08:36:59.539366338 +0000", commit_id: nil, group_id: 686, resolved_by_action: nil, note_id: nil>1025 with nested groups1026 when the user is not a member of any groups/projects1027 removes todos for the user including subprojects todos1028 when the user is member of a parent group1029 behaves like does not remove any todos1030 is expected not to change `Todo.count`1031 when the user is member of a subgroup1032 does not remove group and subproject todos1033 when the user is member of a child project1034 does not remove subproject and group todos1035 when group is not private1036 enqueues the PrivateFeaturesWorker1037 access permissions1038 group_access: nil, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1039 behaves like using different access permissions1040 is expected to change `Todo.count` from 7 to 51041 group_access: nil, project_access: :reporter, method_name: :does_not_remove_any_todos1042 behaves like using different access permissions1043 is expected not to change `Todo.count`1044 group_access: nil, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1045 behaves like using different access permissions1046 is expected to change `Todo.count` from 7 to 51047 group_access: :reporter, project_access: nil, method_name: :does_not_remove_any_todos1048 behaves like using different access permissions1049 is expected not to change `Todo.count`1050 group_access: :guest, project_access: nil, method_name: :removes_confidential_issues_and_internal_notes_todos1051 behaves like using different access permissions1052 is expected to change `Todo.count` from 7 to 51053 group_access: :guest, project_access: :reporter, method_name: :does_not_remove_any_todos1054 behaves like using different access permissions1055 is expected not to change `Todo.count`1056 group_access: :guest, project_access: :guest, method_name: :removes_confidential_issues_and_internal_notes_todos1057 behaves like using different access permissions1058 is expected to change `Todo.count` from 7 to 51059 when entity type is not valid1060 raises an exception1061 when entity was not found1062 does not remove any todos1063GroupPolicy1064 # order random1065 change_share_with_group_lock1066 when the current_user owns the group1067 when the group share_with_group_lock is enabled1068 when the parent group share_with_group_lock is enabled1069 when the group has a grandparent1070 when the grandparent share_with_group_lock is enabled1071 when the current_user owns the parent1072 when the current_user owns the grandparent1073 is expected to be allowed :change_share_with_group_lock1074 when the current_user does not own the grandparent1075 is expected not to be allowed :change_share_with_group_lock1076 when the current_user does not own the parent1077 is expected not to be allowed :change_share_with_group_lock1078 when the grandparent share_with_group_lock is disabled1079 when the current_user owns the parent1080 is expected to be allowed :change_share_with_group_lock1081 when the current_user does not own the parent1082 is expected not to be allowed :change_share_with_group_lock1083 when the group does not have a grandparent1084 when the current_user owns the parent1085 is expected to be allowed :change_share_with_group_lock1086 when the current_user does not own the parent1087 is expected not to be allowed :change_share_with_group_lock1088 when the parent group share_with_group_lock is disabled1089 is expected to be allowed :change_share_with_group_lock1090 when the group share_with_group_lock is disabled1091 is expected to be allowed :change_share_with_group_lock1092 when the current_user does not own the group1093 is expected not to be allowed :change_share_with_group_lock1094 create_projects1095 when group has no project creation level set1096 reporter1097 is expected to be disallowed :create_projects1098 developer1099 is expected to be allowed :create_projects1100 maintainer1101 is expected to be allowed :create_projects1102 owner1103 is expected to be allowed :create_projects1104 when group has project creation level set to no one1105 reporter1106 is expected to be disallowed :create_projects1107 developer1108 is expected to be disallowed :create_projects1109 maintainer1110 is expected to be disallowed :create_projects1111 owner1112 is expected to be disallowed :create_projects1113 when group has project creation level set to maintainer only1114 reporter1115 is expected to be disallowed :create_projects1116 developer1117 is expected to be disallowed :create_projects1118 maintainer1119 is expected to be allowed :create_projects1120 owner1121 is expected to be allowed :create_projects1122 when group has project creation level set to developers + maintainer1123 reporter1124 is expected to be disallowed :create_projects1125 developer1126 is expected to be allowed :create_projects1127 maintainer1128 is expected to be allowed :create_projects1129 owner1130 is expected to be allowed :create_projects1131 with visibility levels restricted by the administrator1132 restricted_visibility_levels: [], group_visibility: public, can_create_project?: true1133 with non-admin user1134EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1135EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1136 is expected to be allowed :create_projects1137 with admin user1138EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1139EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1140 is expected to be allowed :create_projects1141 restricted_visibility_levels: [], group_visibility: internal, can_create_project?: true1142 with non-admin user1143EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1144EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1145 is expected to be allowed :create_projects1146 with admin user1147EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1148EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1149 is expected to be allowed :create_projects1150 restricted_visibility_levels: [], group_visibility: private, can_create_project?: true1151 with non-admin user1152 is expected to be allowed :create_projects1153 with admin user1154 is expected to be allowed :create_projects1155 restricted_visibility_levels: [public], group_visibility: public, can_create_project?: true1156 with non-admin user1157EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1158EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1159 is expected to be allowed :create_projects1160 with admin user1161EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1162EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1163 is expected to be allowed :create_projects1164 restricted_visibility_levels: [public], group_visibility: internal, can_create_project?: true1165 with non-admin user1166EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1167EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1168 is expected to be allowed :create_projects1169 with admin user1170EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1171EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1172 is expected to be allowed :create_projects1173 restricted_visibility_levels: [public], group_visibility: private, can_create_project?: true1174 with non-admin user1175 is expected to be allowed :create_projects1176 with admin user1177 is expected to be allowed :create_projects1178 restricted_visibility_levels: [internal], group_visibility: public, can_create_project?: true1179 with non-admin user1180EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1181EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1182 is expected to be allowed :create_projects1183 with admin user1184EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1185EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1186 is expected to be allowed :create_projects1187 restricted_visibility_levels: [internal], group_visibility: internal, can_create_project?: true1188 with non-admin user1189EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1190EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1191 is expected to be allowed :create_projects1192 with admin user1193EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1194EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1195 is expected to be allowed :create_projects1196 restricted_visibility_levels: [internal], group_visibility: private, can_create_project?: true1197 with non-admin user1198 is expected to be allowed :create_projects1199 with admin user1200 is expected to be allowed :create_projects1201 restricted_visibility_levels: [private], group_visibility: public, can_create_project?: true1202 with non-admin user1203EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1204EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1205 is expected to be allowed :create_projects1206 with admin user1207EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1208EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1209 is expected to be allowed :create_projects1210 restricted_visibility_levels: [private], group_visibility: internal, can_create_project?: true1211 with non-admin user1212EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1213EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1214 is expected to be allowed :create_projects1215 with admin user1216EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1217EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1218 is expected to be allowed :create_projects1219 restricted_visibility_levels: [private], group_visibility: private, can_create_project?: false1220 with non-admin user1221 is expected to be disallowed :create_projects1222 with admin user1223 is expected to be allowed :create_projects1224 restricted_visibility_levels: [public, internal], group_visibility: public, can_create_project?: true1225 with non-admin user1226EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1227EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1228 is expected to be allowed :create_projects1229 with admin user1230EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1231EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1232 is expected to be allowed :create_projects1233 restricted_visibility_levels: [public, internal], group_visibility: internal, can_create_project?: true1234 with non-admin user1235EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1236EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1237 is expected to be allowed :create_projects1238 with admin user1239EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1240EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1241 is expected to be allowed :create_projects1242 restricted_visibility_levels: [public, internal], group_visibility: private, can_create_project?: true1243 with non-admin user1244 is expected to be allowed :create_projects1245 with admin user1246 is expected to be allowed :create_projects1247 restricted_visibility_levels: [public, private], group_visibility: public, can_create_project?: true1248 with non-admin user1249EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1250EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1251 is expected to be allowed :create_projects1252 with admin user1253EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1254EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1255 is expected to be allowed :create_projects1256 restricted_visibility_levels: [public, private], group_visibility: internal, can_create_project?: true1257 with non-admin user1258EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1259EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1260 is expected to be allowed :create_projects1261 with admin user1262EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1263EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1264 is expected to be allowed :create_projects1265 restricted_visibility_levels: [public, private], group_visibility: private, can_create_project?: false1266 with non-admin user1267 is expected to be disallowed :create_projects1268 with admin user1269 is expected to be allowed :create_projects1270 restricted_visibility_levels: [private, internal], group_visibility: public, can_create_project?: true1271 with non-admin user1272EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1273EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1274 is expected to be allowed :create_projects1275 with admin user1276EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1277EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1278 is expected to be allowed :create_projects1279 restricted_visibility_levels: [private, internal], group_visibility: internal, can_create_project?: false1280 with non-admin user1281EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1282EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1283 is expected to be disallowed :create_projects1284 with admin user1285EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1286EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1287 is expected to be allowed :create_projects1288 restricted_visibility_levels: [private, internal], group_visibility: private, can_create_project?: false1289 with non-admin user1290 is expected to be disallowed :create_projects1291 with admin user1292 is expected to be allowed :create_projects1293 restricted_visibility_levels: [public, internal, private], group_visibility: public, can_create_project?: false1294 with non-admin user1295EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1296EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1297 is expected to be disallowed :create_projects1298 with admin user1299EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1300EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1301 is expected to be allowed :create_projects1302 restricted_visibility_levels: [public, internal, private], group_visibility: internal, can_create_project?: false1303 with non-admin user1304EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1305EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1306 is expected to be disallowed :create_projects1307 with admin user1308EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1309EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1310 is expected to be allowed :create_projects1311 restricted_visibility_levels: [public, internal, private], group_visibility: private, can_create_project?: false1312 with non-admin user1313 is expected to be disallowed :create_projects1314 with admin user1315 is expected to be allowed :create_projects1316 public group with no user1317 is expected not to be allowed :read_namespace_via_membership1318 update_runners_registration_token1319 admin1320 when admin mode is enabled1321 is expected to be allowed :update_runners_registration_token1322 when admin mode is disabled1323 is expected to be disallowed :update_runners_registration_token1324 with owner1325 is expected to be allowed :update_runners_registration_token1326 with maintainer1327 is expected to be disallowed :update_runners_registration_token1328 with reporter1329 is expected to be disallowed :update_runners_registration_token1330 with guest1331 is expected to be disallowed :update_runners_registration_token1332 with non member1333 is expected to be disallowed :update_runners_registration_token1334 with anonymous1335 is expected to be disallowed :update_runners_registration_token1336 update_max_artifacts_size1337 when no user1338 is expected not to be allowed :update_max_artifacts_size1339 admin1340 when admin mode is enabled1341 is expected to be allowed :update_max_artifacts_size1342 when admin mode is enabled1343 is expected not to be allowed :update_max_artifacts_size1344 guest1345 is expected not to be allowed :update_max_artifacts_size1346 reporter1347 is expected not to be allowed :update_max_artifacts_size1348 developer1349 is expected not to be allowed :update_max_artifacts_size1350 maintainer1351 is expected not to be allowed :update_max_artifacts_size1352 owner1353 is expected not to be allowed :update_max_artifacts_size1354 owner1355 is expected to be allowed :admin_member_access_request1356 behaves like deploy token does not get confused with user1357 is expected not to be allowed :admin_member_access_request1358 public group with user who is not a member1359 is expected not to be allowed :read_namespace_via_membership1360 private group that has been invited to a public project and with no user1361 is expected not to be allowed :admin_member_access_request1362 private group that has been invited to a public project and with a foreign user1363 is expected not to be allowed :admin_member_access_request1364 create_runner1365 admin1366 when admin mode is enabled1367 is expected to be allowed :create_runner1368 with specific group runner registration disabled1369 is expected to be allowed :create_runner1370 with group runner registration disabled1371 with specific group runner registration enabled1372 is expected to be allowed :create_runner1373 with specific group runner registration disabled1374 is expected to be allowed :create_runner1375 when admin mode is disabled1376 is expected to be disallowed :create_runner1377 with owner1378 is expected to be allowed :create_runner1379 behaves like disallowed when group runner registration disabled1380 with group runner registration disabled1381 with specific group runner registration enabled1382 is expected to be disallowed :create_runner1383 with specific group runner registration disabled1384 is expected to be disallowed :create_runner1385 with maintainer1386 is expected to be disallowed :create_runner1387 with reporter1388 is expected to be disallowed :create_runner1389 with guest1390 is expected to be disallowed :create_runner1391 with developer1392 is expected to be disallowed :create_runner1393 with anonymous1394 is expected to be disallowed :create_runner1395 design activity1396 when design management is not available1397 is expected not to be allowed :read_design_activity1398 even when there are projects in the group1399 is expected not to be allowed :read_design_activity1400 when design management is available globally1401 the group has no projects1402 is expected not to be allowed :read_design_activity1403 the group has a project1404 is expected to be allowed :read_design_activity1405 which does not have design management enabled1406 is expected not to be allowed :read_design_activity1407 but another project does1408 is expected to be allowed :read_design_activity1409 when crm_enabled is false1410 is expected to be disallowed :read_crm_contact1411 is expected to be disallowed :read_crm_organization1412 is expected to be disallowed :admin_crm_contact1413 is expected to be disallowed :admin_crm_organization1414 admin1415 is expected not to be allowed :admin_member_access_request1416 with admin mode1417 is expected to be allowed :read_internal_note1418 behaves like deploy token does not get confused with user1419 is expected not to be allowed :admin_member_access_request1420 with admin mode1421 is expected not to be allowed :read_internal_note1422 create_jira_connect_subscription1423 admin1424 when admin mode is enabled1425 is expected to be allowed :create_jira_connect_subscription1426 when admin mode is disabled1427 is expected to be disallowed :create_jira_connect_subscription1428 with owner1429 is expected to be allowed :create_jira_connect_subscription1430 with maintainer1431 is expected to be allowed :create_jira_connect_subscription1432 with reporter1433 is expected to be disallowed :create_jira_connect_subscription1434 with guest1435 is expected to be disallowed :create_jira_connect_subscription1436 with non member1437 is expected to be disallowed :create_jira_connect_subscription1438 with anonymous1439 is expected to be disallowed :create_jira_connect_subscription1440 change_prevent_sharing_groups_outside_hierarchy1441 with owner1442 is expected to be allowed :change_prevent_sharing_groups_outside_hierarchy1443 with non-owner roles1444 role: "admin"1445 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy1446 role: "maintainer"1447 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy1448 role: "reporter"1449 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy1450 role: "developer"1451 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy1452 role: "guest"1453 is expected to be disallowed :change_prevent_sharing_groups_outside_hierarchy1454 behaves like checks timelog categories permissions1455 with no user1456 is expected to be disallowed :read_timelog_category1457 with a regular user1458 is expected to be disallowed :read_timelog_category1459 with a reporter user1460 when timelog_categories is enabled1461 is expected to be allowed :read_timelog_category1462 when timelog_categories is disabled1463 is expected to be disallowed :read_timelog_category1464 register_group_runners1465 admin1466 when admin mode is enabled1467 is expected to be allowed :register_group_runners1468 with specific group runner registration disabled1469 is expected to be allowed :register_group_runners1470 with group runner registration disabled1471 is expected to be allowed :register_group_runners1472 with specific group runner registration disabled1473 is expected to be allowed :register_group_runners1474 when admin mode is disabled1475 is expected to be disallowed :register_group_runners1476 with owner1477 is expected to be allowed :register_group_runners1478 with group runner registration disabled1479 is expected to be disallowed :register_group_runners1480 with specific group runner registration disabled1481 is expected to be disallowed :register_group_runners1482 with maintainer1483 is expected to be disallowed :register_group_runners1484 with reporter1485 is expected to be disallowed :register_group_runners1486 with guest1487 is expected to be disallowed :register_group_runners1488 with non member1489 is expected to be disallowed :register_group_runners1490 with anonymous1491 is expected to be disallowed :register_group_runners1492 read_package1493 admin1494 when admin mode is enabled1495 is expected to be allowed :read_package1496 when admin mode is disabled1497 is expected to be disallowed :read_package1498 with owner1499 is expected to be allowed :read_package1500 with maintainer1501 is expected to be allowed :read_package1502 with reporter1503 is expected to be allowed :read_package1504 with guest1505 is expected to be disallowed :read_package1506 with non member1507 is expected to be disallowed :read_package1508 with anonymous1509 is expected to be disallowed :read_package1510 read_usage_quotas policy1511 reading usage quotas1512 role: :owner, admin_mode: nil, allowed: true1513 is expected to be allowed :read_usage_quotas1514 role: :admin, admin_mode: true, allowed: true1515 is expected to be allowed :read_usage_quotas1516 role: :admin, admin_mode: false, allowed: false1517 is expected to be disallowed :read_usage_quotas1518 role: :maintainer, admin_mode: nil, allowed: false1519 is expected to be disallowed :read_usage_quotas1520 role: :developer, admin_mode: nil, allowed: false1521 is expected to be disallowed :read_usage_quotas1522 role: :reporter, admin_mode: nil, allowed: false1523 is expected to be disallowed :read_usage_quotas1524 role: :guest, admin_mode: nil, allowed: false1525 is expected to be disallowed :read_usage_quotas1526 project bots1527 project_bot_access1528 when regular user and part of the group1529 is expected not to be allowed :project_bot_access1530 when project bot and not part of the project1531 is expected not to be allowed :project_bot_access1532 when project bot and part of the project1533 is expected to be allowed :project_bot_access1534 with resource access tokens1535 is expected not to be allowed :create_resource_access_tokens1536 maintainer1537 with subgroup_creation level set to maintainer1538 allows permissions from lower roles1539 allows every maintainer permission plus creating subgroups1540 with subgroup_creation_level set to owner1541 allows every maintainer permission1542 behaves like deploy token does not get confused with user1543 is expected not to be allowed :admin_member_access_request1544 transfer_projects1545 reporter1546 behaves like not allowed to transfer projects1547 is expected to be disallowed :transfer_projects1548 behaves like not allowed to transfer projects1549 is expected to be disallowed :transfer_projects1550 behaves like not allowed to transfer projects1551 is expected to be disallowed :transfer_projects1552 developer1553 behaves like not allowed to transfer projects1554 is expected to be disallowed :transfer_projects1555 behaves like not allowed to transfer projects1556 is expected to be disallowed :transfer_projects1557 behaves like not allowed to transfer projects1558 is expected to be disallowed :transfer_projects1559 maintainer1560 behaves like not allowed to transfer projects1561 is expected to be disallowed :transfer_projects1562 behaves like allowed to transfer projects1563 is expected to be allowed :transfer_projects1564 behaves like allowed to transfer projects1565 is expected to be allowed :transfer_projects1566 owner1567 behaves like not allowed to transfer projects1568 is expected to be disallowed :transfer_projects1569 behaves like allowed to transfer projects1570 is expected to be allowed :transfer_projects1571 behaves like allowed to transfer projects1572 is expected to be allowed :transfer_projects1573 support bot1574 is expected not to be allowed :read_label1575 when group hierarchy has a project with service desk enabled1576 is expected to be allowed :read_label1577 is expected to be allowed :read_label1578 create_subgroup1579 when group has subgroup creation level set to owner1580 reporter1581 is expected to be disallowed :create_subgroup1582 developer1583 is expected to be disallowed :create_subgroup1584 maintainer1585 is expected to be disallowed :create_subgroup1586 owner1587 is expected to be allowed :create_subgroup1588 when group has subgroup creation level set to maintainer1589 reporter1590 is expected to be disallowed :create_subgroup1591 developer1592 is expected to be disallowed :create_subgroup1593 maintainer1594 is expected to be allowed :create_subgroup1595 owner1596 is expected to be allowed :create_subgroup1597 read_group_all_available_runners1598 admin1599 when admin mode is enabled1600 is expected to be allowed :read_group_all_available_runners1601 when admin mode is disabled1602 is expected to be disallowed :read_group_all_available_runners1603 with owner1604 is expected to be allowed :read_group_all_available_runners1605 with maintainer1606 is expected to be allowed :read_group_all_available_runners1607 with developer1608 is expected to be allowed :read_group_all_available_runners1609 with reporter1610 is expected to be disallowed :read_group_all_available_runners1611 with guest1612 is expected to be disallowed :read_group_all_available_runners1613 with non member1614 is expected to be disallowed :read_group_all_available_runners1615 with anonymous1616 is expected to be disallowed :read_group_all_available_runners1617 dependency proxy1618 feature disabled1619 is expected to be disallowed :read_dependency_proxy1620 is expected to be disallowed :admin_dependency_proxy1621 feature enabled1622 reporter1623 is expected to be allowed :read_dependency_proxy1624 is expected to be disallowed :admin_dependency_proxy1625 developer1626 is expected to be allowed :read_dependency_proxy1627 is expected to be disallowed :admin_dependency_proxy1628 maintainer1629 is expected to be allowed :read_dependency_proxy1630 is expected to be disallowed :admin_dependency_proxy1631 behaves like disabling admin_package feature flag1632 is expected to be allowed :admin_dependency_proxy1633 owner1634 is expected to be allowed :read_dependency_proxy1635 is expected to be allowed :admin_dependency_proxy1636 behaves like disabling admin_package feature flag1637 is expected to be allowed :admin_dependency_proxy1638 migration bot1639 aggregate_failures1640 behaves like deploy token does not get confused with user1641 is expected not to be allowed :admin_member_access_request1642 with no user1643 aggregate_failures1644 developer1645 is expected not to be allowed :admin_member_access_request1646 behaves like deploy token does not get confused with user1647 is expected not to be allowed :admin_member_access_request1648 deploy token access1649 a deploy token with read_package_registry scope1650 is expected to be allowed :read_package1651 is expected to be allowed :read_group1652 is expected to be disallowed :create_package1653 a deploy token with write_package_registry scope1654 is expected to be allowed :create_package1655 is expected to be allowed :read_package1656 is expected to be allowed :read_group1657 is expected to be disallowed :destroy_package1658 a deploy token with dependency proxy scopes1659 is expected to be allowed :read_dependency_proxy1660 is expected to be disallowed :admin_dependency_proxy1661 private nested group use the highest access level from the group and inherited permissions1662 with no user1663 is expected not to be allowed :admin_member_access_request1664 guests1665 is expected not to be allowed :admin_member_access_request1666 reporter1667 is expected not to be allowed :admin_member_access_request1668 developer1669 is expected not to be allowed :admin_member_access_request1670 maintainer1671 is expected to be allowed :read_cluster1672 allows every maintainer permission plus creating subgroups1673 owner1674 is expected to be allowed :admin_member_access_request1675 has projects1676 is expected to be allowed :read_issue_board1677 in subgroups1678 is expected to be allowed :read_issue_board1679 reporter1680 is expected not to be allowed :admin_member_access_request1681 behaves like deploy token does not get confused with user1682 is expected not to be allowed :admin_member_access_request1683 admin_package ability1684 with maintainer1685 with feature flag enabled1686 is expected to be disallowed :admin_package1687 with feature flag disabled1688 is expected to be allowed :admin_package1689 with owner1690 with feature flag enabled1691 is expected to be allowed :admin_package1692 with feature flag disabled1693 is expected to be allowed :admin_package1694 guests1695 is expected not to be allowed :admin_member_access_request1696 behaves like deploy token does not get confused with user1697 is expected not to be allowed :admin_member_access_request1698 achievements1699 is expected to be allowed :read_achievement1700 is expected to be allowed :admin_achievement1701 is expected to be allowed :award_achievement1702 is expected to be allowed :destroy_user_achievement1703 with feature flag disabled1704 is expected to be disallowed :read_achievement1705 is expected to be disallowed :admin_achievement1706 is expected to be disallowed :award_achievement1707 is expected to be disallowed :destroy_user_achievement1708 when current user can not see the group1709 is expected to be allowed :read_achievement1710 when current user is not an owner1711 is expected to be disallowed :destroy_user_achievement1712 behaves like clusterable policies1713 #add_cluster?1714 with a reporter1715 is expected not to be allowed :read_cluster1716 is expected not to be allowed :add_cluster1717 is expected not to be allowed :create_cluster1718 is expected not to be allowed :update_cluster1719 is expected not to be allowed :admin_cluster1720 with a developer1721 is expected to be allowed :read_cluster1722 is expected not to be allowed :add_cluster1723 is expected not to be allowed :create_cluster1724 is expected not to be allowed :update_cluster1725 is expected not to be allowed :admin_cluster1726 with a maintainer1727 with no clusters1728 is expected to be allowed :read_cluster1729 is expected to be allowed :add_cluster1730 is expected to be allowed :create_cluster1731 is expected to be allowed :update_cluster1732 is expected to be allowed :admin_cluster1733 import_projects1734 when group has no project creation level set1735 reporter1736 is expected to be disallowed :import_projects1737 developer1738 is expected to be disallowed :import_projects1739 maintainer1740 is expected to be allowed :import_projects1741 owner1742 is expected to be allowed :import_projects1743 when group has project creation level set to no one1744 reporter1745 is expected to be disallowed :import_projects1746 developer1747 is expected to be disallowed :import_projects1748 maintainer1749 is expected to be disallowed :import_projects1750 owner1751 is expected to be disallowed :import_projects1752 when group has project creation level set to maintainer only1753 reporter1754 is expected to be disallowed :import_projects1755 developer1756 is expected to be disallowed :import_projects1757 maintainer1758 is expected to be allowed :import_projects1759 owner1760 is expected to be allowed :import_projects1761 when group has project creation level set to developers + maintainer1762 reporter1763 is expected to be disallowed :import_projects1764 developer1765 is expected to be disallowed :import_projects1766 maintainer1767 is expected to be allowed :import_projects1768 owner1769 is expected to be allowed :import_projects1770 behaves like Self-managed Core resource access tokens1771 with owner access1772 create resource access tokens1773 is expected to be allowed :create_resource_access_tokens1774 when resource access token creation is not allowed1775 is expected not to be allowed :create_resource_access_tokens1776 when parent group has project access token creation disabled1777 is expected not to be allowed :create_resource_access_tokens1778 with a personal namespace project1779 is expected to be allowed :create_resource_access_tokens1780 read resource access tokens1781 is expected to be allowed :read_resource_access_tokens1782 destroy resource access tokens1783 is expected to be allowed :destroy_resource_access_tokens1784 with developer access1785 create resource access tokens1786 is expected not to be allowed :create_resource_access_tokens1787 read resource access tokens1788 is expected not to be allowed :read_resource_access_tokens1789 destroy resource access tokens1790 is expected not to be allowed :destroy_resource_access_tokens1791Ci::Runner1792 behaves like having unique enum values1793 has unique values in "executor_type"1794 has unique values in "access_level"1795 has unique values in "runner_type"1796 has unique values in "registration_type"1797 behaves like it has loose foreign keys1798 has at least one loose foreign key definition1799 has the deletion trigger present1800 records record deletions1801 cleans up record deletions1802 loose foreign key on ci_runners.creator_id1803 behaves like cleanup by a loose foreign key1804 cleans up (delete or nullify) the model1805 groups association1806 does not create a cross-database query1807 projects association1808 does not create a cross-database query1809 acts_as_taggable1810 on save1811 tag does not exist1812 creates a tag1813 creates an association to the tag1814 tag already exists1815 does not create a tag1816 creates an association to the tag1817 validation1818 is expected to validate that :access_level cannot be empty/falsy1819 is expected to validate that :runner_type cannot be empty/falsy1820 is expected to validate that :registration_type cannot be empty/falsy1821 when runner is not allowed to pick untagged jobs1822 when runner does not have tags1823 is not valid1824 when runner has too many tags1825 is not valid1826 when runner has tags1827 is valid1828 #exactly_one_group1829 disallows assigning group if already assigned to a group1830 runner_type validations1831 disallows assigning group to project_type runner1832 disallows assigning group to instance_type runner1833 disallows assigning project to group_type runner1834 disallows assigning project to instance_type runner1835 fails to save a group assigned to a project runner even if the runner is already saved1836 when runner has config1837 is valid1838 when runner has an invalid config1839 is invalid1840 cost factors validations1841 disallows :private_projects_minutes_cost_factor being nil1842 disallows :public_projects_minutes_cost_factor being nil1843 disallows :private_projects_minutes_cost_factor being negative1844 disallows :public_projects_minutes_cost_factor being negative1845 constraints1846 .UPDATE_CONTACT_COLUMN_EVERY1847 #access_level1848 when creating new runner and access_level is nil1849 object is invalid1850 when creating new runner and access_level is defined in enum1851 object is valid1852 when creating new runner and access_level is not defined in enum1853 raises an error1854 .instance_type1855 returns only shared runners1856 .belonging_to_project1857 returns the project runner1858 behaves like .belonging_to_parent_groups_of_project1859 returns the group runner1860 with a parent group with a runner1861 returns the group runner from the group and the parent group1862 with multiple project ids1863 raises ArgumentError1864 with instance runners sharing enabled1865 .owned_or_instance_wide1866 returns a shared, project and group runner1867 .group_or_instance_wide1868 returns a globally shared and a group runner1869 with instance runners sharing disabled1870 .owned_or_instance_wide1871 with group runners disabled1872 returns only the project runner1873 with group runners enabled1874 returns a project runner and a group runner1875 .group_or_instance_wide1876 returns a group runner1877 #display_name1878 returns the description if it has a value1879 returns the token if it does not have a description1880 returns the token if the description is an empty string1881 #only_for1882 with matching project1883 is expected to be truthy1884 without matching project1885 is expected to be falsey1886 with runner having multiple projects1887 is expected to be falsey1888 #assign_to1889 with shared_runner1890 raises an error1891 with group runner1892 raises an error1893 with project runner1894 assigns runner to project1895 .recent1896 is expected to eq [#<Ci::Runner id: 30, token: nil, created_at: "2023-08-20 08:39:26.767973239 +0000", updated_at: "202...t: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>]1897 .active1898 with active_value set to false1899 returns inactive runners1900 with active_value set to true1901 returns active runners1902 .paused1903 returns inactive runners1904 .with_creator_id1905 returns runners with creator_id '1'1906 .with_version_prefix1907 returns runners containing runner managers with versions starting with 15.11.1908 .stale1909 returns stale runners1910 #stale?1911 table tests1912 created_at: nil, contacted_at: nil, expected_stale?: false1913 no cache value1914 is expected to eq false1915 with cache value1916 is expected to eq false1917 created_at: Thu, 20 Jul 2023 08:28:34.634590786 UTC +00:00, contacted_at: Thu, 20 Jul 2023 08:28:34.634803056 UTC +00:00, expected_stale?: true1918 no cache value1919 is expected to eq true1920 with cache value1921 is expected to eq true1922 created_at: Thu, 20 Jul 2023 08:28:34.634954836 UTC +00:00, contacted_at: Thu, 20 Jul 2023 09:28:34.635016496 UTC +00:00, expected_stale?: false1923 no cache value1924 is expected to eq false1925 with cache value1926 is expected to eq false1927 created_at: Thu, 20 Jul 2023 08:28:34.635145116 UTC +00:00, contacted_at: nil, expected_stale?: true1928 no cache value1929 is expected to eq true1930 with cache value1931 is expected to eq true1932 created_at: Thu, 20 Jul 2023 09:28:34.635261546 UTC +00:00, contacted_at: nil, expected_stale?: false1933 no cache value1934 is expected to eq false1935 with cache value1936 is expected to eq false1937 .online1938 is expected to contain exactly #<Ci::Runner id: 50, token: nil, created_at: "2023-10-20 08:39:27.000000000 +0000", updated_at: "2023...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>1939 #online?1940 no cache value1941 never contacted1942 is expected to be falsey1943 contacted long time ago1944 is expected to be falsey1945 contacted 1s ago1946 is expected to be truthy1947 with cache value1948 contacted long time ago1949 is expected to be falsey1950 contacted 1s ago1951 is expected to be truthy1952 .offline1953 is expected to eq [#<Ci::Runner id: 51, token: nil, created_at: "2023-10-20 08:39:28.056025241 +0000", updated_at: "202...t: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>]1954 .with_running_builds1955 with no builds running1956 is expected to be empty1957 with single build running on runner21958 is expected to contain exactly #<Ci::Runner id: 54, token: nil, created_at: "2023-10-20 08:39:28.820747647 +0000", updated_at: "2023...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil> and #<Ci::Runner id: 55, token: nil, created_at: "2023-10-20 08:39:28.993048173 +0000", updated_at: "2023...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>1959 #matches_build?1960 when runner does not have tags1961 is expected to be truthy1962 cannot handle build with tags1963 when runner has tags1964 when runner can pick untagged jobs1965 is expected to be truthy1966 behaves like tagged build picker1967 can handle build with matching tags1968 cannot handle build without matching tags1969 when runner cannot pick untagged jobs1970 is expected to be falsey1971 behaves like tagged build picker1972 can handle build with matching tags1973 cannot handle build without matching tags1974 when runner is shared1975 is expected to be truthy1976 does not query for owned or instance runners1977 when runner is locked1978 is expected to be truthy1979 when runner is not shared1980 when runner is assigned to a project1981 is expected to be truthy1982 when runner is assigned to a group1983 is expected to be truthy1984 knows namespace id it is assigned to1985 when access_level of runner is not_protected1986 when build is protected1987 is expected to be truthy1988 when build is unprotected1989 is expected to be truthy1990 when access_level of runner is ref_protected1991 when build is protected1992 is expected to be truthy1993 when build is unprotected1994 is expected to be falsey1995 matches tags1996 run_untagged: true, runner_tags: [], build_tags: [], result: true1997 is expected to eq true1998 run_untagged: true, runner_tags: [], build_tags: ["a"], result: false1999 is expected to eq false2000 run_untagged: true, runner_tags: ["a", "b"], build_tags: ["a"], result: true2001 is expected to eq true2002 run_untagged: true, runner_tags: ["a"], build_tags: ["a", "b"], result: false2003 is expected to eq false2004 run_untagged: true, runner_tags: ["a"], build_tags: ["a"], result: true2005 is expected to eq true2006 run_untagged: false, runner_tags: ["a"], build_tags: ["a"], result: true2007 is expected to eq true2008 run_untagged: false, runner_tags: ["b"], build_tags: ["a"], result: false2009 is expected to eq false2010 run_untagged: false, runner_tags: ["a", "b"], build_tags: ["a"], result: true2011 is expected to eq true2012 #status2013 never connected2014 is expected to eq :stale2015 created recently2016 is expected to eq :never_contacted2017 inactive but online2018 is expected to eq :online2019 contacted 1s ago2020 is expected to eq :online2021 contacted recently2022 is expected to eq :offline2023 contacted long time ago2024 is expected to eq :stale2025 #deprecated_rest_status2026 never connected2027 is expected to eq :never_contacted2028 contacted 1s ago2029 is expected to eq :online2030 contacted long time ago2031 is expected to eq :stale2032 inactive2033 is expected to eq :paused2034 #tick_runner_queue2035 returns a new last_update value2036 sticks the runner to the primary and calls the original method2037 #ensure_runner_queue_value2038 sets a new last_update value when it is called the first time2039 does not change if it is not expired and called again2040 updates runner queue after changing editable value2041 sets a new last_update value2042 does not update runner value after save2043 has an old last_update value2044 #heartbeat2045 when database was updated recently2046 when version is changed2047 updates cache2048 schedules version information update2049 when fetching runner releases is disabled2050 does not schedule version information update2051 with only ip_address specified2052 updates only ip_address2053 with new version having been cached2054 does not lose cached version value2055 when database was not updated recently2056 when version is changed2057 updates redis cache and database2058 with invalid runner2059 still updates redis cache and database2060 with unchanged runner version2061 does not schedule ci_runner_versions update2062 with unknown executor2063 updates with expected executor type2064 with custom executor2065 updates with expected executor type2066 with shell executor2067 updates with expected executor type2068 with docker executor2069 updates with expected executor type2070 with docker-windows executor2071 updates with expected executor type2072 with docker-ssh executor2073 updates with expected executor type2074 with ssh executor2075 updates with expected executor type2076 with parallels executor2077 updates with expected executor type2078 with virtualbox executor2079 updates with expected executor type2080 with docker+machine executor2081 updates with expected executor type2082 with docker-ssh+machine executor2083 updates with expected executor type2084 with kubernetes executor2085 updates with expected executor type2086 with docker-autoscaler executor2087 updates with expected executor type2088 with instance executor2089 updates with expected executor type2090 with an unknown executor type2091 updates with unknown executor type2092 #destroy2093 when there is a tick in the queue2094 cleans up the queue2095 .assignable_for2096 with already assigned project2097 is expected to be empty2098 with a different project2099 is expected to include #<Ci::Runner id: 116, token: nil, created_at: "2023-10-20 08:39:42.724949912 +0000", updated_at: "202...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>2100 is expected not to include #<Ci::Runner id: 118, token: nil, created_at: "2023-10-20 08:39:42.792715047 +0000", updated_at: "202...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>2101 is expected not to include #<Ci::Runner id: 117, token: nil, created_at: "2023-10-20 08:39:42.754401650 +0000", updated_at: "202...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>2102 is expected not to include #<Ci::Runner id: 119, token: nil, created_at: "2023-10-20 08:39:42.806014096 +0000", updated_at: "202...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>2103 Project-related queries2104 #owner_project2105 with project1 as first project associated with runner2106 is expected to eq #<Project id:583 namespace801/project-808>>2107 with project2 as first project associated with runner2108 is expected to eq #<Project id:584 namespace802/project-809>>2109 #belongs_to_one_project?2110 returns false if there are two projects runner is assigned to2111 returns true if there is only one project runner is assigned to2112 #belongs_to_more_than_one_project?2113 project runner2114 two projects assigned to runner2115 returns true2116 one project assigned to runner2117 returns false2118 group runner2119 returns false2120 shared runner2121 returns false2122 #save_tags2123 saves tags2124 strips tags2125 with BulkInsertableTags.with_bulk_insert_tags2126 does not save_tags2127 over TAG_LIST_MAX_LENGTH2128 fails validation if over tag limit2129 #has_tags?2130 when runner has tags2131 is expected to have tags2132 when runner does not have tags2133 is expected not to have tags2134 .search2135 returns runners with a matching token2136 does not return runners with a partially matching token2137 does not return runners with a matching token with different casing2138 returns runners with a matching description2139 returns runners with a partially matching description2140 returns runners with a matching description regardless of the casing2141 #pick_build!2142 runner can pick the build2143 calls #tick_runner_queue2144 runner cannot pick the build2145 does not call #tick_runner_queue2146 project runner without projects is destroyable2147 does not have projects2148 can be destroyed2149 .order_by2150 supports ordering by the contact date2151 supports ordering by the creation date2152 supports ordering by the token expiration2153 .runner_matchers2154 deduplicates on runner_type2155 creates two matchers2156 deduplicates on public_projects_minutes_cost_factor2157 creates two matchers2158 deduplicates on private_projects_minutes_cost_factor2159 creates two matchers2160 deduplicates on run_untagged2161 creates two matchers2162 deduplicates on access_level2163 creates two matchers2164 deduplicates on tag_list2165 creates two matchers2166 with runner_ids2167 includes runner_ids2168 #runner_matcher2169 is expected to eq [1724]2170 is expected to eq "instance_type"2171 is expected to eq 1.02172 is expected to eq 1.02173 is expected to eq true2174 is expected to eq "not_protected"2175 is expected to contain exactly "tag1" and "tag2"2176 #uncached_contacted_at2177 is expected to eq 2023-10-20 07:39:48.000000000 +00002178 Group-related queries2179 .belonging_to_group2180 with scope set to top_level_group2181 returns the group runners from the top_level_group2182 with scope set to child_group2183 returns the group runners from the child_group2184 .belonging_to_group_and_ancestors2185 returns the group runners from the group and parent group2186 .belonging_to_group_or_project_descendants2187 with scope set to top_level_group2188 returns the expected group and project runners without duplicates2189 with scope set to child_group2190 returns the expected group and project runners without duplicates2191 .usable_from_scope2192 with scope set to top_level_group2193 returns all runners usable from top_level_group without duplicates2194 with scope set to child_group2195 returns all runners usable from child_group2196 with scope set to other_top_level_group2197 returns all runners usable from other_top_level_group2198 #short_sha2199 when registered via command-line2200 is expected not to start with "glrt-"2201 is expected not to start with "glrt-"2202 when creating new runner via UI2203 is expected to start with "glrt-"2204 is expected not to start with "glrt-"2205 #token2206 when runner is registered2207 is expected not to start with "glrt-"2208 when runner is created via UI2209 is expected to start with "glrt-"2210 #token_expires_at2211 no expiration2212 behaves like non-expiring token2213 does not expire2214 system-wide shared expiration2215 behaves like expiring token2216 expires2217 system-wide group expiration2218 behaves like non-expiring token2219 does not expire2220 system-wide project expiration2221 behaves like non-expiring token2222 does not expire2223 group expiration2224 behaves like expiring token2225 expires2226 human-readable group expiration2227 behaves like expiring token2228 expires2229 project expiration2230 behaves like expiring token2231 expires2232 human-readable project expiration2233 behaves like expiring token2234 expires2235 multiple projects2236 behaves like expiring token2237 expires2238 with project runner token expiring2239 project overrides system2240 behaves like expiring token2241 expires2242 system overrides project2243 behaves like expiring token2244 expires2245 with group runner token expiring2246 group overrides system2247 behaves like expiring token2248 expires2249 system overrides group2250 behaves like expiring token2251 expires2252 with group's project runner token expiring2253 parent group overrides subgroup2254 behaves like expiring token2255 expires2256 subgroup overrides parent group2257 behaves like expiring token2258 expires2259 with group's project runner token expiring2260 group overrides project2261 behaves like expiring token2262 expires2263 project overrides group2264 behaves like expiring token2265 expires2266 .with_upgrade_status2267 :unavailable2268 returns runners with runner managers whose version is assigned :unavailable2269 :available2270 returns runners with runner managers whose version is assigned :available2271 :recommended2272 returns runners with runner managers whose version is assigned :recommended2273 composed with other scopes2274 returns runner matching the composed scope2275 .with_creator2276 is expected to contain exactly #<Ci::Runner id: 204, token: nil, created_at: "2023-10-20 08:39:57.758386844 +0000", updated_at: "202...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: 817, tag_list: nil>2277 #ensure_token2278 when runner is initialized without a token2279 with registration_token2280 generates a token2281 with authenticated_user2282 generates a token with prefix2283 when runner is initialized with a token2284 with registration_token2285 does not change the existing token2286 with authenticated_user2287 does not change the existing token2288 #gitlab_hosted?2289 saas: true, runner_type: :instance_type, expected_value: true2290 returns the correct value based on saas and runner type2291 saas: true, runner_type: :group_type, expected_value: false2292 returns the correct value based on saas and runner type2293 saas: true, runner_type: :project_type, expected_value: false2294 returns the correct value based on saas and runner type2295 saas: false, runner_type: :instance_type, expected_value: false2296 returns the correct value based on saas and runner type2297 saas: false, runner_type: :group_type, expected_value: false2298 returns the correct value based on saas and runner type2299 saas: false, runner_type: :project_type, expected_value: false2300 returns the correct value based on saas and runner type2301Ci::RegisterJobService2302 #execute2303 checks database loadbalancing stickiness2304 result is valid if replica did caught-up2305 result is invalid if replica did not caught-up2306 when using pending builds table2307 runner follows tag list2308 when job has tag2309 does not pick build with different tag2310 does not pick build with tag2311 and runner has matching tag2312 with no runner manager specified2313 picks build2314 with runner manager specified2315 picks build and assigns runner manager2316 when job has no tag2317 picks build2318 when runner has tag2319 picks build2320 deleted projects2321 for shared runners2322 does not pick a build2323 for project runner2324 with no runner manager specified2325 does not pick a build2326 with runner manager specified2327 does not pick a build2328 allow shared runners2329 when build owner has been blocked2330 with no runner manager specified2331 does not pick the build and drops the build2332 with runner manager specified2333 does not pick the build and does not create join record2334 for multiple builds2335 picks builds one-by-one2336 when using fair scheduling2337 when all builds are pending2338 prefers projects without builds first2339 when some builds transition to success2340 equalises number of running builds2341 when using DEFCON mode that disables fair scheduling2342 when all builds are pending2343 returns builds in order of creation (FIFO)2344 when some builds transition to success2345 returns builds in order of creation (FIFO)2346 shared runner2347 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, created_at: datetime, updated_at: datetime, started_...teger, stage_id: integer, partition_id: integer, auto_canceled_by_partition_id: integer, tag_list: )2348 is expected to be valid2349 is expected to be running2350 is expected to eq #<Ci::Runner id: 205, token: nil, created_at: "2023-10-20 08:39:58.813327365 +0000", updated_at: "202...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>2351 is expected to eq 802352 project runner2353 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, created_at: datetime, updated_at: datetime, started_...teger, stage_id: integer, partition_id: integer, auto_canceled_by_partition_id: integer, tag_list: )2354 is expected to be valid2355 is expected to be running2356 is expected to eq #<Ci::Runner id: 282, token: nil, created_at: "2023-10-20 08:40:27.029803442 +0000", updated_at: "202...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>2357 disallow shared runners2358 shared runner2359 is expected to be nil2360 project runner2361 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, created_at: datetime, updated_at: datetime, started_...teger, stage_id: integer, partition_id: integer, auto_canceled_by_partition_id: integer, tag_list: )2362 is expected to be valid2363 is expected to be running2364 is expected to eq #<Ci::Runner id: 297, token: nil, created_at: "2023-10-20 08:40:30.218890518 +0000", updated_at: "202...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>2365 disallow when builds are disabled2366 and uses shared runner2367 is expected to be nil2368 and uses group runner2369 is expected to be nil2370 and uses project runner2371 does not pick a build2372 allow group runners2373 for multiple builds2374 does not consider builds from other group runners2375 group runner2376 is expected to be a kind of Ci::Build(status: string, finished_at: datetime, created_at: datetime, updated_at: datetime, started_...teger, stage_id: integer, partition_id: integer, auto_canceled_by_partition_id: integer, tag_list: )2377 is expected to be valid2378 is expected to be running2379 is expected to eq #<Ci::Runner id: 323, token: nil, created_at: "2023-10-20 08:40:38.259326533 +0000", updated_at: "202...at: nil, allowed_plans: [], registration_type: "registration_token", creator_id: nil, tag_list: nil>2380 disallow group runners2381 group runner2382 is expected to be nil2383 when first build is stalled2384 with multiple builds are in queue2385 receives second build from the queue2386 when single build is in queue2387 does not receive any valid result2388 when there is no build in queue2389 does not receive builds but result is valid2390 when access_level of runner is not_protected2391 when a job is protected2392 picks the job2393 when a job is unprotected2394 picks the job2395 when protected attribute of a job is nil2396 picks the job2397 when access_level of runner is ref_protected2398 when a job is protected2399 picks the job2400 when a job is unprotected2401 does not pick the job2402 when protected attribute of a job is nil2403 does not pick the job2404 runner feature set is verified2405 when feature is missing by runner2406 does not pick the build and drops the build2407 when feature is supported by runner2408 does pick job2409 when "dependencies" keyword is specified2410 picks a build with a dependency2411 when there are multiple dependencies with artifacts2412 logs build artifacts size2413 behaves like validation is active2414 when depended job has not been completed yet2415 is expected to eq #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...stage", id: 122, stage_id: 99, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>2416 when artifacts of depended job has been expired2417 when the pipeline is locked2418 is expected to eq #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 124, stage_id: 100, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>2419 when the pipeline is unlocked2420 behaves like not pick2421 does not pick the build and drops the build2422 when artifacts of depended job has been erased2423 behaves like not pick2424 does not pick the build and drops the build2425 when job object is staled2426 does not drop nor pick2427 when build is degenerated2428 does not pick the build and drops the build2429 when build has data integrity problem2430 does drop the build and logs both failures2431 when build fails to be run!2432 does drop the build and logs failure2433 when an exception is raised during a persistent ref creation2434 picks the build2435 when only some builds can be matched by runner2436 observes queue size of only matching jobs2437 observes queue processing time by the runner type2438 when ci_register_job_temporary_lock is enabled2439 when a build is temporarily locked2440 skips this build and marks queue as invalid2441 when there is another build in queue2442 skips this build and picks another build2443 when a conflicting data is stored in denormalized table2444 removes queuing entry upon build assignment attempt2445 #register_success2446 when shared runner is used2447 behaves like metrics collector2448 behaves like attempt counter collector2449 increments attempt counter2450 behaves like jobs queueing time histogram collector2451 counts job queuing time histogram with expected labels2452 when project already has running jobs2453 counts job queuing time histogram with expected labels2454 when metrics_shard tag is defined2455 behaves like metrics collector2456 behaves like attempt counter collector2457 increments attempt counter2458 behaves like jobs queueing time histogram collector2459 counts job queuing time histogram with expected labels2460 when project already has running jobs2461 counts job queuing time histogram with expected labels2462 when multiple metrics_shard tag is defined2463 behaves like metrics collector2464 behaves like attempt counter collector2465 increments attempt counter2466 behaves like jobs queueing time histogram collector2467 counts job queuing time histogram with expected labels2468 when project already has running jobs2469 counts job queuing time histogram with expected labels2470 when max running jobs bucket size is exceeded2471 behaves like metrics collector2472 behaves like attempt counter collector2473 increments attempt counter2474 behaves like jobs queueing time histogram collector2475 counts job queuing time histogram with expected labels2476 when project already has running jobs2477 counts job queuing time histogram with expected labels2478 when pending job with queued_at=nil is used2479 doesn't count job queuing time histogram2480 behaves like attempt counter collector2481 increments attempt counter2482 when project runner is used2483 behaves like metrics collector2484 behaves like attempt counter collector2485 increments attempt counter2486 behaves like jobs queueing time histogram collector2487 counts job queuing time histogram with expected labels2488 when project already has running jobs2489 counts job queuing time histogram with expected labels2490 when runner_session params are2491 present sets runner session configuration in the build2492 not present it does not configure the runner session2493 when max queue depth is reached2494 returns 409 conflict2495Commit2496 modules2497 is expected to includes the Mentionable module2498 is expected to includes the Participable module2499 is expected to includes the Referable module2500 is expected to includes the StaticModel module2501 is expected to includes the Presentable module2502 .lazy2503 with project2504 behaves like .lazy checks2505 when the commits are found2506 batches requests for commits2507 maintains ordering2508 does not attempt to replace methods via BatchLoader2509 when not found2510 returns nil as commit2511 with personal snippet2512 behaves like .lazy checks2513 when the commits are found2514 batches requests for commits2515 maintains ordering2516 does not attempt to replace methods via BatchLoader2517 when not found2518 returns nil as commit2519 with project snippet2520 behaves like .lazy checks2521 when the commits are found2522 batches requests for commits2523 maintains ordering2524 does not attempt to replace methods via BatchLoader2525 when not found2526 returns nil as commit2527 .build_from_sidekiq_hash2528 returns a Commit2529 parses date strings into Time instances2530 #diff_refs2531 is equal to itself2532 from a factory2533 is equal to itself2534 #author2535 looks up the author in a case-insensitive way2536 caches the author2537 with a user with an unconfirmed e-mail2538 returns no user2539 using eager loading2540 executes only two SQL queries2541 preloads the authors for Commits matching a user's primary Email2542 preloads the authors for Commits using a User's alternative Email2543 preloads the authors for Commits using a User's private commit Email2544 preloads the authors for Commits using a User's outdated private commit Email2545 sets the author to Nil if an author could not be found for a Commit2546 does not execute SQL queries once the authors are preloaded2547 #committer2548 when committer_email is the user's primary email2549 when the user email is confirmed2550 returns the user2551 when the user email is unconfirmed2552 returns the user according to confirmed argument2553 when committer_email is the user's secondary email2554 when the user email is confirmed2555 returns the user2556 when the user email is unconfirmed2557 does not return the user2558 #to_reference2559 with project2560 returns a String reference to the object2561 supports a cross-project reference2562 with personal snippet2563 returns a String reference to the object2564 supports a cross-snippet reference2565 with project snippet2566 returns a String reference to the object2567 supports a cross-snippet project reference2568 .reference_valid?2569 ref: "1234567", result: true2570 is expected to eq true2571 ref: "123456", result: false2572 is expected to eq false2573 ref: "1", result: false2574 is expected to eq false2575 ref: "0000000000000000000000000000000000000000", result: true2576 is expected to eq true2577 ref: "c1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: true2578 is expected to eq true2579 ref: "H1acaa58bbcbc3eafe538cb8274ba387047b69f8", result: false2580 is expected to eq false2581 ref: nil, result: false2582 is expected to eq false2583 #reference_link_text2584 with project2585 returns a String reference to the object2586 supports a cross-project reference2587 with personal snippet2588 returns a String reference to the object2589 supports a cross-snippet reference2590 with project snippet2591 returns a String reference to the object2592 supports a cross-snippet project reference2593 #title2594 returns no_commit_message when safe_message is blank2595 truncates a message without a newline at natural break to 80 characters2596 truncates a message with a newline before 80 characters at the newline2597 does not truncates a message with a newline after 80 but less 100 characters2598 #full_title2599 returns no_commit_message when safe_message is blank2600 returns entire message if there is no newline2601 returns first line of message if there is a newLine2602 truncates html representation if more than 1KiB2603 description2604 returns no_commit_message when safe_message is blank2605 returns description of commit message if title less than 100 characters2606 returns full commit message if commit title more than 100 characters2607 truncates html representation if more than 1Mib2608 delegation2609 is expected to respond to #message2610 is expected to respond to #authored_date2611 is expected to respond to #committed_date2612 is expected to respond to #committer_email2613 is expected to respond to #author_email2614 is expected to respond to #parents2615 is expected to respond to #date2616 is expected to respond to #diffs2617 is expected to respond to #id2618 behaves like a mentionable2619 generates a descriptive back-reference2620 extracts references from its reference property2621 creates cross-reference notes2622 uses the CachedMarkdownField cache instead of the Mentionable cache2623 when there are cached markdown fields2624 sends in cached markdown fields when appropriate2625 #hook_attrs2626 is expected to be a kind of Hash2627 is expected to include "adds bar folder and branch-test text file to check Repository merged_to_root_ref method"2628 is expected to eq "2016-09-27T14:37:46+00:00"2629 is expected to contain exactly "bar/branch-test.txt"2630 is expected to eq []2631 is expected to eq []2632 #cherry_pick_message2633 of a regular commit2634 is expected to include "\n\n(cherry picked from commit 88790590ed1337ab189bccaa355f068481c90bec)"2635 of a merge commit2636 that is found2637 is expected to include "\n(cherry picked from commit fd574bc7ceb5491019dc6fb1d8104112f4790fa8)\n\n467dc98f Add new 'videos' directory\n88790590 Upload new video file"2638 that is existing but not found2639 does not include details of the merged commits2640 #reverts_commit?2641 is expected to be falsy2642 commit has no description2643 is expected to be falsy2644 another_commit's description does not revert commit2645 is expected to be falsy2646 another_commit's description reverts commit2647 is expected to be truthy2648 another_commit's description reverts merged merge request2649 is expected to be truthy2650 #participants2651 includes the commit author2652 includes the committer2653 includes the authors of the commit notes2654 #uri_type with Gitaly enabled2655 behaves like #uri_type2656 returns the URI type at the given path2657 returns nil if the path doesn't exists2658 is nil if the path is nil or empty2659 #uri_type with Rugged enabled2660 calls out to the Rugged implementation2661 behaves like #uri_type2662 returns the URI type at the given path2663 returns nil if the path doesn't exists2664 is nil if the path is nil or empty2665 .diff_max_files2666 returns the current settings2667 .diff_max_lines2668 returns the current settings2669 .diff_safe_max_files2670 returns the commit diff max divided by the limit factor of 102671 .diff_safe_max_lines2672 returns the commit diff max divided by the limit factor of 102673 .from_hash2674 with project2675 behaves like returns Commit2676 returns a Commit2677 wraps a Gitlab::Git::Commit2678 stores the correct commit fields2679 with personal snippet2680 behaves like returns Commit2681 returns a Commit2682 wraps a Gitlab::Git::Commit2683 stores the correct commit fields2684 with project snippet2685 behaves like returns Commit2686 returns a Commit2687 wraps a Gitlab::Git::Commit2688 stores the correct commit fields2689 #draft?2690 detects the 'squash! ' prefix2691 detects the 'fixup! ' prefix2692 detects the 'draft: ' prefix2693 detects the '[Draft] ' prefix2694 detects the '(draft) ' prefix2695 detects the 'Draft: ' prefix2696 does not detect a commit just saying 'draft' as draft? == true2697 doesn't detect 'FIXUP!' at the start of the title as a draft2698 doesn't detect 'Draft - ' at the start of the title as a draft2699 doesn't detect 'Wipeout' at the start of the title as a draft2700 doesn't detect 'WIP: ' at the start of the title as a draft2701 doesn't detect '[WIP] ' at the start of the title as a draft2702 doesn't detect 'wip: ' at the start of the title as a draft2703 .valid_hash?2704 checks hash contents2705 checks hash length2706 signed commits2707 returns signature_type properly2708 returns has_signature? properly2709 #has_been_reverted?2710 returns true if the commit has been reverted2711 returns false if the commit has not been reverted2712 containing refs2713 #branches_containing2714 behaves like containing ref names2715 without arguments2716 returns branch names containing the commit2717 with limit argument2718 returns the appropriate amount branch names2719 with tipping refs excluded2720 returns branch names containing the commit without the one with the commit at tip2721 returns the appropriate amount branch names with limit argument2722 #tags_containing2723 behaves like containing ref names2724 without arguments2725 returns branch names containing the commit2726 with limit argument2727 returns the appropriate amount branch names2728 with tipping refs excluded2729 returns branch names containing the commit without the one with the commit at tip2730 returns the appropriate amount branch names with limit argument2731Ci::BuildPolicy2732 behaves like a deployable job policy2733 when the job triggerer is a project maintainer2734 is expected to be allowed :update_build2735 when job is oudated deployment job2736 is expected not to be allowed :update_build2737 #rules2738 when user does not have access to the project2739 when public builds are enabled2740 does not include ability to read build2741 when public builds are disabled2742 does not include ability to read build2743 when anonymous user has access to the project2744 when public builds are enabled2745 includes ability to read build2746 when public builds are disabled2747 does not include ability to read build2748 when team member has access to the project2749 team member is a guest2750 when public builds are enabled2751 includes ability to read build2752 when public builds are disabled2753 does not include ability to read build2754 team member is a reporter2755 when public builds are enabled2756 includes ability to read build2757 when public builds are disabled2758 does not include ability to read build2759 when maintainer is allowed to push to pipeline branch2760 enables update_build if user is maintainer2761 rules for protected ref2762 when no one can push or merge to the branch2763 does not include ability to update build2764 when the user is admin2765 does not include ability to update build2766 when developers can push to the branch2767 includes ability to update build2768 when no one can create the tag2769 does not include ability to update build2770 when no one can create the tag but it is not a tag2771 includes ability to update build2772 rules for erase build2773 when a developer erases a build2774 when developers can push to the branch2775 when the build was created by the developer2776 when the build was created for a protected ref2777 is expected to be disallowed :erase_build2778 when the build was created for an unprotected ref2779 is expected to be allowed :erase_build2780 when the build was created by the other2781 is expected to be disallowed :erase_build2782 when no one can push or merge to the branch2783 is expected to be disallowed :erase_build2784 when a maintainer erases a build2785 when maintainers can push to the branch2786 when the build was created by the maintainer2787 is expected to be allowed :erase_build2788 when the build was created by the other2789 is expected to be allowed :erase_build2790 when no one can push or merge to the branch2791 is expected to be disallowed :erase_build2792 when an admin erases a build2793 when the build was created for a protected branch2794 is expected to be disallowed :erase_build2795 when the build was created for a protected tag2796 is expected to be disallowed :erase_build2797 when the build was created for an unprotected ref2798 is expected to be allowed :erase_build2799 manage a web ide terminal2800 when create_web_ide_terminal access enabled2801 with admin2802 when admin mode enabled2803 is expected to be allowed :create_build_service_proxy2804 when admin mode disabled2805 is expected not to be allowed :create_build_service_proxy2806 when build is not from a webide pipeline2807 is expected not to be allowed :create_build_service_proxy2808 when build has no runner terminal2809 when admin mode enabled2810 is expected to be allowed :update_web_ide_terminal2811 is expected not to be allowed :create_build_service_proxy2812 when admin mode disabled2813 is expected not to be allowed :update_web_ide_terminal2814 is expected not to be allowed :create_build_service_proxy2815 feature flag "build_service_proxy" is disabled2816 is expected not to be allowed :create_build_service_proxy2817 with owner2818 behaves like allowed build owner access2819 is expected not to be allowed :create_build_service_proxy2820 when user is the owner of the job2821 is expected to be allowed :create_build_service_proxy2822 with maintainer2823 behaves like allowed build owner access2824 is expected not to be allowed :create_build_service_proxy2825 when user is the owner of the job2826 is expected to be allowed :create_build_service_proxy2827 with developer2828 behaves like forbidden access2829 is expected not to be allowed :create_build_service_proxy2830 when user is the owner of the job2831 is expected not to be allowed :create_build_service_proxy2832 with reporter2833 behaves like forbidden access2834 is expected not to be allowed :create_build_service_proxy2835 when user is the owner of the job2836 is expected not to be allowed :create_build_service_proxy2837 with guest2838 behaves like forbidden access2839 is expected not to be allowed :create_build_service_proxy2840 when user is the owner of the job2841 is expected not to be allowed :create_build_service_proxy2842 with non member2843 behaves like forbidden access2844 is expected not to be allowed :create_build_service_proxy2845 when user is the owner of the job2846 is expected not to be allowed :create_build_service_proxy2847 ability :create_build_terminal2848 when user can update_build2849 when job has terminal2850 when current user is the job owner2851 is expected to be allowed :create_build_terminal2852 when current user is not the job owner2853 is expected not to be allowed :create_build_terminal2854 when job does not have terminal2855 is expected not to be allowed :create_build_terminal2856 when user cannot update build2857 is expected not to be allowed :create_build_terminal2858Projects::Prometheus::Alerts::NotifyService2859 with valid payload2860 with manual prometheus installation2861 alerting_setting: true, configured_token: "token", token_input: "token", result: :success2862 behaves like processes one firing and one resolved prometheus alerts2863 creates alerts and returns them in the payload2864 behaves like processes incident issues2865 is expected to be success2866 behaves like sends alert notification emails2867 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2868 alerting_setting: true, configured_token: "token", token_input: "x", result: :failure2869 behaves like alerts service responds with an error and takes no actions2870 is expected to eq :unauthorized2871 behaves like does not create an alert management alert2872 is expected not to change `AlertManagement::Alert.count`2873 behaves like does not create a system note for alert2874 is expected not to change `Note.count`2875 behaves like does not process incident issues2876 is expected not to receive perform_async(*(any args)) 0 times2877 behaves like does not send alert notification emails2878 is expected not to receive new(*(any args)) 0 times2879 alerting_setting: true, configured_token: "token", token_input: nil, result: :failure2880 behaves like alerts service responds with an error and takes no actions2881 is expected to eq :unauthorized2882 behaves like does not create an alert management alert2883 is expected not to change `AlertManagement::Alert.count`2884 behaves like does not create a system note for alert2885 is expected not to change `Note.count`2886 behaves like does not process incident issues2887 is expected not to receive perform_async(*(any args)) 0 times2888 behaves like does not send alert notification emails2889 is expected not to receive new(*(any args)) 0 times2890 alerting_setting: false, configured_token: nil, token_input: nil, result: :success2891 behaves like processes one firing and one resolved prometheus alerts2892 creates alerts and returns them in the payload2893 behaves like processes incident issues2894 is expected to be success2895 behaves like sends alert notification emails2896 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2897 alerting_setting: false, configured_token: nil, token_input: "token", result: :failure2898 behaves like alerts service responds with an error and takes no actions2899 is expected to eq :unauthorized2900 behaves like does not create an alert management alert2901 is expected not to change `AlertManagement::Alert.count`2902 behaves like does not create a system note for alert2903 is expected not to change `Note.count`2904 behaves like does not process incident issues2905 is expected not to receive perform_async(*(any args)) 0 times2906 behaves like does not send alert notification emails2907 is expected not to receive new(*(any args)) 0 times2908 with HTTP integration2909 active: :active, token: :valid, result: :success2910 behaves like processes one firing and one resolved prometheus alerts2911 creates alerts and returns them in the payload2912 behaves like processes incident issues2913 is expected to be success2914 behaves like sends alert notification emails2915 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2916 active: :active, token: :invalid, result: :failure2917 behaves like alerts service responds with an error and takes no actions2918 is expected to eq :unauthorized2919 behaves like does not create an alert management alert2920 is expected not to change `AlertManagement::Alert.count`2921 behaves like does not create a system note for alert2922 is expected not to change `Note.count`2923 behaves like does not process incident issues2924 is expected not to receive perform_async(*(any args)) 0 times2925 behaves like does not send alert notification emails2926 is expected not to receive new(*(any args)) 0 times2927 active: :active, token: nil, result: :failure2928 behaves like alerts service responds with an error and takes no actions2929 is expected to eq :unauthorized2930 behaves like does not create an alert management alert2931 is expected not to change `AlertManagement::Alert.count`2932 behaves like does not create a system note for alert2933 is expected not to change `Note.count`2934 behaves like does not process incident issues2935 is expected not to receive perform_async(*(any args)) 0 times2936 behaves like does not send alert notification emails2937 is expected not to receive new(*(any args)) 0 times2938 active: :inactive, token: :valid, result: :failure2939 behaves like alerts service responds with an error and takes no actions2940 is expected to eq :unauthorized2941 behaves like does not create an alert management alert2942 is expected not to change `AlertManagement::Alert.count`2943 behaves like does not create a system note for alert2944 is expected not to change `Note.count`2945 behaves like does not process incident issues2946 is expected not to receive perform_async(*(any args)) 0 times2947 behaves like does not send alert notification emails2948 is expected not to receive new(*(any args)) 0 times2949 active: nil, token: nil, result: :failure2950 behaves like alerts service responds with an error and takes no actions2951 is expected to eq :unauthorized2952 behaves like does not create an alert management alert2953 is expected not to change `AlertManagement::Alert.count`2954 behaves like does not create a system note for alert2955 is expected not to change `Note.count`2956 behaves like does not process incident issues2957 is expected not to receive perform_async(*(any args)) 0 times2958 behaves like does not send alert notification emails2959 is expected not to receive new(*(any args)) 0 times2960 with simultaneous manual configuration2961 behaves like processes one firing and one resolved prometheus alerts2962 creates alerts and returns them in the payload2963 behaves like processes incident issues2964 is expected to be success2965 behaves like sends alert notification emails2966 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2967 when HTTP integration is inactive2968 behaves like alerts service responds with an error and takes no actions2969 is expected to eq :unauthorized2970 behaves like does not create an alert management alert2971 is expected not to change `AlertManagement::Alert.count`2972 behaves like does not create a system note for alert2973 is expected not to change `Note.count`2974 behaves like does not process incident issues2975 is expected not to receive perform_async(*(any args)) 0 times2976 behaves like does not send alert notification emails2977 is expected not to receive new(*(any args)) 0 times2978 incident settings2979 behaves like processes one firing and one resolved prometheus alerts2980 creates alerts and returns them in the payload2981 behaves like processes incident issues2982 is expected to be success2983 behaves like sends alert notification emails2984 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2985 when incident_management_setting does not exist2986 is expected to be success2987 is expected not to receive new(*(any args)) 0 times2988 is expected not to receive perform_async(*(any args)) 0 times2989 incident_management_setting.send_email is false2990 is expected to be success2991 is expected not to receive new(*(any args)) 0 times2992 incident_management_setting.create_issue is false2993 is expected to be success2994 is expected not to receive perform_async(*(any args)) 0 times2995 process Alert Management alerts2996 with multiple firing alerts and resolving alerts2997 processes Prometheus alerts2998 when payload exceeds max amount of processable alerts2999 with feature flag globally enabled3000 returns 201 but skips processing and logs a warning3001 with feature flag enabled on project3002 returns 201 but skips processing and logs a warning3003 with feature flag enabled on unrelated project3004 returns 201 and process alerts without warnings3005 with feature flag disabled3006 returns 201 and process alerts without warnings3007 with invalid payload3008 when payload is not processable3009 behaves like alerts service responds with an error and takes no actions3010 is expected to eq :unprocessable_entity3011 behaves like does not create an alert management alert3012 is expected not to change `AlertManagement::Alert.count`3013 behaves like does not create a system note for alert3014 is expected not to change `Note.count`3015 behaves like does not process incident issues3016 is expected not to receive perform_async(*(any args)) 0 times3017 behaves like does not send alert notification emails3018 is expected not to receive new(*(any args)) 0 times3019 when the payload is too big3020 behaves like alerts service responds with an error and takes no actions3021 is expected to eq :bad_request3022 behaves like does not create an alert management alert3023 is expected not to change `AlertManagement::Alert.count`3024 behaves like does not create a system note for alert3025 is expected not to change `Note.count`3026 behaves like does not process incident issues3027 is expected not to receive perform_async(*(any args)) 0 times3028 behaves like does not send alert notification emails3029 is expected not to receive new(*(any args)) 0 times3030 .processable?3031 with valid payload3032 is expected to eq true3033 containing unrelated keys3034 is expected to eq true3035 with invalid payload3036 missing_key: "version"3037 is expected to eq false3038 missing_key: "groupKey"3039 is expected to eq false3040 missing_key: "status"3041 is expected to eq false3042 missing_key: "receiver"3043 is expected to eq false3044 missing_key: "groupLabels"3045 is expected to eq false3046 missing_key: "commonLabels"3047 is expected to eq false3048 missing_key: "commonAnnotations"3049 is expected to eq false3050 missing_key: "externalURL"3051 is expected to eq false3052 missing_key: "alerts"3053 is expected to eq false3054 with unsupported version3055 is expected to eq false3056Ci::RetryJobService3057 #clone!3058 raises an error when an unexpected class is passed3059 when the job to be cloned is a bridge3060 does not create a new deployment3061 behaves like clones the job3062 when the user has ability to execute job3063 marks the old job as retried3064 when there is a failed job ToDo for the MR3065 resolves the ToDo for the failed job3066 when the job has needs3067 bulk inserts all the needs3068 when the user does not have permission to execute the job3069 raises an error3070 when the pipeline is started automatically3071 behaves like creates associations for a deployable job3072 when a job with a deployment is retried3073 creates a new deployment3074 does not create a new environment3075 when a job with a dynamic environment is retried3076 creates a new deployment3077 does not create a new environment3078 when `create_deployment_only_for_processable_jobs` FF is disabled3079 behaves like creates associations for a deployable job3080 when a job with a deployment is retried3081 creates a new deployment3082 does not create a new environment3083 when a job with a dynamic environment is retried3084 creates a new deployment3085 does not create a new environment3086 when given variables3087 does not give variables to the new bridge3088 when the job to be cloned is a build3089 does not create a new deployment3090 behaves like clones the job3091 when the user has ability to execute job3092 marks the old job as retried3093 when there is a failed job ToDo for the MR3094 resolves the ToDo for the failed job3095 when the job has needs3096 bulk inserts all the needs3097 when the user does not have permission to execute the job3098 raises an error3099 when the pipeline is started automatically3100 behaves like creates associations for a deployable job3101 when a job with a deployment is retried3102 creates a new deployment3103 does not create a new environment3104 when a job with a dynamic environment is retried3105 creates a new deployment3106 does not create a new environment3107 when `create_deployment_only_for_processable_jobs` FF is disabled3108 behaves like creates associations for a deployable job3109 when a job with a deployment is retried3110 creates a new deployment3111 does not create a new environment3112 when a job with a dynamic environment is retried3113 creates a new deployment3114 does not create a new environment3115 when given variables3116 when the build is actionable3117 gives variables to the new build3118 when the build is not actionable3119 does not give variables to the new build3120 when enqueue_if_actionable is provided3121 enqueue_if_actionable: true, trait: nil, enqueue_immediately: false3122 behaves like checks enqueue_immediately?3123 returns enqueue_immediately3124 enqueue_if_actionable: true, trait: :manual, enqueue_immediately: true3125 behaves like checks enqueue_immediately?3126 returns enqueue_immediately3127 enqueue_if_actionable: true, trait: :expired_scheduled, enqueue_immediately: true3128 behaves like checks enqueue_immediately?3129 returns enqueue_immediately3130 enqueue_if_actionable: false, trait: nil, enqueue_immediately: false3131 behaves like checks enqueue_immediately?3132 returns enqueue_immediately3133 enqueue_if_actionable: false, trait: :manual, enqueue_immediately: false3134 behaves like checks enqueue_immediately?3135 returns enqueue_immediately3136 enqueue_if_actionable: false, trait: :expired_scheduled, enqueue_immediately: false3137 behaves like checks enqueue_immediately?3138 returns enqueue_immediately3139 #execute3140 when the job to be retried is a bridge3141 and it is not retryable3142 behaves like does not retry the job3143 returns :not_retryable and :unprocessable_entity3144 behaves like retries the job3145 enqueues the new job3146 behaves like clones the job3147 when the user has ability to execute job3148 marks the old job as retried3149 when there is a failed job ToDo for the MR3150 resolves the ToDo for the failed job3151 when the job has needs3152 bulk inserts all the needs3153 when the user does not have permission to execute the job3154 raises an error3155 when there are subsequent processables that are skipped3156 resumes pipeline processing in the subsequent stage3157 updates ownership for subsequent builds3158 updates ownership for subsequent bridges3159 when the pipeline has other jobs3160 when job has a nil scheduling_type3161 populates scheduling_type of processables3162 when job has scheduling_type3163 does not call populate_scheduling_type!3164 when the pipeline is a child pipeline and the bridge uses strategy:depend3165 marks the source bridge as pending3166 when given variables3167 does not give variables to the new bridge3168 when the job to be retried is a build3169 and it is not retryable3170 behaves like does not retry the job3171 returns :not_retryable and :unprocessable_entity3172 behaves like retries the job3173 enqueues the new job3174 behaves like clones the job3175 when the user has ability to execute job3176 marks the old job as retried3177 when there is a failed job ToDo for the MR3178 resolves the ToDo for the failed job3179 when the job has needs3180 bulk inserts all the needs3181 when the user does not have permission to execute the job3182 raises an error3183 when there are subsequent processables that are skipped3184 resumes pipeline processing in the subsequent stage3185 updates ownership for subsequent builds3186 updates ownership for subsequent bridges3187 when the pipeline has other jobs3188 when job has a nil scheduling_type3189 populates scheduling_type of processables3190 when job has scheduling_type3191 does not call populate_scheduling_type!3192 when the pipeline is a child pipeline and the bridge uses strategy:depend3193 marks the source bridge as pending3194 automatic retryable build3195 creates a new build and enqueues BuildQueueWorker3196 when there are subsequent jobs that are skipped3197 does not cause an N+1 when updating the job ownership3198 when given variables3199 when the build is actionable3200 gives variables to the new build3201 when the build is not actionable3202 does not give variables to the new build3203 when job being retried has jobs in previous stages3204 previous_stage_job_status: :created, after_status: "created"3205 updates the new job status to after_status3206 previous_stage_job_status: :pending, after_status: "created"3207 updates the new job status to after_status3208 previous_stage_job_status: :running, after_status: "created"3209 updates the new job status to after_status3210 previous_stage_job_status: :manual, after_status: "created"3211 updates the new job status to after_status3212 previous_stage_job_status: :scheduled, after_status: "created"3213 updates the new job status to after_status3214 previous_stage_job_status: :success, after_status: "pending"3215 updates the new job status to after_status3216 previous_stage_job_status: :failed, after_status: "skipped"3217 updates the new job status to after_status3218 previous_stage_job_status: :skipped, after_status: "pending"3219 updates the new job status to after_status3220 when job being retried has DAG dependencies3221 dag_dependency_status: :created, after_status: "created"3222 updates the new job status to after_status3223 dag_dependency_status: :pending, after_status: "created"3224 updates the new job status to after_status3225 dag_dependency_status: :running, after_status: "created"3226 updates the new job status to after_status3227 dag_dependency_status: :manual, after_status: "created"3228 updates the new job status to after_status3229 dag_dependency_status: :scheduled, after_status: "created"3230 updates the new job status to after_status3231 dag_dependency_status: :success, after_status: "pending"3232 updates the new job status to after_status3233 dag_dependency_status: :failed, after_status: "skipped"3234 updates the new job status to after_status3235 dag_dependency_status: :skipped, after_status: "skipped"3236 updates the new job status to after_status3237 when there are other manual/scheduled jobs3238 trait: nil, enqueue_immediately: false3239 retries the given job but not the other manual/scheduled jobs3240 behaves like checks enqueue_immediately?3241 returns enqueue_immediately3242 trait: :manual, enqueue_immediately: true3243 retries the given job but not the other manual/scheduled jobs3244 behaves like checks enqueue_immediately?3245 returns enqueue_immediately3246 trait: :expired_scheduled, enqueue_immediately: true3247 retries the given job but not the other manual/scheduled jobs3248 behaves like checks enqueue_immediately?3249 returns enqueue_immediately3250Gitlab::HealthChecks::Redis3251 # order random3252 ALL_INSTANCE_CHECKS3253 is expected to include Gitlab::HealthChecks::Redis::CacheCheck and Gitlab::HealthChecks::Redis::QueuesCheck3254 contains a check for each redis instance3255 all checks3256 Gitlab::HealthChecks::Redis::CacheCheck3257 #metrics3258 Check is passing3259 is expected to include (have attributes {:name => "redis_cache_ping_success", :value => 1})3260 is expected to include (have attributes {:name => "redis_cache_ping_timeout", :value => 0})3261 is expected to include (have attributes {:name => "redis_cache_ping_latency_seconds", :value => (be >= 0)})3262 Check is misbehaving3263 is expected to include (have attributes {:name => "redis_cache_ping_success", :value => 0})3264 is expected to include (have attributes {:name => "redis_cache_ping_timeout", :value => 0})3265 is expected to include (have attributes {:name => "redis_cache_ping_latency_seconds", :value => (be >= 0)})3266 Check is timeouting3267 is expected to include (have attributes {:name => "redis_cache_ping_success", :value => 0})3268 is expected to include (have attributes {:name => "redis_cache_ping_timeout", :value => 1})3269 is expected to include (have attributes {:name => "redis_cache_ping_latency_seconds", :value => (be >= 0)})3270 #readiness3271 Check returns ok3272 is expected to have attributes {:success => true}3273 Check is misbehaving3274 is expected to have attributes {:message => "unexpected Cache check result: error!", :success => false}3275 Check is timeouting3276 is expected to have attributes {:message => "Cache check timed out", :success => false}3277 Check is raising an unhandled exception3278 is expected to have attributes {:message => "unexpected Cache check result: unexpected error", :success => false}3279 Gitlab::HealthChecks::Redis::ClusterSharedStateCheck3280 #metrics3281 Check is passing3282 is expected to include (have attributes {:name => "redis_cluster_shared_state_ping_success", :value => 1})3283 is expected to include (have attributes {:name => "redis_cluster_shared_state_ping_timeout", :value => 0})3284 is expected to include (have attributes {:name => "redis_cluster_shared_state_ping_latency_seconds", :value => (be >= 0)})3285 Check is misbehaving3286 is expected to include (have attributes {:name => "redis_cluster_shared_state_ping_success", :value => 0})3287 is expected to include (have attributes {:name => "redis_cluster_shared_state_ping_timeout", :value => 0})3288 is expected to include (have attributes {:name => "redis_cluster_shared_state_ping_latency_seconds", :value => (be >= 0)})3289 Check is timeouting3290 is expected to include (have attributes {:name => "redis_cluster_shared_state_ping_success", :value => 0})3291 is expected to include (have attributes {:name => "redis_cluster_shared_state_ping_timeout", :value => 1})3292 is expected to include (have attributes {:name => "redis_cluster_shared_state_ping_latency_seconds", :value => (be >= 0)})3293 #readiness3294 Check returns ok3295 is expected to have attributes {:success => true}3296 Check is misbehaving3297 is expected to have attributes {:message => "unexpected Cluster_shared_state check result: error!", :success => false}3298 Check is timeouting3299 is expected to have attributes {:message => "Cluster_shared_state check timed out", :success => false}3300 Check is raising an unhandled exception3301 is expected to have attributes {:message => "unexpected Cluster_shared_state check result: unexpected error", :success => false}3302 Gitlab::HealthChecks::Redis::DbLoadBalancingCheck3303 #metrics3304 Check is passing3305 is expected to include (have attributes {:name => "redis_db_load_balancing_ping_success", :value => 1})3306 is expected to include (have attributes {:name => "redis_db_load_balancing_ping_timeout", :value => 0})3307 is expected to include (have attributes {:name => "redis_db_load_balancing_ping_latency_seconds", :value => (be >= 0)})3308 Check is misbehaving3309 is expected to include (have attributes {:name => "redis_db_load_balancing_ping_success", :value => 0})3310 is expected to include (have attributes {:name => "redis_db_load_balancing_ping_timeout", :value => 0})3311 is expected to include (have attributes {:name => "redis_db_load_balancing_ping_latency_seconds", :value => (be >= 0)})3312 Check is timeouting3313 is expected to include (have attributes {:name => "redis_db_load_balancing_ping_success", :value => 0})3314 is expected to include (have attributes {:name => "redis_db_load_balancing_ping_timeout", :value => 1})3315 is expected to include (have attributes {:name => "redis_db_load_balancing_ping_latency_seconds", :value => (be >= 0)})3316 #readiness3317 Check returns ok3318 is expected to have attributes {:success => true}3319 Check is misbehaving3320 is expected to have attributes {:message => "unexpected Db_load_balancing check result: error!", :success => false}3321 Check is timeouting3322 is expected to have attributes {:message => "Db_load_balancing check timed out", :success => false}3323 Check is raising an unhandled exception3324 is expected to have attributes {:message => "unexpected Db_load_balancing check result: unexpected error", :success => false}3325 Gitlab::HealthChecks::Redis::FeatureFlagCheck3326 #metrics3327 Check is passing3328 is expected to include (have attributes {:name => "redis_feature_flag_ping_success", :value => 1})3329 is expected to include (have attributes {:name => "redis_feature_flag_ping_timeout", :value => 0})3330 is expected to include (have attributes {:name => "redis_feature_flag_ping_latency_seconds", :value => (be >= 0)})3331 Check is misbehaving3332 is expected to include (have attributes {:name => "redis_feature_flag_ping_success", :value => 0})3333 is expected to include (have attributes {:name => "redis_feature_flag_ping_timeout", :value => 0})3334 is expected to include (have attributes {:name => "redis_feature_flag_ping_latency_seconds", :value => (be >= 0)})3335 Check is timeouting3336 is expected to include (have attributes {:name => "redis_feature_flag_ping_success", :value => 0})3337 is expected to include (have attributes {:name => "redis_feature_flag_ping_timeout", :value => 1})3338 is expected to include (have attributes {:name => "redis_feature_flag_ping_latency_seconds", :value => (be >= 0)})3339 #readiness3340 Check returns ok3341 is expected to have attributes {:success => true}3342 Check is misbehaving3343 is expected to have attributes {:message => "unexpected Feature_flag check result: error!", :success => false}3344 Check is timeouting3345 is expected to have attributes {:message => "Feature_flag check timed out", :success => false}3346 Check is raising an unhandled exception3347 is expected to have attributes {:message => "unexpected Feature_flag check result: unexpected error", :success => false}3348 Gitlab::HealthChecks::Redis::QueuesCheck3349 #metrics3350 Check is passing3351 is expected to include (have attributes {:name => "redis_queues_ping_success", :value => 1})3352 is expected to include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})3353 is expected to include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})3354 Check is misbehaving3355 is expected to include (have attributes {:name => "redis_queues_ping_success", :value => 0})3356 is expected to include (have attributes {:name => "redis_queues_ping_timeout", :value => 0})3357 is expected to include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})3358 Check is timeouting3359 is expected to include (have attributes {:name => "redis_queues_ping_success", :value => 0})3360 is expected to include (have attributes {:name => "redis_queues_ping_timeout", :value => 1})3361 is expected to include (have attributes {:name => "redis_queues_ping_latency_seconds", :value => (be >= 0)})3362 #readiness3363 Check returns ok3364 is expected to have attributes {:success => true}3365 Check is misbehaving3366 is expected to have attributes {:message => "unexpected Queues check result: error!", :success => false}3367 Check is timeouting3368 is expected to have attributes {:message => "Queues check timed out", :success => false}3369 Check is raising an unhandled exception3370 is expected to have attributes {:message => "unexpected Queues check result: unexpected error", :success => false}3371 Gitlab::HealthChecks::Redis::QueuesMetadataCheck3372 #metrics3373 Check is passing3374 is expected to include (have attributes {:name => "redis_queues_metadata_ping_success", :value => 1})3375 is expected to include (have attributes {:name => "redis_queues_metadata_ping_timeout", :value => 0})3376 is expected to include (have attributes {:name => "redis_queues_metadata_ping_latency_seconds", :value => (be >= 0)})3377 Check is misbehaving3378 is expected to include (have attributes {:name => "redis_queues_metadata_ping_success", :value => 0})3379 is expected to include (have attributes {:name => "redis_queues_metadata_ping_timeout", :value => 0})3380 is expected to include (have attributes {:name => "redis_queues_metadata_ping_latency_seconds", :value => (be >= 0)})3381 Check is timeouting3382 is expected to include (have attributes {:name => "redis_queues_metadata_ping_success", :value => 0})3383 is expected to include (have attributes {:name => "redis_queues_metadata_ping_timeout", :value => 1})3384 is expected to include (have attributes {:name => "redis_queues_metadata_ping_latency_seconds", :value => (be >= 0)})3385 #readiness3386 Check returns ok3387 is expected to have attributes {:success => true}3388 Check is misbehaving3389 is expected to have attributes {:message => "unexpected Queues_metadata check result: error!", :success => false}3390 Check is timeouting3391 is expected to have attributes {:message => "Queues_metadata check timed out", :success => false}3392 Check is raising an unhandled exception3393 is expected to have attributes {:message => "unexpected Queues_metadata check result: unexpected error", :success => false}3394 Gitlab::HealthChecks::Redis::PubsubCheck3395 #metrics3396 Check is passing3397 is expected to include (have attributes {:name => "redis_pubsub_ping_success", :value => 1})3398 is expected to include (have attributes {:name => "redis_pubsub_ping_timeout", :value => 0})3399 is expected to include (have attributes {:name => "redis_pubsub_ping_latency_seconds", :value => (be >= 0)})3400 Check is misbehaving3401 is expected to include (have attributes {:name => "redis_pubsub_ping_success", :value => 0})3402 is expected to include (have attributes {:name => "redis_pubsub_ping_timeout", :value => 0})3403 is expected to include (have attributes {:name => "redis_pubsub_ping_latency_seconds", :value => (be >= 0)})3404 Check is timeouting3405 is expected to include (have attributes {:name => "redis_pubsub_ping_success", :value => 0})3406 is expected to include (have attributes {:name => "redis_pubsub_ping_timeout", :value => 1})3407 is expected to include (have attributes {:name => "redis_pubsub_ping_latency_seconds", :value => (be >= 0)})3408 #readiness3409 Check returns ok3410 is expected to have attributes {:success => true}3411 Check is misbehaving3412 is expected to have attributes {:message => "unexpected Pubsub check result: error!", :success => false}3413 Check is timeouting3414 is expected to have attributes {:message => "Pubsub check timed out", :success => false}3415 Check is raising an unhandled exception3416 is expected to have attributes {:message => "unexpected Pubsub check result: unexpected error", :success => false}3417 Gitlab::HealthChecks::Redis::RateLimitingCheck3418 #metrics3419 Check is passing3420 is expected to include (have attributes {:name => "redis_rate_limiting_ping_success", :value => 1})3421 is expected to include (have attributes {:name => "redis_rate_limiting_ping_timeout", :value => 0})3422 is expected to include (have attributes {:name => "redis_rate_limiting_ping_latency_seconds", :value => (be >= 0)})3423 Check is misbehaving3424 is expected to include (have attributes {:name => "redis_rate_limiting_ping_success", :value => 0})3425 is expected to include (have attributes {:name => "redis_rate_limiting_ping_timeout", :value => 0})3426 is expected to include (have attributes {:name => "redis_rate_limiting_ping_latency_seconds", :value => (be >= 0)})3427 Check is timeouting3428 is expected to include (have attributes {:name => "redis_rate_limiting_ping_success", :value => 0})3429 is expected to include (have attributes {:name => "redis_rate_limiting_ping_timeout", :value => 1})3430 is expected to include (have attributes {:name => "redis_rate_limiting_ping_latency_seconds", :value => (be >= 0)})3431 #readiness3432 Check returns ok3433 is expected to have attributes {:success => true}3434 Check is misbehaving3435 is expected to have attributes {:message => "unexpected Rate_limiting check result: error!", :success => false}3436 Check is timeouting3437 is expected to have attributes {:message => "Rate_limiting check timed out", :success => false}3438 Check is raising an unhandled exception3439 is expected to have attributes {:message => "unexpected Rate_limiting check result: unexpected error", :success => false}3440 Gitlab::HealthChecks::Redis::RepositoryCacheCheck3441 #metrics3442 Check is passing3443 is expected to include (have attributes {:name => "redis_repository_cache_ping_success", :value => 1})3444 is expected to include (have attributes {:name => "redis_repository_cache_ping_timeout", :value => 0})3445 is expected to include (have attributes {:name => "redis_repository_cache_ping_latency_seconds", :value => (be >= 0)})3446 Check is misbehaving3447 is expected to include (have attributes {:name => "redis_repository_cache_ping_success", :value => 0})3448 is expected to include (have attributes {:name => "redis_repository_cache_ping_timeout", :value => 0})3449 is expected to include (have attributes {:name => "redis_repository_cache_ping_latency_seconds", :value => (be >= 0)})3450 Check is timeouting3451 is expected to include (have attributes {:name => "redis_repository_cache_ping_success", :value => 0})3452 is expected to include (have attributes {:name => "redis_repository_cache_ping_timeout", :value => 1})3453 is expected to include (have attributes {:name => "redis_repository_cache_ping_latency_seconds", :value => (be >= 0)})3454 #readiness3455 Check returns ok3456 is expected to have attributes {:success => true}3457 Check is misbehaving3458 is expected to have attributes {:message => "unexpected Repository_cache check result: error!", :success => false}3459 Check is timeouting3460 is expected to have attributes {:message => "Repository_cache check timed out", :success => false}3461 Check is raising an unhandled exception3462 is expected to have attributes {:message => "unexpected Repository_cache check result: unexpected error", :success => false}3463 Gitlab::HealthChecks::Redis::SessionsCheck3464 #metrics3465 Check is passing3466 is expected to include (have attributes {:name => "redis_sessions_ping_success", :value => 1})3467 is expected to include (have attributes {:name => "redis_sessions_ping_timeout", :value => 0})3468 is expected to include (have attributes {:name => "redis_sessions_ping_latency_seconds", :value => (be >= 0)})3469 Check is misbehaving3470 is expected to include (have attributes {:name => "redis_sessions_ping_success", :value => 0})3471 is expected to include (have attributes {:name => "redis_sessions_ping_timeout", :value => 0})3472 is expected to include (have attributes {:name => "redis_sessions_ping_latency_seconds", :value => (be >= 0)})3473 Check is timeouting3474 is expected to include (have attributes {:name => "redis_sessions_ping_success", :value => 0})3475 is expected to include (have attributes {:name => "redis_sessions_ping_timeout", :value => 1})3476 is expected to include (have attributes {:name => "redis_sessions_ping_latency_seconds", :value => (be >= 0)})3477 #readiness3478 Check returns ok3479 is expected to have attributes {:success => true}3480 Check is misbehaving3481 is expected to have attributes {:message => "unexpected Sessions check result: error!", :success => false}3482 Check is timeouting3483 is expected to have attributes {:message => "Sessions check timed out", :success => false}3484 Check is raising an unhandled exception3485 is expected to have attributes {:message => "unexpected Sessions check result: unexpected error", :success => false}3486 Gitlab::HealthChecks::Redis::SharedStateCheck3487 #metrics3488 Check is passing3489 is expected to include (have attributes {:name => "redis_shared_state_ping_success", :value => 1})3490 is expected to include (have attributes {:name => "redis_shared_state_ping_timeout", :value => 0})3491 is expected to include (have attributes {:name => "redis_shared_state_ping_latency_seconds", :value => (be >= 0)})3492 Check is misbehaving3493 is expected to include (have attributes {:name => "redis_shared_state_ping_success", :value => 0})3494 is expected to include (have attributes {:name => "redis_shared_state_ping_timeout", :value => 0})3495 is expected to include (have attributes {:name => "redis_shared_state_ping_latency_seconds", :value => (be >= 0)})3496 Check is timeouting3497 is expected to include (have attributes {:name => "redis_shared_state_ping_success", :value => 0})3498 is expected to include (have attributes {:name => "redis_shared_state_ping_timeout", :value => 1})3499 is expected to include (have attributes {:name => "redis_shared_state_ping_latency_seconds", :value => (be >= 0)})3500 #readiness3501 Check returns ok3502 is expected to have attributes {:success => true}3503 Check is misbehaving3504 is expected to have attributes {:message => "unexpected Shared_state check result: error!", :success => false}3505 Check is timeouting3506 is expected to have attributes {:message => "Shared_state check timed out", :success => false}3507 Check is raising an unhandled exception3508 is expected to have attributes {:message => "unexpected Shared_state check result: unexpected error", :success => false}3509 Gitlab::HealthChecks::Redis::TraceChunksCheck3510 #metrics3511 Check is passing3512 is expected to include (have attributes {:name => "redis_trace_chunks_ping_success", :value => 1})3513 is expected to include (have attributes {:name => "redis_trace_chunks_ping_timeout", :value => 0})3514 is expected to include (have attributes {:name => "redis_trace_chunks_ping_latency_seconds", :value => (be >= 0)})3515 Check is misbehaving3516 is expected to include (have attributes {:name => "redis_trace_chunks_ping_success", :value => 0})3517 is expected to include (have attributes {:name => "redis_trace_chunks_ping_timeout", :value => 0})3518 is expected to include (have attributes {:name => "redis_trace_chunks_ping_latency_seconds", :value => (be >= 0)})3519 Check is timeouting3520 is expected to include (have attributes {:name => "redis_trace_chunks_ping_success", :value => 0})3521 is expected to include (have attributes {:name => "redis_trace_chunks_ping_timeout", :value => 1})3522 is expected to include (have attributes {:name => "redis_trace_chunks_ping_latency_seconds", :value => (be >= 0)})3523 #readiness3524 Check returns ok3525 is expected to have attributes {:success => true}3526 Check is misbehaving3527 is expected to have attributes {:message => "unexpected Trace_chunks check result: error!", :success => false}3528 Check is timeouting3529 is expected to have attributes {:message => "Trace_chunks check timed out", :success => false}3530 Check is raising an unhandled exception3531 is expected to have attributes {:message => "unexpected Trace_chunks check result: unexpected error", :success => false}3532 Gitlab::HealthChecks::Redis::ChatCheck3533 #metrics3534 Check is passing3535 is expected to include (have attributes {:name => "redis_chat_ping_success", :value => 1})3536 is expected to include (have attributes {:name => "redis_chat_ping_timeout", :value => 0})3537 is expected to include (have attributes {:name => "redis_chat_ping_latency_seconds", :value => (be >= 0)})3538 Check is misbehaving3539 is expected to include (have attributes {:name => "redis_chat_ping_success", :value => 0})3540 is expected to include (have attributes {:name => "redis_chat_ping_timeout", :value => 0})3541 is expected to include (have attributes {:name => "redis_chat_ping_latency_seconds", :value => (be >= 0)})3542 Check is timeouting3543 is expected to include (have attributes {:name => "redis_chat_ping_success", :value => 0})3544 is expected to include (have attributes {:name => "redis_chat_ping_timeout", :value => 1})3545 is expected to include (have attributes {:name => "redis_chat_ping_latency_seconds", :value => (be >= 0)})3546 #readiness3547 Check returns ok3548 is expected to have attributes {:success => true}3549 Check is misbehaving3550 is expected to have attributes {:message => "unexpected Chat check result: error!", :success => false}3551 Check is timeouting3552 is expected to have attributes {:message => "Chat check timed out", :success => false}3553 Check is raising an unhandled exception3554 is expected to have attributes {:message => "unexpected Chat check result: unexpected error", :success => false}3555 Gitlab::HealthChecks::Redis::WorkhorseCheck3556 #metrics3557 Check is passing3558 is expected to include (have attributes {:name => "redis_workhorse_ping_success", :value => 1})3559 is expected to include (have attributes {:name => "redis_workhorse_ping_timeout", :value => 0})3560 is expected to include (have attributes {:name => "redis_workhorse_ping_latency_seconds", :value => (be >= 0)})3561 Check is misbehaving3562 is expected to include (have attributes {:name => "redis_workhorse_ping_success", :value => 0})3563 is expected to include (have attributes {:name => "redis_workhorse_ping_timeout", :value => 0})3564 is expected to include (have attributes {:name => "redis_workhorse_ping_latency_seconds", :value => (be >= 0)})3565 Check is timeouting3566 is expected to include (have attributes {:name => "redis_workhorse_ping_success", :value => 0})3567 is expected to include (have attributes {:name => "redis_workhorse_ping_timeout", :value => 1})3568 is expected to include (have attributes {:name => "redis_workhorse_ping_latency_seconds", :value => (be >= 0)})3569 #readiness3570 Check returns ok3571 is expected to have attributes {:success => true}3572 Check is misbehaving3573 is expected to have attributes {:message => "unexpected Workhorse check result: error!", :success => false}3574 Check is timeouting3575 is expected to have attributes {:message => "Workhorse check timed out", :success => false}3576 Check is raising an unhandled exception3577 is expected to have attributes {:message => "unexpected Workhorse check result: unexpected error", :success => false}3578Gitlab::Conflict::File3579 delegates3580 is expected to delegate #type to the #raw object3581 is expected to delegate #content to the #raw object3582 is expected to delegate #path to the #raw object3583 is expected to delegate #ancestor_path to the #raw object3584 is expected to delegate #their_path to the #raw object3585 is expected to delegate #our_path to the #raw object3586 is expected to delegate #our_mode to the #raw object3587 is expected to delegate #our_blob to the #raw object3588 is expected to delegate #repository to the #raw object3589 #resolve_lines3590 raises ResolutionError when passed a hash without resolutions for all sections3591 when resolving everything to the same side3592 has the correct number of lines3593 has content matching the chosen lines3594 with mixed resolutions3595 has the correct number of lines3596 returns a file containing only the chosen parts of the resolved sections3597 #highlight_lines!3598 is called implicitly when rich_text is accessed on a line3599 sets the rich_text of the lines matching the text content3600 highlights the lines correctly3601 #diff_lines_for_serializer3602 assigns conflict types to the diff lines3603 swaps the new and old positions around3604 does not add a match line to the end of the section3605 when there are unchanged trailing lines3606 assign conflict types and adds match line to the end of the section3607 #sections3608 only inserts match lines when there is a gap between sections3609 sets conflict to false for sections with only unchanged lines3610 only includes a maximum of CONTEXT_LINES (plus an optional match line) in context sections3611 sets conflict to true for sections with only changed lines3612 adds unique IDs to conflict sections, and not to other sections3613 with an example file3614 sets the correct match line headers3615 does not add match lines where they are not needed3616 creates context sections of the correct length3617 #as_json3618 includes the blob path for the file3619 includes the blob icon for the file3620 with the full_content option passed3621 includes the full content of the conflict3622 #conflict_type3623 ancestor_path: "/ancestor/path", their_path: "/their/path", our_path: "/our/path", renamed_file?: false, result: :both_modified3624 is expected to eq :both_modified3625 ancestor_path: "/ancestor/path", their_path: "", our_path: "/our/path", renamed_file?: false, result: :modified_source_removed_target3626 is expected to eq :modified_source_removed_target3627 ancestor_path: "/ancestor/path", their_path: "/their/path", our_path: "", renamed_file?: false, result: :modified_target_removed_source3628 is expected to eq :modified_target_removed_source3629 ancestor_path: "", their_path: "/their/path", our_path: "/our/path", renamed_file?: false, result: :both_added3630 is expected to eq :both_added3631 ancestor_path: "", their_path: "", our_path: "/our/path", renamed_file?: false, result: :removed_target_renamed_source3632 is expected to eq :removed_target_renamed_source3633 ancestor_path: "", their_path: "", our_path: "/our/path", renamed_file?: true, result: :renamed_same_file3634 is expected to eq :renamed_same_file3635 ancestor_path: "", their_path: "/their/path", our_path: "", renamed_file?: false, result: :removed_source_renamed_target3636 is expected to eq :removed_source_renamed_target3637ProjectStatistics3638 associations3639 is expected to belong to project required: false3640 is expected to belong to namespace required: false3641 scopes3642 .for_project_ids3643 returns only requested projects3644 callbacks3645 on after_commit3646 when storage size components are updated3647 updates the correct storage size for relevant attributes3648 when storage size components are not updated3649 does not affect the storage_size total3650 with race conditions3651 handles concurrent updates correctly3652 statistics columns3653 supports bigint values3654 namespace relatable columns3655 treats the correct columns as namespace relatable3656 #total_repository_size3657 sums repository and LFS object size3658 #wiki_size3659 is initialized with not null value3660 coerces any nil value to 03661 #snippets_size3662 is initialized with not null value3663 coerces any nil value to 03664 #refresh!3665 without arguments3666 sums all counters3667 when passing an only: argument3668 only updates the given columns3669 without repositories3670 does not crash3671 with deleted repositories3672 does not crash3673 when the column is namespace relatable3674 when arguments are passed3675 schedules the aggregation worker3676 when no argument is passed3677 schedules the aggregation worker3678 when the column is not namespace relatable3679 does not schedules an aggregation worker3680 when the database is read-only3681 does nothing3682 behaves like obtaining lease to update database3683 when it is unable to obtain lock3684 logs a warning3685 #update_commit_count3686 stores the number of commits in the repository3687 #update_repository_size3688 stores the size of the repository3689 #update_wiki_size3690 stores the size of the wiki3691 #update_snippets_size3692 stores the size of snippets3693 when not all snippets has statistics3694 stores the size of snippets with statistics3695 #update_lfs_objects_size3696 stores the size of related LFS objects3697 #update_uploads_size3698 stores the size of related uploaded files3699 #update_container_registry_size3700 stores the project container registry repositories size3701 handles nil values for the repositories size3702 #refresh_storage_size!3703 recalculates storage size from its components and save it3704 when nullable columns are nil3705 does not raise any error3706 recalculates storage size from its components3707 behaves like obtaining lease to update database3708 when it is unable to obtain lock3709 logs a warning3710 .increment_statistic3711 when adjusting :build_artifacts_size3712 behaves like a statistic that increases storage_size asynchronously3713 stores the increment temporarily in Redis3714 schedules a worker to update the statistic and storage_size async3715 when the project is pending delete3716 does not change the statistics3717 when adjusting :pipeline_artifacts_size3718 behaves like a statistic that increases storage_size synchronously3719 increases the statistic by that amount3720 does not increase the storage size by that amount3721 schedules a namespace aggregation worker3722 when the project is pending delete3723 does not change the statistics3724 when adjusting :packages_size3725 behaves like a statistic that increases storage_size asynchronously3726 stores the increment temporarily in Redis3727 schedules a worker to update the statistic and storage_size async3728 when the project is pending delete3729 does not change the statistics3730 when the amount is 03731 does not execute a query3732 when using an invalid column3733 raises an error3734 .bulk_increment_statistic3735 when adjusting :build_artifacts_size3736 behaves like a statistic that increases storage_size asynchronously3737 stores the increment temporarily in Redis3738 schedules a worker to update the statistic and storage_size async3739 when the project is pending delete3740 does not change the statistics3741 when adjusting :pipeline_artifacts_size3742 behaves like a statistic that increases storage_size synchronously3743 increases the statistic by that amount3744 does not increase the storage size by that amount3745 schedules a namespace aggregation worker3746 when the project is pending delete3747 does not change the statistics3748 when adjusting :packages_size3749 behaves like a statistic that increases storage_size asynchronously3750 stores the increment temporarily in Redis3751 schedules a worker to update the statistic and storage_size async3752 when the project is pending delete3753 does not change the statistics3754 when using an invalid column3755 raises an error3756PersonalAccessTokensFinder3757 #execute3758 by current user3759 with no user3760 returns all tokens3761 with admin3762 when admin mode setting is disabled3763 returns all tokens3764 when admin mode setting is enabled3765 when in admin mode3766 returns all tokens3767 when not in admin mode3768 returns no tokens3769 when user can read user personal access tokens3770 returns tokens of user3771 when user can not read user personal access tokens3772 returns no tokens3773 by user3774 by_user: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3775 returns tokens by user3776 by_user: user, expected_tokens: [:active, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation]3777 returns tokens by user3778 by_user: other_user, expected_tokens: [:active_other]3779 returns tokens by user3780 by_user: admin, expected_tokens: []3781 returns tokens by user3782 by users3783 by_users: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3784 returns tokens by users3785 by_users: lazy { [user] }, expected_tokens: [:active, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation]3786 returns tokens by users3787 by_users: lazy { [other_user] }, expected_tokens: [:active_other]3788 returns tokens by users3789 by_users: lazy { [user, other_user] }, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation]3790 returns tokens by users3791 by_users: [], expected_tokens: []3792 returns tokens by users3793 by impersonation3794 by_impersonation: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3795 returns tokens by impersonation3796 by_impersonation: true, expected_tokens: [:active_impersonation, :expired_impersonation, :revoked_impersonation]3797 returns tokens by impersonation3798 by_impersonation: false, expected_tokens: [:active, :active_other, :expired, :revoked, :bot]3799 returns tokens by impersonation3800 by_impersonation: "other", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3801 returns tokens by impersonation3802 by state3803 by_state: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3804 returns tokens by state3805 by_state: "active", expected_tokens: [:active, :active_other, :active_impersonation, :bot]3806 returns tokens by state3807 by_state: "inactive", expected_tokens: [:expired, :revoked, :expired_impersonation, :revoked_impersonation]3808 returns tokens by state3809 by_state: "other", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3810 returns tokens by state3811 by owner type3812 by_owner_type: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3813 returns tokens by owner type3814 by_owner_type: "human", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation]3815 returns tokens by owner type3816 by_owner_type: "other", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3817 returns tokens by owner type3818 by revoked state3819 by_revoked_state: nil, expected_tokens: [:active, :active_other, :expired, :active_impersonation, :expired_impersonation, :bot]3820 returns tokens by revoked state3821 by_revoked_state: true, expected_tokens: [:revoked, :revoked_impersonation]3822 returns tokens by revoked state3823 by_revoked_state: false, expected_tokens: [:active, :active_other, :expired, :active_impersonation, :expired_impersonation, :bot]3824 returns tokens by revoked state3825 by created date3826 by created before3827 by_created_before: Sat, 14 Oct 2023 08:28:39.759583875 UTC +00:00, expected_tokens: []3828 returns tokens by created before3829 by_created_before: Wed, 18 Oct 2023 08:28:39.759828825 UTC +00:00, expected_tokens: [:active_other]3830 returns tokens by created before3831 by_created_before: Sun, 22 Oct 2023 08:28:39.759944015 UTC +00:00, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3832 returns tokens by created before3833 by created after3834 by_created_after: Sat, 14 Oct 2023 08:28:41.207484257 UTC +00:00, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3835 returns tokens by created before3836 by_created_after: Wed, 18 Oct 2023 08:28:41.687462851 UTC +00:00, expected_tokens: [:active, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3837 returns tokens by created before3838 by_created_after: Sun, 22 Oct 2023 08:28:41.687595361 UTC +00:00, expected_tokens: []3839 returns tokens by created before3840 by last used date3841 by last used before3842 by_last_used_before: Sat, 14 Oct 2023 08:28:41.691007720 UTC +00:00, expected_tokens: []3843 returns tokens by last used before3844 by_last_used_before: Wed, 18 Oct 2023 08:28:41.691141420 UTC +00:00, expected_tokens: [:active_other]3845 returns tokens by last used before3846 by_last_used_before: Sun, 22 Oct 2023 08:28:41.691245400 UTC +00:00, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3847 returns tokens by last used before3848 by last used after3849 by_last_used_after: Sat, 14 Oct 2023 08:28:42.159570235 UTC +00:00, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3850 returns tokens by last used after3851 by_last_used_after: Wed, 18 Oct 2023 08:28:42.648564079 UTC +00:00, expected_tokens: [:active, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3852 returns tokens by last used after3853 by_last_used_after: Sun, 22 Oct 2023 08:28:42.648721669 UTC +00:00, expected_tokens: []3854 returns tokens by last used after3855 by search3856 by_search: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3857 returns tokens by search3858 by_search: "my_pat", expected_tokens: [:active, :active_other]3859 returns tokens by search3860 by_search: "other", expected_tokens: []3861 returns tokens by search3862 sort3863 sort: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3864 returns ordered tokens3865 sort: "id_asc", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3866 returns ordered tokens3867 sort: "id_desc", expected_tokens: [:bot, :revoked_impersonation, :expired_impersonation, :active_impersonation, :revoked, :expired, :active_other, :active]3868 returns ordered tokens3869 sort: "other", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3870 returns ordered tokens3871 delegates3872 #find_by_id3873 returns token by id3874 #find_by_token3875 returns token by token3876 #find3877 returns token by id3878WorkItems::UpdateService3879 #execute3880 when applying quick actions3881 when work item type is not the default Issue3882 does not apply the quick action3883 when work item type is the default Issue3884 applies the quick action3885 when title is changed3886 triggers issuable_title_updated graphql subscription3887 behaves like internal event tracking3888 logs to Snowplow3889 behaves like update service that triggers GraphQL work_item_updated subscription3890 triggers graphql subscription workItemUpdated3891 when title is not changed3892 does not trigger issuable_title_updated graphql subscription3893 does not emit Snowplow event3894 when dates are changed3895 tracks users updating work item dates3896 behaves like update service that triggers GraphQL work_item_updated subscription3897 triggers graphql subscription workItemUpdated3898 when decription is changed3899 triggers GraphQL description updated subscription3900 behaves like update service that triggers GraphQL work_item_updated subscription3901 triggers graphql subscription workItemUpdated3902 when decription is not changed3903 does not trigger GraphQL description updated subscription3904 when updating state_event3905 when state_event is close3906 closes the work item3907 when state_event is reopen3908 reopens the work item3909 behaves like work item widgetable service3910 executes callbacks for expected widgets3911 when updating widgets3912 when widget service is not present3913 ignores widget param3914 when the widget does not support update callback3915 ignores widget param3916 for the description widget3917 updates the description of the work item3918 behaves like update service that triggers GraphQL work_item_updated subscription3919 triggers graphql subscription workItemUpdated3920 with mentions3921 when description contains a user mention3922 behaves like creates the todo and sends email3923 creates a todo and sends email3924 when title contains a user mention3925 behaves like creates the todo and sends email3926 creates a todo and sends email3927 when work item validation fails3928 returns validation errors3929 does not execute after-update widgets3930 for start and due date widget3931 when due_date is updated3932 behaves like update service that triggers graphql dates updated subscription3933 triggers graphql subscription issueableDatesUpdated3934 when start_date is updated3935 behaves like update service that triggers graphql dates updated subscription3936 triggers graphql subscription issueableDatesUpdated3937 when no date param is updated3938 does not trigger date updated subscription3939 for the hierarchy widget3940 updates the children of the work item3941 behaves like update service that triggers GraphQL work_item_updated subscription3942 triggers graphql subscription workItemUpdated3943 when child type is invalid3944 returns error status3945 does not update work item attributes3946 when work item validation fails3947 returns validation errors3948 does not execute after-update widgets3949 for milestone widget3950 when milestone is updated3951 triggers 'issuableMilestoneUpdated'3952 behaves like update service that triggers GraphQL work_item_updated subscription3953 triggers graphql subscription workItemUpdated3954 when milestone remains unchanged3955 does not trigger 'issuableMilestoneUpdated'3956 for current user todos widget3957 when action is mark_as_done3958 marks current user todo as done3959 behaves like update service that triggers GraphQL work_item_updated subscription3960 triggers graphql subscription workItemUpdated3961 when action is add3962 adds a ToDo for the work item3963 label updates3964 when labels are changed3965 tracks users updating work item labels3966 behaves like update service that triggers GraphQL work_item_updated subscription3967 triggers graphql subscription workItemUpdated3968 behaves like broadcasting issuable labels updates3969 when label is added3970 triggers the GraphQL subscription3971 when label is removed3972 triggers the GraphQL subscription3973 when label is unchanged3974 does not trigger the GraphQL subscription3975 when labels are not changed3976 when labels param is not provided3977 behaves like work item update that does not track label updates3978 does not track users updating work item labels3979 when labels param is provided but labels remain unchanged3980 behaves like work item update that does not track label updates3981 does not track users updating work item labels3982 when labels param is provided invalid values3983 behaves like work item update that does not track label updates3984 does not track users updating work item labels3985WorkItem3986 associations3987 is expected to belong to namespace required: false3988 is expected to have one work_item_parent class_name => WorkItem3989 has one `parent_link`3990 has many `work_item_children`3991 has many `work_item_children_by_relative_position`3992 has many `child_links`3993 .work_item_children_by_relative_position3994 when ordered by relative position and created_at3995 oldest_item_position: nil, middle_item_position: nil, newest_item_position: nil, expected_order: lazy { [oldest_item, middle_item, newest_item] }3996 is expected to eq [#<WorkItem id:230 namespace993/project-1013#2>, #<WorkItem id:231 namespace993/project-1013#3>, #<WorkItem id:232 namespace993/project-1013#4>]3997 oldest_item_position: nil, middle_item_position: nil, newest_item_position: 1, expected_order: lazy { [newest_item, oldest_item, middle_item] }3998 is expected to eq [#<WorkItem id:232 namespace993/project-1013#4>, #<WorkItem id:230 namespace993/project-1013#2>, #<WorkItem id:231 namespace993/project-1013#3>]3999 oldest_item_position: nil, middle_item_position: 1, newest_item_position: 2, expected_order: lazy { [middle_item, newest_item, oldest_item] }4000 is expected to eq [#<WorkItem id:231 namespace993/project-1013#3>, #<WorkItem id:232 namespace993/project-1013#4>, #<WorkItem id:230 namespace993/project-1013#2>]4001 oldest_item_position: 2, middle_item_position: 3, newest_item_position: 1, expected_order: lazy { [newest_item, oldest_item, middle_item] }4002 is expected to eq [#<WorkItem id:232 namespace993/project-1013#4>, #<WorkItem id:230 namespace993/project-1013#2>, #<WorkItem id:231 namespace993/project-1013#3>]4003 oldest_item_position: 1, middle_item_position: 2, newest_item_position: 3, expected_order: lazy { [oldest_item, middle_item, newest_item] }4004 is expected to eq [#<WorkItem id:230 namespace993/project-1013#2>, #<WorkItem id:231 namespace993/project-1013#3>, #<WorkItem id:232 namespace993/project-1013#4>]4005 .in_namespaces4006 is expected to contain exactly #<WorkItem id:233 group232#1>4007 .with_confidentiality_check4008 is expected to contain exactly #<WorkItem id:237 namespace993/project-1013#3>, #<WorkItem id:235 namespace993/project-1013#1>, and #<WorkItem id:236 namespace993/project-1013#2>4009 #noteable_target_type_name4010 returns `issue` as the target name4011 #todoable_target_type_name4012 returns correct target name4013 #widgets4014 returns instances of supported widgets4015 #get_widget4016 returns widget object4017 when widget does not exist4018 returns nil4019 #supports_assignee?4020 is expected to eq true4021 is expected to eq true4022 is expected to eq false4023 is expected to eq false4024 is expected to eq true4025 is expected to eq true4026 is expected to eq true4027 is expected to eq true4028 is expected to eq true4029 #supported_quick_action_commands4030 returns quick action commands supported for all work items4031 when work item supports the assignee widget4032 returns assignee related quick action commands4033 when work item does not the assignee widget4034 omits assignee related quick action commands4035 when work item supports the labels widget4036 returns labels related quick action commands4037 when work item does not support the labels widget4038 omits labels related quick action commands4039 when work item supports the start and due date widget4040 returns due date related quick action commands4041 when work item does not support the start and due date widget4042 omits due date related quick action commands4043 when work item supports the current user todos widget4044 returns todos related quick action commands4045 when work item does not support current user todos widget4046 omits todos related quick action commands4047 transform_quick_action_params4048 correctly separates widget params from regular params4049 with current user todos widget4050 param: "done", expected: "mark_as_done"4051 correctly transform todo_event param4052 param: "add", expected: "add"4053 correctly transform todo_event param4054 callbacks4055 record_create_action4056 records the creation action after saving4057 behaves like internal event tracking4058 logs to Snowplow4059 work item namespace4060 sets the namespace_id4061 when work item is saved4062 sets the namespace_id4063 when existing work item is saved4064 sets the namespace id4065 validations4066 confidentiality4067 when parent and child are confidential4068 does not allow to make child non-confidential4069 allows to make parent non-confidential4070 when parent and child are non-confidential4071 does not allow to make parent confidential4072 allows to make child confidential4073 when creating new child4074 does not allow to set confidential parent4075 #link_reference_pattern4076 with work item url4077 matches with expected attributes4078 with hierarchy4079 #ancestors4080 returns all ancestors in ascending order4081 returns an empty array if there are no ancestors4082 #same_type_base_and_ancestors4083 returns self and all ancestors of the same type in ascending order4084 returns self if there are no ancestors of the same type4085 #same_type_descendants_depth4086 returns max descendants depth including self4087 returns 1 if there are no descendants4088 #allowed_work_item_type_change4089 is possible to change between all types4090 with ParentLink relation4091 with hierarchy restrictions4092 when child items restrict the type change4093 when child items are compatible with the new type4094 allows to change types4095 when child items are not compatible with the new type4096 does not allow to change types4097 when the parent restricts the type change4098 does not allow to change types4099 with hierarchy depth restriction4100 with the highest ancestor4101 behaves like validates the depth correctly4102 when it is valid4103 allows to change types4104 when it is not valid4105 does not allow to change types4106 with a child item4107 behaves like validates the depth correctly4108 when it is valid4109 allows to change types4110 when it is not valid4111 does not allow to change types4112 with the last child item4113 behaves like validates the depth correctly4114 when it is valid4115 allows to change types4116 when it is not valid4117 does not allow to change types4118 when ancestor is still the old type4119 when it exceeds maximum depth4120 does not allow to change types4121 when it does not exceed maximum depth4122 does allow to change types4123 #linked_work_items4124 returns only authorized linked work items for given user4125 returns work items with valid work_item_link_type4126 returns work items including the link creation time4127 returns work items including the link update time4128 when a user cannot read cross project4129 only returns work items within the same project4130 when filtering by link type4131 returns authorized work items with given link type4132 when authorize option is true and current_user is nil4133 returns empty result4134 when authorize option is false4135 returns all work items linked to the work item4136 when work item is a new record4137 is expected to be empty4138 #linked_items_count4139 returns number of items linked to the work item4140Gitlab::DataBuilder::Push4141 .build4142 with changed files4143 returns commit hook data4144 without changed files4145 returns commit hook data without include deltas4146 .build_sample4147 is expected to be a kind of Hash4148 is expected to eq "1b12f15a11fc6e62177bef08f47bc7b5ce50b141"4149 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"4150 is expected to eq "refs/heads/master"4151 is expected to eq 34152 is expected to eq 34153 is expected to eq ["bar/branch-test.txt"]4154 is expected to eq []4155 is expected to eq []4156 contains project data4157 contains deprecated repository data4158 .sample_data4159 is expected to be a kind of Hash4160 is expected to eq "95790bf891e76fee5e1747ab589903a6a1f80f22"4161 is expected to eq "da1560886d4f094c3e6c9ef40349f7d38b5d27d7"4162 is expected to eq "refs/heads/master"4163 is expected to eq 154164 is expected to eq 14165 is expected to eq 14166 contains project data4167 .build4168 is expected to be a kind of Hash4169 is expected to eq "0000000000000000000000000000000000000000"4170 is expected to eq "5937ac0a7beb003549fc5fd26fc247adbce4a52e"4171 is expected to eq "8a2a6eb295bb170b34c24c76c49ed0e9b2eaf34b"4172 is expected to eq "refs/tags/v1.1.0"4173 is expected to eq nil4174 is expected to eq "Sidney Jones1714"4175 is expected to eq "user649"4176 is expected to eq "public-email@example.com"4177 is expected to eq "https://www.gravatar.com/avatar/02306ec7e9160f8ac2302ddd07460a69?s=80&d=identicon"4178 is expected to eq 8214179 is expected to be a kind of Hash4180 is expected to be empty4181 is expected to be zero4182 contains project data4183 contains deprecated repository data4184 does not raise an error when given nil commits4185 .build_bulk4186 is expected to eq {:action=>:created, :ref_count=>2, :ref_type=>:branch}4187Packages::Maven::FindOrCreatePackageService4188 #execute4189 path with version4190 package_exist: true, file_type: :jar, snapshot_version: false, shared_example_name: "reuse existing package"4191 behaves like reuse existing package4192 is expected not to change `Packages::Package.count`4193 returns the existing package4194 package_exist: false, file_type: :jar, snapshot_version: false, shared_example_name: "create package"4195 behaves like create package4196 is expected to change `Packages::Package.count` by 14197 sets the proper name and version4198 with optional attributes4199 behaves like assigns build to package4200 with build info4201 assigns the pipeline to the package4202 behaves like assigns status to package4203 with status param4204 assigns the status to the package4205 package_exist: true, file_type: :jar, snapshot_version: true, shared_example_name: "reuse existing package"4206 behaves like reuse existing package4207 is expected not to change `Packages::Package.count`4208 returns the existing package4209 package_exist: false, file_type: :jar, snapshot_version: true, shared_example_name: "create package"4210 behaves like create package4211 is expected to change `Packages::Package.count` by 14212 sets the proper name and version4213 with optional attributes4214 behaves like assigns build to package4215 with build info4216 assigns the pipeline to the package4217 behaves like assigns status to package4218 with status param4219 assigns the status to the package4220 package_exist: true, file_type: :maven_xml, snapshot_version: true, shared_example_name: "reuse existing package"4221 behaves like reuse existing package4222 is expected not to change `Packages::Package.count`4223 returns the existing package4224 package_exist: false, file_type: :maven_xml, snapshot_version: true, shared_example_name: "create package"4225 behaves like create package4226 is expected to change `Packages::Package.count` by 14227 sets the proper name and version4228 with optional attributes4229 behaves like assigns build to package4230 with build info4231 assigns the pipeline to the package4232 behaves like assigns status to package4233 with status param4234 assigns the status to the package4235 path without version4236 maven-metadata.xml file4237 with existing package4238 behaves like reuse existing package4239 is expected not to change `Packages::Package.count`4240 returns the existing package4241 marked as pending_destruction4242 behaves like create package4243 is expected to change `Packages::Package.count` by 14244 sets the proper name and version4245 with optional attributes4246 behaves like assigns build to package4247 with build info4248 assigns the pipeline to the package4249 behaves like assigns status to package4250 with status param4251 assigns the status to the package4252 without existing package4253 behaves like create package4254 is expected to change `Packages::Package.count` by 14255 sets the proper name and version4256 with optional attributes4257 behaves like assigns build to package4258 with build info4259 assigns the pipeline to the package4260 behaves like assigns status to package4261 with status param4262 assigns the status to the package4263 with a build4264 creates a build_info4265 with multiple files for the same package and the same pipeline4266 creates a single build info4267 when package duplicates are not allowed4268 behaves like returning an error4269 is expected not to change `project.package_files.count`4270 returns an error4271 for a SNAPSHOT version4272 behaves like returning an error4273 is expected not to change `project.package_files.count`4274 returns an error4275 when uploading to the versionless package which contains metadata about all versions4276 behaves like reuse existing package4277 is expected not to change `Packages::Package.count`4278 returns the existing package4279 when uploading different non-duplicate files to the same package4280 behaves like reuse existing package4281 is expected not to change `Packages::Package.count`4282 returns the existing package4283 when the package name matches the exception regex4284 behaves like reuse existing package4285 is expected not to change `Packages::Package.count`4286 returns the existing package4287 when the package version matches the exception regex4288 behaves like reuse existing package4289 is expected not to change `Packages::Package.count`4290 returns the existing package4291 when uploading a similar package file name with a classifier4292 behaves like reuse existing package4293 is expected not to change `Packages::Package.count`4294 returns the existing package4295 for a SNAPSHOT version4296 behaves like reuse existing package4297 is expected not to change `Packages::Package.count`4298 returns the existing package4299 with a very large file name4300 behaves like returning an error4301 is expected not to change `project.package_files.count`4302 returns an error4303Gitlab::Email::Message::RepositoryPush4304 new commits have been pushed to repository4305 #project4306 is expected to eq #<Project id:863 my_group/project-1113>>4307 is expected to be an instance of Project4308 #project_namespace4309 is expected to eq #<Group id:2491 @my_group>4310 is expected to be a kind of Namespace(id: integer, name: string, path: string, owner_id: integer, created_at: datetime, updated_a...endants_override_disabled_shared_runners: boolean, traversal_ids: integer, organization_id: integer)4311 #project_name_with_namespace4312 is expected to eq "my_group / Project-1117 Name"4313 #author4314 is expected to eq #<User id:1508 @user671>4315 is expected to be an instance of User4316 #author_name4317 is expected to eq "Author"4318 #commits4319 is expected to be a kind of CommitCollection4320 is expected to all be an instance of Commit4321 #diffs4322 is expected to all be an instance of Gitlab::Diff::File4323 #diffs_count4324 is expected to eq 94325 #compare4326 is expected to be an instance of Compare4327 #compare_timeout4328 is expected to eq false4329 #reverse_compare?4330 is expected to eq false4331 #disable_diffs?4332 is expected to eq false4333 #send_from_committer_email?4334 is expected to eq true4335 #action_name4336 is expected to eq "pushed to"4337 #ref_name4338 is expected to eq "master"4339 #ref_type4340 is expected to eq "branch"4341 #target_url4342 is expected to include "compare"4343 is expected to include "2f63565e7aac07bcdadb654e253078b727143ec4"4344 is expected to include "570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4345 #subject4346 is expected to include "[Git][my_group/project-1136]"4347 is expected to include "6 commits"4348 is expected to include "Ruby files modified"4349SystemNoteService4350 .add_commits4351 calls CommitService4352 .tag_commit4353 calls CommitService4354 .change_assignee4355 calls IssuableService4356 .change_issuable_assignees4357 calls IssuableService4358 .change_issuable_reviewers4359 calls IssuableService4360 .change_issuable_contacts4361 calls IssuableService4362 .close_after_error_tracking_resolve4363 calls IssuableService4364 .relate_issuable4365 calls IssuableService4366 .unrelate_issuable4367 calls IssuableService4368 .change_start_date_or_due_date4369 calls TimeTrackingService4370 .change_status4371 calls IssuableService4372 .merge_when_pipeline_succeeds4373 calls MergeRequestsService4374 .cancel_merge_when_pipeline_succeeds4375 calls MergeRequestsService4376 .abort_merge_when_pipeline_succeeds4377 calls MergeRequestsService4378 .change_title4379 calls IssuableService4380 .change_description4381 calls IssuableService4382 .change_issue_confidentiality4383 calls IssuableService4384 .change_branch4385 calls MergeRequestsService4386 .change_branch_presence4387 calls MergeRequestsService4388 .new_issue_branch4389 calls MergeRequestsService4390 .new_merge_request4391 calls MergeRequestsService4392 .zoom_link_added4393 calls ZoomService4394 .zoom_link_removed4395 calls ZoomService4396 .cross_reference4397 calls IssuableService4398 .cross_reference_disallowed?4399 calls IssuableService4400 .cross_reference_exists?4401 calls IssuableService4402 .noteable_moved4403 calls IssuableService4404 .noteable_cloned4405 calls IssuableService4406 .change_time_estimate4407 calls TimeTrackingService4408 .discussion_continued_in_issue4409 creates a new note in the discussion4410 mentions the created issue in the system note4411 behaves like a system note4412 has the correct attributes4413 .change_time_spent4414 calls TimeTrackingService4415 .created_timelog4416 calls TimeTrackingService4417 .remove_timelog4418 calls TimeTrackingService4419 .handle_merge_request_draft4420 calls MergeRequestsService4421 .add_merge_request_draft_from_commit4422 calls MergeRequestsService4423 .change_task_status4424 calls IssuableService4425 .resolve_all_discussions4426 calls MergeRequestsService4427 .diff_discussion_outdated4428 calls MergeRequestsService4429 .mark_duplicate_issue4430 calls IssuableService4431 .mark_canonical_issue_of_duplicate4432 calls IssuableService4433 .discussion_lock4434 calls IssuableService4435 .auto_resolve_prometheus_alert4436 calls IssuableService4437 .design_version_added4438 calls DesignManagementService4439 .design_discussion_added4440 calls DesignManagementService4441 .approve_mr4442 calls MergeRequestsService4443 .unapprove_mr4444 calls MergeRequestsService4445 .change_alert_status4446 with status change reason4447 calls AlertManagementService4448 without status change reason4449 calls AlertManagementService4450 .new_alert_issue4451 calls AlertManagementService4452 .create_new_alert4453 calls AlertManagementService4454 .change_incident_severity4455 calls IncidentService4456 .change_incident_status4457 with status change reason4458 calls IncidentService4459 without status change reason4460 calls IncidentService4461 .log_resolving_alert4462 calls AlertManagementService4463 .change_issue_type4464 calls IssuableService4465 .add_timeline_event4466 calls IncidentsService4467 .edit_timeline_event4468 calls IncidentsService4469 .delete_timeline_event4470 calls IncidentsService4471 .relate_work_item4472 calls IssuableService4473 .unrelate_wotk_item4474 calls IssuableService4475TestHooks::ProjectService4476 #execute4477 allows to set a custom project4478 hook with not implemented test4479 returns error message4480 push_events4481 executes hook4482 tag_push_events4483 executes hook4484 note_events4485 returns error message if not enough data4486 executes hook4487 issues_events4488 behaves like a test webhook that operates on issues4489 returns error message if not enough data4490 executes hook4491 confidential_issues_events4492 behaves like a test webhook that operates on issues4493 returns error message if not enough data4494 executes hook4495 merge_requests_events4496 returns error message if not enough data4497 executes hook4498 job_events4499 returns error message if not enough data4500 executes hook4501 pipeline_events4502 returns error message if not enough data4503 executes hook4504 wiki_page_events4505 returns error message if wiki disabled4506 returns error message if not enough data4507 executes hook4508 releases_events4509 returns error message if not enough data4510 executes hook4511 emoji4512 returns error message if not enough data4513 executes hook4514Gitlab::Pagination::Keyset::InOperatorOptimization::QueryBuilder4515 raises error when unsupported scope is passed4516 when the scope model has ignored columns4517 when iterating records one by one4518 behaves like correct ordering examples4519 returns records in correct order4520 when not passing the finder query4521 returns records in correct order4522 loads only the order by column4523 when scope selects only some columns4524 behaves like correct ordering examples4525 returns records in correct order4526 when not passing the finder query4527 returns records in correct order4528 loads only the order by column4529 when iterating records with LIMIT 34530 behaves like correct ordering examples4531 returns records in correct order4532 when not passing the finder query4533 returns records in correct order4534 loads only the order by column4535 when scope selects only some columns4536 behaves like correct ordering examples4537 returns records in correct order4538 when not passing the finder query4539 returns records in correct order4540 loads only the order by column4541 when loading records at once4542 behaves like correct ordering examples4543 returns records in correct order4544 when not passing the finder query4545 returns records in correct order4546 loads only the order by column4547 when scope selects only some columns4548 behaves like correct ordering examples4549 returns records in correct order4550 when not passing the finder query4551 returns records in correct order4552 loads only the order by column4553 when ordering by issues.id DESC4554 when iterating records one by one4555 behaves like correct ordering examples4556 returns records in correct order4557 when not passing the finder query4558 returns records in correct order4559 loads only the order by column4560 when iterating records with LIMIT 34561 behaves like correct ordering examples4562 returns records in correct order4563 when not passing the finder query4564 returns records in correct order4565 loads only the order by column4566 when loading records at once4567 behaves like correct ordering examples4568 returns records in correct order4569 when not passing the finder query4570 returns records in correct order4571 loads only the order by column4572 when ordering by issues.relative_position DESC NULLS LAST, id DESC4573 when iterating records one by one4574 behaves like correct ordering examples4575 returns records in correct order4576 when not passing the finder query4577 returns records in correct order4578 loads only the order by column4579 when iterating records with LIMIT 34580 behaves like correct ordering examples4581 returns records in correct order4582 when not passing the finder query4583 returns records in correct order4584 loads only the order by column4585 with condition "relative_position IS NULL"4586 when iterating records one by one4587 behaves like correct ordering examples4588 returns records in correct order4589 when not passing the finder query4590 returns records in correct order4591 loads only the order by column4592 when iterating records with LIMIT 34593 behaves like correct ordering examples4594 returns records in correct order4595 when not passing the finder query4596 returns records in correct order4597 loads only the order by column4598 when ordering by issues.created_at DESC, issues.id ASC4599 when iterating records one by one4600 behaves like correct ordering examples4601 returns records in correct order4602 when not passing the finder query4603 returns records in correct order4604 loads only the order by column4605 when iterating records with LIMIT 34606 behaves like correct ordering examples4607 returns records in correct order4608 when not passing the finder query4609 returns records in correct order4610 loads only the order by column4611 when loading records at once4612 behaves like correct ordering examples4613 returns records in correct order4614 when not passing the finder query4615 returns records in correct order4616 loads only the order by column4617 pagination support4618 offset pagination4619 paginates the scopes4620 keyset pagination4621 paginates correctly4622 when ordering by SQL expression4623 when iterating records one by one4624 behaves like correct ordering examples4625 when not passing the finder query4626 returns records in correct order4627 loads only the order by column4628 when iterating records with LIMIT 34629 behaves like correct ordering examples4630 when not passing the finder query4631 returns records in correct order4632 loads only the order by column4633 when passing finder query4634 raises error, loading complete rows are not supported with SQL expressions4635 when ordering by JOIN-ed columns4636 when directions are project.id DESC, issues.id ASC4637 when iterating records one by one4638 behaves like correct ordering examples4639 when not passing the finder query4640 returns records in correct order4641 loads only the order by column4642 when iterating records with LIMIT 24643 behaves like correct ordering examples4644 when not passing the finder query4645 returns records in correct order4646 loads only the order by column4647 when directions are projects.id DESC, issues.id ASC4648 when iterating records one by one4649 behaves like correct ordering examples4650 when not passing the finder query4651 returns records in correct order4652 loads only the order by column4653 when iterating records with LIMIT 24654 behaves like correct ordering examples4655 when not passing the finder query4656 returns records in correct order4657 loads only the order by column4658 when directions are projects.name ASC, projects.id ASC, issues.id ASC4659 when iterating records with LIMIT 24660 behaves like correct ordering examples4661 when not passing the finder query4662 returns records in correct order4663 loads only the order by column4664 when directions are projects.name ASC (nullable), issues.id ASC4665 when iterating records with LIMIT 24666 behaves like correct ordering examples4667 when not passing the finder query4668 returns records in correct order4669 loads only the order by column4670MergeRequestPollCachedWidgetEntity4671 has the latest sha of the target branch4672 has blob path data4673 merge_status4674 calls for MergeRequest#check_mergeability4675 has public_merge_status as merge_status4676 diverged_commits_count4677 when MR open and its diverging4678 returns diverged commits count4679 when MR is not open4680 returns 04681 when MR is not diverging4682 returns 04683 diff_head_sha4684 when diff head commit is empty4685 returns nil4686 when diff head commit present4687 returns diff head commit short id4688 metrics4689 when metrics record exists with merged data4690 matches merge request metrics schema4691 returns values from metrics record4692 when metrics record exists with closed data4693 matches merge request metrics schema4694 returns values from metrics record4695 when metrics does not exists4696 when events exists4697 matches merge request metrics schema4698 returns values from events record4699 when events does not exists4700 matches merge request metrics schema4701 commits_without_merge_commits4702 does not include merge commits4703 squash defaults for projects4704 squash_option: "always", value: true, default: true, readonly: true4705 the key reflects the correct value4706 squash_option: "never", value: false, default: false, readonly: true4707 the key reflects the correct value4708 squash_option: "default_on", value: false, default: true, readonly: false4709 the key reflects the correct value4710 squash_option: "default_off", value: false, default: false, readonly: false4711 the key reflects the correct value4712 attributes for squash commit message4713 when merge request is mergeable4714 has default_squash_commit_message and commits_without_merge_commits4715 pipeline4716 when user has access to pipelines4717 when is up to date4718 returns pipeline4719 when user does not have access to pipelines4720 does not have pipeline4721 when is not up to date4722 returns nil4723 merge_pipeline4724 returns nil4725 when is merged4726 returns merge_pipeline4727 when user cannot read pipelines on target project4728 returns nil4729 ci related paths4730 path_field: :terraform_reports_path, method_for_existence_check: :has_terraform_reports?4731 when merge request has reports4732 set the path to poll data4733 when merge request has no reports4734 does not set reports path4735 path_field: :accessibility_report_path, method_for_existence_check: :has_accessibility_reports?4736 when merge request has reports4737 set the path to poll data4738 when merge request has no reports4739 does not set reports path4740 path_field: :exposed_artifacts_path, method_for_existence_check: :has_exposed_artifacts?4741 when merge request has reports4742 set the path to poll data4743 when merge request has no reports4744 does not set reports path4745 path_field: :test_reports_path, method_for_existence_check: :has_test_reports?4746 when merge request has reports4747 set the path to poll data4748 when merge request has no reports4749 does not set reports path4750 path_field: :codequality_reports_path, method_for_existence_check: :has_codequality_reports?4751 when merge request has reports4752 set the path to poll data4753 when merge request has no reports4754 does not set reports path4755 favicon overlay path4756 when merged4757 returns merged favicon overlay4758 with pipeline4759 returns merged favicon overlay4760 when not merged4761 returns no favicon overlay4762 with pipeline4763 returns pipeline favicon overlay4764CommitsHelper4765 commit_author_link4766 escapes the author email4767 escapes the author name4768 commit_committer_link4769 escapes the committer email4770 escapes the committer name4771 #view_file_button4772 links to project files4773 #view_on_environment_button4774 returns a link tag linking to the file in the environment4775 #diff_mode_swap_button4776 for rendered4777 renders the correct select-rendered button4778 for raw4779 renders the correct select-raw button4780 #commit_to_html4781 renders HTML representation of a commit4782 commit_path4783 returns a persisted merge request commit path4784 returns a non-persisted merge request commit path which commits still reside in the source project4785 returns a project commit path4786 #conditionally_paginate_diff_files4787 pagination is enabled4788 has been paginated4789 can change the number of items per page4790 page 14791 has 20 diffs4792 page 54793 has the remaining 5 out of 85 diffs4794 pagination is disabled4795 returns the unpaginated collection4796 #cherry_pick_projects_data4797 returns data for cherry picking into a project4798 #commit_options_dropdown_data4799 when user is logged in4800 returns data as expected4801 when can not collaborate on project4802 returns data as expected4803 when commit has already been reverted4804 returns data as expected4805 when user is not logged in4806 returns data as expected4807 #commit_partial_cache_key4808 is expected to eq [#<CommitPresenter(#<Commit id:570e7b2abdd848b95f2f578043fc23bd6f6fd24d namespace1138/project-1182@57...path=>"test", :pipeline_status=>"pipelines/93-20231020084844777126", :referenced_by=>0, :xhr=>true}]4809 final cache key output4810 is expected to include "commit:570e7b2abdd848b95f2f578043fc23bd6f6fd24d"4811 is expected to include "pipelines/95-20231020084849868498"4812 #commit_path_template4813 is expected to eq "/namespace1147/project-1191/-/commit/$COMMIT_SHA"4814 #local_committed_date4815 is expected to eq "2023-01-01"4816 when user has a custom timezone4817 selects timezone of the user4818 when user doesn't have a preferred timezone4819 uses system timezone4820 when user timezone is not supported4821 uses system timezone4822 when user is missing4823 uses system timezone4824GroupClusterablePresenter4825 #can_create_cluster?4826 when user can create4827 is expected to be truthy4828 when user cannot create4829 is expected to be falsey4830 #index_path4831 is expected to eq "/groups/group241/-/clusters"4832 #connect_path4833 is expected to eq "/groups/group242/-/clusters/connect"4834 #create_user_clusters_path4835 is expected to eq "/groups/group243/-/clusters/create_user"4836 #cluster_status_cluster_path4837 is expected to eq "/groups/group244/-/clusters/18/cluster_status"4838 #clear_cluster_cache_path4839 is expected to eq "/groups/group245/-/clusters/21/clear_cache"4840 #cluster_path4841 is expected to eq "/groups/group246/-/clusters/24"4842 #metrics_dashboard_path4843 is expected to eq "/groups/group247/-/clusters/27/metrics_dashboard"4844 #learn_more_link4845 is expected to include "user/group/clusters/index"4846notify/pipeline_success_email.text.erb4847 when pipeline has a name attribute4848 behaves like pipeline status changes email4849 when the pipeline contains a failed job4850 behaves like renders the pipeline status changes email correctly4851 pipeline with user4852 renders the email correctly4853 behaves like correct pipeline information for pipelines for merge requests4854 when pipeline for merge request4855 renders a source ref of the pipeline4856 pipeline without user4857 renders the email correctly4858 when the latest failed job is a bridge job4859 behaves like renders the pipeline status changes email correctly4860 pipeline with user4861 renders the email correctly4862 behaves like correct pipeline information for pipelines for merge requests4863 when pipeline for merge request4864 renders a source ref of the pipeline4865 pipeline without user4866 renders the email correctly4867 when pipeline does not have a name attribute4868 behaves like pipeline status changes email4869 when the pipeline contains a failed job4870 behaves like renders the pipeline status changes email correctly4871 pipeline with user4872 renders the email correctly4873 behaves like correct pipeline information for pipelines for merge requests4874 when pipeline for merge request4875 renders a source ref of the pipeline4876 pipeline without user4877 renders the email correctly4878 when the latest failed job is a bridge job4879 behaves like renders the pipeline status changes email correctly4880 pipeline with user4881 renders the email correctly4882 behaves like correct pipeline information for pipelines for merge requests4883 when pipeline for merge request4884 renders a source ref of the pipeline4885 pipeline without user4886 renders the email correctly4887Projects::UpdatePagesService4888 fails if no artifacts4889 fails for invalid archive4890 when a deploy stage already exists4891 assigns the deploy stage4892 when a deploy stage does not exists4893 assigns the deploy stage4894 for new artifacts4895 for a valid job4896 doesn't delete artifacts after deploying4897 succeeds4898 publishes a PageDeployedEvent event with project id and namespace id4899 creates pages_deployment and saves it in the metadata4900 does not fail if pages_metadata is absent4901 limits pages size4902 limits pages file count4903 fails when uploaded deployment size is wrong4904 behaves like old deployments4905 deactivates old deployments from the same project with the same path prefix4906 when archive does not have pages directory4907 returns an error4908 when there is a custom root config4909 when the directory specified with `publish` is included in the artifacts4910 creates pages_deployment and saves it in the metadata4911 when the directory specified with `publish` is not included in the artifacts4912 returns an error4913 when there is a folder named `public`, but `publish` specifies a different one4914 returns an error4915 when timeout happens by DNS error4916 raises an error4917 when missing artifacts metadata4918 does not raise an error as failed job4919 with background jobs running4920 succeeds4921 when sha on branch was updated before deployment was uploaded4922 creates a new pages deployment and mark it as deployed4923 behaves like old deployments4924 deactivates old deployments from the same project with the same path prefix4925 when newer deployment present4926 fails with outdated reference message4927 when artifacts archive does not have sha2564928 fails with exception raised4929 maximum pages artifacts size4930 when maximum pages size is set to zero4931 behaves like pages size limit is4932 when size is below the limit4933 updates pages correctly4934 behaves like old deployments4935 deactivates old deployments from the same project with the same path prefix4936 when size is above the limit4937 limits the maximum size of gitlab pages4938 when size is limited on the instance level4939 behaves like pages size limit is4940 when size is below the limit4941 updates pages correctly4942 behaves like old deployments4943 deactivates old deployments from the same project with the same path prefix4944 when size is above the limit4945 limits the maximum size of gitlab pages4946 when retrying the job4947 marks older pages:deploy jobs retried4948Sbom::PackageUrl4949 # order random4950 #parse4951 delegates parsing to the decoder4952 #to_s4953 delegates to_s to the encoder4954 #initialize4955 with well-formed arguments4956 valid maven purl4957 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => "1.3.4"}4958 basic valid maven purl without version4959 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}4960 valid go purl without version and with subpath4961 is expected to have attributes {:name => "genproto", :namespace => "google.golang.org", :qualifiers => nil, :subpath => "googleapis/api/annotations", :type => "golang", :version => nil}4962 valid go purl with version and subpath4963 is expected to have attributes {:name => "genproto", :namespace => "google.golang.org", :qualifiers => nil, :subpath => "googleapis/api/annotations", :type => "golang", :version => "abcdedf"}4964 bitbucket namespace and name should be lowercased4965 is expected to have attributes {:name => "pygments-main", :namespace => "birkenfeld", :qualifiers => nil, :subpath => nil, :type => "bitbucket", :version => "244fd47e07d1014f0aed9c"}4966 github namespace and name should be lowercased4967 is expected to have attributes {:name => "purl-spec", :namespace => "package-url", :qualifiers => nil, :subpath => nil, :type => "github", :version => "244fd47e07d1004f0aed9c"}4968 debian can use qualifiers4969 is expected to have attributes {:name => "curl", :namespace => "debian", :qualifiers => {"arch" => "i386", "distro" => "jessie"}, :subpath => nil, :type => "deb", :version => "7.50.3-1"}4970 docker uses qualifiers and hash image id as versions4971 is expected to have attributes {:name => "dockerimage", :namespace => "customer", :qualifiers => {"repository_url" => "gcr.io"}, :subpath => nil, :type => "docker", :version => "sha256:244fd47e07d1004f0aed9c"}4972 Java gem can use a qualifier4973 is expected to have attributes {:name => "jruby-launcher", :namespace => nil, :qualifiers => {"platform" => "java"}, :subpath => nil, :type => "gem", :version => "1.1.2"}4974 maven often uses qualifiers4975 is expected to have attributes {:name => "batik-anim", :namespace => "org.apache.xmlgraphics", :qualifiers => {"classifier" => "sources", "repository_url" => "repo.spring.io/release"}, :subpath => nil, :type => "maven", :version => "1.9.1"}4976 maven pom reference4977 is expected to have attributes {:name => "batik-anim", :namespace => "org.apache.xmlgraphics", :qualifiers => {"extension" => "pom", "repository_url" => "repo.spring.io/release"}, :subpath => nil, :type => "maven", :version => "1.9.1"}4978 maven can come with a type qualifier4979 is expected to have attributes {:name => "jacob", :namespace => "net.sf.jacob-project", :qualifiers => {"classifier" => "x86", "type" => "dll"}, :subpath => nil, :type => "maven", :version => "1.14.3"}4980 npm can be scoped4981 is expected to have attributes {:name => "animation", :namespace => "@angular", :qualifiers => nil, :subpath => nil, :type => "npm", :version => "12.3.1"}4982 nuget names are case sensitive4983 is expected to have attributes {:name => "EnterpriseLibrary.Common", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "nuget", :version => "6.0.1304"}4984 pypi names have special rules and not case sensitive4985 is expected to have attributes {:name => "django-package", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "pypi", :version => "1.11.1.dev1"}4986 rpm often use qualifiers4987 is expected to have attributes {:name => "curl", :namespace => "fedora", :qualifiers => {"arch" => "i386", "distro" => "fedora-25"}, :subpath => nil, :type => "rpm", :version => "7.50.3-1.fc25"}4988 slash / after scheme is not significant4989 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}4990 double slash // after scheme is not significant4991 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}4992 slash /// after type is not significant4993 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}4994 valid maven purl with case sensitive namespace and name4995 is expected to have attributes {:name => "HTTPClient", :namespace => "HTTPClient", :qualifiers => nil, :subpath => nil, :type => "maven", :version => "0.3-3"}4996 valid maven purl containing a space in the version and qualifier4997 is expected to have attributes {:name => "myartifact", :namespace => "mygroup", :qualifiers => {"mykey" => "my value"}, :subpath => nil, :type => "maven", :version => "1.0.0 Final"}4998 valid conan purl4999 is expected to have attributes {:name => "cctz", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "conan", :version => "2.3"}5000 valid conan purl with namespace and qualifier channel5001 is expected to have attributes {:name => "cctz", :namespace => "bincrafters", :qualifiers => {"channel" => "stable"}, :subpath => nil, :type => "conan", :version => "2.3"}5002 valid conda purl with qualifiers5003 is expected to have attributes {:name => "absl-py", :namespace => nil, :qualifiers => {"build" => "py36h06a4308_0", "channel" => "main", "subdir" => "linux-64", "type" => "tar.bz2"}, :subpath => nil, :type => "conda", :version => "0.4.1"}5004 valid cran purl5005 is expected to have attributes {:name => "A3", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "cran", :version => "0.9.1"}5006 valid swift purl5007 is expected to have attributes {:name => "Alamofire", :namespace => "github.com/Alamofire", :qualifiers => nil, :subpath => nil, :type => "swift", :version => "5.4.3"}5008 valid hackage purl5009 is expected to have attributes {:name => "AC-HalfInteger", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "hackage", :version => "1.2.1"}5010 when no arguments are given5011 is expected to raise ArgumentError5012 when parameters are invalid5013 a scheme is always required5014 raises an ArgumentError5015 a type is always required5016 raises an ArgumentError5017 a name is required5018 raises an ArgumentError5019 checks for invalid qualifier keys5020 raises an ArgumentError5021 invalid conan purl only namespace5022 raises an ArgumentError5023 invalid conan purl only channel qualifier5024 raises an ArgumentError5025 invalid cran purl without name5026 raises an ArgumentError5027 invalid cran purl without version5028 raises an ArgumentError5029 invalid swift purl without namespace5030 raises an ArgumentError5031 invalid swift purl without name5032 raises an ArgumentError5033 invalid swift purl without version5034 raises an ArgumentError5035 name and version are always required5036 raises an ArgumentError5037 normalization5038 downcases provided type component5039 does not down provided name component5040 #to_h5041 valid maven purl5042 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.3.4"}5043 basic valid maven purl without version5044 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>nil}5045 valid go purl without version and with subpath5046 is expected to eq {:name=>"genproto", :namespace=>"google.golang.org", :qualifiers=>nil, :scheme=>"pkg", :subpath=>"googleapis/api/annotations", :type=>"golang", :version=>nil}5047 valid go purl with version and subpath5048 is expected to eq {:name=>"genproto", :namespace=>"google.golang.org", :qualifiers=>nil, :scheme=>"pkg", :subpath=>"googleapis/api/annotations", :type=>"golang", :version=>"abcdedf"}5049 bitbucket namespace and name should be lowercased5050 is expected to eq {:name=>"pygments-main", :namespace=>"birkenfeld", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"bitbucket", :version=>"244fd47e07d1014f0aed9c"}5051 github namespace and name should be lowercased5052 is expected to eq {:name=>"purl-spec", :namespace=>"package-url", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"github", :version=>"244fd47e07d1004f0aed9c"}5053 debian can use qualifiers5054 is expected to eq {:name=>"curl", :namespace=>"debian", :qualifiers=>{"arch"=>"i386", "distro"=>"jessie"}, :scheme=>"pkg", :subpath=>nil, :type=>"deb", :version=>"7.50.3-1"}5055 docker uses qualifiers and hash image id as versions5056 is expected to eq {:name=>"dockerimage", :namespace=>"customer", :qualifiers=>{"repository_url"=>"gcr.io"}, :scheme=>"pkg", :subpath=>nil, :type=>"docker", :version=>"sha256:244fd47e07d1004f0aed9c"}5057 Java gem can use a qualifier5058 is expected to eq {:name=>"jruby-launcher", :namespace=>nil, :qualifiers=>{"platform"=>"java"}, :scheme=>"pkg", :subpath=>nil, :type=>"gem", :version=>"1.1.2"}5059 maven often uses qualifiers5060 is expected to eq {:name=>"batik-anim", :namespace=>"org.apache.xmlgraphics", :qualifiers=>{"classifier"=>"sources", "r...y_url"=>"repo.spring.io/release"}, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.9.1"}5061 maven pom reference5062 is expected to eq {:name=>"batik-anim", :namespace=>"org.apache.xmlgraphics", :qualifiers=>{"extension"=>"pom", "reposi...y_url"=>"repo.spring.io/release"}, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.9.1"}5063 maven can come with a type qualifier5064 is expected to eq {:name=>"jacob", :namespace=>"net.sf.jacob-project", :qualifiers=>{"classifier"=>"x86", "type"=>"dll"}, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.14.3"}5065 npm can be scoped5066 is expected to eq {:name=>"animation", :namespace=>"@angular", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"npm", :version=>"12.3.1"}5067 nuget names are case sensitive5068 is expected to eq {:name=>"EnterpriseLibrary.Common", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"nuget", :version=>"6.0.1304"}5069 pypi names have special rules and not case sensitive5070 is expected to eq {:name=>"django-package", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"pypi", :version=>"1.11.1.dev1"}5071 rpm often use qualifiers5072 is expected to eq {:name=>"curl", :namespace=>"fedora", :qualifiers=>{"arch"=>"i386", "distro"=>"fedora-25"}, :scheme=>"pkg", :subpath=>nil, :type=>"rpm", :version=>"7.50.3-1.fc25"}5073 slash / after scheme is not significant5074 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>nil}5075 double slash // after scheme is not significant5076 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>nil}5077 slash /// after type is not significant5078 is expected to eq {:name=>"io", :namespace=>"org.apache.commons", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>nil}5079 valid maven purl with case sensitive namespace and name5080 is expected to eq {:name=>"HTTPClient", :namespace=>"HTTPClient", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"0.3-3"}5081 valid maven purl containing a space in the version and qualifier5082 is expected to eq {:name=>"myartifact", :namespace=>"mygroup", :qualifiers=>{"mykey"=>"my value"}, :scheme=>"pkg", :subpath=>nil, :type=>"maven", :version=>"1.0.0 Final"}5083 valid conan purl5084 is expected to eq {:name=>"cctz", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"conan", :version=>"2.3"}5085 valid conan purl with namespace and qualifier channel5086 is expected to eq {:name=>"cctz", :namespace=>"bincrafters", :qualifiers=>{"channel"=>"stable"}, :scheme=>"pkg", :subpath=>nil, :type=>"conan", :version=>"2.3"}5087 valid conda purl with qualifiers5088 is expected to eq {:name=>"absl-py", :namespace=>nil, :qualifiers=>{"build"=>"py36h06a4308_0", "channel"=>"main", "subd..."=>"linux-64", "type"=>"tar.bz2"}, :scheme=>"pkg", :subpath=>nil, :type=>"conda", :version=>"0.4.1"}5089 valid cran purl5090 is expected to eq {:name=>"A3", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"cran", :version=>"0.9.1"}5091 valid swift purl5092 is expected to eq {:name=>"Alamofire", :namespace=>"github.com/Alamofire", :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"swift", :version=>"5.4.3"}5093 valid hackage purl5094 is expected to eq {:name=>"AC-HalfInteger", :namespace=>nil, :qualifiers=>nil, :scheme=>"pkg", :subpath=>nil, :type=>"hackage", :version=>"1.2.1"}5095Packages::Maven::Metadata::CreatePluginsXmlService5096 #execute5097 with same plugins on both sides5098 behaves like returning no changes5099 returns no changes5100 with more plugins5101 in database5102 behaves like returning no changes5103 returns no changes5104 in xml5105 behaves like returning an xml with plugins from the database5106 returns an metadata versions xml with versions in the database5107 with no versions in the database5108 returns a success5109 with an incomplete metadata content5110 behaves like returning an error service response5111 returns an error service response5112 with an invalid metadata content5113 behaves like returning an error service response5114 returns an error service response5115 behaves like handling metadata content pointing to a file for the create xml service5116 with metadata content pointing to a file5117 with valid content5118 returns no changes5119 with invalid content5120 behaves like returning an error service response5121 returns an error service response5122 with no content5123 behaves like returning an error service response5124 returns an error service response5125 behaves like handling invalid parameters for create xml service5126 with no package5127 behaves like returning an error service response5128 returns an error service response5129 with no metadata content5130 behaves like returning an error service response5131 returns an error service response5132Banzai::Filter::ReferenceRedactorFilter5133 ignores non-GFM links5134 skips when the skip_redaction flag is set5135 with data-project5136 valid projects5137 allows permitted Project references5138 invalid projects5139 removes unpermitted references5140 handles invalid references5141 with data-issue5142 allows references for non confidential issues5143 for confidential issues5144 removes references for non project members5145 removes references for project members with guest role5146 allows references for author5147 allows references for assignee5148 allows references for project members5149 for admin5150 when admin mode is enabled5151 allows references5152 when admin mode is disabled5153 removes references5154 when a confidential issue is moved from a public project to a private one5155 removes references for author5156 removes references for assignee5157 allows references for project members5158 for user references5159 with data-group5160 removes unpermitted Group references5161 allows permitted Group references5162 handles invalid Group references5163 with data-user5164 allows any User reference5165Ci::ResourceGroups::AssignResourceFromResourceGroupService5166 #execute5167 when there is an available resource5168 requests resource5169 when failed to request resource5170 has a build waiting for resource5171 when the build has already retained a resource5172 has a pending build5173 when process mode is oldest_first5174 requests resource5175 when the other job exists in the newer pipeline5176 requests resource for the job in the oldest pipeline5177 when build is not `waiting_for_resource` state5178 attempts to request a resource5179 does not change the job status5180 when process mode is newest_first5181 requests resource5182 when the other job exists in the newer pipeline5183 requests resource for the job in the newest pipeline5184 when build is not `waiting_for_resource` state5185 attempts to request a resource5186 does not change the job status5187 when parallel services are running5188 can run the same command in parallel5189 when there are no available resources5190 does not request resource5191 when there is a stale build assigned to a resource5192 releases the resource from the stale build and assignes to the waiting build5193UsersFinder5194 #execute5195EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5196EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar5197 with a normal user5198 behaves like executes users finder as normal user5199 returns searchable users5200 filters by username5201 filters by id5202 filters by username (case insensitive)5203 filters by search5204 does not filter by private emails search5205 filters by external users5206 filters by non external users5207 filters by created_at5208 filters by non internal users5209 does not filter by custom attributes5210 orders returned results5211 does not filter by admins5212 minimum character limit for search5213 passes use_minimum_char_limit from params5214 allows searching with 2 characters when use_minimum_char_limit is false5215 does not allow searching with 2 characters when use_minimum_char_limit is not set5216 with an admin user5217 when admin mode setting is disabled5218 behaves like executes users finder as admin5219 filters by external users5220 returns all users5221 filters by blocked users5222 filters by active users5223 returns only admins5224 filters by custom attributes5225 filters by private emails search5226 when admin mode setting is enabled5227 when in admin mode5228 behaves like executes users finder as admin5229 filters by external users5230 returns all users5231 filters by blocked users5232 filters by active users5233 returns only admins5234 filters by custom attributes5235 filters by private emails search5236 when not in admin mode5237 behaves like executes users finder as normal user5238 returns searchable users5239 filters by username5240 filters by id5241 filters by username (case insensitive)5242 filters by search5243 does not filter by private emails search5244 filters by external users5245 filters by non external users5246 filters by created_at5247 filters by non internal users5248 does not filter by custom attributes5249 orders returned results5250 does not filter by admins5251 minimum character limit for search5252 passes use_minimum_char_limit from params5253 allows searching with 2 characters when use_minimum_char_limit is false5254 does not allow searching with 2 characters when use_minimum_char_limit is not set5255API::Entities::Snippet5256 with PersonalSnippet5257 returns snippet web_url attribute5258 returns snippet raw_url attribute5259 behaves like common attributes5260 is expected to eq 85261 is expected to eq "My title 591"5262 is expected to eq "My title 593"5263 is expected to eq 2023-10-20 08:50:20.504262148 +00005264 is expected to eq 2023-10-20 08:50:20.504262148 +00005265 is expected to eq nil5266 is expected to eq "private"5267 is expected to include :author5268 file_name5269 returns attribute from repository5270 when repository is empty5271 returns attribute from db5272 ssh_url_to_repo5273 returns attribute5274 when repository does not exist5275 does not include attribute5276 http_url_to_repo5277 returns attribute5278 when repository does not exist5279 does not include attribute5280 files5281 with PersonalSnippet5282 behaves like snippet files5283 returns all snippet files5284 has the file path5285 has the raw url5286 when repository does not exist5287 returns empty array5288 with ProjectSnippet5289 behaves like snippet files5290 returns all snippet files5291 has the file path5292 has the raw url5293 when repository does not exist5294 returns empty array5295 with ProjectSnippet5296 returns snippet web_url attribute5297 returns snippet raw_url attribute5298 behaves like common attributes5299 is expected to eq 95300 is expected to eq "My title 594"5301 is expected to eq "My title 596"5302 is expected to eq 2023-10-20 08:50:20.911952272 +00005303 is expected to eq 2023-10-20 08:50:20.911952272 +00005304 is expected to eq 10055305 is expected to eq "private"5306 is expected to include :author5307 file_name5308 returns attribute from repository5309 when repository is empty5310 returns attribute from db5311 ssh_url_to_repo5312 returns attribute5313 when repository does not exist5314 does not include attribute5315 http_url_to_repo5316 returns attribute5317 when repository does not exist5318 does not include attribute5319 files5320 with PersonalSnippet5321 behaves like snippet files5322 returns all snippet files5323 has the file path5324 has the raw url5325 when repository does not exist5326 returns empty array5327 with ProjectSnippet5328 behaves like snippet files5329 returns all snippet files5330 has the file path5331 has the raw url5332 when repository does not exist5333 returns empty array5334Ci::BuildMetadata5335 is expected to belong to build required: false5336 is expected to belong to project required: false5337 behaves like having unique enum values5338 has unique values in "timeout_source"5339 #update_timeout_state5340 when job, project and runner timeouts are set5341 when job timeout is lower then runner timeout5342 behaves like sets timeout5343 sets project_timeout_source5344 sets project timeout5345 when runner timeout is lower then job timeout5346 behaves like sets timeout5347 sets project_timeout_source5348 sets project timeout5349 when job, project timeout values are set and runner is assigned5350 when runner has no timeout set5351 behaves like sets timeout5352 sets project_timeout_source5353 sets project timeout5354 when only job and project timeouts are defined5355 when job timeout is lower then project timeout5356 behaves like sets timeout5357 sets project_timeout_source5358 sets project timeout5359 when project timeout is lower then job timeout5360 behaves like sets timeout5361 sets project_timeout_source5362 sets project timeout5363 when only project and runner timeouts are defined5364 when runner timeout is lower then project timeout5365 behaves like sets timeout5366 sets project_timeout_source5367 sets project timeout5368 when project timeout is lower then runner timeout5369 behaves like sets timeout5370 sets project_timeout_source5371 sets project timeout5372 when only job and runner timeouts are defined5373 when runner timeout is lower them job timeout5374 behaves like sets timeout5375 sets project_timeout_source5376 sets project timeout5377 when job timeout is lower them runner timeout5378 behaves like sets timeout5379 sets project_timeout_source5380 sets project timeout5381 when only job timeout is defined and runner is assigned, but has no timeout set5382 behaves like sets timeout5383 sets project_timeout_source5384 sets project timeout5385 when only one timeout value is defined5386 when only project timeout value is defined5387 behaves like sets timeout5388 sets project_timeout_source5389 sets project timeout5390 validations5391 when attributes are valid5392 returns no errors5393 when data is invalid5394 returns errors5395 set_cancel_gracefully5396 sets cancel_gracefully5397 returns false5398 loose foreign key on ci_builds_metadata.project_id5399 behaves like cleanup by a loose foreign key5400 cleans up (delete or nullify) the model5401 #enable_debug_trace!5402 when debug_trace_enabled is false5403 sets debug_trace_enabled to true5404 when debug_trace_enabled is true5405 does not set debug_trace_enabled to true5406 partitioning5407 with job5408 copies the partition_id from job5409 when it is already set5410 does not change the partition_id value5411 without job5412 is expected to validate that :partition_id cannot be empty/falsy5413 does not change the partition_id value5414 jsonb fields serialization5415 changing other fields does not change config_options5416 accessing config_options does not change it5417Projects::ProtectDefaultBranchService5418 #execute5419 without a default branch5420 does nothing5421 with a default branch5422 protects the default branch5423 #protect_default_branch5424 when branch protection is needed5425 changes the HEAD of the project5426 protects the default branch5427 when branch protection is not needed5428 changes the HEAD of the project5429 does not protect the default branch5430 when protected branch does not exist5431 changes the HEAD of the project5432 protects the default branch5433 when protected branch already exists5434 changes the HEAD of the project5435 does not protect the default branch5436 #create_protected_branch5437 creates the protected branch5438 #protect_branch?5439 when default branch protection is disabled5440 returns false5441 when default branch protection is enabled5442 returns false if the branch is already protected5443 returns true if the branch is not yet protected5444 #protected_branch_exists?5445 when feature flag `group_protected_branches` disabled5446 return false5447 when feature flag `group_protected_branches` enabled5448 return true5449 #default_branch5450 returns the default branch of the project5451 #push_access_level5452 when developers can push5453 returns the DEVELOPER access level5454 when developers can not push5455 returns the MAINTAINER access level5456 #merge_access_level5457 when developers can merge5458 returns the DEVELOPER access level5459 when developers can not merge5460 returns the MAINTAINER access level5461NewMergeRequestWorker5462 #perform5463 when a merge request not found5464 does not call Services5465 logs an error5466 when a user not found5467 does not call Services5468 logs an error5469 with a user5470 is labeled as idempotent5471 performs multiple times sequentially without raising an exception5472 when the merge request author is blocked5473 behaves like a new merge request where the author cannot trigger notifications5474 does not create a notification for the mentioned user5475 when the merge request author is a ghost5476 behaves like a new merge request where the author cannot trigger notifications5477 does not create a notification for the mentioned user5478 when everything is ok5479 creates a new event record5480 creates a notification for the mentioned user5481 when the merge request is prepared5482 does not call the create service5483 when the merge request is not prepared5484 calls the create service5485Clusters::KubernetesNamespace5486 is expected to belong to cluster_project required: false5487 is expected to belong to project required: false5488 is expected to belong to cluster required: false5489 is expected to have one platform_kubernetes5490 has_service_account_token5491 namespace has service_account_token5492 is expected to include #<Clusters::KubernetesNamespace id: 1, cluster_id: 33, project_id: 1038, cluster_project_id: 1, creat...account_name: "project-1320-1038--service-account", environment_id: nil, service_account_token: nil>5493 namespace has no service_account_token5494 is expected not to include #<Clusters::KubernetesNamespace id: 2, cluster_id: 36, project_id: 1039, cluster_project_id: 2, creat...account_name: "project-1321-1039--service-account", environment_id: nil, service_account_token: nil>5495 .with_environment_name5496 there is no associated environment5497 is expected to be empty5498 there is an assicated environment5499 with a matching name5500 is expected to eq [#<Clusters::KubernetesNamespace id: 4, cluster_id: 38, project_id: 1041, cluster_project_id: nil, cr...me: "project-1323-1041-production-service-account", environment_id: 19, service_account_token: nil>]5501 without a matching name5502 is expected to be empty5503 namespace uniqueness validation5504 when cluster is using the namespace5505 is expected not to be valid5506 when cluster is not using the namespace5507 is expected to be valid5508 #predefined_variables5509 sets the variables5510ActiveHookFilter5511 #matches?5512 for various types of branch_filter5513 branch_filter_strategy: "all_branches", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true5514 is expected to equal true5515 is expected to equal true5516 branch_filter_strategy: "all_branches", branch_filter: "", ref: "refs/heads/master", expected_matches?: true5517 is expected to equal true5518 is expected to equal true5519 branch_filter_strategy: "all_branches", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true5520 is expected to equal true5521 is expected to equal true5522 branch_filter_strategy: "all_branches", branch_filter: ".*", ref: "refs/heads/master", expected_matches?: true5523 is expected to equal true5524 is expected to equal true5525 branch_filter_strategy: "wildcard", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true5526 is expected to equal true5527 is expected to equal true5528 branch_filter_strategy: "wildcard", branch_filter: "master", ref: "refs/heads/my_branch", expected_matches?: false5529 is expected to equal false5530 is expected to equal true5531 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/features/my-branch", expected_matches?: true5532 is expected to equal true5533 is expected to equal true5534 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/features/my-branch/something", expected_matches?: true5535 is expected to equal true5536 is expected to equal true5537 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/master", expected_matches?: false5538 is expected to equal false5539 is expected to equal true5540 branch_filter_strategy: "wildcard", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true5541 is expected to equal true5542 is expected to equal true5543 branch_filter_strategy: "wildcard", branch_filter: "", ref: "refs/heads/master", expected_matches?: true5544 is expected to equal true5545 is expected to equal true5546 branch_filter_strategy: "regex", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true5547 is expected to equal true5548 is expected to equal true5549 branch_filter_strategy: "regex", branch_filter: "master", ref: "refs/heads/my_branch", expected_matches?: false5550 is expected to equal false5551 is expected to equal true5552 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/xxxx/features/my-branch", expected_matches?: true5553 is expected to equal true5554 is expected to equal true5555 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/features/", expected_matches?: true5556 is expected to equal true5557 is expected to equal true5558 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/features", expected_matches?: true5559 is expected to equal true5560 is expected to equal true5561 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/features/my-branch", expected_matches?: true5562 is expected to equal true5563 is expected to equal true5564 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/features/my-branch/something", expected_matches?: true5565 is expected to equal true5566 is expected to equal true5567 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/master", expected_matches?: false5568 is expected to equal false5569 is expected to equal true5570 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/feature", expected_matches?: true5571 is expected to equal true5572 is expected to equal true5573 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/dev", expected_matches?: true5574 is expected to equal true5575 is expected to equal true5576 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/master", expected_matches?: false5577 is expected to equal false5578 is expected to equal true5579 branch_filter_strategy: "regex", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true5580 is expected to equal true5581 is expected to equal true5582 branch_filter_strategy: "regex", branch_filter: "", ref: "refs/heads/master", expected_matches?: true5583 is expected to equal true5584 is expected to equal true5585 when the branch filter is a invalid regex5586 is expected to equal false5587 when the branch filter is not properly set to nil5588 is expected to equal true5589MergeRequestCleanupRefsWorker5590 #perform_work5591 when next cleanup schedule is found5592 marks the cleanup schedule as completed on success5593 when service fails5594 marks the cleanup schedule as unstarted and track the failure5595 and cleanup schedule has already failed 3 times5596 marks the cleanup schedule as failed and track the failure5597 when merge_request_refs_cleanup flag is disabled5598 does nothing5599 when there is no next cleanup schedule found5600 does nothing5601 #remaining_work_count5602 returns number of scheduled and unstarted cleanup schedule records5603 when count exceeds max_running_jobs5604 gets capped at max_running_jobs5605 #max_running_jobs5606 returns the value of MAX_RUNNING_JOBS5607Gitlab::Ci::Config::Entry::Release5608 validation5609 when entry config value is correct5610 behaves like a valid entry5611 #value5612 returns release configuration5613 #valid?5614 is valid5615 when value includes 'assets' keyword5616 behaves like a valid entry5617 #value5618 returns release configuration5619 #valid?5620 is valid5621 when value includes 'name' keyword5622 behaves like a valid entry5623 #value5624 returns release configuration5625 #valid?5626 is valid5627 when value includes 'ref' keyword5628 behaves like a valid entry5629 #value5630 returns release configuration5631 #valid?5632 is valid5633 when value includes 'released_at' keyword5634 behaves like a valid entry5635 #value5636 returns release configuration5637 #valid?5638 is valid5639 when value includes 'milestones' keyword5640 for an array of milestones5641 behaves like a valid entry5642 #value5643 returns release configuration5644 #valid?5645 is valid5646 for a single milestone5647 behaves like a valid entry5648 #value5649 returns release configuration5650 #valid?5651 is valid5652 when value includes 'ref' keyword5653 when 'ref' is a full commit SHA5654 behaves like a valid entry5655 #value5656 returns release configuration5657 #valid?5658 is valid5659 when 'ref' is a short commit SHA5660 behaves like a valid entry5661 #value5662 returns release configuration5663 #valid?5664 is valid5665 when 'ref' is a branch name5666 behaves like a valid entry5667 #value5668 returns release configuration5669 #valid?5670 is valid5671 when 'ref' is a semantic versioning tag5672 behaves like a valid entry5673 #value5674 returns release configuration5675 #valid?5676 is valid5677 when 'ref' is a semantic versioning tag rc5678 behaves like a valid entry5679 #value5680 returns release configuration5681 #valid?5682 is valid5683 when value includes 'released_at' keyword5684 behaves like a valid entry5685 #value5686 returns release configuration5687 #valid?5688 is valid5689 when value includes 'milestones' keyword5690 for an array of milestones5691 behaves like a valid entry5692 #value5693 returns release configuration5694 #valid?5695 is valid5696 for a single milestone5697 behaves like a valid entry5698 #value5699 returns release configuration5700 #valid?5701 is valid5702 when value includes 'tag_message' keyword5703 behaves like a valid entry5704 #value5705 returns release configuration5706 #valid?5707 is valid5708 when 'tag_message' is nil5709 behaves like a valid entry5710 #value5711 returns release configuration5712 #valid?5713 is valid5714 when entry value is not correct5715 #errors5716 when value of attribute is invalid5717 behaves like reports error5718 reports error5719 when release description is missing5720 behaves like reports error5721 reports error5722 when release tag_name is missing5723 behaves like reports error5724 reports error5725 when there is an unknown key present5726 behaves like reports error5727 reports error5728 when `released_at` is not a valid date5729 behaves like reports error5730 reports error5731 when `ref` is not valid5732 behaves like reports error5733 reports error5734 when `milestones` is not an array of strings5735 behaves like reports error5736 reports error5737 when `tag_message` is not a string5738 behaves like reports error5739 reports error5740Gitlab::Git::Tag5741 #tags5742 is expected to be > 05743 unsigned tag5744 is expected to eq "v1.0.0"5745 is expected to eq "f4e6814c3e4e7a0de82a9e7cd20c626cc963a2f8"5746 is expected to eq "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"5747 is expected to eq "Release"5748 is expected to be falsey5749 is expected to eq :NONE5750 is expected to be nil5751 is expected to eq "Dmitriy Zaporozhets"5752 is expected to eq "dmitriy.zaporozhets@gmail.com"5753 is expected to eq 2014-02-27 08:54:59.000000000 +00005754 signed tag5755 is expected to eq "v1.1.1"5756 is expected to eq "8f03acbcd11c53d9c9468078f32a2622005a4841"5757 is expected to eq "189a6c924013fc3fe40d6f1ec1dc20214183bc97"5758 is expected to eq "x509 signed tag\n-----BEGIN SIGNED MESSAGE-----\nMIISfwYJKoZIhvcNAQcCoIIScDCCEmwCAQExDTALBglghkgBZQM...dZmMbJ7jNk1FbewSwWO\nSDH1i0K32NyFbnh0BSos7njq7ELqKlYBsoB/sZfaH2vKy5U=\n-----END SIGNED MESSAGE-----"5759 is expected to be truthy5760 is expected to eq :X5095761 is expected not to be nil5762 is expected to eq "Roger Meier"5763 is expected to eq "r.meier@siemens.com"5764 is expected to eq 2019-11-20 14:56:20.000000000 +00005765 .get_message5766 gets tag messages5767 gets messages in one batch5768 .extract_signature_lazily5769 when the tag is signed5770 returns signature and signed text5771 when the tag has no signature5772 returns empty signature and message as signed text5773 when the tag cannot be found5774 raises GRPC::Internal5775 when the tag ID is invalid5776 raises GRPC::Internal5777 when loading signatures in batch once5778 fetches signatures in batch once5779 tag into from Gitaly tag5780 message_size != message.size5781 message_size less than threshold5782 fetches tag message separately5783 message_size greater than threshold5784 returns a notice about message size5785 #cache_key5786 returns a cache key that changes based on changeable values5787Achievements::UserAchievementPolicy5788 # order random5789 is readable to everyone when user has public profile5790 when user has private profile5791 for achievement owner5792 is visible5793 for group maintainer5794 is visible5795 for others5796 is hidden5797 when current_user and achievement owner are the same5798 is expected to be allowed :update_owned_user_achievement5799 is expected to be allowed :update_user_achievement5800 when current_user and achievement owner are different5801 is expected to be disallowed :update_owned_user_achievement5802 is expected to be disallowed :update_user_achievement5803 when group is private5804 for achievement owner5805 is visible5806 for group maintainer5807 is visible5808 for others5809 is visible5810 when the achievements feature flag is disabled5811 is expected to be disallowed :read_user_achievement5812 is expected to be disallowed :update_user_achievement5813Nav::TopNavHelper5814 #top_nav_view_model5815 has :menuTooltip5816 when current_user is nil (anonymous)5817 has expected :primary5818 has expected :shortcuts5819 with current nav as project5820 has expected :active5821 when current_user is non-admin5822 has no menu items or views by default5823 with projects5824 has expected :primary5825 has expected :shortcuts5826 projects5827 has expected :currentUserName5828 has expected :namespace5829 has expected :linksPrimary5830 does not have any :linksSecondary5831 with current nav as project5832 has expected :active5833 with persisted project5834 has project as :container5835 with groups5836 has expected :primary5837 has expected :shortcuts5838 groups5839 has expected :currentUserName5840 has expected :namespace5841 has expected :linksPrimary5842 does not have any :linksSecondary5843 with external user5844 does not have create group link5845 with current nav as group5846 has expected :active5847 with persisted group5848 has expected :container5849 with milestones5850 has expected :shortcuts5851 with snippets5852 has expected :shortcuts5853 with activity5854 has expected :shortcuts5855 when current_user is admin5856 has admin as first :secondary item5857 with header link admin_mode true5858 has leave_admin_mode as last :secondary item5859 with header link admin_mode false5860 has enter_admin_mode as last :secondary item5861 #top_nav_responsive_view_model5862 has nil new subview5863 has nil search subview5864 with search5865 has search subview5866 with new5867 has new subview5868 with new and no menu_sections5869 has new subview5870StageEntity5871 #as_json5872 contains relevant fields5873 contains detailed status5874 contains valid name5875 contains path to the stage5876 contains path to the stage dropdown5877 contains stage title5878 does not contain play_details info5879 when the jobs should be grouped5880 exposes the group key5881 and contains commit status5882 contains commit status5883 with a skipped stage5884 contains play_all_manual5885 with a scheduled stage5886 contains play_all_manual5887 with a manual stage5888 contains play_all_manual5889Resolvers::Ci::AllJobsResolver5890 # order random5891 #resolve5892 when current user is an admin5893 when admin mode setting is disabled5894 behaves like executes as admin5895 with argument `statuses`5896 statuses: nil, expected_jobs: lazy { [successful_job, successful_job_two, failed_job, pending_job] }5897 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 557, stage_id: 330, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 558, stage_id: 331, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "failed", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-1...tage", id: 559, stage_id: 332, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 560, stage_id: 333, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5898 statuses: ["SUCCESS"], expected_jobs: lazy { [successful_job, successful_job_two] }5899 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 557, stage_id: 330, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil> and #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 558, stage_id: 331, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5900 statuses: ["SUCCESS", "FAILED"], expected_jobs: lazy { [successful_job, successful_job_two, failed_job] }5901 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 557, stage_id: 330, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 558, stage_id: 331, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, and #<Ci::Build status: "failed", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-1...tage", id: 559, stage_id: 332, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5902 statuses: ["CANCELED"], expected_jobs: lazy { [] }5903 is expected to contain exactly5904 with argument `runner_types`5905 with feature flag :admin_jobs_filter_runner_type enabled5906 runner_types: nil, expected_jobs: lazy do5907 [5908 successful_job,5909 successful_job_two,5910 failed_job,5911 pending_job,5912 successful_job_with_instance_runner5913 ]5914 end5915 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 557, stage_id: 330, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 558, stage_id: 331, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "failed", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-1...tage", id: 559, stage_id: 332, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 560, stage_id: 333, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, and #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 561, stage_id: 334, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5916 runner_types: ["INSTANCE_TYPE"], expected_jobs: lazy { [successful_job_with_instance_runner] }5917 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 561, stage_id: 334, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5918 runner_types: ["INSTANCE_TYPE", "GROUP_TYPE"], expected_jobs: lazy { [successful_job_with_instance_runner] }5919 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 561, stage_id: 334, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5920 runner_types: ["PROJECT_TYPE"], expected_jobs: lazy { [] }5921 is expected to contain exactly5922 with argument combination5923 with feature flag :admin_jobs_filter_runner_type enabled5924 statuses: ["SUCCESS"], runner_types: ["INSTANCE_TYPE"], expected_jobs: lazy { [successful_job_with_instance_runner] }5925 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 562, stage_id: 335, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5926 statuses: ["CANCELED"], runner_types: ["INSTANCE_TYPE"], expected_jobs: lazy { [] }5927 is expected to contain exactly5928 statuses: ["SUCCESS", "RUNNING"], runner_types: ["INSTANCE_TYPE", "GROUP_TYPE"], expected_jobs: lazy do5929 [5930 successful_job_with_instance_runner,5931 running_job_with_group_runner5932 ]5933 end5934 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 562, stage_id: 335, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil> and #<Ci::Build status: "running", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 563, stage_id: 336, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5935 when admin mode setting is enabled5936 when in admin mode5937 behaves like executes as admin5938 with argument `statuses`5939 statuses: nil, expected_jobs: lazy { [successful_job, successful_job_two, failed_job, pending_job] }5940 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 557, stage_id: 330, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 558, stage_id: 331, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "failed", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-1...tage", id: 559, stage_id: 332, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 560, stage_id: 333, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5941 statuses: ["SUCCESS"], expected_jobs: lazy { [successful_job, successful_job_two] }5942 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 557, stage_id: 330, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil> and #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 558, stage_id: 331, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5943 statuses: ["SUCCESS", "FAILED"], expected_jobs: lazy { [successful_job, successful_job_two, failed_job] }5944 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 557, stage_id: 330, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 558, stage_id: 331, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, and #<Ci::Build status: "failed", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-1...tage", id: 559, stage_id: 332, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5945 statuses: ["CANCELED"], expected_jobs: lazy { [] }5946 is expected to contain exactly5947 with argument `runner_types`5948 with feature flag :admin_jobs_filter_runner_type enabled5949 runner_types: nil, expected_jobs: lazy do5950 [5951 successful_job,5952 successful_job_two,5953 failed_job,5954 pending_job,5955 successful_job_with_instance_runner5956 ]5957 end5958 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 557, stage_id: 330, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 558, stage_id: 331, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "failed", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-1...tage", id: 559, stage_id: 332, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, #<Ci::Build status: "pending", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 560, stage_id: 333, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>, and #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 564, stage_id: 337, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5959 runner_types: ["INSTANCE_TYPE"], expected_jobs: lazy { [successful_job_with_instance_runner] }5960 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 564, stage_id: 337, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5961 runner_types: ["INSTANCE_TYPE", "GROUP_TYPE"], expected_jobs: lazy { [successful_job_with_instance_runner] }5962 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 564, stage_id: 337, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5963 runner_types: ["PROJECT_TYPE"], expected_jobs: lazy { [] }5964 is expected to contain exactly5965 with argument combination5966 with feature flag :admin_jobs_filter_runner_type enabled5967 statuses: ["SUCCESS"], runner_types: ["INSTANCE_TYPE"], expected_jobs: lazy { [successful_job_with_instance_runner] }5968 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 565, stage_id: 338, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5969 statuses: ["CANCELED"], runner_types: ["INSTANCE_TYPE"], expected_jobs: lazy { [] }5970 is expected to contain exactly5971 statuses: ["SUCCESS", "RUNNING"], runner_types: ["INSTANCE_TYPE", "GROUP_TYPE"], expected_jobs: lazy do5972 [5973 successful_job_with_instance_runner,5974 running_job_with_group_runner5975 ]5976 end5977 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2023-10-20 08:53:29.000000000 +0000", created_at: "2023-...tage", id: 565, stage_id: 338, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil> and #<Ci::Build status: "running", finished_at: nil, created_at: "2023-10-20 08:50:29.000000000 +0000", u...tage", id: 566, stage_id: 339, partition_id: 100, auto_canceled_by_partition_id: 100, tag_list: nil>5978 when not in admin mode5979 is expected to be empty5980 with unauthorized user5981 is expected to be empty5982FinderWithCrossProjectAccess5983 when the user cannot read cross project5984 #execute5985 returns a issue if the check is disabled5986 returns an empty relation when the check is enabled5987 only queries once when check is enabled5988 only queries once when check is disabled5989 #find5990 checks the accessibility of the subject directly5991 returns the issue5992 #find_by5993 checks the accessibility of the subject directly5994 #find_by!5995 checks the accessibility of the subject directly5996 re-enables the check after the find failed5997 when the user can read cross project5998 returns the result5999 when specifying a model6000 .finder_model6001 is set correctly6002Mutations::IncidentManagement::TimelineEvent::Update6003 # order random6004 #resolve6005 when user has permissions to update the timeline event6006 when timeline event exists6007 updates the timeline event6008 returns updated timeline event6009 when there is a validation error6010 when note is blank6011 does not update the timeline event6012 responds with error6013 when occurred_at is blank6014 does not update the timeline event6015 responds with error6016 when occurred_at is invalid6017 does not update the timeline event6018 responds with error6019 when timeline event tag do not exist6020 does not update the timeline event6021 responds with error6022 when timeline event tags are passed6023 returns updated timeline event6024 removes tag1 and assigns tag2 to the event6025 when timeline event cannot be found6026 behaves like failed update with a top-level access error6027 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6028 when user does not have permissions to update the timeline event6029 behaves like failed update with a top-level access error6030 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"6031PagesDeployment6032 saves size along with the file6033 associations6034 is expected to belong to project required: true6035 is expected to belong to ci_build optional: true6036 validations6037 is expected to validate that :file cannot be empty/falsy6038 is expected to validate that :size cannot be empty/falsy6039 is expected to validate that :size looks like an integer greater than 06040 is expected to validate that :file_count cannot be empty/falsy6041 is expected to validate that :file_count looks like an integer greater than or equal to 06042 is expected to validate that :file_sha256 cannot be empty/falsy6043 is expected to validate that :file_store is either ‹1› or ‹2›6044 is valid when created from the factory6045 with deployments stored locally and remotely6046 .with_files_stored_locally6047 only returns deployments with files stored locally6048 .with_files_stored_remotely6049 only returns deployments with files stored remotely6050 when uploading the file6051 stores the file outsize of the transaction6052 does nothing when the file did not change6053 .deactivate_deployments_older_than6054 updates only older deployments for the same project and path prefix6055 updates only older deployments for the same project with the given time6056 default for file_store6057 uses local store when object storage is not enabled6058 uses remote store when object storage is enabled6059 .older_than6060 returns deployments with lower id6061ErrorTracking::Error6062 relationships6063 is expected to belong to project required: false6064 is expected to have many events6065 validations6066 is expected to validate that :name cannot be empty/falsy6067 is expected to validate that the length of :name is at most 2556068 is expected to validate that :description cannot be empty/falsy6069 is expected to validate that the length of :description is at most 10246070 is expected to validate that :actor cannot be empty/falsy6071 is expected to validate that the length of :actor is at most 2556072 is expected to validate that the length of :platform is at most 2556073 .report_error6074 updates existing record with a new timestamp6075 .sort_by_attribute6076 id desc by default6077 is expected to eq [#<ErrorTracking::Error id: 3, project_id: 1115, name: "ActionView::MissingTemplate", description: [F...8 +0000", updated_at: "2023-10-20 08:52:12.585015768 +0000", events_count: 0, status: "unresolved">]6078 first_seen6079 is expected to eq [#<ErrorTracking::Error id: 1, project_id: 1113, name: "ActionView::MissingTemplate", description: [F...2 +0000", updated_at: "2023-10-20 08:52:14.922857442 +0000", events_count: 0, status: "unresolved">]6080 last_seen6081 is expected to eq [#<ErrorTracking::Error id: 1, project_id: 1113, name: "ActionView::MissingTemplate", description: [F...5 +0000", updated_at: "2023-10-20 08:52:15.456277985 +0000", events_count: 0, status: "unresolved">]6082 frequency6083 is expected to eq [#<ErrorTracking::Error id: 8, project_id: 1120, name: "ActionView::MissingTemplate", description: [F...8 +0000", updated_at: "2023-10-20 08:52:12.585015768 +0000", events_count: 0, status: "unresolved">]6084 #title6085 is expected to eq "ActionView::MissingTemplate Missing template posts/edit"6086 #to_sentry_error6087 is expected to be a kind of Gitlab::ErrorTracking::Error6088 #to_sentry_detailed_error6089 is expected to be a kind of Gitlab::ErrorTracking::DetailedError6090 is expected to be truthy6091 is expected to eq "db853d7"6092 is expected to eq "db853d7"6093ContextCommitsFinder6094 #execute6095 filters commits by valid sha/commit message6096 returns nothing when searched by invalid sha/commit message6097 returns commits based in author filter6098 returns commits based in committed before and after filter6099 returns commits from target branch if no filter is applied6100Labels::FindOrCreateService6101 #execute6102 when acting on behalf of a specific user6103 when finding labels on project level6104 when existing_labels_by_title is provided6105 when label exists6106 returns preloaded label6107 when label does not exists6108 does not generates additional label search6109 when label does not exist at group level6110 creates a new label at project level6111 when label exists at group level6112 returns the group label6113 when label exists at project level6114 returns the project label6115 when include_ancestor_groups is true6116 returns the ancestor group labels6117 creates new labels if labels are not found6118 when finding labels on group level6119 when label does not exist at group level6120 creates a new label at group level6121 when label exists at group level6122 returns the group label6123 when authorization is not required6124 when finding labels on project level6125 returns the project label6126 when finding labels on group level6127 returns the group label6128Packages::Conan::PackageFinder6129 #execute6130 visibility: :private, role: :maintainer, packages_visible: true6131 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6132 visibility: :private, role: :developer, packages_visible: true6133 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6134 visibility: :private, role: :reporter, packages_visible: true6135 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6136 visibility: :private, role: :guest, packages_visible: false6137 is expected to eq []6138 visibility: :private, role: :anonymous, packages_visible: false6139 is expected to eq []6140 visibility: :internal, role: :maintainer, packages_visible: true6141 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6142 visibility: :internal, role: :developer, packages_visible: true6143 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6144 visibility: :internal, role: :reporter, packages_visible: true6145 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6146 visibility: :internal, role: :guest, packages_visible: true6147 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6148 visibility: :internal, role: :anonymous, packages_visible: false6149 is expected to eq []6150 visibility: :public, role: :maintainer, packages_visible: true6151 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6152 visibility: :public, role: :developer, packages_visible: true6153 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6154 visibility: :public, role: :reporter, packages_visible: true6155 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6156 visibility: :public, role: :guest, packages_visible: true6157 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6158 visibility: :public, role: :anonymous, packages_visible: true6159 is expected to eq [#<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", up...e_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>]6160 with project6161 is expected to contain exactly #<Packages::Package id: 477, project_id: 1141, created_at: "2023-10-20 08:52:34.060847935 +0000", upd...ge_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 475, project_id: 1141, created_at: "2023-10-20 08:52:33.704499776 +0000", upd...ge_type: "conan", creator_id: 2027, status: "default", last_downloaded_at: nil, status_message: nil>6162 respects the limit6163 with a different project6164 is expected to contain exactly #<Packages::Package id: 481, project_id: 1142, created_at: "2023-10-20 08:52:34.805118199 +0000", upd...ge_type: "conan", creator_id: 2029, status: "default", last_downloaded_at: nil, status_message: nil>6165Integrations::Ewm6166 Validations6167 when integration is active6168 is expected to validate that :project_url cannot be empty/falsy6169 is expected to validate that :issues_url cannot be empty/falsy6170 is expected to validate that :new_issue_url cannot be empty/falsy6171 behaves like issue tracker integration URL attribute6172 is expected to allow :project_url to be ‹"https://example.com"›6173 is expected not to allow :project_url to be ‹"example.com"›6174 is expected not to allow :project_url to be ‹"ftp://example.com"›6175 is expected not to allow :project_url to be ‹"herp-and-derp"›6176 behaves like issue tracker integration URL attribute6177 is expected to allow :issues_url to be ‹"https://example.com"›6178 is expected not to allow :issues_url to be ‹"example.com"›6179 is expected not to allow :issues_url to be ‹"ftp://example.com"›6180 is expected not to allow :issues_url to be ‹"herp-and-derp"›6181 behaves like issue tracker integration URL attribute6182 is expected to allow :new_issue_url to be ‹"https://example.com"›6183 is expected not to allow :new_issue_url to be ‹"example.com"›6184 is expected not to allow :new_issue_url to be ‹"ftp://example.com"›6185 is expected not to allow :new_issue_url to be ‹"herp-and-derp"›6186 when integration is inactive6187 is expected not to validate that :project_url cannot be empty/falsy6188 is expected not to validate that :issues_url cannot be empty/falsy6189 is expected not to validate that :new_issue_url cannot be empty/falsy6190 ReferencePatternValidation6191 extracts bug6192 extracts task6193 extracts work item6194 extracts workitem6195 extracts defect6196 extracts rtcwi6197Gitlab::Ci::Config::Entry::Root6198 .nodes6199 returns a hash6200 when filtering all the entry/node names6201 contains the expected node names6202 when configuration is valid6203 when top-level entries are defined6204 #compose!6205 creates nodes hash6206 creates node object for each entry6207 creates node object using valid class6208 sets correct description for nodes6209 sets correct variables value6210 #leaf?6211 is not leaf6212 when composed6213 #errors6214 has no errors6215 #stages_value6216 when stages key defined6217 returns array of stages6218 #jobs_value6219 returns jobs configuration6220 when a mix of top-level and default entries is used6221 when composed6222 tracks log entries6223 #errors6224 has no errors6225 #jobs_value6226 returns jobs configuration6227 when most of entires not defined6228 #nodes6229 instantizes all nodes6230 contains unspecified nodes6231 #variables_value6232 returns root value for variables6233 #stages_value6234 returns an array of root stages6235 #cache_value6236 returns correct cache definition6237 when variables resembles script-type job6238 #variables_value6239 returns root value for variables6240 #jobs_value6241 returns one job6242 when entries are specified but not defined6243 #variables_value6244 undefined entry returns a root value6245 when variables have `options` data6246 and the value is in the `options` array6247 returns correct value6248 and the value is not in the `options` array6249 returns an error6250 when variables have "expand" data6251 returns correct value6252 when configuration is not valid6253 when before script is a number6254 #valid?6255 is not valid6256 #errors6257 reports errors from child nodes6258 when job does not have commands6259 #errors6260 reports errors about missing script or trigger6261 when a variable has an invalid data key6262 #errors6263 reports errors about the invalid variable6264 when value is not a hash6265 #valid?6266 is not valid6267 #errors6268 returns error about invalid type6269 #specified?6270 is concrete entry that is defined6271 #[]6272 when entry exists6273 returns correct entry6274 when entry does not exist6275 always return unspecified node6276Gitlab::Ci::Config::Entry::Include::Rules::Rule6277 when specifying an if: clause6278 behaves like a valid config6279 is expected to be valid6280 returns the expected value6281 with when:6282 behaves like a valid config6283 is expected to be valid6284 returns the expected value6285 with when: <invalid string>6286 behaves like an invalid config6287 is expected not to be valid6288 has errors6289 with when: null6290 behaves like a valid config6291 is expected to be valid6292 returns the expected value6293 when if: clause is invalid6294 behaves like an invalid config6295 is expected not to be valid6296 has errors6297 when if: clause has an integer operand6298 behaves like an invalid config6299 is expected not to be valid6300 has errors6301 when if: clause has invalid regex6302 behaves like an invalid config6303 is expected not to be valid6304 has errors6305 when if: clause has lookahead regex character "?"6306 behaves like an invalid config6307 is expected not to be valid6308 has errors6309 when if: clause has array of expressions6310 behaves like an invalid config6311 is expected not to be valid6312 has errors6313 when specifying an exists: clause6314 behaves like a valid config6315 is expected to be valid6316 returns the expected value6317 when exists: clause is an array6318 behaves like a valid config6319 is expected to be valid6320 returns the expected value6321 when exists: clause is null6322 behaves like a valid config6323 is expected to be valid6324 returns the expected value6325 when specifying a changes: clause6326 behaves like a valid config6327 is expected to be valid6328 returns the expected value6329 with paths:6330 behaves like a valid config6331 is expected to be valid6332 returns the expected value6333 with paths: and compare_to:6334 behaves like a valid config6335 is expected to be valid6336 returns the expected value6337 when specifying an unknown keyword6338 behaves like an invalid config6339 is expected not to be valid6340 has errors6341 when config is blank6342 behaves like an invalid config6343 is expected not to be valid6344 has errors6345 when config type is invalid6346 behaves like an invalid config6347 is expected not to be valid6348 has errors6349Gitlab::Audit::Auditor6350 .audit6351 when yaml definition is not defined6352 raises an error6353 when yaml definition is defined6354 does not raise an error6355 when authentication event6356 creates an authentication event6357 logs audit events to database6358 logs audit events to file6359 when overriding the create datetime6360 logs audit events to database6361 logs audit events to file6362 when overriding the additional_details6363 logs audit events to database6364 logs audit events to file6365 when overriding the target_details6366 logs audit events to database6367 logs audit events to file6368 when authentication event is false6369 does not create an authentication event6370 with permitted target6371 with feature_flag6372 logs audit events to database6373 when authentication event is invalid6374 tracks error6375 does not throw exception6376 when audit events are invalid6377 tracks error6378 does not throw exception6379 when audit event is not saved in database due to some database infra issue6380 calls log_to_file_and_stream with in memory events6381 does not throw exception6382Gitlab::MarkdownCache::ActiveRecord::Extension6383 an unchanged markdown field6384 is expected to eq "`Foo`"6385 is expected to eq "<p dir=\"auto\"><code>Foo</code></p>"6386 is expected not to be truthy6387 is expected to eq 20971526388 a changed markdown field6389 is expected to eq "<p dir=\"auto\"><code>Bar</code></p>"6390 is expected to eq 20971526391 when a markdown field is set repeatedly to an empty string6392 is expected to receive refresh_markdown_cache(*(any args)) 1 time6393 when a markdown field is set repeatedly to a string which renders as empty html6394 is expected to receive refresh_markdown_cache(*(any args)) 1 time6395 a non-markdown field changed6396 is expected to eq 26397 is expected to eq "`Foo`"6398 is expected to eq "<p dir=\"auto\"><code>Foo</code></p>"6399 is expected to eq 20971526400 version is out of date6401 is expected to eq "<p dir=\"auto\"><code>Bar</code></p>"6402 is expected to eq 20971526403 when an invalidating field is changed6404 invalidates the cache when project changes6405 invalidates the cache when author changes6406 .attributes6407 excludes cache attributes that are denylisted by default6408 #cached_html_up_to_date?6409 returns false if markdown has been changed but html has not6410 returns true if markdown has not been changed but html has6411 returns true if markdown and html have both been changed6412 returns false if the markdown field is set but the html is not6413 #refresh_markdown_cache!6414 skips saving if not persisted6415 saves the changes6416 with note6417 calls store_mentions!6418 during import6419 does not call store_mentions!6420 when persisted cache is newer than current version6421 does not save the generated HTML6422 when persisted cache is nil6423 does not save the generated HTML6424Projects::ContainerRepository::ThirdParty::CleanupTagsService6425 # order random6426 #execute6427 behaves like when regex matching everything is specified6428 behaves like removing the expected tags6429 removes the expected tags6430 with deprecated name_regex param6431 behaves like removing the expected tags6432 removes the expected tags6433 behaves like when regex matching everything is specified and latest is not kept6434 behaves like removing the expected tags6435 removes the expected tags6436 behaves like when delete regex matching specific tags is used6437 behaves like removing the expected tags6438 removes the expected tags6439 behaves like when delete regex matching specific tags is used with overriding allow regex6440 behaves like removing the expected tags6441 removes the expected tags6442 with name_regex_delete overriding deprecated name_regex6443 behaves like removing the expected tags6444 removes the expected tags6445 behaves like with allow regex value6446 behaves like removing the expected tags6447 removes the expected tags6448 behaves like when keeping only N tags6449 sorts tags by date6450 behaves like when not keeping N tags6451 does not sort tags by date6452 behaves like when removing keeping only 36453 behaves like removing the expected tags6454 removes the expected tags6455 behaves like when removing older than 1 day6456 behaves like removing the expected tags6457 removes the expected tags6458 behaves like when combining all parameters6459 behaves like removing the expected tags6460 removes the expected tags6461 behaves like when running a container_expiration_policy6462 with valid container_expiration_policy param6463 removes the expected tags6464 when running a container_expiration_policy with caching6465 expects caching to be used6466 when setting set to false6467 does not use caching6468 when truncating the tags list6469 max_list_size: 10, delete_tags_service_status: :success, expected_status: :success, expected_truncated: false6470 behaves like returning the response6471 returns the response6472 max_list_size: 10, delete_tags_service_status: :error, expected_status: :error, expected_truncated: false6473 behaves like returning the response6474 returns the response6475 max_list_size: 3, delete_tags_service_status: :success, expected_status: :error, expected_truncated: true6476 behaves like returning the response6477 returns the response6478 max_list_size: 3, delete_tags_service_status: :error, expected_status: :error, expected_truncated: true6479 behaves like returning the response6480 returns the response6481 max_list_size: 0, delete_tags_service_status: :success, expected_status: :success, expected_truncated: false6482 behaves like returning the response6483 returns the response6484 max_list_size: 0, delete_tags_service_status: :error, expected_status: :error, expected_truncated: false6485 behaves like returning the response6486 returns the response6487 with caching6488 caches the created_at values6489 with cached values6490 uses them6491admin/dashboard/index.html.haml6492 shows version of GitLab Workhorse6493 includes revision of GitLab for pre VERSION6494 shows the tag for GitLab version6495 does not include license breakdown6496 shows database versions for all database models6497 when show_version_check? is true6498 renders the version check badge6499 GitLab KAS6500 KAS enabled6501 includes KAS version6502 KAS disabled6503 does not include KAS version6504Gitlab::Ci::Config::Entry::Needs6505 validations6506 when entry config value is correct6507 #valid?6508 is expected to be valid6509 when config value has wrong type6510 #valid?6511 is expected not to be valid6512 #errors6513 returns error about incorrect type6514 when wrong needs type is used6515 #valid?6516 is expected not to be valid6517 #errors6518 returns error about incorrect type6519 when wrong needs type is used6520 #valid?6521 is expected not to be valid6522 #errors6523 returns error about incorrect type6524 when needs value is a hash6525 with a job value6526 #valid?6527 is expected to be valid6528 with a parallel value that is a numeric value6529 #valid?6530 is expected not to be valid6531 #errors6532 returns errors about number values being invalid for needs:parallel6533 when needs:parallel value is incorrect6534 with a keyword that is not "matrix"6535 #valid?6536 is expected not to be valid6537 #errors6538 returns errors about incorrect matrix keyword6539 with a number value6540 #valid?6541 is expected not to be valid6542 #errors6543 returns errors about number values being invalid for needs:parallel6544 when needs:parallel:matrix value is empty6545 #valid?6546 is expected not to be valid6547 #errors6548 returns error about incorrect type6549 when needs:parallel:matrix value is incorrect6550 #valid?6551 is expected not to be valid6552 #errors6553 returns error about incorrect type6554 when needs:parallel:matrix value is correct6555 with a simple config6556 #valid?6557 is expected to be valid6558 with a complex config6559 #valid?6560 is expected to be valid6561 with too many cross pipeline dependencies6562 #valid?6563 is expected not to be valid6564 #errors6565 returns error about incorrect type6566 .compose!6567 when valid job entries composed6568 #value6569 returns key value6570 behaves like entry with descendant nodes6571 #descendants6572 creates valid descendant nodes6573 with complex job entries composed6574 #value6575 returns key value6576 behaves like entry with descendant nodes6577 #descendants6578 creates valid descendant nodes6579 with mixed job entries composed6580 #value6581 returns key value6582 behaves like entry with descendant nodes6583 #descendants6584 creates valid descendant nodes6585 with empty config6586 #value6587 returns empty value6588Packages::Debian::ProjectComponentFile6589 behaves like Debian Component File6590 relationships6591 with stubbed uploader6592 is expected to belong to component class_name => Packages::Debian::ProjectComponent required: false inverse_of => files6593 with packages file_type6594 is expected to belong to architecture class_name => Packages::Debian::ProjectArchitecture required: false inverse_of => files6595 with :sources file_type6596 is expected to belong to architecture class_name => Packages::Debian::ProjectArchitecture inverse_of => files optional: true6597 validations6598 #component6599 is expected to validate that :component cannot be empty/falsy6600 #architecture6601 with packages file_type6602 is expected to validate that :architecture cannot be empty/falsy6603 with :sources file_type6604 is expected to validate that :architecture is empty/falsy6605 #file_type6606 is expected to validate that :file_type cannot be empty/falsy6607 is expected to allow :file_type to be ‹:packages›6608 #compression_type6609 is expected not to validate that :compression_type cannot be empty/falsy6610 is expected to allow :compression_type to be ‹nil›6611 is expected to allow :compression_type to be ‹:gz›6612 #file6613 the uploader api6614 is expected to respond to #store_dir6615 is expected to respond to #cache_dir6616 is expected to respond to #work_dir6617 #file_store6618 is expected to validate that :file_store cannot be empty/falsy6619 #file_sha2566620 is expected to validate that :file_sha256 cannot be empty/falsy6621 scopes6622 .with_container6623 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 6, created_at: "2023-10-20 08:53:11.038436571 +0000", up...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6624 .with_codename_or_suite6625 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 6, created_at: "2023-10-20 08:53:11.038436571 +0000", up...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6626 .with_component_name6627 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 3, created_at: "2023-10-20 08:53:11.013888483 +0000", up...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6628 .with_file_type6629 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 7, created_at: "2023-10-20 08:53:11.046463000 +0000", up..._type: nil, file_store: 1, file: "Sources", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6630 .with_architecture6631 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 2, created_at: "2023-10-20 08:53:11.005963914 +0000", up...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6632 .with_architecture_name6633 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 2, created_at: "2023-10-20 08:53:11.005963914 +0000", up...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6634 .with_compression_type6635 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 4, created_at: "2023-10-20 08:53:11.022170082 +0000", up...ype: "xz", file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6636 .with_file_sha2566637 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 5, created_at: "2023-10-20 08:53:11.030071152 +0000", up...pe: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "other_sha256">6638 .updated_before6639 is expected to contain exactly #<Packages::Debian::ProjectComponentFile id: 9, created_at: "2023-10-20 08:53:12.108882659 +0000", up...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad"> and #<Packages::Debian::ProjectComponentFile id: 10, created_at: "2023-10-20 08:53:12.117526888 +0000", u...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">6640 callbacks6641 updates metadata columns6642 #relative_path6643 with a Packages file_type6644 is expected to eq "libero1/binary-repudiandae1/Packages"6645 with a Source file_type6646 is expected to eq "libero1/source/Sources"6647 with a DI Packages file_type6648 is expected to eq "libero1/debian-installer/binary-repudiandae1/Packages"6649 with an xz compression_type6650 is expected to eq "libero1/binary-repudiandae1/Packages.xz"6651 #empty?6652 with a non-empty component6653 is expected to be falsey6654 with an empty component6655 is expected to be truthy6656Clusters::Providers::Gcp6657 is expected to belong to cluster required: false6658 is expected to validate that :zone cannot be empty/falsy6659 state_machine6660 when any => [:created]6661 nullifies API credentials6662 when any => [:creating]6663 calls #assign_operation_id on the provider6664 when any => [:errored]6665 calls #nullify_credentials on the provider6666 sets a status reason6667 when status_reason is nil6668 does not set status_reason6669 #on_creation?6670 status: :scheduled, result: true6671 is expected to eq true6672 status: :creating, result: true6673 is expected to eq true6674 status: :created, result: false6675 is expected to eq false6676 status: :errored, result: false6677 is expected to eq false6678 default values6679 has default value6680 validation6681 when validates gcp_project_id6682 when gcp_project_id is shorter than 16683 is expected to be falsey6684 when gcp_project_id is longer than 636685 is expected to be falsey6686 when gcp_project_id includes invalid character6687 is expected to be falsey6688 when gcp_project_id is valid6689 is expected to be truthy6690 when validates num_nodes6691 when num_nodes is string6692 is expected to be falsey6693 when num_nodes is nil6694 is expected to be falsey6695 when num_nodes is smaller than 16696 is expected to be falsey6697 when num_nodes is valid6698 is expected to be truthy6699 #has_rbac_enabled?6700 when cluster is legacy_abac6701 is expected to be falsey6702 when cluster is not legacy_abac6703 is expected to be truthy6704 #knative_pre_installed?6705 when cluster is cloud_run6706 is expected to be falsey6707 when cluster is not cloud_run6708 is expected to be truthy6709 #nullify_credentials6710 removes access_token and operation_id6711 #assign_operation_id6712 sets operation_id6713BulkImports::Common::Transformers::MemberAttributesTransformer6714 # order random6715 with a project6716 returns nil when receives no data6717 returns nil when no user is found6718 when the user is not confirmed6719 returns nil even when the primary email match6720 returns nil even when a secondary email match6721 when the user is confirmed6722 finds the user by the primary email6723 finds the user by the secondary email6724 format access level6725 ignores record if no access level is given6726 ignores record if is not a valid access level6727 source user id and username caching6728 when user gid is present6729 caches source user id and username6730 when user gid is missing6731 does not use caching6732 when username is nil6733 caches source user id only6734 when source username matches destination username6735 caches source user id only6736 with a group6737 returns nil when receives no data6738 returns nil when no user is found6739 when the user is not confirmed6740 returns nil even when the primary email match6741 returns nil even when a secondary email match6742 when the user is confirmed6743 finds the user by the primary email6744 finds the user by the secondary email6745 format access level6746 ignores record if no access level is given6747 ignores record if is not a valid access level6748 source user id and username caching6749 when user gid is present6750 caches source user id and username6751 when user gid is missing6752 does not use caching6753 when username is nil6754 caches source user id only6755 when source username matches destination username6756 caches source user id only6757BoardsHelper6758 #build_issue_link_base6759 project board6760 returns correct path for project board6761 group board6762 returns correct path for base group6763 returns correct path for subgroup6764 #board_base_url6765 when group board6766 generates the correct url6767 when project board6768 generates the correct url6769 #current_board_namespace6770 when group board6771 returns the correct namespace6772 project under group6773 when project board6774 returns the correct namespace6775 project under user namespace6776 when project board6777 returns the correct namespace6778 #board_data6779 project_board6780 returns board type as parent6781 returns can_update for user permissions on the board6782 returns required label endpoints6783 returns the group id of a project6784 can_admin_list6785 returns can_admin_list as false by default6786 returns can_admin_list as true when user can admin the board lists6787 can_admin_board6788 returns can_admin_board as false by default6789 returns can_admin_board as true when user can admin the board6790 group board6791 returns correct path for base group6792 returns required label endpoints6793 returns the group id6794 can_admin_list6795 returns can_admin_list as false by default6796 returns can_admin_list as true when user can admin the board lists6797Gitlab::Database::LoadBalancing::SidekiqClientMiddleware6798 #call6799 when worker cannot be constantized6800 does not pass database locations6801 sets job data consistency6802 when worker class does not include ApplicationWorker6803 does not pass database locations6804 sets job data consistency6805 when job contains wrapped worker6806 when wrapped worker does not include WorkerAttributes6807 does not pass database locations6808 sets job data consistency6809 when wrapped worker includes WorkerAttributes6810 when write was not performed6811 sets job data consistency6812 when replica hosts are available6813 passes database_replica_location6814 when no replica hosts are available6815 passes primary_write_location6816 when write was performed6817 passes primary write location6818 sets job data consistency6819 database wal location was already provided6820 when write was performed6821 does not set database locations again6822 when write was not performed6823 does not set database locations again6824 when worker data consistency is :always6825 does not pass database locations6826 sets job data consistency6827 when worker data consistency is :delayed6828 when write was not performed6829 sets job data consistency6830 when replica hosts are available6831 passes database_replica_location6832 when no replica hosts are available6833 passes primary_write_location6834 when write was performed6835 passes primary write location6836 sets job data consistency6837 when worker data consistency is :sticky6838 when write was not performed6839 sets job data consistency6840 when replica hosts are available6841 passes database_replica_location6842 when no replica hosts are available6843 passes primary_write_location6844 when write was performed6845 passes primary write location6846 sets job data consistency6847MergeRequests::CreateApprovalEventWorker6848 calls MergeRequests::CreateApprovalEventService6849 behaves like subscribes to event6850 consumes the published event6851 behaves like an idempotent worker6852 is labeled as idempotent6853 performs multiple times sequentially without raising an exception6854 when the user does not exist6855 behaves like when object does not exist6856 does not call MergeRequests::CreateApprovalEventService6857 when the merge request does not exist6858 behaves like when object does not exist6859 does not call MergeRequests::CreateApprovalEventService6860Admin::UserActionsHelper6861 #admin_actions6862 the user is a bot6863 is expected to be empty6864 the current user and user are the same6865 is expected to contain exactly "edit"6866 the user is a standard user6867 is expected to contain exactly "edit", "block", "ban", "deactivate", "delete", and "delete_with_contributions"6868 the user is an admin user6869 is expected to contain exactly "edit", "block", "ban", "deactivate", "delete", and "delete_with_contributions"6870 the user is blocked by LDAP6871 is expected to contain exactly "edit", "ldap", "delete", and "delete_with_contributions"6872 the user is blocked pending approval6873 is expected to contain exactly "edit", "approve", and "reject"6874 the user is blocked6875 is expected to contain exactly "edit", "unblock", "delete", and "delete_with_contributions"6876 the user is deactivated6877 is expected to contain exactly "edit", "block", "ban", "activate", "delete", and "delete_with_contributions"6878 the user is locked6879 is expected to contain exactly "edit", "block", "ban", "deactivate", "unlock", "delete", and "delete_with_contributions"6880 the user is banned6881EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar6882EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar6883 is expected to contain exactly "edit", "unban", "delete", and "delete_with_contributions"6884 the current_user does not have permission to delete the user6885 is expected to contain exactly "edit", "block", "ban", and "deactivate"6886 the user is a sole owner of a group6887 is expected to contain exactly "edit", "block", "ban", "deactivate", and "delete_with_contributions"6888 the user is a bot6889 is expected to contain exactly6890Gitlab::Ci::Pipeline::Logger6891 #log_when6892 stores blocks for later evaluation6893 #instrument6894 returns the block's value6895 records durations of instrumented operations6896 raises an error when block is not provided6897 when once: true6898 logs only one observation6899 #instrument_once_with_sql6900 with a single query6901 is expected to eq 06902 includes SQL metrics6903 with multiple queries6904 is expected to eq 06905 includes SQL metrics6906 when there are not SQL operations6907 is expected to eq 1236908 does not include SQL metrics6909 #observe6910 records durations of observed operations6911 when once: true6912 records the latest observation6913 logs data as expected6914 #commit6915 when the feature flag is enabled6916 logs to application.json6917 with log conditions6918 does not log when the conditions are false6919 logs when a condition is true6920 with unexistent observations in condition6921 does not commit the log6922 when project is not passed and pipeline is not persisted6923 logs to application.json6924 when the feature flag is disabled6925 does not log6926Gitlab::ImportExport::Project::Sample::RelationFactory6927 issue object6928 correctly updated due date6929 milestone object6930 correctly updated due date6931 correctly updated start date6932 milestone object6933 correctly updated due date6934 correctly updated start date6935 hook object6936 does not calculate the closest date to average6937LabelLink6938 is expected to be valid6939 is expected to belong to label required: false6940 is expected to belong to target required: false6941 behaves like a BulkInsertSafe model6942 when calling class methods directly6943 raises an error when method is not bulk-insert safe6944 does not raise an error when method is bulk-insert safe6945 .bulk_insert!6946 when all items are valid6947 inserts them all6948 returns an empty array6949 when some items are invalid6950 does not insert any of them and raises an error6951 inserts them anyway when bypassing validations6952 .for_target6953 returns the label links for a given target6954Ci::PipelineSuccessUnlockArtifactsWorker6955 #perform6956 is labeled as idempotent6957 performs multiple times sequentially without raising an exception6958 unlocks the artifacts from older pipelines6959 when pipeline exists6960 when pipeline has erasable artifacts6961 calls the unlock service6962 when pipeline has no erasable artifacts6963 does not call the unlock service6964 when pipeline does not exist6965 does not call service6966 .database_health_check_attrs6967 defines expected db health check attrs6968 with stop signal from database health check6969DEPRECATION WARNING: Invalid Feature Flag drop_sidekiq_jobs_Ci::PipelineSuccessUnlockArtifactsWorker stubbed (called from each at /builds/gitlab-org/gitlab/spec/support/helpers/stub_feature_flags.rb:49)6970 defers the job by set time6971Gitlab::DeployKeyAccess6972 #can_create_tag?6973 when no-one can create tag6974 returns false6975 push tag that matches a protected tag pattern via a deploy key6976 allows to push the tag6977 #can_push_for_ref?6978 push to a protected branch of this project via a deploy key6979 when the project has active deploy key owned by this user6980 returns true6981 when the project has active deploy keys, but not by this user6982 returns false6983 when there is another branch no one can push to6984 returns false when trying to push to that other branch6985 and the deploy key added for the first protected branch is also added for this other branch6986 returns true for both protected branches6987Gitlab::Usage::Metrics::Instrumentations::InProductMarketingEmailSentMetric6988 # order random6989 options_key: :series, valid_value: 1, invalid_value: 56990 raises an exception if option is not present6991 raises an exception if option has invalid value6992 doesn't raise exceptions if option has valid value6993 options_key: :track, valid_value: "admin_verify", invalid_value: "invite_team"6994 raises an exception if option is not present6995 raises an exception if option has invalid value6996 doesn't raise exceptions if option has valid value6997 behaves like a correct instrumented metric value and query6998 behaves like a correct instrumented metric value6999 has correct value7000 behaves like a correct instrumented metric query7001 has correct generate query7002Integrations::ChatMessage::AlertMessage7003 behaves like Integrations::ChatMessage7004 when input contains link markup7005 strips all link markup characters7006 #message7007 returns the correct message7008 #attachments7009 returns an array of one7010 contains the correct attributes7011 returns the correct color7012 returns the correct attachment fields7013 returns the correctly formatted time7014 #attachment_color7015 returns the correct color7016Gitlab::Usage::Metrics::Aggregates::Aggregate7017 .calculate_count_for_aggregation7018 with valid configuration7019 number_of_days: 28, operator: "AND", datasource: "redis_hll", expected_method: :calculate_metrics_intersections7020 returns the number of unique events for aggregation7021 number_of_days: 7, operator: "AND", datasource: "redis_hll", expected_method: :calculate_metrics_intersections7022 returns the number of unique events for aggregation7023 number_of_days: 28, operator: "AND", datasource: "database", expected_method: :calculate_metrics_intersections7024 returns the number of unique events for aggregation7025 number_of_days: 7, operator: "AND", datasource: "database", expected_method: :calculate_metrics_intersections7026 returns the number of unique events for aggregation7027 number_of_days: 28, operator: "OR", datasource: "redis_hll", expected_method: :calculate_metrics_union7028 returns the number of unique events for aggregation7029 number_of_days: 7, operator: "OR", datasource: "redis_hll", expected_method: :calculate_metrics_union7030 returns the number of unique events for aggregation7031 number_of_days: 28, operator: "OR", datasource: "database", expected_method: :calculate_metrics_union7032 returns the number of unique events for aggregation7033 number_of_days: 7, operator: "OR", datasource: "database", expected_method: :calculate_metrics_union7034 returns the number of unique events for aggregation7035 number_of_days: 28, operator: "AND", datasource: "internal_events", expected_method: :calculate_metrics_intersections7036 returns the number of unique events for aggregation7037 number_of_days: 7, operator: "AND", datasource: "internal_events", expected_method: :calculate_metrics_intersections7038 returns the number of unique events for aggregation7039 number_of_days: 28, operator: "OR", datasource: "internal_events", expected_method: :calculate_metrics_union7040 returns the number of unique events for aggregation7041 number_of_days: 7, operator: "OR", datasource: "internal_events", expected_method: :calculate_metrics_union7042 returns the number of unique events for aggregation7043 with invalid configuration7044 time_frame: "28d", operator: "SUM", datasource: "redis_hll", expected_error: Gitlab::Usage::Metrics::Aggregates::UnknownAggregationOperator7045 with non prod environment7046 raises error7047 with prod environment7048 returns fallback value7049 time_frame: "7d", operator: "AND", datasource: "mongodb", expected_error: Gitlab::Usage::Metrics::Aggregates::UnknownAggregationSource7050 with non prod environment7051 raises error7052 with prod environment7053 returns fallback value7054 time_frame: "all", operator: "AND", datasource: "redis_hll", expected_error: Gitlab::Usage::Metrics::Aggregates::DisallowedAggregationTimeFrame7055 with non prod environment7056 raises error7057 with prod environment7058 returns fallback value7059 when union data is not available7060 time_frame: "28d", operator: "OR", datasource: "redis_hll"7061 with non prod environment7062 raises error7063 with prod environment7064 returns fallback value7065 time_frame: "7d", operator: "OR", datasource: "database"7066 with non prod environment7067 raises error7068 with prod environment7069 returns fallback value7070 time_frame: "28d", operator: "OR", datasource: "internal_events"7071 with non prod environment7072 raises error7073 with prod environment7074 returns fallback value7075Gitlab::WebHooks::RateLimiter7076 #rate_limit!7077 when there is no plan limit7078 hook: project_hook7079 behaves like a hook that is never rate limited7080 is expected to eq false7081 hook: system_hook7082 behaves like a hook that is never rate limited7083 is expected to eq false7084 hook: integration_hook7085 behaves like a hook that is never rate limited7086 is expected to eq false7087 when there is a plan limit7088 hook: project_hook, limitless_hook_type: false7089 rate limits the hook, returning true when rate limited7090 hook: system_hook, limitless_hook_type: true7091 behaves like a hook that is never rate limited7092 is expected to eq false7093 hook: integration_hook, limitless_hook_type: true7094 behaves like a hook that is never rate limited7095 is expected to eq false7096 rate limit scope7097 rate limits all hooks from the same namespace7098 #rate_limited?7099 when no plan limit has been defined7100 hook: project_hook7101 is expected to eq false7102 hook: system_hook7103 is expected to eq false7104 hook: integration_hook7105 is expected to eq false7106 when there is a plan limit7107 when hook is not rate-limited7108 hook: project_hook7109 is expected to eq false7110 hook: system_hook7111 is expected to eq false7112 hook: integration_hook7113 is expected to eq false7114 when hook is rate-limited7115 hook: project_hook, limitless_hook_type: false7116 is expected to eq true7117 hook: system_hook, limitless_hook_type: true7118 is expected to eq false7119 hook: integration_hook, limitless_hook_type: true7120 is expected to eq false7121Gitlab::Ci::Reports::AccessibilityReportsComparer7122 #status7123 when head report has an error7124 returns status failed7125 when head reports does not have errors7126 returns status success7127 #errors_count7128 when head report has an error7129 returns the number of new errors7130 when head reports does not have an error7131 returns the number new errors7132 #resolved_count7133 when base reports has an error and head has a different error7134 returns the resolved count7135 when base reports has errors head has no errors7136 returns the resolved count7137 when base reports has errors and head has the same error7138 returns zero7139 when base reports does not have errors and head has errors7140 returns the number of resolved errors7141 #total_count7142 when base reports has an error7143 returns zero7144 when head report has an error7145 returns the total count7146 when base report has errors and head report has errors7147 returns the total count7148 when base report has errors and head report has the same error7149 returns the total count7150 #existing_errors7151 when base report has errors and head has a different error7152 returns an empty array7153 when base report does not have errors and head has errors7154 returns an empty array7155 when base report has errors and head report has the same error7156 returns the existing error7157 #new_errors7158 when base reports has errors and head has more errors7159 returns new errors between base and head reports7160 when base reports has an error and head has no errors7161 returns an empty array7162 when base reports does not have errors and head has errors7163 returns the new error7164 #resolved_errors7165 when base report has errors and head has more errors7166 returns an empty array7167 when base reports has errors and head has a different error7168 returns the resolved errors7169 when base reports does not have errors and head has errors7170 returns an empty array7171Gitlab::OmniauthInitializer7172 .arguments_for7173 when there are no args at all7174 returns an empty array7175 when there is an app_id and an app_secret7176 includes both of them, in positional order7177 when there is an app_id and an app_secret, and an array of args7178 concatenates the args on the end7179 when there is an app_id and an app_secret, and an array of args, and default values7180 concatenates the args on the end7181 when there is an app_id and an app_secret, and a hash of args7182 concatenates the args on the end7183 when there is an app_id and an app_secret, and a hash of args, and default arguments7184 concatenates the args on the end7185 when there is an app_id and an app_secret, no args, and default values7186 concatenates the args on the end7187 when there are args, of an unsupported type7188 when there are default arguments7189 tracks a configuration error7190 when there are no default arguments7191 tracks a configuration error7192 #execute7193 configures providers from array7194 allows "args" array for app_id and app_secret7195 passes app_id and app_secret as additional arguments7196 passes "args" hash as symbolized hash argument7197 normalizes a String strategy_class7198 allows a class to be specified in strategy_class7199 throws an error for an invalid strategy_class7200 configures fail_with_empty_uid for shibboleth7201 configures defaults for google_oauth27202 configures defaults for gitlab7203 configures defaults for gitlab, when arguments are not provided7204 configures defaults for gitlab, when array arguments are provided7205 tracks a configuration error if the arguments are neither a hash nor an array7206 .full_host7207 is expected to eq "http://localhost/test"7208Ci::JobTokenScope::AddProjectService7209 #execute7210 behaves like editable job token scope7211 when user does not have permissions to edit the job token scope7212 behaves like returns error7213 returns an error response7214 when user has permissions to edit the job token scope7215 when target project is not provided7216 behaves like returns error7217 returns an error response7218 when target project is provided7219 when user does not have permissions to read the target project7220 behaves like returns error7221 returns an error response7222 when user has permissions on source and target projects7223 behaves like adds project7224 adds the project to the scope7225 when token scope is disabled7226 creates an inbound link by default7227 behaves like adds project7228 adds the project to the scope7229 when direction is specified7230 when the direction is outbound7231 is expected to eq "outbound"7232 when the direction is inbound7233 is expected to eq "inbound"7234 when target project is same as the source project7235 behaves like returns error7236 returns an error response7237layouts/terms7238 behaves like a layout which reflects the application theme setting7239 as a themed layout7240 when no theme is explicitly selected7241 renders with the default theme7242 when user is authenticated & has selected a specific theme7243 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#222261">7244 renders with the Indigo theme7245 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#41419f">7246 renders with the Light Indigo theme7247 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#0b2640">7248 renders with the Blue theme7249 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#145aa1">7250 renders with the Light Blue theme7251 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0e4328">7252 renders with the Green theme7253 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#1b653f">7254 renders with the Light Green theme7255 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#580d02">7256 renders with the Red theme7257 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a02e1c">7258 renders with the Light Red theme7259 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#333238">7260 renders with the Gray theme7261 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#ececef">7262 renders with the Light Gray theme7263 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#1f1e24">7264 renders with the Dark Mode (alpha) theme7265 behaves like a layout which reflects the preferred language7266 when changing the a preferred language7267 renders the correct `lang` attribute in the html element7268Gitlab::Metrics::BackgroundTransaction7269 #run7270 yields the supplied block7271 stores the transaction in the current thread7272 removes the transaction from the current thread upon completion7273 #labels7274 when the worker queue is accessible7275 provides labels with endpoint_id, feature_category and queue7276 when the worker name does not exist7277 provides labels with endpoint_id and feature_category7278 when the worker queue is not accessible7279 provides labels with endpoint_id and feature_category7280 behaves like transaction metrics with labels7281 .prometheus_metric7282 adds a metric7283 #method_call_for7284 returns a MethodCall7285 #add_event7286 adds a metric7287 allows tracking of custom tags7288 with sensitive tags7289 filters tags7290 #increment7291 adds a metric7292 with block7293 overrides docstring7294 overrides labels7295 filters sensitive tags7296 #set7297 adds a metric7298 with block7299 overrides docstring7300 overrides labels7301 filters sensitive tags7302 #observe7303 adds a metric7304 with block7305 overrides docstring7306 overrides labels7307 filters sensitive tags7308ProjectCacheWorker7309 #perform7310 with a non-existing project7311 does nothing7312 with an existing project without a repository7313 updates statistics but does not refresh the method cashes7314 with an existing project7315 refreshes the method caches7316 with statistics disabled7317 does not update the project statistics7318 with statistics7319 updates the project statistics7320 with plain readme7321 refreshes the method caches7322 #update_statistics7323 when a lease could not be obtained7324 does not update the project statistics7325 when a lease could be obtained7326 updates the project statistics twice7327 behaves like an idempotent worker7328 is labeled as idempotent7329 performs multiple times sequentially without raising an exception7330 calls Projects::UpdateStatisticsService service twice (FAILED - 1)73321st Try error in ./spec/workers/project_cache_worker_spec.rb:125:7333(Projects::UpdateStatisticsService (class)).new(*(any args))7334 expected: 1 time with any arguments7335 received: 0 times with any arguments7337RSpec::Retry: 2nd try ./spec/workers/project_cache_worker_spec.rb:1257338projects/issues/service_desk/_issue.html.haml7339 # order random7340 timestamp7341 when issue is open7342 shows last updated date7343 when issue is closed7344 shows closed date7345 when issue is closed but closed_at is empty7346 shows last updated date7347 when issue is service desk issue7348 with anonymous user7349 obfuscates service_desk_reply_to email for anonymous user7350 with signed in user7351 when user has no role in project7352 obfuscates service_desk_reply_to email7353 when user has guest role in project7354 obfuscates service_desk_reply_to email7355 when user has (at least) reporter role in project7356 shows full service_desk_reply_to email7357Gitlab::Metrics::Samplers::ThreadsSampler7358 behaves like metrics sampler7359 when sampling interval is passed explicitly7360 is expected to eq 427361 when sampling interval is passed through the environment7362 is expected to eq 427363 when no sampling interval is passed anywhere7364 uses the hardcoded default7365 #start7366 calls the sample method on the sampler thread7367 with warmup set to true7368 calls the sample method first on the caller thread7369 #safe_sample7370 calls #sample once7371 when sampling fails with error7372 recovers from errors7373 with logger7374 logs errors7375 #sample7376 sets the gauge for the concurrency total7377 thread counts7378 reports if any of the threads per group uses the db7379 thread names7380 thread_names: [nil], expected_names: ["unnamed"]7381 is expected to receive set({:thread_name=>"unnamed", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7382 thread_names: ["puma threadpool 1", "puma threadpool 001", "puma threadpool 002"], expected_names: ["puma threadpool"]7383 is expected to receive set({:thread_name=>"puma threadpool", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7384 thread_names: ["sidekiq_worker_thread"], expected_names: ["sidekiq_worker_thread"]7385 is expected to receive set({:thread_name=>"sidekiq_worker_thread", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7386 thread_names: ["some_sampler", "some_exporter"], expected_names: ["some_sampler", "some_exporter"]7387 is expected to receive set({:thread_name=>"some_exporter", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7388 thread_names: ["unknown", "thing"], expected_names: ["unrecognized"]7389 is expected to receive set({:thread_name=>"unrecognized", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7390Ci::BuildNeed7391 is expected to belong to build class_name => Ci::Processable required: false7392 is expected to validate that :build cannot be empty/falsy7393 is expected to validate that :name cannot be empty/falsy7394 is expected to validate that the length of :name is at most 2557395 .artifacts7396 is expected to contain exactly #<Ci::BuildNeed name: "build_13", artifacts: true, optional: false, build_id: 579, partition_id: 100, id: 45>7397 BulkInsertSafe7398 bulk inserts from Ci::Build model7399 partitioning7400 with build7401 sets partition_id to the current partition value7402 when it is already set7403 does not change the partition_id value7404 without build7405 is expected to validate that :partition_id cannot be empty/falsy7406 does not change the partition_id value7407 when using bulk_insert7408 creates build needs successfully7409Issuable::Callbacks::Milestone7410 # order random7411 #after_initialize7412 sets the issuable's milestone7413 when assigning a group milestone7414 sets the issuable's milestone7415 when assigning a group milestone outside the project ancestors7416 does not change the issuable's milestone7417 when user is not allowed to set issuable metadata7418 does not change the issuable's milestone7419 when unsetting a milestone7420 when milestone_id is nil7421 unsets the issuable's milestone7422 when milestone_id is an empty string7423 unsets the issuable's milestone7424 when milestone_id is 07425 unsets the issuable's milestone7426 when milestone_id is '0'7427 unsets the issuable's milestone7428 when milestone_id is not given7429 does not unset the issuable's milestone7430 when new type does not support milestones7431 unsets the issuable's milestone7432Gitlab::Ci::Reports::TestCase7433 #initialize7434 when required params are given7435 initializes an instance7436 when suite_name is missing7437 behaves like param is missing7438 raises an error7439 when classname is missing7440 behaves like param is missing7441 raises an error7442 when name is missing7443 behaves like param is missing7444 raises an error7445 when attachment is present7446 initializes the attachment if present7447 #has_attachment?7448 #attachment_url7449 when attachment is missing7450 #has_attachment?7451 #attachment_url7452 #set_recent_failures7453 sets the recent_failures information7454Gitlab::Memory::Watchdog::Configurator7455 # order random7456 .configure_for_sidekiq7457 behaves like as configurator7458 configures the correct handler7459 configures the correct event reporter7460 configures the correct logger7461 when sleep_time_seconds is not passed through the environment7462 configures the correct sleep time7463 when sleep_time_seconds is passed through the environment7464 configures the correct sleep time7465 when sleep_time_seconds is less than MIN_SIDEKIQ_SLEEP_INTERVAL_S seconds7466 configures the correct sleep time7467 with monitors7468 when settings are set via environment variables7469 behaves like as monitor configurator7470 executes monitors and returns correct results7471 when only SIDEKIQ_MEMORY_KILLER_MAX_RSS is set via environment variable7472 behaves like as monitor configurator7473 executes monitors and returns correct results7474 when only SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS is set via environment variable7475 behaves like as monitor configurator7476 executes monitors and returns correct results7477 when both SIDEKIQ_MEMORY_KILLER_MAX_RSS and SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS are not set7478 behaves like as monitor configurator7479 executes monitors and returns correct results7480 .configure_for_puma7481 behaves like as configurator7482 configures the correct handler7483 configures the correct event reporter7484 configures the correct logger7485 when sleep_time_seconds is not passed through the environment7486 configures the correct sleep time7487 when sleep_time_seconds is passed through the environment7488 configures the correct sleep time7489 with DISABLE_PUMA_WORKER_KILLER set to true7490 when settings are set via environment variables7491 behaves like as monitor configurator7492 executes monitors and returns correct results7493 when settings are not set via environment variables7494 behaves like as monitor configurator7495 executes monitors and returns correct results7496 with DISABLE_PUMA_WORKER_KILLER set to false7497 when settings are set via environment variables7498 behaves like as monitor configurator7499 executes monitors and returns correct results7500 when settings are not set via environment variables7501 behaves like as monitor configurator7502 executes monitors and returns correct results7503WikiPage::Slug7504 Associations7505 is expected to belong to wiki_page_meta required: false7506 refers correctly to the wiki_page_meta7507 scopes7508 canonical7509 there are no slugs7510 is expected to be empty7511 there are some non-canonical slugs7512 is expected to be empty7513 there is at least one canonical slugs7514 is expected not to be empty7515 Validations7516 is expected to validate that :slug is case-sensitively unique within the scope of :wiki_page_meta_id7517 is expected to validate that the length of :slug is at most 20487518 is expected not to allow :slug to be ‹nil›7519 only_one_slug_can_be_canonical_per_meta_record7520 there are no other slugs7521 is expected to be valid7522 the current slug is canonical7523 is expected to be valid7524 there are other slugs, but they are not canonical7525 is expected to be valid7526 the current slug is canonical7527 is expected to be valid7528 there is already a canonical slug7529 is expected to be valid7530 the current slug is canonical7531 is expected not to be valid7532Types::BaseArgument7533 adds a formatted `deprecated_reason` to the subject7534 appends to the description if given7535 does not append to the description if it is absent7536 adds information about the replacement if provided7537 supports named reasons: renamed7538 supports :alpha7539 does not allow :alpha and :deprecated together7540 validations7541 raises an informative error if `deprecation_reason` is used7542 raises an error if a required property is missing7543 raises an error if milestone is not a String7544 visible?7545 defaults to true7546 when subject is deprecated7547 defaults to true7548 returns false if `remove_deprecated` is true in context7549 required argument declarations7550 accepts nullable, required arguments7551 accepts required, non-nullable arguments7552 accepts non-required arguments7553 accepts no required argument declaration7554SafeZip::ExtractParams7555 #extract_path7556 is expected to eq "/tmp/safe-zip20231020-326-oqr8fl"7557 #matching_target_directory7558 path: "/public/index.html", result: "/public/"7559 is expected to eq "/tmp/safe-zip20231020-326-655pvn/public/"7560 path: "/non/existing/path", result: nil7561 is expected to eq nil7562 path: "/public", result: nil7563 is expected to eq nil7564 path: "/folder/with/index.html", result: nil7565 is expected to eq nil7566 #target_directories7567 starts with target_path7568 ends with / for all paths7569 #directories_wildcard7570 adds * for all paths7571 #matching_target_file7572 path: "/public/index.html", result: true7573 is expected to eq true7574 path: "/non/existing/path", result: false7575 is expected to eq false7576 path: "/public/", result: false7577 is expected to eq false7578 path: "/folder/with/index.html", result: false7579 is expected to eq false7580 when directories and files are empty7581 is invalid7582Gitlab::Usage::Metric7583 #with_value7584 returns key_path metric with the corresponding value7585 #with_instrumentation7586 returns key_path metric with the corresponding generated query7587 unavailable metric7588 #with_value7589 returns an empty hash7590 #with_instrumentation7591 returns an empty hash7592Users::GroupCalloutsHelper7593 .show_invite_banner?7594 when user has the admin ability for the group7595 when the invite_members_banner has not been dismissed7596 is expected to eq true7597 when the group was just created7598 is expected to eq false7599 with concerning multiple members7600 on current group7601 is expected to eq false7602 on current group that is a subgroup7603 with only one user on parent and this group7604 is expected to eq true7605 when another user is on this group7606 is expected to eq false7607 when another user is on the parent group7608 is expected to eq false7609 when the invite_members_banner has been dismissed7610 is expected to eq false7611 when user does not have admin ability for the group7612 is expected to eq false7613Banzai::Filter::CustomEmojiFilter7614 replaces supported name custom emoji7615 correctly uses the custom emoji URL7616 matches multiple same custom emoji7617 matches multiple custom emoji7618 does not match enclosed colons7619 does not do N+1 query7620 behaves like emoji filter7621 keeps whitespace intact7622 does not match emoji in a string7623 ignores non existent/unsupported emoji7624 matches with adjacent text7625 does not match emoji in a pre tag7626 does not match emoji in code tag7627 does not match emoji in tt tag7628Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestFirstDeployedToProduction7629 behaves like value stream analytics event7630 is expected to be a kind of String7631 is expected to be a kind of Symbol7632 is expected to include ApplicationRecord(abstract)7633 is expected to respond to #timestamp_projection7634 is expected to respond to #html_description7635 is expected to be a kind of Array7636 #apply_query_customization7637 expects an ActiveRecord::Relation object as argument and returns a modified version of it7638 #hash_code7639 returns a hash that uniquely identifies an event7640 does not differ when the same object is built with the same params7641 behaves like LEFT JOIN-able value stream analytics event7642 can use the event as LEFT JOIN7643 when looking at the record with data7644 contains the timestamp expression7645 when looking at the record without data7646 returns nil for the timestamp expression7647Gitlab::HookData::BaseBuilder7648 #absolute_image_urls7649 with an upload prefix specified7650 relative image URL7651 is expected to eq ""7652 absolute upload URL7653 is expected to eq ""7654 absolute non-upload URL7655 is expected to eq ""7656 without an upload prefix specified7657 relative image URL7658 is expected to eq ""7659 absolute upload URL7660 is expected to eq ""7661 absolute non-upload URL7662 is expected to eq ""7663 HTTP URL7664 is expected to eq ""7665 HTTPS URL7666 is expected to eq ""7667 protocol-relative URL7668 is expected to eq ""7669 URL reference by title7670 is expected to eq "![foo]\n\n[foo]: foo.png"7671 URL reference by label7672 is expected to eq "![][foo]\n\n[foo]: foo.png"7673 in Markdown inline code block7674 is expected to eq "``"7675 in HTML tag on the same line7676 is expected to eq "<p></p>"7677 in Markdown multi-line code block7678 is expected to eq "```\n\n```"7679 in HTML tag on different lines7680 is expected to eq "<p>\n\n</p>"7681Gitlab::Analytics::CycleAnalytics::StageEvents::IssueStageEnd7682 behaves like value stream analytics event7683 is expected to be a kind of String7684 is expected to be a kind of Symbol7685 is expected to include ApplicationRecord(abstract)7686 is expected to respond to #timestamp_projection7687 is expected to respond to #html_description7688 is expected to be a kind of Array7689 #apply_query_customization7690 expects an ActiveRecord::Relation object as argument and returns a modified version of it7691 #hash_code7692 returns a hash that uniquely identifies an event7693 does not differ when the same object is built with the same params7694 behaves like LEFT JOIN-able value stream analytics event7695 can use the event as LEFT JOIN7696 when looking at the record with data7697 contains the timestamp expression7698 when looking at the record without data7699 returns nil for the timestamp expression7700Atlassian::JiraConnect::Jwt::Asymmetric7701 #valid?7702 returns true when verified with public key from CDN7703 JWT does not contain a key ID7704 is expected not to be valid7705 JWT contains a key ID that is not a valid UUID47706 is expected not to be valid7707 public key can not be retrieved7708 is expected not to be valid7709 retrieving the public raises an error7710 is expected not to be valid7711 token decoding raises an error7712 is expected not to be valid7713 when iss could not be verified7714 is expected not to be valid7715 when qsh could not be verified7716 is expected not to be valid7717 with jira_connect_proxy_url setting7718 requests the settings CDN7719 when the setting is an empty string7720 requests the default CDN7721 #iss_claim7722 is expected to eq nil7723 when jwt is verified7724 is expected to eq "client_key"7725Mutations::CustomEmoji::Destroy7726 field tests7727 is expected to have graphql arguments :id7728 is expected to have graphql field :custom_emoji7729 #resolve7730 when the user7731 has no permissions7732 behaves like does not delete custom emoji7733 raises exception7734 when the user is developer and not the owner of custom emoji7735 behaves like does not delete custom emoji7736 raises exception7737 when user7738 is maintainer7739 behaves like deletes custom emoji7740 returns deleted custom emoji7741 is owner7742 behaves like deletes custom emoji7743 returns deleted custom emoji7744 is developer and creator of the emoji7745 behaves like deletes custom emoji7746 returns deleted custom emoji7747Gitlab::LocalAndRemoteStorageMigration::PagesDeploymentMigrater7748 behaves like local and remote storage migration7749 start_store: 1, end_store: 2, method: :migrate_to_remote_storage7750 successfully migrates7751 start_store: 2, end_store: 2, method: :migrate_to_remote_storage7752 successfully migrates7753 start_store: 2, end_store: 1, method: :migrate_to_local_storage7754 successfully migrates7755 start_store: 1, end_store: 1, method: :migrate_to_local_storage7756 successfully migrates7757 when migration fails7758 prints error7759Gitlab::OtpKeyRotator7760 #rotate!7761 stores the calculated values in a spreadsheet7762 new key is too short7763 is expected to raise ArgumentError7764 new key is the same as the old key7765 is expected to raise ArgumentError7766 #rollback!7767 updates rows to the old value7768Suggestions::OutdateService7769 #execute7770 when there is a change within multi-line suggestion range7771 updates the outdatable suggestion record7772 when there is no change within multi-line suggestion range7773 does not outdates suggestion record7774LooseForeignKeys::ProcessDeletedRecordsService7775 # order random7776-- create_table(:_test_loose_fk_parent_table_1)7777 -> 0.0070s7778-- create_table(:_test_loose_fk_parent_table_2)7779 -> 0.0021s7780-- create_table(:_test_loose_fk_child_table_1_1)7781 -> 0.0020s7782-- create_table(:_test_loose_fk_child_table_1_2)7783 -> 0.0018s7784-- create_table(:_test_loose_fk_child_table_2_1)7785 -> 0.0020s7786-- execute("CREATE TRIGGER _test_loose_fk_parent_table_1_loose_fk_trigger AFTER DELETE ON _test_loose_fk_parent_table_1 REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();")7787 -> 0.0008s7788-- execute("CREATE TRIGGER _test_loose_fk_parent_table_2_loose_fk_trigger AFTER DELETE ON _test_loose_fk_parent_table_2 REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();")7789 -> 0.0007s7790 #execute7791 cleans up all rows7792 returns stats for records cleaned up7793 records the Apdex as success: true7794 records the error rate as error: false7795 when the amount of records to clean up exceeds BATCH_SIZE7796 cleans up everything over multiple batches7797 when the amount of records to clean up exceeds the total MAX_DELETES7798 cleans up MAX_DELETES and leaves the rest for the next run7799 records the Apdex as success: false7800 when cleanup raises an error7801 records the error rate as error: true and does not increment apdex7802-- drop_table(:_test_loose_fk_parent_table_1)7803 -> 0.0016s7804-- drop_table(:_test_loose_fk_parent_table_2)7805 -> 0.0011s7806-- drop_table(:_test_loose_fk_child_table_1_1)7807 -> 0.0010s7808-- drop_table(:_test_loose_fk_child_table_1_2)7809 -> 0.0010s7810-- drop_table(:_test_loose_fk_child_table_2_1)7811 -> 0.0010s7812LabelPriority7813 relationships7814 is expected to belong to project required: false7815 is expected to belong to label required: false7816 validations7817 is expected to validate that :project cannot be empty/falsy7818 is expected to validate that :label cannot be empty/falsy7819 is expected to validate that :priority looks like an integer greater than or equal to 07820 validates uniqueness of label_id scoped to project_id7821 when importing7822 is expected not to validate that :label cannot be empty/falsy7823PersonalAccessTokens::ExpiringWorker7824 #perform7825 when a token needs to be notified7826 uses notification service to send the email7827 marks the notification as delivered7828 when no tokens need to be notified7829 doesn't use notification service to send the email7830 doesn't change the notification delivered of the token7831 when a token is an impersonation token7832 doesn't use notification service to send the email7833 doesn't change the notification delivered of the token7834 when a token is owned by a project bot7835 uses notification service to send the email7836 marks the notification as delivered7837FileSizeValidator7838 options uses an integer7839 attachment exceeds maximum limit7840 attachment under maximum limit7841 options uses a symbol7842 attachment exceeds maximum limit7843 attachment under maximum limit7844Gitlab::HookData::UserBuilder7845 #build7846 data7847 on create7848 is expected to eq "user_create"7849 behaves like includes the required attributes7850 includes the required attributes7851 behaves like does not include old username attributes7852 does not include old username attributes7853 behaves like does not include state attributes7854 does not include state attributes7855 on destroy7856 is expected to eq "user_destroy"7857 behaves like includes the required attributes7858 includes the required attributes7859 behaves like does not include old username attributes7860 does not include old username attributes7861 behaves like does not include state attributes7862 does not include state attributes7863 on rename7864 is expected to eq "user_rename"7865 includes old username details7866 behaves like includes the required attributes7867 includes the required attributes7868 behaves like does not include state attributes7869 does not include state attributes7870 on failed_login7871 is expected to eq "user_failed_login"7872 includes state details7873 behaves like includes the required attributes7874 includes the required attributes7875 behaves like does not include old username attributes7876 does not include old username attributes7877Projects::MoveNotificationSettingsService7878 #execute7879 does not move existent notification settings in the current project7880 with notification settings7881 moves the user's notification settings from one project to another7882 rollbacks changes if transaction fails7883 when remove_remaining_elements is false7884 does not remove remaining notification settings7885TokenAuthenticatableStrategies::Base7886 #token_fields7887 includes the token field7888 with expires_at option7889 includes the token_expires_at field7890 #format_token7891 returns the origin token7892 when format_with_prefix option is provided7893 with symbol7894 returns a formatted token from the format_with_prefix option7895 with something else7896 raise not implemented7897 .fabricate7898 when digest stragegy is specified7899 fabricates digest strategy object7900 when encrypted strategy is specified7901 fabricates encrypted strategy object7902 when no strategy is specified7903 fabricates insecure strategy object7904 when incompatible options are provided7905 raises an error7906Gitlab::Database::DatabaseConnectionInfo7907 # order random7908 db_docs_dir7909 when db_dir is specified7910 is expected to eq #<Pathname:/builds/gitlab-org/gitlab/ee/my/db/docs>7911 when db_dir is not specified fallbacks to "db/docs"7912 is expected to eq #<Pathname:/builds/gitlab-org/gitlab/db/docs>7913 #connection_class7914 when klass is "ActiveRecord::Base"7915 does always return "ActiveRecord::Base"7916 when klass is "Ci::ApplicationRecord"7917 does return "Ci::ApplicationRecord" when it is connection_class7918 does return nil when it is not connection_class7919 #order7920 name: :main, order: 07921 is expected to eq 07922 name: :ci, order: 17923 is expected to eq 17924 name: :undefined, order: 10007925 is expected to eq 10007926 .new7927 does convert attributes into symbols and objects7928 does raise error when using invalid argument7929 #connection_class_or_fallback7930 for "main"7931 does return ActiveRecord::Base7932 for "ci"7933 does return "Ci::ApplicationRecord" when it is connection_class7934 does return "ActiveRecord::Base" (fallback to "main") when it is not connection_class7935 .load_file7936 does load YAML file and has file_path specified7937 #has_gitlab_shared?7938 gitlab_schemas: ["gitlab_main"], result: false7939 is expected to eq false7940 gitlab_schemas: ["gitlab_main", "gitlab_shared"], result: true7941 is expected to eq true7942Ci::CreatePipelineService7943 #execute7944 when source is a dangling build7945 parameter config content7946 creates a pipeline7947 creates builds with the correct names7948 creates stages with the correct names7949 sets the correct config source7950ConfigLint7951 # order random7952 errors out if any bash scripts have errors7953 passes if all scripts are fine7954 config_lint rake task7955 runs lint on shell scripts7956QualifiedDomainArrayValidator7957 validations7958 returns error when attribute is nil7959 allows when domain is valid7960 returns error when domain contains unicode7961 returns error when entry is larger than 255 chars7962 returns error when entry contains HTML tags7963 behaves like can be blank7964 allows when attribute is blank7965 when allow_nil is set to true7966 behaves like can be nil7967 allows when attribute is nil7968 behaves like can be blank7969 allows when attribute is blank7970 when allow_blank is set to true7971 behaves like can be nil7972 allows when attribute is nil7973 behaves like can be blank7974 allows when attribute is blank7975Gitlab::Tracking::IncidentManagement7976 # order random7977 .track_from_params7978 known params7979 param create_issue7980 behaves like a tracked event7981 creates the tracking event with the correct details7982 param issue_template_key7983 behaves like a tracked event7984 creates the tracking event with the correct details7985 param send_email7986 behaves like a tracked event7987 creates the tracking event with the correct details7988 param pagerduty_active7989 behaves like a tracked event7990 creates the tracking event with the correct details7991 param auto_close_incident7992 behaves like a tracked event7993 creates the tracking event with the correct details7994 different input values7995 behaves like the correct prefixed event name7996 matches7997 behaves like the correct prefixed event name7998 matches7999 behaves like the correct prefixed event name8000 matches8001 behaves like the correct prefixed event name8002 matches8003 behaves like the correct prefixed event name8004 matches8005 param with label8006 behaves like a tracked event8007 creates the tracking event with the correct details8008 param without label8009 behaves like a tracked event8010 creates the tracking event with the correct details8011 unknown params8012 does not create the tracking event8013Gitlab::Ci::ProcessableObjectHierarchy8014 # order random8015 #base_and_descendants8016 includes the base and its descendants8017 when with_depth is true8018 includes depth in the results8019 #base_and_ancestors8020 includes the base and its ancestors8021 can find ancestors upto a certain level8022 hierarchy_order option8023 for :asc8024 orders by child to ancestor8025 for :desc8026 orders by ancestor to child8027Atlassian::JiraConnect::Jwt::Symmetric8028 #iss_claim8029 is expected to eq "123"8030 invalid JWT8031 is expected to eq nil8032 #sub_claim8033 is expected to eq "123"8034 invalid JWT8035 is expected to eq nil8036 #valid?8037 invalid JWT8038 is expected to eq false8039 valid JWT8040 is expected to eq true8041 #verify_qsh_claim8042 is expected to eq true8043 qsh does not match8044 is expected to eq false8045 creating query string hash raises an error8046 is expected to eq false8047 #verify_context_qsh_claim8048 is expected to eq true8049 jwt does not contain a context qsh8050 is expected to eq false8051MergeRequestWidgetCommitEntity8052 as json8053 is expected to eq "Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"8054 is expected to eq "b83d6e39"8055 is expected to eq "Merge branch 'branch-merged' into 'master'"8056WhereComposite8057 .where_composite8058 requires at least one permitted key8059 requires all arguments to match the permitted_keys8060 attaches a key error as cause if a key is missing8061 returns an empty relation if there are no arguments8062 permits extra arguments8063 can handle multiple fields8064 is equivalent to ids.map { |attrs| model.find_by(attrs) }8065 constructs (A&B) for one argument8066 constructs (A&B) OR (C&D) for two arguments8067 constructs (A&B) OR (C&D) OR (E&F) for three arguments8068 large sets of IDs8069 constructs correct trees of constraints8070 raises errors if too many IDs are passed8071Users::RegistrationsBuildService8072 #execute8073 when automatic user confirmation is not enabled8074 when skip_confirmation is true8075 confirms the user8076 when skip_confirmation is not set8077 does not confirm the user8078 when skip_confirmation is false8079 does not confirm the user8080 when automatic user confirmation is enabled8081 when skip_confirmation is true8082 confirms the user8083 when skip_confirmation is not set the application setting takes precedence8084 confirms the user8085 when skip_confirmation is false the application setting takes precedence8086 confirms the user8087IncidentManagement::PagerDuty::ProcessIncidentWorker8088 # order random8089 #perform8090 with valid incident payload8091 creates a GitLab issue8092 with invalid incident payload8093 does not create a GitLab issue8094 logs a warning8095Gitlab::Metrics::Environment8096 # order random8097 .web? .api? .git?8098 env_var: "web", git: false, api: false, web: true8099 each method returns as expected8100 env_var: "api", git: false, api: true, web: false8101 each method returns as expected8102 env_var: "git", git: true, api: false, web: false8103 each method returns as expected8104 env_var: "websockets", git: false, api: false, web: false8105 each method returns as expected8106 env_var: nil, git: true, api: true, web: true8107 each method returns as expected8108 env_var: "", git: true, api: true, web: true8109 each method returns as expected8110ProtectedBranches::DestroyService8111 with entity project8112 behaves like execute with entity8113 #execute8114 destroys a protected branch8115 refreshes the cache8116 when a policy restricts rule deletion8117 prevents deletion of the protected branch rule8118 with entity group8119 behaves like execute with entity8120 #execute8121 destroys a protected branch8122 refreshes the cache8123 when a policy restricts rule deletion8124 prevents deletion of the protected branch rule8125Spam::HamService8126 #execute8127 AkismetService returns false (Akismet cannot be reached, etc)8128 returns false8129 does not update the record8130 if spam log record has already been marked as spam8131 does not update the record8132 Akismet ham submission is successful8133 returns true8134 updates the record8135SystemNoteMetadata8136 associations8137 is expected to belong to note required: false8138 is expected to belong to description_version required: false8139 validation8140 is expected to validate that :note cannot be empty/falsy8141 when action type is invalid8142 is expected to be invalid8143 when action type is valid8144 is expected to be valid8145 when action type is valid8146 is expected to be valid8147 when importing8148 is expected to be valid8149Mutations::Labels::Create8150 is expected to require graphql authorizations :admin_label8151 when creating a project label8152 behaves like create labels mutation8153 #resolve8154 when the user does not have permission to create a label8155 raises an error8156 when the user can create a label8157 creates label with correct values8158 when creating a group label8159 behaves like create labels mutation8160 #resolve8161 when the user does not have permission to create a label8162 raises an error8163 when the user can create a label8164 creates label with correct values8165 #ready?8166 when passing both project_path and group_path8167 raises an argument error8168 when passing only project_path or group_path8169 does not raise an error8170Ci::DailyBuildGroupReportResultEntity8171 #as_json8172 is expected to include :date8173 is expected not to include :group_name8174 is expected to include :coverage8175 when given param_type is not allowed8176 is expected not to include :coverage8177 is expected not to include :something_else8178Sidebars::Groups::Menus::MergeRequestsMenu8179 #render?8180 when user can read merge requests8181 returns true8182 when user cannot read merge requests8183 returns false8184 behaves like pill_count formatted results8185 returns all digits for count value under 10008186 returns truncated digits for count value over 10008187 returns truncated digits for count value over 100008188 returns truncated digits for count value over 1000008189 behaves like serializable as super_sidebar_menu_args8190 returns hash with provided attributes8191 returns hash with an item_id8192BulkImports::Groups::Loaders::GroupLoader8193 #load8194 when path is missing8195 raises an error8196 when destination namespace is not a group8197 raises an error8198 when there are other group errors8199 raises an error with those errors8200 when user can create group8201 when there is no parent group8202 calls Group Create Service to create a new group8203 when there is parent group8204 calls Group Create Service to create a new group8205 when user does not have 2FA enabled8206 when require_two_factor_authentication is not passed8207 calls Group Create Service to create a new group8208 when require_two_factor_authentication is false8209 calls Group Create Service to create a new group8210 when require_two_factor_authentication is true8211 does not create new group8212 when user cannot create group8213 when there is no parent group8214 does not create new group8215 when there is parent group8216 does not create new group8217Gitlab::Ci::Config::External::File::Template8218 #matching?8219 when a template is specified8220 returns true8221 with a missing template8222 returns false8223 with a missing template key8224 returns false8225 #valid?8226 when is a valid template name8227 is expected to be truthy8228 with invalid template name8229 returns false8230 with a non-existing template8231 returns false8232 #template_name8233 when template does end with .gitlab-ci.yml8234 returns template name8235 when template is nil8236 returns nil8237 when template does not end with .gitlab-ci.yml8238 returns nil8239 #expand_context8240 drops all parameters8241 #metadata8242 is expected to eq {:blob=>nil, :context_project=>"namespace1593/project-1655", :context_sha=>"12345", :extra=>{}, :loca...gitlab-org/gitlab/-/raw/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml", :type=>:template}8243 #to_hash8244 when interpolation is being used8245 correctly interpolates the content8246Gitlab::GithubImport::Importer::Events::Closed8247 with Issue8248 behaves like new event8249 creates expected event and state event8250 when closed by commit8251 creates expected event and state event8252 with MergeRequest8253 behaves like new event8254 creates expected event and state event8255 when closed by commit8256 creates expected event and state event8257Pajamas::RadioComponent8258 with default options8259 renders unchecked radio8260 does not render help text8261 with custom options8262 renders help text8263 renders checked radio8264 adds CSS class to label8265 with `label` slot8266 renders unchecked radio8267 with `help_text` slot8268 renders unchecked radio8269 renders help text8270 with `label` and `help_text` slots8271 renders unchecked radio8272 renders help text8273Atlassian::JiraConnect::Serializers::RepositoryEntity8274 is expected to match schema "jira_connect/repository"8275 with custom update_sequence_id8276 passes the update_sequence_id on to the nested entities8277RuboCop::Cop::Scalability::CronWorkerContext8278 # order random8279 does not add an offense when the worker calls `bulk_perform_async_with_contexts`8280 does not add an offense when the worker calls `with_context`8281 does not add an offense when the class defines a context8282 does not add an offense when the worker calls `bulk_perform_in_with_contexts`8283 does not add offenses for other workers8284 adds an offense when including CronjobQueue8285Sidebars::UserSettings::Menus::GpgKeysMenu8286 # order random8287 behaves like User settings menu #render? method8288 #render?8289 when user is logged in8290 renders8291 when user is not logged in8292 does not render8293 behaves like User settings menu8294 does not contain any sub menu8295 renders the correct link8296 renders the correct title8297 renders the correct icon8298 defines correct active route8299Resolvers::UsersResolver8300 is expected to have nullable GraphQL type UserCoreConnection8301 #resolve8302 when no arguments are passed8303 returns all users8304 when both ids and usernames are passed8305 generates an error8306 when a set of IDs is passed8307 returns those users8308 when a set of usernames is passed8309 returns those users8310 when admins is true8311 returns only admins8312 when a search term is passed8313 returns all users who match8314 with anonymous access8315 prohibits search without usernames passed8316 prohibits search by username8317Gitlab::Usage::Metrics::Instrumentations::DistinctCountProjectsWithExpirationPolicyMetric8318 # order random8319 behaves like a correct instrumented metric value8320 has correct value8321 behaves like a correct instrumented metric value8322 has correct value8323 behaves like a correct instrumented metric value8324 has correct value8325 behaves like a correct instrumented metric value8326 has correct value8327Resolvers::RepositoryBranchNamesResolver8328 #resolve8329 with empty search pattern8330 returns nil8331 with a valid search pattern8332 returns matching branches8333 properly offsets and limits branch name results8334BlobViewer::Markup8335 #banzai_render_context8336 returns context needed for banzai rendering8337 when blob does respond to rendered_markup8338 does sets rendered key8339FileStoreMounter8340 # order random8341 with an instance8342 #update_file_store8343 calls update column8344 #store_file_now!8345 calls the dynamic functions8346 .mount_file_store_uploader8347 skip_store_file: true, file_field: :file8348 defines instance methods and registers a callback8349 skip_store_file: false, file_field: :file8350 defines instance methods and registers a callback8351 skip_store_file: false, file_field: :signed_file8352 defines instance methods and registers a callback8353 skip_store_file: true, file_field: :signed_file8354 defines instance methods and registers a callback8355 with an unknown file_field8356 is expected to raise ArgumentError with "file_field not allowed: unknown"8357Packages::Helm::IndexPresenter8358 #entries8359 returns the correct hash8360 with an unknown channel8361 is expected to be empty8362 with a nil channel8363 is expected to be empty8364 #api_version8365 is expected to eq "v1"8366 #generated8367 returns the expected format8368 #server_info8369 is expected to eq {"contextPath"=>"/api/v4/projects/1291/packages/helm"}8370 with url encoded project id param8371 is expected to eq {"contextPath"=>"/api/v4/projects/foo%2Fbar/packages/helm"}8372Users::AutoBanService8373 # order random8374 when auto banning a user8375 when successful8376EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8377EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8378 returns success status8379EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8380EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8381 bans the user8382EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8383EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8384 creates a BannedUser8385 recording a custom attribute8386EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8387EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar8388 records a custom attribute8389 when failed8390 when user is blocked8391 returns state error message8392 does not modify the BannedUser record or user state8393Analytics::UsageTrends::CounterJobWorker8394 is labeled as idempotent8395 performs multiple times sequentially without raising an exception8396 counts a scope and stores the result8397 does not raise error when inserting duplicated measurement8398 does not insert anything when BatchCount returns error8399 when no records are in the database8400 sets 0 as the count8401 when the timeout elapses8402 continues counting later when the timeout elapses8403 when pipelines_succeeded identifier is passed8404 counts successful pipelines8405Mutations::Notes::RepositionImageDiffNote8406 #resolve8407 when the user does not have permission8408 raises an error if the resource is not accessible to the user8409 when the user has permission8410 mutates the note8411 when the note is a DiffNote, but not on an image8412 raises an error8413ObjectStorage::CDN8414 # order random8415 without CDN config8416 #cdn_enabled_url8417 calls #url8418 #use_cdn?8419 returns false8420 with CDN config8421 with a known CDN provider8422 #cdn_enabled_url8423 calls #cdn_signed_url8424 #use_cdn?8425 returns true8426 #cdn_signed_url8427 returns a URL8428 with an unknown CDN provider8429 raises an error8430Gitlab::Ci::Status::Pipeline::Blocked8431 #text8432 overrides status text8433 #label8434 overrides status label8435 .matches?8436 when pipeline is blocked8437 is a correct match8438 when pipeline is not blocked8439 does not match8440Resolvers::DesignManagement::DesignAtVersionResolver8441 #resolve8442 returns the specified design8443 when the user cannot see designs8444 generates ResourceNotAvailable8445 the ID belongs to a design on another issue8446 generates ResourceNotAvailable8447 the current object does not constrain the issue8448 returns the object8449Projects::ForksCountService8450 behaves like a counter caching service8451 #count8452 caches the count8453 #refresh_cache8454 refreshes the cache8455 #delete_cache8456 removes the cache8457 #uncached_count8458 does not cache the count8459 #count8460 returns the number of forks8461Gitlab::AssetProxy8462 when asset proxy is disabled8463 returns the original URL8464 when asset proxy is enabled8465 returns a proxied URL8466 returns original URL for invalid domains8467 whitelisted domain8468 returns original URL for single domain whitelist8469 returns original URL for wildcard subdomain whitelist8470Pajamas::SpinnerComponent8471 class8472 has the correct custom class8473 color8474 by default8475 is dark8476 set to light8477 is light8478 inline8479 by default8480 renders a div8481 set to true8482 renders a span8483 label8484 by default8485 has "Loading" as aria-label8486 when set to something else8487 has a custom aria-label8488 size8489 has the correct size class8490Ci::ArchiveTraceWorker8491 #perform8492 when job is found8493 executes service8494 has preloaded the arguments for archiving8495 when job is not found8496 does not execute service8497AsCte8498 .as_cte8499 is expected to be a kind of Gitlab::SQL::CTE8500 is expected to eq #<ActiveRecord::Relation []>8501 is expected to eq "klass_cte"8502 with materialized parameter8503 as true8504 is expected to match /MATERIALIZE/8505 as false8506 is expected not to match /MATERIALIZE/8507UploaderFinder8508 #execute8509 when successful8510 gets the file-like uploader8511 when path traversal in file name8512 returns nil8513 when unexpected failure8514 returns nil when unexpected error is raised8515Gitlab::Analytics::UsageTrends::WorkersArgumentBuilder8516 when no measurement identifiers are given8517 returns empty array8518 when measurement identifiers are given8519 returns worker arguments8520 when bogus measurement identifiers are given8521 skips bogus measurement identifiers8522 when custom min and max queries are present8523 uses custom min/max for ids8524Projects::BranchRule8525 # order random8526 delegates methods to protected branch8527 branch protection returns protected branch8528 is protected8529 #matching_branches_count8530 returns the number of branches that are matching the protected branch name8531ContainerTagEntity8532 exposes required informations8533 when user can manage repositories8534 exposes destroy_path8535 when user cannot manage repositories8536 does not expose destroy_path8537ApplicationsFinder8538 #execute8539 returns an array of instance applications8540 by_id8541 with existing id8542 returns the application8543 with invalid id8544 returns nil for user application8545 returns nil for group application8546 returns nil for non-existing application8547MergeRequestUserMention8548 associations8549 is expected to belong to merge_request required: false8550 is expected to belong to note required: false8551 behaves like has user mentions8552 #has_mentions?8553 when no mentions8554 returns false8555 when mentioned_users_ids not null8556 returns true8557 when mentioned projects8558 returns true8559 when mentioned groups8560 returns true8561MemberPresenter8562 # order random8563 #valid_level_roles8564 does not return levels lower than user highest membership in the hierarchy8565 returns all roles for the root group8566 #last_owner?8567 raises `NotImplementedError`8568ApplicationSettingPolicy8569 update_runners_registration_token8570 when anonymous8571 is expected not to be allowed :update_runners_registration_token8572 regular user8573 is expected not to be allowed :update_runners_registration_token8574 when external8575 is expected not to be allowed :update_runners_registration_token8576 admin8577 when admin mode is enabled8578 is expected to be allowed :update_runners_registration_token8579 when admin mode is disabled8580 is expected to be disallowed :update_runners_registration_token8581admin/sessions/new.html.haml8582 internal admin user8583 shows enter password form8584 warns authentication not possible if password not set8585 omniauth authentication enabled8586 shows omniauth form8587 ldap authentication8588 is shown when enabled8589 is not shown when LDAP sign in is disabled8590projects/pages/new8591 with onboarding wizard feature enabled8592 shows the onboarding wizard8593 with onboarding wizard feature disabled8594 does not show the onboarding wizard8595 renders the usage instructions8596BulkImports::StuckImportWorker8597 perform8598 updates the status of bulk imports to timeout8599 updates the status of bulk import entities to timeout8600 updates the status of stale entities trackers to timeout8601 does not update the status of non-stale records8602EnumInheritance8603 # order random8604 querying8605 finds by type8606 object class when querying8607 when mapping for type exists8608 is the super class8609 when mapping does not exist8610 is the base class8611 .sti_class_to_enum_map8612 is the inverse of sti_class_to_enum_map8613 .sti_class_for8614 is the base class if no mapping for type is provided8615 is class if mapping for type is provided8616 .sti_name8617 is nil if map does not exist8618 is nil if map exists8619Gitlab::HealthChecks::Server8620 with running server thread8621 /readiness8622 behaves like serves health check at8623[2023-10-20 08:56:00] INFO WEBrick 1.8.18624[2023-10-20 08:56:00] INFO ruby 3.0.6 (2023-03-30) [x86_64-linux]8625[2023-10-20 08:56:00] INFO WEBrick::HTTPServer#start: pid=326 port=80828626[2023-10-20 08:56:00] INFO going to shutdown ...8627[2023-10-20 08:56:00] INFO WEBrick::HTTPServer#start done.8628 responds with 200 OK8629 /liveness8630 behaves like serves health check at8631[2023-10-20 08:56:01] INFO WEBrick 1.8.18632[2023-10-20 08:56:01] INFO ruby 3.0.6 (2023-03-30) [x86_64-linux]8633[2023-10-20 08:56:01] INFO WEBrick::HTTPServer#start: pid=326 port=80828634[2023-10-20 08:56:01] INFO going to shutdown ...8635[2023-10-20 08:56:01] INFO WEBrick::HTTPServer#start done.8636 responds with 200 OK8637 other routes8638[2023-10-20 08:56:01] INFO WEBrick 1.8.18639[2023-10-20 08:56:01] INFO ruby 3.0.6 (2023-03-30) [x86_64-linux]8640[2023-10-20 08:56:01] INFO WEBrick::HTTPServer#start: pid=326 port=80828641[2023-10-20 08:56:01] INFO going to shutdown ...8642[2023-10-20 08:56:01] INFO WEBrick::HTTPServer#start done.8643 serves 4048644 when server thread goes away8645[2023-10-20 08:56:01] INFO WEBrick 1.8.18646[2023-10-20 08:56:01] INFO ruby 3.0.6 (2023-03-30) [x86_64-linux]8647 stop closes TCP socket8648Ci::JobArtifacts::DeleteService8649 # order random8650 #execute8651 is successful8652 deletes erasable artifacts8653 does not delete trace8654 when project is undergoing stats refresh8655 logs a warning8656 returns an error response with the correct message and reason8657 when an error response is received from DestroyBatchService8658 returns an error response with the correct message8659Gitlab::Auth::Ldap::Authentication8660 login8661 finds the user if authentication is successful8662 is false if the user does not exist8663 is false if authentication fails8664 fails if ldap is disabled8665 fails if no login is supplied8666 fails if no password is supplied8667DependencyProxy::ImageTtlGroupPolicyWorker8668 #perform8669 when there are images to expire8670 updates the old images to pending_destruction8671 counts logging8672 logs all the counts8673 with load balancing enabled8674 reads the counts from the replica8675TasksToBeDone::CreateWorker8676 is labeled as idempotent8677 performs multiple times sequentially without raising an exception8678 creates 3 task issues8679 .perform8680 executes the task services for all tasks to be done8681Bitbucket::Representation::Comment8682 #author8683 is expected to eq "Ben"8684 is expected to be nil8685 #note8686 is expected to eq "Text"8687 is expected to be nil8688 #created_at8689 is expected to eq Fri, 20 Oct 20238690 #updated_at8691 is expected to eq Fri, 20 Oct 20238692 is expected to eq Fri, 20 Oct 20238693Gitlab::Memory::Watchdog::Handlers::SidekiqHandler8694 # order random8695 #call8696 when stop is received after TSTP8697 behaves like handler issues kill command8698 logs sending signal8699 sends TERM to the current process8700 when stop is received after TERM8701 behaves like handler issues kill command8702 logs sending signal8703 sends TERM to the current process8704 when stop is not received8705 when process is not group leader8706 behaves like handler issues kill command8707 logs sending signal8708 sends TERM to the current process8709 when process is a group leader8710 behaves like handler issues kill command8711 logs sending signal8712 sends TERM to the current process8713BulkImports::Groups::Pipelines::GroupAttributesPipeline8714 #run8715 imports allowed group attributes8716 #transform8717 fetches only allowed attributes and symbolize keys8718 when there is no data to transform8719 is expected to eq nil8720 #after_run8721 calls extractor#remove_tmpdir8722 .relation8723 is expected to eq "self"8724FromUnion8725 behaves like from set operator8726 #from_union8727 selects from the results of the UNION8728 returns empty set when passing empty array8729 supports the use of a custom alias for the sub query8730 supports keeping duplicate rows8731Pages::DeactivatedDeploymentsDeleteCronWorker8732 # order random8733 deletes all deactivated pages deployments8734BulkImports::Projects::Graphql::GetSnippetRepositoryQuery8735 has a valid query8736 returns snippet httpUrlToRepo8737 returns snippet createdAt8738 returns snippet title8739 .variables8740 queries project based on source_full_path and pagination8741 .data_path8742 .data_path returns data path8743 .page_info_path8744 .page_info_path returns pagination information path8745RuboCop::Cop::Migration::SchemaAdditionMethodsNoPost8746 # order random8747 does not allow 'add_column' to be called8748 does not allow 'create_table' to be called8749 when rolling back migration8750 allows 'add_column' to be called8751 allows 'create_table' to be called8752 allows forbidden method to be called within nested statement8753IdentityProviderPolicy8754 #rules8755 is expected to be allowed :link8756 is expected to be allowed :unlink8757 when user is anonymous8758 is expected not to be allowed :link8759 is expected not to be allowed :unlink8760 when provider is saml8761 is expected to be allowed :link8762 is expected not to be allowed :unlink8763Gitlab::SidekiqVersioning::Middleware8764 #call8765 sets worker.job_version8766 yields8767 when worker is not ApplicationWorker8768 does not err8769TrackingHelper8770 #tracking_attrs8771 returns no data if snowplow is disabled8772 returns data hash8773 can return data directly8774Gitlab::UsageMetricDefinition::RedisHllGenerator8775 creates metric definition files8776 with multiple events8777 creates metric definition files8778 with ee option8779 creates metric definition files8780GoogleCloud::FetchGoogleIpListService8781 # order random8782 #execute8783 returns a list of IPAddr subnets and caches the result8784 with rate limit in effect8785 returns rate limit error8786 when the URL returns a 4048787 behaves like IP range retrieval failure8788 does not cache the result and logs an error8789 when the URL returns too large of a payload8790 behaves like IP range retrieval failure8791 does not cache the result and logs an error8792 when the URL returns HTML8793 behaves like IP range retrieval failure8794 does not cache the result and logs an error8795 when the URL returns empty results8796 behaves like IP range retrieval failure8797 does not cache the result and logs an error8798Gitlab::Database::QueryAnalyzers::PreventSetOperatorMismatch::CommonTableExpressions8799 # order random8800 .references8801 when standard CTE8802 with static SELECT8803 is expected to eq {"some_cte"=>#<Set: {:static}>}8804 with dynamic SELECT8805 is expected to eq {"some_cte"=>#<Set: {:dynamic}>}8806 when recursive CTE8807 with static SELECT8808 is expected to eq {"some_cte"=>#<Set: {:static}>}8809 with dynamic SELECT8810 is expected to eq {"some_cte"=>#<Set: {:dynamic}>}8811 with error SELECT8812 is expected to eq {"some_cte"=>#<Set: {:dynamic, :static, :invalid}>}8813 with inherited CTE references8814 maintains inherited CTE references8815Constraints::ActivityPubConstrainer8816 # order random8817 #matches?8818 when Accept header is application/ld+json; profile="https://www.w3.org/ns/activitystreams"8819 matches the header8820 when Content-Type header is application/ld+json; profile="https://www.w3.org/ns/activitystreams"8821 matches the header8822 when Accept header is application/activity+json8823 matches the header8824 when Content-Type header is application/activity+json8825 matches the header8826 when Accept and Content-Type headers are missing8827 does not match8828Gitlab::WikiFileFinder8829 #find8830 behaves like file finder8831 finds by path8832 finds by content8833Gitlab::JiraImport::MetadataCollector8834 #execute8835 when all metadata fields are present8836 writes all fields8837 when some fields are in incorrect format8838 when fixVersions field is not an array8839 skips these fields8840 when a fixVersions element is in incorrect format8841 skips the element8842 when a parent field has incorrectly formatted summary8843 skips the summary8844 when a parent field is missing the key8845 skips the field8846 when some metadata fields are missing8847 skips the missing fields8848 when all metadata fields are missing8849 returns nil8850BulkImports::Common::Extractors::NdjsonExtractor8851 #extract8852 returns ExtractedData8853 #remove_tmpdir8854 removes tmp dir8855Gitlab::ConfigChecker::PumaRuggedChecker8856 #check8857 application is not puma8858 is expected to be empty8859 application is puma8860 not multithreaded_puma and rugged API enabled8861 is expected to be empty8862 not multithreaded_puma and rugged API is not enabled8863 is expected to be empty8864 multithreaded_puma and rugged API is not enabled8865 is expected to be empty8866 multithreaded_puma and rugged API is enabled8867 report multi_threaded_puma_with_rugged notices8868Import::GithubRealtimeRepoEntity8869 # order random8870 exposes correct attributes8871 when import stats is failed8872 includes import_error8873Kaniko.gitlab-ci.yml8874 the created pipeline8875 creates "kaniko-build" job8876RuboCop::Cop::ActiveModelErrorsDirectManipulation8877 # order random8878 when modifying errors8879 registers an offense8880 when assigning8881 registers an offense8882 when modifying errors.messages8883 registers an offense8884 when assigning8885 registers an offense8886 when modifying errors.details8887 registers an offense8888 when assigning8889 registers an offense8890Analytics::CycleAnalytics::StageEntity8891 exposes start and end event descriptions8892 exposes start_event and end_event objects8893Packages::Composer::PackagesFinder8894 #execute8895 is expected to contain exactly #<Packages::Package id: 487, project_id: 1314, created_at: "2023-10-20 08:56:15.115206272 +0000", upd...type: "composer", creator_id: 2398, status: "default", last_downloaded_at: nil, status_message: nil> and #<Packages::Package id: 488, project_id: 1314, created_at: "2023-10-20 08:56:15.123929561 +0000", upd...type: "composer", creator_id: 2398, status: "default", last_downloaded_at: nil, status_message: nil>8896Types::DependencyProxy::GroupSettingType8897 includes dependency proxy blob fields8898 is expected to require graphql authorizations :admin_dependency_proxy8899 is expected to eq "DependencyProxySetting"8900 is expected to eq "Group-level Dependency Proxy settings"8901Gitlab::Ci::Config::External::Mapper::Filter8902 # order random8903 #process8904 filters locations according to rules8905Banzai::Filter::TimeoutTextPipelineFilter8906 # order random8907 raises NotImplementedError8908 behaves like text filter timeout8909 when rendering takes too long8910 times out8911Users::BannedUserBaseService8912 #initialize8913 sets the current_user instance value8914Gitlab::Usage::Metrics::KeyPathProcessor8915 #unflatten_default_path8916 key_path: "uuid", value: nil, expected_hash: {:uuid=>nil}8917 is expected to eq {:uuid=>nil}8918 key_path: "uuid", value: "1111", expected_hash: {:uuid=>"1111"}8919 is expected to eq {:uuid=>"1111"}8920 key_path: "counts.issues", value: nil, expected_hash: {:counts=>{:issues=>nil}}8921 is expected to eq {:counts=>{:issues=>nil}}8922 key_path: "counts.issues", value: 100, expected_hash: {:counts=>{:issues=>100}}8923 is expected to eq {:counts=>{:issues=>100}}8924 key_path: "usage_activity_by_stage.verify.ci_builds", value: 100, expected_hash: {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}8925 is expected to eq {:usage_activity_by_stage=>{:verify=>{:ci_builds=>100}}}8926Database config initializer8927 when main database connection8928 behaves like does not change connection attributes8929 retains the correct database name for connection8930 does not overwrite custom pool settings8931 when ci database connection8932 behaves like does not change connection attributes8933 retains the correct database name for connection8934 does not overwrite custom pool settings8935Evidences::ReleaseEntity8936 exposes the expected fields8937 when the release has milestones8938 exposes these milestones8939 when the release has no milestone8940 exposes an empty array for milestones8941Pages::VirtualDomain8942 #certificate and #key pair8943 returns nil if there is no domain provided8944 when Pages domain is provided8945 returns certificate and key from the provided domain8946 #lookup_paths8947 when there is pages domain provided8948 returns collection of projects pages lookup paths sorted by prefix in reverse8949 when there is trim_prefix provided8950 returns collection of projects pages lookup paths sorted by prefix in reverse8951Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies8952 .for8953 returns the right class for `until_executing`8954 returns the right class for `until_executed`8955 returns the right class for `none`8956 raises an UnknownStrategyError when passing an unknown key8957RuboCop::Cop::RSpec::WebMockEnable8958 # order random8959 when calling WebMock.disable_net_connect!8960 registers an offence and autocorrects it8961AccessTokensHelper8962 #scope_description8963 prefix: :personal_access_token, description_location: [:doorkeeper, :scope_desc]8964 is expected to eq [:doorkeeper, :scope_desc]8965 prefix: :project_access_token, description_location: [:doorkeeper, :project_access_token_scope_desc]8966 is expected to eq [:doorkeeper, :project_access_token_scope_desc]8967 prefix: :group_access_token, description_location: [:doorkeeper, :group_access_token_scope_desc]8968 is expected to eq [:doorkeeper, :group_access_token_scope_desc]8969 #tokens_app_data8970 returns expected json8971 #expires_at_field_data8972 returns expected hash8973Gitlab::SafeRequestPurger8974 .execute8975 purges an entry from the store8976 #execute8977 when request store is active8978 purges an entry from the store8979 when there are multiple resource_ids to purge8980 purges an entry from the store8981 when there is no matching resource_ids8982 purges an entry from the store8983 when request store is not active8984 does offer the ability to interact with data store8985Packages::PackagePolicy8986 when the user is part of the project8987 allows read_package8988 when the user is not part of the project8989 disallows read_package for any Package8990WorkItems::BuildService8991 #execute8992 is expected to be a kind of WorkItem(id: integer, title: string, author_id: integer, project_id: integer, created_at: datetime, u...nteger, upvotes_count: integer, work_item_type_id: integer, namespace_id: integer, start_date: date)8993Organizations::OrganizationHelper8994 # order random8995 #organization_new_app_data8996 returns expected json8997 #organization_groups_and_projects_app_data8998 returns expected json8999 #organization_show_app_data9000 returns expected json9001 #organization_index_app_data9002 returns expected data object9003Resolvers::Ci::RunnerSetupResolver9004 #resolve9005 with container platforms9006 returns install instructions9007 does not return register instructions9008 with regular platforms9009 returns install and register instructions9010Types::AvailabilityEnum9011 is expected to eq "AvailabilityEnum"9012 exposes all the existing access levels9013Types::Packages::PackageBaseType9014 is expected to eq "Represents a package in the Package Registry"9015 is expected to require graphql authorizations :read_package9016 includes all expected fields9017Slack::Manifest9018 # order random9019 .share_url9020 URI encodes the manifest9021 .to_h9022 creates the correct manifest9023 .to_json9024 behaves like a manifest that matches the JSON schema9025 is expected to match schema "slack/manifest"9026 when the host name is very long9027 behaves like a manifest that matches the JSON schema9028 is expected to match schema "slack/manifest"9029Types::CiConfiguration::Sast::UiComponentSizeEnum9030 is expected to eq "SastUiComponentSize"9031 exposes all sizes of ui components9032Integrations::HasWebHook9033 # order random9034 when integration does not respond to enable_ssl_verification9035 is expected to eq true9036 when integration responds to enable_ssl_verification9037 is expected to eq true9038 when hook_url and url_variables are not implemented9039 is expected to raise NotImplementedError9040 is expected to raise NotImplementedError9041MergeRequests::Mergeability::CheckOpenStatusService9042 #execute9043 when the merge request is open9044 returns a check result with status success9045 when the merge request is not open9046 returns a check result with status failed9047 #skip?9048 returns false9049 #cacheable?9050 returns false9051Packages::Debian::ExtractDebMetadataService9052 with correct file9053 return as expected9054 with incorrect file9055 raise error9056Types::Packages::Cleanup::KeepDuplicatedPackageFilesEnum9057 exposes all options9058 uses all possible options from model9059Keys::DestroyService9060 destroys a key9061Admin::ReportedContentEntity9062 # order random9063 #as_json9064 exposes correct attributes9065 includes correct value for global_id9066 correctly exposes `reporter`9067Types::Clusters::Agents::Authorizations::UserAccessType9068 # order random9069 is expected to have graphql fields :agent and :config9070 is expected to eq "ClusterAgentAuthorizationUserAccess"9071Gitlab::Checks::TimedLogger9072 #log_timed9073 logs message9074 when time limit was reached9075 cancels action9076 cancels action with time elapsed if work was performed9077Gitlab::Graphql::Tracers::LoggerTracer9078 logs every query9079 logs exceptions for breaking queries9080Gitlab::Ci::Config::Interpolation::Functions::Base9081 # order random9082 defines an expected interface for child classes9083Types::Blame::BlameType9084 # order random9085 is expected to eq "Blame"9086 is expected to have graphql fields :first_line and :groups9087Gitlab::StringRangeMarker9088 #mark9089 when the rich text is html safe9090 marks the inline diffs9091 when the rich text is not html safe9092 when rich text equals raw text9093 marks the inline diffs9094 when rich text doeas not equal raw text9095 marks the inline diffs9096Types::Ci::PipelineMessageType9097 is expected to eq "PipelineMessage"9098 contains attributes related to a pipeline message9099Gitlab::Usage::Metrics::Instrumentations::CountCiRunnersInstanceTypeActiveMetric9100 # order random9101 behaves like a correct instrumented metric value9102 has correct value9103Gitlab::Usage::Metrics::Instrumentations::SchemaInconsistenciesMetric9104 # order random9105 behaves like a correct instrumented metric value9106 has correct value9107 when the max number of inconsistencies is exceeded9108 behaves like a correct instrumented metric value9109 has correct value9110InstanceMetadataPolicy9111 for any logged-in user9112 is expected to be allowed :read_instance_metadata9113 for anonymous users9114 is expected not to be allowed :read_instance_metadata9115Gitlab::Database::Migrations::Observers::QueryLog9116 writes a file with the query log9117 does not change the default logger9118Events::RenderService9119 #execute9120 when the request format is atom9121 renders the note inside events9122 when the request format is not atom9123 renders the note inside events9124Types::ProjectMemberRelationEnum9125 is expected to eq "ProjectMemberRelation"9126 exposes all the existing project member relation type values9127layouts/_published_experiments9128 renders out data for all non-excluded, published experiments9129Types::BranchType9130 is expected to eq "Branch"9131 is expected to have graphql fields :name and :commit9132Prometheus::CleanupMultiprocDirService9133 #execute9134 when `multiprocess_files_dir` is defined9135 removes old metrics9136 when `multiprocess_files_dir` is not defined9137 does not remove any files9138Types::WorkItems::WidgetTypeEnum9139 is expected to eq "WorkItemWidgetType"9140 exposes all the existing widget type values9141Types::MergeRequests::MergeabilityCheckStatusEnum9142 # order random9143 is expected to eq "MergeabilityCheckStatus"9144 exposes all the existing mergeability check statuses9145Gitlab::MarkdownCache::FieldData9146 translates a markdown field name into a html field name9147 #key?9148 is expected to be falsy9149Types::Ci::Config::NeedType9150 is expected to eq "CiConfigNeed"9151 exposes the expected fields9152Test coverage of the Project Import9153 ensures that all imported/exported relations are present in test JSONs9154Environments::AutoStopCronWorker9155 executes Environments::AutoStopService9156EnableSearchSettingsHelper9157 #enable_search_settings9158 sets content for before_content9159UploaderHelper9160 #extension_match?9161 returns false if file does not exist9162Types::PermissionTypes::WorkItem9163 is expected to have graphql field :admin_work_item_link9164SystemHookPushWorker9165 #perform9166 executes SystemHooksService with expected values9167TrendingProjectsWorker9168 #perform9169 refreshes the trending projects9170Gitlab::SidekiqVersioning9171 .install!9172 registers all versionless and versioned queues with Redis9173Tooling::Danger::RubocopInlineDisableSuggestion9174 # order random9175 adds comments at the correct lines9176auto_explain log contains 1948 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-21-28.326.main.ndjson.gz9177took 28.6162483069178auto_explain log contains 1948 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-21-28.326.ci.ndjson.gz9179took 27.639714679180Knapsack report was generated. Preview:9181{9182 "spec/scripts/lib/glfm/update_example_snapshots_spec.rb": 256.508949497,9183 "spec/models/packages/package_spec.rb": 136.61852866699996,9184 "spec/services/todos/destroy/entity_leave_service_spec.rb": 163.8309978369998,9185 "spec/policies/group_policy_spec.rb": 63.381270201999996,9186 "spec/models/ci/runner_spec.rb": 46.69706827000027,9187 "spec/services/ci/register_job_service_spec.rb": 71.85082472700014,9188 "spec/models/commit_spec.rb": 38.10793858899979,9189 "spec/policies/ci/build_policy_spec.rb": 63.04974537999988,9190 "spec/services/projects/prometheus/alerts/notify_service_spec.rb": 37.27079409399994,9191 "spec/services/ci/retry_job_service_spec.rb": 40.96673560499994,9192 "spec/lib/gitlab/health_checks/redis_spec.rb": 9.49897445500028,9193 "spec/lib/gitlab/conflict/file_spec.rb": 37.95550506599966,9194 "spec/models/project_statistics_spec.rb": 28.369669349000105,9195 "spec/finders/personal_access_tokens_finder_spec.rb": 30.26601097099956,9196 "spec/services/work_items/update_service_spec.rb": 29.096098365000216,9197 "spec/models/work_item_spec.rb": 14.260328803999982,9198 "spec/lib/gitlab/data_builder/push_spec.rb": 20.760042823000276,9199 "spec/services/packages/maven/find_or_create_package_service_spec.rb": 21.614688735000072,9200 "spec/lib/gitlab/email/message/repository_push_spec.rb": 20.13147101499999,9201 "spec/services/system_note_service_spec.rb": 11.205895271999907,9202 "spec/services/test_hooks/project_service_spec.rb": 20.41414083000018,9203 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/query_builder_spec.rb": 10.42041920199972,9204 "spec/serializers/merge_request_poll_cached_widget_entity_spec.rb": 13.410855876999904,9205 "spec/helpers/commits_helper_spec.rb": 14.27444251199995,9206 "spec/presenters/group_clusterable_presenter_spec.rb": 18.26730089900002,9207 "spec/views/notify/pipeline_success_email.text.erb_spec.rb": 15.58484063600008,9208 "spec/services/projects/update_pages_service_spec.rb": 11.513909215999774,9209 "spec/lib/sbom/package_url_spec.rb": 2.507418990000133,9210 "spec/services/packages/maven/metadata/create_plugins_xml_service_spec.rb": 14.920517394999933,9211 "spec/lib/banzai/filter/reference_redactor_filter_spec.rb": 12.140462650000245,9212 "spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb": 10.258903396000278,9213 "spec/finders/users_finder_spec.rb": 3.929097162999824,9214 "spec/lib/api/entities/snippet_spec.rb": 4.427111219999915,9215 "spec/models/ci/build_metadata_spec.rb": 6.460246639999696,9216 "spec/services/projects/protect_default_branch_service_spec.rb": 8.888339366999844,9217 "spec/workers/new_merge_request_worker_spec.rb": 11.384409697000137,9218 "spec/models/clusters/kubernetes_namespace_spec.rb": 9.858723291000388,9219 "spec/models/hooks/active_hook_filter_spec.rb": 4.271700022999994,9220 "spec/workers/merge_request_cleanup_refs_worker_spec.rb": 11.580007419999674,9221 "spec/lib/gitlab/ci/config/entry/release_spec.rb": 2.2024799259997963,9222 "spec/lib/gitlab/git/tag_spec.rb": 5.090206290999959,9223 "spec/policies/achievements/user_achievement_policy_spec.rb": 9.255974153999887,9224 "spec/helpers/nav/top_nav_helper_spec.rb": 3.0220572940002057,9225 "spec/serializers/stage_entity_spec.rb": 9.566991746999975,9226 "spec/graphql/resolvers/ci/all_jobs_resolver_spec.rb": 5.207807150000008,9227 "spec/finders/concerns/finder_with_cross_project_access_spec.rb": 8.671977536000213,9228 "spec/graphql/mutations/incident_management/timeline_event/update_spec.rb": 6.586730099000306,9229 "spec/models/pages_deployment_spec.rb": 5.376894796000215,9230 "spec/models/error_tracking/error_spec.rb": 5.087764152000091,9231 "spec/finders/context_commits_finder_spec.rb": 7.570174092999878,9232 "spec/services/labels/find_or_create_service_spec.rb": 7.861423917000138,9233 "spec/finders/packages/conan/package_finder_spec.rb": 5.295158942999933,9234 "spec/models/integrations/ewm_spec.rb": 6.420330053999805,9235 "spec/lib/gitlab/ci/config/entry/root_spec.rb": 2.41953281699989,9236 "spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb": 2.2393130320001546,9237 "spec/lib/gitlab/audit/auditor_spec.rb": 5.967391435000081,9238 "spec/lib/gitlab/markdown_cache/active_record/extension_spec.rb": 3.120330655000089,9239 "spec/services/projects/container_repository/third_party/cleanup_tags_service_spec.rb": 5.017791488000057,9240 "spec/views/admin/dashboard/index.html.haml_spec.rb": 5.741198546000305,9241 "spec/lib/gitlab/ci/config/entry/needs_spec.rb": 1.2211115750001227,9242 "spec/models/packages/debian/project_component_file_spec.rb": 2.299141770999995,9243 "spec/models/clusters/providers/gcp_spec.rb": 2.79994423800008,9244 "spec/lib/bulk_imports/common/transformers/member_attributes_transformer_spec.rb": 2.28042292300006,9245 "spec/helpers/boards_helper_spec.rb": 2.5951659350002956,9246 "spec/lib/gitlab/database/load_balancing/sidekiq_client_middleware_spec.rb": 1.6522769070002141,9247 "spec/workers/merge_requests/create_approval_event_worker_spec.rb": 5.584262426999885,9248 "spec/helpers/admin/user_actions_helper_spec.rb": 2.5205406019999828,9249 "spec/lib/gitlab/ci/pipeline/logger_spec.rb": 1.2279710140001043,9250 "spec/lib/gitlab/import_export/project/sample/relation_factory_spec.rb": 4.600998941999933,9251 "spec/models/label_link_spec.rb": 3.134555649000049,9252 "spec/workers/ci/pipeline_success_unlock_artifacts_worker_spec.rb": 4.456355884999994,9253 "spec/lib/gitlab/deploy_key_access_spec.rb": 5.883184390999759,9254 "spec/lib/gitlab/usage/metrics/instrumentations/in_product_marketing_email_sent_metric_spec.rb": 4.171616040000117,9255 "spec/models/integrations/chat_message/alert_message_spec.rb": 3.753365064999798,9256 "spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb": 1.1996866760000557,9257 "spec/lib/gitlab/web_hooks/rate_limiter_spec.rb": 3.5249261250000927,9258 "spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb": 0.7559668740000234,9259 "spec/lib/gitlab/omniauth_initializer_spec.rb": 0.9261648299998342,9260 "spec/services/ci/job_token_scope/add_project_service_spec.rb": 2.6926993280003444,9261 "spec/views/layouts/terms.html.haml_spec.rb": 2.63948850099996,9262 "spec/lib/gitlab/metrics/background_transaction_spec.rb": 0.8736676150001585,9263 "spec/workers/project_cache_worker_spec.rb": 1.4834737710002628,9264 "spec/views/projects/issues/service_desk/_issue.html.haml_spec.rb": 3.0795548339997367,9265 "spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb": 0.9088325519996943,9266 "spec/models/ci/build_need_spec.rb": 2.480268455999976,9267 "spec/services/issuable/callbacks/milestone_spec.rb": 2.2623476339999797,9268 "spec/lib/gitlab/ci/reports/test_case_spec.rb": 3.0043795609999506,9269 "spec/lib/gitlab/memory/watchdog/configurator_spec.rb": 0.8966572730000735,9270 "spec/models/wiki_page/slug_spec.rb": 1.8082090130001234,9271 "spec/graphql/types/base_argument_spec.rb": 0.6907160000000658,9272 "spec/lib/safe_zip/extract_params_spec.rb": 0.6115683970001555,9273 "spec/lib/gitlab/usage/metric_spec.rb": 2.1900018510000336,9274 "spec/helpers/users/group_callouts_helper_spec.rb": 2.9235622870000952,9275 "spec/lib/banzai/filter/custom_emoji_filter_spec.rb": 3.256398517999969,9276 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb": 2.037096343999565,9277 "spec/lib/gitlab/hook_data/base_builder_spec.rb": 0.696601279999868,9278 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_stage_end_spec.rb": 1.3184040759997515,9279 "spec/lib/atlassian/jira_connect/jwt/asymmetric_spec.rb": 0.7671934039999542,9280 "spec/graphql/mutations/custom_emoji/destroy_spec.rb": 1.5659454249998817,9281 "spec/lib/gitlab/local_and_remote_storage_migration/pages_deployment_migrater_spec.rb": 2.4907904440001403,9282 "spec/lib/gitlab/otp_key_rotator_spec.rb": 2.9683868340002846,9283 "spec/services/suggestions/outdate_service_spec.rb": 3.64773025400018,9284 "spec/services/loose_foreign_keys/process_deleted_records_service_spec.rb": 1.807644443999834,9285 "spec/models/label_priority_spec.rb": 2.2408117569998467,9286 "spec/workers/personal_access_tokens/expiring_worker_spec.rb": 1.610362860999885,9287 "spec/lib/file_size_validator_spec.rb": 2.409317331999773,9288 "spec/lib/gitlab/hook_data/user_builder_spec.rb": 0.870323954000014,9289 "spec/services/projects/move_notification_settings_service_spec.rb": 3.2561487479997595,9290 "spec/models/concerns/token_authenticatable_strategies/base_spec.rb": 1.4081391090003308,9291 "spec/lib/gitlab/database/database_connection_info_spec.rb": 0.7971058409998477,9292 "spec/services/ci/create_pipeline_service/parameter_content_spec.rb": 2.3960687930002678,9293 "spec/tasks/config_lint_rake_spec.rb": 1.6627703469998778,9294 "spec/validators/qualified_domain_array_validator_spec.rb": 0.5232002849998025,9295 "spec/lib/gitlab/tracking/incident_management_spec.rb": 0.5951692089997778,9296 "spec/lib/gitlab/ci/processable_object_hierarchy_spec.rb": 1.1516286000000946,9297 "spec/lib/atlassian/jira_connect/jwt/symmetric_spec.rb": 0.5906239190003362,9298 "spec/serializers/merge_request_widget_commit_entity_spec.rb": 1.9869623390000015,9299 "spec/models/concerns/where_composite_spec.rb": 1.0748451569997997,9300 "spec/services/users/registrations_build_service_spec.rb": 0.6079534169998624,9301 "spec/workers/incident_management/pager_duty/process_incident_worker_spec.rb": 1.6619852260000698,9302 "spec/lib/gitlab/metrics/environment_spec.rb": 0.37164281800005483,9303 "spec/services/protected_branches/destroy_service_spec.rb": 1.2445487429999957,9304 "spec/services/spam/ham_service_spec.rb": 0.435230402000343,9305 "spec/models/system_note_metadata_spec.rb": 0.441212822000125,9306 "spec/graphql/mutations/labels/create_spec.rb": 1.5659816450001927,9307 "spec/serializers/ci/daily_build_group_report_result_entity_spec.rb": 0.32851725099999385,9308 "spec/lib/sidebars/groups/menus/merge_requests_menu_spec.rb": 0.9554397879996941,9309 "spec/lib/bulk_imports/groups/loaders/group_loader_spec.rb": 0.9080348120000963,9310 "spec/lib/gitlab/ci/config/external/file/template_spec.rb": 1.0044170729997859,9311 "spec/lib/gitlab/github_import/importer/events/closed_spec.rb": 1.9765704789997471,9312 "spec/components/pajamas/radio_component_spec.rb": 0.5879484590000175,9313 "spec/lib/atlassian/jira_connect/serializers/repository_entity_spec.rb": 2.1538275039997643,9314 "spec/rubocop/cop/scalability/cron_worker_context_spec.rb": 0.5909688790002292,9315 "spec/lib/sidebars/user_settings/menus/gpg_keys_menu_spec.rb": 0.5732437100000425,9316 "spec/graphql/resolvers/users_resolver_spec.rb": 0.9621711869999672,9317 "spec/lib/gitlab/usage/metrics/instrumentations/distinct_count_projects_with_expiration_policy_metric_spec.rb": 2.117484687000342,9318 "spec/graphql/resolvers/repository_branch_names_resolver_spec.rb": 2.1344753060002404,9319 "spec/models/blob_viewer/markup_spec.rb": 1.404581858000256,9320 "spec/models/concerns/file_store_mounter_spec.rb": 0.4413407320002989,9321 "spec/presenters/packages/helm/index_presenter_spec.rb": 0.9570229669998298,9322 "spec/services/users/auto_ban_service_spec.rb": 0.9563296870001068,9323 "spec/workers/analytics/usage_trends/counter_job_worker_spec.rb": 1.1587644189999082,9324 "spec/graphql/mutations/notes/reposition_image_diff_note_spec.rb": 1.3729556409998622,9325 "spec/uploaders/object_storage/cdn_spec.rb": 0.4662097000000358,9326 "spec/lib/gitlab/ci/status/pipeline/blocked_spec.rb": 1.2198254840000118,9327 "spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb": 2.034404334000101,9328 "spec/services/projects/forks_count_service_spec.rb": 0.47204966899971623,9329 "spec/lib/gitlab/asset_proxy_spec.rb": 0.3584175689998119,9330 "spec/components/pajamas/spinner_component_spec.rb": 0.48628982799982623,9331 "spec/workers/ci/archive_trace_worker_spec.rb": 1.5317197580002357,9332 "spec/models/concerns/as_cte_spec.rb": 0.40048063500034914,9333 "spec/finders/uploader_finder_spec.rb": 1.400249719000385,9334 "spec/lib/gitlab/analytics/usage_trends/workers_argument_builder_spec.rb": 1.1222133730002497,9335 "spec/models/projects/branch_rule_spec.rb": 0.8473564269997951,9336 "spec/serializers/container_tag_entity_spec.rb": 0.8042889999996987,9337 "spec/finders/applications_finder_spec.rb": 0.7311655670000619,9338 "spec/models/user_mentions/merge_request_user_mention_spec.rb": 0.41438586499998564,9339 "spec/presenters/member_presenter_spec.rb": 0.8395501770000919,9340 "spec/policies/application_setting_policy_spec.rb": 1.313129015999948,9341 "spec/views/admin/sessions/new.html.haml_spec.rb": 1.199752257,9342 "spec/views/projects/pages/new.html.haml_spec.rb": 1.2488398530003906,9343 "spec/workers/bulk_imports/stuck_import_worker_spec.rb": 1.1778185289999783,9344 "spec/models/concerns/enum_inheritance_spec.rb": 0.6092246869998235,9345 "spec/lib/gitlab/health_checks/server_spec.rb": 0.3659054479999213,9346 "spec/services/ci/job_artifacts/delete_service_spec.rb": 1.1599956299996848,9347 "spec/lib/gitlab/auth/ldap/authentication_spec.rb": 0.7302384570002687,9348 "spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb": 0.6288290759998745,9349 "spec/workers/tasks_to_be_done/create_worker_spec.rb": 0.37451377800016417,9350 "spec/lib/bitbucket/representation/comment_spec.rb": 0.4975511269999515,9351 "spec/lib/gitlab/memory/watchdog/handlers/sidekiq_handler_spec.rb": 0.5223797050002759,9352 "spec/lib/bulk_imports/groups/pipelines/group_attributes_pipeline_spec.rb": 0.5734650299996247,9353 "spec/models/concerns/from_union_spec.rb": 0.3297796910001125,9354 "spec/workers/pages/deactivated_deployments_delete_cron_worker_spec.rb": 1.441154306000044,9355 "spec/lib/bulk_imports/projects/graphql/get_snippet_repository_query_spec.rb": 0.5949547780001012,9356 "spec/rubocop/cop/migration/schema_addition_methods_no_post_spec.rb": 0.3838175669998236,9357 "spec/policies/identity_provider_policy_spec.rb": 0.41742781399989326,9358 "spec/lib/gitlab/sidekiq_versioning/middleware_spec.rb": 0.2744301560001077,9359 "spec/helpers/tracking_helper_spec.rb": 0.30125064399999246,9360 "spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb": 0.3081621830001495,9361 "spec/services/google_cloud/fetch_google_ip_list_service_spec.rb": 0.4146241339999506,9362 "spec/lib/gitlab/database/query_analyzers/prevent_set_operator_mismatch/common_table_expressions_spec.rb": 0.34108815100034917,9363 "spec/lib/constraints/activity_pub_constrainer_spec.rb": 0.30796789299984084,9364 "spec/lib/gitlab/wiki_file_finder_spec.rb": 0.7137936789999912,9365 "spec/lib/gitlab/jira_import/metadata_collector_spec.rb": 0.3501491699998951,9366 "spec/lib/bulk_imports/common/extractors/ndjson_extractor_spec.rb": 0.49696309699993435,9367 "spec/lib/gitlab/config_checker/puma_rugged_checker_spec.rb": 0.2898277849999431,9368 "spec/serializers/import/github_realtime_repo_entity_spec.rb": 0.21934175099977438,9369 "spec/lib/gitlab/ci/templates/kaniko_gitlab_ci_yaml_spec.rb": 1.052386338999895,9370 "spec/rubocop/cop/active_model_errors_direct_manipulation_spec.rb": 0.34811949999993885,9371 "spec/serializers/analytics/cycle_analytics/stage_entity_spec.rb": 0.2450591589999931,9372 "spec/finders/packages/composer/packages_finder_spec.rb": 1.1286342419998618,9373 "spec/graphql/types/dependency_proxy/group_setting_type_spec.rb": 0.2713879369998722,9374 "spec/lib/gitlab/ci/config/external/mapper/filter_spec.rb": 0.17773778499986292,9375 "spec/lib/banzai/filter/timeout_text_pipeline_filter_spec.rb": 0.5871804100002009,9376 "spec/services/users/banned_user_base_service_spec.rb": 0.27507999599993127,9377 "spec/lib/gitlab/usage/metrics/key_path_processor_spec.rb": 0.29059524500007683,9378 "spec/initializers/database_config_spec.rb": 0.3890141459996812,9379 "spec/serializers/evidences/release_entity_spec.rb": 0.6416251739997278,9380 "spec/models/pages/virtual_domain_spec.rb": 0.2564978069999597,9381 "spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies_spec.rb": 0.3490344100000584,9382 "spec/rubocop/cop/rspec/web_mock_enable_spec.rb": 0.17423369400012234,9383 "spec/helpers/access_tokens_helper_spec.rb": 0.36243297899954996,9384 "spec/lib/gitlab/safe_request_purger_spec.rb": 0.29080561499995383,9385 "spec/policies/packages/package_policy_spec.rb": 0.6859179520001817,9386 "spec/services/work_items/build_service_spec.rb": 0.7845907129999432,9387 "spec/helpers/organizations/organization_helper_spec.rb": 0.3032557330002419,9388 "spec/graphql/resolvers/ci/runner_setup_resolver_spec.rb": 0.6177538469996762,9389 "spec/graphql/types/availability_enum_spec.rb": 0.19116700399990805,9390 "spec/graphql/types/packages/package_base_type_spec.rb": 0.219751960999929,9391 "spec/lib/slack/manifest_spec.rb": 0.3029058340002848,9392 "spec/graphql/types/ci_configuration/sast/ui_component_size_enum_spec.rb": 0.19032162300027267,9393 "spec/models/concerns/integrations/has_web_hook_spec.rb": 0.317067391999899,9394 "spec/services/merge_requests/mergeability/check_open_status_service_spec.rb": 0.3221675619997768,9395 "spec/services/packages/debian/extract_deb_metadata_service_spec.rb": 0.4689180100003796,9396 "spec/graphql/types/packages/cleanup/keep_duplicated_package_files_enum_spec.rb": 0.21234784099988246,9397 "spec/services/keys/destroy_service_spec.rb": 0.48451743800023905,9398 "spec/serializers/admin/reported_content_entity_spec.rb": 0.274800316999972,9399 "spec/graphql/types/clusters/agents/authorizations/user_access_type_spec.rb": 0.19547435399999813,9400 "spec/lib/gitlab/checks/timed_logger_spec.rb": 0.2322727210002995,9401 "spec/lib/gitlab/graphql/tracers/logger_tracer_spec.rb": 0.21022941100000025,9402 "spec/lib/gitlab/ci/config/interpolation/functions/base_spec.rb": 0.17220240500000727,9403 "spec/graphql/types/blame/blame_type_spec.rb": 0.20834395199972278,9404 "spec/lib/gitlab/string_range_marker_spec.rb": 0.2307120299997223,9405 "spec/graphql/types/ci/pipeline_message_type_spec.rb": 0.24273636900034035,9406 "spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_instance_type_active_metric_spec.rb": 0.21042535100013993,9407 "spec/lib/gitlab/usage/metrics/instrumentations/schema_inconsistencies_metric_spec.rb": 0.19825186300022324,9408 "spec/policies/instance_metadata_policy_spec.rb": 0.28327477599987105,9409 "spec/lib/gitlab/database/migrations/observers/query_log_spec.rb": 0.19523815399998057,9410 "spec/services/events/render_service_spec.rb": 0.2539506779999101,9411 "spec/graphql/types/project_member_relation_enum_spec.rb": 0.2132014510002591,9412 "spec/views/layouts/_published_experiments.html.haml_spec.rb": 0.26528790700012905,9413 "spec/graphql/types/branch_type_spec.rb": 0.202664962000199,9414 "spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb": 0.20446561200014912,9415 "spec/graphql/types/work_items/widget_type_enum_spec.rb": 0.2081431619999421,9416 "spec/graphql/types/merge_requests/mergeability_check_status_enum_spec.rb": 0.1990358230000311,9417 "spec/lib/gitlab/markdown_cache/field_data_spec.rb": 0.2019789219998529,9418 "spec/graphql/types/ci/config/need_type_spec.rb": 0.19082556400007888,9419 "spec/lib/gitlab/import_export/import_test_coverage_spec.rb": 0.18304313399994498,9420 "spec/workers/environments/auto_stop_cron_worker_spec.rb": 0.16503897500024323,9421 "spec/helpers/enable_search_settings_helper_spec.rb": 0.187077875000341,9422 "spec/uploaders/uploader_helper_spec.rb": 0.17014061600002606,9423 "spec/graphql/types/permission_types/work_item_spec.rb": 0.16706983599988234,9424 "spec/workers/system_hook_push_worker_spec.rb": 0.16744371599997976,9425 "spec/workers/trending_projects_worker_spec.rb": 0.17377587500004665,9426 "spec/lib/gitlab/sidekiq_versioning_spec.rb": 0.16862416599997232,9427 "spec/tooling/danger/rubocop_inline_disable_suggestion_spec.rb": 0.194342773000244059428}9429Knapsack global time execution for tests: 27m 39s9430Failures:9431 1) ProjectCacheWorker behaves like an idempotent worker calls Projects::UpdateStatisticsService service twice9432 Failure/Error: expect(Projects::UpdateStatisticsService).to receive(:new).once.and_return(double(execute: true))9433 (Projects::UpdateStatisticsService (class)).new(*(any args))9434 expected: 1 time with any arguments9435 received: 0 times with any arguments9436 Shared Example Group: "an idempotent worker" called from ./spec/workers/project_cache_worker_spec.rb:1229437 # ./spec/workers/project_cache_worker_spec.rb:126:in `block (3 levels) in <top (required)>'9438 # ./spec/spec_helper.rb:440:in `block (3 levels) in <top (required)>'9439 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'9440 # ./spec/spec_helper.rb:431:in `block (2 levels) in <top (required)>'9441 # ./spec/spec_helper.rb:427:in `block (3 levels) in <top (required)>'9442 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'9443 # ./spec/spec_helper.rb:427:in `block (2 levels) in <top (required)>'9444 # ./spec/spec_helper.rb:267:in `block (2 levels) in <top (required)>'9445 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'9446 # ./spec/support/redis.rb:20:in `block (3 levels) in <top (required)>'9447 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'9448 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'9449 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'9450 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'9451Finished in 28 minutes 38 seconds (files took 55.21 seconds to load)94524336 examples, 1 failure9453Failed examples:9454rspec ./spec/workers/project_cache_worker_spec.rb:125 # ProjectCacheWorker behaves like an idempotent worker calls Projects::UpdateStatisticsService service twice9455Randomized with seed 388099456[TEST PROF INFO] Time spent in factories: 14:54.913 (51.58% of total time)9457Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected9458RSpec exited with 1.9459[job-metrics] Updating job metrics tag for the CI/CD job.9460RSPEC_RETRIED_TESTS_REPORT_PATH: rspec/retried_tests-5336650989.txt9461Retrying the failing examples in a new RSpec process...9462$ gem install junit_merge --no-document --version 0.1.29463Successfully installed nokogiri-1.15.4-x86_64-linux9464Successfully installed junit_merge-0.1.294652 gems installed9466==> 'gem install junit_merge --no-document --version 0.1.2' succeeded in 1 seconds.9467Running RSpec command: bin/rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format Support::Formatters::JsonFormatter --out rspec/rspec-retry-5336650989.json --format RspecJunitFormatter --out rspec/rspec-retry-5336650989.xml --only-failures --pattern "spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb"9468/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!9469/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!9470/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!9471/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!9472/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!9473/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!9474/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!9475/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!9476/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9477/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:19: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9478/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!9479/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!9480/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!9481/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!9482/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!9483/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!9484/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9485/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9486/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!9487/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!9488/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!9489/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!9490/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!9491/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!9492/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!9493/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!9494/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!9495/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!9496/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!9497/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!9498/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!9499/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!9500/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!9501/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!9502/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:15: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9503/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9504/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9505/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9506/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/create/workspace_variables_creator.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9507/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!9508/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!9509/builds/gitlab-org/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:13: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!9510/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!9511/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!9512/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!9513/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!9514/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!9515/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!9516/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!9517/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!9518/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!9519/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!9520/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!9521Run options: include {:last_run_status=>"failed"}9522Test environment set up in 0.394174725 seconds9523ProjectCacheWorker9524 behaves like an idempotent worker9525 calls Projects::UpdateStatisticsService service twice9526auto_explain log contains 1947 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-21-28.8049.main.ndjson.gz9527took 28.0012588879528auto_explain log contains 1947 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-21-28.8049.ci.ndjson.gz9529took 27.174781239530Finished in 58.73 seconds (files took 38.12 seconds to load)95311 example, 0 failures9532[TEST PROF INFO] Time spent in factories: 00:01.079 (1.79% of total time)9533Loading rspec/rspec-5336650989.json...9534Merged rspec/rspec-retry-5336650989.json adding 4 results.9535Saved rspec/rspec-5336650989.json.9536A test was flaky and succeeded after being retried. Checking to see if flaky test is part of this MR...9537Flaky test was not part of this MR.9539Running after script...9540$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"9544$ tooling/bin/push_job_metrics || true9545[job-metrics] Pushing job metrics file for the CI/CD job.9546[job-metrics] Pushed 4 CI job metric entries to InfluxDB.9548Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy9550Uploading artifacts...9551auto_explain/: found 9 matching artifact files and directories 9552coverage/: found 5 matching artifact files and directories 9553crystalball/: found 2 matching artifact files and directories 9554deprecations/: found 4 matching artifact files and directories 9555knapsack/: found 4 matching artifact files and directories 9556rspec/: found 19 matching artifact files and directories 9557WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 9558log/*.log: found 19 matching artifact files and directories 9559WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336650989/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com9560WARNING: Retrying... context=artifacts-uploader error=request redirected9561Uploading artifacts as "archive" to coordinator... 201 Created id=5336650989 responseStatus=201 Created token=64_N81Fr9562Uploading artifacts...9563rspec/rspec-*.xml: found 2 matching artifact files and directories 9564WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336650989/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com9565WARNING: Retrying... context=artifacts-uploader error=request redirected9566Uploading artifacts as "junit" to coordinator... 201 Created id=5336650989 responseStatus=201 Created token=64_N81Fr9568Job succeeded