rspec unit pg14 single-db 2/28
Passed Started
by
@vshushlin

Vladimir Shushlin
1Running with gitlab-runner 16.3.0~beta.108.g2b6048b4 (2b6048b4)2 on blue-6.private.runners-manager.gitlab.com/gitlab.com/gitlab-org mKJTFBei, system ID: s_90a66139ec063 feature flags: FF_NETWORK_PER_BUILD:true, FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true, FF_RESOLVE_FULL_TLS_CHAIN:false6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...8Authenticating with credentials from job payload (GitLab Registry)9Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 ...10Using docker image sha256:6c7370fd46a94d5beaed2a0304c7518e74a5759d4da3322ea9f7052507f51d80 for registry.gitlab.com/gitlab-org/gitlab-build-images:postgres-14-pgvector-0.4.1 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:1b39aac95406782d786043ec3f1772c0a3a5ce1b9ce28cf001cac9a290f366c8 ...11WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.12WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.13Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...16Using docker image sha256:f4c047edb00d9bbfcc2b002a01548fab14592940f5b3e6b3f227f690e3fa272d for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:9a1b6b68dc464f0baae914703d5b059e7773bf23c9579c44e2a1b1154a83656f ...17Starting service redis:6.2-alpine ...18Pulling docker image redis:6.2-alpine ...19Using docker image sha256:9b4dc93acb797b99419bb31d8a452680508f1bf10a8604d721c0474072417a2b for redis:6.2-alpine with digest redis@sha256:452b7655bda0e270a6376b71d22fcb30662e745dcb4728f99fa87f01287b465d ...20Waiting for services to be up and running (timeout 30 seconds)...21Authenticating with credentials from job payload (GitLab Registry)22Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.20-rust-1.65-node-18.17-postgresql-14:rubygems-3.4-git-2.36-lfs-2.9-chrome-113-yarn-1.22-graphicsmagick-1.3.36 ...23Using docker image sha256: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 ...25Running on runner-mkjtfbei-project-278964-concurrent-0 via runner-mkjtfbei-private-1697785448-1fb3bff5...27Fetching changes with git depth set to 20...28Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/29Created fresh repository.30remote: Enumerating objects: 148580, done. 31remote: Counting objects: 100% (148580/148580), done. 32remote: Compressing objects: 100% (104624/104624), done. 33remote: Total 148580 (delta 64637), reused 94927 (delta 38178), pack-reused 0 34Receiving objects: 100% (148580/148580), 135.67 MiB | 32.37 MiB/s, done.35Resolving deltas: 100% (64637/64637), done.37 * [new ref] refs/pipelines/1043537122 -> refs/pipelines/104353712238Checking out 537c07c6 as detached HEAD (ref is refs/merge-requests/118829/merge)...39Skipping Git submodules setup40$ git remote set-url origin "${CI_REPOSITORY_URL}"42Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...43Downloading cache from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 44Successfully extracted cache46Downloading artifacts for compile-test-assets (5336650410)...47Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650410 responseStatus=200 OK token=64_dmWrJ48Downloading artifacts for detect-tests (5336650454)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650454 responseStatus=200 OK token=64_dmWrJ50Downloading artifacts for retrieve-tests-metadata (5336650473)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650473 responseStatus=200 OK token=64_dmWrJ52Downloading artifacts for setup-test-env (5336650424)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650424 responseStatus=200 OK token=64_dmWrJ55Using 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 ...56$ echo $FOSS_ONLY57$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb58$ export GOPATH=$CI_PROJECT_DIR/.go59$ mkdir -p $GOPATH60$ source scripts/utils.sh61$ source scripts/prepare_build.sh93Using two connections, single database config (config/database.yml.postgresql)94Disabling ci connection in config/database.yml95Geo DB won't be set up.96Embedding DB won't be set up.128$ source ./scripts/rspec_helpers.sh129$ run_timed_command "gem install knapsack --no-document"130$ gem install knapsack --no-document131Successfully installed knapsack-4.0.01321 gem installed133==> 'gem install knapsack --no-document' succeeded in 0 seconds.134$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"139$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"140$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"141$ tooling/bin/create_job_metrics_file || true142[job-metrics] Creating the job metrics file for the CI/CD job.143$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"144RETRY_FAILED_TESTS_IN_NEW_PROCESS: true145KNAPSACK_GENERATE_REPORT: true146FLAKY_RSPEC_GENERATE_REPORT: true147KNAPSACK_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.rb148KNAPSACK_LOG_LEVEL: debug149KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_single-db_2_28_report.json150FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json151FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_single-db_2_28_report.json152NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_single-db_2_28_report.json153RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-5336650838.txt154CRYSTALBALL: 155RSPEC_TESTS_MAPPING_ENABLED: 156RSPEC_TESTS_FILTER_FILE: 157Shell set options (set -o) enabled:158braceexpand on159hashall on160interactive-comments on161pipefail on162Running 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-5336650838.json --format RspecJunitFormatter --out rspec/rspec-5336650838.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request -- spec/services/notification_service_spec.rb spec/helpers/visibility_level_helper_spec.rb spec/lib/gitlab/background_migration/remove_self_managed_wiki_notes_spec.rb spec/models/plan_limits_spec.rb spec/lib/gitlab/ci/templates/templates_spec.rb spec/lib/gitlab/background_migration/delete_orphaned_packages_dependencies_spec.rb spec/serializers/group_child_entity_spec.rb spec/tasks/gitlab/db_rake_spec.rb spec/models/integrations/datadog_spec.rb spec/tasks/gitlab/web_hook_rake_spec.rb spec/services/alert_management/create_alert_issue_service_spec.rb spec/lib/gitlab/redis/workhorse_spec.rb spec/models/key_spec.rb spec/lib/gitlab/background_migration/backfill_project_statistics_storage_size_without_pipeline_artifacts_size_job_spec.rb spec/lib/gitlab/database/reflection_spec.rb spec/lib/users/internal_spec.rb spec/serializers/ci/pipeline_entity_spec.rb spec/models/integrations/telegram_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/jira_active_integrations_metric_spec.rb spec/serializers/pipeline_serializer_spec.rb spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb spec/lib/backup/database_model_spec.rb spec/lib/gitlab/background_migration/copy_column_using_background_migration_job_spec.rb spec/models/concerns/chronic_duration_attribute_spec.rb spec/models/concerns/resolvable_discussion_spec.rb spec/services/work_items/task_list_reference_removal_service_spec.rb spec/helpers/button_helper_spec.rb spec/rubocop/cop/rspec/before_all_role_assignment_spec.rb spec/lib/gitlab/github_import/importer/releases_importer_spec.rb spec/services/members/create_service_spec.rb spec/lib/gitlab/ci/badge/pipeline/status_spec.rb spec/presenters/clusterable_presenter_spec.rb spec/lib/bulk_imports/common/pipelines/uploads_pipeline_spec.rb spec/lib/sbom/package_url/decoder_spec.rb spec/workers/merge_requests/mergeability_check_batch_worker_spec.rb spec/lib/gitlab/sanitizers/exif_spec.rb spec/rubocop/code_reuse_helpers_spec.rb spec/workers/issuable_export_csv_worker_spec.rb spec/lib/backup/gitaly_backup_spec.rb spec/lib/gitlab/ci/config/entry/variables_spec.rb spec/serializers/profile/event_entity_spec.rb spec/lib/gitlab/x509/signature_sigstore_spec.rb spec/services/ci/archive_trace_service_spec.rb spec/services/merge_requests/post_merge_service_spec.rb spec/lib/gitlab/ci/config/normalizer_spec.rb spec/models/ci/build_report_result_spec.rb spec/lib/gitlab/import_export/group/relation_factory_spec.rb spec/lib/gitlab/github_import/representation/diff_note_spec.rb spec/graphql/types/ci/job_base_field_spec.rb spec/workers/container_registry/migration/observer_worker_spec.rb spec/serializers/ci/dag_job_entity_spec.rb spec/services/projects/after_rename_service_spec.rb spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb spec/helpers/admin/broadcast_messages_helper_spec.rb spec/models/commit_signatures/ssh_signature_spec.rb spec/models/integrations/zentao_spec.rb spec/lib/gitlab/sidekiq_config/worker_router_spec.rb spec/models/packages/dependency_link_spec.rb spec/workers/concerns/reenqueuer_spec.rb spec/helpers/badges_helper_spec.rb spec/serializers/discussion_diff_file_entity_spec.rb spec/finders/personal_projects_finder_spec.rb spec/tasks/gitlab/git_rake_spec.rb spec/services/security/ci_configuration/secret_detection_create_service_spec.rb spec/lib/gitlab/database/partitioning_spec.rb spec/initializers/enumerator_next_patch_spec.rb spec/models/ci/runner_manager_build_spec.rb spec/lib/gitlab/background_migration/delete_orphans_approval_project_rules2_spec.rb spec/lib/gitlab/ci/status/build/retried_spec.rb spec/lib/gitlab/ci/status/build/play_spec.rb spec/lib/gitlab/ci/status/build/scheduled_spec.rb spec/lib/gitlab/background_migration/set_correct_vulnerability_state_spec.rb spec/lib/google_api/cloud_platform/client_spec.rb spec/lib/gitlab/web_ide/config/entry/global_spec.rb spec/services/work_items/related_work_item_links/create_service_spec.rb spec/lib/gitlab/email/service_desk_email_spec.rb spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb spec/tasks/gitlab/doctor/secrets_rake_spec.rb spec/lib/gitlab/api_authentication/token_locator_spec.rb spec/lib/gitlab/kubernetes/rollout_status_spec.rb spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb spec/lib/gitlab/ci/config/entry/prefix_spec.rb spec/lib/gitlab/unicode_spec.rb spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb spec/serializers/base_discussion_entity_spec.rb spec/lib/gitlab/cache/client_spec.rb spec/tasks/dev_rake_spec.rb spec/workers/repository_cleanup_worker_spec.rb spec/services/deployments/create_service_spec.rb spec/services/packages/helm/process_file_service_spec.rb spec/lib/gitlab/redis/hll_spec.rb spec/lib/gitlab/lograge/custom_options_spec.rb spec/services/user_project_access_changed_service_spec.rb spec/services/projects/detect_repository_languages_service_spec.rb spec/views/layouts/_flash.html.haml_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb spec/models/projects/triggered_hooks_spec.rb spec/views/layouts/signup_onboarding.html.haml_spec.rb spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb spec/workers/packages/npm/create_metadata_cache_worker_spec.rb spec/workers/object_pool/create_worker_spec.rb spec/lib/gitlab/repository_size_checker_spec.rb spec/services/jira_connect/sync_service_spec.rb spec/finders/environments/environments_finder_spec.rb spec/lib/sidebars/your_work/menus/merge_requests_menu_spec.rb spec/workers/ssh_keys/expired_notification_worker_spec.rb spec/workers/incident_management/add_severity_system_note_worker_spec.rb spec/models/concerns/ci/track_environment_usage_spec.rb spec/services/groups/auto_devops_service_spec.rb spec/services/integrations/slack_interactions/slack_block_actions/incident_management/project_update_handler_spec.rb spec/models/preloaders/user_max_access_level_in_groups_preloader_spec.rb spec/lib/banzai/issuable_extractor_spec.rb spec/lib/bulk_imports/common/graphql/get_members_query_spec.rb spec/lib/bulk_imports/pipeline/context_spec.rb spec/experiments/ios_specific_templates_experiment_spec.rb spec/services/achievements/award_service_spec.rb spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb spec/serializers/stage_serializer_spec.rb spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb spec/support_specs/database/duplicate_indexes_spec.rb spec/workers/merge_requests/execute_approval_hooks_worker_spec.rb spec/services/projects/fetch_statistics_increment_service_spec.rb spec/presenters/ci/group_variable_presenter_spec.rb spec/tooling/danger/datateam_spec.rb spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb spec/presenters/project_hook_presenter_spec.rb spec/finders/ci/group_variables_finder_spec.rb spec/graphql/types/commit_signature_interface_spec.rb spec/graphql/mutations/environments/canary_ingress/update_spec.rb spec/lib/gitlab/email/smime/signer_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_packages_metric_spec.rb spec/lib/gitlab/graphql/limit/field_call_count_spec.rb spec/lib/gitlab/email/service_desk_receiver_spec.rb spec/services/packages/generic/find_or_create_package_service_spec.rb spec/rubocop/cop/rspec/duplicate_spec_location_spec.rb spec/db/production/create_work_item_hierarchy_restrictions_spec.rb spec/models/concerns/safely_change_column_default_spec.rb spec/workers/ci/job_artifacts/track_artifact_report_worker_spec.rb spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb spec/models/design_management/repository_spec.rb spec/lib/gitlab/gitaly_client/health_check_service_spec.rb spec/lib/gitlab/lets_encrypt/order_spec.rb spec/lib/gitlab/github_import/attachments_downloader_spec.rb spec/lib/gitlab/background_migration/batching_strategies/base_strategy_spec.rb spec/services/projects/hashed_storage/migration_service_spec.rb spec/lib/gitlab/github_import/clients/proxy_spec.rb spec/finders/feature_flags_user_lists_finder_spec.rb spec/services/users/dismiss_group_callout_service_spec.rb spec/lib/gitlab/github_import/importer/pull_requests/merged_by_importer_spec.rb spec/initializers/diagnostic_reports_spec.rb spec/lib/gitlab/ci/status/manual_spec.rb spec/finders/projects/members/effective_access_level_per_user_finder_spec.rb spec/helpers/admin/background_migrations_helper_spec.rb spec/lib/gitlab/dependency_linker/podfile_linker_spec.rb spec/lib/sbom/package_url/normalizer_spec.rb spec/finders/terraform/states_finder_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_users_with_ml_candidates_metric_spec.rb spec/lib/gitlab/ci/reports/sbom/source_spec.rb spec/lib/gitlab/git/pre_receive_error_spec.rb spec/config/mail_room_spec.rb spec/lib/gitlab/sanitizers/exception_message_spec.rb spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb spec/serializers/deploy_keys/deploy_key_entity_spec.rb spec/views/projects/packages/index.html.haml_spec.rb spec/graphql/mutations/customer_relations/organizations/create_spec.rb spec/lib/gitlab/ci/project_config/source_spec.rb spec/initializers/grpc_patch_spec.rb spec/lib/banzai/filter/service_desk_upload_link_filter_spec.rb spec/presenters/ml/candidates_csv_presenter_spec.rb spec/models/concerns/checksummable_spec.rb spec/services/import/github/gists_import_service_spec.rb spec/services/ci/build_cancel_service_spec.rb spec/services/dependency_proxy/head_manifest_service_spec.rb spec/lib/gitlab/app_text_logger_spec.rb spec/helpers/sourcegraph_helper_spec.rb spec/lib/gitlab/ci/pipeline/chain/remove_unwanted_chat_jobs_spec.rb spec/services/protected_tags/create_service_spec.rb spec/presenters/issue_email_participant_presenter_spec.rb spec/graphql/types/group_invitation_type_spec.rb spec/lib/gitlab/x509/tag_sigstore_spec.rb spec/lib/gitlab/database/no_overrides_for_through_associations_spec.rb spec/workers/jira_connect/sync_builds_worker_spec.rb spec/lib/gitlab/rugged_instrumentation_spec.rb spec/lib/gitlab/ci/artifacts/metrics_spec.rb spec/services/ci/runners/stale_managers_cleanup_service_spec.rb spec/services/ci/queue/pending_builds_strategy_spec.rb spec/workers/ci/pipeline_bridge_status_worker_spec.rb spec/models/description_version_spec.rb spec/lib/gitlab/health_checks/gitaly_check_spec.rb spec/serializers/ci/variable_entity_spec.rb spec/lib/gitlab/ci/ansi2json/parser_spec.rb spec/graphql/types/grafana_integration_type_spec.rb spec/graphql/types/metrics/dashboards/annotation_type_spec.rb spec/workers/ssh_keys/update_last_used_at_worker_spec.rb spec/rubocop/cop/migration/with_lock_retries_disallowed_method_spec.rb spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb spec/helpers/projects/incidents_helper_spec.rb spec/lib/gitlab/git/bundle_file_spec.rb spec/lib/api/helpers/version_spec.rb spec/graphql/types/packages/nuget/metadatum_type_spec.rb spec/workers/gitlab/github_import/attachments/import_issue_worker_spec.rb spec/lib/api/api_spec.rb spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb spec/graphql/types/branch_protections/merge_access_level_type_spec.rb spec/lib/gitlab/kubernetes/role_binding_spec.rb spec/lib/gitlab/ci/ansi2json/state_spec.rb spec/graphql/resolvers/concerns/resolves_ids_spec.rb spec/lib/gitlab/data_builder/archive_trace_spec.rb spec/lib/bulk_imports/projects/graphql/get_repository_query_spec.rb spec/services/product_analytics/build_graph_service_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_project_type_active_metric_spec.rb spec/lib/json_web_token/token_spec.rb spec/lib/api/entities/clusters/agent_spec.rb spec/rubocop/cop/group_public_or_visible_to_user_spec.rb spec/graphql/types/ci/manual_variable_type_spec.rb spec/views/explore/projects/topic.html.haml_spec.rb spec/lib/gitlab/ci/build/hook_spec.rb spec/graphql/types/issuable_sort_enum_spec.rb spec/lib/gitlab/safe_device_detector_spec.rb spec/helpers/one_trust_helper_spec.rb spec/graphql/types/permission_types/issue_spec.rb spec/rubocop/cop/database/rescue_statement_timeout_spec.rb spec/lib/gitlab/no_cache_headers_spec.rb spec/lib/gitlab/email/hook/delivery_metrics_observer_spec.rb spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb spec/lib/gitlab/database/convert_feature_category_to_group_label_spec.rb spec/workers/file_hook_worker_spec.rb spec/lib/api/entities/bulk_imports/entity_spec.rb spec/serializers/personal_access_token_entity_spec.rb spec/helpers/deploy_tokens_helper_spec.rb spec/models/integrations/base_slack_notification_spec.rb spec/graphql/types/work_items/widgets/award_emoji_type_spec.rb spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb spec/models/concerns/taggable_queries_spec.rb spec/initializers/fog_google_https_private_urls_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/incoming_email_encrypted_secrets_enabled_metric_spec.rb spec/models/blob_viewer/gemspec_spec.rb spec/finders/projects_finder_spec.rbKnapsack report generator started!163 ██ ██ █████ ██████ ███ ██ ██ ███ ██ ██████ 164 ██ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ 165 ██ █ ██ ███████ ██████ ██ ██ ██ ██ ██ ██ ██ ██ ███ 166 ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ 167 ███ ███ ██ ██ ██ ██ ██ ████ ██ ██ ████ ██████ 168******************************************************************************169 Your database has a single connection, and single connections were170 deprecated in GitLab 15.9 https://docs.gitlab.com/ee/update/deprecations.html#single-database-connection-is-deprecated.171 Please add a :ci section to your database, following these instructions:173******************************************************************************174/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!175/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!176/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!177/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!178/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!179/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!180/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!181/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!182/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!183/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!184/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!185/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!186/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!187/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!188/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!189/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!190/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!191/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!192/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!193/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!194/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!195/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!196/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!197/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!198/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!199/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!200/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!201/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!202/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!203/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!204/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!205/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!206/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!207/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!208/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!209/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!210/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!211/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!212/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!213/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!214/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!215/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!216/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!217/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!218/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!219/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!220/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!221/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!222/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!223/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!224/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!225/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!226/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!227Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}228Test environment set up in 0.657065742 seconds229NotificationService230 .permitted_actions231 includes public methods232 excludes EXCLUDED_ACTIONS233 excludes protected and private methods234 #async235 returns an Async object with the correct parent236 when receiving a public method237 schedules a MailScheduler::NotificationServiceWorker238 when receiving a private method239 raises NoMethodError240 when receiving a non-existent method241 raises NoMethodError242 Keys243 #new_key244 sends email to key owner245 never emails the ghost user246 does not send email to key owner247 GpgKeys248 #new_gpg_key249 sends email to key owner250 never emails the ghost user251 does not send email to key owner252 AccessToken253 #access_token_created254 sends email to the token owner255 when user is not allowed to receive notifications256 does not send email to the token owner257 #resource_access_token_about_to_expire258 when the resource is a group259 sends emails to the group owners260 when the resource is a project261 sends emails to the group owners262 #access_token_about_to_expire263 sends email to the token owner264 #access_token_expired265 sends email to the token owner266 when user is not allowed to receive notifications267 does not send email to the token owner268 #access_token_revoked269 sends email to the token owner without source270 sends email to the token owner with source271 when user is not allowed to receive notifications272 does not send email to the token owner273 SSH Keys274 #ssh_key_expired275 sends email to the token owner276 when user is not allowed to receive notifications277 does not send email to the token owner278 #ssh_key_expiring_soon279 sends email to the token owner280 when user is not allowed to receive notifications281 does not send email to the token owner282 #unknown_sign_in283 sends email to the user284 #disabled_two_factor285 sends email to the user286 #new_email_address_added287 sends email to the user288 Notes289 issue note290 issue_email_participants291 behaves like no participants are notified292 does not send the email293 behaves like notification with exact metric events294 adds metric event295 do exist and note not confidential296 sends the email297 behaves like notification with exact metric events298 adds metric event299 when service desk is disabled300 behaves like no participants are notified301 does not send the email302 behaves like notification with exact metric events303 adds metric event304 do exist and note is confidential305 behaves like no participants are notified306 does not send the email307 behaves like notification with exact metric events308 adds metric event309 #new_note310 filters out "mentioned in" notes311 with users312 sends emails to recipients313 emails the note author if they've opted into notifications about their activity314 behaves like project emails are disabled315 sends no emails with project emails disabled316 sends emails to someone317 participating318 by note319 is expected not to have enqueued job320 in project that belongs to a group321 which is a top-level group322 behaves like new note notifications323 sends notifications324 behaves like project emails are disabled325 sends no emails with project emails disabled326 sends emails to someone327 which is a subgroup328 overrides child objects with global level329 behaves like new note notifications330 sends notifications331 confidential issue note332 filters out users that can not read the issue333 on project that belongs to subgroup334 when user is group guest member335 does not email guest user336 issue note mention337 #new_note338 notifies parent group members with mention level339 when `disable_all_mention` FF is disabled340 when `@all` mention is used341 behaves like correct team members are notified342 notifies the team members343 filters out "mentioned in" notes344 behaves like project emails are disabled345 sends no emails with project emails disabled346 sends emails to someone347 when note is confidential348 does not notify users that cannot read note349 when users are individually mentioned350 behaves like correct team members are notified351 notifies the team members352 filters out "mentioned in" notes353 behaves like project emails are disabled354 sends no emails with project emails disabled355 sends emails to someone356 when note is confidential357 does not notify users that cannot read note358 when `disable_all_mention` FF is enabled359 when `@all` mention is used360 does not notify users who are not participating or mentioned361 when users are individually mentioned362 behaves like correct team members are notified363 notifies the team members364 filters out "mentioned in" notes365 behaves like project emails are disabled366 sends no emails with project emails disabled367 sends emails to someone368 when note is confidential369 does not notify users that cannot read note370 project snippet note371 #new_note372 when `disable_all_mention` FF is disabled373 when `@all` mention is used374 behaves like correct team members are notified375 notifies the team members376 when users are individually mentioned377 behaves like correct team members are notified378 notifies the team members379 when `disable_all_mention` FF is enabled380 when `@all` mention is used381 does not notify users who are not participating or mentioned382 when users are individually mentioned383 behaves like correct team members are notified384 notifies the team members385 personal snippet note386 #new_note387 notifies the participants388 commit note389 #new_note, #perform_enqueued_jobs390 is expected to eq 0391 is expected to eq 0392 is expected to eq 0393 behaves like project emails are disabled394 sends no emails with project emails disabled395 sends emails to someone396 merge request diff note397 #new_note398 records sent notifications399 behaves like project emails are disabled400 sends no emails with project emails disabled401 sends emails to someone402 design diff note403 design management is enabled404 sends new note notifications405 design management is disabled406 does not notify anyone407 #send_new_release_notifications408 when release author is blocked409 does not send any notification410 when release author is a ghost411 does not send any notification412 when recipients for a new release exist413 notifies the expected users414 Participating project notification settings have priority over group and global settings if available415 custom on group416 does not send an email to user1 when a new issue is created and new_issue is set to nil417 does not send an email to user1 when a new issue is created and new_issue is set to true418 watch on group419 does not send an email420 custom on global, global on group421 does not send an email422 watch on global, global on group423 does not send an email424 Issues425 #new_issue426 notifies the expected users427 properly prioritizes notification reason428 adds "assigned" reason for assignees if any429 emails any mentioned users with the mention level430 emails the author if they've opted into notifications about their activity431 doesn't email the author if they haven't opted into notifications about their activity432 emails subscribers of the issue's labels and adds `subscribed` reason433 when user has an only mention notification setting434 does not send assignee notifications435 behaves like project emails are disabled436 sends no emails with project emails disabled437 sends emails to someone438 confidential issues439 emails subscribers of the issue's labels that can read the issue440 when the author is not allowed to trigger notifications441 because they are blocked442 does not send any notification443 because they are a ghost444 does not send any notification445 #new_mentions_in_issue446 sends no emails when no new mentions are present447 emails new mentions with a watch level higher than mention448 does not email new mentions with a watch level equal to or less than mention449 emails new mentions despite being unsubscribed450 sends the proper notification reason header451 behaves like project emails are disabled452 sends no emails with project emails disabled453 sends emails to someone454 where current_user is blocked455 does not send any notification456 where current_user is a ghost457 does not send any notification458 #reassigned_issue459 emails new assignee460 adds "assigned" reason for new assignee461 emails previous assignee even if they have the "on mention" notif level462 emails new assignee even if they have the "on mention" notif level463 does not email new assignee if they are the current user464 behaves like participating notifications465 behaves like participating by note notification466 emails the participant467 for subgroups468 emails the participant469 behaves like participating by author notification470 emails the participant471 behaves like participating by assignee notification472 emails the participant473 behaves like participating by confidential note notification474 when user is mentioned on confidential note475 only emails authorized users476 behaves like project emails are disabled477 sends no emails with project emails disabled478 sends emails to someone479 #relabeled_issue480 emails the current user if they've opted into notifications about their activity481 doesn't email the current user if they haven't opted into notifications about their activity482 doesn't send email to anyone but subscribers of the given labels483 doesn't send multiple email when a user is subscribed to multiple given labels484 behaves like project emails are disabled485 sends no emails with project emails disabled486 sends emails to someone487 confidential issues488 emails subscribers of the issue's labels that can read the issue489 #removed_milestone on Issue491 behaves like altered milestone notification on issue492 sends the email to the correct people493 behaves like project emails are disabled494 sends no emails with project emails disabled495 sends emails to someone496 behaves like participating by confidential note notification497 when user is mentioned on confidential note498 only emails authorized users499 confidential issues500 emails subscribers of the issue's milestone that can read the issue501 #changed_milestone on Issue503 behaves like altered milestone notification on issue504 sends the email to the correct people505 behaves like project emails are disabled506 sends no emails with project emails disabled507 sends emails to someone508 confidential issues509 emails subscribers of the issue's milestone that can read the issue510 #close_issue511 sends email to issue assignee and issue author512 adds "subscribed" reason to subscriber emails513 behaves like participating notifications514 behaves like participating by note notification515 emails the participant516 for subgroups517 emails the participant518 behaves like participating by author notification519 emails the participant520 behaves like participating by assignee notification521 emails the participant522 behaves like project emails are disabled523 sends no emails with project emails disabled524 sends emails to someone525 behaves like participating by confidential note notification526 when user is mentioned on confidential note527 only emails authorized users528 #reopen_issue529 sends email to issue notification recipients530 behaves like participating notifications531 behaves like participating by note notification532 emails the participant533 for subgroups534 emails the participant535 behaves like participating by author notification536 emails the participant537 behaves like participating by assignee notification538 emails the participant539 behaves like participating by confidential note notification540 when user is mentioned on confidential note541 only emails authorized users542 behaves like project emails are disabled543 sends no emails with project emails disabled544 sends emails to someone545 #issue_moved546 sends email to issue notification recipients547 behaves like participating notifications548 behaves like participating by note notification549 emails the participant550 for subgroups551 emails the participant552 behaves like participating by author notification553 emails the participant554 behaves like participating by assignee notification555 emails the participant556 behaves like participating by confidential note notification557 when user is mentioned on confidential note558 only emails authorized users559 behaves like project emails are disabled560 sends no emails with project emails disabled561 sends emails to someone562 #issue_cloned563 sends email to issue notification recipients564 behaves like participating notifications565 behaves like participating by note notification566 emails the participant567 for subgroups568 emails the participant569 behaves like participating by author notification570 emails the participant571 behaves like participating by assignee notification572 emails the participant573 behaves like participating by confidential note notification574 when user is mentioned on confidential note575 only emails authorized users576 behaves like project emails are disabled577 sends no emails with project emails disabled578 sends emails to someone579 #issue_due580 sends email to issue notification recipients, excluding watchers581 sends the email from the author582 behaves like participating notifications583 behaves like participating by note notification584 emails the participant585 for subgroups586 emails the participant587 behaves like participating by author notification588 emails the participant589 behaves like participating by assignee notification590 emails the participant591 behaves like participating by confidential note notification592 when user is mentioned on confidential note593 only emails authorized users594 behaves like project emails are disabled595 sends no emails with project emails disabled596 sends emails to someone597 Merge Requests598 #new_merge_request599 is expected to eq 0600 adds "assigned" reason for assignee, if any601 emails any mentioned users with the mention level602 emails the author if they've opted into notifications about their activity603 doesn't email the author if they haven't opted into notifications about their activity604 emails subscribers of the merge request's labels605 behaves like project emails are disabled606 sends no emails with project emails disabled607 sends emails to someone608 Approvals609 #approve_mr610 will notify the author, subscribers, and assigned users611 #unapprove_mr612 will notify the author, subscribers, and assigned users613 participating614 behaves like participating by assignee notification615 emails the participant616 behaves like participating by note notification617 emails the participant618 for subgroups619 emails the participant620 by author621 is expected to eq 0622 when the author is not allowed to trigger notifications623 because they are blocked624 behaves like is not able to send notifications625 does not send any notification626 because they are a ghost627 behaves like is not able to send notifications628 does not send any notification629 #new_mentions_in_merge_request630 sends no emails when no new mentions are present631 emails new mentions with a watch level higher than mention632 does not email new mentions with a watch level equal to or less than mention633 emails new mentions despite being unsubscribed634 sends the proper notification reason header635 behaves like project emails are disabled636 sends no emails with project emails disabled637 sends emails to someone638 where current_user is blocked639 does not send any notification640 where current_user is a ghost641 does not send any notification642 #reassigned_merge_request643 is expected to eq 0644 adds "assigned" reason for new assignee645 behaves like participating notifications646 behaves like participating by note notification647 emails the participant648 for subgroups649 emails the participant650 behaves like participating by author notification651 emails the participant652 behaves like participating by assignee notification653 emails the participant654 behaves like project emails are disabled655 sends no emails with project emails disabled656 sends emails to someone657 #changed_reviewer_of_merge_request658 sends emails to relevant users only659 adds "review requested" reason for new reviewer660 participating notifications with reviewers661 behaves like participating notifications662 behaves like participating by note notification663 emails the participant664 for subgroups665 emails the participant666 behaves like participating by author notification667 emails the participant668 behaves like participating by assignee notification669 emails the participant670 behaves like participating by reviewer notification671 emails the participant672 behaves like project emails are disabled673 sends no emails with project emails disabled674 sends emails to someone675 #change_in_merge_request_draft_status676 sends emails to relevant users only677 behaves like participating notifications678 behaves like participating by note notification679 emails the participant680 for subgroups681 emails the participant682 behaves like participating by author notification683 emails the participant684 behaves like participating by assignee notification685 emails the participant686 behaves like project emails are disabled687 sends no emails with project emails disabled688 sends emails to someone689 #push_to_merge_request690 is expected to eq 0691 triggers push_to_merge_request_email with corresponding email692 number_of_new_commits: 0, number_of_new_commits_displayed: 0693 triggers the corresponding mailer method with list of stripped commits694 number_of_new_commits: 18, number_of_new_commits_displayed: 18695 triggers the corresponding mailer method with list of stripped commits696 number_of_new_commits: 19, number_of_new_commits_displayed: 19697 triggers the corresponding mailer method with list of stripped commits698 number_of_new_commits: 20, number_of_new_commits_displayed: 20699 triggers the corresponding mailer method with list of stripped commits700 number_of_new_commits: 21, number_of_new_commits_displayed: 20701 triggers the corresponding mailer method with list of stripped commits702 number_of_new_commits: 22, number_of_new_commits_displayed: 20703 triggers the corresponding mailer method with list of stripped commits704 there is only one existing commit705 triggers corresponding mailer method with only one existing commit706 behaves like participating notifications707 behaves like participating by note notification708 emails the participant709 for subgroups710 emails the participant711 behaves like participating by author notification712 emails the participant713 behaves like participating by assignee notification714 emails the participant715 behaves like project emails are disabled716 sends no emails with project emails disabled717 sends emails to someone718 #relabel_merge_request719 doesn't send email to anyone but subscribers of the given labels720 behaves like project emails are disabled721 sends no emails with project emails disabled722 sends emails to someone723 #removed_milestone on MergeRequest724 behaves like altered milestone notification on merge request725 sends the email to the correct people726 behaves like project emails are disabled727 sends no emails with project emails disabled728 sends emails to someone729 #changed_milestone on MergeRequest730 behaves like altered milestone notification on merge request731 sends the email to the correct people732 behaves like project emails are disabled733 sends no emails with project emails disabled734 sends emails to someone735 #merge_request_unmergeable736 sends email to merge request author737 behaves like project emails are disabled738 sends no emails with project emails disabled739 sends emails to someone740 when merge_when_pipeline_succeeds is true741 sends email to merge request author and merge_user742 #closed_merge_request743 is expected to eq 0744 behaves like participating notifications745 behaves like participating by note notification746 emails the participant747 for subgroups748 emails the participant749 behaves like participating by author notification750 emails the participant751 behaves like participating by assignee notification752 emails the participant753 behaves like project emails are disabled754 sends no emails with project emails disabled755 sends emails to someone756 #merged_merge_request757 is expected to eq 0758 notifies the merger when the pipeline succeeds is true759 does not notify the merger when the pipeline succeeds is false760 notifies the merger when the pipeline succeeds is false but they've opted into notifications about their activity761 behaves like participating notifications762 behaves like participating by note notification763 emails the participant764 for subgroups765 emails the participant766 behaves like participating by author notification767 emails the participant768 behaves like participating by assignee notification769 emails the participant770 behaves like project emails are disabled771 sends no emails with project emails disabled772 sends emails to someone773 #reopen_merge_request774 is expected to eq 0775 behaves like participating notifications776 behaves like participating by note notification777 emails the participant778 for subgroups779 emails the participant780 behaves like participating by author notification781 emails the participant782 behaves like participating by assignee notification783 emails the participant784 behaves like project emails are disabled785 sends no emails with project emails disabled786 sends emails to someone787 #resolve_all_discussions788 is expected to eq 0789 behaves like participating notifications790 behaves like participating by note notification791 emails the participant792 for subgroups793 emails the participant794 behaves like participating by author notification795 emails the participant796 behaves like participating by assignee notification797 emails the participant798 behaves like project emails are disabled799 sends no emails with project emails disabled800 sends emails to someone801 #merge_when_pipeline_succeeds802 send notification that merge will happen when pipeline succeeds803 does not send notification if the custom event is disabled804 sends notification to participants even if the custom event is disabled805 behaves like participating notifications806 behaves like participating by note notification807 emails the participant808 for subgroups809 emails the participant810 behaves like participating by author notification811 emails the participant812 behaves like participating by assignee notification813 emails the participant814 behaves like project emails are disabled815 sends no emails with project emails disabled816 sends emails to someone817 #review_requested_of_merge_request818 sends email to reviewer819 deliver email immediately820 adds "review requested" reason for new reviewer821 behaves like project emails are disabled822 sends no emails with project emails disabled823 sends emails to someone824 Projects825 #project_was_moved826 when notifications are disabled827 does not send a notification828 with users at both project and group level829 notifies the expected users830 behaves like project emails are disabled831 sends no emails with project emails disabled832 sends emails to someone833 users not having access to the new location834 does not send email835 user with notifications disabled836 #project_exported837 is expected to be empty838 #project_not_exported839 is expected to be empty840 user with notifications enabled841 #project_exported842 is expected to eq 1843 behaves like project emails are disabled844 sends no emails with project emails disabled845 sends emails to someone846 #project_not_exported847 is expected to eq 1848 behaves like project emails are disabled849 sends no emails with project emails disabled850 sends emails to someone851 #invite_member_reminder852 calls the Notify.invite_member_reminder method with the right params853 sends exactly one email854 #new_instance_access_request855 sends notification only to a maximum of ten most recently active instance admins856 #user_admin_rejection857 sends the user a rejection email858 #user_deactivated859 sends the user an email860 GroupMember861 #new_access_request862 recipients863 sends notification only to group owners864 behaves like group emails are disabled865 sends no emails with group emails disabled866 sends emails to someone867 behaves like sends notification only to a maximum of ten, most recently active group owners868 limit notification emails869 sends notification only to a maximum of ten, most recently active group owners870 #decline_invite871 behaves like declines the invite872 is expected to change `ActionMailer::Base.deliveries.size` by 1873 #new_group_member874 sends a notification875 when notifications are disabled876 does not send a notification877 behaves like group emails are disabled878 sends no emails with group emails disabled879 sends emails to someone880 #updated_group_member_expiration881 emails the user that their group membership expiry has changed882 ProjectMember883 #new_access_request884 for a project in a user namespace885 recipients886 sends notification only to project maintainers887 behaves like project emails are disabled888 sends no emails with project emails disabled889 sends emails to someone890 behaves like sends notification only to a maximum of ten, most recently active project maintainers891 limit notification emails892 sends notification only to a maximum of ten, most recently active project maintainers893 for a project in a group894 when the project has no maintainers895 when the group has at least one owner896 recipients897 sends notifications to the group owners898 behaves like sends notification only to a maximum of ten, most recently active group owners899 limit notification emails900 sends notification only to a maximum of ten, most recently active group owners901 when the group does not have any owners902 recipients903 does not send any notifications904 when the project has maintainers905 recipients906 sends notifications only to project maintainers907 behaves like sends notification only to a maximum of ten, most recently active project maintainers908 limit notification emails909 sends notification only to a maximum of ten, most recently active project maintainers910 #decline_invite911 behaves like declines the invite912 is expected to change `ActionMailer::Base.deliveries.size` by 1913 #new_project_member914 is expected to eq 1915 behaves like project emails are disabled916 sends no emails with project emails disabled917 sends emails to someone918 when notifications are disabled919 is expected to be empty920 #member_about_to_expire921 with group member922 emails the user that their group membership will be expired923 with project member924 emails the user that their project membership will be expired925 guest user in private project926 filters out guests when new note is created927 filters out guests when new merge request is created928 filters out guests when merge request is closed929 filters out guests when merge request is reopened930 filters out guests when merge request is merged931 Pipelines932 #pipeline_finished933 with a successful pipeline934 when the creator has default settings935 notifies nobody936 when the creator has watch set937 notifies nobody938 when the creator has custom notifications, but without any set939 notifies nobody940 when the creator has custom notifications disabled941 notifies nobody942 when the creator has custom notifications enabled943 emails only the creator944 behaves like project emails are disabled945 sends no emails with project emails disabled946 sends emails to someone947 when the creator has group notification email set948 sends to group notification email949 with a failed pipeline950 when the creator has no custom notification set951 emails only the creator952 behaves like project emails are disabled953 sends no emails with project emails disabled954 sends emails to someone955 when the creator has group notification email set956 sends to group notification email957 when the creator has watch set958 emails only the creator959 when the creator has custom notifications, but without any set960 emails only the creator961 when the creator has custom notifications disabled962 notifies nobody963 when the creator has custom notifications set964 emails only the creator965 when the creator has no read_build access966 does not send emails967 with a fixed pipeline968 when the creator has no custom notification set969 emails only the creator970 behaves like project emails are disabled971 sends no emails with project emails disabled972 sends emails to someone973 when the creator has group notification email set974 sends to group notification email975 when the creator has watch set976 emails only the creator977 when the creator has custom notifications, but without any set978 emails only the creator979 when the creator has custom notifications disabled980 notifies nobody981 when the creator has custom notifications set982 emails only the creator983 Pages domains984 #pages_domain_enabled985 emails current watching maintainers and owners986 emails nobody if the project is missing987 behaves like project emails are disabled988 sends no emails with project emails disabled989 sends emails to someone990 #pages_domain_disabled991 emails current watching maintainers and owners992 emails nobody if the project is missing993 behaves like project emails are disabled994 sends no emails with project emails disabled995 sends emails to someone996 #pages_domain_verification_succeeded997 emails current watching maintainers and owners998 emails nobody if the project is missing999 behaves like project emails are disabled1000 sends no emails with project emails disabled1001 sends emails to someone1002 #pages_domain_verification_failed1003 emails current watching maintainers and owners1004 emails nobody if the project is missing1005 behaves like project emails are disabled1006 sends no emails with project emails disabled1007 sends emails to someone1008 #pages_domain_auto_ssl_failed1009 emails current watching maintainers and owners1010 emails nobody if the project is missing1011 behaves like project emails are disabled1012 sends no emails with project emails disabled1013 sends emails to someone1014 Auto DevOps notifications1015 #autodevops_disabled1016 emails project owner and user that triggered the pipeline1017 behaves like project emails are disabled1018 sends no emails with project emails disabled1019 sends emails to someone1020 Repository cleanup1021 #repository_cleanup_success1022 emails the specified user only1023 behaves like project emails are disabled1024 sends no emails with project emails disabled1025 sends emails to someone1026 #repository_cleanup_failure1027 emails the specified user only1028 behaves like project emails are disabled1029 sends no emails with project emails disabled1030 sends emails to someone1031 Remote mirror notifications1032 #remote_mirror_update_failed1033 emails current watching maintainers and owners1034 behaves like project emails are disabled1035 sends no emails with project emails disabled1036 sends emails to someone1037 with external authorization service1038 sends email when the service is not enabled1039 when the service is enabled1040 does not send an email1041 with admin user1042 when admin mode is enabled1043 still delivers email to admins1044 when admin mode is disabled1045 does not send an email1046 #prometheus_alerts_fired1047 sends the email to owners and masters1048 behaves like project emails are disabled1049 sends no emails with project emails disabled1050 sends emails to someone1051 #new_review1052 sends emails1053 behaves like project emails are disabled1054 sends no emails with project emails disabled1055 sends emails to someone1056 #inactive_project_deletion_warning1057 sends email to project owners and maintainers1058VisibilityLevelHelper1059 visibility_icon_description1060 used with a Project1061 delegates projects to #project_visibility_icon_description1062 used with a ProjectPresenter1063 delegates projects to #project_visibility_icon_description1064 used with a Group1065 delegates groups to #group_visibility_icon_description1066 visibility_level_label1067 level_value: 0, level_name: "Private"1068 returns the name of the visibility level1069 level_value: 10, level_name: "Internal"1070 returns the name of the visibility level1071 level_value: 20, level_name: "Public"1072 returns the name of the visibility level1073 visibility_level_description1074 used with a Project1075 returns different project related descriptions depending on visibility level1076 used with a Group1077 returns different group related descriptions depending on visibility level1078 returns default description for public group1079 when application setting `should_check_namespace_plan` is true1080 returns updated description for public visibility option in group general settings1081 disallowed_visibility_level?1082 forks1083 disallows levels1084 non-forked project1085 disallows levels1086 group1087 disallows levels1088 sub-group1089 disallows levels1090 snippet1091 disallows levels1092 selected_visibility_level1093 requested_level: 20, max_allowed: 20, global_default_level: 20, restricted_levels: [], expected: 201094 provides correct visibility level for forked project1095 provides correct visibility level for project in group1096 requested_level: 20, max_allowed: 20, global_default_level: 20, restricted_levels: [20], expected: 101097 provides correct visibility level for forked project1098 provides correct visibility level for project in group1099 requested_level: 10, max_allowed: 20, global_default_level: 20, restricted_levels: [], expected: 101100 provides correct visibility level for forked project1101 provides correct visibility level for project in group1102 requested_level: 10, max_allowed: 0, global_default_level: 0, restricted_levels: [], expected: 01103 provides correct visibility level for forked project1104EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1105EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1106 provides correct visibility level for project in group1107 requested_level: 0, max_allowed: 20, global_default_level: 20, restricted_levels: [], expected: 01108 provides correct visibility level for forked project1109 provides correct visibility level for project in group1110 requested_level: 20, max_allowed: 0, global_default_level: 10, restricted_levels: [], expected: 01111 provides correct visibility level for forked project1112EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1113EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1114 provides correct visibility level for project in group1115 requested_level: 20, max_allowed: 10, global_default_level: 20, restricted_levels: [], expected: 101116 provides correct visibility level for forked project1117EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1118EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1119 provides correct visibility level for project in group1120 requested_level: 20, max_allowed: 0, global_default_level: 20, restricted_levels: [], expected: 01121 provides correct visibility level for forked project1122EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1123EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1124 provides correct visibility level for project in group1125 requested_level: 20, max_allowed: 10, global_default_level: 10, restricted_levels: [], expected: 101126 provides correct visibility level for forked project1127EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1128EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar1129 provides correct visibility level for project in group1130 requested_level: 20, max_allowed: 20, global_default_level: 10, restricted_levels: [], expected: 201131 provides correct visibility level for forked project1132 provides correct visibility level for project in group1133 #available_visibility_levels1134 behaves like available visibility level1135 excludes disallowed visibility levels1136 restricted_visibility_levels: [], expected: [0, 10, 20]1137 is expected to eq [0, 10, 20]1138 restricted_visibility_levels: [0], expected: [10, 20]1139 is expected to eq [10, 20]1140 restricted_visibility_levels: [0, 10], expected: [20]1141 is expected to eq [20]1142 restricted_visibility_levels: [0, 20], expected: [10]1143 is expected to eq [10]1144 restricted_visibility_levels: [10], expected: [0, 20]1145 is expected to eq [0, 20]1146 restricted_visibility_levels: [10, 0], expected: [20]1147 is expected to eq [20]1148 restricted_visibility_levels: [10, 20], expected: [0]1149 is expected to eq [0]1150 restricted_visibility_levels: [20], expected: [0, 10]1151 is expected to eq [0, 10]1152 restricted_visibility_levels: [20, 0], expected: [10]1153 is expected to eq [10]1154 restricted_visibility_levels: [20, 10], expected: [0]1155 is expected to eq [0]1156 behaves like available visibility level1157 excludes disallowed visibility levels1158 restricted_visibility_levels: [], expected: [0, 10, 20]1159 is expected to eq [0, 10, 20]1160 restricted_visibility_levels: [0], expected: [10, 20]1161 is expected to eq [10, 20]1162 restricted_visibility_levels: [0, 10], expected: [20]1163 is expected to eq [20]1164 restricted_visibility_levels: [0, 20], expected: [10]1165 is expected to eq [10]1166 restricted_visibility_levels: [10], expected: [0, 20]1167 is expected to eq [0, 20]1168 restricted_visibility_levels: [10, 0], expected: [20]1169 is expected to eq [20]1170 restricted_visibility_levels: [10, 20], expected: [0]1171 is expected to eq [0]1172 restricted_visibility_levels: [20], expected: [0, 10]1173 is expected to eq [0, 10]1174 restricted_visibility_levels: [20, 0], expected: [10]1175 is expected to eq [10]1176 restricted_visibility_levels: [20, 10], expected: [0]1177 is expected to eq [0]1178 behaves like available visibility level1179 excludes disallowed visibility levels1180 restricted_visibility_levels: [], expected: [0, 10, 20]1181 is expected to eq [0, 10, 20]1182 restricted_visibility_levels: [0], expected: [10, 20]1183 is expected to eq [10, 20]1184 restricted_visibility_levels: [0, 10], expected: [20]1185 is expected to eq [20]1186 restricted_visibility_levels: [0, 20], expected: [10]1187 is expected to eq [10]1188 restricted_visibility_levels: [10], expected: [0, 20]1189 is expected to eq [0, 20]1190 restricted_visibility_levels: [10, 0], expected: [20]1191 is expected to eq [20]1192 restricted_visibility_levels: [10, 20], expected: [0]1193 is expected to eq [0]1194 restricted_visibility_levels: [20], expected: [0, 10]1195 is expected to eq [0, 10]1196 restricted_visibility_levels: [20, 0], expected: [10]1197 is expected to eq [10]1198 restricted_visibility_levels: [20, 10], expected: [0]1199 is expected to eq [0]1200 behaves like available visibility level1201 excludes disallowed visibility levels1202 restricted_visibility_levels: [], expected: [0, 10, 20]1203 is expected to eq [0, 10, 20]1204 restricted_visibility_levels: [0], expected: [10, 20]1205 is expected to eq [10, 20]1206 restricted_visibility_levels: [0, 10], expected: [20]1207 is expected to eq [20]1208 restricted_visibility_levels: [0, 20], expected: [10]1209 is expected to eq [10]1210 restricted_visibility_levels: [10], expected: [0, 20]1211 is expected to eq [0, 20]1212 restricted_visibility_levels: [10, 0], expected: [20]1213 is expected to eq [20]1214 restricted_visibility_levels: [10, 20], expected: [0]1215 is expected to eq [0]1216 restricted_visibility_levels: [20], expected: [0, 10]1217 is expected to eq [0, 10]1218 restricted_visibility_levels: [20, 0], expected: [10]1219 is expected to eq [10]1220 restricted_visibility_levels: [20, 10], expected: [0]1221 is expected to eq [0]1222 #snippets_selected_visibility_level1223 returns the selected visibility level1224 fallbacks using the lowest available visibility level when selected level isn't available1225 multiple_visibility_levels_restricted?1226 restricted_visibility_levels: [20], expected: false1227 is expected to eq false1228 restricted_visibility_levels: [20, 10], expected: true1229 is expected to eq true1230 restricted_visibility_levels: [20, 10, 0], expected: true1231 is expected to eq true1232 all_visibility_levels_restricted?1233 restricted_visibility_levels: [20], expected: false1234 is expected to eq false1235 restricted_visibility_levels: [20, 10], expected: false1236 is expected to eq false1237 restricted_visibility_levels: [0, 10, 20], expected: true1238 is expected to eq true1239 #visibility_level_options1240 returns the desired mapping1241PlanLimits1242 validations1243 is expected to validate that :notification_limit looks like an integer greater than or equal to 01244 is expected to validate that :enforcement_limit looks like an integer greater than or equal to 01245 limits_history1246 when does not match the JSON schema1247 does not allow invalid json1248 when matches the JSON schema1249 allows valid json1250 #exceeded?1251 when given limit subject is an integer1252 behaves like comparing limits1253 when limit for given name results to a disabled value1254 is expected to eq false1255 when limit for given name results to a non-disabled value1256 and given count is smaller than limit1257 is expected to eq false1258 and given count is equal to the limit1259 is expected to eq true1260 and given count is greater than the limit1261 is expected to eq true1262 when given limit subject is an ActiveRecord::Relation1263 behaves like comparing limits1264 when limit for given name results to a disabled value1265 is expected to eq false1266 when limit for given name results to a non-disabled value1267 and given count is smaller than limit1268 is expected to eq false1269 and given count is equal to the limit1270 is expected to eq true1271 and given count is greater than the limit1272 is expected to eq true1273 when given limit subject is something else1274 raises an error1275 #limit_for1276 when given limit name does not exist1277 raises an error1278 when given limit name is disabled1279 is expected to eq nil1280 and alternate_limit is a non-zero integer1281 is expected to eq 11282 and alternate_limit is zero1283 is expected to eq nil1284 and alternate_limit is a proc that returns non-zero integer1285 is expected to eq 11286 and alternate_limit is a proc that returns zero1287 is expected to eq nil1288 and alternate_limit is a proc that returns nil1289 is expected to eq nil1290 when given limit name is enabled1291 and alternate_limit is a non-zero integer that is bigger than the plan limit1292 is expected to eq 21293 and alternate_limit is a non-zero integer that is smaller than the plan limit1294 is expected to eq 11295 and alternate_limit is zero1296 is expected to eq 21297 and alternate_limit is a proc that returns non-zero integer that is bigger than the plan limit1298 is expected to eq 21299 and alternate_limit is a proc that returns non-zero integer that is smaller than the plan limit1300 is expected to eq 11301 and alternate_limit is a proc that returns zero1302 is expected to eq 21303 and alternate_limit is a proc that returns nil1304 is expected to eq 21305 validates default values1306 has positive values for enabled limits1307 has zero values for disabled limits1308 #dashboard_storage_limit_enabled?1309 returns false1310 #format_limits_history1311 formats a single attribute change1312 does not format limits_history for non-allowed attributes1313 does not format attributes for values that do not change1314 formats multiple attribute changes1315 with previous history available1316 appends to it1317CI YML Templates1318 that support autodevops1319 when including available templates in a CI YAML configuration1320 template_name: "5-Minute-Production-App.gitlab-ci.yml"1321 is expected to be valid1322 require default stages to be included1323 template_name: "Android.gitlab-ci.yml"1324 is expected to be valid1325 require default stages to be included1326 template_name: "Android-Fastlane.gitlab-ci.yml"1327 is expected to be valid1328 require default stages to be included1329 template_name: "Auto-DevOps.gitlab-ci.yml"1330 is expected to be valid1331 require default stages to be included1332 template_name: "Bash.gitlab-ci.yml"1333 is expected to be valid1334 require default stages to be included1335 template_name: "C++.gitlab-ci.yml"1336 is expected to be valid1337 require default stages to be included1338 template_name: "Chef.gitlab-ci.yml"1339 is expected to be valid1340 require default stages to be included1341 template_name: "Clojure.gitlab-ci.yml"1342 is expected to be valid1343 require default stages to be included1344 template_name: "Code-Quality.gitlab-ci.yml"1345 is expected to be valid1346 require default stages to be included1347 template_name: "Composer.gitlab-ci.yml"1348 is expected to be valid1349 require default stages to be included1350 template_name: "Cosign.gitlab-ci.yml"1351 is expected to be valid1352 require default stages to be included1353 template_name: "Crystal.gitlab-ci.yml"1354 is expected to be valid1355 require default stages to be included1356 template_name: "Dart.gitlab-ci.yml"1357 is expected to be valid1358 require default stages to be included1359 template_name: "Deploy-ECS.gitlab-ci.yml"1360 is expected to be valid1361 require default stages to be included1362 template_name: "Django.gitlab-ci.yml"1363 is expected to be valid1364 require default stages to be included1365 template_name: "Docker.gitlab-ci.yml"1366 is expected to be valid1367 require default stages to be included1368 template_name: "Elixir.gitlab-ci.yml"1369 is expected to be valid1370 require default stages to be included1371 template_name: "Flutter.gitlab-ci.yml"1372 is expected to be valid1373 require default stages to be included1374 template_name: "Getting-Started.gitlab-ci.yml"1375 is expected to be valid1376 require default stages to be included1377 template_name: "Go.gitlab-ci.yml"1378 is expected to be valid1379 require default stages to be included1380 template_name: "Gradle.gitlab-ci.yml"1381 is expected to be valid1382 require default stages to be included1383 template_name: "Grails.gitlab-ci.yml"1384 is expected to be valid1385 require default stages to be included1386 template_name: "Indeni.Cloudrail.gitlab-ci.yml"1387 is expected to be valid1388 require default stages to be included1389 template_name: "Julia.gitlab-ci.yml"1390 is expected to be valid1391 require default stages to be included1392 template_name: "Kaniko.gitlab-ci.yml"1393 is expected to be valid1394 require default stages to be included1395 template_name: "Katalon.gitlab-ci.yml"1396 is expected to be valid1397 require default stages to be included1398 template_name: "LaTeX.gitlab-ci.yml"1399 is expected to be valid1400 require default stages to be included1401 template_name: "Laravel.gitlab-ci.yml"1402 is expected to be valid1403 require default stages to be included1404 template_name: "MATLAB.gitlab-ci.yml"1405 is expected to be valid1406 require default stages to be included1407 template_name: "Maven.gitlab-ci.yml"1408 is expected to be valid1409 require default stages to be included1410 template_name: "Mono.gitlab-ci.yml"1411 is expected to be valid1412 require default stages to be included1413 template_name: "Nodejs.gitlab-ci.yml"1414 is expected to be valid1415 require default stages to be included1416 template_name: "OpenShift.gitlab-ci.yml"1417 is expected to be valid1418 require default stages to be included1419 template_name: "PHP.gitlab-ci.yml"1420 is expected to be valid1421 require default stages to be included1422 template_name: "Packer.gitlab-ci.yml"1423 is expected to be valid1424 require default stages to be included1425 template_name: "Python.gitlab-ci.yml"1426 is expected to be valid1427 require default stages to be included1428 template_name: "Qualys-IaC-Security.gitlab-ci.yml"1429 is expected to be valid1430 require default stages to be included1431 template_name: "Ruby.gitlab-ci.yml"1432 is expected to be valid1433 require default stages to be included1434 template_name: "Rust.gitlab-ci.yml"1435 is expected to be valid1436 require default stages to be included1437 template_name: "Scala.gitlab-ci.yml"1438 is expected to be valid1439 require default stages to be included1440 template_name: "Swift.gitlab-ci.yml"1441 is expected to be valid1442 require default stages to be included1443 template_name: "Terraform.gitlab-ci.yml"1444 is expected to be valid1445 require default stages to be included1446 template_name: "Terraform-Module.gitlab-ci.yml"1447 is expected to be valid1448 require default stages to be included1449 template_name: "dotNET.gitlab-ci.yml"1450 is expected to be valid1451 require default stages to be included1452 template_name: "dotNET-Core.gitlab-ci.yml"1453 is expected to be valid1454 require default stages to be included1455 template_name: "iOS-Fastlane.gitlab-ci.yml"1456 is expected to be valid1457 require default stages to be included1458 template_name: "liquibase.gitlab-ci.yml"1459 is expected to be valid1460 require default stages to be included1461 template_name: "npm.gitlab-ci.yml"1462 is expected to be valid1463 require default stages to be included1464 template_name: "Pages/Brunch.gitlab-ci.yml"1465 is expected to be valid1466 require default stages to be included1467 template_name: "Pages/Doxygen.gitlab-ci.yml"1468 is expected to be valid1469 require default stages to be included1470 template_name: "Pages/Gatsby.gitlab-ci.yml"1471 is expected to be valid1472 require default stages to be included1473 template_name: "Pages/HTML.gitlab-ci.yml"1474 is expected to be valid1475 require default stages to be included1476 template_name: "Pages/Harp.gitlab-ci.yml"1477 is expected to be valid1478 require default stages to be included1479 template_name: "Pages/Hexo.gitlab-ci.yml"1480 is expected to be valid1481 require default stages to be included1482 template_name: "Pages/Hugo.gitlab-ci.yml"1483 is expected to be valid1484 require default stages to be included1485 template_name: "Pages/Hyde.gitlab-ci.yml"1486 is expected to be valid1487 require default stages to be included1488 template_name: "Pages/JBake.gitlab-ci.yml"1489 is expected to be valid1490 require default stages to be included1491 template_name: "Pages/Jekyll.gitlab-ci.yml"1492 is expected to be valid1493 require default stages to be included1494 template_name: "Pages/Jigsaw.gitlab-ci.yml"1495 is expected to be valid1496 require default stages to be included1497 template_name: "Pages/Lektor.gitlab-ci.yml"1498 is expected to be valid1499 require default stages to be included1500 template_name: "Pages/Metalsmith.gitlab-ci.yml"1501 is expected to be valid1502 require default stages to be included1503 template_name: "Pages/Middleman.gitlab-ci.yml"1504 is expected to be valid1505 require default stages to be included1506 template_name: "Pages/Nanoc.gitlab-ci.yml"1507 is expected to be valid1508 require default stages to be included1509 template_name: "Pages/Octopress.gitlab-ci.yml"1510 is expected to be valid1511 require default stages to be included1512 template_name: "Pages/Pelican.gitlab-ci.yml"1513 is expected to be valid1514 require default stages to be included1515 template_name: "Pages/SwaggerUI.gitlab-ci.yml"1516 is expected to be valid1517 require default stages to be included1518 template_name: "Pages/Zola.gitlab-ci.yml"1519 is expected to be valid1520 require default stages to be included1521 template_name: "Verify/Accessibility.gitlab-ci.yml"1522 is expected to be valid1523 require default stages to be included1524 template_name: "Verify/Browser-Performance.gitlab-ci.yml"1525 is expected to be valid1526 require default stages to be included1527 template_name: "Verify/FailFast.gitlab-ci.yml"1528 is expected to be valid1529 require default stages to be included1530 template_name: "Verify/Load-Performance-Testing.gitlab-ci.yml"1531 is expected to be valid1532 require default stages to be included1533 template_name: "Security/API-Discovery.gitlab-ci.yml"1534 is expected to be valid1535 require default stages to be included1536 template_name: "Security/Container-Scanning.gitlab-ci.yml"1537 is expected to be valid1538 require default stages to be included1539 template_name: "Security/Coverage-Fuzzing.gitlab-ci.yml"1540 is expected to be valid1541 require default stages to be included1542 template_name: "Security/DAST-On-Demand-API-Scan.gitlab-ci.yml"1543 is expected to be valid1544 require default stages to be included1545 template_name: "Security/DAST-On-Demand-Scan.gitlab-ci.yml"1546 is expected to be valid1547 require default stages to be included1548 template_name: "Security/DAST-Runner-Validation.gitlab-ci.yml"1549 is expected to be valid1550 require default stages to be included1551 template_name: "Security/Dependency-Scanning.gitlab-ci.yml"1552 is expected to be valid1553 require default stages to be included1554 template_name: "Security/Fortify-FoD-sast.gitlab-ci.yml"1555 is expected to be valid1556 require default stages to be included1557 template_name: "Security/License-Scanning.gitlab-ci.yml"1558 is expected to be valid1559 require default stages to be included1560 template_name: "Security/SAST.gitlab-ci.yml"1561 is expected to be valid1562 require default stages to be included1563 template_name: "Security/SAST-IaC.gitlab-ci.yml"1564 is expected to be valid1565 require default stages to be included1566 template_name: "Security/Secret-Detection.gitlab-ci.yml"1567 is expected to be valid1568 require default stages to be included1569 template_name: "Security/Secure-Binaries.gitlab-ci.yml"1570 is expected to be valid1571 require default stages to be included1572 that do not support autodevops1573 when DAST API template1574 with default stages1575 is expected not to be valid1576 with defined stages1577 is expected to be valid1578 require default stages to be included1579 when API Fuzzing template1580 with default stages1581 is expected not to be valid1582 with defined stages1583 is expected to be valid1584 require default stages to be included1585GroupChildEntity1586 for a project1587 has the correct type1588 includes the star count1589 has the correct edit path1590 includes the last activity at1591 behaves like group child json1592 renders json1593 includes id1594 includes full_name1595 includes avatar_url1596 includes name1597 includes description1598 includes markdown_description1599 includes visibility1600 includes type1601 includes can_edit1602 includes visibility1603 includes permission1604 includes relative_path1605 for a group1606 has the correct type1607 counts projects and subgroups as children1608 includes children_count1609 includes leave_path1610 includes parent_id1611 includes number_users_with_delimiter1612 includes project_count1613 includes subgroup_count1614 allows an owner to leave when there is another one1615 allows an owner to delete the group1616 allows admin to delete the group1617 disallows a maintainer to delete the group1618 has the correct edit path1619 emoji in description1620 has the correct markdown_description1621 behaves like group child json1622 renders json1623 includes id1624 includes full_name1625 includes avatar_url1626 includes name1627 includes description1628 includes markdown_description1629 includes visibility1630 includes type1631 includes can_edit1632 includes visibility1633 includes permission1634 includes relative_path1635 for a private group1636 user is member of the group1637 includes the counts1638 user is not a member of the group1639 does not include the counts1640 user is only a member of a project in the group1641 does not include the counts1642 for a project with external authorization enabled1643 does not hit the external authorization service1644gitlab:db namespace rake task1645 mark_migration_complete1646 with a single database1647 marks the migration complete on the given database1648 with multiple databases1649 marks the migration complete on each database (PENDING: Skipping because ci is shared or doesn't not exist)1650 when the single database task is used1651 marks the migration complete for the given database (PENDING: Skipping because ci is shared or doesn't not exist)1652 with geo configured1653 does not create a task for the geo database (PENDING: Skipping because ci is shared or doesn't not exist)1654 when the migration is already marked complete1655 prints a warning message1656 when an invalid version is given1657 prints an error and exits1658 configure1659 with a single database1660 when geo is not configured1661 when the schema is already loaded1662 migrates the database1663 when the schema is not loaded1664 loads the schema and seeds the database1665 when only a single table is present1666 loads the schema and seeds the database1667 when loading the schema fails1668 does not seed the database1669 SKIP_POST_DEPLOYMENT_MIGRATIONS environment variable set1670 when the schema is not loaded1671 adds the post deployment migration path before schema load1672 when the schema is loaded1673 ignores post deployment migrations1674 when geo is configured1675 when the main database is also configured1676 only configures the main database (PENDING: Skipping because the geo database is not configured)1677 with multiple databases1678 when geo is not configured1679 when no database has the schema loaded1680 loads the schema and seeds all the databases (PENDING: Skipping because ci is shared or doesn't not exist)1681 when both databases have the schema loaded1682 migrates the databases without seeding them (PENDING: Skipping because ci is shared or doesn't not exist)1683 when only one database has the schema loaded1684 migrates and loads the schema correctly, without seeding the databases (PENDING: Skipping because ci is shared or doesn't not exist)1685 when geo is configured1686 does not run tasks against geo (PENDING: Skipping because ci is shared or doesn't not exist)1687 schema inconsistencies1688 prints the inconsistency message1689 dictionary generate1690 when the dictionary files do not exist1691 generate the dictionary files1692 do not generate the dictionary files for test tables1693 when a new model class is added to the codebase1694 appends new classes to the dictionary1695 when a model class is removed from the codebase1696 keeps the dictionary classes1697 unattended1698 schema_migration_table_exists: false, needs_migrations: false, rake_output: "unattended_migrations_completed"1699 outputs changed message for automation after operations happen1700 schema_migration_table_exists: false, needs_migrations: true, rake_output: "unattended_migrations_completed"1701 outputs changed message for automation after operations happen1702 schema_migration_table_exists: true, needs_migrations: false, rake_output: "unattended_migrations_static"1703 outputs changed message for automation after operations happen1704 schema_migration_table_exists: true, needs_migrations: true, rake_output: "unattended_migrations_completed"1705 outputs changed message for automation after operations happen1706 clean_structure_sql1707 can be executed multiple times within another rake task1708 drop_tables1709 with a single database1710 drops all objects for the database1711 with multiple databases1712 drops all objects for all databases (PENDING: Skipping because ci is shared or doesn't not exist)1713 when the single database task is used1714 drops all objects for the given database (PENDING: Skipping because ci is shared or doesn't not exist)1715 with geo configured1716 does not create a task for the geo database (PENDING: Skipping because ci is shared or doesn't not exist)1717 create_dynamic_partitions1718 with a single database1719 delegates syncing of partitions without limiting databases1720 with multiple databases1721 when running the multi-database variant1722 delegates syncing of partitions without limiting databases (PENDING: Skipping because ci is shared or doesn't not exist)1723 when running a single-database variant1724 delegates syncing of partitions for the chosen database (PENDING: Skipping because ci is shared or doesn't not exist)1725 with geo configured1726 does not create a task for the geo database (PENDING: Skipping because the geo database is not configured)1727 reindex1728 with a single database1729 delegates to Gitlab::Database::Reindexing (PENDING: Skipping because ci is shared or doesn't not exist)1730 when reindexing is not enabled1731 is a no-op (PENDING: Skipping because ci is shared or doesn't not exist)1732 with multiple databases1733 delegates to Gitlab::Database::Reindexing without a specific database (PENDING: Skipping because none of the extra databases [:ci] are setup)1734 when the single database task is used1735 delegates to Gitlab::Database::Reindexing with a specific database (PENDING: Skipping because none of the extra databases [:ci] are setup)1736 when reindexing is not enabled1737 is a no-op (PENDING: Skipping because none of the extra databases [:ci] are setup)1738 with geo configured1739 does not create a task for the geo database (PENDING: Skipping because none of the extra databases [:ci] are setup)1740 enqueue_reindexing_action1741 creates an entry in the queue1742 defaults to main database1743 execute_async_index_operations1744 delegates ci task to Gitlab::Database::AsyncIndexes (PENDING: Skipping because ci is shared or doesn't not exist)1745 delegates ci task to Gitlab::Database::AsyncIndexes with specified argument (PENDING: Skipping because ci is shared or doesn't not exist)1746 delegates main task to Gitlab::Database::AsyncIndexes (PENDING: Skipping because ci is shared or doesn't not exist)1747 delegates main task to Gitlab::Database::AsyncIndexes with specified argument (PENDING: Skipping because ci is shared or doesn't not exist)1748 delegates all task to every database with higher default for dev (PENDING: Skipping because ci is shared or doesn't not exist)1749 delegates all task to every database with lower default for prod (PENDING: Skipping because ci is shared or doesn't not exist)1750 delegates all task to every database with specified argument (PENDING: Skipping because ci is shared or doesn't not exist)1751 when feature is not enabled1752 is a no-op (PENDING: Skipping because ci is shared or doesn't not exist)1753 when database ddl feature flag is enabled1754 is a no-op (PENDING: Skipping because ci is shared or doesn't not exist)1755 with geo configured1756 does not create a task for the geo database (PENDING: Skipping because ci is shared or doesn't not exist)1757 validate_async_constraints1758 delegates ci task to Gitlab::Database::AsyncConstraints (PENDING: Skipping because ci is shared or doesn't not exist)1759 delegates ci task to Gitlab::Database::AsyncConstraints with specified argument (PENDING: Skipping because ci is shared or doesn't not exist)1760 delegates main task to Gitlab::Database::AsyncConstraints (PENDING: Skipping because ci is shared or doesn't not exist)1761 delegates main task to Gitlab::Database::AsyncConstraints with specified argument (PENDING: Skipping because ci is shared or doesn't not exist)1762 delegates all task to every database with higher default for dev (PENDING: Skipping because ci is shared or doesn't not exist)1763 delegates all task to every database with lower default for prod (PENDING: Skipping because ci is shared or doesn't not exist)1764 delegates all task to every database with specified argument (PENDING: Skipping because ci is shared or doesn't not exist)1765 when feature is not enabled1766 is a no-op (PENDING: Skipping because ci is shared or doesn't not exist)1767 when database ddl feature flag is enabled1768 is a no-op (PENDING: Skipping because ci is shared or doesn't not exist)1769 with geo configured1770 does not create a task for the geo database (PENDING: Skipping because ci is shared or doesn't not exist)1771 active1772 needs_migration: true, project_count: nil, exit_status: 1, exit_code: false1773 exits 0 or 1 depending on user modifications to the database1774 needs_migration: false, project_count: 1, exit_status: 0, exit_code: true1775 exits 0 or 1 depending on user modifications to the database1776 needs_migration: false, project_count: 0, exit_status: 1, exit_code: false1777 exits 0 or 1 depending on user modifications to the database1778 needs_migration: false, project_count: 2, exit_status: 0, exit_code: true1779 exits 0 or 1 depending on user modifications to the database1780 #migrate_with_instrumentation1781 #up (legacy mode)1782 delegates to the migration runner in legacy mode1783 #sample_background_migrations1784 delegates to the migration runner with a default sample duration1785 delegates to the migration runner with a configured sample duration1786 db: :main1787 #up1788 delegates to the migration runner1789 #down1790 delegates to the migration runner1791 #sample_batched_background_migrations1792 delegates to the migration runner for a specified database with a default sample duration1793 delegates to the migration runner for a specified database and sample duration1794 #execute_batched_migrations1795 executes all migrations1796 with multiple databases1797 db:schema:dump against a single database1798 invokes gitlab:db:clean_structure_sql (PENDING: Skipping because ci is shared or doesn't not exist)1799 db:migrate against a single database1800 invokes gitlab:db:create_dynamic_partitions for the same database (PENDING: Skipping because ci is shared or doesn't not exist)1801 db:migrate:geo1802 does not invoke gitlab:db:create_dynamic_partitions (PENDING: Skipping because ci is shared or doesn't not exist)1803 gitlab:db:reset_as_non_superuser1804 migrate as nonsuperuser check with default username1805 migrate as nonsuperuser check with specified username1806Integrations::Datadog1807 behaves like Integrations::ResetSecretFields1808 #exposing_secrets_fields1809 returns an array of strings1810 #reset_secret_fields?1811 returns false if no exposing field has changed1812 returns true if any exposing field has changed1813 validation callback1814 when an exposing field has changed1815 clears all secret fields1816 when a secret field has been updated1817 does not clear this secret field1818 when a secret field has been updated with the same value1819 does not clear this secret field1820 when no exposing field has changed1821 does not clear any secret fields1822 behaves like Integrations::HasWebHook1823 associations1824 is expected to have one service_hook inverse_of => integration1825 callbacks1826 calls #update_web_hook! when enabled1827 does not call #update_web_hook! when disabled1828 does not call #update_web_hook! when validation fails1829 #hook_url1830 returns a string1831 #url_variables1832 returns a hash1833 #hook_ssl_verification1834 returns a boolean1835 delegates to #enable_ssl_verification if the concern is included1836 #update_web_hook!1837 creates or updates a service hook1838 raises an error if the service hook could not be saved1839 does not attempt to save the service hook if there are no changes1840 #execute_web_hook!1841 creates the webhook if necessary and executes it1842 raises an error if the service hook could not be saved1843 validations1844 when service is active1845 is expected to validate that :api_key cannot be empty/falsy1846 is expected to allow :api_key to be ‹"0e98a78616ac22ca659cbe143c411e8c2c384a8e5bf2530046355912c44b2a2f"›1847 is expected not to allow :api_key to be ‹"87dab2403c9d462 87aec4d9214edb1e"›1848 is expected not to allow :api_key to be ‹"................................"›1849 when selecting site1850 is expected to validate that :datadog_site cannot be empty/falsy1851 is expected not to validate that :api_url cannot be empty/falsy1852 is expected to allow :datadog_site to be ‹"data-dog-hq.com"›1853 is expected to allow :datadog_site to be ‹"dataDOG.com"›1854 is expected not to allow :datadog_site to be ‹"datadog hq.com"›1855 is expected not to allow :datadog_site to be ‹"-datadoghq.com"›1856 is expected not to allow :datadog_site to be ‹".datadoghq.com"›1857 is expected not to allow :datadog_site to be ‹"datadoghq.com_"›1858 is expected not to allow :datadog_site to be ‹"data-dog"›1859 is expected not to allow :datadog_site to be ‹"datadoghq.com-"›1860 is expected not to allow :datadog_site to be ‹"datadoghq.com."›1861 with custom api_url1862 is expected not to validate that :datadog_site cannot be empty/falsy1863 is expected to validate that :api_url cannot be empty/falsy1864 is expected to allow :api_url to be ‹"https://webhook-intake.datad0g.com/api/v2/webhook"›1865 is expected not to allow :api_url to be ‹"example.com"›1866 when missing site and api_url1867 is expected not to be valid1868 is expected to validate that :datadog_site cannot be empty/falsy1869 is expected to validate that :api_url cannot be empty/falsy1870 when providing both site and api_url1871 is expected not to allow :datadog_site to be ‹"datadog hq.com"›1872 is expected not to allow :api_url to be ‹"example.com"›1873 with custom tags1874 is expected to allow :datadog_tags to be ‹""›1875 is expected to allow :datadog_tags to be ‹"key:value"›1876 is expected to allow :datadog_tags to be ‹"key:value\nkey2:value2"›1877 is expected to allow :datadog_tags to be ‹"key:value\nkey2:value with spaces and 123?&$"›1878 is expected to allow :datadog_tags to be ‹"key:value\n\n\n\nkey2:value2\n"›1879 is expected not to allow :datadog_tags to be ‹"value"›1880 is expected not to allow :datadog_tags to be ‹"key:"›1881 is expected not to allow :datadog_tags to be ‹"key: "›1882 is expected not to allow :datadog_tags to be ‹":value"›1883 is expected not to allow :datadog_tags to be ‹"key:value\nINVALID"›1884 when integration is not active1885 is expected to be valid1886 is expected not to validate that :api_key cannot be empty/falsy1887 #help1888 is expected to be a kind of String1889 is expected not to be empty1890 #hook_url1891 with standard site URL1892 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab"1893 with custom URL1894 is expected to eq "https://webhook-intake.datad0g.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab"1895 blank1896 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab"1897 without optional params1898 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}"1899 with custom tags1900 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab&tags=key%3Avalue%2C%22key2%3Avalue%2C+2%22"1901 and empty lines1902 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab&tags=key%3Avalue%2C%22key2%3Avalue%2C+2%22"1903 #test1904 when request is successful with a HTTP 200 status1905 is expected to eq {:result=>"OK", :success=>true}1906 when request is successful with a HTTP 202 status1907 is expected to eq {:result=>"OK", :success=>true}1908 when request fails with a HTTP 500 status1909 is expected to eq {:result=>"CRASH!!!", :success=>false}1910 #execute1911 with pipeline data1912 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=5f680b12a101fb7ca618a6fc4bab6d216fa6b582528dd254e1b4f388c0a76cd6&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"pipeline\",\"object_attributes\":{\"id\":29,\"iid\":1,\"name\":null,\"ref\":\"master\",\"tag\":false,\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"before_sha\":\"0000000000000000000000000000000000000000\",\"source\":\"push\",\"status\":\"pending\",\"detailed_status\":\"pending\",\"stages\":[\"test\"],\"created_at\":\"2023-10-20T08:45:33.188Z\",\"finished_at\":null,\"duration\":null,\"queued_duration\":null,\"variables\":[],\"url\":\"http://localhost/namespace146/project-190/-/pipelines/29\"},\"merge_request\":null,\"user\":null,\"project\":{\"id\":165,\"name\":\"Project-190 Name\",\"description\":null,\"web_url\":\"http://localhost/namespace146/project-190\",\"avatar_url\":null,\"git_ssh_url\":\"git@localhost:namespace146/project-190.git\",\"git_http_url\":\"http://localhost/namespace146/project-190.git\",\"namespace\":\"Sidney Jones1045\",\"visibility_level\":0,\"path_with_namespace\":\"namespace146/project-190\",\"default_branch\":null,\"ci_config_path\":null},\"commit\":null,\"builds\":[{\"id\":1,\"stage\":\"test\",\"name\":\"test\",\"status\":\"pending\",\"created_at\":\"2023-10-20T08:50:29.000Z\",\"started_at\":null,\"finished_at\":null,\"duration\":null,\"queued_duration\":-280.0,\"failure_reason\":null,\"when\":\"on_success\",\"manual\":false,\"allow_failure\":false,\"user\":null,\"runner\":null,\"artifacts_file\":{\"filename\":null,\"size\":null},\"environment\":null},{\"id\":2,\"stage\":\"test\",\"name\":\"test\",\"status\":\"pending\",\"created_at\":\"2023-10-20T08:50:29.000Z\",\"started_at\":null,\"finished_at\":null,\"duration\":null,\"queued_duration\":-280.0,\"failure_reason\":null,\"when\":\"on_success\",\"manual\":false,\"allow_failure\":false,\"user\":null,\"runner\":null,\"artifacts_file\":{\"filename\":null,\"size\":null},\"environment\":null}]}" with headers {'X-Gitlab-Event'=>'Pipeline Hook'} 1 time1913 with job data1914 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=608139c867e43d1c687bd7156cb00964a781aea57a63e5e50ab78004b605fcb4&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"build\",\"ref\":\"master\",\"tag\":false,\"before_sha\":\"0000000000000000000000000000000000000000\",\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"retries_count\":1,\"build_id\":1,\"build_name\":\"test\",\"build_stage\":\"test\",\"build_status\":\"pending\",\"build_created_at\":\"2023-10-20T08:50:29.000Z\",\"build_started_at\":null,\"build_finished_at\":null,\"build_duration\":null,\"build_queued_duration\":-279.0,\"build_allow_failure\":false,\"build_failure_reason\":\"unknown_failure\",\"pipeline_id\":29,\"runner\":null,\"project_id\":165,\"project_name\":\"Sidney Jones1045 / Project-190 Name\",\"user\":null,\"commit\":{\"id\":29,\"name\":null,\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"message\":null,\"author_name\":null,\"author_email\":null,\"author_url\":\"mailto:\",\"status\":\"pending\",\"duration\":null,\"started_at\":null,\"finished_at\":null},\"repository\":{\"name\":\"Project-190 Name\",\"url\":\"git@localhost:namespace146/project-190.git\",\"description\":null,\"homepage\":\"http://localhost/namespace146/project-190\",\"git_http_url\":\"http://localhost/namespace146/project-190.git\",\"git_ssh_url\":\"git@localhost:namespace146/project-190.git\",\"visibility_level\":0},\"project\":{\"id\":165,\"name\":\"Project-190 Name\",\"description\":null,\"web_url\":\"http://localhost/namespace146/project-190\",\"avatar_url\":null,\"git_ssh_url\":\"git@localhost:namespace146/project-190.git\",\"git_http_url\":\"http://localhost/namespace146/project-190.git\",\"namespace\":\"Sidney Jones1045\",\"visibility_level\":0,\"path_with_namespace\":\"namespace146/project-190\",\"default_branch\":null,\"ci_config_path\":null},\"environment\":null}" with headers {'X-Gitlab-Event'=>'Job Hook'} 1 time1915 with archive trace data1916 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=fc7084545eb66827a4b3aa2817ab3619757200c7cb41233e49295b88bcc67a88&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"archive_trace\",\"trace_url\":\"/bc/52/bc52dd634277c4a34a2d6210994a9a5e2ab6d33bb4a3a8963410e00ca6c15a02/2023_10_20/1/1/sample_trace\",\"build_id\":1,\"pipeline_id\":29,\"project\":{\"id\":165,\"name\":\"Project-190 Name\",\"description\":null,\"web_url\":\"http://localhost/namespace146/project-190\",\"avatar_url\":null,\"git_ssh_url\":\"git@localhost:namespace146/project-190.git\",\"git_http_url\":\"http://localhost/namespace146/project-190.git\",\"namespace\":\"Sidney Jones1045\",\"visibility_level\":0,\"path_with_namespace\":\"namespace146/project-190\",\"default_branch\":null,\"ci_config_path\":null,\"homepage\":\"http://localhost/namespace146/project-190\",\"url\":\"git@localhost:namespace146/project-190.git\",\"ssh_url\":\"git@localhost:namespace146/project-190.git\",\"http_url\":\"http://localhost/namespace146/project-190.git\"}}" with headers {'X-Gitlab-Event'=>'Archive Trace Hook'} 1 time1917gitlab:web_hook namespace rake tasks1918 gitlab:web_hook:add1919 adds a web hook to all projects1920 adds a web hook to projects in the specified namespace1921 raises an error if an unknown namespace is specified1922 gitlab:web_hook:rm1923 complains if URL is not provided1924 removes a web hook from all projects by URL1925 removes a web hook from projects in the specified namespace by URL1926 raises an error if an unknown namespace is specified1927 gitlab:web_hook:list1928 lists all web hooks1929 lists web hooks in a particular namespace1930AlertManagement::CreateAlertIssueService1931 #execute1932 when a user is allowed to create an issue1933 checks permissions1934 with alert severity1935 alert_severity: "critical", incident_severity: "critical"1936 sets the correct severity level1937 alert_severity: "high", incident_severity: "high"1938 sets the correct severity level1939 alert_severity: "medium", incident_severity: "medium"1940 sets the correct severity level1941 alert_severity: "low", incident_severity: "low"1942 sets the correct severity level1943 alert_severity: "info", incident_severity: "unknown"1944 sets the correct severity level1945 alert_severity: "unknown", incident_severity: "unknown"1946 sets the correct severity level1947 when the alert is prometheus alert1948 behaves like creating an alert issue1949 creates an issue1950 returns a created issue1951 has a successful status1952 sets alert.issue_id in the same ActiveRecord query execution1953 creates a system note1954 behaves like setting an issue attributes1955 sets issue author to the current user1956 sets the issue title1957 sets the issue description1958 when the alert is generic1959 behaves like creating an alert issue1960 creates an issue1961 returns a created issue1962 has a successful status1963 sets alert.issue_id in the same ActiveRecord query execution1964 creates a system note1965 behaves like setting an issue attributes1966 sets issue author to the current user1967 sets the issue title1968 sets the issue description1969 when alert title matches the default title exactly1970 updates issue title with the IID1971 when the alert title contains the default title1972 does not change issue title1973 when issue cannot be created1974 has an unsuccessful status1975 when alert cannot be updated1976 responds with error1977 when alert already has an attached issue1978 does not create yet another issue1979 responds with error1980 when a user is not allowed to create an issue1981 checks permissions1982 responds with error1983Gitlab::Redis::Workhorse1984 # order random1985 .version1986 returns a version1987 #sentinels?1988 when sentinels are defined1989 returns true1990 when sentinels are not defined1991 is expected to eq nil1992 when cluster is defined1993 returns false1994 #fetch_config1995 when redis.yml exists1996 when the fallback has a redis.yml entry1997 is expected to eq {"fallback redis.yml"=>123}1998 and an instance config file exists1999 is expected to eq {"instance specific file"=>456}2000 and the instance has a redis.yml entry2001 is expected to eq {"instance redis.yml"=>789}2002 when no redis config file exsits2003 returns nil2004 when resque.yml exists2005 returns the config from resque.yml2006 .config_file_name2007 when there is no config file anywhere2008 is expected to be nil2009 .with2010 when running on single-threaded runtime2011 instantiates a connection pool with size 52012 when running on multi-threaded runtime2013 instantiates a connection pool with a size based on the concurrency of the worker2014 when there is no config at all2015 can run an empty block2016 #db2017 with old format2018 returns the correct db2019 with new format2020 returns the correct db2021 with cluster-mode2022 returns the correct db2023 #raw_config_hash2024 returns old-style single url config in a hash2025 returns cluster config without url key in a hash2026 .url2027 withstands mutation2028 when yml file with env variable2029 reads redis url from env variable2030 .store2031 with old format2032 behaves like redis store2033 instantiates Redis::Store2034 with the namespace2035 uses specified namespace2036 with new format2037 behaves like redis store2038 instantiates Redis::Store2039 with the namespace2040 uses specified namespace2041 behaves like redis_shared_examples2042 .config_file_name2043 when there is no config file anywhere2044 is expected to be nil2045 .store2046 with old format2047 behaves like redis store2048 instantiates Redis::Store2049 with the namespace2050 uses specified namespace2051 with new format2052 behaves like redis store2053 instantiates Redis::Store2054 with the namespace2055 uses specified namespace2056 .params2057 withstands mutation2058 when url contains unix socket reference2059 with old format2060 returns path key instead2061 with new format2062 returns path key instead2063 when url is host based2064 with old format2065 returns hash with host, port, db, and password2066 with new format2067 rails_env: "development", host: "development-host"2068 returns hash with host, port, db, and password2069 rails_env: "test", host: "test-host"2070 returns hash with host, port, db, and password2071 rails_env: "production", host: "production-host"2072 returns hash with host, port, db, and password2073 with redis cluster format2074 rails_env: "development", host: "development-master"2075 returns hash with cluster and password2076 rails_env: "test", host: "test-master"2077 returns hash with cluster and password2078 rails_env: "production", host: "production-master"2079 returns hash with cluster and password2080 .url2081 withstands mutation2082 when yml file with env variable2083 reads redis url from env variable2084 .version2085 returns a version2086 .with2087 when running on single-threaded runtime2088 instantiates a connection pool with size 52089 when running on multi-threaded runtime2090 instantiates a connection pool with a size based on the concurrency of the worker2091 when there is no config at all2092 can run an empty block2093 #db2094 with old format2095 returns the correct db2096 with new format2097 returns the correct db2098 with cluster-mode2099 returns the correct db2100 #sentinels2101 when sentinels are defined2102 rails_env: "development", hosts: ["development-replica1", "development-replica2"]2103 returns an array of hashes with host and port keys2104 rails_env: "test", hosts: ["test-replica1", "test-replica2"]2105 returns an array of hashes with host and port keys2106 rails_env: "production", hosts: ["production-replica1", "production-replica2"]2107 returns an array of hashes with host and port keys2108 when sentinels are not defined2109 returns nil2110 when cluster is defined2111 returns nil2112 #sentinels?2113 when sentinels are defined2114 returns true2115 when sentinels are not defined2116 is expected to eq nil2117 when cluster is defined2118 returns false2119 #raw_config_hash2120 returns old-style single url config in a hash2121 returns cluster config without url key in a hash2122 #parse_client_tls_options2123 when configuration does not have TLS related options2124 returns the coniguration as-is2125 when specified certificate file does not exist2126 raises error about missing certificate file2127 when specified key file does not exist2128 raises error about missing key file2129 when only certificate file is specified2130 renders resque.yml correctly2131 when only key file is specified2132 renders resque.yml correctly2133 when configuration valid TLS related options2134 converts cert_file and key_file appropriately2135 #fetch_config2136 raises an exception when the config file contains invalid yaml2137 when redis.yml exists2138 uses config/redis.yml2139 when no config file exsits2140 returns nil2141 when resque.yml exists2142 returns the config from resque.yml2143 .params2144 withstands mutation2145 when url contains unix socket reference2146 with old format2147 returns path key instead2148 with new format2149 returns path key instead2150 when url is host based2151 with old format2152 returns hash with host, port, db, and password2153 with new format2154 rails_env: "development", host: "development-host"2155 returns hash with host, port, db, and password2156 rails_env: "test", host: "test-host"2157 returns hash with host, port, db, and password2158 rails_env: "production", host: "production-host"2159 returns hash with host, port, db, and password2160 with redis cluster format2161 rails_env: "development", host: "development-master"2162 returns hash with cluster and password2163 rails_env: "test", host: "test-master"2164 returns hash with cluster and password2165 rails_env: "production", host: "production-master"2166 returns hash with cluster and password2167 #parse_client_tls_options2168 when configuration does not have TLS related options2169 returns the coniguration as-is2170 when specified certificate file does not exist2171 raises error about missing certificate file2172 when specified key file does not exist2173 raises error about missing key file2174 when only certificate file is specified2175 renders resque.yml correctly2176 when only key file is specified2177 renders resque.yml correctly2178 when configuration valid TLS related options2179 converts cert_file and key_file appropriately2180 #fetch_config2181 raises an exception when the config file contains invalid yaml2182 when redis.yml exists2183 uses config/redis.yml2184 when no config file exsits2185 returns nil2186 when resque.yml exists2187 returns the config from resque.yml2188 #sentinels2189 when sentinels are defined2190 rails_env: "development", hosts: ["development-replica1", "development-replica2"]2191 returns an array of hashes with host and port keys2192 rails_env: "test", hosts: ["test-replica1", "test-replica2"]2193 returns an array of hashes with host and port keys2194 rails_env: "production", hosts: ["production-replica1", "production-replica2"]2195 returns an array of hashes with host and port keys2196 when sentinels are not defined2197 returns nil2198 when cluster is defined2199 returns nil2200Key2201 behaves like having unique enum values2202 has unique values in "usage_type"2203 Associations2204 is expected to belong to user required: false2205 Validation2206 is expected to validate that :title cannot be empty/falsy2207 is expected to validate that the length of :title is at most 2552208 is expected to validate that :key cannot be empty/falsy2209 is expected to validate that the length of :key is at most 50002210 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC98dbu7gxcbmAvwMqz/6AALhSr1jiXG0UC8FQMvoDt+ciB+uSJhg7KlxinKjYJnPGfhX+q2K+mmCGAmI/D6q7rFxE+bn09O+75qgkTHi+suDVE6KG7L3n0alGd/qSevfomR77Snh6fQPdG6sEAZz3kehcpfVnq5/IuLFq9FBrgmu52Jd4XZLQZKkDq6zYOJ69FUkGf93LZIV/OOaS+f+qkOGPCUkdKl7oEcgpVNY9SRjBCduXnvi2CyQnnJVkBguGL5VlXwFXH+17Whs7oFWmdiG+4jzBRLIMz4EuIW09b8Su5PW6+bBuXOifHA8KG5TMmjs5LYdCMPFnhTyDyO3a1 dummy@gitlab.com"›2211 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGSD77lLtjmzewiBs6nu2R5nu6oNkrAkH/0co1fHHosKfRr+sWkSTKXOVcL7bhRu+tniGBmB5pn+i1qX7BXtrcnv//bCXWIp+me027L4RJa5/Ep077iiTJlzTpcV664xNUXC8mzBr601HR/Z2TzX5DWJvnyqqFkN7qHTYo/+IoKECnKqNzI5SQrAxgi6sbWA5DFQ/nwcqsUSBo5gCCJ/0QPrR19yVV5lJA19EY2LawOb1SJNOFo4mQupSlBZwvERZJ7IqhBTPtQIfrqqz5VJbI13jK3ViZTugIZqydWAhosUyejP3SdCj1KMexrvV95tjUtmhVFlph4tKThQO0p9pXKZNCzYsbQTye6O6Hk2rojOJLyFWqNBVKtI8Ymfu7OQWppRnuUFuhuuS515H1s888bZFMPsC74mPyo0Y7Q9wAoTnQ9Hw6b0J6OfY3PIRVphaCmxh6b7dgSPF...›2212 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACgQDxnZP0TucLH3zcrvt75DPNq+xKqOmJkCEzTytKq4S5MDH0nlx+xOZ9WykhwDHXU0iZBJF7yRdLkZweYDJVKnBzr4t7QP5Sw2/ZdLelvUMWGJjuz28x8Z+8NZ+IxL/exDz7itrhCsLupQhGO1obiIwf8xVzzPoxrQ9dxaN4x965N+QdQcld8O6xfpSE0p5Y3sRn3kp57aHWoNa/bUGZy0OHLr/ig0uc6EKyWsTmEESOgDyV94wOyHR0KNGEENyxQt4BwAbEBn3Y41HKqD358KKh+XjbECebrrBFigdDL/eYFIUlstJ07SK/HtYjZbiUZCPs8bJA+SBaLK0pGGqguM2LXRoMeMUZFwKKKS2LpRqjKGj3Qt7qMnp1SkVhiMnxNqL4nJnDOOVo07xDIPKqIBYO67/cp4Icv3IjKxy6K3EIpLr+iRCxcllpDogxolzFC+pEDVpmEvcrGEv...›2213 is expected to allow :key to be ‹"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQC5jMyGtgMOVX4t2GuXkbirJA0Edr+qlOH9grnRBPHPo0Npt6XE6ZN3J3hDULTQo03wmekGw42dxdNSgk+F0GjsUBrMLbqrk485MMe0cUbP4lRXNu4ao87wPVM5fAsD4E3FQiZcI6Df011ZGIL7hGTHt6eafTfr9cJheRyYSu6g06rlnFWbbtSh9oQ7Y6sfDLBcsC9ECcXwe3mwViuQXPIVomZ02EdnBbAhbGHDtA+ZbSvTfraxOMjkxkVvvdjLxXEykpwVuZf8eZ+R/Js8jQ5RKvTZMbfxJNsGEqHD32s43ml4VF549Qz2GJDXF7Cld/n3CT6wvw0mMPM0LnykL2v0CMr44bjIA3KsNEs5MhkcBO8sv5hGfcPhrpm9WwI6gd9vdZVcxarVI+iQS947owvdn4VbEZXynCDqEEv3Zh+FA5p23mf2p7DkG/swiK/IPrjr1wmsiWmwIUs...›2214 is expected to allow :key to be ‹"ssh-dss AAAAB3NzaC1kc3MAAAEBALEB3sM2kPy6LKLiyL+UlDx2vzuKrzSD2nsW2Kb70ivIqDNJu5CbqIQSkjdMzJiocs33ESFqXid6ezOtVdDwXHJQRxKGalW1kBbFAPjtMxlDbf559+7qN2zfCfcQsgTmNAZ7O+wltqJmyLv5i4QqNwPDvyeBvJ4C+770DzlcQtpkflKJX+O7i8Ylq34h6UTCTnjry+dFVm1xz97LPf7XuzXGZcAG/eGUNQgxQ2bferKnrpYOXx6cocSRj9W54nrRFMWuDeOspWp4MoYK0FRMfDQYPksUayGUnm1KQTGuDbB0ahRNCOm8b3tfP9Z+vjANAkqenzDuXCpz2PU/Oj6/N/UAAAAhAPOLyut12Mjcp3eUXLe1xSoI5IRXSLsoW9no93dcFNprAAABAQCLhpqKY+PNcwbhhPruL+f+uROghHzDwRNX+e231F4wHHeDDomfWyLVFj31XrHdDXZnS9tTTj5...›2215 is expected to allow :key to be ‹"ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJZmkzTgY0fiCQ+DVReyH/fFwTFz0XoR3RUO0u+199H19KFw7mNPxRSMOVS7tEtONj3Q7FcZXfqthHvgAzDiHsc= dummy@gitlab.com"›2216 is expected to allow :key to be ‹"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIETnVTgzqC1gatgSlC4zH6aYt2CAQzgJOhDRvf59ohL6 dummy@gitlab.com"›2217 is expected to allow :key to be ‹"sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBDZ+f5tSRhlB7EN39f93SscTN5PUvbD3UQsNrlE1ZdbwPMMRul2zlPiUvwAvnJitW0jlD/vwZOW2YN+q+iZ5c0MAAAAEc3NoOg== dummy@gitlab.com"›2218 is expected to allow :key to be ‹"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIEX/dQ0v4127bEo8eeG1EV0ApO2lWbSnN6RWusn/NjqIAAAABHNzaDo= dummy@gitlab.com"›2219 is expected not to allow :key to be ‹"foo-bar"›2220 key format2221 does not allow the key that begins with an algorithm name that is unsupported2222 allows the key that begins with supported algorithm name 'ssh-rsa'2223 allows the key that begins with supported algorithm name 'ssh-dss'2224 allows the key that begins with supported algorithm name 'ecdsa-sha2-nistp256'2225 allows the key that begins with supported algorithm name 'ecdsa-sha2-nistp384'2226 allows the key that begins with supported algorithm name 'ecdsa-sha2-nistp521'2227 allows the key that begins with supported algorithm name 'ssh-ed25519'2228 allows the key that begins with supported algorithm name 'sk-ecdsa-sha2-nistp256@openssh.com'2229 allows the key that begins with supported algorithm name 'sk-ssh-ed25519@openssh.com'2230 validation of banned keys2231 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwRIdDlHaIqZXND/l1vFT7ue3rc/DvXh2yx5EFtuxGQRHVxGMazDhV4vj5ANGXDQwUYI0iZh6aOVrDy8I/y9/y+YDGCvsnqrDbuPDjW26s2bBXWgUPiC93T3TA6L2KOxhVcl7mljEOIYACRHPpJNYVGhinCxDUH9LxMrdNXgP5Ok= mateidu@localhost"2232 does not allow banned keys2233 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBnZQ+6nhlPX/JnX5i5hXpljJ89bSnnrsSs51hSPuoJGmoKowBddISK7s10AIpO0xAWGcr8PUr2FOjEBbDHqlRxoXF0Ocms9xv3ql9EYUQ5+U+M6BymWhNTFPOs6gFHUl8Bw3t6c+SRKBpfRFB0yzBj9d093gSdfTAFoz+yLo4vRw=="2234 does not allow banned keys2235 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvIhC5skTzxyHif/7iy3yhxuK6/OB13hjPqrskogkYFrcW8OK4VJT+5+Fx7wd4sQCnVn8rNqahw/x6sfcOMDI/Xvn4yKU4t8TnYf2MpUVr4ndz39L5Ds1n7Si1m2suUNxWbKv58I8+NMhlt2ITraSuTU0NGymWOc8+LNi+MHXdLk= SCCP Superuser"2236 does not allow banned keys2237 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key"2238 does not allow banned keys2239 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwRIdDlHaIqZXND/l1vFT7ue3rc/DvXh2yx5EFtuxGQRHVxGMazDhV4vj5ANGXDQwUYI0iZh6aOVrDy8I/y9/y+YDGCvsnqrDbuPDjW26s2bBXWgUPiC93T3TA6L2KOxhVcl7mljEOIYACRHPpJNYVGhinCxDUH9LxMrdNXgP5Ok= mateidu@localhost"2240 does not allow banned keys2241 key_content: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAn8LoId2N5i28cNKuEWWea3yt0I/LdT/NROrF44WZewtxch+DIwteQhM1qL6EKUSqz3Q2geX1crpOsNnyh67xy5lNo086u/QewOCSRAUGrQCXqFQ4JU8ny/qugWALQHjbIaPHj/3zMK09r4cpTSeAU7CW5nQyTKGmh7v9CAfWfcs= adam@localhost.localdomain"2242 does not allow banned keys2243 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAJTDsX+8olPZeyr58g9XE0L8PKT5030NZBPlE7np4hBqx36HoWarWq1Csn8M57dWN9StKbs03k2ggY6sYJK5AW2EWar70um3pYjKQHiZq7mITmitsozFN/K7wu2e2iKRgquUwH5SuYoOJ29n7uhaILXiKZP4/H/dDudqPRSY6tJPAAAAFQDtuWH90mDbU2L/Ms2lfl/cja/wHwAAAIAMBwSHZt2ysOHCFe1WLUvdwVDHUqk3QHTskuuAnMlwMtSvCaUxSatdHahsMZ9VCHjoQUx6j+TcgRLDbMlRLnwUlb6wpniehLBFk+qakGcREqks5NxYzFTJXwROzP72jPvVgQyOZHWq81gCild/ljL7hmrduCqYwxDIz4o7U92UKQAAAIBmhSl9CVPgVMv1xO8DAHVhM1huIIK8mNFrzMJz+JXzBx81ms1kWSeQOC/nraaXFTBlqiQsvB8tzr4xZdbaI/QzVLKNAF5C8BJ4ScNlTIx1aZJwyMil8Nzb+0YAsw5Ja+bEZZvEVlAYnd10qRWrPeEY1txLMmX3wDa+JvJL7fmuBg=="2244 does not allow banned keys2245 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAMq5EcIFdfCjJakyQnP/BBp9oc6mpaZVguf0Znp5C40twiG1lASQJZlM1qOB/hkBWYeBCHUkcOLEnVXSZzB62L+W/LGKodqnsiQPRr57AA6jPc6mNBnejHai8cSdAl9n/0s2IQjdcrxM8CPq2uEyfm0J3AV6Lrbbxr5NgE5xxM+DAAAAFQCmFk/M7Rx2jexsJ9COpHkHwUjcNQAAAIAdg18oByp/tjjDKhWhmmv+HbVIROkRqSxBvuEZEmcWlg38mLIT1bydfpSou/V4rI5ctxwCfJ1rRr66pw6GwCrz4fXmyVlhrj7TrktyQ9+zRXhynF4wdNPWErhNHb8tGlSOFiOBcUTlouX3V/ka6Dkd6ZQrZLQFaH+gjfyTZZ82HQAAAIEArsJgp7RLPOsCeLqoia/eljseBFVDazO5Q0ysUotTw9wgXGGVWREwm8wNggFNb9eCiBAAUfVZVfhVAtFT0pBf/eIVLPXyaMw3prBt7LqeBrbagODc3WAAdMTPIdYYcOKgv+YvTXa51zG64v6pQOfS8WXgKCzDl44puXfYeDk5lVQ="2246 does not allow banned keys2247 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAKwKBw7D4OA1H/uD4htdh04TBIHdbSjeXUSnWJsce8C0tvoB01Yarjv9TFj+tfeDYVWtUK1DA1JkyqSuoAtDANJzF4I6Isyd0KPrW3dHFTcg6Xlz8d3KEaHokY93NOmB/xWEkhme8b7Q0U2iZie2pgWbTLXV0FA+lhskTtPHW3+VAAAAFQDRyayUlVZKXEweF3bUe03zt9e8VQAAAIAEPK1k3Y6ErAbIl96dnUCnZjuWQ7xXy062pf63QuRWI6LYSscm3f1pEknWUNFr/erQ02pkfi2eP9uHl1TI1ql+UmJX3g3frfssLNZwWXAW0m8PbY3HZSs+f5hevM3ua32pnKDmbQ2WpvKNyycKHi81hSI14xMcdblJolhN5iY8/wAAAIAjEe5+0m/TlBtVkqQbUit+s/g+eB+PFQ+raaQdL1uztW3etntXAPH1MjxsAC/vthWYSTYXORkDFMhrO5ssE2rfg9io0NDyTIZt+VRQMGdi++dH8ptU+ldl2ZejLFdTJFwFgcfXz+iQ1mx6h9TPX1crE1KoMAVOj3yKVfKpLB1EkA== root@lbslave"2248 does not allow banned keys2249 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAN3AITryJMQyOKZjAky+mQ/8pOHIlu4q8pzmR0qotKaLm2yye5a0PY2rOaQRAzi7EPheBXbqTb8a8TrHhGXI5P7GUHaJho5HhEnw+5TwAvP72L7LcPwxMxj/rLcR/jV+uLMsVeJVWjwJcUv83yzPXoVjK0hrIm+RLLeuTM+gTylHAAAAFQD5gBdXsXAiTz1atzMg3xDFF1zlowAAAIAlLy6TCMlOBM0IcPsvP/9bEjDj0M8YZazdqt4amO2IaNUPYt9/sIsLOQfxIj8myDK1TOp8NyRJep7V5aICG4f3Q+XktlmLzdWn3sjvbWuIAXe1opjG2T69YhxfHZr8Wn7P4tpCgyqM4uHmUKrfnBzQQ9vkUUWsZoUXM2Z7vUXVfQAAAIAU6eNlphQWDwx0KOBiiYhF9BM6kDbQlyw8333rAG3G4CcjI2G8eYGtpBNliaD185UjCEsjPiudhGil/j4Zt/+VY3aGOLoi8kqXBBc8ZAML9bbkXpyhQhMgwiywx3ciFmvSn2UAin8yurStYPQxtXauZN5PYbdwCHPS7ApIStdpMA== wood@endec1"2250 does not allow banned keys2251 key_content: "ssh-dss AAAAB3NzaC1kc3MAAACBAISAE3CAX4hsxTw0dRc0gx8nQ41r3Vkj9OmG6LGeKWRmpy7C6vaExuupjxid76fd4aS56lCUEEoRlJ3zE93qoK9acI6EGqGQFLuDZ0fqMyRSX+ilf+1HDo/TRyuraggxp9Hj9LMpZVbpFATMm0+d9Xs7eLmaJjuMsowNlOf8NFdHAAAAFQCwdvqOAkR6QhuiAapQ/9iVuR0UAQAAAIBpLMo4dhSeWkChfv659WLPftxRrX/HR8YMD/jqa3R4PsVM2g6dQ1191nHugtdV7uaMeOqOJ/QRWeYM+UYwT0Zgx2LqvgVSjNDfdjk+ZRY8x3SmExFi62mKFoTGSOCXfcAfuanjaoF+sepnaiLUd+SoJShGYHoqR2QWiysTRqknlwAAAIBLEgYmr9XCSqjENFDVQPFELYKT7Zs9J87PjPS1AP0qF1OoRGZ5mefK6X/6VivPAUWmmmev/BuAs8M1HtfGeGGzMzDIiU/WZQ3bScLB1Ykrcjk7TOFD6xrnk/inYAp5l29hjidoAONcXoHmUAMYOKqn63Q2AsDpExVcmfj99/BlpQ=="2252 does not allow banned keys2253 Methods2254 is expected to respond to #projects2255 is expected to respond to #publishable_key2256 #publishable_keys2257 replaces SSH key comment with simple identifier of username + hostname2258 #update_last_used_at2259 updates the last used timestamp2260 scopes2261 .for_user2262 returns keys of the specified user only2263 .order_last_used_at_desc2264 sorts by last_used_at descending, with null values at last2265 expiration scopes2266 .expired_today_and_not_notified2267 returns keys that expire today and have not been notified2268 .expiring_soon_and_not_notified2269 returns keys that will expire soon2270 usage type scopes2271 auth scope returns auth and auth_and_signing keys2272 signing scope returns signing and auth_and_signing keys2273 validation of uniqueness (based on fingerprint uniqueness)2274 accepts the key once2275 does not accept the exact same key twice2276 does not accept a duplicate key with a different comment2277 #ensure_sha256_fingerprint!2278 with a valid SHA256 fingerprint2279 does nothing2280 with a missing SHA256 fingerprint2281 fingerprints are present2282 with an invalid public key2283 does not throw an exception2284 fingerprint generation2285 generates both md5 and sha256 fingerprints2286 with FIPS mode2287 generates only sha256 fingerprint2288 validate it is a fingerprintable key2289 accepts the fingerprintable key2290 rejects the unfingerprintable key (not a key)2291 factory: :key, characters: ["\n", "\r\n"], expected_sections: 32292 accepts a key with blank space characters after stripping them2293 factory: :key, characters: [" ", " "], expected_sections: 32294 accepts a key with blank space characters after stripping them2295 factory: :key_without_comment, characters: [" ", " "], expected_sections: 22296 accepts a key with blank space characters after stripping them2297 validate it meets key restrictions2298 factory: :rsa_key_2048, minimum: 0, result: true2299 is expected to eq true2300 factory: :dsa_key_2048, minimum: 0, result: true2301 is expected to eq true2302 factory: :ecdsa_key_256, minimum: 0, result: true2303 is expected to eq true2304 factory: :ed25519_key_256, minimum: 0, result: true2305 is expected to eq true2306 factory: :ecdsa_sk_key_256, minimum: 0, result: true2307 is expected to eq true2308 factory: :ed25519_sk_key_256, minimum: 0, result: true2309 is expected to eq true2310 factory: :rsa_key_2048, minimum: 1024, result: true2311 is expected to eq true2312 factory: :rsa_key_2048, minimum: 2048, result: true2313 is expected to eq true2314 factory: :rsa_key_2048, minimum: 4096, result: false2315 is expected to eq false2316 factory: :dsa_key_2048, minimum: 1024, result: true2317 is expected to eq true2318 factory: :dsa_key_2048, minimum: 2048, result: true2319 is expected to eq true2320 factory: :dsa_key_2048, minimum: 4096, result: false2321 is expected to eq false2322 factory: :ecdsa_key_256, minimum: 256, result: true2323 is expected to eq true2324 factory: :ecdsa_key_256, minimum: 384, result: false2325 is expected to eq false2326 factory: :ed25519_key_256, minimum: 256, result: true2327 is expected to eq true2328 factory: :ed25519_key_256, minimum: 384, result: false2329 is expected to eq false2330 factory: :ecdsa_sk_key_256, minimum: 256, result: true2331 is expected to eq true2332 factory: :ecdsa_sk_key_256, minimum: 384, result: false2333 is expected to eq false2334 factory: :ed25519_sk_key_256, minimum: 256, result: true2335 is expected to eq true2336 factory: :ed25519_sk_key_256, minimum: 384, result: false2337 is expected to eq false2338 factory: :rsa_key_2048, minimum: -1, result: false2339 is expected to eq false2340 factory: :dsa_key_2048, minimum: -1, result: false2341 is expected to eq false2342 factory: :ecdsa_key_256, minimum: -1, result: false2343 is expected to eq false2344 factory: :ed25519_key_256, minimum: -1, result: false2345 is expected to eq false2346 factory: :ecdsa_sk_key_256, minimum: -1, result: false2347 is expected to eq false2348 factory: :ed25519_sk_key_256, minimum: -1, result: false2349 is expected to eq false2350 callbacks2351 authorized keys file is enabled2352 adds new key to authorized_file2353 removes key from authorized_file2354 authorized_keys file is disabled2355 does not add the key on creation2356 does not remove the key on destruction2357 #key=2358 strips white spaces2359 invalidates the public_key attribute2360 #refresh_user_cache2361 when the key belongs to a user2362 refreshes the keys count cache for the user2363 when the key does not belong to a user2364 does nothing2365 #signing?2366 returns whether a key can be used for signing2367Gitlab::Database::Reflection2368 #username2369 when a username is set2370 returns the username2371 when a username is not set2372 returns the value of the USER environment variable2373 #database_name2374 returns the name of the database2375 #adapter_name2376 returns the database adapter name2377 #human_adapter_name2378 when the adapter is PostgreSQL2379 returns PostgreSQL2380 when the adapter is not PostgreSQL2381 returns Unknown2382 #postgresql?2383 when using PostgreSQL2384 returns true2385 when not using PostgreSQL2386 returns false2387 #db_read_only?2388 detects a read-only database2389 detects a read-only database2390 detects a read-write database2391 detects a read-write database2392 #db_read_write?2393 detects a read-only database2394 detects a read-only database2395 detects a read-write database2396 detects a read-write database2397 #version2398 memoizes the result2399 on postgresql2400 extracts the version number2401 #postgresql_minimum_supported_version?2402 returns false when using PostgreSQL 102403 returns false when using PostgreSQL 112404 returns false when using PostgreSQL 122405 returns true when using PostgreSQL 132406 #cached_column_exists?2407 only retrieves the data from the schema cache2408 #cached_table_exists?2409 only retrieves the data from the schema cache2410 returns false when database does not exist2411 #exists?2412 returns true if the database exists2413 returns false if the database doesn't exist2414 #system_id2415 returns the PostgreSQL system identifier2416 #flavor2417 re-raises exceptions not matching expected messages2418 recognizes Amazon Aurora PostgreSQL2419 recognizes PostgreSQL on Amazon RDS2420 recognizes CloudSQL for PostgreSQL2421 recognizes Azure Database for PostgreSQL - Flexible Server2422 recognizes Azure Database for PostgreSQL - Single Server2423 recognizes AlloyDB for PostgreSQL2424 returns nil if can not recognize the flavor2425 #config2426 returns a HashWithIndifferentAccess2427 returns a default pool size2428 does not cache its results2429Users::Internal2430 # order random2431 behaves like bot user avatars2432 sets the custom avatar for the created bot2433 behaves like bot user avatars2434 sets the custom avatar for the created bot2435 behaves like bot users2436 creates the user if it does not exist2437 creates a route for the namespace of the created user2438 does not create a new user if it already exists2439 when a regular user exists with the bot usernane2440 creates a user with a non-conflicting username2441 when a regular user exists with the bot user email2442 creates a user with a non-conflicting email2443 when a domain allowlist is in place2444 creates the bot user2445 behaves like bot users2446 creates the user if it does not exist2447 creates a route for the namespace of the created user2448 does not create a new user if it already exists2449 when a regular user exists with the bot usernane2450 creates a user with a non-conflicting username2451 when a regular user exists with the bot user email2452 creates a user with a non-conflicting email2453 when a domain allowlist is in place2454 creates the bot user2455 when bot is the admin bot2456 is expected to be admin2457 is expected to be confirmed2458 behaves like bot user avatars2459 sets the custom avatar for the created bot2460 behaves like bot user avatars2461 sets the custom avatar for the created bot2462 behaves like bot users2463 creates the user if it does not exist2464 creates a route for the namespace of the created user2465 does not create a new user if it already exists2466 when a regular user exists with the bot usernane2467 creates a user with a non-conflicting username2468 when a regular user exists with the bot user email2469 creates a user with a non-conflicting email2470 when a domain allowlist is in place2471 creates the bot user2472 behaves like bot users2473 creates the user if it does not exist2474 creates a route for the namespace of the created user2475 does not create a new user if it already exists2476 when a regular user exists with the bot usernane2477 creates a user with a non-conflicting username2478 when a regular user exists with the bot user email2479 creates a user with a non-conflicting email2480 when a domain allowlist is in place2481 creates the bot user2482 behaves like bot users2483 creates the user if it does not exist2484 creates a route for the namespace of the created user2485 does not create a new user if it already exists2486 when a regular user exists with the bot usernane2487 creates a user with a non-conflicting username2488 when a regular user exists with the bot user email2489 creates a user with a non-conflicting email2490 when a domain allowlist is in place2491 creates the bot user2492 when bot is the support_bot2493 is expected to be confirmed2494 behaves like bot users2495 creates the user if it does not exist2496 creates a route for the namespace of the created user2497 does not create a new user if it already exists2498 when a regular user exists with the bot usernane2499 creates a user with a non-conflicting username2500 when a regular user exists with the bot user email2501 creates a user with a non-conflicting email2502 when a domain allowlist is in place2503 creates the bot user2504 behaves like bot user avatars2505 sets the custom avatar for the created bot2506 behaves like bot users2507 creates the user if it does not exist2508 creates a route for the namespace of the created user2509 does not create a new user if it already exists2510 when a regular user exists with the bot usernane2511 creates a user with a non-conflicting username2512 when a regular user exists with the bot user email2513 creates a user with a non-conflicting email2514 when a domain allowlist is in place2515 creates the bot user2516 behaves like bot user avatars2517 sets the custom avatar for the created bot2518 behaves like bot users2519 creates the user if it does not exist2520 creates a route for the namespace of the created user2521 does not create a new user if it already exists2522 when a regular user exists with the bot usernane2523 creates a user with a non-conflicting username2524 when a regular user exists with the bot user email2525 creates a user with a non-conflicting email2526 when a domain allowlist is in place2527 creates the bot user2528Ci::PipelineEntity2529 #as_json2530 when pipeline is empty2531 contains required fields2532 excludes coverage data when disabled2533 contains details2534 contains flags2535 when default branch not protected2536 when pipeline is retryable2537 does not serialize stage builds2538 user has ability to retry pipeline2539 contains retry path2540 user does not have ability to retry pipeline2541 does not contain retry path2542 when pipeline is cancelable2543 does not serialize stage builds2544 user has ability to cancel pipeline2545 contains cancel path2546 user does not have ability to cancel pipeline2547 does not contain cancel path2548 delete path2549 user has ability to delete pipeline2550 contains delete path2551 user does not have ability to delete pipeline2552 does not contain delete path2553 when pipeline ref is empty2554 does not generate branch path2555 when pipeline has a failure reason set2556 has a correct failure reason2557 when request has a project2558 when pipeline is detached merge request pipeline2559 makes detached flag true2560 does not expose source sha and target sha2561 when user is a developer2562 has merge request information2563 when user is an external user2564 has no merge request information2565 when pipeline is merge request pipeline2566 makes detached flag false2567 makes atached flag true2568 exposes source sha and target sha2569 exposes merge request event type2570 when pipeline has failed builds2571 when the user can retry the pipeline2572 when disable_failed_builds is true2573 exposes the failed builds count but not the failed builds2574 when disable_failed_builds is false2575 exposes the failed builds count but not the failed builds2576 when disable_failed_builds is nil2577 exposes the failed builds count and the failed builds2578 when the user cannot retry the pipeline2579 is nil2580 when pipeline has coverage2581 exposes the coverage2582Integrations::Telegram2583 # order random2584 before_validation :set_webhook2585 when token is not present2586 does not set webhook value2587 when token is present2588 sets webhook value2589 validations2590 when integration is active2591 is expected to validate that :token cannot be empty/falsy2592 is expected to validate that :room cannot be empty/falsy2593 when integration is inactive2594 is expected not to validate that :token cannot be empty/falsy2595 is expected not to validate that :room cannot be empty/falsy2596 #avatar_url2597 returns the avatar image path2598 behaves like chat integration2599 Associations2600 is expected to belong to project required: false2601 Validations2602 when integration is active2603 is expected to validate that :webhook cannot be empty/falsy2604 behaves like issue tracker integration URL attribute2605 is expected to allow :webhook to be ‹"https://example.com"›2606 is expected not to allow :webhook to be ‹"example.com"›2607 is expected not to allow :webhook to be ‹"ftp://example.com"›2608 is expected not to allow :webhook to be ‹"herp-and-derp"›2609 when integration is inactive2610 is expected not to validate that :webhook cannot be empty/falsy2611 .supported_events2612 does not support deployment_events2613 #execute2614 with push events2615 behaves like triggered Telegram integration2616 calls Telegram API2617 with default branch2618 when only default branch are to be notified2619 behaves like triggered Telegram integration2620 calls Telegram API2621 when only protected branches are to be notified2622 behaves like untriggered Telegram integration2623 does not call Telegram API2624 when default and protected branches are to be notified2625 behaves like triggered Telegram integration2626 calls Telegram API2627 when all branches are to be notified2628 behaves like triggered Telegram integration2629 calls Telegram API2630 with protected branch2631 when only default branch are to be notified2632 behaves like untriggered Telegram integration2633 does not call Telegram API2634 when only protected branches are to be notified2635 behaves like triggered Telegram integration2636 calls Telegram API2637 when default and protected branches are to be notified2638 behaves like triggered Telegram integration2639 calls Telegram API2640 when all branches are to be notified2641 behaves like triggered Telegram integration2642 calls Telegram API2643 with neither default nor protected branch2644 when only default branch are to be notified2645 behaves like untriggered Telegram integration2646 does not call Telegram API2647 when only protected branches are to be notified2648 behaves like untriggered Telegram integration2649 does not call Telegram API2650 when default and protected branches are to be notified2651 behaves like untriggered Telegram integration2652 does not call Telegram API2653 when all branches are to be notified2654 behaves like triggered Telegram integration2655 calls Telegram API2656 with issue events2657 behaves like triggered Telegram integration2658 calls Telegram API2659 with merge events2660 behaves like triggered Telegram integration2661 calls Telegram API2662 with wiki page events2663 behaves like triggered Telegram integration2664 calls Telegram API2665 with note events2666 with commit comment2667 behaves like triggered Telegram integration2668 calls Telegram API2669 with merge request comment2670 behaves like triggered Telegram integration2671 calls Telegram API2672 with issue comment2673 behaves like triggered Telegram integration2674 calls Telegram API2675 with snippet comment2676 behaves like triggered Telegram integration2677 calls Telegram API2678 with pipeline events2679 with failed pipeline2680 behaves like triggered Telegram integration2681 calls Telegram API2682 with succeeded pipeline2683 with default notify_only_broken_pipelines2684 does not call Telegram API2685 when notify_only_broken_pipelines is false2686 behaves like triggered Telegram integration2687 calls Telegram API2688 with default branch2689 when only default branch are to be notified2690 behaves like triggered Telegram integration2691 calls Telegram API2692 when only protected branches are to be notified2693 behaves like untriggered Telegram integration2694 does not call Telegram API2695 when default and protected branches are to be notified2696 behaves like triggered Telegram integration2697 calls Telegram API2698 when all branches are to be notified2699 behaves like triggered Telegram integration2700 calls Telegram API2701 with protected branch2702 when only default branch are to be notified2703 behaves like untriggered Telegram integration2704 does not call Telegram API2705 when only protected branches are to be notified2706 behaves like triggered Telegram integration2707 calls Telegram API2708 when default and protected branches are to be notified2709 behaves like triggered Telegram integration2710 calls Telegram API2711 when all branches are to be notified2712 behaves like triggered Telegram integration2713 calls Telegram API2714 with neither default nor protected branch2715 when only default branch are to be notified2716 behaves like untriggered Telegram integration2717 does not call Telegram API2718 when only protected branches are to be notified2719 behaves like untriggered Telegram integration2720 does not call Telegram API2721 when default and protected branches are to be notified2722 behaves like untriggered Telegram integration2723 does not call Telegram API2724 when all branches are to be notified2725 behaves like triggered Telegram integration2726 calls Telegram API2727 deployment events2728 behaves like untriggered Telegram integration2729 does not call Telegram API2730Gitlab::Usage::Metrics::Instrumentations::JiraActiveIntegrationsMetric2731 # order random2732 raises an exception if option is not present2733 raises an exception if option has invalid value2734 behaves like a correct instrumented metric value and query2735 behaves like a correct instrumented metric value2736 has correct value2737 behaves like a correct instrumented metric query2738 has correct generate query2739PipelineSerializer2740 # order random2741 #represent_status2742 when represents only status2743 serializes only status2744 #represent2745 when used without pagination2746 created a not paginated serializer2747 when a single object is being serialized2748 serializers the pipeline object2749 when multiple objects are being serialized2750 serializers the array of pipelines2751 when used with pagination2752 created a paginated serializer2753 when resource is not paginatable2754 when a single pipeline object is being serialized2755 raises error2756 when resource is paginatable relation2757 when a single pipeline object is present in relation2758 serializes pipeline relation2759 when a multiple pipeline objects are being serialized2760 serializes appropriate number of objects2761 appends relevant headers2762 when there are pipelines for merge requests2763 includes merge requests information2764 preloads related merge requests2765 number of queries when preloaded2766 with the same ref2767 verifies number of queries2768 with different refs2769 verifies number of queries2770 with triggered pipelines2771 verifies number of queries2772 with build environments2773 executes one query to fetch all related environments2774 with scheduled and manual builds2775 sends at most one metadata query for each type of build2776Gitlab::Gpg::InvalidGpgSignatureUpdater2777 #run2778 gpg signature did have an associated gpg key which was removed later2779 assigns the gpg key to the signature when the missing gpg key is added2780 does not assign the gpg key when an unrelated gpg key is added2781 gpg signature did not have an associated gpg key2782 updates the signature to being valid when the missing gpg key is added2783 keeps the signature at being invalid when an unrelated gpg key is added2784 gpg signature did have an associated unverified gpg key2785 updates the signature to being valid when the user updates the email address2786 keeps the signature at being invalid when the changed email address is still unrelated2787 gpg signature did not have an associated gpg subkey2788 updates the signature to being valid when the missing gpg key is added2789Backup::DatabaseModel2790 # order random2791 #connection2792 an instance of a ActiveRecord::Base.connection2793 #config2794 when no GITLAB_BACKUP_PG* variables are set2795 behaves like no configuration is overridden2796 ActiveRecord backup configuration is expected to equal application configuration2797 PostgreSQL ENV is expected to equal application configuration2798 when GITLAB_BACKUP_PG* variables are set2799 env_variable: "GITLAB_BACKUP_PGHOST", overridden_value: "test.invalid."2800 behaves like environment variables override application configuration2801 ActiveRecord backup configuration overrides application configuration2802 PostgreSQL ENV overrides application configuration2803 env_variable: "GITLAB_BACKUP_PGUSER", overridden_value: "some_user"2804 behaves like environment variables override application configuration2805 ActiveRecord backup configuration overrides application configuration2806 PostgreSQL ENV overrides application configuration2807 env_variable: "GITLAB_BACKUP_PGPORT", overridden_value: "1543"2808 behaves like environment variables override application configuration2809 ActiveRecord backup configuration overrides application configuration2810 PostgreSQL ENV overrides application configuration2811 env_variable: "GITLAB_BACKUP_PGPASSWORD", overridden_value: "secret"2812 behaves like environment variables override application configuration2813 ActiveRecord backup configuration overrides application configuration2814 PostgreSQL ENV overrides application configuration2815 env_variable: "GITLAB_BACKUP_PGSSLMODE", overridden_value: "allow"2816 behaves like environment variables override application configuration2817 ActiveRecord backup configuration overrides application configuration2818 PostgreSQL ENV overrides application configuration2819 env_variable: "GITLAB_BACKUP_PGSSLKEY", overridden_value: "some_key"2820 behaves like environment variables override application configuration2821 ActiveRecord backup configuration overrides application configuration2822 PostgreSQL ENV overrides application configuration2823 env_variable: "GITLAB_BACKUP_PGSSLCERT", overridden_value: "/path/to/cert"2824 behaves like environment variables override application configuration2825 ActiveRecord backup configuration overrides application configuration2826 PostgreSQL ENV overrides application configuration2827 env_variable: "GITLAB_BACKUP_PGSSLROOTCERT", overridden_value: "/path/to/root/cert"2828 behaves like environment variables override application configuration2829 ActiveRecord backup configuration overrides application configuration2830 PostgreSQL ENV overrides application configuration2831 env_variable: "GITLAB_BACKUP_PGSSLCRL", overridden_value: "/path/to/crl"2832 behaves like environment variables override application configuration2833 ActiveRecord backup configuration overrides application configuration2834 PostgreSQL ENV overrides application configuration2835 env_variable: "GITLAB_BACKUP_PGSSLCOMPRESSION", overridden_value: "1"2836 behaves like environment variables override application configuration2837 ActiveRecord backup configuration overrides application configuration2838 PostgreSQL ENV overrides application configuration2839 when GITLAB_BACKUP_<DBNAME>_PG* variables are set2840 and environment variables are for the current database name2841 env_variable: "GITLAB_BACKUP_MAIN_PGHOST", overridden_value: "test.invalid."2842 behaves like environment variables override application configuration2843 ActiveRecord backup configuration overrides application configuration2844 PostgreSQL ENV overrides application configuration2845 env_variable: "GITLAB_BACKUP_MAIN_PGUSER", overridden_value: "some_user"2846 behaves like environment variables override application configuration2847 ActiveRecord backup configuration overrides application configuration2848 PostgreSQL ENV overrides application configuration2849 env_variable: "GITLAB_BACKUP_MAIN_PGPORT", overridden_value: "1543"2850 behaves like environment variables override application configuration2851 ActiveRecord backup configuration overrides application configuration2852 PostgreSQL ENV overrides application configuration2853 env_variable: "GITLAB_BACKUP_MAIN_PGPASSWORD", overridden_value: "secret"2854 behaves like environment variables override application configuration2855 ActiveRecord backup configuration overrides application configuration2856 PostgreSQL ENV overrides application configuration2857 env_variable: "GITLAB_BACKUP_MAIN_PGSSLMODE", overridden_value: "allow"2858 behaves like environment variables override application configuration2859 ActiveRecord backup configuration overrides application configuration2860 PostgreSQL ENV overrides application configuration2861 env_variable: "GITLAB_BACKUP_MAIN_PGSSLKEY", overridden_value: "some_key"2862 behaves like environment variables override application configuration2863 ActiveRecord backup configuration overrides application configuration2864 PostgreSQL ENV overrides application configuration2865 env_variable: "GITLAB_BACKUP_MAIN_PGSSLCERT", overridden_value: "/path/to/cert"2866 behaves like environment variables override application configuration2867 ActiveRecord backup configuration overrides application configuration2868 PostgreSQL ENV overrides application configuration2869 env_variable: "GITLAB_BACKUP_MAIN_PGSSLROOTCERT", overridden_value: "/path/to/root/cert"2870 behaves like environment variables override application configuration2871 ActiveRecord backup configuration overrides application configuration2872 PostgreSQL ENV overrides application configuration2873 env_variable: "GITLAB_BACKUP_MAIN_PGSSLCRL", overridden_value: "/path/to/crl"2874 behaves like environment variables override application configuration2875 ActiveRecord backup configuration overrides application configuration2876 PostgreSQL ENV overrides application configuration2877 env_variable: "GITLAB_BACKUP_MAIN_PGSSLCOMPRESSION", overridden_value: "1"2878 behaves like environment variables override application configuration2879 ActiveRecord backup configuration overrides application configuration2880 PostgreSQL ENV overrides application configuration2881 and environment variables are for another database2882 env_variable: "GITLAB_BACKUP_CI_PGHOST", overridden_value: "test.invalid."2883 behaves like no configuration is overridden2884 ActiveRecord backup configuration is expected to equal application configuration2885 PostgreSQL ENV is expected to equal application configuration2886 env_variable: "GITLAB_BACKUP_CI_PGUSER", overridden_value: "some_user"2887 behaves like no configuration is overridden2888 ActiveRecord backup configuration is expected to equal application configuration2889 PostgreSQL ENV is expected to equal application configuration2890 env_variable: "GITLAB_BACKUP_CI_PGPORT", overridden_value: "1543"2891 behaves like no configuration is overridden2892 ActiveRecord backup configuration is expected to equal application configuration2893 PostgreSQL ENV is expected to equal application configuration2894 env_variable: "GITLAB_BACKUP_CI_PGPASSWORD", overridden_value: "secret"2895 behaves like no configuration is overridden2896 ActiveRecord backup configuration is expected to equal application configuration2897 PostgreSQL ENV is expected to equal application configuration2898 env_variable: "GITLAB_BACKUP_CI_PGSSLMODE", overridden_value: "allow"2899 behaves like no configuration is overridden2900 ActiveRecord backup configuration is expected to equal application configuration2901 PostgreSQL ENV is expected to equal application configuration2902 env_variable: "GITLAB_BACKUP_CI_PGSSLKEY", overridden_value: "some_key"2903 behaves like no configuration is overridden2904 ActiveRecord backup configuration is expected to equal application configuration2905 PostgreSQL ENV is expected to equal application configuration2906 env_variable: "GITLAB_BACKUP_CI_PGSSLCERT", overridden_value: "/path/to/cert"2907 behaves like no configuration is overridden2908 ActiveRecord backup configuration is expected to equal application configuration2909 PostgreSQL ENV is expected to equal application configuration2910 env_variable: "GITLAB_BACKUP_CI_PGSSLROOTCERT", overridden_value: "/path/to/root/cert"2911 behaves like no configuration is overridden2912 ActiveRecord backup configuration is expected to equal application configuration2913 PostgreSQL ENV is expected to equal application configuration2914 env_variable: "GITLAB_BACKUP_CI_PGSSLCRL", overridden_value: "/path/to/crl"2915 behaves like no configuration is overridden2916 ActiveRecord backup configuration is expected to equal application configuration2917 PostgreSQL ENV is expected to equal application configuration2918 env_variable: "GITLAB_BACKUP_CI_PGSSLCOMPRESSION", overridden_value: "1"2919 behaves like no configuration is overridden2920 ActiveRecord backup configuration is expected to equal application configuration2921 PostgreSQL ENV is expected to equal application configuration2922 when both GITLAB_BACKUP_PGUSER and GITLAB_BACKUP_MAIN_PGUSER variable are present2923 prefers more specific GITLAB_BACKUP_MAIN_PGUSER2924ChronicDurationAttribute2925 when default value is not set2926 behaves like ChronicDurationAttribute reader2927 contains dynamically created reader method2928 outputs chronic duration formatted value2929 when value is set to nil2930 outputs nil2931 behaves like ChronicDurationAttribute writer2932 contains dynamically created writer method2933 parses chronic duration input2934 passes validation2935 when negative input is used2936 doesn't raise exception2937 doesn't change value2938 doesn't pass validation2939 when empty input is used2940 writes default value2941 passes validation2942 when nil input is used2943 writes default value2944 passes validation2945 doesn't raise exception2946 when default value is set2947 behaves like ChronicDurationAttribute reader2948 contains dynamically created reader method2949 outputs chronic duration formatted value2950 when value is set to nil2951 outputs nil2952 behaves like ChronicDurationAttribute writer2953 contains dynamically created writer method2954 parses chronic duration input2955 passes validation2956 when negative input is used2957 doesn't raise exception2958 doesn't change value2959 doesn't pass validation2960 when empty input is used2961 writes default value2962 passes validation2963 when nil input is used2964 writes default value2965 passes validation2966 doesn't raise exception2967ChronicDurationAttribute - reader2968 doesn't contain dynamically created writer method2969 behaves like ChronicDurationAttribute reader2970 contains dynamically created reader method2971 outputs chronic duration formatted value2972 when value is set to nil2973 outputs nil2974Discussion ResolvableDiscussion2975 #resolvable?2976 when potentially resolvable2977 when all notes are unresolvable2978 returns false2979 when some notes are unresolvable and some notes are resolvable2980 returns true2981 when all notes are resolvable2982 returns true2983 when not potentially resolvable2984 returns false2985 #resolved?2986 when not resolvable2987 returns false2988 when resolvable2989 when all resolvable notes are resolved2990 returns true2991 when some resolvable notes are not resolved2992 returns false2993 #to_be_resolved?2994 when not resolvable2995 returns false2996 when resolvable2997 when all resolvable notes are resolved2998 returns false2999 when some resolvable notes are not resolved3000 returns true3001 #can_resolve?3002 when not resolvable3003 returns false3004 when resolvable3005 when not signed in3006 returns false3007 when signed in3008 when the signed in user is the noteable author3009 returns true3010 when noteable is locked3011 returns false3012 when the signed in user can push to the project3013 returns true3014 when the noteable has no author3015 returns true3016 when the signed in user is a random user3017 returns false3018 when the noteable has no author3019 returns false3020 #resolve!3021 when not resolvable3022 returns nil3023 doesn't set resolved_at3024 doesn't set resolved_by3025 doesn't mark as resolved3026 when resolvable3027 when all resolvable notes are resolved3028 doesn't change resolved_at on the resolved notes3029 doesn't change resolved_by on the resolved notes3030 doesn't change the resolved state on the resolved notes3031 doesn't change resolved_at3032 doesn't change resolved_by3033 doesn't change resolved state3034 when some resolvable notes are resolved3035 doesn't change resolved_at on the resolved note3036 doesn't change resolved_by on the resolved note3037 doesn't change the resolved state on the resolved note3038 sets resolved_at on the unresolved note3039 sets resolved_by on the unresolved note3040 marks the unresolved note as resolved3041 sets resolved_at3042 sets resolved_by3043 marks as resolved3044 when no resolvable notes are resolved3045 sets resolved_at on the unresolved notes3046 sets resolved_by on the unresolved notes3047 marks the unresolved notes as resolved3048 sets resolved_at3049 sets resolved_by3050 marks as resolved3051 broadcasts note change of the noteable3052 #unresolve!3053 when not resolvable3054 returns nil3055 when resolvable3056 when all resolvable notes are resolved3057 unsets resolved_at on the resolved notes3058 unsets resolved_by on the resolved notes3059 unmarks the resolved notes as resolved3060 unsets resolved_at3061 unsets resolved_by3062 unmarks as resolved3063 broadcasts note change of the noteable3064 when some resolvable notes are resolved3065 unsets resolved_at on the resolved note3066 unsets resolved_by on the resolved note3067 unmarks the resolved note as resolved3068 #first_note_to_resolve3069 returns the first note that still needs to be resolved3070 #last_resolved_note3071 returns the last note that was resolved3072 #clear_memoized_values3073 resets the memoized values3074WorkItems::TaskListReferenceRemovalService3075 #execute3076 when task mardown spans a single line3077 behaves like successful work item task reference removal service3078 is expected to be success3079 removes the task list item containing the task reference3080 creates system notes3081 when description does not contain a task3082 behaves like failing work item task reference removal service3083 is expected to be error3084 does not change the work item description3085 returns an error message3086 when description reference does not exactly match the task reference3087 behaves like failing work item task reference removal service3088 is expected to be error3089 does not change the work item description3090 returns an error message3091 when task mardown spans multiple lines3092 behaves like successful work item task reference removal service3093 is expected to be success3094 removes the task list item containing the task reference3095 creates system notes3096 when updating the work item fails3097 behaves like failing work item task reference removal service3098 is expected to be error3099 does not change the work item description3100 returns an error message3101 when description is empty3102 behaves like failing work item task reference removal service3103 is expected to be error3104 does not change the work item description3105 returns an error message3106 when line_number_start is lower than 13107 behaves like failing work item task reference removal service3108 is expected to be error3109 does not change the work item description3110 returns an error message3111 when line_number_end is lower than line_number_start3112 behaves like failing work item task reference removal service3113 is expected to be error3114 does not change the work item description3115 returns an error message3116 when lock_version is older than current3117 behaves like failing work item task reference removal service3118 is expected to be error3119 does not change the work item description3120 returns an error message3121 when work item is stale before updating3122 behaves like failing work item task reference removal service3123 is expected to be error3124 does not change the work item description3125 returns an error message3126ButtonHelper3127 http_clone_button3128 with internal auth enabled3129 when user has a password3130 shows no tooltip3131 when user has password automatically set3132 shows the password text on the dropdown3133 with internal auth disabled3134 when user has no personal access tokens3135 has a personal access token text on the dropdown description3136 when user has personal access tokens3137 does not have a personal access token text on the dropdown description3138 when user is ldap user3139 shows no tooltip3140 ssh_button3141 without an ssh key on the user3142 shows a warning on the dropdown description3143 without an ssh key on the user and user_show_add_ssh_key_message unset3144 there is no warning on the dropdown description3145 with an ssh key on the user3146 there is no warning on the dropdown description3147 ssh and http clone buttons3148 only shows the title of any of the clone buttons when append_link is false3149 clipboard_button3150 with default options3151 when no `text` attribute is not provided3152 shows copy to clipboard button with default configuration and no text set to copy3153 when `text` attribute is provided3154 shows copy to clipboard button with provided `text` to copy3155 when `title` attribute is provided3156 shows copy to clipboard button with provided `title` as tooltip3157 with `button_text` attribute provided3158 shows copy to clipboard button with provided `button_text` as button label3159 adds `gl-button-icon` class to icon3160 with `hide_tooltip` attribute provided3161 shows copy to clipboard button without tooltip support3162 with `hide_button_icon` attribute provided3163 shows copy to clipboard button without tooltip support3164 with `itemprop` attribute provided3165 shows copy to clipboard button with `itemprop` attribute3166 when variant option is provided3167 inherits the correct ButtonComponent class3168 when category option is provided3169 inherits the correct ButtonComponent class3170 when size option is provided3171 inherits the correct ButtonComponent class3172 deprecated_clipboard_button3173 with default options3174 when no `text` attribute is not provided3175 shows copy to clipboard button with default configuration and no text set to copy3176 when `text` attribute is provided3177 shows copy to clipboard button with provided `text` to copy3178 when `title` attribute is provided3179 shows copy to clipboard button with provided `title` as tooltip3180 with `hide_tooltip` attribute provided3181 shows copy to clipboard button without tooltip support3182 with `hide_button_icon` attribute provided3183 shows copy to clipboard button without tooltip support3184 with `itemprop` attribute provided3185 shows copy to clipboard button with `itemprop` attribute3186 #link_button_to3187 without block3188 renders a basic link button3189 variant option3190 renders the variant class3191 category option3192 renders the category class3193 size option3194 renders the small class3195 block option3196 renders the block class3197 selected option3198 renders the selected class3199 target option3200 renders the target attribute3201 method option3202 renders the data-method attribute3203 icon option3204 renders the icon3205 icon only3206 renders the icon-only class3207 arbitrary html options3208 renders the attributes3209 with block3210 renders a basic link button3211 variant option3212 renders the variant class3213 category option3214 renders the category class3215 size option3216 renders the small class3217 block option3218 renders the block class3219 selected option3220 renders the selected class3221 target option3222 renders the target attribute3223 method option3224 renders the data-method attribute3225 icon option3226 renders the icon3227 icon only3228 renders the icon-only class3229 arbitrary html options3230 renders the attributes3231Rubocop::Cop::RSpec::BeforeAllRoleAssignment3232 # order random3233 with `let`3234 and `before_all`3235 does not register an offense3236 and `before`3237 does not register an offense3238 with `let_it_be` variants3239 let_it_be: :let_it_be3240 and `before_all`3241 does not register an offense3242 and `before`3243 and without role methods3244 does not register an offense3245 and role methods3246 role_method: :add_guest3247 registers an offense3248 role_method: :add_reporter3249 registers an offense3250 role_method: :add_developer3251 registers an offense3252 role_method: :add_maintainer3253 registers an offense3254 role_method: :add_owner3255 registers an offense3256 role_method: :add_role3257 registers an offense3258 without nested contexts3259 registers an offense3260 with nested contexts3261 registers an offense3262 edge cases3263 with unrelated `let_it_be` definition3264 does not register an offense3265 with many role method calls3266 registers an offense3267 with alternative example groups3268 registers an offense3269 with `let_it_be` outside of the ancestors chain3270 does not register an offense3271 let_it_be: :let_it_be_with_reload3272 and `before_all`3273 does not register an offense3274 and `before`3275 and without role methods3276 does not register an offense3277 and role methods3278 role_method: :add_guest3279 registers an offense3280 role_method: :add_reporter3281 registers an offense3282 role_method: :add_developer3283 registers an offense3284 role_method: :add_maintainer3285 registers an offense3286 role_method: :add_owner3287 registers an offense3288 role_method: :add_role3289 registers an offense3290 without nested contexts3291 registers an offense3292 with nested contexts3293 registers an offense3294 edge cases3295 with unrelated `let_it_be` definition3296 does not register an offense3297 with many role method calls3298 registers an offense3299 with alternative example groups3300 registers an offense3301 with `let_it_be` outside of the ancestors chain3302 does not register an offense3303 let_it_be: :let_it_be_with_refind3304 and `before_all`3305 does not register an offense3306 and `before`3307 and without role methods3308 does not register an offense3309 and role methods3310 role_method: :add_guest3311 registers an offense3312 role_method: :add_reporter3313 registers an offense3314 role_method: :add_developer3315 registers an offense3316 role_method: :add_maintainer3317 registers an offense3318 role_method: :add_owner3319 registers an offense3320 role_method: :add_role3321 registers an offense3322 without nested contexts3323 registers an offense3324 with nested contexts3325 registers an offense3326 edge cases3327 with unrelated `let_it_be` definition3328 does not register an offense3329 with many role method calls3330 registers an offense3331 with alternative example groups3332 registers an offense3333 with `let_it_be` outside of the ancestors chain3334 does not register an offense3335Gitlab::GithubImport::Importer::ReleasesImporter3336 #execute3337 imports the releases in bulk3338 imports draft releases3339 is idempotent3340 #build_releases3341 returns an Array containing release rows3342 does not create releases that already exist3343 uses a default release description if none is provided3344 does not create releases that have a NULL tag3345 does not create duplicate release tags3346 does not create invalid release3347 #build_attributes3348 the returned Hash3349 returns the attributes of the release as a Hash3350 includes the tag name3351 includes the release description3352 includes the project ID3353 includes the created timestamp3354 includes the updated timestamp3355 includes the release name3356 author_id attribute3357 returns the Gitlab user_id when Github release author is found3358 returns ghost user when author is empty in Github release3359 when Github author is not found in Gitlab3360 returns project creator as author3361 #each_release3362 returns an Enumerator3363 yields every release to the Enumerator3364 #description_for3365 returns the description when present3366 returns a generated description when one is not present3367Members::CreateService3368 when the current user does not have permission to create members3369 raises a Gitlab::Access::AccessDeniedError3370 when a project maintainer attempts to add owners3371 raises a Gitlab::Access::AccessDeniedError3372 when passing an invalid source3373 raises a RuntimeError3374 when passing valid parameters3375 adds a user to members3376 when user_id is passed as an integer3377 successfully creates member3378 with user_id as an array of integers3379 successfully creates members3380 with user_id as an array of strings3381 successfully creates members3382 when executing on a group3383 adds a user to members3384 triggers a members added event3385 when only one user fails validations3386 triggers the members added and authorizations changed events3387 when all users fail validations3388 does not trigger the members added event3389 when passing no user ids3390 does not add a member3391 when passing many user ids3392 limits the number of users to 1003393 when passing an invalid access level3394 does not add a member3395 when passing an existing invite user id3396 allows already invited members to be re-invited by email and updates the member access3397 when adding a project_bot3398 when project_bot is already a member3399 does not update the member3400 when project_bot is not already a member3401 adds the member3402 when tracking the invite source3403 when invite_source is not passed3404 raises an error3405 when invite_source is passed3406 tracks the invite source from params3407 with an already existing member3408 tracks the invite source from params3409 when it is a net_new_user3410 tracks the invite source from params3411Gitlab::Ci::Badge::Pipeline::Status3412 #entity3413 always says pipeline3414 #template3415 returns badge template3416 #metadata3417 returns badge metadata3418 pipeline exists3419 pipeline success3420 #status3421 is successful3422 pipeline failed3423 #status3424 failed3425 when outdated pipeline for given ref exists3426 does not take outdated pipeline into account3427 when multiple pipelines exist for given sha3428 does not take outdated pipeline into account3429 when ignored_skipped is set to true3430 #status3431 uses latest non-skipped status3432 when ignored_skipped is set to false3433 #status3434 uses latest status3435 build does not exist3436 #status3437 is unknown3438ClusterablePresenter3439 .fabricate3440 creates an object from a descendant presenter3441 #can_create_cluster?3442 when clusterable is a group3443 behaves like appropriate member permissions3444 with a developer3445 is expected to be falsy3446 with a maintainer3447 is expected to be truthy3448 when clusterable is a project3449 behaves like appropriate member permissions3450 with a developer3451 is expected to be falsy3452 with a maintainer3453 is expected to be truthy3454 #can_add_cluster?3455 when clusterable is a group3456 behaves like appropriate member permissions3457 with a developer3458 is expected to be falsy3459 with a maintainer3460 is expected to be truthy3461 when clusterable is a project3462 behaves like appropriate member permissions3463 with a developer3464 is expected to be falsy3465 with a maintainer3466 is expected to be truthy3467 #can_admin_cluster?3468 when clusterable is a group3469 behaves like appropriate member permissions3470 with a developer3471 is expected to be falsy3472 with a maintainer3473 is expected to be truthy3474 when clusterable is a project3475 behaves like appropriate member permissions3476 with a developer3477 is expected to be falsy3478 with a maintainer3479 is expected to be truthy3480 #environments_cluster_path3481 is expected to be nil3482 #index_path3483 without options3484 is expected to eq "/groups/group215/-/clusters"3485 with options3486 is expected to eq "/groups/group216/-/clusters.json"3487BulkImports::Common::Pipelines::UploadsPipeline3488 when importing to group3489 #run3490 imports uploads into destination portable and removes tmpdir3491 skips loads on duplicates3492 when importing avatar3493 imports avatar3494 when something goes wrong3495 raises exception3496 #extract3497 downloads & extracts upload paths3498 #load3499 creates a file upload3500 when dynamic path is nil3501 returns3502 when path is a directory3503 returns3504 when path is a symlink3505 does not upload the file3506 when path has multiple hard links3507 does not upload the file3508 when path traverses3509 does not upload the file3510 when path is outside the tmpdir3511 does not upload the file3512 #after_run3513 removes tmp dir3514 when dir does not exist3515 does not attempt to remove tmpdir3516 when importing to project3517 #run3518 imports uploads into destination portable and removes tmpdir3519 skips loads on duplicates3520 when importing avatar3521 imports avatar3522 when something goes wrong3523 raises exception3524 #extract3525 downloads & extracts upload paths3526 #load3527 creates a file upload3528 when dynamic path is nil3529 returns3530 when path is a directory3531 returns3532 when path is a symlink3533 does not upload the file3534 when path has multiple hard links3535 does not upload the file3536 when path traverses3537 does not upload the file3538 when path is outside the tmpdir3539 does not upload the file3540 #after_run3541 removes tmp dir3542 when dir does not exist3543 does not attempt to remove tmpdir3544Sbom::PackageUrl::Decoder3545 # order random3546 #decode3547 valid maven purl3548 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => "1.3.4"}3549 basic valid maven purl without version3550 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}3551 valid go purl without version and with subpath3552 is expected to have attributes {:name => "genproto", :namespace => "google.golang.org", :qualifiers => nil, :subpath => "googleapis/api/annotations", :type => "golang", :version => nil}3553 valid go purl with version and subpath3554 is expected to have attributes {:name => "genproto", :namespace => "google.golang.org", :qualifiers => nil, :subpath => "googleapis/api/annotations", :type => "golang", :version => "abcdedf"}3555 bitbucket namespace and name should be lowercased3556 is expected to have attributes {:name => "pygments-main", :namespace => "birkenfeld", :qualifiers => nil, :subpath => nil, :type => "bitbucket", :version => "244fd47e07d1014f0aed9c"}3557 github namespace and name should be lowercased3558 is expected to have attributes {:name => "purl-spec", :namespace => "package-url", :qualifiers => nil, :subpath => nil, :type => "github", :version => "244fd47e07d1004f0aed9c"}3559 debian can use qualifiers3560 is expected to have attributes {:name => "curl", :namespace => "debian", :qualifiers => {"arch" => "i386", "distro" => "jessie"}, :subpath => nil, :type => "deb", :version => "7.50.3-1"}3561 docker uses qualifiers and hash image id as versions3562 is expected to have attributes {:name => "dockerimage", :namespace => "customer", :qualifiers => {"repository_url" => "gcr.io"}, :subpath => nil, :type => "docker", :version => "sha256:244fd47e07d1004f0aed9c"}3563 Java gem can use a qualifier3564 is expected to have attributes {:name => "jruby-launcher", :namespace => nil, :qualifiers => {"platform" => "java"}, :subpath => nil, :type => "gem", :version => "1.1.2"}3565 maven often uses qualifiers3566 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"}3567 maven pom reference3568 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"}3569 maven can come with a type qualifier3570 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"}3571 npm can be scoped3572 is expected to have attributes {:name => "animation", :namespace => "@angular", :qualifiers => nil, :subpath => nil, :type => "npm", :version => "12.3.1"}3573 nuget names are case sensitive3574 is expected to have attributes {:name => "EnterpriseLibrary.Common", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "nuget", :version => "6.0.1304"}3575 pypi names have special rules and not case sensitive3576 is expected to have attributes {:name => "django-package", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "pypi", :version => "1.11.1.dev1"}3577 rpm often use qualifiers3578 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"}3579 slash / after scheme is not significant3580 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}3581 double slash // after scheme is not significant3582 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}3583 slash /// after type is not significant3584 is expected to have attributes {:name => "io", :namespace => "org.apache.commons", :qualifiers => nil, :subpath => nil, :type => "maven", :version => nil}3585 valid maven purl with case sensitive namespace and name3586 is expected to have attributes {:name => "HTTPClient", :namespace => "HTTPClient", :qualifiers => nil, :subpath => nil, :type => "maven", :version => "0.3-3"}3587 valid maven purl containing a space in the version and qualifier3588 is expected to have attributes {:name => "myartifact", :namespace => "mygroup", :qualifiers => {"mykey" => "my value"}, :subpath => nil, :type => "maven", :version => "1.0.0 Final"}3589 valid conan purl3590 is expected to have attributes {:name => "cctz", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "conan", :version => "2.3"}3591 valid conan purl with namespace and qualifier channel3592 is expected to have attributes {:name => "cctz", :namespace => "bincrafters", :qualifiers => {"channel" => "stable"}, :subpath => nil, :type => "conan", :version => "2.3"}3593 valid conda purl with qualifiers3594 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"}3595 valid cran purl3596 is expected to have attributes {:name => "A3", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "cran", :version => "0.9.1"}3597 valid swift purl3598 is expected to have attributes {:name => "Alamofire", :namespace => "github.com/Alamofire", :qualifiers => nil, :subpath => nil, :type => "swift", :version => "5.4.3"}3599 valid hackage purl3600 is expected to have attributes {:name => "AC-HalfInteger", :namespace => nil, :qualifiers => nil, :subpath => nil, :type => "hackage", :version => "1.2.1"}3601 when no argument is passed3602 raises an error3603 when an invalid package URL string is passed3604 a scheme is always required3605 raises an error3606 a type is always required3607 raises an error3608 a name is required3609 raises an error3610 checks for invalid qualifier keys3611 raises an error3612 invalid conan purl only namespace3613 raises an error3614 invalid conan purl only channel qualifier3615 raises an error3616 invalid cran purl without name3617 raises an error3618 invalid cran purl without version3619 raises an error3620 invalid swift purl without namespace3621 raises an error3622 invalid swift purl without name3623 raises an error3624 invalid swift purl without version3625 raises an error3626 name and version are always required3627 raises an error3628 when namespace or subpath contains an encoded slash3629 purl: "pkg:golang/google.org/golang/genproto#googleapis%2fapi%2fannotations"3630 is expected to raise Sbom::PackageUrl::InvalidPackageUrl3631 purl: "pkg:golang/google.org%2fgolang/genproto#googleapis/api/annotations"3632 is expected to raise Sbom::PackageUrl::InvalidPackageUrl3633 when name contains an encoded slash3634 is expected to have attributes {:name => "golang/genproto", :namespace => "google.org", :qualifiers => nil, :subpath => "googleapis/api/annotations", :type => "golang", :version => nil}3635 with URL encoded segments3636 decodes them3637 when segments contain empty values3638 removes them from the segments3639 when qualifiers have no value3640 they are ignored3641MergeRequests::MergeabilityCheckBatchWorker3642 # order random3643 #perform3644 when some merge_requests do not exist3645 ignores unknown merge request ids3646 when some merge_requests needs mergeability checks3647 executes MergeabilityCheckService on merge requests that needs to be checked3648 structurally logs a failed mergeability check3649 when user is nil3650 does not run any mergeability checks3651 behaves like an idempotent worker3652 is labeled as idempotent3653 performs multiple times sequentially without raising an exception3654 is mergeable3655Gitlab::Sanitizers::Exif3656 #batch_clean3657 filters only jpg/tiff images by filename3658 with image uploads3659 processes all uploads if range ID is not set3660 processes only uploads in the selected range3661 processes only uploads for the selected uploader3662 processes only uploads created since specified date3663 pauses if sleep_time is set3664 #clean3665 no dry run3666 removes exif from the image3667 ignores image without exif3668 raises an error if the exiftool fails with an error3669 for files that do not have the correct MIME type3670 cleans only jpg/tiff images with the correct mime types3671 dry run3672 doesn't change the image3673 #clean_existing_path3674 no dry run3675 removes exif from the image3676 ignores image without exif3677 raises an error if the exiftool fails with an error3678 for files that do not have the correct MIME type from file3679 cleans only jpg/tiff images with the correct mime types3680 skip_unallowed_types is false3681 for files that do not have the correct MIME type from input content3682 raises an error if not jpg/tiff images with the correct mime types3683 for files that do not have the correct MIME type from input content3684 raises an error if not jpg/tiff images with the correct mime types3685 skip_unallowed_types is true3686 for files that do not have the correct MIME type from input content3687 cleans only jpg/tiff images with the correct mime types3688 for files that do not have the correct MIME type from input content3689 cleans only jpg/tiff images with the correct mime types3690 dry run3691 doesn't change the image3692 #extra_tags3693 returns a list of keys for exif file3694 returns an empty list for file with only whitelisted and ignored tags3695RuboCop::CodeReuseHelpers3696 # order random3697 delegates jh? to GitlabEdition3698 delegates ee? to GitlabEdition3699 #in_finder?3700 returns true for a node in the finders directory3701 returns false for a node outside the finders directory3702 #in_api?3703 returns true for a node in the API directory3704 returns false for a node outside the API directory3705 #file_path_for_node3706 returns the file path of a node3707 #name_of_receiver3708 returns the name of a send receiver3709 #in_service_class?3710 returns true for a node in the services directory3711 returns false for a node outside the services directory3712 #name_of_constant3713 returns the name of a constant3714 #in_worker?3715 returns true for a node in the workers directory3716 returns false for a node outside the workers directory3717 #each_send_node3718 yields every send node to the supplied block3719 #in_app_directory?3720 returns true for a directory in the CE app/ directory3721 returns true for a directory in the EE app/ directory3722 returns false for a directory in the lib/ directory3723 #disallow_send_to3724 disallows sending a message to a constant3725 #in_graphql_directory?3726 returns true for a directory in the FOSS app/graphql directory3727 returns true for a directory in the EE app/graphql directory3728 returns true for a directory in the EE app/graphql/ee directory3729 returns false for a directory in the FOSS app/graphql directory3730 returns false for a directory in the EE app/graphql directory3731 returns false for a directory in the EE app/graphql/ee directory3732 #each_class_method3733 yields every class method to the supplied block3734 #in_lib_directory?3735 returns true for a directory in the CE lib/ directory3736 returns true for a directory in the EE lib/ directory3737 returns false for a directory in the app/ directory3738 #send_receiver_name_ends_with?3739 returns true when the receiver ends with a suffix3740 returns false when the receiver is the same as a suffix3741 #in_spec?3742 returns true for a node in the spec directory3743 returns true for a node in the ee/spec directory3744 returns false for a node outside the spec directory3745 #in_presenter?3746 returns true for a node in the presenters directory3747 returns false for a node outside the presenters directory3748 #in_serializer?3749 returns true for a node in the serializers directory3750 returns false for a node outside the serializers directory3751 #send_to_constant?3752 returns true when sending to a constant3753 returns false when sending to something other than a constant3754 #in_graphql?3755 returns true for a node in the FOSS GraphQL directory3756 returns true for a node in the EE GraphQL directory3757 returns false for a node outside the GraphQL directory3758 #in_model?3759 returns true for a node in the models directory3760 returns false for a node outside the models directory3761IssuableExportCsvWorker3762 when issuable type is Issue3763 emails a CSV3764 ensures that project_id is passed to issues_finder3765 defines the loggable_arguments3766 removes sort parameter3767 calls the issue export service3768 with params3769 allows symbol access for IssuesFinder3770 when issuable type is MergeRequest3771 emails a CSV3772 calls the MR export service3773 calls the MergeRequest finder3774 behaves like export with selected fields3775 calls the export service with selected fields3776 for type WorkItem3777 emails a CSV3778 calls the work item export service3779 calls the WorkItemsFinder3780 behaves like export with selected fields3781 calls the export service with selected fields3782 when issuable type is User3783 is expected to raise ArgumentError3784Backup::GitalyBackup3785 unknown3786 fails to start unknown3787 create3788 hashed storage3789 behaves like creates a repository backup3790 creates repository bundles3791 erases any existing repository backups3792 raises when the exit code not zero3793 raises when gitaly_backup_path is not set3794 parallel option set3795 passes parallel option through3796 parallel_storage option set3797 passes parallel option through3798 server-side option set3799 passes option through3800 legacy storage3801 behaves like creates a repository backup3802 creates repository bundles3803 erases any existing repository backups3804 raises when the exit code not zero3805 raises when gitaly_backup_path is not set3806 parallel option set3807 passes parallel option through3808 parallel_storage option set3809 passes parallel option through3810 server-side option set3811 passes option through3812 custom SSL envs set3813 passes through SSL envs3814 restore3815 restores from repository bundles3816 clears specified storages when remove_all_repositories is set3817 raises when the exit code not zero3818 raises when gitaly_backup_path is not set3819 parallel option set3820 passes parallel option through3821 parallel_storage option set3822 passes parallel option through3823 server-side option set3824 passes option through3825 missing backup_id3826 wont set the option3827 missing backup_id3828 wont set the option3829Gitlab::Ci::Config::Entry::Variables3830 when entry config value has key-value pairs3831 behaves like valid config3832 #value3833 returns hash with key value strings3834 #errors3835 does not append errors3836 #valid?3837 is valid3838 #value_with_data3839 returns variable with data3840 #value_with_prefill_data3841 returns variable with prefill data3842 with numeric keys and values in the config3843 behaves like valid config3844 #value3845 returns hash with key value strings3846 #errors3847 does not append errors3848 #valid?3849 is valid3850 when key is an array3851 behaves like invalid config3852 #valid?3853 is not valid3854 #errors3855 saves errors3856 when value is a symbol3857 behaves like valid config3858 #value3859 returns hash with key value strings3860 #errors3861 does not append errors3862 #valid?3863 is valid3864 when value is a boolean3865 behaves like invalid config3866 #valid?3867 is not valid3868 #errors3869 saves errors3870 when entry config value has unallowed value key-value pair and value is a string3871 when there is no allowed_value_data metadata3872 behaves like invalid config3873 #valid?3874 is not valid3875 #errors3876 saves errors3877 when metadata has the allowed_value_data key3878 behaves like valid config3879 #value3880 returns hash with key value strings3881 #errors3882 does not append errors3883 #valid?3884 is valid3885 #value_with_data3886 returns variable with data3887 #value_with_prefill_data3888 returns variable with prefill data3889 when entry config value has options3890 when metadata has allowed_value_data3891 behaves like valid config3892 #value3893 returns hash with key value strings3894 #errors3895 does not append errors3896 #valid?3897 is valid3898 #value_with_data3899 returns variable with data3900 #value_with_prefill_data3901 returns variable with prefill data3902 when entry config value has key-value pair and hash3903 behaves like invalid config3904 #valid?3905 is not valid3906 #errors3907 saves errors3908 when metadata has allowed_value_data3909 behaves like valid config3910 #value3911 returns hash with key value strings3912 #errors3913 does not append errors3914 #valid?3915 is valid3916 #value_with_data3917 returns variable with data3918 #value_with_prefill_data3919 returns variable with prefill data3920 when entry value is an array3921 behaves like invalid config3922 #valid?3923 is not valid3924 #errors3925 saves errors3926 when metadata has allowed_value_data3927 when entry value has hash with other key-pairs3928 behaves like invalid config3929 #valid?3930 is not valid3931 #errors3932 saves errors3933 when entry config value has hash without description3934 behaves like valid config3935 #value3936 returns hash with key value strings3937 #errors3938 does not append errors3939 #valid?3940 is valid3941Profile::EventEntity3942 # order random3943 exposes fields3944 for noteable events3945 exposes noteable fields3946 with target3947 when target does not responds to :reference_link_text3948 exposes target fields3949 when target responds to :reference_link_text3950 exposes reference_link_text3951 when target is a wiki page3952 exposes web_url3953 when target is a work item3954 exposes `issue_type`3955 when target is an issue3956 exposes `issue_type`3957 without target3958 only exposes target.type3959 for private events3960 when include_private_contributions? is true3961 exposes only created_at, action, and author3962 when include_private_contributions? is false3963 is expected to be empty3964 with resource parent3965 exposes resource parent fields3966 for push events3967 exposes ref fields3968 exposes commit fields3969 exposes create_mr_path3970 with tag3971 behaves like returns ref path3972 is expected to be present3973 with branch3974 behaves like returns ref path3975 is expected to be present3976Gitlab::X509::Signature3977 # order random3978 with tag signature3979 with verified signature3980 with trusted certificate store3981 returns an unverified signature if the email matches but is not confirmed3982 when user email is confirmed3983 returns a verified signature if email does match3984 returns an unverified signature if email does not match3985 returns an unverified signature if email does match and time is wrong3986 returns an unverified signature if certificate is revoked3987 without trusted certificate within store3988 returns an unverified signature3989 with invalid signature3990 returns nil3991 with invalid message3992 returns nil3993 with commit signature3994 with verified signature3995 with trusted certificate store3996 behaves like a verified signature3997 returns a verified signature if email does match3998 returns a verified signature if email does match, case-insensitively3999 returns an unverified signature if email does not match4000 returns an unverified signature if email does match and time is wrong4001 returns an unverified signature if certificate is revoked4002 when the certificate contains multiple emails4003 and the email matches one of them4004 returns a verified signature4005 if the email matches but isn't confirmed4006 returns an unverified signature4007 with the certificate defined by OpenSSL::X509::DEFAULT_CERT_FILE4008 behaves like a verified signature4009 returns a verified signature if email does match4010 returns a verified signature if email does match, case-insensitively4011 returns an unverified signature if email does not match4012 returns an unverified signature if email does match and time is wrong4013 returns an unverified signature if certificate is revoked4014 when the certificate contains multiple emails4015 and the email matches one of them4016 returns a verified signature4017 if the email matches but isn't confirmed4018 returns an unverified signature4019 without trusted certificate within store4020 returns an unverified signature4021 with invalid signature4022 returns nil4023 with invalid commit message4024 returns nil4025 behaves like signature with type checking4026 signature type checkers4027 method: :gpg?, expected: false4028 is expected to eq false4029 method: :ssh?, expected: false4030 is expected to eq false4031 method: :x509?, expected: true4032 is expected to eq true4033 #signed_by_user4034 if email is not assigned to a user, return nil4035 if email is assigned to a user4036 returns user4037 with email4038 subjectAltName with email, othername4039 extracts email4040 when there are multiple emails4041 extracts all the emails4042 subjectAltName with othername, email4043 extracts email4044Ci::ArchiveTraceService#execute4045 when job is finished4046 creates an archived trace4047 integration hooks4048 is expected not to raise Exception4049 when trace is already archived4050 ignores an exception4051 does not create an archived trace4052 when live trace chunks still exist4053 removes the trace chunks4054 when associated data does not exist4055 removes the trace artifact and builds a new one4056 when the job is out of archival attempts4057 skips archiving4058 leaves a warning message in sidekiq log4059 job has archive and chunks4060 removes trace chunks4061 archive is not completed4062 cleanups any stale archive data4063 when the archival process is backed off4064 skips archiving4065 leaves a warning message in sidekiq log4066 when job is running4067 increments Prometheus counter, sends crash report to Sentry and ignore an error for continuing to archive4068 #batch_execute4069 archives multiple traces4070 processes traces independently4071 when timeout is reached4072 stops executing traces4073 when loop limit is reached4074 skips archiving4075 stops executing traces4076MergeRequests::PostMergeService4077 #execute4078 refreshes the number of open merge requests for a valid MR4079 updates metrics4080 calls the merge request activity counter4081 deletes non-latest diffs4082 clean up environments for the merge request4083 schedules CleanupRefsService4084 behaves like cache counters invalidator4085 invalidates counter cache for assignees4086 behaves like merge request reviewers cache counters invalidator4087 invalidates counter cache for reviewers4088 when there are issues to be closed4089 performs MergeRequests::CloseIssueWorker asynchronously4090 when issue is an external issue4091 executes Issues::CloseService4092 when the merge request has review apps4093 cancels all review app deployments4094Gitlab::Ci::Config::Normalizer4095 .normalize_jobs4096 with parallel config as integer4097 does not have original job4098 has parallelized jobs4099 sets job instance in options4100 parallelizes jobs with original config4101 when the job is not parallelized4102 returns the same hash4103 when there is a job with a slash in it4104 properly parallelizes job names4105 behaves like parallel dependencies4106 when job has dependencies on parallelized jobs4107 parallelizes dependencies4108 does not include original job name in RSpec::ExampleGroups::GitlabCiConfigNormalizer::NormalizeJobs::WithParallelConfigAsInteger::BehavesLikeParallelDependencies::WhenJobHasDependenciesOnParallelizedJobs::Anonymous4109 when there are dependencies which are both parallelized and not4110 parallelizes dependencies4111 includes the regular job in dependencies4112 behaves like parallel needs4113 when job has needs on parallelized jobs4114 parallelizes needs4115 when there are dependencies which are both parallelized and not4116 parallelizes dependencies4117 includes the regular job in dependencies4118 with a simple parallel matrix config4119 does not have original job4120 sets job instance in options4121 sets job variables4122 parallelizes jobs with original config4123 has parallelized jobs4124 behaves like parallel dependencies4125 when job has dependencies on parallelized jobs4126 parallelizes dependencies4127 does not include original job name in RSpec::ExampleGroups::GitlabCiConfigNormalizer::NormalizeJobs::WithASimpleParallelMatrixConfig::BehavesLikeParallelDependencies::WhenJobHasDependenciesOnParallelizedJobs::Anonymous4128 when there are dependencies which are both parallelized and not4129 parallelizes dependencies4130 includes the regular job in dependencies4131 behaves like parallel needs4132 when job has needs on parallelized jobs4133 parallelizes needs4134 when there are dependencies which are both parallelized and not4135 parallelizes dependencies4136 includes the regular job in dependencies4137 behaves like needs:parallel:matrix4138 when job has needs:parallel:matrix on parallelized jobs4139 parallelizes and only keeps needs specified by needs:parallel:matrix4140 with a complex parallel matrix config4141 behaves like parallel needs4142 when job has needs on parallelized jobs4143 parallelizes needs4144 when there are dependencies which are both parallelized and not4145 parallelizes dependencies4146 includes the regular job in dependencies4147 behaves like needs:parallel:matrix4148 when job has needs:parallel:matrix on parallelized jobs4149 parallelizes and only keeps needs specified by needs:parallel:matrix4150 when parallel config does not matches a factory4151 does not alter the job config4152 when jobs config is nil4153 is expected to eq {}4154Ci::BuildReportResult4155 behaves like cleanup by a loose foreign key4156 cleans up (delete or nullify) the model4157 associations4158 is expected to belong to build required: false4159 is expected to belong to project required: false4160 validations4161 is expected to validate that :project cannot be empty/falsy4162 is expected to validate that :build cannot be empty/falsy4163 when attributes are valid4164 returns no errors4165 when data is invalid4166 returns errors4167 when data tests is invalid4168 returns errors4169 #tests_name4170 returns the suite name4171 #tests_duration4172 returns the suite duration4173 #tests_success4174 returns the success count4175 #tests_failed4176 returns the failed count4177 #tests_errored4178 returns the errored count4179 #tests_skipped4180 returns the skipped count4181 partitioning4182 with build4183 copies the partition_id from build4184 when it is already set4185 does not change the partition_id value4186 without build4187 is expected to validate that :partition_id cannot be empty/falsy4188 does not change the partition_id value4189Gitlab::ImportExport::Group::RelationFactory4190 label object4191 does not have the original ID4192 does not have the original group_id4193 has the new group_id4194 excluded attributes4195 are removed from the imported object4196 behaves like Notes user references4197 when the importer is admin4198 and the note author is not mapped4199 is expected to eq #<User id:1473 @user829>4200 is expected to include "*By Administrator"4201 and the note author is the importer user4202 is expected to eq #<User id:1475 @user831>4203 is expected not to include "*By Administrator"4204 and the note author exists in the target instance4205 is expected to eq #<User id:1477 @user833>4206 is expected not to include "*By Administrator"4207 when the importer is not admin4208 and the note author is not mapped4209 is expected to eq #<User id:1481 @user837>4210 is expected to include "*By Administrator"4211 and the note author is the importer user4212 is expected to eq #<User id:1483 @user839>4213 is expected to include "*By Administrator"4214 and the note author exists in the target instance4215 is expected to eq #<User id:1486 @user842>4216 is expected to include "*By Administrator"4217 when relation is namespace_settings4218 is expected to eq nil4219Gitlab::GithubImport::Representation::DiffNote4220 .from_api_response4221 behaves like a DiffNote representation4222 returns an instance of DiffNote4223 the returned DiffNote4224 includes the number of the merge request4225 includes the file path of the diff4226 includes the commit ID4227 includes the created timestamp4228 includes the updated timestamp4229 includes the GitHub ID4230 returns the noteable type4231 #diff_hash4232 returns a Hash containing the diff details4233 #diff_position4234 when the diff is an addition4235 returns a Gitlab::Diff::Position4236 when the diff is an deletion4237 returns a Gitlab::Diff::Position4238 #github_identifiers4239 returns a hash with needed identifiers4240 #line_code4241 generates the proper line code4242 when comment on file4243 generates line code for first line4244 #note and #contains_suggestion?4245 includes the note body4246 when the note have a suggestion4247 returns the suggestion formatted in the note4248 when the note have a multiline suggestion4249 returns the multi-line suggestion formatted in the note4250 #author4251 includes the user details4252 when the author is empty4253 does not set the user if the response did not include a user4254 #discussion_id4255 finds or generates discussion_id value4256 .from_json_hash4257 behaves like a DiffNote representation4258 returns an instance of DiffNote4259 the returned DiffNote4260 includes the number of the merge request4261 includes the file path of the diff4262 includes the commit ID4263 includes the created timestamp4264 includes the updated timestamp4265 includes the GitHub ID4266 returns the noteable type4267 #diff_hash4268 returns a Hash containing the diff details4269 #diff_position4270 when the diff is an addition4271 returns a Gitlab::Diff::Position4272 when the diff is an deletion4273 returns a Gitlab::Diff::Position4274 #github_identifiers4275 returns a hash with needed identifiers4276 #line_code4277 generates the proper line code4278 when comment on file4279 generates line code for first line4280 #note and #contains_suggestion?4281 includes the note body4282 when the note have a suggestion4283 returns the suggestion formatted in the note4284 when the note have a multiline suggestion4285 returns the multi-line suggestion formatted in the note4286 #author4287 includes the user details4288 when the author is empty4289 does not set the user if the response did not include a user4290Types::Ci::JobBaseField4291 # order random4292 supports :alpha4293 adds information about the replacement if provided4294 does not allow :alpha and :deprecated together4295 appends to the description if given4296 does not append to the description if it is absent4297 supports named reasons: renamed4298 adds a formatted `deprecated_reason` to the subject4299 validations4300 raises an informative error if `deprecation_reason` is used4301 raises an error if a required property is missing4302 raises an error if milestone is not a String4303 authorized?4304 when :job_field_authorization is specified4305 with public field4306 current_field_name: :allow_failure4307 returns true without authorizing4308 current_field_name: :duration4309 returns true without authorizing4310 current_field_name: :id4311 returns true without authorizing4312 current_field_name: :kind4313 returns true without authorizing4314 current_field_name: :status4315 returns true without authorizing4316 current_field_name: :created_at4317 returns true without authorizing4318 current_field_name: :finished_at4319 returns true without authorizing4320 current_field_name: :queued_at4321 returns true without authorizing4322 current_field_name: :queued_duration4323 returns true without authorizing4324 current_field_name: :updated_at4325 returns true without authorizing4326 current_field_name: :runner4327 returns true without authorizing4328 with private field4329 when permission is not allowed4330 returns false4331 when permission is allowed4332 returns true4333 when :job_field_authorization is not specified4334 defaults to true4335 when field is authorized4336 tests the field authorization4337 tests the field authorization, if provided, when it succeeds4338 with field resolver4339 only tests the resolver authorization if it authorizes_object?4340 when resolver authorizes object4341 tests the resolver authorization, if provided4342 when field is authorized4343 tests field authorization before resolver authorization, when field auth fails4344 tests field authorization before resolver authorization, when field auth succeeds4345 #resolve4346 when late_extensions is given4347 registers the late extensions after the regular extensions4348 visible?4349 defaults to true4350 when subject is deprecated4351 defaults to true4352 returns false if `remove_deprecated` is true in context4353ContainerRegistry::Migration::ObserverWorker4354 #perform4355 when the migration feature flag is disabled4356 does nothing4357 when the migration is enabled4358 logs all the counts4359 with load balancing enabled4360 uses the replica4361Ci::DagJobEntity4362 #as_json4363 contains the name4364 behaves like matches schema4365 matches schema4366 when job is stage scheduled4367 contains the name scheduling_type4368 does not expose needs4369 behaves like matches schema4370 matches schema4371 when job is dag scheduled4372 contains the name scheduling_type4373 behaves like matches schema4374 matches schema4375 when job has needs4376 exposes the array of needs4377 behaves like matches schema4378 matches schema4379 when job has empty needs4380 exposes an empty array of needs4381 behaves like matches schema4382 matches schema4383Projects::AfterRenameService4384 #execute4385 renames a repository4386 updates project full path in gitaly4387 updates storage location4388 container registry with images4389 raises a RenameFailedError4390 attachments4391 keeps uploads folder location unchanged4392 when not rolled out4393 moves attachments folder to hashed storage4394 EventStore4395 publishes a ProjectPathChangedEvent4396Sidebars::Projects::Menus::InfrastructureMenu4397 behaves like not serializable as super_sidebar_menu_args4398 returns nil4399 #render?4400 when menu does not have any menu items4401 returns false4402 when menu has menu items4403 returns true4404 behavior based on access level setting4405 infrastructure_access_level: enabled, render: true4406 renders based on the infrastructure access level4407 infrastructure_access_level: disabled, render: false4408 renders based on the infrastructure access level4409 #link4410 when Kubernetes menu item is visible4411 menu link points to Kubernetes page4412 when Kubernetes menu item is not visible4413 menu link points to Terraform states page4414 when Terraform states menu is not visible4415 menu link points to Google Cloud page4416 Menu Items4417 Kubernetes4418 behaves like access rights checks4419 is expected not to be nil4420 when the user does not have access4421 is expected to be nil4422 Terraform states4423 behaves like access rights checks4424 is expected not to be nil4425 when the user does not have access4426 is expected to be nil4427 if terraform_state.enabled=true4428 behaves like access rights checks4429 is expected not to be nil4430 when the user does not have access4431 is expected to be nil4432 if terraform_state.enabled=false4433 is expected to be nil4434 Google Cloud4435 behaves like access rights checks4436 is expected not to be nil4437 when the user does not have access4438 is expected to be nil4439 when feature flag is turned off globally4440 is expected to be nil4441 when feature flag is enabled for specific project4442 behaves like access rights checks4443 is expected not to be nil4444 when the user does not have access4445 is expected to be nil4446 when feature flag is enabled for specific group4447 behaves like access rights checks4448 is expected not to be nil4449 when the user does not have access4450 is expected to be nil4451 when feature flag is enabled for specific project4452 behaves like access rights checks4453 is expected not to be nil4454 when the user does not have access4455 is expected to be nil4456 when instance is not configured for Google OAuth24457 is expected to be nil4458 AWS4459 behaves like access rights checks4460 is expected not to be nil4461 when the user does not have access4462 is expected to be nil4463 when feature flag is turned off globally4464 is expected to be nil4465 when feature flag is enabled for specific project4466 behaves like access rights checks4467 is expected not to be nil4468 when the user does not have access4469 is expected to be nil4470 when feature flag is enabled for specific group4471 behaves like access rights checks4472 is expected not to be nil4473 when the user does not have access4474 is expected to be nil4475 when feature flag is enabled for specific project4476 behaves like access rights checks4477 is expected not to be nil4478 when the user does not have access4479 is expected to be nil4480Admin::BroadcastMessagesHelper4481 # order random4482 #current_broadcast_banner_messages4483 user access level targeted messages4484 when in a project page4485 is expected to eq #<System::BroadcastMessage id: 1, message: "MyText", starts_at: "2023-10-20 08:50:58.571569998 +0000"...st_type: "banner", dismissable: nil, target_access_levels: [30], theme: "indigo", show_in_cli: true>4486 when in a group page4487 is expected to eq #<System::BroadcastMessage id: 1, message: "MyText", starts_at: "2023-10-20 08:50:58.571569998 +0000"...st_type: "banner", dismissable: nil, target_access_levels: [30], theme: "indigo", show_in_cli: true>4488 when not in a project, group, or sub-group page4489 is expected to be nil4490 #target_access_levels_display4491 joins access levels4492 #broadcast_message_status4493 returns Active4494 returns Expired4495 returns Pending4496 #render_broadcast_message4497 when message is banner4498 renders broadcast message4499 when message is notification4500 renders broadcast message4501 #broadcast_message4502 returns nil when no current message4503 includes the current message4504 #admin_broadcast_messages_data4505 returns the expected messages data attributes4506 has the correct iso formatted date4507 #current_broadcast_notification_message4508 with available broadcast notification messages4509 is expected to eq #<System::BroadcastMessage id: 3, message: "MyText", starts_at: "2023-10-20 08:50:59.821217221 +0000"...ype: "notification", dismissable: nil, target_access_levels: [], theme: "indigo", show_in_cli: true>4510 when last broadcast message is hidden4511 is expected to eq #<System::BroadcastMessage id: 4, message: "MyText", starts_at: "2023-10-19 08:50:59.867470018 +0000"...ype: "notification", dismissable: nil, target_access_levels: [], theme: "indigo", show_in_cli: true>4512 without broadcast notification messages4513 is expected to be nil4514 user access level targeted messages4515 when in a project page4516 is expected to eq #<System::BroadcastMessage id: 6, message: "MyText", starts_at: "2023-10-20 08:50:59.929296384 +0000"...e: "notification", dismissable: nil, target_access_levels: [30], theme: "indigo", show_in_cli: true>4517 when in a group page4518 is expected to eq #<System::BroadcastMessage id: 6, message: "MyText", starts_at: "2023-10-20 08:50:59.929296384 +0000"...e: "notification", dismissable: nil, target_access_levels: [30], theme: "indigo", show_in_cli: true>4519 when not in a project, group, or sub-group page4520 is expected to be nil4521 #broadcast_message_data4522 returns the expected message data attributes4523 has the correct iso formatted date4524CommitSignatures::SshSignature4525 behaves like having unique enum values4526 has unique values in "verification_status"4527 behaves like commit signature4528 associations4529 is expected to belong to project required: true4530 validation4531 is expected to validate that :commit_sha cannot be empty/falsy4532 is expected to validate that :project_id cannot be empty/falsy4533 .safe_create!4534 finds a signature by commit sha if it existed4535 creates a new signature if it was not found4536 assigns the correct attributes when creating4537 does not raise an error in case of a race condition4538 #commit4539 fetches the commit through the project4540 behaves like signature with type checking4541 signature type checkers4542 method: :gpg?, expected: false4543 is expected to eq false4544 method: :ssh?, expected: true4545 is expected to eq true4546 method: :x509?, expected: false4547 is expected to eq false4548 associations4549 is expected to belong to key optional: true4550 .by_commit_sha scope4551 returns all signatures by sha4552 #key_fingerprint_sha2564553 returns the fingerprint_sha256 associated with the SSH key4554 when the SSH key is no longer associated with the signature4555 returns the fingerprint_sha256 stored in signature4556 #signed_by_user4557 returns the user associated with the SSH key4558 when the SSH key is no longer associated with the signature4559 returns the user stored in signature4560Integrations::Zentao4561 behaves like Integrations::ResetSecretFields4562 #exposing_secrets_fields4563 returns an array of strings4564 #reset_secret_fields?4565 returns false if no exposing field has changed4566 returns true if any exposing field has changed4567 validation callback4568 when an exposing field has changed4569 clears all secret fields4570 when a secret field has been updated4571 does not clear this secret field4572 when a secret field has been updated with the same value4573 does not clear this secret field4574 when no exposing field has changed4575 does not clear any secret fields4576 set_default_data4577 when gitlab.yml was initialized4578 is prepopulated with the settings4579 #create4580 stores data in data_fields correctly4581 #fields4582 returns custom fields4583 #test4584 gets response from Gitlab::Zentao::Client#ping4585 #help4586 renders prompt information4587 #avatar_url4588 returns the avatar image path4589 #client_url4590 when api_url is set4591 returns the api_url4592 when api_url is not set4593 returns the url4594Gitlab::SidekiqConfig::WorkerRouter4595 .queue_name_from_worker_name4596 worker: #<Class:0x00007a1d636bd1e0>, expected_name: "pages"4597 generates a valid queue name from worker name4598 worker: #<Class:0x00007a1d636aeca8>, expected_name: "pipeline_notification"4599 generates a valid queue name from worker name4600 worker: #<Class:0x00007a1d636ac2c8>, expected_name: "post_receive"4601 generates a valid queue name from worker name4602 worker: #<Class:0x00007a1d636a4870>, expected_name: "git:post_receive"4603 generates a valid queue name from worker name4604 worker: #<Class:0x00007a1d636990b0>, expected_name: "pipeline_hooks:pipeline_hooks"4605 generates a valid queue name from worker name4606 worker: #<Class:0x00007a1d636918d8>, expected_name: "jira_import_advance_stage"4607 generates a valid queue name from worker name4608 .global4609 valid routing rules4610 routing_rules: [], expected_queue: "foo_bar"4611 routes the worker to the correct queue4612 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"4613 routes the worker to the correct queue4614 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=cpu", nil], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"4615 routes the worker to the correct queue4616 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=cpu", ""], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"4617 routes the worker to the correct queue4618 routing_rules: [["feature_category=feature_a|urgency=high", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "queue_a"4619 routes the worker to the correct queue4620 routing_rules: [["feature_category=feature_b|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "queue_a"4621 routes the worker to the correct queue4622 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_c"4623 routes the worker to the correct queue4624 routing_rules: [["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_a"4625 routes the worker to the correct queue4626 routing_rules: [["feature_category=feature_a", "queue_a"], ["feature_category=feature_a", "queue_b"], ["feature_category=feature_a", "queue_c"]], expected_queue: "queue_a"4627 routes the worker to the correct queue4628 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=cheap", "queue_c"], ["*", "default"]], expected_queue: "default"4629 routes the worker to the correct queue4630 routing_rules: [["*", "queue_foo"], ["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_foo"4631 routes the worker to the correct queue4632 routing_rules: [["name=foo_bar", "queue_foo"], ["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_foo"4633 routes the worker to the correct queue4634 invalid routing rules4635 invalid routing rules format4636 captures the error and falls back to an empty route4637 invalid predicate4638 captures the error and falls back to an empty route4639 when routing rules is missing `*` as the last rule4640 logs a warning4641 when routing rules has a `*` rule as the last rule4642 does not log any warning4643 #route4644 valid routing rules4645 routing_rules: [], expected_queue: "foo_bar"4646 routes the worker to the correct queue4647 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"4648 routes the worker to the correct queue4649 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=cpu", nil], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"4650 routes the worker to the correct queue4651 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=cpu", ""], ["tags=cheap", "queue_c"]], expected_queue: "foo_bar"4652 routes the worker to the correct queue4653 routing_rules: [["feature_category=feature_a|urgency=high", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "queue_a"4654 routes the worker to the correct queue4655 routing_rules: [["feature_category=feature_b|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=cheap", "queue_c"]], expected_queue: "queue_a"4656 routes the worker to the correct queue4657 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_c"4658 routes the worker to the correct queue4659 routing_rules: [["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_a"4660 routes the worker to the correct queue4661 routing_rules: [["feature_category=feature_a", "queue_a"], ["feature_category=feature_a", "queue_b"], ["feature_category=feature_a", "queue_c"]], expected_queue: "queue_a"4662 routes the worker to the correct queue4663 routing_rules: [["feature_category=feature_b|urgency=high", "queue_a"], ["resource_boundary=memory", "queue_b"], ["tags=cheap", "queue_c"], ["*", "default"]], expected_queue: "default"4664 routes the worker to the correct queue4665 routing_rules: [["*", "queue_foo"], ["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_foo"4666 routes the worker to the correct queue4667 routing_rules: [["name=foo_bar", "queue_foo"], ["feature_category=feature_a|urgency=low", "queue_a"], ["resource_boundary=cpu", "queue_b"], ["tags=expensive", "queue_c"]], expected_queue: "queue_foo"4668 routes the worker to the correct queue4669 invalid routing rules4670 raises an exception4671Packages::DependencyLink4672 relationships4673 is expected to belong to package required: false inverse_of => dependency_links4674 is expected to belong to dependency required: false inverse_of => dependency_links4675 is expected to have one nuget_metadatum inverse_of => dependency_link4676 validations4677 is expected to validate that :package cannot be empty/falsy4678 is expected to validate that :dependency cannot be empty/falsy4679 package_id and package_dependency_id uniqueness for dependency_type4680 is not valid4681 with multiple links4682 .with_dependency_type4683 returns links of the given type4684 .for_package4685 returns the link for the given package4686 .dependency_ids_grouped_by_type4687 aggregates dependencies by type4688 .for_packages4689 returns dependency links for selected packages4690 .select_dependency_id4691 returns only dependency_id4692Reenqueuer4693 disables Sidekiq retries4694 behaves like reenqueuer4695 implements lease_timeout4696 uses the :none deduplication strategy4697 #perform4698 tries to obtain a lease4699 behaves like #perform is rate limited to 1 call per4700 when the work finishes in 0 seconds4701 sleeps exactly the minimum duration4702 when the work finishes in 10% of minimum duration4703 sleeps 90% of minimum duration4704 when the work finishes in 90% of minimum duration4705 sleeps 10% of minimum duration4706 when the work finishes exactly at minimum duration4707 does not sleep4708 when the work takes 10% longer than minimum duration4709 does not sleep4710 when the work takes twice as long as minimum duration4711 does not sleep4712 #perform4713 when the lease is available4714 does perform4715 when the lease is taken4716 does not perform4717 when #perform returns truthy4718 reenqueues the worker4719 returns the original value from #perform4720 when #perform returns falsey4721 does not reenqueue the worker4722 returns the original value from #perform4723Reenqueuer::ReenqueuerSleeper4724 behaves like #perform is rate limited to 1 call per4725 when the work finishes in 0 seconds4726 sleeps exactly the minimum duration4727 when the work finishes in 10% of minimum duration4728 sleeps 90% of minimum duration4729 when the work finishes in 90% of minimum duration4730 sleeps 10% of minimum duration4731 when the work finishes exactly at minimum duration4732 does not sleep4733 when the work takes 10% longer than minimum duration4734 does not sleep4735 when the work takes twice as long as minimum duration4736 does not sleep4737 #ensure_minimum_duration4738 when the block completes well before the minimum duration4739 sleeps until the minimum duration4740 when the block completes just before the minimum duration4741 sleeps until the minimum duration4742 when the block completes just after the minimum duration4743 does not sleep4744 when the block completes well after the minimum duration4745 does not sleep4746BadgesHelper4747 #gl_badge_tag4748 creates a badge with given text4749 adds style classes4750 adds custom classes4751 applies custom html attributes4752 block content4753 renders block content4754 changes the function signature4755 variants4756 defaults to muted4757 falls back to default given an unknown variant4758 variant: :muted4759 sets the variant class4760 variant: :neutral4761 sets the variant class4762 variant: :info4763 sets the variant class4764 variant: :success4765 sets the variant class4766 variant: :warning4767 sets the variant class4768 variant: :danger4769 sets the variant class4770 sizes4771 defaults to md4772 falls back to default given an unknown size4773 size: :sm4774 sets the size class4775 size: :md4776 sets the size class4777 size: :lg4778 sets the size class4779 icons4780 with text4781 renders an icon4782 adds a spacing class and any custom classes to the icon4783 icon only4784 adds an img role to element4785 adds aria-label to element4786 does not add a spacing class to the icon4787 given an href4788 creates a badge link4789DiscussionDiffFileEntity4790 when there is no merge request4791 behaves like diff file discussion entity4792 behaves like diff file base entity4793 exposes essential attributes4794 when diff file does not have a blob and content sha4795 exposes some attributes as nil4796 when there is a merge request4797 exposes additional attributes4798 exposes no diff lines4799 behaves like diff file discussion entity4800 behaves like diff file base entity4801 exposes essential attributes4802 when diff file does not have a blob and content sha4803 exposes some attributes as nil4804PersonalProjectsFinder4805 without a current user4806 is expected to eq [#<Project id:434 user853/pblc>>]4807 with a current user4808 normal user4809 is expected to contain exactly #<Project id:438 user853/pblc>>, #<Project id:440 user853/C>>, and #<Project id:439 user853/mepmep>>4810 external4811 is expected to contain exactly #<Project id:442 user853/pblc>> and #<Project id:443 user853/mepmep>>4812 and searching with an admin user4813 is expected to contain exactly #<Project id:446 user853/pblc>>, #<Project id:448 user853/C>>, #<Project id:449 user853/D>>, and #<Project id:447 user853/mepmep>>4814gitlab:git rake tasks4815 fsck4816 outputs the integrity check for a repo4817 checksum_projects4818 outputs the checksum for a repo4819 outputs blank checksum for no repo4820 outputs zeroes for empty repo4821 outputs errors4822Security::CiConfiguration::SecretDetectionCreateService4823 #execute4824 user does not belong to project4825 returns an error status4826 does not track a snowplow event4827 user belongs to project4828 does track the snowplow event4829 raises exception if the user does not have permission to create a new branch4830 when exception is raised4831 when branch was created4832 tries to rm branch4833 when branch was not created4834 does not try to rm branch4835 with no parameters4836 returns the path to create a new merge request4837 when the project has a non-default ci config file4838 does track the snowplow event4839 when existing ci config contains anchors/aliases4840 returns a ServiceResponse error4841 when parsing existing ci config gives a Psych error4842 returns a ServiceResponse error4843 when parsing existing ci config gives any other error4844 is successful4845 when the project is empty4846 returns a ServiceResponse error4847Gitlab::Database::Partitioning4848 .register_models4849 ensure that the registered models have partitioning strategy4850 fails when partitioning_strategy is not specified for the model4851 .sync_partitions_ignore_db_error4852 calls sync_partitions4853 when ActiveRecord::ActiveRecordError is raised4854 ignores it4855 when PG::Error is raised4856 ignores it4857 when DISABLE_POSTGRES_PARTITION_CREATION_ON_STARTUP is set4858 does not call sync_partitions4859 .sync_partitions4860 manages partitions for each given model4861 for analyze4862 when analyze_interval is not set4863 behaves like not running analyze4864 is expected not to include /ANALYZE VERBOSE /4865 when analyze is set to false4866 behaves like not running analyze4867 is expected not to include /ANALYZE VERBOSE /4868 when analyze_interval is set4869INFO: analyzing "public._test_partitioning_test1" inheritance tree4870INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test1_000000"4871INFO: "_test_partitioning_test1_000000": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4872INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test1_202310"4873INFO: "_test_partitioning_test1_202310": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4874INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test1_202311"4875INFO: "_test_partitioning_test1_202311": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4876INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test1_202312"4877INFO: "_test_partitioning_test1_202312": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4878INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test1_202401"4879INFO: "_test_partitioning_test1_202401": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4880INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test1_202402"4881INFO: "_test_partitioning_test1_202402": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4882INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test1_202403"4883INFO: "_test_partitioning_test1_202403": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4884INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test1_202404"4885INFO: "_test_partitioning_test1_202404": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4886INFO: analyzing "public._test_partitioning_test2" inheritance tree4887INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test2_000000"4888INFO: "_test_partitioning_test2_000000": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4889INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test2_202310"4890INFO: "_test_partitioning_test2_202310": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4891INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test2_202311"4892INFO: "_test_partitioning_test2_202311": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4893INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test2_202312"4894INFO: "_test_partitioning_test2_202312": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4895INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test2_202401"4896INFO: "_test_partitioning_test2_202401": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4897INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test2_202402"4898INFO: "_test_partitioning_test2_202402": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4899INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test2_202403"4900INFO: "_test_partitioning_test2_202403": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4901INFO: analyzing "gitlab_partitions_dynamic._test_partitioning_test2_202404"4902INFO: "_test_partitioning_test2_202404": scanned 0 of 0 pages, containing 0 live rows and 0 dead rows; 0 rows in sample, 0 estimated total rows4903 runs analyze4904 analyze is false4905 behaves like not running analyze4906 is expected not to include /ANALYZE VERBOSE /4907 with multiple databases4908 creates partitions in each database (PENDING: Skipping because ci is shared or doesn't not exist)4909 without ci database4910 only creates partitions for main database4911 when no partitioned models are given4912 manages partitions for each registered model4913 when only a specific database is requested4914 manages partitions for models for the given database (PENDING: Skipping because ci is shared or doesn't not exist)4915 when partition_manager_sync_partitions feature flag is disabled4916 skips sync_partitions4917 when disallow_database_ddl_feature_flags feature flag is enabled4918 skips sync_partitions4919 .report_metrics4920 when no partitioned models are given4921 reports metrics for each registered model4922 when partitioned models are given4923 reports metrics for each given model4924 .drop_detached_partitions4925 drops detached partitions for each database4926 when the feature flag is disabled4927 does not call the DetachedPartitionDropper4928 when the feature disallow DDL feature flags is enabled4929 does not call the DetachedPartitionDropper4930Enumerator#next patch fix4931 Enumerator4932 #next4933 normal yield4934 returns yielded value4935 end of iteration4936 does not fix up StopIteration4937 nested enum object4938 fixes up StopIteration thrown by another instance of #next4939 arguments error4940 does not fix up ArgumentError4941 error4942 fixes up StopIteration4943 fixes up ArgumentError4944 adds backtrace from other errors4945 #next_values4946 normal yield4947 returns yielded value4948 end of iteration4949 does not fix up StopIteration4950 nested enum object4951 fixes up StopIteration thrown by another instance of #next4952 arguments error4953 does not fix up ArgumentError4954 error4955 fixes up StopIteration4956 fixes up ArgumentError4957 adds backtrace from other errors4958 #peek4959 normal yield4960 returns yielded value4961 end of iteration4962 does not fix up StopIteration4963 nested enum object4964 fixes up StopIteration thrown by another instance of #next4965 arguments error4966 does not fix up ArgumentError4967 error4968 fixes up StopIteration4969 fixes up ArgumentError4970 adds backtrace from other errors4971 #peek_values4972 normal yield4973 returns yielded value4974 end of iteration4975 does not fix up StopIteration4976 nested enum object4977 fixes up StopIteration thrown by another instance of #next4978 arguments error4979 does not fix up ArgumentError4980 error4981 fixes up StopIteration4982 fixes up ArgumentError4983 adds backtrace from other errors4984Ci::RunnerManagerBuild4985 # order random4986 is expected to belong to build required: false4987 is expected to belong to runner_manager required: false4988 .for_build4989 with valid build_id4990 is expected to contain exactly #<Ci::RunnerManagerBuild partition_id: 100, build_id: 114, runner_machine_id: 1>4991 with valid build_ids4992 is expected to eq #<ActiveRecord::Relation [#<Ci::RunnerManagerBuild partition_id: 100, build_id: 114, runner_machine_id: 1>, #<Ci::RunnerManagerBuild partition_id: 100, build_id: 115, runner_machine_id: 1>]>4993 with non-existeng build_id4994 is expected to be empty4995 ci_sliding_list partitioning4996 is expected to be empty4997 is expected to be empty4998 is expected to include #<Gitlab::Database::Partitioning::SingleNumericListPartition:0x00007a1d785b5828 @table="p_ci_runner_machine_builds", @value=100, @partition_name="ci_runner_machine_builds_100">4999 is expected to be present5000 partitioning5001 with build5002 sets partition_id to the current partition value5003 when it is already set5004 does not change the partition_id value5005 without build5006 is expected to validate that :partition_id cannot be empty/falsy5007 does not change the partition_id value5008 loose foreign key on p_ci_runner_manager_builds.runner_manager_id5009 behaves like cleanup by a loose foreign key5010 cleans up (delete or nullify) the model5011 .pluck_runner_manager_id_and_build_id5012 with default scope5013 is expected to eq {114=>1}5014 with scope excluding build5015 is expected to be empty5016Gitlab::Ci::Status::Build::Retried5017 #text5018 does not override status text5019 #icon5020 does not override status icon5021 #group5022 does not override status group5023 #favicon5024 does not override status label5025 #label5026 does not override status label5027 #badge_tooltip5028 returns status5029 #status_tooltip5030 with a failed build5031 does override status_tooltip5032 with another build5033 does override status_tooltip5034 .matches?5035 with a retried build5036 is expected to be truthy5037 with a build that has not been retried5038 is expected to be falsy5039Gitlab::Ci::Status::Build::Play5040 #label5041 has a label that says it is a manual action5042 #status_tooltip5043 does not override status status_tooltip5044 #badge_tooltip5045 does not override status badge_tooltip5046 #has_action?5047 when user is allowed to update build5048 when user is allowed to trigger protected action5049 is expected to have action5050 when user can not push to the branch5051 is expected not to have action5052 when user is not allowed to update build5053 is expected not to have action5054 #action_path5055 is expected to include "122/play"5056 #action_icon5057 is expected to eq "play"5058 #action_title5059 is expected to eq "Play"5060 #action_button_title5061 is expected to eq "Run job"5062 .matches?5063 when build is playable5064 when build stops an environment5065 does not match5066 when build does not stop an environment5067 is a correct match5068 when build is not playable5069 does not match5070Gitlab::Ci::Status::Build::Scheduled5071 #illustration5072 is expected to include :image, :size, and :title5073 #status_tooltip5074 has a placeholder for the remaining time5075 .matches?5076 when build is scheduled and scheduled_at is present5077 is expected to be truthy5078 when build is scheduled5079 is expected to be falsy5080 when scheduled_at is present5081 is expected to be falsy5082GoogleApi::CloudPlatform::Client5083 .session_key_for_redirect_uri5084 creates a new session key5085 .new_session_key_for_redirect_uri5086 generates a new session key5087 #validate_token5088 when token is nil5089 is expected to be falsy5090 when expires_at is nil5091 is expected to be falsy5092 when expires in 1 hour5093 is expected to be truthy5094 when expires in 10 minutes5095 is expected to be falsy5096 #user_agent_header5097 returns a RequestOptions object5098 has the correct GitLab version in User-Agent header5099 #list_projects5100 calls Google Api CloudResourceManagerService#list_projects5101 #create_service_account5102 calls Google Api IamService#create_service_account5103 #create_service_account_key5104 calls Google Api IamService#create_service_account_key5105 grant_service_account_roles5106 calls Google Api CloudResourceManager#set_iam_policy5107 #enable_cloud_run5108 calls Google Api IamService#create_service_account_key5109 #enable_artifacts_registry5110 calls Google Api IamService#create_service_account_key5111 #enable_cloud_build5112 calls Google Api IamService#create_service_account_key5113 #enable_cloud_sql_admin5114 calls Google Api ServiceUsageService5115 #enable_compute5116 calls Google Api ServiceUsageService5117 #enable_service_networking5118 calls Google Api ServiceUsageService5119 #enable_visionai5120 calls Google Api ServiceUsageService5121 #revoke_authorizations5122 calls the revoke endpoint5123 #create_cloudsql_database5124 calls Google Api SQLAdminService#insert_database5125 #create_cloudsql_user5126 calls Google Api SQLAdminService#insert_user5127 #get_cloudsql_instance5128 calls Google Api SQLAdminService#get_instance5129 #list_cloudsql_databases5130 calls Google Api SQLAdminService#list_databases5131 #list_cloudsql_users5132 calls Google Api SQLAdminService#list_users5133 #create_cloudsql_instance5134 calls Google Api SQLAdminService#insert_instance5135Gitlab::WebIde::Config::Entry::Global5136 .nodes5137 returns a hash5138 when filtering all the entry/node names5139 contains the expected node names5140 when configuration is valid5141 when some entries defined5142 #compose!5143 creates nodes hash5144 creates node object for each entry5145 creates node object using valid class5146 sets correct description for nodes5147 #leaf?5148 is not leaf5149 when not composed5150 #terminal_value5151 returns nil5152 #leaf?5153 is leaf5154 when composed5155 #errors5156 has no errors5157 #terminal_value5158 returns correct script5159 when configuration is not valid5160 when job does not have valid before script5161 #errors5162 reports errors about missing script5163 when value is not a hash5164 #valid?5165 is not valid5166 #errors5167 returns error about invalid type5168 #specified?5169 is concrete entry that is defined5170 #[]5171 when entry exists5172 returns correct entry5173 when entry does not exist5174 always return unspecified node5175WorkItems::RelatedWorkItemLinks::CreateService5176 # order random5177 #execute5178 behaves like issuable link creation5179 #execute5180 when the items list is empty5181 returns error5182 when Issuable not found5183 returns error5184 no relationship is created5185 when user has no permission to target issuable5186 returns error5187 no relationship is created5188 source and target are the same issuable5189 does not create notes5190 no relationship is created5191 when there is an issuable to relate5192 creates relationships5193 returns success status and created links5194 creates notes5195 when reference of any already related issue is present5196 creates notes only for new relations5197 when reference of all related issue are present5198 returns error status5199Gitlab::Email::ServiceDeskEmail5200 # order random5201 .key_from_address5202 when service desk address is set5203 returns key5204 when service desk address is not set5205 returns nil5206 behaves like common email methods5207 behaves like enabled? method for email5208 value: false, address: nil, result: false5209 is expected to eq false5210 value: false, address: "replies+%{key}@example.com", result: false5211 is expected to eq false5212 value: true, address: nil, result: false5213 is expected to eq false5214 value: true, address: "replies+%{key}@example.com", result: true5215 is expected to eq true5216 behaves like supports_wildcard? method for email5217 when address contains the wildcard placeholder5218 confirms that wildcard is supported5219 when address doesn't contain the wildcard placeholder5220 returns that wildcard is not supported5221 when address is nil5222 returns that wildcard is not supported5223 behaves like key_from_fallback_message_id method for email5224 returns reply key5225 behaves like supports_issue_creation? method for email5226 enabled_value: false, supports_wildcard_value: false, result: false5227 is expected to eq false5228 enabled_value: false, supports_wildcard_value: true, result: false5229 is expected to eq false5230 enabled_value: true, supports_wildcard_value: false, result: false5231 is expected to eq false5232 enabled_value: true, supports_wildcard_value: true, result: true5233 is expected to eq true5234 behaves like reply_address method for email5235 returns the address with an interpolated reply key5236 behaves like unsubscribe_address method for email5237 returns the address with interpolated reply key and unsubscribe suffix5238 behaves like scan_fallback_references method for email5239 returns reply key5240 .address_for_key5241 when service desk address is set5242 returns address5243 when service desk address is not set5244 returns nil5245Gitlab::Metrics::Subscribers::RailsCache5246 when receiving multiple instrumentation hits in a transaction5247 does not raise InvalidLabelSetError error5248 #cache_read5249 increments the cache_read duration5250 with a transaction5251 with hit event5252 when super operation is fetch5253 does not increment cache read miss total5254 with miss event5255 increments the cache_read_miss total5256 when super operation is fetch5257 does not increment cache read miss total5258 #cache_read_multi5259 observes read_multi duration5260 with a transaction5261 observes multi-key count5262 with no transaction5263 does not observes multi-key count5264 #cache_write5265 observes write duration5266 #cache_delete5267 observes delete duration5268 #cache_exist?5269 observes the exists duration5270 #cache_fetch_hit5271 without a transaction5272 returns5273 with a transaction5274 increments the cache_read_hit count5275 #cache_generate5276 without a transaction5277 returns5278 with a transaction5279 increments the cache_fetch_miss count and cache_read_miss total5280 #observe5281 without a transaction5282 returns5283 with a transaction5284 observes cache metric5285 increments the operations total5286gitlab:doctor:reset_encrypted_tokens5287 # order random5288 regenerates broken token if DRY_RUN is set to false5289 properly parces parameters from the environment variables5290 doesn't do anything in DRY_RUN mode(default)5291Gitlab::APIAuthentication::TokenLocator5292 .new5293 with a valid type5294 creates a new instance5295 with an invalid type5296 raises ActiveModel::ValidationError5297 #extract5298 with :http_basic_auth5299 without credentials5300 returns nil5301 with credentials5302 returns the credentials5303 with :http_token5304 without credentials5305 returns nil5306 with credentials5307 returns the credentials5308 with :http_bearer_token5309 without credentials5310 returns nil5311 with credentials5312 returns the credentials5313 with :http_deploy_token_header5314 without credentials5315 returns nil5316 with credentials5317 returns the credentials5318 with :http_job_token_header5319 without credentials5320 returns nil5321 with credentials5322 returns the credentials5323 with :http_private_token_header5324 without credentials5325 returns nil5326 with credentials5327 returns the credentials5328 with :http_header5329 without credentials5330 returns nil5331 with credentials5332 returns the credentials5333 with :token_param5334 without credentials5335 returns nil5336 with credentials5337 returns the credentials5338Gitlab::Kubernetes::RolloutStatus5339 #deployments5340 stores the deployments5341 #instances5342 for stable track5343 stores the union of deployment instances5344 for stable track5345 sorts stable instances last5346 #completion5347 when all instances are finished5348 is expected to eq 1005349 when half of the instances are finished5350 is expected to eq 505351 with one deployment5352 sets the completion percentage when a deployment has more running pods than desired5353 with two deployments on different tracks5354 sets the completion percentage when all pods are complete5355 with two deployments that both have track set to "stable"5356 sets the completion percentage when all pods are complete5357 sets the completion percentage when no pods are complete5358 sets the completion percentage when a quarter of the pods are complete5359 with two deployments, one with track set to "stable" and one with no track label5360 sets the completion percentage when all pods are complete5361 sets the completion percentage when no pods are complete5362 sets the completion percentage when a third of the pods are complete5363 #complete?5364 when all instances are finished5365 is expected to be truthy5366 when half of the instances are finished5367 is expected to be falsy5368 #found?5369 when the specs are passed5370 is expected to be found5371 when list of specs is empty5372 is expected not to be found5373 .loading5374 is expected to be loading5375 #not_found?5376 when the specs are passed5377 is expected not to be not found5378 when list of specs is empty5379 is expected to be not found5380 #canary_ingress_exists?5381 when canary ingress exists5382 returns true5383 when canary ingress does not exist5384 returns false5385Gitlab::Ci::Pipeline::Seed::Build::Cache5386 #attributes5387 with cache:key5388 is expected to include {:key => "a-key", :paths => ["vendor/ruby"]}5389 with cache:key as a symbol5390 is expected to include {:key => "a_key", :paths => ["vendor/ruby"]}5391 with cache:key:files5392 with existing files5393 behaves like version and gemfile files5394 without a prefix5395 builds a string key with an index and file names as a prefix5396 with files starting with ./5397 behaves like version and gemfile files5398 without a prefix5399 builds a string key with an index and file names as a prefix5400 with no files5401 behaves like default key5402 without a prefix5403 uses default key with an index and file names as a prefix5404 with files ending with /5405 behaves like default key5406 without a prefix5407 uses default key with an index and file names as a prefix5408 with new line in filenames5409 behaves like default key5410 without a prefix5411 uses default key with an index and file names as a prefix5412 with missing files5413 behaves like default key5414 without a prefix5415 uses default key with an index and file names as a prefix5416 with directories5417 with directory5418 behaves like foo/bar directory key5419 without a prefix5420 builds a string key with an index and file names as a prefix5421 with directory ending in slash5422 behaves like foo/bar directory key5423 without a prefix5424 builds a string key with an index and file names as a prefix5425 with directories ending in slash star5426 behaves like foo/bar directory key5427 without a prefix5428 builds a string key with an index and file names as a prefix5429 with cache:key:prefix5430 without files5431 adds prefix to default key5432 with existing files5433 adds prefix key5434 with missing files5435 adds prefix to default key5436 with cache:fallback_keys5437 is expected to include {:key => "ruby-branch-key", :paths => ["vendor/ruby"], :fallback_keys => ["ruby-default"]}5438 with all cache option keys5439 is expected to include {:key => "a-key", :paths => ["vendor/ruby"], :untracked => true, :policy => "push", :unprotect => true, :when => "on_success", :fallback_keys => ["default-ruby"]}5440 with unknown cache option keys5441 is expected to raise ArgumentError with message matching /unknown_key/5442Jobs/Test.gitlab-ci.yml5443 the created pipeline5444 on master5445 creates the test job5446 on another branch5447 creates the test job5448 on tag5449 creates the test job5450 on merge request5451 has no jobs5452 TEST_DISABLED is set5453 on master5454 has no jobs5455 on another branch5456 has no jobs5457 on tag5458 has no jobs5459Gitlab::JiraImport::StuckJiraImportJobsWorker5460 with scheduled Jira import5461 behaves like stuck import job detection5462 when the job has completed5463 when the import status was already updated5464 does not mark the import as failed5465 when the import status was not updated5466 marks the import as failed5467 when the job is still in Sidekiq5468 does not mark the import as failed5469 with started jira import5470 behaves like stuck import job detection5471 when the job has completed5472 when the import status was already updated5473 does not mark the import as failed5474 when the import status was not updated5475 marks the import as failed5476 when the job is still in Sidekiq5477 does not mark the import as failed5478 with failed jira import5479 detects no stuck jobs5480Gitlab::Ci::Config::Entry::Prefix5481 validations5482 behaves like key entry validations5483 when entry value contains slash5484 behaves like key with slash5485 is invalid5486 reports errors with config value5487 when entry value contains URI encoded slash (%2F)5488 behaves like key with slash5489 is invalid5490 reports errors with config value5491 when entry value is a dot5492 behaves like key with only dots5493 is invalid5494 reports errors with config value5495 when entry value is two dots5496 behaves like key with only dots5497 is invalid5498 reports errors with config value5499 when entry value is a URI encoded dot (%2E)5500 behaves like key with only dots5501 is invalid5502 reports errors with config value5503 when entry value is two URI encoded dots (%2E)5504 behaves like key with only dots5505 is invalid5506 reports errors with config value5507 when entry value is one dot and one URI encoded dot5508 behaves like key with only dots5509 is invalid5510 reports errors with config value5511 when key is a string5512 #value5513 returns key value5514 #valid?5515 is valid5516 when entry value is not correct5517 #errors5518 saves errors5519 .default5520 returns default key5521Gitlab::Unicode5522 (?-mix:\p{Bidi Control})5523 bidi_string: "", match: true5524 matches only the bidi characters5525 bidi_string: "", match: true5526 matches only the bidi characters5527 bidi_string: "", match: true5528 matches only the bidi characters5529 bidi_string: "", match: true5530 matches only the bidi characters5531 bidi_string: "", match: true5532 matches only the bidi characters5533 bidi_string: "", match: true5534 matches only the bidi characters5535 bidi_string: "", match: true5536 matches only the bidi characters5537 bidi_string: "", match: true5538 matches only the bidi characters5539 bidi_string: "", match: true5540 matches only the bidi characters5541 bidi_string: "foobar", match: true5542 matches only the bidi characters5543 bidi_string: "", match: false5544 matches only the bidi characters5545 bidi_string: "foo", match: false5546 matches only the bidi characters5547 bidi_string: "✓", match: false5548 matches only the bidi characters5549Terraform.gitlab-ci.yml5550 the created pipeline5551 on master branch5552 creates init, validate,build terraform jobs as well as kics-iac-sast job5553 outside the master branch5554 does not creates a deploy and a test job5555 on merge request5556 creates a pipeline with no jobs5557BaseDiscussionEntity5558 exposes correct attributes5559 when note is on an issue5560 does not include resolve_with_issue_path5561 when is LegacyDiffDiscussion5562 exposes correct attributes5563 when diff file is present5564 exposes diff file attributes5565 when issues are disabled in a project5566 does not show a new issues path5567Gitlab::Cache::Client5568 # order random5569 Methods5570 #read5571 when key does not exist5572 returns nil5573 increments cache miss5574 when key exists5575 returns key value5576 increments cache hit5577 #write5578 calls backend "#write" method with the expected key5579 #exist?5580 calls backend "#exist?" method with the expected key5581 #delete5582 calls backend "#delete" method with the expected key5583 #fetch5584 creates key in the specific format5585 yields the block once5586 when key already exists5587 does not redefine the value5588 increments a cache hit5589 does not measure the cache generation time5590 when key does not exist5591 caches the key5592 increments a cache miss5593 measures the cache generation time5594dev rake tasks5595 setup5596 sets up the development environment5597 fixtures:load5598 by name5599 loads fixture5600 by empty name5601 does not load fixture5602 load5603 eager loads the application5604 terminate_all_connections5605 terminates all connections5606 when in the production environment5607 does not terminate connections5608 when a database is not found5609 continues to next connection (PENDING: Skipping because ci is shared or doesn't not exist)5610 multiple databases5611 with a valid database5612 copy_db:ci5613 creates the database from main (PENDING: Skipping because ci is shared or doesn't not exist)5614 when the database already exists5615 prints out a warning (PENDING: Skipping because ci is shared or doesn't not exist)5616 with an invalid database5617 raises an error (PENDING: Skipping because ci is shared or doesn't not exist)5618RepositoryCleanupWorker5619 #perform5620 executes the cleanup service and sends a success notification5621 raises an error if the project cannot be found5622 raises an error if the user cannot be found5623 #sidekiq_retries_exhausted5624 does not send a failure notification for a RecordNotFound error5625 sends a failure notification5626 cleans up the attempt5627Deployments::CreateService5628 #execute5629 creates a deployment5630 does not change the status if no status is given5631 when the last deployment has the same parameters5632 does not create a new deployment5633 #deployment_attributes5634 only includes attributes that we want to persist5635Packages::Helm::ProcessFileService5636 #execute5637 without a file5638 returns error5639 with existing package5640 reuses existing package5641 marked as pending_destruction5642 reuses the processing package5643 with a valid file5644 processes file5645 without Chart.yaml5646 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"5647 with Chart.yaml at root5648 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Chart.yaml not found within a directory"5649 with an invalid YAML5650 is expected to raise Packages::Helm::ExtractFileMetadataService::ExtractionError with "Error while parsing Chart.yaml: (<unknown>): did not find expected node content while parsing a flow node at line 2 column 1"5651Gitlab::Redis::HLL5652 .add5653 when checking key format5654 for invalid keys5655 metric_key: "test", value: 15656 raise an error when using an invalid key format5657 metric_key: "test-{metric", value: 15658 raise an error when using an invalid key format5659 metric_key: "test-{metric}}", value: 15660 raise an error when using an invalid key format5661 for valid keys5662 metric_key: "test-{metric}", value: 15663 doesn't raise error when having correct format5664 metric_key: "test-{metric}-1", value: 15665 doesn't raise error when having correct format5666 metric_key: "test:{metric}-1", value: 15667 doesn't raise error when having correct format5668 metric_key: "2020-216-{project_action}", value: 15669 doesn't raise error when having correct format5670 metric_key: "i_{analytics}_dev_ops_score-2020-32", value: 15671 doesn't raise error when having correct format5672 when adding entries5673 supports single value5674 supports multiple values5675 .count5676 has 3 distinct users for weeks 32, 33, 345677 has 3 distinct users for weeks 32, 335678 has 2 distinct users for weeks 33, 345679 has one distinct user for week 335680 has 4 distinct users when one different user has an action on week 345681Gitlab::Lograge::CustomOptions5682 .call5683 ignores some parameters5684 formats the parameters5685 adds the current time5686 adds the user id5687 adds the response length5688 adds Cloudflare headers5689 adds the metadata5690 with log_response_length disabled5691 does not add the response length5692 when metadata is missing5693 does not break5694 trusted payload5695 is expected to include {:remote_ip => "192.168.1.2", :user_id => "test", :ua => "Nyxt", :queue_duration_s => 0.2, :response_bytes => 1234, :etag_route => "/etag", :request_urgency => :default, :target_duration_s => 1, :cf_ray => "96ffaf99500f9fac3d871768f808f686", :cf_request_id => "6e20ad8759750a6f0c84514ab46ef8ed"}5696 payload with rejected fields5697 is expected to include {:request_urgency => :high}5698 is expected not to include {:something => "random"}5699 is expected not to include {:username => nil}5700 when correlation_id is overridden5701 sets the overridden value5702 when feature flags are present5703 and :feature_flag_log_states is enabled5704 adds feature flag events5705 and :feature_flag_log_states is disabled5706 does not track or add feature flag events5707UserProjectAccessChangedService5708 #execute5709 permits high-priority operation5710 permits medium-priority operation5711 sets the current caller_id as related_class in the context of all the enqueued jobs5712 for low priority operation5713 does not perform low-priority operation5714 when the feature flag `do_not_run_safety_net_auth_refresh_jobs` is disabled5715 permits low-priority operation5716 with load balancing enabled5717 sticks all the updated users and returns the original result5718 avoids N+1 cached queries5719Projects::DetectRepositoryLanguagesService5720 #execute5721 without previous detection5722 inserts new programming languages in the database5723 inserts the repository langauges5724 updates detected_repository_languages flag5725 with a previous detection5726 updates the repository languages5727 doesn't touch detected_repository_languages flag5728 when no repository exists5729 has no languages5730layouts/_flash5731 default5732 does not render flash container no margin class5733 closable flash messages5734 flash_type: "alert"5735 shows a close button5736 flash_type: "notice"5737 shows a close button5738 flash_type: "success"5739 shows a close button5740 non closable flash messages5741 flash_type: "error"5742 does not show a close button5743 flash_type: "message"5744 does not show a close button5745 flash_type: "toast"5746 does not show a close button5747 flash_type: "warning"5748 does not show a close button5749 with flash_class in locals5750 adds class to flash-container5751Gitlab::Usage::Metrics::Instrumentations::CountUsersCreatingIssuesMetric5752 with all time frame5753 behaves like a correct instrumented metric value and query5754 behaves like a correct instrumented metric value5755 has correct value5756 behaves like a correct instrumented metric query5757 has correct generate query5758 for 28d time frame5759 behaves like a correct instrumented metric value and query5760 behaves like a correct instrumented metric value5761 has correct value5762 behaves like a correct instrumented metric query5763 has correct generate query5764Projects::TriggeredHooks5765 executes hooks by scope5766 applies branch filters, when they match5767 applies branch filters, when they do not match5768 with emoji hooks5769 executes hook5770 when emoji_webhooks feature flag is disabled5771 does not execute the hook5772 when emoji_webhooks feature flag is enabled for the project5773 executes the hook5774layouts/signup_onboarding5775 behaves like a layout which reflects the application theme setting5776 as a themed layout5777 when no theme is explicitly selected5778 renders with the default theme5779 when user is authenticated & has selected a specific theme5780 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#222261">5781 renders with the Indigo theme5782 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#41419f">5783 renders with the Light Indigo theme5784 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#0b2640">5785 renders with the Blue theme5786 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#145aa1">5787 renders with the Light Blue theme5788 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0e4328">5789 renders with the Green theme5790 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#1b653f">5791 renders with the Light Green theme5792 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#580d02">5793 renders with the Red theme5794 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a02e1c">5795 renders with the Light Red theme5796 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#333238">5797 renders with the Gray theme5798 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#ececef">5799 renders with the Light Gray theme5800 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#1f1e24">5801 renders with the Dark Mode (alpha) theme5802 behaves like a layout which reflects the preferred language5803 when changing the a preferred language5804 renders the correct `lang` attribute in the html element5805Gitlab::Issuable::Clone::CopyResourceEventsService5806 copies the resource label events5807 with existing milestone events5808 copies existing resource milestone events5809 with existing state events5810 copies existing state events as expected5811Packages::Npm::CreateMetadataCacheWorker5812 # order random5813 #perform5814 behaves like an idempotent worker5815 is labeled as idempotent5816 performs multiple times sequentially without raising an exception5817 creates a new metadata cache5818 when errors happened5819 logs errors5820 without project5821 behaves like does not trigger service to create npm metadata cache5822 is expected not to receive new(*(any args)) 0 times5823 when npm_metadata_cache flag is disabled5824 behaves like does not trigger service to create npm metadata cache5825 is expected not to receive new(*(any args)) 0 times5826ObjectPool::CreateWorker5827 #perform5828 when the pool creation is successful5829 marks the pool as ready5830 when a the pool already exists5831 cleans up the pool5832 when the server raises an unknown error5833 marks the pool as failed5834 when the pool creation failed before5835 deletes the pool first5836Gitlab::RepositorySizeChecker5837 #enabled?5838 when enabled5839 returns true5840 when limit is zero5841 returns false5842 #changes_will_exceed_size_limit?5843 returns true when changes go over5844 returns false when changes do not go over5845 #above_size_limit?5846 returns false when not over the limit5847 when size is above the limit5848 returns true5849 #exceeded_size5850 when no change size provided5851 when current size is below the limit5852 returns zero5853 when current size is equal to the limit5854 returns zero5855 when current size is over the limit5856 returns a positive number5857 when a change size is provided5858 when change size will be over the limit5859 returns a positive number5860 when change size will be at the limit5861 returns zero5862 when change size will be under the limit5863 returns zero5864 #additional_repo_storage_available?5865 returns false5866JiraConnect::SyncService5867 #execute5868 calls Atlassian::JiraConnect::Client#store_dev_info and logs the response5869 does not execute any queries for preloaded reviewers5870 when a request returns errors5871 logs each response as an error5872Environments::EnvironmentsFinder5873 #execute5874 filters environments by type5875 with states parameter5876 returns environments with the requested state5877 returns environments with any of the requested states5878 raises exception when requested state is invalid5879 works with symbols5880 returns environments with the requested state5881 returns environments with any of the requested states5882 with search and states5883 searches environments by name and state5884 searches environments by name inside folder and state5885 when enable_environments_search_within_folder FF is disabled5886 ignores name inside folder5887 with id5888 searches environments by name and id5889Sidebars::YourWork::Menus::MergeRequestsMenu5890 # order random5891 #has_pill?5892 when count is zero5893 returns false5894 when count is larger than zero5895 returns true5896 #pill_count5897 returns the assigned_open_merge_requests_count of the user5898 memoizes the query5899 submenu items5900 order: 0, title: "Assigned", key: :assigned5901 renders items in the right order5902 when there are no MR counts5903 shows a pill even though count is zero5904 when there are MR counts5905 shows a pill with the correct count5906 order: 1, title: "Review requests", key: :review_requested5907 renders items in the right order5908 when there are no MR counts5909 shows a pill even though count is zero5910 when there are MR counts5911 shows a pill with the correct count5912SshKeys::ExpiredNotificationWorker5913 uses a cronjob queue5914 #perform5915 with a large batch5916 updates all keys regardless of batch size5917 with expiring key today5918 invoke the notification service5919 updates notified column5920 is labeled as idempotent5921 performs multiple times sequentially without raising an exception5922 when key has expired in the past5923 does not update notified column5924 when key has already been notified of expiration5925 does not update notified column5926IncidentManagement::AddSeveritySystemNoteWorker5927 # order random5928 #perform5929 when incident and user exist5930 creates a system note5931 creates a timeline event5932 when incident does not exist5933 behaves like does not add anything5934 does not change incident notes count5935 does not create a timeline event5936 when incident_id is nil5937 behaves like does not add anything5938 does not change incident notes count5939 does not create a timeline event5940 when issue is not an incident5941 behaves like does not add anything5942 does not change incident notes count5943 does not create a timeline event5944 when user does not exist5945 behaves like does not add anything5946 does not change incident notes count5947 does not create a timeline event5948 when user_id is nil5949 behaves like does not add anything5950 does not change incident notes count5951 does not create a timeline event5952Ci::TrackEnvironmentUsage5953 # order random5954 deployment_name?5955 does detect deployment names5956 does detect partial deployment names5957 does not detect non-deployment names5958 is case insensitive5959 #verifies_environment?5960 when build is the verify action for the environment5961 is expected to be truthy5962 when build is not the verify action for the environment5963 is expected to be falsey5964Groups::AutoDevopsService#execute5965 when user does not have enough privileges5966 raises exception5967 when user has enough privileges5968 updates group auto devops enabled accordingly5969 when group has projects5970 reflects changes on projects5971 when group has subgroups5972 reflects changes on subgroups5973 when subgroups have projects5974 reflects changes on projects5975Integrations::SlackInteractions::SlackBlockActions::IncidentManagement::ProjectUpdateHandler5976 # order random5977 #execute5978 when project is updated5979 returns success response and updates cache5980 when project is unchanged5981 behaves like does not make api call5982 does not make the api call and returns nil5983 when user does not have permission to read a project5984 behaves like does not make api call5985 does not make the api call and returns nil5986 when api response is not ok5987 returns error response5988 when Slack API call raises an HTTP exception5989 tracks the exception and returns an error message5990Preloaders::UserMaxAccessLevelInGroupsPreloader5991 when the preloader is used5992 when user has indirect access to groups5993 behaves like executes N max member permission queries to the DB5994 executes the specified max membership queries5995 caches the correct access_level for each group5996 for groups arising from group shares5997 sets the right access level in cache for groups arising from group shares5998 when the preloader is not used5999 behaves like executes N max member permission queries to the DB6000 executes the specified max membership queries6001 caches the correct access_level for each group6002Banzai::IssuableExtractor6003 returns instances of issuables for nodes with references6004 caching6005 saves records to cache6006BulkImports::Common::Graphql::GetMembersQuery6007 has a valid query6008 #data_path6009 returns data path6010 #page_info_path6011 returns pagination information path6012 #to_s6013 when entity is group6014 queries group & group members6015 when source version is past 14.7.06016 includes SHARED_FROM_GROUPS6017 when entity is project6018 queries project & project members6019 when source version is at least 16.0.06020 includes SHARED_INTO_ANCESTORS6021BulkImports::Pipeline::Context6022 #entity6023 is expected to eq #<BulkImports::Entity id: 37, bulk_import_id: 36, parent_id: nil, namespace_id: 2492, project_id: nil...: "2023-10-20 08:52:57.850718077 +0000", source_xid: 9, migrate_projects: true, has_failures: false>6024 #group6025 is expected to eq #<Group id:2492 @group250>6026 #bulk_import6027 is expected to eq #<BulkImport id: 36, user_id: 1706, source_type: "gitlab", status: 0, created_at: "2023-10-20 08:52:5... 08:52:57.540037179 +0000", source_version: "14.4.0", source_enterprise: false, has_failures: false>6028 #current_user6029 is expected to eq #<User id:1706 @user912>6030 #configuration6031 is expected to eq nil6032 #extra6033 is expected to eq {:extra=>:data}6034 #portable6035 is expected to eq #<Group id:2492 @group250>6036 when portable is project6037 is expected to eq #<Project id:549 namespace546/project-603>>6038 #import_export_config6039 is expected to be an instance of BulkImports::FileTransfer::GroupConfig6040 when portable is project6041 is expected to be an instance of BulkImports::FileTransfer::ProjectConfig6042IosSpecificTemplatesExperiment6043 is expected to equal true6044 skipping the experiment6045 no actor6046 is expected to be falsey6047 actor cannot create pipelines6048 is expected to be falsey6049 targeting a non iOS platform6050 is expected to be falsey6051 project has a ci.yaml file6052 is expected to be falsey6053 project has pipelines6054 is expected to be falsey6055Achievements::AwardService6056 # order random6057 #execute6058 when user does not have permission6059 returns an error6060 when user has permission6061 creates an achievement and sends an e-mail6062 when the achievement is not persisted6063 returns the correct error6064 when the achievement does not exist6065 returns the correct error6066 when the recipient does not exist6067 returns the correct error6068Ci::ResourceGroups::AssignResourceFromResourceGroupWorker6069 has the `until_executed` deduplicate strategy6070 has an option to reschedule once if deduplicated6071 #perform6072 is labeled as idempotent6073 performs multiple times sequentially without raising an exception6074 when resource group exists6075 executes AssignResourceFromResourceGroupService6076 when build does not exist6077 does not execute AssignResourceFromResourceGroupService6078Resolvers::Kas::AgentConnectionsResolver6079 is expected to eq Types::Kas::AgentConnectionType6080 is expected to be truthy6081 #resolve6082 returns active connections for the agent6083 queries KAS once when multiple agents are requested6084 an error is returned from the KAS client6085 raises a graphql error6086 user does not have permission6087 is expected to be empty6088StageSerializer6089 #represent6090 with a single entity6091 serializes the stage object6092 with an array of entities6093 serializes the array of pipelines6094Gitlab::GithubImport::Importer::Attachments::MergeRequestsImporter6095 # order random6096 #sequential_import6097 imports each project merge request attachments6098 when merge request is already processed6099 doesn't import this merge request attachments6100 #id_for_already_imported_cache6101 is expected to eq 10706102 #collection_method6103 is expected to eq :merge_request_attachments6104 #object_type6105 is expected to eq :merge_request_attachment6106 #sidekiq_worker_class6107 is expected to eq Gitlab::GithubImport::Attachments::ImportMergeRequestWorker6108Gitlab::Database::Partitioning::SingleNumericListPartition6109 .from_sql6110 uses specified table name6111 uses specified partition name6112 parses the definition6113 #partition_name6114 is the explicit name if provided6115 defaults to the table name followed by the partition value6116 sorting6117 is incomparable if the tables do not match6118 sorts by the value when the tables match6119 sorts by numeric value rather than text value6120Database::DuplicateIndexes6121 # order random6122 when the indexes have the inverse order of columns6123 does not detect duplicate indexes between index3 and index3_inverse6124 when overlapping indexes6125 detects a duplicate index between index1 and index36126 when the one of the indexes is a conditional index6127 does not detect duplicate indexes between index3 and index3_with_where6128 when identical indexes6129 detects a duplicate index between index1 and index36130 when the index with matching sub-columns is unique6131 does not detect duplicate indexes between index3 and index1_unique6132 when indexes have the same columns but with different order6133 is expected to be empty6134 when there are no duplicate indexes6135 is expected to be empty6136MergeRequests::ExecuteApprovalHooksWorker6137 calls MergeRequests::ExecuteApprovalHooksService6138 behaves like subscribes to event6139 consumes the published event6140 behaves like an idempotent worker6141 is labeled as idempotent6142 performs multiple times sequentially without raising an exception6143 when the user does not exist6144 behaves like when object does not exist6145 logs and does not call MergeRequests::ExecuteApprovalHooksService6146 when the merge request does not exist6147 behaves like when object does not exist6148 logs and does not call MergeRequests::ExecuteApprovalHooksService6149Projects::FetchStatisticsIncrementService6150 #execute6151 creates a new record for today with count == 16152 doesn't increment previous days statistics6153 when the record already exists for today6154 increments the today record count by 16155Ci::GroupVariablePresenter6156 inherits from Gitlab::View::Presenter::Delegated6157 #initialize6158 takes a variable and optional params6159 exposes variable6160 forwards missing methods to variable6161 #placeholder6162 is expected to eq "GROUP_VARIABLE"6163 #form_path6164 is expected to eq "/groups/group256/-/settings/ci_cd"6165 #edit_path6166 is expected to eq "/groups/group257/-/variables"6167 #delete_path6168 is expected to eq "/groups/group258/-/variables"6169Tooling::Danger::Datateam6170 data team danger6171 with structure.sql changes and no Data Warehouse::Impact Check label6172 aggregate_failures6173 with structure.sql changes and Data Warehouse::Impact Check label6174 aggregate_failures6175 with user model changes6176 aggregate_failures6177 with perfomance indicator changes and no Data Warehouse::Impact Check label6178 aggregate_failures6179 with perfomance indicator changes and Data Warehouse::Impact Check label6180 aggregate_failures6181 with metric file changes and no performance indicator changes6182 aggregate_failures6183 with metric file changes and no performance indicator changes and other label6184 aggregate_failures6185 with performance indicator changes and other label6186 aggregate_failures6187 with performance indicator changes, Data Warehouse::Impact Check and other label6188 aggregate_failures6189 with performance indicator changes and other labels6190 aggregate_failures6191 with metric status removed6192 aggregate_failures6193 with metric status active6194 aggregate_failures6195Gitlab::Analytics::CycleAnalytics::Sorting6196 when invalid sorting params are given6197 falls back to end_event DESC sorting6198 sorting end_event6199 direction desc6200 is expected to eq [#<Arel::Nodes::Descending:0x00007a1d56611078 @expr=#<struct Arel::Attributes::Attribute relation=#<A...ject_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">>]6201 direction asc6202 is expected to eq [#<Arel::Nodes::Ascending:0x00007a1d38ba8e00 @expr=#<struct Arel::Attributes::Attribute relation=#<Ar...ject_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">>]6203 sorting duration6204 direction desc6205 is expected to eq [#<Arel::Nodes::Descending:0x00007a1d390d97a8 @expr=#<Arel::Nodes::Subtraction:0x00007a1d390d97d0 @le...at: timestamptz, merged_commit_sha: binary)>, @table_alias=nil>, name="created_at">, @operator=:->>]6206 direction asc6207 is expected to eq [#<Arel::Nodes::Ascending:0x00007a1d3ee85fa0 @expr=#<Arel::Nodes::Subtraction:0x00007a1d3ee85fc8 @lef...at: timestamptz, merged_commit_sha: binary)>, @table_alias=nil>, name="created_at">, @operator=:->>]6208Mutations::ResolvesIssuable6209 with issues6210 behaves like resolving an issuable in GraphQL6211 when user has access6212 resolves issuable by iid6213 the IID does not refer to a valid issuable6214 returns nil6215 the parent path is not present6216 returns nil6217 with merge requests6218 behaves like resolving an issuable in GraphQL6219 when user has access6220 resolves issuable by iid6221 the IID does not refer to a valid issuable6222 returns nil6223 the parent path is not present6224 returns nil6225ProjectHookPresenter6226 #logs_details_path6227 is expected to eq "/namespace564/project-621/-/hooks/113/hook_logs/1"6228 #logs_retry_path6229 is expected to eq "/namespace565/project-622/-/hooks/114/hook_logs/2/retry"6230Ci::GroupVariablesFinder6231 # order random6232 when project belongs to a group6233 returns variable from parent group and ancestors6234 sorting behaviour6235 with sort by created_at descending6236 returns variables ordered by created_at in descending order6237 with sort by created_at ascending6238 returns variables ordered by created_at in ascending order6239 with sort by key descending6240 returns variables ordered by key in descending order6241 with sort by key ascending6242 returns variables ordered by key in ascending order6243 when project does not have a group6244 returns an empty array6245Types::CommitSignatureInterface6246 # order random6247 exposes the expected fields6248 .resolve_type6249 resolves gpg signatures6250 resolves x509 signatures6251 resolves SSH signatures6252 raises an error when type is not known6253Mutations::Environments::CanaryIngress::Update6254 #resolve6255 when service execution succeeded6256 returns no errors6257 with certificate_based_clusters disabled6258 returns notice about feature removal6259 when service encounters a problem6260 returns an error6261 when user is reporter who does not have permission to access the environment6262 raises an error6263Gitlab::Email::Smime::Signer6264 when using an intermediate CA6265 signs data appropriately with SMIME6266 when not using an intermediate CA6267 signs data appropriately with SMIME6268Gitlab::Usage::Metrics::Instrumentations::CountPackagesMetric6269 # order random6270 with all time frame6271 behaves like a correct instrumented metric value and query6272 behaves like a correct instrumented metric value6273 has correct value6274 behaves like a correct instrumented metric query6275 has correct generate query6276 with 28d time frame6277 behaves like a correct instrumented metric value and query6278 behaves like a correct instrumented metric value6279 has correct value6280 behaves like a correct instrumented metric query6281 has correct generate query6282Gitlab::Graphql::Limit::FieldCallCount6283 # order random6284 returns an error when the field is called multiple times6285 allows the call6286 does not return an error when the field is called multiple times in separte queries6287 executes the extension6288 when the field is not extended6289 allows the call6290 does not execute the extension6291 when limit is not specified6292 returns an error6293Gitlab::Email::ServiceDeskReceiver6294 when the email contains a valid email address6295 when in a To header6296 behaves like received successfully6297 finds the service desk key6298 when the email contains a valid email address in a header6299 when in a Delivered-To header6300 behaves like received successfully6301 finds the service desk key6302 when in a Envelope-To header6303 behaves like received successfully6304 finds the service desk key6305 when in a X-Envelope-To header6306 behaves like received successfully6307 finds the service desk key6308 when in a Cc header6309 behaves like received successfully6310 finds the service desk key6311 when the email contains no key in the To header and contains reference header with no key6312 sends a rejection email6313 when the email does not contain a valid email address6314 raises an error6315Packages::Generic::FindOrCreatePackageService6316 #execute6317 when packages does not exist yet6318 creates package6319 creates package and package build info when build is provided6320 when packages already exists6321 when package was created manually6322 finds the package and does not create package build info even if build is provided6323 when package was created by pipeline6324 finds the package and does not change package build info even if build is provided6325 when a pending_destruction package exists6326 creates a new package6327RuboCop::Cop::RSpec::DuplicateSpecLocation6328 # order random6329 for an EE spec file for EE extension6330 registers no offenses6331 when there is a duplicate file6332 marks the describe as offending6333 for a non-EE spec file6334 registers no offenses6335 for an EE spec file for EE only code6336 registers no offenses6337 when there is a duplicate file6338 marks the describe as offending6339 for an EE application file6340 registers no offenses6341 for a non-EE application file6342 registers no offenses6343Create work item hierarchy restrictions in production6344 # order random6345 behaves like work item hierarchy restrictions importer6346 when restrictions are missing6347 behaves like adds restrictions6348OK6349 adds all restrictions if they don't exist6350 when base types are missing6351 behaves like adds restrictions6352OK6353 adds all restrictions if they don't exist6354 when restrictions already exist6355OK6356 upserts restrictions6357 when some restrictions are missing6358OK6359 inserts missing restrictions and does nothing if some already existed6360 when restrictions contain attributes not present in the table6361OK6362 filters out missing columns6363SafelyChangeColumnDefault6364 # order random6365 prevents writing new default in place of the old default6366 does not send the old column value if the default has changed6367 does not write the column without a change6368 forces the column to be written on a change6369Ci::JobArtifacts::TrackArtifactReportWorker6370 # order random6371 #perform6372 when pipeline is found6373 executed service6374 behaves like an idempotent worker6375 is labeled as idempotent6376 performs multiple times sequentially without raising an exception6377 does not try to increment again for the test event6378 does not try to increment again for the coverage event6379 when pipeline is not found6380 does not execute service6381Gitlab::Tracking::Helpers::WeakPasswordErrorEvent6382 # order random6383 when user does not have a weak password error6384 does not track the event6385 when user has a weak password error6386 tracks the event6387 when user does not have any errors6388 does not track the event6389DesignManagement::Repository6390 returns the project's full path6391 returns the project's disk path6392 associations6393 is expected to belong to project required: false inverse_of => design_management_repository6394 validations6395 is expected to validate that :project cannot be empty/falsy6396 is expected to validate that :project is case-sensitively unique6397Gitlab::GitalyClient::HealthCheckService6398 #check6399 successfully sends a health check request6400 receives an unsuccessful health check request6401 gracefully handles gRPC error6402Gitlab::LetsEncrypt::Order6403 #url6404 delegates to Acme::Client::Resources::Order6405 #status6406 delegates to Acme::Client::Resources::Order6407 #expires6408 delegates to Acme::Client::Resources::Order6409 #new_challenge6410 returns challenge6411 #request_certificate6412 generates csr and finalizes order6413 #challenge_error6414 returns error if challenge has errors6415Gitlab::GithubImport::AttachmentsDownloader6416 # order random6417 #delete6418 removes file with parent folder6419 #perform6420 when file valid6421 downloads file6422 when file shares multiple hard links6423 raises expected exception6424 when filename is malicious6425 raises expected exception6426 when file size exceeds limit6427 raises expected exception6428 when file name length exceeds limit6429 chops filename6430 when attachment is behind a redirect6431 gets redirection url6432 when url is not a redirection6433 raises upon unsuccessful redirection6434 when redirection url is not supported6435 raises UnsupportedAttachmentError on unsupported extension6436Projects::HashedStorage::MigrationService6437 #execute6438 attachments migration6439 does not delegate migration if attachments are already migrated6440 migrates legacy attachments to hashed storage6441Gitlab::GithubImport::Clients::Proxy6442 # order random6443 is expected to delegate #each_object to the #client object6444 is expected to delegate #user to the #client object6445 is expected to delegate #octokit to the #client object6446 #repos6447 fetches repos with Gitlab::GithubImport::Client (GraphQL API)6448 #count_by6449 when value is cached6450 returns repository count from cache6451 when value is not cached6452 returns repository count6453FeatureFlagsUserListsFinder6454 #execute6455 returns user lists6456 with search6457 returns only matching user lists6458Users::DismissGroupCalloutService6459 #execute6460 sets the group_id6461 behaves like dismissing user callout6462 creates a new user callout6463 returns a user callout6464 sets the dismissed_at attribute to current time6465 updates an existing callout dismissed_at time6466 does not update an invalid record with dismissed_at time6467Gitlab::GithubImport::Importer::PullRequests::MergedByImporter6468 # order random6469 when the merger user is not provided6470 adds a note referencing the merger user6471 when the merger user cannot be mapped to a gitlab user6472 behaves like adds a note referencing the merger user6473 adds a note referencing the merger user6474 when original user cannot be found on github6475 behaves like adds a note referencing the merger user6476 adds a note referencing the merger user6477 when the merger user can be mapped6478 assigns the merged by user when mapped6479diagnostic reports6480 when GITLAB_DIAGNOSTIC_REPORTS_ENABLED is set to true6481 when run in Puma context6482 modifies worker startup hooks, starts Gitlab::Memory::ReportsDaemon6483 writes scheduled heap dumps in on_worker_stop6484 when run in non-Puma context, such as rails console, tests, Sidekiq6485 is expected not to receive new(*(any args)) 0 times6486 when GITLAB_DIAGNOSTIC_REPORTS_ENABLED is not set6487 is expected not to receive new(*(any args)) 0 times6488 when GITLAB_DIAGNOSTIC_REPORTS_ENABLED is set to false6489 is expected not to receive new(*(any args)) 0 times6490Gitlab::Ci::Status::Manual6491 #text6492 is expected to eq "Manual"6493 #label6494 is expected to eq "manual action"6495 #icon6496 is expected to eq "status_manual"6497 #favicon6498 is expected to eq "favicon_status_manual"6499 #group6500 is expected to eq "manual"6501Projects::Members::EffectiveAccessLevelPerUserFinder#execute6502 a combination of all possible avenues of membership6503 includes the highest access level from all avenues of memberships for the specific user alone6504Admin::BackgroundMigrationsHelper6505 #batched_migration_status_badge_variant6506 status_name: :active, variant: :info6507 is expected to eq :info6508 status_name: :paused, variant: :warning6509 is expected to eq :warning6510 status_name: :failed, variant: :danger6511 is expected to eq :danger6512 status_name: :finished, variant: :success6513 is expected to eq :success6514 #batched_migration_progress6515 returns completion percentage6516 when migration is finished6517 returns 100 percent6518 when total_tuple_count is nil6519 returns nil6520 when there are no completed rows6521 returns 0 percent6522 when completed rows are greater than total count6523 returns 99 percent6524Gitlab::DependencyLinker::PodfileLinker6525 .support?6526 supports Podfile6527 does not support other files6528 #link6529 links sources6530 links packages6531 links external packages6532 links Git repos6533Sbom::PackageUrl::Normalizer6534 # order random6535 #normalize_namespace6536 behaves like name normalization6537 with bitbucket url6538 downcases text6539 with github url6540 downcases text6541 with pypi url6542 downcases text and replaces underscores6543 with other urls6544 does not change the text6545 when text is nil6546 allows nil values6547 #normalize_name6548 behaves like name normalization6549 with bitbucket url6550 downcases text6551 with github url6552 downcases text6553 with pypi url6554 downcases text and replaces underscores6555 with other urls6556 does not change the text6557 when text is nil6558 raises an error6559Terraform::StatesFinder6560 #execute6561 is expected to contain exactly #<Terraform::State id: 1, project_id: 586, created_at: "2023-10-20 08:53:39.854299360 +0000", updated...01778cf5", name: "state-1", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0> and #<Terraform::State id: 2, project_id: 586, created_at: "2023-10-20 08:53:39.859072029 +0000", updated...d1e95ff2", name: "state-2", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0>6562 user does not have permission6563 is expected to be empty6564 filtering by name6565 name does not match6566 is expected to be empty6567 name does match6568 is expected to contain exactly #<Terraform::State id: 1, project_id: 586, created_at: "2023-10-20 08:53:39.854299360 +0000", updated...01778cf5", name: "state-1", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0>6569Gitlab::Usage::Metrics::Instrumentations::CountUsersWithMlCandidatesMetric6570 # order random6571 behaves like a correct instrumented metric value and query6572 behaves like a correct instrumented metric value6573 has correct value6574 behaves like a correct instrumented metric query6575 has correct generate query6576Gitlab::Ci::Reports::Sbom::Source6577 has correct attributes6578 #source_file_path6579 returns the correct source_file_path6580 #input_file_path6581 returns the correct input_file_path6582 #packager6583 returns the correct package manager name6584 #language6585 returns the correct langauge6586Gitlab::Git::PreReceiveError6587 uses the fallback message6588 uses the fallback message6589 error messages prefixed with GitLab:6590 accepts only errors lines with the prefix6591 makes its message HTML-friendly6592 prefers the original message over the fallback6593 error messages prefixed with GL-HOOK-ERR:6594 accepts only errors lines with the prefix6595 makes its message HTML-friendly6596 prefers the original message over the fallback6597mail_room.yml6598 when incoming email is disabled6599 contains no configuration6600 when both incoming email and service desk email are enabled6601 contains the intended configuration6602 when both incoming email and service desk email are enabled for Microsoft Graph6603 contains the intended configuration6604Gitlab::Sanitizers::ExceptionMessage6605 .clean6606 when error is a URI::InvalidURIError6607 is expected to eq "bad URI(is not URI?): [FILTERED]"6608 when error is an Addressable::URI::InvalidURIError6609 uri: "http://foo:bar", result: "Invalid port number: [FILTERED]"6610 is expected to eq "Invalid port number: [FILTERED]"6611 uri: "http://foo:%eb", result: "Invalid encoding in port"6612 is expected to eq "Invalid encoding in port"6613 uri: "ht%0atp://foo", result: "Invalid scheme format: [FILTERED]"6614 is expected to eq "Invalid scheme format: [FILTERED]"6615 uri: "http:", result: "Absolute URI missing hierarchical segment: [FILTERED]"6616 is expected to eq "Absolute URI missing hierarchical segment: [FILTERED]"6617 uri: "::http", result: "Cannot assemble URI string with ambiguous path: [FILTERED]"6618 is expected to eq "Cannot assemble URI string with ambiguous path: [FILTERED]"6619 uri: "http://foo bar", result: "Invalid character in host: [FILTERED]"6620 is expected to eq "Invalid character in host: [FILTERED]"6621 with any other exception6622 is not invoked and does nothing6623Gitlab::GrapeLogging::Loggers::ResponseLogger6624 #parameters6625 is expected to eq {:response_bytes=>9}6626 with multiple response parts6627 is expected to eq {:response_bytes=>18}6628 with log_response_length disabled6629 is expected to eq {}6630 when response is a String6631 is expected to eq {:response_bytes=>9}6632DeployKeys::DeployKeyEntity6633 returns deploy keys with projects a user can read6634 is expected to eq {:almost_orphaned=>false, :can_edit=>false, :created_at=>2023-10-20 08:53:43.677068245 +0000, :deploy...", :id=>54, :title=>"My title 590", :updated_at=>2023-10-20 08:53:43.677068245 +0000, :user_id=>nil}6635projects/packages/packages/index.html.haml6636 # order random6637 renders vue entrypoint6638 can_delete_packages6639 without permission sets empty settings path6640 with permission sets project settings path6641 settings path6642 without permission sets empty settings path6643 with permission sets project settings path6644Mutations::CustomerRelations::Organizations::Create6645 is expected to require graphql authorizations :admin_crm_organization6646 create organizations mutation6647 #resolve6648 when the user does not have permission6649 raises an error6650 when the user has permission6651 when the params are invalid6652 returns the validation error6653 when the user has permission to create an organization6654 creates organization with correct values6655Gitlab::Ci::ProjectConfig::Source6656 # order random6657 #source6658 is expected to raise NotImplementedError6659 #content6660 is expected to raise NotImplementedError6661 #internal_include_prepended?6662 is expected to eq false6663GRPC monkey patch6664 # order random6665 raises DeadlineExceeded on a late server streaming response6666Banzai::Filter::ServiceDeskUploadLinkFilter6667 # order random6668 when replace_upload_links enabled6669 when it has only one attachment to replace6670 when filename in text is same as in link6671 replaces the link with original filename in strong6672 when filename in text is not same as in link6673 replaces the link with filename in text & original filename, in strong6674 when it has more than one attachment to replace6675 when all of uploads can be replaced6676 replaces all links with original filename in strong6677 when not all of uploads can be replaced6678 replaces only specific links with original filename in strong6679 when uploads_as_attachments is empty6680 does not replaces the link6681Ml::CandidatesCsvPresenter6682 # order random6683 .present6684 generates header row correctly6685 generates the first row correctly6686 generates the second row correctly6687Checksummable6688 .crc326689 returns the CRC32 of data6690 .sha256_hexdigest6691 returns the SHA256 sum of the file6692 .md5_hexdigest6693 returns the MD5 sum of the file6694Import::Github::GistsImportService6695 # order random6696 #execute6697 when import in progress6698 returns error6699 when import was not started6700 returns success6701 when user token is invalid6702 returns 401 error6703Ci::BuildCancelService6704 #execute6705 when user is authorized to cancel the build6706 when build is cancelable6707 transits build to canceled6708 when build is not cancelable6709 responds with unprocessable entity6710 when user is not authorized to cancel the build6711 responds with forbidden6712DependencyProxy::HeadManifestService6713 remote request is successful6714 is expected to eq :success6715 is expected to eq "12345"6716 remote request is not found6717 is expected to eq :error6718 is expected to eq 4046719 is expected to eq "Not found"6720 net timeout exception6721 is expected to eq :error6722 is expected to eq 5996723 is expected to eq "execution expired"6724Gitlab::AppTextLogger6725 logs a hash as string6726 logs a string unchanged6727 logs time in UTC with ISO8601.3 standard6728SourcegraphHelper6729 #sourcegraph_url_message6730 with .com sourcegraph url6731 is expected to have text "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental."6732 with custom sourcegraph url6733 is expected to have text "Uses a custom %{linkStart}Sourcegraph instance%{linkEnd}. This feature is experimental."6734 when not limited by feature or public only6735 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental."6736 when limited by feature6737 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental and currently limited to certain projects."6738 when limited by public only6739 is expected to eq "Uses %{linkStart}Sourcegraph.com%{linkEnd}. This feature is experimental and limited to public projects."6740Gitlab::Ci::Pipeline::Chain::RemoveUnwantedChatJobs6741 #perform!6742 removes unwanted jobs for chat pipelines6743 does not remove any jobs for non chat-pipelines6744ProtectedTags::CreateService6745 #execute6746 creates a new protected tag6747 protecting a tag with a name that contains HTML tags6748 creates a new protected tag6749IssueEmailParticipantPresenter6750 # order random6751 #email6752 when anonymous6753 is expected to eq "an*****@e*****.c**"6754 with signed in user6755 when user has no role in project6756 is expected to eq "an*****@e*****.c**"6757 when user has guest role in project6758 is expected to eq "an*****@e*****.c**"6759 when user has reporter role in project6760 is expected to eq "any@example.com"6761 when user has developer role in project6762 is expected to eq "any@example.com"6763Types::GroupInvitationType6764 is expected to expose permissions using Types::PermissionTypes::Group6765 is expected to eq "GroupInvitation"6766 is expected to require graphql authorizations :admin_group6767 has the expected fields6768Gitlab::X509::Tag6769 # order random6770 #signature6771 signed tag6772 is expected not to be nil6773 is expected to eq :unverified6774 is expected to have attributes {:email => "gitlabgpgtest@gmail.com", :serial_number => 173635382582380059990335547381753891120957980146,...subject => "", :subject_key_identifier => "19:14:DC:80:44:35:52:58:7B:22:BD:6F:9E:AF:6C:61:AB:8C:FC:18"}6775 is expected to have attributes {:subject => "CN=sigstore-intermediate,O=sigstore.dev", :subject_key_identifier => "DF:D3:E9:CF:56:24:11:96:F9:A8:D8:E9:28:55:A2:C6:2E:18:64:3F"}6776overridden has_many :through associations6777 # order random6778 onlies have allowed list of overridden has_many/has_one :through associations6779JiraConnect::SyncBuildsWorker6780 behaves like worker with data consistency6781 .get_data_consistency_feature_flag_enabled?6782 returns true6783 .get_data_consistency6784 returns correct data consistency6785 #perform6786 when pipeline exists6787 calls the Jira sync service6788 when pipeline does not exist6789 does not call the sync service6790Gitlab::RuggedInstrumentation6791 .query_time6792 increments query times6793 .increment_query_count6794 tracks query counts6795Gitlab::Ci::Artifacts::Metrics6796 .build_completed_report_type_counter6797 when incrementing by more than one6798 increments a single counter6799 #increment_destroyed_artifacts6800 when incrementing by more than one6801 increments a single counter6802Ci::Runners::StaleManagersCleanupService6803 # order random6804 with no stale runner managers6805 does not clean any runner managers and returns :success status6806 with some stale runner managers6807 only leaves non-stale runners6808 with more stale runners than SUB_BATCH_LIMIT6809 only leaves non-stale runners6810 with more stale runners than MAX_DELETIONS6811 only leaves non-stale runners6812Ci::Queue::PendingBuildsStrategy6813 # order random6814 builds_for_group_runner6815 returns builds ordered by build ID6816Ci::PipelineBridgeStatusWorker6817 #perform6818 when pipeline exists6819 calls the service6820 when pipeline does not exist6821 does not call the service6822DescriptionVersion6823 associations6824 is expected to belong to issue required: false6825 is expected to belong to merge_request required: false6826 validations6827 exactly_one_issuable6828 issue_id: nil, merge_request_id: 1, valid?: true6829 is expected to eq true6830 issue_id: 1, merge_request_id: nil, valid?: true6831 is expected to eq true6832 issue_id: nil, merge_request_id: nil, valid?: false6833 is expected to eq false6834 issue_id: 1, merge_request_id: 1, valid?: false6835 is expected to eq false6836Gitlab::HealthChecks::GitalyCheck6837 #readiness6838 Gitaly server is up6839 is expected to eq [#<struct Gitlab::HealthChecks::Result name="gitaly_check", success=true, message=nil, labels={:shard=>"default"}>]6840 Gitaly server is down6841 is expected to eq [#<struct Gitlab::HealthChecks::Result name="gitaly_check", success=false, message="Connection refused", labels={:shard=>"default"}>]6842 #metrics6843 Gitaly server is up6844 provides metrics6845 Gitaly server is down6846 provides metrics6847Ci::VariableEntity6848 #as_json6849 contains required fields6850Gitlab::Ci::Ansi2json::Parser6851 bold?6852 returns true if style mask matches bold format6853 returns false if style mask does not match bold format6854 matching_formats6855 returns matching formats given a style mask6856 returns an empty array if no formats match the style mask6857Types::GrafanaIntegrationType6858 is expected to eq "GrafanaIntegration"6859 is expected to require graphql authorizations :admin_operations6860 is expected to have graphql fields :id, :grafana_url, :enabled, :created_at, and :updated_at6861Types::Metrics::Dashboards::AnnotationType6862 is expected to eq "MetricsDashboardAnnotation"6863 has the expected fields6864 is expected to require graphql authorizations :read_metrics_dashboard_annotation6865SshKeys::UpdateLastUsedAtWorker6866 # order random6867 #perform6868 updates last_used_at column6869 does not update updated_at column6870 behaves like an idempotent worker6871 is labeled as idempotent6872 performs multiple times sequentially without raising an exception6873RuboCop::Cop::Migration::WithLockRetriesDisallowedMethod6874 # order random6875 when in migration6876 registers an offense when `with_lock_retries` block has disallowed method6877 registers an offense when `with_lock_retries` block has disallowed methods6878 registers no offense when `with_lock_retries` has only allowed method6879 for `add_foreign_key`6880 registers an offense when more than two FKs are added6881 when outside of migration6882 registers no offense6883Gitlab::MergeRequests::Mergeability::ResultsStore6884 #read6885 calls #retrieve_check on the interface6886 when #retrieve_check returns nil6887 returns nil6888 #write6889 calls #save_check on the interface6890Projects::IncidentsHelper6891 # order random6892 #incidents_data6893 when user can create incidents6894 returns frontend configuration6895 when user cannot create incidents6896 returns frontend configuration6897Gitlab::Git::BundleFile6898 .check!6899 returns nil for a valid bundle6900 raises an exception for an invalid bundle6901API::Helpers::Version6902 .new6903 is possible to initialize it with existing API version6904 raises an error when unsupported API version is provided6905 #root_path6906 returns a root path of the API version6907 #root_url6908 returns an URL for a root path for the API version6909Types::Packages::Nuget::MetadatumType6910 includes nuget metadatum fields6911 projectUrl can be null6912 licenseUrl can be null6913 iconUrl can be null6914Gitlab::GithubImport::Attachments::ImportIssueWorker6915 # order random6916 #import6917 imports an issue attachments6918API::API6919 .prefix6920 has a prefix defined6921 .version6922 uses most recent version of the API6923 .versions6924 returns all available versions6925Banzai::Filter::TimeoutHtmlPipelineFilter6926 # order random6927 raises NotImplementedError6928 behaves like html filter timeout6929 when rendering takes too long6930 times out6931Types::BranchProtections::MergeAccessLevelType6932 # order random6933 is expected to require graphql authorizations :read_protected_branch6934 is expected to have graphql fields :access_level and :access_level_description6935Gitlab::Kubernetes::RoleBinding#generate6936 builds a Kubeclient Resource6937Gitlab::Ci::Ansi2json::State6938 # order random6939 #initialize6940 restores valid prior state6941 ignores unsigned prior state6942 ignores bad input6943 #encode6944 deterministically signs the state6945ResolvesIds6946 with a single project6947 returns the correct array6948 with a single issue6949 returns the correct array6950 with multiple users6951 returns the correct array6952Gitlab::DataBuilder::ArchiveTrace6953 .build6954 has correct attributes6955BulkImports::Projects::Graphql::GetRepositoryQuery6956 has a valid query6957 returns project repository url6958 queries project based on source_full_path6959ProductAnalytics::BuildGraphService6960 returns a valid graph hash6961Gitlab::Usage::Metrics::Instrumentations::CountCiRunnersProjectTypeActiveMetric6962 # order random6963 behaves like a correct instrumented metric value6964 has correct value6965JSONWebToken::Token6966 custom parameters6967 is expected to eq "value"6968 is expected to include {:key => "value"}6969 embeds default payload6970 is expected to include {:jti => "df3c6fd2-1e07-4c7b-a907-078366436dce", :iat => 1697792045, :nbf => 1697792040, :exp => 1697792105}6971API::Entities::Clusters::Agent6972 includes basic fields6973RuboCop::Cop::GroupPublicOrVisibleToUser6974 # order random6975 does not flag the use of public_or_visible_to_user with a constant that is not Group6976 does not flag the use of Group.public_or_visible_to_user with a send receiver6977 flags the use of Group.public_or_visible_to_user with a constant receiver6978Types::Ci::ManualVariableType6979 is expected to contain exactly Types::Ci::VariableInterface6980 is expected to have graphql fields :environment_scope6981explore/projects/topic.html.haml6982 # order random6983 renders atom feed button with matching path6984Gitlab::Ci::Build::Hook6985 # order random6986 .from_hooks6987 initializes and returns hooks6988Types::IssuableSortEnum6989 is expected to eq "IssuableSort"6990 exposes all the existing issuable sort values6991Gitlab::SafeDeviceDetector6992 # order random6993 retains the behavior for normal user agents6994 truncates big user agents6995OneTrustHelper6996 #one_trust_enabled?6997 with ecomm_instrumentation feature flag disabled6998 is expected to be falsey6999 with ecomm_instrumentation feature flag enabled7000 when no id is set7001 is expected to be falsey7002Types::PermissionTypes::Issue7003 is expected to have graphql field :update_design7004RuboCop::Cop::Database::RescueStatementTimeout7005 # order random7006 flags the use of ActiveRecord::StatementTimeout7007 does not flag a different exception7008Gitlab::NoCacheHeaders7009 #no_cache_headers7010 raises a RuntimeError7011Gitlab::Email::Hook::DeliveryMetricsObserver7012 when email has been delivered7013 increments both email delivery metrics7014 when email has not been delivered due to an error7015 increments only delivery attempt metric7016Packages::Rpm::RepositoryMetadata::BuildOtherXmlService7017 # order random7018 #execute7019 adds all changelog nodes7020 set required date attribute7021Gitlab::Database::ConvertFeatureCategoryToGroupLabel7022 # order random7023 #execute7024 when the group label exists7025 returns a group label7026 when the group label does not exist7027 returns nil7028FileHookWorker7029 #perform7030 executes Gitlab::FileHook with expected values7031 logs message in case of file_hook execution failure7032API::Entities::BulkImports::Entity7033 has the correct attributes7034PersonalAccessTokenEntity7035 has the correct attributes7036DeployTokensHelper7037 #deploy_token_revoke_button_data7038 returns expected hash7039Integrations::BaseSlackNotification7040 # order random7041 #metrics_key_prefix (private method)7042 raises a NotImplementedError error when not defined7043Types::WorkItems::Widgets::AwardEmojiType7044 # order random7045 exposes the expected fields7046Types::Packages::Conan::MetadatumFileTypeEnum7047 uses all possible options from model7048TaggableQueries7049 keeps MAX_TAGS_IDS in sync with TAGS_LIMIT7050Fog::Storage::GoogleXML::File7051 delegates to #get_https_url7052Gitlab::Usage::Metrics::Instrumentations::IncomingEmailEncryptedSecretsEnabledMetric7053 # order random7054 behaves like a correct instrumented metric value7055 has correct value7056BlobViewer::Gemspec7057 #package_name7058 returns the package name7059auto_explain log contains 1680 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-2-28.327.main.ndjson.gz7060took 32.4622914427061Knapsack report was generated. Preview:7062{7063 "spec/services/notification_service_spec.rb": 903.5446940810007,7064 "spec/helpers/visibility_level_helper_spec.rb": 41.617995421999694,7065 "spec/models/plan_limits_spec.rb": 44.25417701599963,7066 "spec/lib/gitlab/ci/templates/templates_spec.rb": 11.223549540000022,7067 "spec/serializers/group_child_entity_spec.rb": 27.321508944000016,7068 "spec/tasks/gitlab/db_rake_spec.rb": 4.990319523000835,7069 "spec/models/integrations/datadog_spec.rb": 18.557319832999383,7070 "spec/tasks/gitlab/web_hook_rake_spec.rb": 26.828936295999483,7071 "spec/services/alert_management/create_alert_issue_service_spec.rb": 18.214633192999827,7072 "spec/lib/gitlab/redis/workhorse_spec.rb": 4.936379057000522,7073 "spec/models/key_spec.rb": 7.425702215000456,7074 "spec/lib/gitlab/database/reflection_spec.rb": 7.963962068000001,7075 "spec/lib/users/internal_spec.rb": 11.063223784000002,7076 "spec/serializers/ci/pipeline_entity_spec.rb": 11.853814767000586,7077 "spec/models/integrations/telegram_spec.rb": 9.91846348099989,7078 "spec/lib/gitlab/usage/metrics/instrumentations/jira_active_integrations_metric_spec.rb": 16.496786668999448,7079 "spec/serializers/pipeline_serializer_spec.rb": 13.948038157000155,7080 "spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb": 14.381955684999411,7081 "spec/lib/backup/database_model_spec.rb": 3.451850182999806,7082 "spec/models/concerns/chronic_duration_attribute_spec.rb": 7.585394981000718,7083 "spec/models/concerns/resolvable_discussion_spec.rb": 6.396345606000068,7084 "spec/services/work_items/task_list_reference_removal_service_spec.rb": 5.559566930000074,7085 "spec/helpers/button_helper_spec.rb": 3.717445876000056,7086 "spec/rubocop/cop/rspec/before_all_role_assignment_spec.rb": 1.715336672000376,7087 "spec/lib/gitlab/github_import/importer/releases_importer_spec.rb": 9.080520176999926,7088 "spec/services/members/create_service_spec.rb": 10.17090728400035,7089 "spec/lib/gitlab/ci/badge/pipeline/status_spec.rb": 11.63365473399972,7090 "spec/presenters/clusterable_presenter_spec.rb": 9.396138768999663,7091 "spec/lib/bulk_imports/common/pipelines/uploads_pipeline_spec.rb": 4.8931259119999595,7092 "spec/lib/sbom/package_url/decoder_spec.rb": 1.562003700999412,7093 "spec/workers/merge_requests/mergeability_check_batch_worker_spec.rb": 9.68913781899937,7094 "spec/lib/gitlab/sanitizers/exif_spec.rb": 5.617993930999546,7095 "spec/rubocop/code_reuse_helpers_spec.rb": 1.7195377310008553,7096 "spec/workers/issuable_export_csv_worker_spec.rb": 8.02248744499957,7097 "spec/lib/backup/gitaly_backup_spec.rb": 6.784358599999905,7098 "spec/lib/gitlab/ci/config/entry/variables_spec.rb": 1.8153254049993848,7099 "spec/serializers/profile/event_entity_spec.rb": 6.288634794000245,7100 "spec/lib/gitlab/x509/signature_sigstore_spec.rb": 4.163782962000369,7101 "spec/services/ci/archive_trace_service_spec.rb": 7.390181847999884,7102 "spec/services/merge_requests/post_merge_service_spec.rb": 6.686540607000097,7103 "spec/lib/gitlab/ci/config/normalizer_spec.rb": 1.5292082240002856,7104 "spec/models/ci/build_report_result_spec.rb": 3.9239200789997994,7105 "spec/lib/gitlab/import_export/group/relation_factory_spec.rb": 4.902768231000664,7106 "spec/lib/gitlab/github_import/representation/diff_note_spec.rb": 1.3458161070002461,7107 "spec/graphql/types/ci/job_base_field_spec.rb": 1.2074676160000308,7108 "spec/workers/container_registry/migration/observer_worker_spec.rb": 5.60738245200082,7109 "spec/serializers/ci/dag_job_entity_spec.rb": 5.08438681700045,7110 "spec/services/projects/after_rename_service_spec.rb": 4.848125634999633,7111 "spec/lib/sidebars/projects/menus/infrastructure_menu_spec.rb": 2.1624637100003383,7112 "spec/helpers/admin/broadcast_messages_helper_spec.rb": 2.2819840719994318,7113 "spec/models/commit_signatures/ssh_signature_spec.rb": 3.8939252700001816,7114 "spec/models/integrations/zentao_spec.rb": 4.429784770999504,7115 "spec/lib/gitlab/sidekiq_config/worker_router_spec.rb": 1.3164536290005344,7116 "spec/models/packages/dependency_link_spec.rb": 3.4701559400000406,7117 "spec/workers/concerns/reenqueuer_spec.rb": 1.1641017900001316,7118 "spec/helpers/badges_helper_spec.rb": 1.1000001940001312,7119 "spec/serializers/discussion_diff_file_entity_spec.rb": 4.873961533000511,7120 "spec/finders/personal_projects_finder_spec.rb": 4.4923260689993185,7121 "spec/tasks/gitlab/git_rake_spec.rb": 4.251953174999471,7122 "spec/services/security/ci_configuration/secret_detection_create_service_spec.rb": 3.5593497539994132,7123 "spec/lib/gitlab/database/partitioning_spec.rb": 1.536409912999261,7124 "spec/initializers/enumerator_next_patch_spec.rb": 1.1326383510004234,7125 "spec/models/ci/runner_manager_build_spec.rb": 2.6639357860003656,7126 "spec/lib/gitlab/ci/status/build/retried_spec.rb": 2.751433038999494,7127 "spec/lib/gitlab/ci/status/build/play_spec.rb": 3.042326910000156,7128 "spec/lib/gitlab/ci/status/build/scheduled_spec.rb": 2.475475098000061,7129 "spec/lib/google_api/cloud_platform/client_spec.rb": 1.3831094340002892,7130 "spec/lib/gitlab/web_ide/config/entry/global_spec.rb": 0.9477258350007105,7131 "spec/services/work_items/related_work_item_links/create_service_spec.rb": 2.9208076470004016,7132 "spec/lib/gitlab/email/service_desk_email_spec.rb": 0.8128860040005748,7133 "spec/lib/gitlab/metrics/subscribers/rails_cache_spec.rb": 0.8755455989994516,7134 "spec/tasks/gitlab/doctor/secrets_rake_spec.rb": 1.683417023000402,7135 "spec/lib/gitlab/api_authentication/token_locator_spec.rb": 1.6402609060005489,7136 "spec/lib/gitlab/kubernetes/rollout_status_spec.rb": 0.9598116339993794,7137 "spec/lib/gitlab/ci/pipeline/seed/build/cache_spec.rb": 1.3263693480002985,7138 "spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb": 2.471183409000332,7139 "spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb": 3.235121505999814,7140 "spec/lib/gitlab/ci/config/entry/prefix_spec.rb": 0.8639237300003515,7141 "spec/lib/gitlab/unicode_spec.rb": 0.7324479990002146,7142 "spec/lib/gitlab/ci/templates/terraform_gitlab_ci_yaml_spec.rb": 2.1795085789999575,7143 "spec/serializers/base_discussion_entity_spec.rb": 3.3625995880001938,7144 "spec/lib/gitlab/cache/client_spec.rb": 0.7422139889995378,7145 "spec/tasks/dev_rake_spec.rb": 1.2713214320001498,7146 "spec/workers/repository_cleanup_worker_spec.rb": 3.2941349920001812,7147 "spec/services/deployments/create_service_spec.rb": 2.363909476000117,7148 "spec/services/packages/helm/process_file_service_spec.rb": 2.8354589340005987,7149 "spec/lib/gitlab/redis/hll_spec.rb": 0.8679253199998129,7150 "spec/lib/gitlab/lograge/custom_options_spec.rb": 0.8800382689996695,7151 "spec/services/user_project_access_changed_service_spec.rb": 0.4478979289997369,7152 "spec/services/projects/detect_repository_languages_service_spec.rb": 1.3647013259997038,7153 "spec/views/layouts/_flash.html.haml_spec.rb": 1.1354593710002518,7154 "spec/lib/gitlab/usage/metrics/instrumentations/count_users_creating_issues_metric_spec.rb": 1.143551220999143,7155 "spec/models/projects/triggered_hooks_spec.rb": 0.9654832730002454,7156 "spec/views/layouts/signup_onboarding.html.haml_spec.rb": 2.476747228000022,7157 "spec/lib/gitlab/issuable/clone/copy_resource_events_service_spec.rb": 2.1448063520001597,7158 "spec/workers/packages/npm/create_metadata_cache_worker_spec.rb": 1.0381641679996392,7159 "spec/workers/object_pool/create_worker_spec.rb": 2.6480713669998295,7160 "spec/lib/gitlab/repository_size_checker_spec.rb": 0.7669652659997155,7161 "spec/services/jira_connect/sync_service_spec.rb": 2.7613946179999402,7162 "spec/finders/environments/environments_finder_spec.rb": 1.9301819960001012,7163 "spec/lib/sidebars/your_work/menus/merge_requests_menu_spec.rb": 0.7815756360005253,7164 "spec/workers/ssh_keys/expired_notification_worker_spec.rb": 1.1000362329996278,7165 "spec/workers/incident_management/add_severity_system_note_worker_spec.rb": 1.3395970380006474,7166 "spec/models/concerns/ci/track_environment_usage_spec.rb": 2.321790869999859,7167 "spec/services/groups/auto_devops_service_spec.rb": 2.1327748619996783,7168 "spec/services/integrations/slack_interactions/slack_block_actions/incident_management/project_update_handler_spec.rb": 1.950184745000115,7169 "spec/models/preloaders/user_max_access_level_in_groups_preloader_spec.rb": 1.3655922459993235,7170 "spec/lib/banzai/issuable_extractor_spec.rb": 1.748065967999537,7171 "spec/lib/bulk_imports/common/graphql/get_members_query_spec.rb": 1.2380696039999748,7172 "spec/lib/bulk_imports/pipeline/context_spec.rb": 1.077496975000031,7173 "spec/experiments/ios_specific_templates_experiment_spec.rb": 1.7310953099995459,7174 "spec/services/achievements/award_service_spec.rb": 0.9205195559998174,7175 "spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb": 1.167108339999686,7176 "spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb": 1.7378548389997377,7177 "spec/serializers/stage_serializer_spec.rb": 2.6148253290002685,7178 "spec/lib/gitlab/github_import/importer/attachments/merge_requests_importer_spec.rb": 0.8702417399999831,7179 "spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb": 0.3842336230000001,7180 "spec/support_specs/database/duplicate_indexes_spec.rb": 0.3522823650000646,7181 "spec/workers/merge_requests/execute_approval_hooks_worker_spec.rb": 2.5494277040006637,7182 "spec/services/projects/fetch_statistics_increment_service_spec.rb": 1.233786505000353,7183 "spec/presenters/ci/group_variable_presenter_spec.rb": 1.0740287349999562,7184 "spec/tooling/danger/datateam_spec.rb": 0.5031077049998203,7185 "spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb": 0.3575307450000764,7186 "spec/graphql/mutations/concerns/mutations/resolves_issuable_spec.rb": 1.6333706269997492,7187 "spec/presenters/project_hook_presenter_spec.rb": 2.067826046999471,7188 "spec/finders/ci/group_variables_finder_spec.rb": 0.9761577320005017,7189 "spec/graphql/types/commit_signature_interface_spec.rb": 0.3654995350007084,7190 "spec/graphql/mutations/environments/canary_ingress/update_spec.rb": 0.9437474850001308,7191 "spec/lib/gitlab/email/smime/signer_spec.rb": 3.587616851000348,7192 "spec/lib/gitlab/usage/metrics/instrumentations/count_packages_metric_spec.rb": 0.9967596709993813,7193 "spec/lib/gitlab/graphql/limit/field_call_count_spec.rb": 0.3650613650006562,7194 "spec/lib/gitlab/email/service_desk_receiver_spec.rb": 0.39269449199946393,7195 "spec/services/packages/generic/find_or_create_package_service_spec.rb": 1.095619564000117,7196 "spec/rubocop/cop/rspec/duplicate_spec_location_spec.rb": 0.3787984830005371,7197 "spec/db/production/create_work_item_hierarchy_restrictions_spec.rb": 0.521708404000492,7198 "spec/models/concerns/safely_change_column_default_spec.rb": 0.3123032490002515,7199 "spec/workers/ci/job_artifacts/track_artifact_report_worker_spec.rb": 0.9883364510005777,7200 "spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb": 0.28786105000017415,7201 "spec/models/design_management/repository_spec.rb": 0.5511077219998697,7202 "spec/lib/gitlab/gitaly_client/health_check_service_spec.rb": 1.1800127380001868,7203 "spec/lib/gitlab/lets_encrypt/order_spec.rb": 1.153630110999984,7204 "spec/lib/gitlab/github_import/attachments_downloader_spec.rb": 0.4820653859997037,7205 "spec/services/projects/hashed_storage/migration_service_spec.rb": 1.046527956999853,7206 "spec/lib/gitlab/github_import/clients/proxy_spec.rb": 0.3330774460000612,7207 "spec/finders/feature_flags_user_lists_finder_spec.rb": 0.7327605789996596,7208 "spec/services/users/dismiss_group_callout_service_spec.rb": 0.5264789929997278,7209 "spec/lib/gitlab/github_import/importer/pull_requests/merged_by_importer_spec.rb": 1.2409790239998983,7210 "spec/initializers/diagnostic_reports_spec.rb": 0.3246743580002658,7211 "spec/lib/gitlab/ci/status/manual_spec.rb": 0.2846142399994278,7212 "spec/finders/projects/members/effective_access_level_per_user_finder_spec.rb": 1.6479995059999055,7213 "spec/helpers/admin/background_migrations_helper_spec.rb": 0.45225778900021396,7214 "spec/lib/gitlab/dependency_linker/podfile_linker_spec.rb": 0.32131285699961154,7215 "spec/lib/sbom/package_url/normalizer_spec.rb": 0.4097726320005677,7216 "spec/finders/terraform/states_finder_spec.rb": 0.7884103349997531,7217 "spec/lib/gitlab/usage/metrics/instrumentations/count_users_with_ml_candidates_metric_spec.rb": 1.317480219000572,7218 "spec/lib/gitlab/ci/reports/sbom/source_spec.rb": 0.3099544189999506,7219 "spec/lib/gitlab/git/pre_receive_error_spec.rb": 0.3807018329998755,7220 "spec/config/mail_room_spec.rb": 0.3076363689997379,7221 "spec/lib/gitlab/sanitizers/exception_message_spec.rb": 0.35655953500008764,7222 "spec/lib/gitlab/grape_logging/loggers/response_logger_spec.rb": 0.25797408200014615,7223 "spec/serializers/deploy_keys/deploy_key_entity_spec.rb": 1.111146213000211,7224 "spec/views/projects/packages/index.html.haml_spec.rb": 0.4751024269999107,7225 "spec/graphql/mutations/customer_relations/organizations/create_spec.rb": 0.7669003970004269,7226 "spec/lib/gitlab/ci/project_config/source_spec.rb": 0.24101476299983915,7227 "spec/initializers/grpc_patch_spec.rb": 1.186257227999704,7228 "spec/lib/banzai/filter/service_desk_upload_link_filter_spec.rb": 0.2838540800003102,7229 "spec/presenters/ml/candidates_csv_presenter_spec.rb": 0.752090037999551,7230 "spec/models/concerns/checksummable_spec.rb": 0.2508064829999057,7231 "spec/services/import/github/gists_import_service_spec.rb": 0.36691983500077185,7232 "spec/services/ci/build_cancel_service_spec.rb": 1.0960006539999085,7233 "spec/services/dependency_proxy/head_manifest_service_spec.rb": 0.5033099250003943,7234 "spec/lib/gitlab/app_text_logger_spec.rb": 0.2340184839995345,7235 "spec/helpers/sourcegraph_helper_spec.rb": 0.3387766260002536,7236 "spec/lib/gitlab/ci/pipeline/chain/remove_unwanted_chat_jobs_spec.rb": 0.8747931789994254,7237 "spec/services/protected_tags/create_service_spec.rb": 0.8942422279997118,7238 "spec/presenters/issue_email_participant_presenter_spec.rb": 0.41448586200021964,7239 "spec/graphql/types/group_invitation_type_spec.rb": 0.26444732199979626,7240 "spec/lib/gitlab/x509/tag_sigstore_spec.rb": 0.6199013269997522,7241 "spec/lib/gitlab/database/no_overrides_for_through_associations_spec.rb": 0.22223503399982292,7242 "spec/workers/jira_connect/sync_builds_worker_spec.rb": 0.5211061840000184,7243 "spec/lib/gitlab/rugged_instrumentation_spec.rb": 0.20079031600016606,7244 "spec/lib/gitlab/ci/artifacts/metrics_spec.rb": 0.9001473179996538,7245 "spec/services/ci/runners/stale_managers_cleanup_service_spec.rb": 0.46119868799996766,7246 "spec/services/ci/queue/pending_builds_strategy_spec.rb": 0.6836437420006405,7247 "spec/workers/ci/pipeline_bridge_status_worker_spec.rb": 0.5419601929997953,7248 "spec/models/description_version_spec.rb": 0.30812719900040975,7249 "spec/lib/gitlab/health_checks/gitaly_check_spec.rb": 0.29835411899966857,7250 "spec/serializers/ci/variable_entity_spec.rb": 0.18171293700015667,7251 "spec/lib/gitlab/ci/ansi2json/parser_spec.rb": 0.2602660919992559,7252 "spec/graphql/types/grafana_integration_type_spec.rb": 0.22774225499961176,7253 "spec/graphql/types/metrics/dashboards/annotation_type_spec.rb": 0.2313491039994915,7254 "spec/workers/ssh_keys/update_last_used_at_worker_spec.rb": 0.2884860899994237,7255 "spec/rubocop/cop/migration/with_lock_retries_disallowed_method_spec.rb": 0.30465640800048277,7256 "spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb": 0.23172911399979057,7257 "spec/helpers/projects/incidents_helper_spec.rb": 0.27044404199932615,7258 "spec/lib/gitlab/git/bundle_file_spec.rb": 0.2061760749993482,7259 "spec/lib/api/helpers/version_spec.rb": 0.26589509200039174,7260 "spec/graphql/types/packages/nuget/metadatum_type_spec.rb": 0.26686031100052787,7261 "spec/workers/gitlab/github_import/attachments/import_issue_worker_spec.rb": 0.532985003000249,7262 "spec/lib/api/api_spec.rb": 0.2444570929992551,7263 "spec/lib/banzai/filter/timeout_html_pipeline_filter_spec.rb": 0.5905960489999416,7264 "spec/graphql/types/branch_protections/merge_access_level_type_spec.rb": 0.21814530399933574,7265 "spec/lib/gitlab/kubernetes/role_binding_spec.rb": 0.18453092700019624,7266 "spec/lib/gitlab/ci/ansi2json/state_spec.rb": 0.328778658000374,7267 "spec/graphql/resolvers/concerns/resolves_ids_spec.rb": 0.24486688300021342,7268 "spec/lib/gitlab/data_builder/archive_trace_spec.rb": 0.5594267410006069,7269 "spec/lib/bulk_imports/projects/graphql/get_repository_query_spec.rb": 0.31871116799993615,7270 "spec/services/product_analytics/build_graph_service_spec.rb": 0.47296044700033235,7271 "spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_project_type_active_metric_spec.rb": 0.4457408389998818,7272 "spec/lib/json_web_token/token_spec.rb": 0.23537341300016124,7273 "spec/lib/api/entities/clusters/agent_spec.rb": 0.4560512589996506,7274 "spec/rubocop/cop/group_public_or_visible_to_user_spec.rb": 0.23648406399934174,7275 "spec/graphql/types/ci/manual_variable_type_spec.rb": 0.1952624460000152,7276 "spec/views/explore/projects/topic.html.haml_spec.rb": 0.432224409999435,7277 "spec/lib/gitlab/ci/build/hook_spec.rb": 0.4046565119997467,7278 "spec/graphql/types/issuable_sort_enum_spec.rb": 0.19895327599988377,7279 "spec/lib/gitlab/safe_device_detector_spec.rb": 0.3660869349996574,7280 "spec/helpers/one_trust_helper_spec.rb": 0.2701451309994809,7281 "spec/graphql/types/permission_types/issue_spec.rb": 0.18142928700035554,7282 "spec/rubocop/cop/database/rescue_statement_timeout_spec.rb": 0.21413539500008483,7283 "spec/lib/gitlab/no_cache_headers_spec.rb": 0.1793031079996581,7284 "spec/lib/gitlab/email/hook/delivery_metrics_observer_spec.rb": 0.22293292500035022,7285 "spec/services/packages/rpm/repository_metadata/build_other_xml_service_spec.rb": 0.21348628499981714,7286 "spec/lib/gitlab/database/convert_feature_category_to_group_label_spec.rb": 0.21689949499977956,7287 "spec/workers/file_hook_worker_spec.rb": 0.20368259600036254,7288 "spec/lib/api/entities/bulk_imports/entity_spec.rb": 0.2536519630002658,7289 "spec/serializers/personal_access_token_entity_spec.rb": 0.2430385630004821,7290 "spec/helpers/deploy_tokens_helper_spec.rb": 0.19202136700005212,7291 "spec/models/integrations/base_slack_notification_spec.rb": 0.19380926700068812,7292 "spec/graphql/types/work_items/widgets/award_emoji_type_spec.rb": 0.18368594799994753,7293 "spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb": 0.17558210700008203,7294 "spec/models/concerns/taggable_queries_spec.rb": 0.1741514069999539,7295 "spec/initializers/fog_google_https_private_urls_spec.rb": 0.18445731700012402,7296 "spec/lib/gitlab/usage/metrics/instrumentations/incoming_email_encrypted_secrets_enabled_metric_spec.rb": 0.18038312699991366,7297 "spec/models/blob_viewer/gemspec_spec.rb": 0.191465076999520537298}7299Knapsack global time execution for tests: 25m 51s7300Pending: (Failures listed here are expected and do not affect your suite's status)7301 1) gitlab:db namespace rake task mark_migration_complete with multiple databases marks the migration complete on each database7302 # Skipping because ci is shared or doesn't not exist7303 # ./spec/tasks/gitlab/db_rake_spec.rb:507304 2) gitlab:db namespace rake task mark_migration_complete with multiple databases when the single database task is used marks the migration complete for the given database7305 # Skipping because ci is shared or doesn't not exist7306 # ./spec/tasks/gitlab/db_rake_spec.rb:637307 3) gitlab:db namespace rake task mark_migration_complete with multiple databases with geo configured does not create a task for the geo database7308 # Skipping because ci is shared or doesn't not exist7309 # ./spec/tasks/gitlab/db_rake_spec.rb:807310 4) gitlab:db namespace rake task configure with a single database when geo is configured when the main database is also configured only configures the main database7311 # Skipping because the geo database is not configured7312 # ./spec/tasks/gitlab/db_rake_spec.rb:2447313 5) gitlab:db namespace rake task configure with multiple databases when geo is not configured when no database has the schema loaded loads the schema and seeds all the databases7314 # Skipping because ci is shared or doesn't not exist7315 # ./spec/tasks/gitlab/db_rake_spec.rb:2847316 6) gitlab:db namespace rake task configure with multiple databases when geo is not configured when both databases have the schema loaded migrates the databases without seeding them7317 # Skipping because ci is shared or doesn't not exist7318 # ./spec/tasks/gitlab/db_rake_spec.rb:3047319 7) gitlab:db namespace rake task configure with multiple databases when geo is not configured when only one database has the schema loaded migrates and loads the schema correctly, without seeding the databases7320 # Skipping because ci is shared or doesn't not exist7321 # ./spec/tasks/gitlab/db_rake_spec.rb:3247322 8) gitlab:db namespace rake task configure with multiple databases when geo is configured does not run tasks against geo7323 # Skipping because ci is shared or doesn't not exist7324 # ./spec/tasks/gitlab/db_rake_spec.rb:3487325 9) gitlab:db namespace rake task drop_tables with multiple databases drops all objects for all databases7326 # Skipping because ci is shared or doesn't not exist7327 # ./spec/tasks/gitlab/db_rake_spec.rb:6487328 10) gitlab:db namespace rake task drop_tables with multiple databases when the single database task is used drops all objects for the given database7329 # Skipping because ci is shared or doesn't not exist7330 # ./spec/tasks/gitlab/db_rake_spec.rb:6567331 11) gitlab:db namespace rake task drop_tables with multiple databases with geo configured does not create a task for the geo database7332 # Skipping because ci is shared or doesn't not exist7333 # ./spec/tasks/gitlab/db_rake_spec.rb:6707334 12) gitlab:db namespace rake task create_dynamic_partitions with multiple databases when running the multi-database variant delegates syncing of partitions without limiting databases7335 # Skipping because ci is shared or doesn't not exist7336 # ./spec/tasks/gitlab/db_rake_spec.rb:7137337 13) gitlab:db namespace rake task create_dynamic_partitions with multiple databases when running a single-database variant delegates syncing of partitions for the chosen database7338 # Skipping because ci is shared or doesn't not exist7339 # ./spec/tasks/gitlab/db_rake_spec.rb:7217340 14) gitlab:db namespace rake task create_dynamic_partitions with geo configured does not create a task for the geo database7341 # Skipping because the geo database is not configured7342 # ./spec/tasks/gitlab/db_rake_spec.rb:7347343 15) gitlab:db namespace rake task reindex with a single database delegates to Gitlab::Database::Reindexing7344 # Skipping because ci is shared or doesn't not exist7345 # ./spec/tasks/gitlab/db_rake_spec.rb:7477346 16) gitlab:db namespace rake task reindex with a single database when reindexing is not enabled is a no-op7347 # Skipping because ci is shared or doesn't not exist7348 # ./spec/tasks/gitlab/db_rake_spec.rb:7547349 17) gitlab:db namespace rake task reindex with multiple databases delegates to Gitlab::Database::Reindexing without a specific database7350 # Skipping because none of the extra databases [:ci] are setup7351 # ./spec/tasks/gitlab/db_rake_spec.rb:7727352 18) gitlab:db namespace rake task reindex with multiple databases when the single database task is used delegates to Gitlab::Database::Reindexing with a specific database7353 # Skipping because none of the extra databases [:ci] are setup7354 # ./spec/tasks/gitlab/db_rake_spec.rb:7837355 19) gitlab:db namespace rake task reindex with multiple databases when the single database task is used when reindexing is not enabled is a no-op7356 # Skipping because none of the extra databases [:ci] are setup7357 # ./spec/tasks/gitlab/db_rake_spec.rb:7907358 20) gitlab:db namespace rake task reindex with multiple databases with geo configured does not create a task for the geo database7359 # Skipping because none of the extra databases [:ci] are setup7360 # ./spec/tasks/gitlab/db_rake_spec.rb:8047361 21) gitlab:db namespace rake task execute_async_index_operations delegates ci task to Gitlab::Database::AsyncIndexes7362 # Skipping because ci is shared or doesn't not exist7363 # ./spec/tasks/gitlab/db_rake_spec.rb:8357364 22) gitlab:db namespace rake task execute_async_index_operations delegates ci task to Gitlab::Database::AsyncIndexes with specified argument7365 # Skipping because ci is shared or doesn't not exist7366 # ./spec/tasks/gitlab/db_rake_spec.rb:8417367 23) gitlab:db namespace rake task execute_async_index_operations delegates main task to Gitlab::Database::AsyncIndexes7368 # Skipping because ci is shared or doesn't not exist7369 # ./spec/tasks/gitlab/db_rake_spec.rb:8477370 24) gitlab:db namespace rake task execute_async_index_operations delegates main task to Gitlab::Database::AsyncIndexes with specified argument7371 # Skipping because ci is shared or doesn't not exist7372 # ./spec/tasks/gitlab/db_rake_spec.rb:8537373 25) gitlab:db namespace rake task execute_async_index_operations delegates all task to every database with higher default for dev7374 # Skipping because ci is shared or doesn't not exist7375 # ./spec/tasks/gitlab/db_rake_spec.rb:8597376 26) gitlab:db namespace rake task execute_async_index_operations delegates all task to every database with lower default for prod7377 # Skipping because ci is shared or doesn't not exist7378 # ./spec/tasks/gitlab/db_rake_spec.rb:8667379 27) gitlab:db namespace rake task execute_async_index_operations delegates all task to every database with specified argument7380 # Skipping because ci is shared or doesn't not exist7381 # ./spec/tasks/gitlab/db_rake_spec.rb:8757382 28) gitlab:db namespace rake task execute_async_index_operations when feature is not enabled is a no-op7383 # Skipping because ci is shared or doesn't not exist7384 # ./spec/tasks/gitlab/db_rake_spec.rb:8837385 29) gitlab:db namespace rake task execute_async_index_operations when database ddl feature flag is enabled is a no-op7386 # Skipping because ci is shared or doesn't not exist7387 # ./spec/tasks/gitlab/db_rake_spec.rb:8937388 30) gitlab:db namespace rake task execute_async_index_operations with geo configured does not create a task for the geo database7389 # Skipping because ci is shared or doesn't not exist7390 # ./spec/tasks/gitlab/db_rake_spec.rb:9077391 31) gitlab:db namespace rake task validate_async_constraints delegates ci task to Gitlab::Database::AsyncConstraints7392 # Skipping because ci is shared or doesn't not exist7393 # ./spec/tasks/gitlab/db_rake_spec.rb:9197394 32) gitlab:db namespace rake task validate_async_constraints delegates ci task to Gitlab::Database::AsyncConstraints with specified argument7395 # Skipping because ci is shared or doesn't not exist7396 # ./spec/tasks/gitlab/db_rake_spec.rb:9257397 33) gitlab:db namespace rake task validate_async_constraints delegates main task to Gitlab::Database::AsyncConstraints7398 # Skipping because ci is shared or doesn't not exist7399 # ./spec/tasks/gitlab/db_rake_spec.rb:9317400 34) gitlab:db namespace rake task validate_async_constraints delegates main task to Gitlab::Database::AsyncConstraints with specified argument7401 # Skipping because ci is shared or doesn't not exist7402 # ./spec/tasks/gitlab/db_rake_spec.rb:9377403 35) gitlab:db namespace rake task validate_async_constraints delegates all task to every database with higher default for dev7404 # Skipping because ci is shared or doesn't not exist7405 # ./spec/tasks/gitlab/db_rake_spec.rb:9437406 36) gitlab:db namespace rake task validate_async_constraints delegates all task to every database with lower default for prod7407 # Skipping because ci is shared or doesn't not exist7408 # ./spec/tasks/gitlab/db_rake_spec.rb:9507409 37) gitlab:db namespace rake task validate_async_constraints delegates all task to every database with specified argument7410 # Skipping because ci is shared or doesn't not exist7411 # ./spec/tasks/gitlab/db_rake_spec.rb:9597412 38) gitlab:db namespace rake task validate_async_constraints when feature is not enabled is a no-op7413 # Skipping because ci is shared or doesn't not exist7414 # ./spec/tasks/gitlab/db_rake_spec.rb:9677415 39) gitlab:db namespace rake task validate_async_constraints when database ddl feature flag is enabled is a no-op7416 # Skipping because ci is shared or doesn't not exist7417 # ./spec/tasks/gitlab/db_rake_spec.rb:9777418 40) gitlab:db namespace rake task validate_async_constraints with geo configured does not create a task for the geo database7419 # Skipping because ci is shared or doesn't not exist7420 # ./spec/tasks/gitlab/db_rake_spec.rb:9917421 41) gitlab:db namespace rake task with multiple databases db:schema:dump against a single database invokes gitlab:db:clean_structure_sql7422 # Skipping because ci is shared or doesn't not exist7423 # ./spec/tasks/gitlab/db_rake_spec.rb:11677424 42) gitlab:db namespace rake task with multiple databases db:migrate against a single database invokes gitlab:db:create_dynamic_partitions for the same database7425 # Skipping because ci is shared or doesn't not exist7426 # ./spec/tasks/gitlab/db_rake_spec.rb:11757427 43) gitlab:db namespace rake task with multiple databases db:migrate:geo does not invoke gitlab:db:create_dynamic_partitions7428 # Skipping because ci is shared or doesn't not exist7429 # ./spec/tasks/gitlab/db_rake_spec.rb:11877430 44) Gitlab::Database::Partitioning.sync_partitions with multiple databases creates partitions in each database7431 # Skipping because ci is shared or doesn't not exist7432 # ./spec/lib/gitlab/database/partitioning_spec.rb:1577433 45) Gitlab::Database::Partitioning.sync_partitions when only a specific database is requested manages partitions for models for the given database7434 # Skipping because ci is shared or doesn't not exist7435 # ./spec/lib/gitlab/database/partitioning_spec.rb:2367436 46) dev rake tasks terminate_all_connections when a database is not found continues to next connection7437 # Skipping because ci is shared or doesn't not exist7438 # ./spec/tasks/dev_rake_spec.rb:1277439 47) dev rake tasks multiple databases with a valid database copy_db:ci creates the database from main7440 # Skipping because ci is shared or doesn't not exist7441 # ./spec/tasks/dev_rake_spec.rb:1557442 48) dev rake tasks multiple databases with a valid database copy_db:ci when the database already exists prints out a warning7443 # Skipping because ci is shared or doesn't not exist7444 # ./spec/tasks/dev_rake_spec.rb:1677445 49) dev rake tasks multiple databases with an invalid database raises an error7446 # Skipping because ci is shared or doesn't not exist7447 # ./spec/tasks/dev_rake_spec.rb:1777448Finished in 26 minutes 26 seconds (files took 38.69 seconds to load)74493344 examples, 0 failures, 49 pending7450Randomized with seed 243877451[TEST PROF INFO] Time spent in factories: 08:23.563 (31.64% of total time)7452RSpec exited with 0.7453No examples to retry, congrats!7455Running after script...7456$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"7460$ tooling/bin/push_job_metrics || true7461[job-metrics] Pushing job metrics file for the CI/CD job.7462[job-metrics] Pushed 4 CI job metric entries to InfluxDB.7464Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy7466Uploading artifacts...7467auto_explain/: found 2 matching artifact files and directories 7468coverage/: found 5 matching artifact files and directories 7469crystalball/: found 2 matching artifact files and directories 7470WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7471knapsack/: found 4 matching artifact files and directories 7472rspec/: found 16 matching artifact files and directories 7473WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 7474log/*.log: found 19 matching artifact files and directories 7475WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336650838/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7476WARNING: Retrying... context=artifacts-uploader error=request redirected7477Uploading artifacts as "archive" to coordinator... 201 Created id=5336650838 responseStatus=201 Created token=64_dmWrJ7478Uploading artifacts...7479rspec/rspec-*.xml: found 1 matching artifact files and directories 7480WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336650838/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7481WARNING: Retrying... context=artifacts-uploader error=request redirected7482Uploading artifacts as "junit" to coordinator... 201 Created id=5336650838 responseStatus=201 Created token=64_dmWrJ7484Job succeeded