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

Vladimir Shushlin
1Running with gitlab-runner 16.3.0~beta.108.g2b6048b4 (2b6048b4)2 on blue-1.shared-gitlab-org.runners-manager.gitlab.com/default KzYhZxBv, system ID: s_e6befde69e263 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-kzyhzxbv-project-278964-concurrent-0 via runner-kzyhzxbv-shared-gitlab-org-1697785624-38fafc41...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 | 30.25 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_7kFsA48Downloading artifacts for detect-tests (5336650454)...49Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650454 responseStatus=200 OK token=64_7kFsA50Downloading artifacts for retrieve-tests-metadata (5336650473)...51Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650473 responseStatus=200 OK token=64_7kFsA52Downloading artifacts for setup-test-env (5336650424)...53Downloading artifacts from coordinator... ok host=storage.googleapis.com id=5336650424 responseStatus=200 OK token=64_7kFsA55Using 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)94Geo DB won't be set up.95Embedding DB won't be set up.116$ source ./scripts/rspec_helpers.sh117$ run_timed_command "gem install knapsack --no-document"118$ gem install knapsack --no-document119Successfully installed knapsack-4.0.01201 gem installed121==> 'gem install knapsack --no-document' succeeded in 0 seconds.122$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"127$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"128$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"129$ tooling/bin/create_job_metrics_file || true130[job-metrics] Creating the job metrics file for the CI/CD job.131$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request"132RETRY_FAILED_TESTS_IN_NEW_PROCESS: true133KNAPSACK_GENERATE_REPORT: true134FLAKY_RSPEC_GENERATE_REPORT: true135KNAPSACK_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.rb136KNAPSACK_LOG_LEVEL: debug137KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_single-db-ci-connection_11_28_report.json138FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json139FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_single-db-ci-connection_11_28_report.json140NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_single-db-ci-connection_11_28_report.json141RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-5336650961.txt142CRYSTALBALL: 143RSPEC_TESTS_MAPPING_ENABLED: 144RSPEC_TESTS_FILTER_FILE: 145Shell set options (set -o) enabled:146braceexpand on147hashall on148interactive-comments on149pipefail on150Running 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-5336650961.json --format RspecJunitFormatter --out rspec/rspec-5336650961.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request -- spec/policies/issue_policy_spec.rb spec/models/clusters/platforms/kubernetes_spec.rb spec/lib/gitlab/middleware/go_spec.rb spec/models/integration_spec.rb spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb spec/services/notes/create_service_spec.rb spec/lib/gitlab/background_migration/backfill_topics_title_spec.rb spec/lib/gitlab/diff/position_tracer/line_strategy_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_projects_less_than_one_mb_spec.rb spec/lib/gitlab/background_migration/backfill_resource_link_events_spec.rb spec/presenters/ci/build_runner_presenter_spec.rb spec/lib/gitlab/background_migration/fix_vulnerability_reads_has_issues_spec.rb spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb spec/models/project_feature_spec.rb spec/helpers/users_helper_spec.rb spec/services/environments/stop_service_spec.rb spec/presenters/merge_request_presenter_spec.rb spec/serializers/member_entity_spec.rb spec/services/work_items/create_service_spec.rb spec/services/ci/create_commit_status_service_spec.rb spec/services/projects/lfs_pointers/lfs_download_link_list_service_spec.rb spec/graphql/mutations/merge_requests/set_labels_spec.rb spec/lib/gitlab/background_migration/migrate_links_for_vulnerability_findings_spec.rb spec/lib/gitlab/background_migration/backfill_missing_ci_cd_settings_spec.rb spec/lib/container_registry/tag_spec.rb spec/lib/gitlab/database_spec.rb spec/models/integrations/teamcity_spec.rb spec/models/integrations/unify_circuit_spec.rb spec/models/incident_management/issuable_escalation_status_spec.rb spec/models/projects/data_transfer_spec.rb spec/models/integrations/webex_teams_spec.rb spec/lib/gitlab/metrics_spec.rb spec/services/namespaces/package_settings/update_service_spec.rb spec/models/integrations/pipelines_email_spec.rb spec/models/generic_commit_status_spec.rb spec/lib/gitlab/gitaly_client/with_feature_flag_actors_spec.rb spec/lib/gitlab/verify/uploads_spec.rb spec/services/discussions/update_diff_position_service_spec.rb spec/models/ci/group_variable_spec.rb spec/models/ci/build_trace_metadata_spec.rb spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb spec/lib/gitlab/checks/diff_check_spec.rb spec/lib/gitlab/diff/position_tracer_spec.rb spec/services/packages/nuget/sync_metadatum_service_spec.rb spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb spec/lib/gitlab/import_export/command_line_util_spec.rb spec/graphql/types/merge_request_type_spec.rb spec/graphql/mutations/ci/runner/update_spec.rb spec/models/fork_network_spec.rb spec/rubocop/cop/graphql/old_types_spec.rb spec/models/snippet_input_action_spec.rb spec/lib/gitlab/ci/reports/codequality_reports_comparer_spec.rb spec/lib/gitlab/search/recent_issues_spec.rb spec/lib/gitlab/ci/status/build/stop_spec.rb spec/finders/joined_groups_finder_spec.rb spec/tasks/gitlab/ldap_rake_spec.rb spec/models/integrations/youtrack_spec.rb spec/lib/gitlab/import_export/lfs_restorer_spec.rb spec/lib/gitlab/database/reindexing/grafana_notifier_spec.rb spec/services/notes/post_process_service_spec.rb spec/policies/ci/trigger_policy_spec.rb spec/lib/gitlab/template_parser/ast_spec.rb spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb spec/models/customer_relations/organization_spec.rb spec/rubocop/cop/static_translation_definition_spec.rb spec/models/customer_relations/issue_contact_spec.rb spec/graphql/mutations/issues/set_escalation_status_spec.rb spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb spec/services/repositories/housekeeping_service_spec.rb spec/presenters/event_presenter_spec.rb spec/lib/gitlab/diff/rendered/notebook/diff_file_helper_spec.rb spec/presenters/snippet_presenter_spec.rb spec/models/concerns/ci/has_variable_spec.rb spec/lib/gitlab/event_store/store_spec.rb spec/graphql/resolvers/concerns/resolves_pipelines_spec.rb spec/models/integrations/clickup_spec.rb spec/finders/packages/conan/package_file_finder_spec.rb spec/initializers/direct_upload_support_spec.rb spec/models/integrations/google_play_spec.rb spec/workers/concerns/limited_capacity/worker_spec.rb spec/models/packages/debian/file_entry_spec.rb spec/graphql/types/base_enum_spec.rb spec/services/work_items/delete_task_service_spec.rb spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb spec/lib/gitlab/chat/responder/mattermost_spec.rb spec/graphql/mutations/todos/create_spec.rb spec/helpers/web_hooks/web_hooks_helper_spec.rb spec/graphql/types/base_object_spec.rb spec/graphql/resolvers/project_milestones_resolver_spec.rb spec/lib/gitlab/visibility_level_checker_spec.rb spec/lib/constraints/project_url_constrainer_spec.rb spec/services/environments/update_service_spec.rb spec/lib/api/entities/ci/pipeline_spec.rb spec/workers/clusters/applications/activate_integration_worker_spec.rb spec/graphql/types/terraform/state_version_type_spec.rb spec/models/issue_assignee_spec.rb spec/models/concerns/enums/sbom_spec.rb spec/finders/design_management/designs_finder_spec.rb spec/services/milestones/close_service_spec.rb spec/models/merge_request/diff_commit_user_spec.rb spec/lib/gitlab/kubernetes/deployment_spec.rb spec/finders/data_transfer/project_data_transfer_finder_spec.rb spec/lib/gitlab/themes_spec.rb spec/lib/bitbucket_server/connection_spec.rb spec/lib/gitlab/file_detector_spec.rb spec/services/ci/create_pipeline_service/parallel_spec.rb spec/lib/gitlab/cleanup/orphan_job_artifact_files_spec.rb spec/rubocop/cop/put_group_routes_under_scope_spec.rb spec/policies/packages/policies/group_policy_spec.rb spec/models/integrations/base_third_party_wiki_spec.rb spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb spec/lib/gitlab/graphs/commits_spec.rb spec/lib/banzai/reference_parser/work_item_parser_spec.rb spec/models/bulk_imports/tracker_spec.rb spec/components/pajamas/empty_state_component_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_metric_spec.rb spec/models/group_import_state_spec.rb spec/services/task_list_toggle_service_spec.rb spec/rubocop/cop/migration/batch_migrations_post_only_spec.rb spec/lib/gitlab/auth/o_auth/identity_linker_spec.rb spec/services/groups/group_links/update_service_spec.rb spec/models/bulk_imports/failure_spec.rb spec/serializers/integrations/event_entity_spec.rb spec/lib/declarative_enum_spec.rb spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb spec/lib/gitlab/setup_helper/praefect_spec.rb spec/lib/gitlab/import_export/json/ndjson_reader_spec.rb spec/helpers/ci/variables_helper_spec.rb spec/workers/ci/cancel_redundant_pipelines_worker_spec.rb spec/policies/project_hook_policy_spec.rb spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb spec/finders/packages/helm/package_files_finder_spec.rb spec/graphql/resolvers/ci/runner_job_count_resolver_spec.rb spec/lib/gitlab/lets_encrypt/challenge_spec.rb spec/workers/gitlab/bitbucket_import/import_pull_request_worker_spec.rb spec/lib/gitlab/ci/pipeline/chain/limit/active_jobs_spec.rb spec/finders/groups/accepting_project_imports_finder_spec.rb spec/workers/ci/build_trace_chunk_flush_worker_spec.rb spec/workers/users/migrate_records_to_ghost_user_in_batches_worker_spec.rb spec/services/customer_relations/organizations/create_service_spec.rb spec/graphql/subscriptions/issuable_updated_spec.rb spec/tasks/gitlab/security/update_banned_ssh_keys_rake_spec.rb spec/lib/gitlab/database/migrations/extension_helpers_spec.rb spec/helpers/gitlab_script_tag_helper_spec.rb spec/workers/merge_requests/create_approval_note_worker_spec.rb spec/graphql/mutations/environments/delete_spec.rb spec/lib/gitlab/alert_management/payload_spec.rb spec/views/layouts/header/_super_sidebar_logged_out.html.haml_spec.rb spec/services/ci/create_pipeline_service/variables_spec.rb spec/lib/gitlab/background_migration/populate_operation_visibility_permissions_from_operations_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_inactive_public_projects_spec.rb spec/graphql/mutations/saved_replies/update_spec.rb spec/workers/incident_management/close_incident_worker_spec.rb spec/lib/sidebars/projects/menus/wiki_menu_spec.rb spec/helpers/startupjs_helper_spec.rb spec/workers/detect_repository_languages_worker_spec.rb spec/lib/gitlab/usage/service_ping/payload_keys_processor_spec.rb spec/lib/service_ping/service_ping_settings_spec.rb spec/helpers/projects/terraform_helper_spec.rb spec/graphql/mutations/achievements/revoke_spec.rb spec/lib/gitlab/usage_data_counters/snippet_counter_spec.rb spec/workers/ci/update_locked_unknown_artifacts_worker_spec.rb spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb spec/rubocop/cop/migration/add_reference_spec.rb spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb spec/workers/pages_domain_ssl_renewal_worker_spec.rb spec/services/projects/count_service_spec.rb spec/services/import/github/notes/create_service_spec.rb spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_projects_metric_spec.rb spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb spec/models/project_custom_attribute_spec.rb spec/validators/project_path_validator_spec.rb spec/graphql/resolvers/ci/template_resolver_spec.rb spec/workers/authorized_project_update/user_refresh_over_user_range_worker_spec.rb spec/views/groups/milestones/index.html.haml_spec.rb spec/models/webauthn_registration_spec.rb spec/rubocop/cop/sidekiq_api_usage_spec.rb spec/workers/email_receiver_worker_spec.rb spec/initializers/carrierwave_s3_encryption_headers_patch_spec.rb spec/services/emails/create_service_spec.rb spec/lib/gitlab/database/schema_cleaner_spec.rb spec/lib/api/validations/validators/array_none_any_spec.rb spec/lib/gitlab/word_diff/parser_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_slack_app_installations_gbp_metric_spec.rb spec/models/integrations/pivotaltracker_spec.rb spec/helpers/listbox_helper_spec.rb spec/workers/object_storage/delete_stale_direct_uploads_worker_spec.rb spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb spec/lib/gitlab/color_schemes_spec.rb spec/helpers/blame_helper_spec.rb spec/scripts/database/migration_collision_checker_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_ml_candidates_metric_spec.rb spec/lib/backup/database_backup_error_spec.rb spec/models/project_daily_statistic_spec.rb spec/rubocop/cop/migration/prevent_strings_spec.rb spec/lib/gitlab/cycle_analytics/updater_spec.rb spec/services/user_preferences/update_service_spec.rb spec/views/profiles/show.html.haml_spec.rb spec/spam/concerns/has_spam_action_response_fields_spec.rb spec/workers/gitlab/github_import/import_note_worker_spec.rb spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb spec/lib/gitlab/changes_list_spec.rb spec/rubocop/cop/api/base_spec.rb spec/config/smime_signature_settings_spec.rb spec/lib/gitlab/auth/activity_spec.rb spec/finders/admin/abuse_report_labels_finder_spec.rb spec/views/projects/issues/_related_branches.html.haml_spec.rb spec/validators/future_date_validator_spec.rb spec/lib/api/helpers/import_github_helpers_spec.rb spec/graphql/types/blame/groups_type_spec.rb spec/lib/gitlab/batch_worker_context_spec.rb spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb spec/lib/gitlab/database_importers/default_organization_importer_spec.rb spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb spec/lib/gitlab/middleware/rails_queue_duration_spec.rb spec/graphql/types/packages/package_type_spec.rb spec/views/shared/gitlab_version/_security_patch_upgrade_alert.html.haml_spec.rb spec/lib/api/validations/validators/project_portable_spec.rb spec/graphql/types/ci/runner_setup_type_spec.rb spec/models/packages/rubygems/metadatum_spec.rb spec/services/integrations/slack_events/url_verification_service_spec.rb spec/models/doorkeeper/application_spec.rb spec/services/repositories/replicate_service_spec.rb spec/views/admin/application_settings/network.html.haml_spec.rb spec/lib/gitlab/search/sort_options_spec.rb spec/lib/bulk_imports/projects/graphql/get_project_query_spec.rb spec/views/groups/settings/_general.html.haml_spec.rb spec/lib/gitlab/audit/deploy_token_author_spec.rb spec/initializers/0_postgresql_types_spec.rb spec/lib/system_check/incoming_email/imap_authentication_check_spec.rb spec/graphql/types/ci/variable_type_enum_spec.rb spec/lib/gitlab/patch/uri_spec.rb spec/helpers/emoji_helper_spec.rb spec/graphql/types/work_items/widgets/current_user_todos_input_type_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/plan_menu_spec.rb spec/lib/gitlab/utils/error_message_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/ldap_encrypted_secrets_metric_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/edition_metric_spec.rb spec/serializers/rollout_statuses/ingress_entity_spec.rb spec/helpers/admin/application_settings/settings_helper_spec.rb spec/graphql/types/notes/deleted_note_type_spec.rb spec/workers/gitlab/github_import/import_collaborator_worker_spec.rb spec/lib/api/helpers/pagination_spec.rb spec/graphql/types/ci/pipeline_trigger_type_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/index_inconsistencies_metric_spec.rb spec/graphql/types/permission_types/merge_request_type_spec.rb spec/serializers/integrations/harbor_serializers/tag_serializer_spec.rb spec/uploaders/metric_image_uploader_spec.rbKnapsack report generator started!151/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!152/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!153/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!154/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!155/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!156/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!157/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!158/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!159/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!160/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!161/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!162/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!163/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!164/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!165/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!166/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!167/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!168/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!169/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!170/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!171/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!172/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!173/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!174/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!175/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!176/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!177/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!178/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!179/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!180/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!181/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!182/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!183/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!184/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!185/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!186/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!187/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!188/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!189/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!190/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!191/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!192/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!193/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!194/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!195/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!196/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!197/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!198/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!199/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!200/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!201/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!202/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!203/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!204Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true, :real_ai_request=>true}205Test environment set up in 0.774549473 seconds206IssuePolicy207 a private project208 allows guests to read issues209 allows reporters to read, update, admin and create confidential notes210 allows reporters from group links to read, update, and admin issues211 allows issue authors to read and update their issues212 allows issue assignees to read and update their issues213 does not allow non-members to read, update or create issues214 behaves like alert bot215 allows alert_bot to read and set metadata on issues216 behaves like support bot with service desk disabled217 does not allow support_bot to read issues, create and set metadata on new issues218 behaves like support bot with service desk enabled219 allows support_bot to read issues, create and set metadata on new issues220 with confidential issues221 does not allow non-members to read confidential issues222 does not allow guests to read confidential issues223 allows reporters to read, update, and admin confidential issues224 allows reporters from group links to read, update, and admin confidential issues225 allows issue authors to read and update their confidential issues226 does not allow issue author to read or update confidential issue moved to an private project227 allows issue assignees to read and update their confidential issues228 does not allow issue assignees to read or update confidential issue moved to an private project229 a public project230 does not allow anonymous user to create todos231 allows guests to read issues232 allows reporters to read, update, reopen, and admin issues233 allows reporters from group links to read, update, reopen and admin issues234 allows issue authors to read, reopen and update their issues235 allows issue assignees to read, reopen and update their issues236 allows non-members to read and create issues237 allows non-members to read issues238 does not allow non-members to update, admin or set metadata except for set confidential flag239 allows support_bot to read issues240 behaves like alert bot241 allows alert_bot to read and set metadata on issues242 behaves like support bot with service desk enabled243 allows support_bot to read issues, create and set metadata on new issues244 when issues are private245 forbids visitors from viewing issues246 forbids visitors from commenting247 forbids visitors from subscribing248 allows guests to view249 allows guests to comment250 allows guests to subscribe251 allows guests to admin relation252 does not allow non-members to update or create issues253 when admin mode is enabled254 allows admins to view255 allows admins to comment256 when admin mode is disabled257 forbids admins to view258 forbids admins to comment259 behaves like alert bot260 allows alert_bot to read and set metadata on issues261 behaves like support bot with service desk disabled262 does not allow support_bot to read issues, create and set metadata on new issues263 behaves like support bot with service desk enabled264 allows support_bot to read issues, create and set metadata on new issues265 with confidential issues266 does not allow guests to read confidential issues267 allows reporters to read, update, and admin confidential issues268 allows reporter from group links to read, update, and admin confidential issues269 allows issue authors to read and update their confidential issues270 allows issue assignees to read and update their confidential issues271 allows admins to read confidential issues272 with a hidden issue273EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar274EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar275 does not allow non-admin user to read the issue276EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar277EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar278 allows admin to read the issue279 when accounting for notes widget280 and notes widget is disabled for issue281 does not allow accessing notes282 and notes widget is enabled for issue283 allows accessing notes284 with external authorization enabled285 can read the issue iid without accessing the external service286 crm permissions287 when project reporter288 is disallowed289 when subgroup reporter290 is allowed291 when root group reporter292 is allowed293 when crm disabled on subgroup294 is disallowed295 when personal namespace296 is disallowed297 when user is an inherited member from the group298 and policy allows guest access299 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 1300 behaves like grants the expected permissions301 is expected to be allowed :read_issue302 behaves like grants the expected permissions303 is expected to be allowed :read_issue_iid304 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 1305 behaves like grants the expected permissions306 is expected to be allowed :read_issue307 behaves like grants the expected permissions308 is expected to be allowed :read_issue_iid309 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 1310 behaves like grants the expected permissions311 is expected to be allowed :read_issue312 behaves like grants the expected permissions313 is expected to be allowed :read_issue_iid314 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 1315 behaves like grants the expected permissions316 is expected to be allowed :read_issue317 behaves like grants the expected permissions318 is expected to be allowed :read_issue_iid319 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 1320 behaves like grants the expected permissions321 is expected to be allowed :read_issue322 behaves like grants the expected permissions323 is expected to be allowed :read_issue_iid324 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 1325 behaves like grants the expected permissions326 is expected to be allowed :read_issue327 behaves like grants the expected permissions328 is expected to be allowed :read_issue_iid329 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 1330 behaves like grants the expected permissions331 is expected to be allowed :read_issue332 behaves like grants the expected permissions333 is expected to be allowed :read_issue_iid334 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 0335 behaves like grants the expected permissions336 is expected to be disallowed :read_issue337 behaves like grants the expected permissions338 is expected to be disallowed :read_issue_iid339 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 1340 behaves like grants the expected permissions341 is expected to be allowed :read_issue342 behaves like grants the expected permissions343 is expected to be allowed :read_issue_iid344 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 1345 behaves like grants the expected permissions346 is expected to be allowed :read_issue347 behaves like grants the expected permissions348 is expected to be allowed :read_issue_iid349 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 0350 behaves like grants the expected permissions351 is expected to be disallowed :read_issue352 behaves like grants the expected permissions353 is expected to be disallowed :read_issue_iid354 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 0355 behaves like grants the expected permissions356 is expected to be disallowed :read_issue357 behaves like grants the expected permissions358 is expected to be disallowed :read_issue_iid359 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 0360 behaves like grants the expected permissions361 is expected to be disallowed :read_issue362 behaves like grants the expected permissions363 is expected to be disallowed :read_issue_iid364 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 0365 behaves like grants the expected permissions366 is expected to be disallowed :read_issue367 behaves like grants the expected permissions368 is expected to be disallowed :read_issue_iid369 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 0370 behaves like grants the expected permissions371 is expected to be disallowed :read_issue372 behaves like grants the expected permissions373 is expected to be disallowed :read_issue_iid374 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 0375 behaves like grants the expected permissions376 is expected to be disallowed :read_issue377 behaves like grants the expected permissions378 is expected to be disallowed :read_issue_iid379 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 1380 behaves like grants the expected permissions381 is expected to be allowed :read_issue382 behaves like grants the expected permissions383 is expected to be allowed :read_issue_iid384 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 1385 behaves like grants the expected permissions386 is expected to be allowed :read_issue387 behaves like grants the expected permissions388 is expected to be allowed :read_issue_iid389 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 1390 behaves like grants the expected permissions391 is expected to be allowed :read_issue392 behaves like grants the expected permissions393 is expected to be allowed :read_issue_iid394 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 1395 behaves like grants the expected permissions396 is expected to be allowed :read_issue397 behaves like grants the expected permissions398 is expected to be allowed :read_issue_iid399 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 1400 behaves like grants the expected permissions401 is expected to be allowed :read_issue402 behaves like grants the expected permissions403 is expected to be allowed :read_issue_iid404 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 0405 behaves like grants the expected permissions406 is expected to be disallowed :read_issue407 behaves like grants the expected permissions408 is expected to be disallowed :read_issue_iid409 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 1410 behaves like grants the expected permissions411 is expected to be allowed :read_issue412 behaves like grants the expected permissions413 is expected to be allowed :read_issue_iid414 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 0415 behaves like grants the expected permissions416 is expected to be disallowed :read_issue417 behaves like grants the expected permissions418 is expected to be disallowed :read_issue_iid419 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 1420 behaves like grants the expected permissions421 is expected to be allowed :read_issue422 behaves like grants the expected permissions423 is expected to be allowed :read_issue_iid424 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 1425 behaves like grants the expected permissions426 is expected to be allowed :read_issue427 behaves like grants the expected permissions428 is expected to be allowed :read_issue_iid429 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 0430 behaves like grants the expected permissions431 is expected to be disallowed :read_issue432 behaves like grants the expected permissions433 is expected to be disallowed :read_issue_iid434 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 0435 behaves like grants the expected permissions436 is expected to be disallowed :read_issue437 behaves like grants the expected permissions438 is expected to be disallowed :read_issue_iid439 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 0440 behaves like grants the expected permissions441 is expected to be disallowed :read_issue442 behaves like grants the expected permissions443 is expected to be disallowed :read_issue_iid444 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 0445 behaves like grants the expected permissions446 is expected to be disallowed :read_issue447 behaves like grants the expected permissions448 is expected to be disallowed :read_issue_iid449 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 0450 behaves like grants the expected permissions451 is expected to be disallowed :read_issue452 behaves like grants the expected permissions453 is expected to be disallowed :read_issue_iid454 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 0455 behaves like grants the expected permissions456 is expected to be disallowed :read_issue457 behaves like grants the expected permissions458 is expected to be disallowed :read_issue_iid459 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 1460 behaves like grants the expected permissions461 is expected to be allowed :read_issue462 behaves like grants the expected permissions463 is expected to be allowed :read_issue_iid464 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 0465 behaves like grants the expected permissions466 is expected to be disallowed :read_issue467 behaves like grants the expected permissions468 is expected to be disallowed :read_issue_iid469 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 1470 behaves like grants the expected permissions471 is expected to be allowed :read_issue472 behaves like grants the expected permissions473 is expected to be allowed :read_issue_iid474 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 1475 behaves like grants the expected permissions476 is expected to be allowed :read_issue477 behaves like grants the expected permissions478 is expected to be allowed :read_issue_iid479 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 0480 behaves like grants the expected permissions481 is expected to be disallowed :read_issue482 behaves like grants the expected permissions483 is expected to be disallowed :read_issue_iid484 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 0485 behaves like grants the expected permissions486 is expected to be disallowed :read_issue487 behaves like grants the expected permissions488 is expected to be disallowed :read_issue_iid489 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 0490 behaves like grants the expected permissions491 is expected to be disallowed :read_issue492 behaves like grants the expected permissions493 is expected to be disallowed :read_issue_iid494 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 0495 behaves like grants the expected permissions496 is expected to be disallowed :read_issue497 behaves like grants the expected permissions498 is expected to be disallowed :read_issue_iid499 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 0500 behaves like grants the expected permissions501 is expected to be disallowed :read_issue502 behaves like grants the expected permissions503 is expected to be disallowed :read_issue_iid504 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 0505 behaves like grants the expected permissions506 is expected to be disallowed :read_issue507 behaves like grants the expected permissions508 is expected to be disallowed :read_issue_iid509 and policy allows reporter access510 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 1511 behaves like grants the expected permissions512 is expected to be allowed :update_issue513 behaves like grants the expected permissions514 is expected to be allowed :admin_issue515 behaves like grants the expected permissions516 is expected to be allowed :set_issue_metadata517 behaves like grants the expected permissions518 is expected to be allowed :set_confidentiality519 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 0520 behaves like grants the expected permissions521 is expected to be disallowed :update_issue522 behaves like grants the expected permissions523 is expected to be disallowed :admin_issue524 behaves like grants the expected permissions525 is expected to be disallowed :set_issue_metadata526 behaves like grants the expected permissions527 is expected to be disallowed :set_confidentiality528 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 1529 behaves like grants the expected permissions530 is expected to be allowed :update_issue531 behaves like grants the expected permissions532 is expected to be allowed :admin_issue533 behaves like grants the expected permissions534 is expected to be allowed :set_issue_metadata535 behaves like grants the expected permissions536 is expected to be allowed :set_confidentiality537 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 0538 behaves like grants the expected permissions539 is expected to be disallowed :update_issue540 behaves like grants the expected permissions541 is expected to be disallowed :admin_issue542 behaves like grants the expected permissions543 is expected to be disallowed :set_issue_metadata544 behaves like grants the expected permissions545 is expected to be disallowed :set_confidentiality546 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 0547 behaves like grants the expected permissions548 is expected to be disallowed :update_issue549 behaves like grants the expected permissions550 is expected to be disallowed :admin_issue551 behaves like grants the expected permissions552 is expected to be disallowed :set_issue_metadata553 behaves like grants the expected permissions554 is expected to be disallowed :set_confidentiality555 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 0556 behaves like grants the expected permissions557 is expected to be disallowed :update_issue558 behaves like grants the expected permissions559 is expected to be disallowed :admin_issue560 behaves like grants the expected permissions561 is expected to be disallowed :set_issue_metadata562 behaves like grants the expected permissions563 is expected to be disallowed :set_confidentiality564 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 1565 behaves like grants the expected permissions566 is expected to be allowed :update_issue567 behaves like grants the expected permissions568 is expected to be allowed :admin_issue569 behaves like grants the expected permissions570 is expected to be allowed :set_issue_metadata571 behaves like grants the expected permissions572 is expected to be allowed :set_confidentiality573 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 0574 behaves like grants the expected permissions575 is expected to be disallowed :update_issue576 behaves like grants the expected permissions577 is expected to be disallowed :admin_issue578 behaves like grants the expected permissions579 is expected to be disallowed :set_issue_metadata580 behaves like grants the expected permissions581 is expected to be disallowed :set_confidentiality582 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 1583 behaves like grants the expected permissions584 is expected to be allowed :update_issue585 behaves like grants the expected permissions586 is expected to be allowed :admin_issue587 behaves like grants the expected permissions588 is expected to be allowed :set_issue_metadata589 behaves like grants the expected permissions590 is expected to be allowed :set_confidentiality591 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 0592 behaves like grants the expected permissions593 is expected to be disallowed :update_issue594 behaves like grants the expected permissions595 is expected to be disallowed :admin_issue596 behaves like grants the expected permissions597 is expected to be disallowed :set_issue_metadata598 behaves like grants the expected permissions599 is expected to be disallowed :set_confidentiality600 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 0601 behaves like grants the expected permissions602 is expected to be disallowed :update_issue603 behaves like grants the expected permissions604 is expected to be disallowed :admin_issue605 behaves like grants the expected permissions606 is expected to be disallowed :set_issue_metadata607 behaves like grants the expected permissions608 is expected to be disallowed :set_confidentiality609 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 0610 behaves like grants the expected permissions611 is expected to be disallowed :update_issue612 behaves like grants the expected permissions613 is expected to be disallowed :admin_issue614 behaves like grants the expected permissions615 is expected to be disallowed :set_issue_metadata616 behaves like grants the expected permissions617 is expected to be disallowed :set_confidentiality618 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 0619 behaves like grants the expected permissions620 is expected to be disallowed :update_issue621 behaves like grants the expected permissions622 is expected to be disallowed :admin_issue623 behaves like grants the expected permissions624 is expected to be disallowed :set_issue_metadata625 behaves like grants the expected permissions626 is expected to be disallowed :set_confidentiality627 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 0628 behaves like grants the expected permissions629 is expected to be disallowed :update_issue630 behaves like grants the expected permissions631 is expected to be disallowed :admin_issue632 behaves like grants the expected permissions633 is expected to be disallowed :set_issue_metadata634 behaves like grants the expected permissions635 is expected to be disallowed :set_confidentiality636 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 0637 behaves like grants the expected permissions638 is expected to be disallowed :update_issue639 behaves like grants the expected permissions640 is expected to be disallowed :admin_issue641 behaves like grants the expected permissions642 is expected to be disallowed :set_issue_metadata643 behaves like grants the expected permissions644 is expected to be disallowed :set_confidentiality645 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 0646 behaves like grants the expected permissions647 is expected to be disallowed :update_issue648 behaves like grants the expected permissions649 is expected to be disallowed :admin_issue650 behaves like grants the expected permissions651 is expected to be disallowed :set_issue_metadata652 behaves like grants the expected permissions653 is expected to be disallowed :set_confidentiality654 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 1655 behaves like grants the expected permissions656 is expected to be allowed :update_issue657 behaves like grants the expected permissions658 is expected to be allowed :admin_issue659 behaves like grants the expected permissions660 is expected to be allowed :set_issue_metadata661 behaves like grants the expected permissions662 is expected to be allowed :set_confidentiality663 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 0664 behaves like grants the expected permissions665 is expected to be disallowed :update_issue666 behaves like grants the expected permissions667 is expected to be disallowed :admin_issue668 behaves like grants the expected permissions669 is expected to be disallowed :set_issue_metadata670 behaves like grants the expected permissions671 is expected to be disallowed :set_confidentiality672 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 1673 behaves like grants the expected permissions674 is expected to be allowed :update_issue675 behaves like grants the expected permissions676 is expected to be allowed :admin_issue677 behaves like grants the expected permissions678 is expected to be allowed :set_issue_metadata679 behaves like grants the expected permissions680 is expected to be allowed :set_confidentiality681 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 0682 behaves like grants the expected permissions683 is expected to be disallowed :update_issue684 behaves like grants the expected permissions685 is expected to be disallowed :admin_issue686 behaves like grants the expected permissions687 is expected to be disallowed :set_issue_metadata688 behaves like grants the expected permissions689 is expected to be disallowed :set_confidentiality690 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 0691 behaves like grants the expected permissions692 is expected to be disallowed :update_issue693 behaves like grants the expected permissions694 is expected to be disallowed :admin_issue695 behaves like grants the expected permissions696 is expected to be disallowed :set_issue_metadata697 behaves like grants the expected permissions698 is expected to be disallowed :set_confidentiality699 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 0700 behaves like grants the expected permissions701 is expected to be disallowed :update_issue702 behaves like grants the expected permissions703 is expected to be disallowed :admin_issue704 behaves like grants the expected permissions705 is expected to be disallowed :set_issue_metadata706 behaves like grants the expected permissions707 is expected to be disallowed :set_confidentiality708 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 1709 behaves like grants the expected permissions710 is expected to be allowed :update_issue711 behaves like grants the expected permissions712 is expected to be allowed :admin_issue713 behaves like grants the expected permissions714 is expected to be allowed :set_issue_metadata715 behaves like grants the expected permissions716 is expected to be allowed :set_confidentiality717 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 0718 behaves like grants the expected permissions719 is expected to be disallowed :update_issue720 behaves like grants the expected permissions721 is expected to be disallowed :admin_issue722 behaves like grants the expected permissions723 is expected to be disallowed :set_issue_metadata724 behaves like grants the expected permissions725 is expected to be disallowed :set_confidentiality726 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 1727 behaves like grants the expected permissions728 is expected to be allowed :update_issue729 behaves like grants the expected permissions730 is expected to be allowed :admin_issue731 behaves like grants the expected permissions732 is expected to be allowed :set_issue_metadata733 behaves like grants the expected permissions734 is expected to be allowed :set_confidentiality735 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 0736 behaves like grants the expected permissions737 is expected to be disallowed :update_issue738 behaves like grants the expected permissions739 is expected to be disallowed :admin_issue740 behaves like grants the expected permissions741 is expected to be disallowed :set_issue_metadata742 behaves like grants the expected permissions743 is expected to be disallowed :set_confidentiality744 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 0745 behaves like grants the expected permissions746 is expected to be disallowed :update_issue747 behaves like grants the expected permissions748 is expected to be disallowed :admin_issue749 behaves like grants the expected permissions750 is expected to be disallowed :set_issue_metadata751 behaves like grants the expected permissions752 is expected to be disallowed :set_confidentiality753 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 0754 behaves like grants the expected permissions755 is expected to be disallowed :update_issue756 behaves like grants the expected permissions757 is expected to be disallowed :admin_issue758 behaves like grants the expected permissions759 is expected to be disallowed :set_issue_metadata760 behaves like grants the expected permissions761 is expected to be disallowed :set_confidentiality762 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 0763 behaves like grants the expected permissions764 is expected to be disallowed :update_issue765 behaves like grants the expected permissions766 is expected to be disallowed :admin_issue767 behaves like grants the expected permissions768 is expected to be disallowed :set_issue_metadata769 behaves like grants the expected permissions770 is expected to be disallowed :set_confidentiality771 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 0772 behaves like grants the expected permissions773 is expected to be disallowed :update_issue774 behaves like grants the expected permissions775 is expected to be disallowed :admin_issue776 behaves like grants the expected permissions777 is expected to be disallowed :set_issue_metadata778 behaves like grants the expected permissions779 is expected to be disallowed :set_confidentiality780 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 0781 behaves like grants the expected permissions782 is expected to be disallowed :update_issue783 behaves like grants the expected permissions784 is expected to be disallowed :admin_issue785 behaves like grants the expected permissions786 is expected to be disallowed :set_issue_metadata787 behaves like grants the expected permissions788 is expected to be disallowed :set_confidentiality789 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 0790 behaves like grants the expected permissions791 is expected to be disallowed :update_issue792 behaves like grants the expected permissions793 is expected to be disallowed :admin_issue794 behaves like grants the expected permissions795 is expected to be disallowed :set_issue_metadata796 behaves like grants the expected permissions797 is expected to be disallowed :set_confidentiality798 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 1799 behaves like grants the expected permissions800 is expected to be allowed :update_issue801 behaves like grants the expected permissions802 is expected to be allowed :admin_issue803 behaves like grants the expected permissions804 is expected to be allowed :set_issue_metadata805 behaves like grants the expected permissions806 is expected to be allowed :set_confidentiality807 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 0808 behaves like grants the expected permissions809 is expected to be disallowed :update_issue810 behaves like grants the expected permissions811 is expected to be disallowed :admin_issue812 behaves like grants the expected permissions813 is expected to be disallowed :set_issue_metadata814 behaves like grants the expected permissions815 is expected to be disallowed :set_confidentiality816 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 1817 behaves like grants the expected permissions818 is expected to be allowed :update_issue819 behaves like grants the expected permissions820 is expected to be allowed :admin_issue821 behaves like grants the expected permissions822 is expected to be allowed :set_issue_metadata823 behaves like grants the expected permissions824 is expected to be allowed :set_confidentiality825 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 0826 behaves like grants the expected permissions827 is expected to be disallowed :update_issue828 behaves like grants the expected permissions829 is expected to be disallowed :admin_issue830 behaves like grants the expected permissions831 is expected to be disallowed :set_issue_metadata832 behaves like grants the expected permissions833 is expected to be disallowed :set_confidentiality834 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 0835 behaves like grants the expected permissions836 is expected to be disallowed :update_issue837 behaves like grants the expected permissions838 is expected to be disallowed :admin_issue839 behaves like grants the expected permissions840 is expected to be disallowed :set_issue_metadata841 behaves like grants the expected permissions842 is expected to be disallowed :set_confidentiality843 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 0844 behaves like grants the expected permissions845 is expected to be disallowed :update_issue846 behaves like grants the expected permissions847 is expected to be disallowed :admin_issue848 behaves like grants the expected permissions849 is expected to be disallowed :set_issue_metadata850 behaves like grants the expected permissions851 is expected to be disallowed :set_confidentiality852 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 0853 behaves like grants the expected permissions854 is expected to be disallowed :update_issue855 behaves like grants the expected permissions856 is expected to be disallowed :admin_issue857 behaves like grants the expected permissions858 is expected to be disallowed :set_issue_metadata859 behaves like grants the expected permissions860 is expected to be disallowed :set_confidentiality861 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 0862 behaves like grants the expected permissions863 is expected to be disallowed :update_issue864 behaves like grants the expected permissions865 is expected to be disallowed :admin_issue866 behaves like grants the expected permissions867 is expected to be disallowed :set_issue_metadata868 behaves like grants the expected permissions869 is expected to be disallowed :set_confidentiality870 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 0871 behaves like grants the expected permissions872 is expected to be disallowed :update_issue873 behaves like grants the expected permissions874 is expected to be disallowed :admin_issue875 behaves like grants the expected permissions876 is expected to be disallowed :set_issue_metadata877 behaves like grants the expected permissions878 is expected to be disallowed :set_confidentiality879 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 0880 behaves like grants the expected permissions881 is expected to be disallowed :update_issue882 behaves like grants the expected permissions883 is expected to be disallowed :admin_issue884 behaves like grants the expected permissions885 is expected to be disallowed :set_issue_metadata886 behaves like grants the expected permissions887 is expected to be disallowed :set_confidentiality888Clusters::Platforms::Kubernetes889 is expected to belong to cluster required: false890 is expected to be a kind of Gitlab::Kubernetes891 is expected to respond to #ca_pem892 is expected to validate that :namespace is not ‹"gitlab-managed-apps"›893 is expected to validate that :api_url cannot be empty/falsy894 is expected to validate that :token cannot be empty/falsy895 is expected to delegate #enabled? to the #cluster object896 is expected to delegate #provided_by_user? to the #cluster object897 is expected to nullify if blank :namespace898 behaves like having unique enum values899 has unique values in "authorization_type"900 default values901 is expected to eq "rbac"902 before_validation903 when namespace includes upper case904 converts to lower case905 validation906 when validates namespace907 when namespace is nil908 is expected to be truthy909 when namespace is longer than 63910 is expected to be falsey911 when namespace includes invalid character912 is expected to be falsey913 when namespace is vaild914 is expected to be truthy915 for group cluster916 is expected to be falsey917 when validates api_url918 when api_url is invalid url919 is expected to be falsey920 when api_url is nil921 is expected to be falsey922 when api_url is valid url923 is expected to be truthy924 when api_url is localhost925 is expected to be falsey926 Application settings allows local requests927 is expected to be truthy928 when validates token929 when token is nil930 is expected to be falsey931 ca_cert932 with a valid certificate933 is expected to be truthy934 with an invalid certificate935 is expected to be falsey936 but the certificate is not being updated937 is expected to be truthy938 with no certificate939 is expected to be truthy940 when using reserved namespaces941 when no namespace is manually assigned942 is expected to be valid943 when no reserved namespace is assigned944 is expected to be valid945 when reserved namespace is assigned946 is expected not to be valid947 #kubeclient948 is expected to be an instance of Gitlab::Kubernetes::KubeClient949 ca_pem is a single certificate950 adds it to cert_store951 ca_pem is a chain952 fixture_path: "spec/fixtures/clusters/root_certificate.pem"953 includes chain of certificates954 fixture_path: "spec/fixtures/clusters/intermediate_certificate.pem"955 includes chain of certificates956 fixture_path: "spec/fixtures/clusters/leaf_certificate.pem"957 includes chain of certificates958 #rbac?959 is expected to be truthy960 #predefined_variables961 is expected to include {:key => "KUBE_URL", :value => "https://kubernetes.example.com", :public => true}962 platform has a CA certificate963 is expected to include {:key => "KUBE_CA_PEM", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true}964 is expected to include {:key => "KUBE_CA_PEM_FILE", :value => "-----BEGIN CERTIFICATE-----\nMIIFtTCCA52gAwIBAgIJAOutg3Kf2y5dMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQwHhcNMTcxMDI5MTgxOTU3WhcNMTgxMDI5MTgxOTU3WjBF\nMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50\nZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAvQysroM3TLxaavadSPnFIltrYnxCnU4PvCR8971HMWXsq7Z4ShU4BbbE\n8yp7oUFjulSwW6DhdIvnQb8ihLKictLmrA0isQqrD/iNpKZ6/lI4DGWw4QzrvMnW\nV4yy2QZNpg9tzQHd4+xkeeIoG23RijDU/sPd5dqxF+rPHBfCVInmYvSzLvMhneNj\nBt6gV02gU9e9hsnMatsDvEbvWKp7wcbPot0nWrfZulx2QAWyXy+zG9mJQUds6yc0\n4agAeT9JEb/xtRgR/kS0aUHSGnfSnhZiEn17s0PhTmbu7qSHgzgB+7oJrC9jPoUh\nS2Wo3n0xykAjHrA8wC/Ddw3L38S41VQ58GEfNchistPswyMmXo/Oenv9P3s/kCOI\nfndiksFNdqVo51y9Vjngj589hpOseFDyKmWPIEQZ9kxW/crjP6RZWWLHgz26KtxZ\nuJaoYL8VBbYfrk/bucw0Ma2GEOp8rTsBE7SvgejXZa78q+381Kzc/utW6VwSXqzY\nxeIitft0rXi17SZ+XoiTkIXtHn0ZwMtOXNDBADTpFmKa6wVACQilvcpOYD8gUHyH\npB+EDRdST3M4Fiq1MBAVhk8Lj3tHSJ/1ymeF1PWSu57AnJlzerzq2fcfPotNNd37\nZPNkPh0kxPLwxbAyrHflzx9qVVdI1irY9055mNSnhzlec4qJ9cECAwEAAaOBpzCB\npDAdBgNVHQ4EFgQUnVa5dYPoIG/3+qXml0bX8+N16GwwdQYDVR0jBG4wbIAUnVa5\ndYPoIG/3+qXml0bX8+N16GyhSaRHMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpT\nb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDr\nrYNyn9suXTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAUg4cyxXi1\nVR8ejTpaAruRyJ1pEG9Kc3kiIRXODy60z3hJXnx9LkScPkWGiuL5XacfZ2rMd4bw\noVXIyi8U1UHWfAH8EZdrFKkU92jCiL5soHUONxLAvQEJ/FTR/qijrpzLCxXBdVQE\nxFEDWUu6rxLFyjEwzwnRTLgpjR606fdb7qXHkuAMvZ/ezJj8j97hok3Odpn4lr2H\n6hMTpK7HmDBX+kmdJJ+yBrm9hG1Pzpl7QU0dkxZ+qJNFjYMLnziiTwkv0c5ZaA9E\nNykZUcOv3Sjb6spu1A/E2BSq4WTjkIjrogFlfimE1vmUmObTRJOqUB0Vky1kHEwN\npg7QqIJQmof1EAIaSM/YpUWXyumBwGLDUEud1JUz05In9Q4IZjEwZSJwbQW4fUia\nA93m9rk3Lw3xsFcaUdPMFIXk0rPoF1IgmV/oqb0gK95lOWRLbN+AV8qpKPpcKXOc\nTkIdFE47ZisEDhIdF6wC1izEMLeMEsPAO7/Y6MY4nRxsinSe95lRaw+yQpzx+mvJ\nQ7n1kiHI9Pd5M3+CiQda0d/GO1o5ORJnUGJRvr9HKuNmE7Lif0As/N0AlywjzE7A\n6Z8AEiWyRV1ffshu1k2UKmzvZuZeGGKRtrIjbJIRAtpRVtVZZGzhq5/sojCLoJ+u\ntexqFBUo/4mFRZa4pDItUdyOlDy2/LO/ag==\n-----END CERTIFICATE-----", :public => true, :file => true}965 cluster is managed by project966 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}967 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}968 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}969 kubernetes namespace exists970 is expected to include {:key => :fake_key, :value => "fake_value"}971 kubernetes namespace does not exist972 is expected not to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}973 is expected not to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}974 is expected not to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}975 cluster is unmanaged976 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}977 is expected to include {:key => "KUBE_NAMESPACE", :value => "kubernetes-namespace"}978 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}979 custom namespace is provided980 is expected to include {:key => "KUBE_TOKEN", :value => "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", :public => false, :masked => true}981 is expected to include {:key => "KUBE_NAMESPACE", :value => "custom-namespace"}982 is expected to include {:key => "KUBECONFIG", :value => "kubeconfig", :public => false, :file => true}983 cluster variables984 is expected to include {:key => :fake_key, :value => "fake_value"}985 #terminals986 with invalid pods987 returns no terminals988 with valid pods989 returns terminals990 uses max session time from settings991 #calculate_reactive_cache_for992 when kubernetes responds with valid deployments993 on a project level cluster994 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}995 when reading ingress raises NoMethodError996 when version request succeeds997 when server min version is < 23998 does not raise error999 returns empty array for the K8s component keys1000 when server min version is >= 231001 does raise error1002 when the version request fails1003 tracks error and returns empty arrays1004 on a group level cluster1005 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}1006 on an instance level cluster1007 is expected to include {:pods => [{"metadata" => {"name" => "kube-pod", "generateName" => "generated-name-with-suffix", "creationTimestamp" => "2016-11-25T19:55:19Z", "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"containers" => [{"name" => "container-0"}, {"name" => "container-0-1"}]}, "status" => {"phase" => "Running"}}], :deployments => [{"metadata" => {"name" => "kube-deployment", "generation" => 4, "annotations" => {"app.gitlab.com/env" => "production", "app.gitlab.com/app" => "project-path-slug"}, "labels" => {}}, "spec" => {"replicas" => 3}, "status" => {"observedGeneration" => 4}}], :ingresses => [{"metadata" => {"name" => "production-auto-deploy", "labels" => {"app" => "production", "app.kubernetes.io/managed-by" => "Helm", "chart" => "auto-deploy-app-2.0.0-beta.2", "heritage" => "Helm", "release" => "production"}, "annotations" => {"kubernetes.io/ingress.class" => "nginx", "kubernetes.io/tls-acme" => "true", "meta.helm.sh/release-name" => "production", "meta.helm.sh/release-namespace" => "awesome-app-1-production"}}}]}1008 when the kubernetes integration is disabled1009 is expected to be nil1010 when there are ignored K8s connections errors1011 Gitlab::HTTP_V2::UrlBlocker::BlockedUrlError1012 does not raise error1013 returns empty array for the K8s component keys1014 logs the error1015 Kubeclient::HttpError1016 does not raise error1017 returns empty array for the K8s component keys1018 logs the error1019 Errno::ECONNREFUSED1020 does not raise error1021 returns empty array for the K8s component keys1022 logs the error1023 URI::InvalidURIError1024 does not raise error1025 returns empty array for the K8s component keys1026 logs the error1027 Errno::EHOSTUNREACH1028 does not raise error1029 returns empty array for the K8s component keys1030 logs the error1031 OpenSSL::X509::StoreError1032 does not raise error1033 returns empty array for the K8s component keys1034 logs the error1035 OpenSSL::SSL::SSLError1036 does not raise error1037 returns empty array for the K8s component keys1038 logs the error1039 when kubernetes responds with 500s1040 does not raise kubeclient http error1041 when kubernetes responds with 404s1042 is expected to eq {:deployments=>[], :ingresses=>[], :pods=>[]}1043 #rollout_status1044 legacy deployments based on app label1045 only legacy deployments1046 contains nothing1047 deployment with no pods1048 returns a valid status with matching deployments1049 new deployment based on annotations1050 contains only matching deployments1051 with no deployments but there are pods1052 returns an empty array1053 with valid deployments1054 creates a matching RolloutStatus1055 with canary ingress1056 has canary ingress1057 with empty list of deployments1058 creates a matching RolloutStatus1059 when the pod track does not match the deployment track1060 does not return the pod1061 when the pod track is not stable1062 the pod is not stable1063 when the pod track is stable1064 the pod is stable1065 when the pod track is not provided1066 the pod is stable1067 when the number of matching pods does not match the number of replicas1068 returns a pending pod for each missing replica1069 when pending pods are returned for missing replicas1070 returns the correct track for the pending pods1071 when two deployments with the same track are missing instances1072 returns the correct number of pending pods1073 with multiple matching deployments1074 returns each pod once1075 when cache keys are defaulted1076 does not raise error1077 #ingresses1078 when there is an ingress in the namespace1079 returns an ingress1080 when there are no ingresss in the namespace1081 returns nothing1082 #patch_ingress1083 when there is an ingress in the namespace1084 returns an ingress1085 when there are no ingresss in the namespace1086 raises an error1087 #authorization_type1088 behaves like having enum with nil value1089 has enum with nil value1090Gitlab::Middleware::Go1091 #call1092 when go-get=01093 skips go-import generation1094 when go-get=11095 with SSH disabled1096 with simple 2-segment project path1097 with subpackages1098 returns the full project path1099 without subpackages1100 returns the full project path1101 with a nested project path1102 with subpackages1103 behaves like a nested project1104 when the project is public1105 returns the full project path1106 when the project is private1107 when not authenticated1108 behaves like unauthorized1109 returns the 2-segment group path1110 when authenticated1111 using basic auth1112 using a personal access token1113 with api scope1114 behaves like authenticated1115 with access to the project1116 returns the full project path1117 with an empty ssh_user1118 returns the full project path1119 without access to the project1120 behaves like unauthorized1121 returns the 2-segment group path1122 with user is blocked1123 behaves like unauthorized1124 returns the 2-segment group path1125 with read_user scope1126 behaves like unauthorized1127 returns the 2-segment group path1128 with a denylisted ip1129 returns forbidden1130 when a personal access token is missing1131 returns unauthorized1132 with a subpackage that is not a valid project path1133 behaves like a nested project1134 when the project is public1135 returns the full project path1136 when the project is private1137 when not authenticated1138 behaves like unauthorized1139 returns the 2-segment group path1140 when authenticated1141 using basic auth1142 using a personal access token1143 with api scope1144 behaves like authenticated1145 with access to the project1146 returns the full project path1147 with an empty ssh_user1148 returns the full project path1149 without access to the project1150 behaves like unauthorized1151 returns the 2-segment group path1152 with user is blocked1153 behaves like unauthorized1154 returns the 2-segment group path1155 with read_user scope1156 behaves like unauthorized1157 returns the 2-segment group path1158 with a denylisted ip1159 returns forbidden1160 when a personal access token is missing1161 returns unauthorized1162 without subpackages1163 behaves like a nested project1164 when the project is public1165 returns the full project path1166 when the project is private1167 when not authenticated1168 behaves like unauthorized1169 returns the 2-segment group path1170 when authenticated1171 using basic auth1172 using a personal access token1173 with api scope1174 behaves like authenticated1175 with access to the project1176 returns the full project path1177 with an empty ssh_user1178 returns the full project path1179 without access to the project1180 behaves like unauthorized1181 returns the 2-segment group path1182 with user is blocked1183 behaves like unauthorized1184 returns the 2-segment group path1185 with read_user scope1186 behaves like unauthorized1187 returns the 2-segment group path1188 with a denylisted ip1189 returns forbidden1190 when a personal access token is missing1191 returns unauthorized1192 with a bogus path1193 skips go-import generation1194 with a public project without a repository1195 returns 4041196 with a non-standard head1197 returns the full project path1198 with HTTP disabled1199 with simple 2-segment project path1200 with subpackages1201 returns the full project path1202 without subpackages1203 returns the full project path1204 with a nested project path1205 with subpackages1206 behaves like a nested project1207 when the project is public1208 returns the full project path1209 when the project is private1210 when not authenticated1211 behaves like unauthorized1212 returns the 2-segment group path1213 when authenticated1214 using basic auth1215 using a personal access token1216 with api scope1217 behaves like authenticated1218 with access to the project1219 returns the full project path1220 with an empty ssh_user1221 returns the full project path1222 without access to the project1223 behaves like unauthorized1224 returns the 2-segment group path1225 with user is blocked1226 behaves like unauthorized1227 returns the 2-segment group path1228 with read_user scope1229 behaves like unauthorized1230 returns the 2-segment group path1231 with a denylisted ip1232 returns forbidden1233 when a personal access token is missing1234 returns unauthorized1235 with a subpackage that is not a valid project path1236 behaves like a nested project1237 when the project is public1238 returns the full project path1239 when the project is private1240 when not authenticated1241 behaves like unauthorized1242 returns the 2-segment group path1243 when authenticated1244 using basic auth1245 using a personal access token1246 with api scope1247 behaves like authenticated1248 with access to the project1249 returns the full project path1250 with an empty ssh_user1251 returns the full project path1252 without access to the project1253 behaves like unauthorized1254 returns the 2-segment group path1255 with user is blocked1256 behaves like unauthorized1257 returns the 2-segment group path1258 with read_user scope1259 behaves like unauthorized1260 returns the 2-segment group path1261 with a denylisted ip1262 returns forbidden1263 when a personal access token is missing1264 returns unauthorized1265 without subpackages1266 behaves like a nested project1267 when the project is public1268 returns the full project path1269 when the project is private1270 when not authenticated1271 behaves like unauthorized1272 returns the 2-segment group path1273 when authenticated1274 using basic auth1275 using a personal access token1276 with api scope1277 behaves like authenticated1278 with access to the project1279 returns the full project path1280 with an empty ssh_user1281 returns the full project path1282 without access to the project1283 behaves like unauthorized1284 returns the 2-segment group path1285 with user is blocked1286 behaves like unauthorized1287 returns the 2-segment group path1288 with read_user scope1289 behaves like unauthorized1290 returns the 2-segment group path1291 with a denylisted ip1292 returns forbidden1293 when a personal access token is missing1294 returns unauthorized1295 with a bogus path1296 skips go-import generation1297 with a public project without a repository1298 returns 4041299 with a non-standard head1300 returns the full project path1301 with nothing disabled1302 with simple 2-segment project path1303 with subpackages1304 returns the full project path1305 without subpackages1306 returns the full project path1307 with a nested project path1308 with subpackages1309 behaves like a nested project1310 when the project is public1311 returns the full project path1312 when the project is private1313 when not authenticated1314 behaves like unauthorized1315 returns the 2-segment group path1316 when authenticated1317 using basic auth1318 using a personal access token1319 with api scope1320 behaves like authenticated1321 with access to the project1322 returns the full project path1323 with an empty ssh_user1324 returns the full project path1325 without access to the project1326 behaves like unauthorized1327 returns the 2-segment group path1328 with user is blocked1329 behaves like unauthorized1330 returns the 2-segment group path1331 with read_user scope1332 behaves like unauthorized1333 returns the 2-segment group path1334 with a denylisted ip1335 returns forbidden1336 when a personal access token is missing1337 returns unauthorized1338 with a subpackage that is not a valid project path1339 behaves like a nested project1340 when the project is public1341 returns the full project path1342 when the project is private1343 when not authenticated1344 behaves like unauthorized1345 returns the 2-segment group path1346 when authenticated1347 using basic auth1348 using a personal access token1349 with api scope1350 behaves like authenticated1351 with access to the project1352 returns the full project path1353 with an empty ssh_user1354 returns the full project path1355 without access to the project1356 behaves like unauthorized1357 returns the 2-segment group path1358 with user is blocked1359 behaves like unauthorized1360 returns the 2-segment group path1361 with read_user scope1362 behaves like unauthorized1363 returns the 2-segment group path1364 with a denylisted ip1365 returns forbidden1366 when a personal access token is missing1367 returns unauthorized1368 without subpackages1369 behaves like a nested project1370 when the project is public1371 returns the full project path1372 when the project is private1373 when not authenticated1374 behaves like unauthorized1375 returns the 2-segment group path1376 when authenticated1377 using basic auth1378 using a personal access token1379 with api scope1380 behaves like authenticated1381 with access to the project1382 returns the full project path1383 with an empty ssh_user1384 returns the full project path1385 without access to the project1386 behaves like unauthorized1387 returns the 2-segment group path1388 with user is blocked1389 behaves like unauthorized1390 returns the 2-segment group path1391 with read_user scope1392 behaves like unauthorized1393 returns the 2-segment group path1394 with a denylisted ip1395 returns forbidden1396 when a personal access token is missing1397 returns unauthorized1398 with a bogus path1399 skips go-import generation1400 with a public project without a repository1401 returns 4041402 with a non-standard head1403 returns the full project path1404 with nothing disabled (blank string)1405 with simple 2-segment project path1406 with subpackages1407 returns the full project path1408 without subpackages1409 returns the full project path1410 with a nested project path1411 with subpackages1412 behaves like a nested project1413 when the project is public1414 returns the full project path1415 when the project is private1416 when not authenticated1417 behaves like unauthorized1418 returns the 2-segment group path1419 when authenticated1420 using basic auth1421 using a personal access token1422 with api scope1423 behaves like authenticated1424 with access to the project1425 returns the full project path1426 with an empty ssh_user1427 returns the full project path1428 without access to the project1429 behaves like unauthorized1430 returns the 2-segment group path1431 with user is blocked1432 behaves like unauthorized1433 returns the 2-segment group path1434 with read_user scope1435 behaves like unauthorized1436 returns the 2-segment group path1437 with a denylisted ip1438 returns forbidden1439 when a personal access token is missing1440 returns unauthorized1441 with a subpackage that is not a valid project path1442 behaves like a nested project1443 when the project is public1444 returns the full project path1445 when the project is private1446 when not authenticated1447 behaves like unauthorized1448 returns the 2-segment group path1449 when authenticated1450 using basic auth1451 using a personal access token1452 with api scope1453 behaves like authenticated1454 with access to the project1455 returns the full project path1456 with an empty ssh_user1457 returns the full project path1458 without access to the project1459 behaves like unauthorized1460 returns the 2-segment group path1461 with user is blocked1462 behaves like unauthorized1463 returns the 2-segment group path1464 with read_user scope1465 behaves like unauthorized1466 returns the 2-segment group path1467 with a denylisted ip1468 returns forbidden1469 when a personal access token is missing1470 returns unauthorized1471 without subpackages1472 behaves like a nested project1473 when the project is public1474 returns the full project path1475 when the project is private1476 when not authenticated1477 behaves like unauthorized1478 returns the 2-segment group path1479 when authenticated1480 using basic auth1481 using a personal access token1482 with api scope1483 behaves like authenticated1484 with access to the project1485 returns the full project path1486 with an empty ssh_user1487 returns the full project path1488 without access to the project1489 behaves like unauthorized1490 returns the 2-segment group path1491 with user is blocked1492 behaves like unauthorized1493 returns the 2-segment group path1494 with read_user scope1495 behaves like unauthorized1496 returns the 2-segment group path1497 with a denylisted ip1498 returns forbidden1499 when a personal access token is missing1500 returns unauthorized1501 with a bogus path1502 skips go-import generation1503 with a public project without a repository1504 returns 4041505 with a non-standard head1506 returns the full project path1507Integration1508 Associations1509 is expected to belong to project required: false inverse_of => integrations1510 is expected to belong to group required: false inverse_of => integrations1511 is expected to have one issue_tracker_data class_name => Integrations::IssueTrackerData inverse_of => integration1512 is expected to have one jira_tracker_data class_name => Integrations::JiraTrackerData inverse_of => integration1513 default values1514 is expected to be alert events1515 is expected to be commit events1516 is expected to be confidential issues events1517 is expected to be confidential note events1518 is expected to be issues events1519 is expected to be job events1520 is expected to be merge requests events1521 is expected to be note events1522 is expected to be pipeline events1523 is expected to be push events1524 is expected to be tag push events1525 is expected to be wiki page events1526 is expected not to be active1527 is expected not to be incident events1528 is expected to eq :common1529 validations1530 is expected to validate that :type cannot be empty/falsy1531 is expected to validate that :type is neither ‹"Integrations::BaseChatNotification"›, ‹"Integrations::BaseCi"›, ‹"Integrations::BaseIssueTracker"›, ‹"Integrations::BaseMonitoring"›, ‹"Integrations::BaseSlackNotification"›, ‹"Integrations::BaseSlashCommands"›, nor ‹"Integrations::BaseThirdPartyWiki"›1532 project_id: 1, group_id: nil, instance: false, valid: true1533 validates the integration1534 project_id: nil, group_id: 1, instance: false, valid: true1535 validates the integration1536 project_id: nil, group_id: nil, instance: true, valid: true1537 validates the integration1538 project_id: nil, group_id: nil, instance: false, valid: false1539 validates the integration1540 project_id: 1, group_id: 1, instance: false, valid: false1541 validates the integration1542 project_id: 1, group_id: nil, instance: false, valid: true1543 validates the integration1544 project_id: 1, group_id: nil, instance: true, valid: false1545 validates the integration1546 project_id: nil, group_id: 1, instance: false, valid: true1547 validates the integration1548 project_id: nil, group_id: 1, instance: true, valid: false1549 validates the integration1550 with existing integrations1551 allows only one instance integration per type1552 allows only one project integration per type1553 allows only one group integration per type1554 Scopes1555 .third_party_wikis1556 returns the right group integration1557 .with_default_settings1558 returns the correct integrations1559 .with_custom_settings1560 returns the correct integrations1561 .by_type1562 when type is "Integrations::JiraService"1563 is expected to contain exactly #<Integrations::Jira id: 12, project_id: 509, created_at: "2023-10-20 08:40:43.696003337 +0000", upda...ents: false, group_mention_events: false, group_confidential_mention_events: false, properties: nil> and #<Integrations::Jira id: 13, project_id: 512, created_at: "2023-10-20 08:40:44.770208672 +0000", upda...ents: false, group_mention_events: false, group_confidential_mention_events: false, properties: nil>1564 when type is "Integrations::Redmine"1565 is expected to contain exactly #<Integrations::Redmine id: 17, project_id: 515, created_at: "2023-10-20 08:40:51.459597202 +0000", u...ents: false, group_mention_events: false, group_confidential_mention_events: false, properties: nil>1566 .for_group1567 returns the right group integration1568 .confidential_note_hooks1569 includes services where confidential_note_events is true1570 excludes services where confidential_note_events is false1571 .alert_hooks1572 includes services where alert_events is true1573 excludes services where alert_events is false1574 .archive_trace_hooks1575 includes services where archive_trace_events is true1576 excludes services where archive_trace_events is false1577 .incident_hooks1578 includes services where incident_events is true1579 excludes services where incident_events is false1580 #operating?1581 is false when the integration is not active1582 is false when the integration is not persisted1583 is true when the integration is active and persisted1584 #testable?1585 when integration is project-level1586 is expected to be testable1587 when integration is not project-level1588 is expected not to be testable1589 #test1590 calls #execute1591 returns a result1592 #project_level?1593 is true when integration has a project1594 is false when integration has no project1595 #group_level?1596 is true when integration has a group1597 is false when integration has no group1598 #instance_level?1599 is true when integration has instance-level integration1600 is false when integration does not have instance-level integration1601 #chat?1602 is true when integration is chat integration1603 is false when integration is not chat integration1604 #ci?1605 is true when integration is a CI integration1606 is false when integration is not a ci integration1607 .find_or_initialize_non_project_specific_integration1608 returns the right integration1609 does not create a new integration1610 .find_or_initialize_all_non_project_specific1611 behaves like integration instances1612 returns the available integration instances1613 does not create integration instances1614 with all existing instances1615 behaves like integration instances1616 returns the available integration instances1617 does not create integration instances1618 with a previous existing integration (:mock_ci) and a new integration (:asana)1619 behaves like integration instances1620 returns the available integration instances1621 does not create integration instances1622 with a few existing instances1623 behaves like integration instances1624 returns the available integration instances1625 does not create integration instances1626 #inheritable?1627 is true for an instance integration1628 is true for a group integration1629 is false for a project integration1630 .build_from_integration1631 when integration is invalid1632 sets integration to inactive1633 when integration is an instance-level integration1634 sets inherit_from_id from integration1635 when integration is a group-level integration1636 sets inherit_from_id from integration1637 build issue tracker from an integration1638 when data is stored in properties1639 behaves like integration creation from an integration1640 creates a correct integration for a project integration1641 creates a correct integration for a group integration1642 when data are stored in separated fields1643 behaves like integration creation from an integration1644 creates a correct integration for a project integration1645 creates a correct integration for a group integration1646 when data are stored in both properties and separated fields1647 behaves like integration creation from an integration1648 creates a correct integration for a project integration1649 creates a correct integration for a group integration1650 .default_integration1651 with an instance-level integration1652 returns the instance integration1653 returns nil for nonexistent integration type1654 with a group integration1655 returns the group integration for a project1656 returns the instance integration for a group1657 with a subgroup1658 returns the closest group integration for a project1659 returns the closest group integration for a subgroup1660 having a integration with custom settings1661 returns the closest group integration for a project1662 having a integration inheriting settings1663 returns the closest group integration which does not inherit from its parent for a project1664 .create_from_active_default_integrations1665 with an active instance-level integration1666 creates an integration from the instance-level integration1667 passing a group1668 creates an integration from the instance-level integration1669 with an active group-level integration1670 creates an integration from the group-level integration1671 there are multiple inheritable integrations, and a duplicate1672 returns the number of successfully created integrations1673 passing a group1674 creates an integration from the group-level integration1675 with an active subgroup1676 creates an integration from the subgroup-level integration1677 passing a group1678 traversal queries1679 creates an integration from the subgroup-level integration1680 having an integration inheriting settings1681 creates an integration from the group-level integration1682 .inherited_descendants_from_self_or_ancestors_from1683 returns the groups and projects inheriting from integration ancestors1684 .integration_name_to_type1685 handles a simple case1686 raises an error if the name is unknown1687 handles all available_integration_names1688 .integration_name_to_model1689 raises an error if integration name is invalid1690 {property}_changed?1691 returns false when the property has not been assigned a new value1692 returns true when the property has been assigned a different value1693 returns true when the property has been assigned a different value twice1694 returns false when the property has been re-assigned the same value1695 returns false when the property has been assigned a new value then saved1696 #properties=1697 supports indifferent access1698 #properties1699 is not mutable1700 {property}_touched?1701 returns false when the property has not been assigned a new value1702 returns true when the property has been assigned a different value1703 returns true when the property has been assigned a different value twice1704 returns true when the property has been re-assigned the same value1705 returns false when the property has been assigned a new value then saved1706 {property}_was1707 returns nil when the property has not been assigned a new value1708 returns the previous value when the property has been assigned a different value1709 returns initial value when the property has been re-assigned the same value1710 returns initial value when the property has been assigned multiple values1711 returns nil when the property has been assigned a new value then saved1712 initialize integration with no properties1713 does not raise error1714 sets data correctly1715 field definitions1716 when the class overrides #fields1717 behaves like #fields1718 does not return the same array1719 behaves like #api_field_names1720 filters out secret fields and conditional fields1721 behaves like #form_fields1722 filters out API only fields1723 filters conditionals fields1724 when the class uses the field DSL1725 behaves like #fields1726 does not return the same array1727 behaves like #api_field_names1728 filters out secret fields and conditional fields1729 behaves like #form_fields1730 filters out API only fields1731 filters conditionals fields1732 logging1733 logs info messages using json logger1734 logs error messages using json logger1735 when project is nil1736 logs info messages using json logger1737 logging exceptions1738 logs exceptions using json logger1739 logs exceptions using json logger with a custom message1740 .available_integration_names1741 is expected to include "foo", "bar", and "baz"1742 when `include_project_specific` is false1743 is expected to include "foo" and "baz"1744 is expected not to include "bar"1745 when `include_dev` is false1746 is expected to include "foo" and "bar"1747 is expected not to include "baz"1748 .project_specific_integration_names1749 is expected to include "apple_app_store", "gitlab_slack_application", "google_play", "jenkins", and "shimo"1750 is expected to include "gitlab_slack_application"1751 when Rails.env is not test1752 is expected not to include "gitlab_slack_application"1753 when `slack_app_enabled` setting is enabled1754 is expected to include "gitlab_slack_application"1755 #secret_fields1756 returns all fields with type `password`1757 returns an empty array if no secret fields exist1758 #to_database_hash1759 does not include the properties key1760 does not include certain attributes1761 saves correctly using insert_all1762 decrypts encrypted properties correctly1763 when the properties are empty1764 is part of the to_database_hash1765 saves correctly using insert_all1766 field DSL1767 checks the value of storage1768 provides prop_accessors1769 provides boolean accessors for checkbox fields1770 provides data fields1771 registers fields in the fields list1772 fields have expected attributes1773 Checkbox field booleans1774 returns values when initialized without input1775 input: true, method_result: true, predicate_method_result: true1776 has the correct value1777 when using data fields1778 has the correct value1779 input: false, method_result: false, predicate_method_result: false1780 has the correct value1781 when using data fields1782 has the correct value1783 input: 1, method_result: true, predicate_method_result: true1784 has the correct value1785 when using data fields1786 has the correct value1787 input: 0, method_result: false, predicate_method_result: false1788 has the correct value1789 when using data fields1790 has the correct value1791 input: "1", method_result: true, predicate_method_result: true1792 has the correct value1793 when using data fields1794 has the correct value1795 input: "0", method_result: false, predicate_method_result: false1796 has the correct value1797 when using data fields1798 has the correct value1799 input: "true", method_result: true, predicate_method_result: true1800 has the correct value1801 when using data fields1802 has the correct value1803 input: "false", method_result: false, predicate_method_result: false1804 has the correct value1805 when using data fields1806 has the correct value1807 input: "foobar", method_result: nil, predicate_method_result: false1808 has the correct value1809 when using data fields1810 has the correct value1811 input: "", method_result: nil, predicate_method_result: false1812 has the correct value1813 when using data fields1814 has the correct value1815 input: nil, method_result: nil, predicate_method_result: false1816 has the correct value1817 when using data fields1818 has the correct value1819 input: "on", method_result: true, predicate_method_result: true1820 has the correct value1821 when using data fields1822 has the correct value1823 input: "off", method_result: false, predicate_method_result: false1824 has the correct value1825 when using data fields1826 has the correct value1827 input: "yes", method_result: true, predicate_method_result: true1828 has the correct value1829 when using data fields1830 has the correct value1831 input: "no", method_result: false, predicate_method_result: false1832 has the correct value1833 when using data fields1834 has the correct value1835 input: "n", method_result: false, predicate_method_result: false1836 has the correct value1837 when using data fields1838 has the correct value1839 input: "y", method_result: true, predicate_method_result: true1840 has the correct value1841 when using data fields1842 has the correct value1843 input: "t", method_result: true, predicate_method_result: true1844 has the correct value1845 when using data fields1846 has the correct value1847 input: "f", method_result: false, predicate_method_result: false1848 has the correct value1849 when using data fields1850 has the correct value1851 #attributes1852 does not include properties1853 can be used in assign_attributes without nullifying properties1854 #dup1855 results in distinct ciphertexts, but identical properties1856 when the model supports data-fields1857 creates distinct but identical data-fields1858 #async_execute1859 queues a Integrations::ExecuteWorker1860 when the event is not supported1861 does not queue a worker1862 when the Gitlab::SilentMode is enabled1863 does not queue a worker1864layouts/nav/sidebar/_project1865 behaves like has nav sidebar1866 has collapsed nav sidebar on mobile1867 Project context1868 has a link to the project path1869 Project information1870 has a link to the project activity path1871 Activity1872 has a link to the project activity path1873 Labels1874 has a link to the labels path1875 Members1876 has a link to the members page1877 Repository1878 has a link to the project tree path1879 Files1880 has a link to the project tree path1881 Commits1882 has a link to the fully qualified project commits path1883 Branches1884 has a link to the project branches path1885 Tags1886 has a link to the project tags path1887 Contributor statistics1888 has a link to the project contributors path1889 Graph1890 has a link to the project graph path1891 Compare revisions1892 has a link to the project compare path1893 Issues1894 has a link to the issue list path1895 shows pill with the number of open issues1896 Issue List1897 has a link to the issue list path1898 Issue Boards1899 has a link to the issue boards path1900 Service Desk1901 has a link to the service desk path1902 Milestones1903 has a link to the milestones path1904 External Issue Tracker1905 with custom external issue tracker1906 when external issue tracker is configured and active1907 has a link to the external issue tracker1908 when external issue tracker is not configured and active1909 does not have a link to the external issue tracker1910 with Jira issue tracker1911 has a link to the Jira issue tracker1912 Merge Requests1913 has a link to the merge request list path1914 shows pill with the number of merge requests1915 CI/CD1916 has a link to pipelines page1917 Artifacts1918 has a link to the artifacts page1919 Jobs1920 has a link to the jobs page1921 Pipeline Schedules1922 has a link to the pipeline schedules page1923 Pipelines1924 has a link to the pipelines page1925 Pipeline Editor1926 with a current_ref1927 has a link to the pipeline editor1928 with the default_branch1929 has a link to the pipeline editor1930 when user cannot access pipeline editor1931 does not has a link to the pipeline editor1932 Security and Compliance1933 when user does not have permissions1934 top level navigation link is not visible1935 when user has permissions1936 top level navigation link is visible1937 security configuration link is visible1938 Deployments1939 Feature flags1940 has a link to the feature flags page1941 when the user does not have access1942 does not have a link to the feature flags page1943 Environments1944 has a link to the environments page1945 when the user does not have access1946 does not have a link to the environments page1947 Releases1948 has a link to the project releases path1949 Monitor1950 top level navigation link is visible for user with permissions1951 Error Tracking1952 has a link to the error tracking page1953 when the user does not have access1954 does not have a link to the error tracking page1955 Alert Management1956 has a link to the alert management page1957 when the user does not have access1958 does not have a link to the alert management page1959 Incidents1960 has a link to the incidents page1961 when the user does not have access1962 does not have a link to the incidents page1963 Infrastructure1964 Terraform1965 has a link to the terraform page1966 when the user does not have access1967 does not have a link to the terraform page1968 Kubernetes clusters1969 has a link to the kubernetes page1970 when the user does not have access1971 does not have a link to the kubernetes page1972 Google Cloud1973 has a link to the google cloud page1974 when the user does not have access1975 does not have a link to the google cloud page1976 Packages and Registries1977 top level navigation link is visible and points to package registry page1978 Packages Registry1979 shows link to package registry page1980 when packages config setting is not enabled1981 does not show link to package registry page1982 Container Registry1983 shows link to container registry page1984 when container config setting is not enabled1985 does not show link to package registry page1986 Terraform modules1987 shows link to terraform modules page1988 when package registry config is disabled1989 does not show link to package registry page1990 Analytics1991 top level navigation link is visible points to the value stream page1992 CI/CD1993 has a link to the CI/CD analytics page1994 when user does not have access1995 does not have a link to the CI/CD analytics page1996 Repository1997 has a link to the repository analytics page1998 when user does not have access1999 does not have a link to the repository analytics page2000 Value stream2001 has a link to the value stream page2002 when user does not have access2003 does not have a link to the value stream page2004 Confluence2005 when the Confluence integration is active2006 shows the Confluence link2007 does not show the GitLab wiki link2008 when it is disabled2009 does not show the Confluence link2010 shows the GitLab wiki link2011 Wiki2012 when wiki is enabled2013 shows the wiki tab with the wiki internal link2014 when wiki is disabled2015 does not show the wiki link2016 External Wiki2017 when it is active2018 shows the external wiki tab with the external wiki service link2019 when it is disabled2020 does not show the external wiki link2021 Snippets2022 when user can access snippets2023 shows Snippets link2024 when user cannot access snippets2025 does not show Snippets link2026 Settings2027 General2028 has a link to the General settings2029 Integrations2030 has a link to the Integrations settings2031 WebHooks2032 has a link to the WebHooks settings2033 Access Tokens2034 self-managed instance2035 has a link to the Access Tokens settings2036 gitlab.com2037 has a link to the Access Tokens settings2038 Repository2039 has a link to the Repository settings2040 CI/CD2041 when project is archived2042 does not have a link to the CI/CD settings2043 when project is not archived2044 has a link to the CI/CD settings2045 Monitor2046 when project is archived2047 does not have a link to the Monitor settings2048 when project is not archived active2049 has a link to the Monitor settings2050 Pages2051 when pages are enabled2052 has a link to the Pages settings2053 when pages are not enabled2054 does not have a link to the Pages settings2055 Packages and registries2056 when registry is enabled2057 has a link to the Package and registry settings2058 when registry is not enabled2059 does not have a link to the Package and registry settings2060 when packages config is enabled2061 has a link to the Package and registry settings2062 Usage Quotas2063 has a link to Usage Quotas2064 Hidden menus2065 has a link to the Activity page2066 has a link to the Graph page2067 has a link to the New Issue page2068 has a link to the Jobs page2069 has a link to the Commits page2070 has a link to the Issue Boards page2071 behaves like sidebar includes snowplow attributes2072 is expected to have visible css ".nav-sidebar[data-track-action=\"render\"][data-track-label=\"projects_side_navigation\"][data-track-property=\"projects_side_navigation\"]"2073 Collapsed menu items2074 does not render the collapsed top menu as a link2075Notes::CreateService2076 #execute2077 valid params2078 returns a valid note2079 returns a persisted note2080 checks for spam2081 does not persist when spam2082 note has valid content2083 note belongs to the correct project2084 TodoService#new_note is called2085 enqueues NewNoteWorker2086 when noteable is an issue that belongs directly to a group2087 creates a note without a project and correct namespace2088 when noteable is a work item that belongs directly to a group2089 creates a note without a project and correct namespace2090 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated2091 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2092 with internal parameter2093 when confidential2094 returns a confidential note2095 when not confidential2096 returns a confidential note2097 with confidential parameter2098 when confidential2099 returns a confidential note2100 when not confidential2101 returns a confidential note2102 with confidential and internal parameter set2103 prefers the internal parameter2104 issue is an incident2105 behaves like an incident management tracked event2106 .track_event2107 tracks the event using redis2108 behaves like Snowplow event tracking with RedisHLL context2109 behaves like Snowplow event tracking2110 is emitted2111 in a commit2112 tracks commit comment usage data2113 behaves like Snowplow event tracking with Redis context2114 behaves like Snowplow event tracking2115 is emitted2116 event tracking2117 tracks issue comment usage data2118 does not track merge request usage data2119 behaves like internal event tracking2120 logs to Snowplow2121 in a merge request2122 calls MergeRequests::MarkReviewerReviewedService service2123 does not call MergeRequests::MarkReviewerReviewedService service when skip_set_reviewed is true2124 noteable highlight cache clearing2125 does not track issue comment usage data2126 tracks merge request usage data2127 clears noteable diff cache when it was unfolded for the note position2128 does not clear cache when note is not the first of the discussion2129 note diff file2130 when eligible to have a note diff file2131 note is associated with a note diff file2132 does not track ipynb note usage data2133 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated2134 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:1 namespace437/project-545!1>) 1 time2135 when skip_capture_diff_note_position execute option is set to true2136 does not execute Discussions::CaptureDiffNotePositionService2137 when skip_merge_status_trigger execute option is set to true2138 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated2139 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2140 is ipynb file2141 :ipynbdiff_notes_tracker is off2142 does not track ipynb note usage data2143 :ipynbdiff_notes_tracker is on2144 tracks ipynb diff note creation2145 when DiffNote is a reply2146 note is not associated with a note diff file2147 when DiffNote from an image2148 note is not associated with a note diff file2149 note with commands2150 all quick actions2151 for issues2152 behaves like issuable quick actions2153 when user can update issuable2154 saves the note and updates the issue2155 when user cannot update issuable2156 applies commands that user can execute2157 for merge requests2158 behaves like issuable quick actions2159 when user can update issuable2160 saves the note and updates the issue2161 when user cannot update issuable2162 applies commands that user can execute2163 when note only has commands2164 adds commands applied message to note errors2165 adds commands failed message to note errors2166 generates success and failed error messages2167 does not check for spam2168 generates failed update error messages2169 personal snippet note2170 returns a valid note2171 returns a persisted note2172 note has valid content2173 design note2174 can create diff notes for designs2175 sends a notification about this note2176 correctly builds the position of the note2177 note with emoji only2178 creates regular note2179 reply to individual note2180 creates a DiscussionNote in reply to existing note2181 converts existing note to DiscussionNote2182 returns a DiscussionNote with its parent discussion refreshed correctly2183 failure in when_saved2184 converts existing note to DiscussionNote2185 discussion to reply cannot be found2186 returns an note with errors2187 usage counter2188 snippet note2189 increments usage counter2190 does not increment usage counter when creation fails2191 issue note2192 does not increment usage counter2193Gitlab::Diff::PositionTracer::LineStrategy2194 #trace2195 diff scenarios2196 when the file was created in the old diff2197 when the file is created in the new diff2198 when the position pointed at an added line in the old diff2199 when the file's content was unchanged between the old and the new diff2200 returns the new position2201 when the position is multiline2202 returns the new position along with line_range2203 when the file's content was changed between the old and the new diff2204 when that line was unchanged between the old and the new diff2205 returns the new position2206 when that line was moved between the old and the new diff2207 returns the new position2208 when that line was changed between the old and the new diff2209 returns the position of the change2210 when that line was deleted between the old and the new diff2211 returns the position of the change2212 when the file is changed in the new diff2213 when the position pointed at an added line in the old diff2214 when the file's content was unchanged between the old and the new diff2215 returns the new position2216 when the file's content was changed between the old and the new diff2217 when that line was unchanged between the old and the new diff2218 returns the new position2219 when that line was moved between the old and the new diff2220 returns the new position2221 when that line was changed between the old and the new diff2222 returns the position of the change2223 when that line was deleted between the old and the new diff2224 returns the position of the change2225 when the file is renamed in the new diff2226 when the position pointed at an added line in the old diff2227 when the file's content was unchanged between the old and the new diff2228 returns the position of the change2229 when the position is multiline2230 returns the new position2231 when the file's content was changed between the old and the new diff2232 when that line was unchanged between the old and the new diff2233 returns the new position2234 when that line was moved between the old and the new diff2235 returns the new position2236 when that line was changed between the old and the new diff2237 returns the position of the change2238 when the file is deleted in the new diff2239 when the position pointed at an added line in the old diff2240 when the file's content was unchanged between the old and the new diff2241 returns the position of the change2242 when the file's content was changed between the old and the new diff2243 when that line was unchanged between the old and the new diff2244 returns the position of the change2245 when that line was moved between the old and the new diff2246 returns the position of the change2247 when that line was changed between the old and the new diff2248 returns the position of the change2249 when that line was deleted between the old and the new diff2250 returns the position of the change2251 when the file is unchanged in the new diff2252 when the position pointed at an added line in the old diff2253 when the file's content was unchanged between the old and the new diff2254 returns the position of the change2255 when the file's content was changed between the old and the new diff2256 when that line was unchanged between the old and the new diff2257 returns the position of the change2258 when that line was moved between the old and the new diff2259 returns the position of the change2260 when that line was changed between the old and the new diff2261 returns the position of the change2262 when that line was deleted between the old and the new diff2263 returns the position of the change2264 when the file was changed in the old diff2265 when the file is created in the new diff2266 when the position pointed at an added line in the old diff2267 when the file's content was unchanged between the old and the new diff2268 returns the new position2269 when the file's content was changed between the old and the new diff2270 when that line was unchanged between the old and the new diff2271 returns the new position2272 when that line was moved between the old and the new diff2273 returns the new position2274 when that line was changed or deleted between the old and the new diff2275 returns the position of the change2276 when the position pointed at a deleted line in the old diff2277 returns the position of the change2278 when the position pointed at an unchanged line in the old diff2279 when the file's content was unchanged between the old and the new diff2280 returns the new position2281 when the file's content was changed between the old and the new diff2282 when that line was unchanged between the old and the new diff2283 returns the new position2284 when that line was moved between the old and the new diff2285 returns the new position2286 when that line was changed or deleted between the old and the new diff2287 returns the position of the change2288 when the file is changed in the new diff2289 when the position pointed at an added line in the old diff2290 when the file's content was unchanged between the old and the new diff2291 returns the new position2292 when the file's content was changed between the old and the new diff2293 when that line was unchanged between the old and the new diff2294 returns the new position2295 when that line was moved between the old and the new diff2296 returns the new position2297 when that line was changed or deleted between the old and the new diff2298 returns the position of the change2299 when the position pointed at a deleted line in the old diff2300 when the file's content was unchanged between the old and the new diff2301 returns the new position2302 typical use scenarios2303 simple push of new commit2304 returns the new positions2305 force push to overwrite last commit2306 returns the new positions2307 force push to delete last commit2308 returns the new positions2309 rebase on top of target branch2310 returns the new positions2311 merge of target branch2312 returns the new positions2313 changing target branch2314 returns the new positions2315Ci::BuildRunnerPresenter2316 #artifacts2317 when option contains archive-type artifacts2318 presents correct hash2319 when untracked is specified2320 presents correct hash2321 when untracked and paths are missing2322 does not present hash2323 when artifacts exclude is defined2324 includes the list of excluded paths2325 when artifacts exclude is not defined2326 does not include an empty list of excluded paths2327 with reports2328 archive2329 presents correct hash2330 metadata2331 presents correct hash2332 trace2333 presents correct hash2334 metrics_referee2335 presents correct hash2336 network_referee2337 presents correct hash2338 junit2339 presents correct hash2340 accessibility2341 presents correct hash2342 codequality2343 presents correct hash2344 sast2345 presents correct hash2346 secret_detection2347 presents correct hash2348 dependency_scanning2349 presents correct hash2350 container_scanning2351 presents correct hash2352 cluster_image_scanning2353 presents correct hash2354 dast2355 presents correct hash2356 license_scanning2357 presents correct hash2358 performance2359 presents correct hash2360 browser_performance2361 presents correct hash2362 load_performance2363 presents correct hash2364 metrics2365 presents correct hash2366 lsif2367 presents correct hash2368 dotenv2369 presents correct hash2370 cobertura2371 presents correct hash2372 terraform2373 presents correct hash2374 cluster_applications2375 presents correct hash2376 requirements2377 presents correct hash2378 requirements_v22379 presents correct hash2380 coverage_fuzzing2381 presents correct hash2382 api_fuzzing2383 presents correct hash2384 cyclonedx2385 presents correct hash2386 annotations2387 presents correct hash2388 when a specific coverage_report type is given2389 presents the coverage report hash with the coverage format2390 when a specific coverage_report type is given with another report type2391 presents both reports2392 when option has both archive and reports specification2393 presents correct hash2394 when archive specifies 'expire_in' keyword2395 inherits expire_in from archive2396 when option has no artifact keywords2397 does not present hash2398 #ref_type2399 returns the correct ref type2400 when tag is false2401 returns the correct ref type2402 #git_depth2403 defaults to git depth setting for the project2404 when GIT_DEPTH variable is specified2405 returns its value2406 #refspecs2407 returns the correct refspecs2408 when ref is tag2409 returns the correct refspecs2410 when GIT_DEPTH is zero2411 returns the correct refspecs2412 when pipeline is detached merge request pipeline2413 returns the correct refspecs2414 when GIT_DEPTH is zero2415 returns the correct refspecs2416 when pipeline is legacy detached merge request pipeline2417 returns the correct refspecs2418 when persistent pipeline ref exists2419 exposes the persistent pipeline ref2420 #runner_variables2421 returns an array2422 returns the expected variables2423 when there is a file variable to expand2424 returns variables with expanded2425 when there is a raw variable to expand2426 returns expanded variables without expanding raws2427 #runner_variables subset2428 with references in pipeline variables2429 returns expanded and sorted variables2430Ci::CreatePipelineService#execute2431 behaves like creating a pipeline with environment keyword2432 with environment2433 creates the environment2434 sets tags when build job (PENDING: No reason given)2435 with environment with auto_stop_in2436 creates the environment with auto stop in2437 with environment name including persisted variables2438 skips persisted variables in environment name2439 when environment with Kubernetes configuration2440 stores the requested namespace2441 when environment with invalid name2442 does not create an environment2443 when environment with duplicate names2444 creates a pipeline with the environment2445 when pipeline has a job with environment2446 when environment name is valid2447 has a job with environment2448 when environment name is invalid2449 has a job without environment2450 with resource group2451 creates bridge job with resource group2452 when sidekiq processes the job2453 transitions to pending status and triggers a downstream pipeline2454 when the resource is occupied by the other bridge2455 stays waiting for resource2456ProjectFeature2457 is expected to belong to project required: false2458 allows public access level for :pages feature2459 default values2460 is expected to eq 202461 is expected to eq 202462 is expected to eq 202463 is expected to eq 202464 is expected to eq 202465 is expected to eq 202466 is expected to eq 202467 is expected to eq 102468 is expected to eq 202469 is expected to eq 102470 is expected to eq 202471 is expected to eq 202472 is expected to eq 202473 is expected to eq 202474 is expected to eq 202475 is expected to eq 202476 is expected to eq 202477 is expected to eq 202478 PRIVATE_FEATURES_MIN_ACCESS_LEVEL_FOR_PRIVATE_PROJECT2479 has higher level than that of PRIVATE_FEATURES_MIN_ACCESS_LEVEL2480 repository related features2481 does not allow repository related features have higher level2482 behaves like access level validation2483 does not allow public access level for issues2484 does not allow public access level for forking2485 does not allow public access level for merge_requests2486 does not allow public access level for wiki2487 does not allow public access level for snippets2488 does not allow public access level for builds2489 does not allow public access level for repository2490 does not allow public access level for metrics_dashboard2491 does not allow public access level for analytics2492 does not allow public access level for monitor2493 does not allow public access level for operations2494 does not allow public access level for security_and_compliance2495 does not allow public access level for container_registry2496 does not allow public access level for environments2497 does not allow public access level for feature_flags2498 does not allow public access level for releases2499 does not allow public access level for infrastructure2500 does not allow public access level for model_experiments2501 default pages access level2502 when new project is private2503 is expected to eq 102504 when new project is internal2505 is expected to eq 102506 when new project is public2507 is expected to eq 202508 when access control is forced on the admin level2509 is expected to eq 102510 #public_pages?2511 returns true if Pages access control is not enabled2512 when Pages access control is enabled2513 project_visibility: :private, pages_access_level: 30, result: true2514 properly handles project and Pages visibility settings2515 returns false if access_control is forced on the admin level2516 project_visibility: :internal, pages_access_level: 30, result: true2517 properly handles project and Pages visibility settings2518 returns false if access_control is forced on the admin level2519 project_visibility: :internal, pages_access_level: 20, result: false2520 properly handles project and Pages visibility settings2521 returns false if access_control is forced on the admin level2522 project_visibility: :public, pages_access_level: 20, result: true2523 properly handles project and Pages visibility settings2524 returns false if access_control is forced on the admin level2525 project_visibility: :private, pages_access_level: 10, result: false2526 properly handles project and Pages visibility settings2527 returns false if access_control is forced on the admin level2528 project_visibility: :public, pages_access_level: 10, result: false2529 properly handles project and Pages visibility settings2530 returns false if access_control is forced on the admin level2531 #private_pages?2532 returns false if public_pages? is true2533 returns true if public_pages? is false2534 .required_minimum_access_level2535 handles reporter level2536 handles guest level2537 accepts ActiveModel2538 accepts string2539 handles repository2540 handles package registry2541 raises error if feature is invalid2542 .required_minimum_access_level_for_private_project2543 returns higher permission for repository2544 returns normal permission for issues2545 container_registry_access_level2546 with default value2547 when the default is false2548 creates project_feature with `disabled` container_registry_access_level2549 when the default is true2550 creates project_feature with `enabled` container_registry_access_level2551 when the default is nil2552 creates project_feature with `disabled` container_registry_access_level2553 test build factory2554 private2555 is expected to eq 102556 enabled2557 is expected to eq 202558 disabled2559 is expected to eq 02560 package_registry_access_level2561 with default value2562 config_packages_enabled: false, expected_result: 02563 creates project_feature with correct package_registry_access_level2564 config_packages_enabled: true, expected_result: 202565 creates project_feature with correct package_registry_access_level2566 config_packages_enabled: nil, expected_result: 02567 creates project_feature with correct package_registry_access_level2568 sync packages_enabled2569 initial_value: 0, new_value: 0, expected_result: false2570 set correct value2571 initial_value: 0, new_value: 20, expected_result: true2572 set correct value2573 initial_value: 0, new_value: 30, expected_result: true2574 set correct value2575 initial_value: 20, new_value: 0, expected_result: false2576 set correct value2577 initial_value: 20, new_value: 20, expected_result: true2578 set correct value2579 initial_value: 20, new_value: 30, expected_result: true2580 set correct value2581 initial_value: 30, new_value: 0, expected_result: false2582 set correct value2583 initial_value: 30, new_value: 20, expected_result: true2584 set correct value2585 initial_value: 30, new_value: 30, expected_result: true2586 set correct value2587 #public_packages?2588 returns false if packages config is not enabled2589 with packages config enabled2590 when project is private2591 returns false2592 with package_registry_access_level set to public2593 returns true2594 when project is public2595 returns true2596 #feature_available?2597 when features are disabled2598 returns false2599 when features are enabled only for team members2600 returns false when user is not a team member2601 returns true when user is a team member2602 returns true when user is a member of project group2603 when admin mode is enabled2604 returns true if user is an admin2605 when admin mode is disabled2606 returns false when user is an admin2607 when feature is enabled for everyone2608 returns true2609 when feature has any other value2610 returns true2611 #private?2612 merge_requests_access_level: 30, expected_value: false2613 is expected to equal false2614 merge_requests_access_level: 20, expected_value: false2615 is expected to equal false2616 merge_requests_access_level: 10, expected_value: true2617 is expected to equal true2618UsersHelper2619 display_public_email?2620 is expected to equal true2621 when user public email is blank2622 is expected to equal false2623 #user_link2624 links to the user's profile2625 has the user's email as title2626 #user_clear_status_at2627 when status exists2628 with clear_status_at set2629 has the correct iso formatted date2630 without clear_status_at set2631 returns nil2632 without status2633 returns nil2634 #profile_tabs2635 with public profile2636 includes all the expected tabs2637 with private profile2638 is empty2639 #user_internal_regex_data2640 user_default_external: false, user_default_internal_regex: nil, result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}2641 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}2642 user_default_external: false, user_default_internal_regex: "", result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}2643 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}2644 user_default_external: false, user_default_internal_regex: "mockRegexPattern", result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}2645 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}2646 user_default_external: true, user_default_internal_regex: nil, result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}2647 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}2648 user_default_external: true, user_default_internal_regex: "", result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}2649 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}2650 user_default_external: true, user_default_internal_regex: "mockRegexPattern", result: {:user_internal_regex_pattern=>"mockRegexPattern", :user_internal_regex_options=>"i"}2651 is expected to eq {:user_internal_regex_options=>"i", :user_internal_regex_pattern=>"mockRegexPattern"}2652 #current_user_menu_items2653 includes all default items2654 includes the profile tab if the user can read themself2655 includes the settings tab if the user can update themself2656 when terms are enforced2657 hides the profile and the settings tab2658 #can_impersonate_user2659 is expected to equal true2660 when password is expired2661 is expected to equal false2662 when impersonation is in progress2663 is expected to equal false2664 when user is blocked2665 is expected to equal false2666 when user is internal2667 is expected to equal false2668 #impersonation_error_text2669 when password is expired2670 is expected to eq "You cannot impersonate a user with an expired password"2671 when impersonation is in progress2672 is expected to eq "You are already impersonating another user"2673 when user is blocked2674 is expected to eq "You cannot impersonate a blocked user"2675 when user is internal2676 is expected to eq "You cannot impersonate an internal user"2677 when user is inactive2678 is expected to eq "You cannot impersonate a user who cannot log in"2679 #user_badges_in_admin_section2680 with a blocked user2681 returns the blocked badge2682 with a pending approval user2683 returns the pending approval badge2684 with a banned user2685EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2686EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2687 returns the banned badge2688 with an admin user2689 returns the admin badge2690 with a bot2691 returns the bot badge2692 with an external user2693 returns the external badge2694 with the current user2695 returns the "It's You" badge2696 with an external blocked admin2697 returns the blocked, admin and external badges2698 with a locked user2699 returns the "Locked" badge2700 get badges for normal user2701 returns no badges2702 #can_force_email_confirmation?2703 for a user that is already confirmed2704 is expected to eq false2705 for a user that is not confirmed2706 is expected to eq true2707 #work_information2708 when neither organization nor job_title are present2709 is expected to be nil2710 when user parameter is nil2711 is expected to be nil2712 without schema markup2713 when both job_title and organization are present2714 returns job title concatenated with organization2715 when only organization is present2716 returns organization2717 when only job_title is present2718 returns job title2719 with schema markup2720 when both job_title and organization are present2721 returns job title concatenated with organization2722 when only organization is present2723 returns organization2724 when only job_title is present2725 returns job title2726 #user_display_name2727 for a confirmed user2728 is expected to eq "Sidney Jones1585"2729 for an unconfirmed user2730 is expected to eq "Unconfirmed user"2731 when current user is an admin2732 is expected to eq "Sidney Jones1587"2733 when the current user is self2734 is expected to eq "Sidney Jones1589"2735 for a blocked user2736 is expected to eq "Blocked user"2737 #admin_users_data_attributes2738 users matches the serialized json2739 paths matches the schema2740 #confirm_user_data2741 sets `path` key correctly2742 sets `modal_attributes` key to valid json2743 when `user.unconfirmed_email` is set2744 sets `modal_attributes.messageHtml` correctly2745 when `user.unconfirmed_email` is not set2746 sets `modal_attributes.messageHtml` correctly2747 #user_email_help_text2748 when `user.unconfirmed_email` is not set2749 contains avatar detection text2750 when `user.unconfirmed_email` is set2751 contains resend confirmation e-mail text2752 #admin_user_actions_data_attributes2753 user matches the serialized json2754 paths matches the schema2755 #user_profile_tabs_app_data2756 returns expected hash2757 when user does not have create_snippet permissions2758 returns nil for new_snippet_path property2759 #load_max_project_member_accesses2760 without current_user2761 executes no queries27631st Try error in ./spec/helpers/users_helper_spec.rb:616:2764Expected a maximum of 0 queries, got 1:2765SELECT "project_group_links"."id" AS t0_r0, "project_group_links"."project_id" AS t0_r1, "project_group_links"."group_id" AS t0_r2, "project_group_links"."created_at" AS t0_r3, "project_group_links"."updated_at" AS t0_r4, "project_group_links"."group_access" AS t0_r5, "project_group_links"."expires_at" AS t0_r6, "namespaces"."id" AS t1_r0, "namespaces"."name" AS t1_r1, "namespaces"."path" AS t1_r2, "namespaces"."owner_id" AS t1_r3, "namespaces"."created_at" AS t1_r4, "namespaces"."updated_at" AS t1_r5, "namespaces"."type" AS t1_r6, "namespaces"."description" AS t1_r7, "namespaces"."avatar" AS t1_r8, "namespaces"."membership_lock" AS t1_r9, "namespaces"."share_with_group_lock" AS t1_r10, "namespaces"."visibility_level" AS t1_r11, "namespaces"."request_access_enabled" AS t1_r12, "namespaces"."ldap_sync_status" AS t1_r13, "namespaces"."ldap_sync_error" AS t1_r14, "namespaces"."ldap_sync_last_update_at" AS t1_r15, "namespaces"."ldap_sync_last_successful_update_at" AS t1_r16, "namespaces"."ldap_sync_last_sync_at" AS t1_r17, "namespaces"."description_html" AS t1_r18, "namespaces"."lfs_enabled" AS t1_r19, "namespaces"."parent_id" AS t1_r20, "namespaces"."shared_runners_minutes_limit" AS t1_r21, "namespaces"."repository_size_limit" AS t1_r22, "namespaces"."require_two_factor_authentication" AS t1_r23, "namespaces"."two_factor_grace_period" AS t1_r24, "namespaces"."cached_markdown_version" AS t1_r25, "namespaces"."project_creation_level" AS t1_r26, "namespaces"."runners_token" AS t1_r27, "namespaces"."file_template_project_id" AS t1_r28, "namespaces"."saml_discovery_token" AS t1_r29, "namespaces"."runners_token_encrypted" AS t1_r30, "namespaces"."custom_project_templates_group_id" AS t1_r31, "namespaces"."auto_devops_enabled" AS t1_r32, "namespaces"."extra_shared_runners_minutes_limit" AS t1_r33, "namespaces"."last_ci_minutes_notification_at" AS t1_r34, "namespaces"."last_ci_minutes_usage_notification_level" AS t1_r35, "namespaces"."subgroup_creation_level" AS t1_r36, "namespaces"."emails_disabled" AS t1_r37, "namespaces"."max_pages_size" AS t1_r38, "namespaces"."max_artifacts_size" AS t1_r39, "namespaces"."mentions_disabled" AS t1_r40, "namespaces"."default_branch_protection" AS t1_r41, "namespaces"."max_personal_access_token_lifetime" AS t1_r42, "namespaces"."push_rule_id" AS t1_r43, "namespaces"."shared_runners_enabled" AS t1_r44, "namespaces"."allow_descendants_override_disabled_shared_runners" AS t1_r45, "namespaces"."traversal_ids" AS t1_r46, "namespaces"."organization_id" AS t1_r47 FROM "project_group_links" LEFT OUTER JOIN "namespaces" ON "namespaces"."id" = "project_group_links"."group_id" AND "namespaces"."type" = 'Group' WHERE "namespaces"."type" = 'Group' AND "project_group_links"."project_id" IN (690, 691, 692) /*application:test,correlation_id:927e5400ab6250d9f1edae5c67ba48e3,db_config_name:main,line:/ee/app/helpers/ee/users_helper.rb:67:in `preload_project_associations'*/2767RSpec::Retry: 2nd try ./spec/helpers/users_helper_spec.rb:6162768 when current_user is present2769 preloads ProjectPolicy#lookup_access_level! and UsersHelper#max_member_project_member_access for current_user in two queries2770 #moderation_status2771 when user is nil2772 is expected to be nil2773 when a user is banned2774EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2775EscapeUtils.escape_url is deprecated. Use CGI.escape instead, performance is similar2776 is expected to eq "Banned"2777 when a user is blocked2778 is expected to eq "Blocked"2779 when a user is active2780 is expected to eq "Active"2781 #user_profile_actions_data2782 user is current user2783 behaves like user cannot report2784 returns data without reporting related data2785 user is not current user2786 returns data for reporting related data2787 when logged out2788 behaves like user cannot report2789 returns data without reporting related data2790Environments::StopService2791 #execute2792 with a deployment2793 plays the stop action2794 without stop action2795 stops the environment2796 force option2797 does not play the stop action when forced2798 when an environment has already been stopped2799 does not play the stop action2800 without a deployment2801 stops the environment2802 when the actor is a reporter2803 does not stop the environment2804 #execute_for_branch2805 when environment with review app exists2806 when user has permission to stop environment2807 when environment is associated with removed branch2808 stops environment2809 when environment is associated with different branch2810 does not stop environment2811 when specified branch does not exist2812 does not stop environment2813 when no branch not specified2814 does not stop environment2815 when environment is not stopped2816 does not stop environment2817 when user does not have permission to stop environment2818 when user has no access to manage deployments2819 does not stop environment2820 when branch for stop action is protected2821 does not stop environment2822 when there is no environment associated with review app2823 when user has permission to stop environments2824 does not stop environment2825 when environment does not exist2826 does not raise error2827 #execute_for_merge_request_pipeline2828 has active environment at first2829 when user is a developer2830 stops the active environment2831 and merge request has associated created_environments2832 stops the associated created_environments2833 does not affect environments that are not associated to the merge request2834 when pipeline is a branch pipeline for merge request2835 does not stop the active environment2836 with environment related jobs2837 does not stop environments that was not started by the merge request2838 when user is a reporter2839 does not stop the active environment2840 when pipeline is not associated with environments2841 does not raise exception2842 when pipeline is not a pipeline for merge request2843 does not stop the active environment2844MergeRequestPresenter2845 #mergeable_discussions_state2846 returns the mergeable_discussions_state2847 #ci_status2848 when no head pipeline2849 return status from Ci integration2850 when head pipeline present2851 success with warnings2852 returns "success-with-warnings"2853 pipeline HAS status AND its not success with warnings2854 returns pipeline status2855 pipeline has NO status AND its not success with warnings2856 returns "preparing"2857 #conflict_resolution_path2858 when MR cannot be resolved in UI2859 does not return conflict resolution path2860 when conflicts cannot be resolved by user2861 does not return conflict resolution path2862 when able to access conflict resolution UI2863 does return conflict resolution path2864 issues links2865 #issues_sentence2866 orders issues numerically2867 #closing_issues_links2868 presents closing issues links2869 does not present related issues links2870 appends status when closing issue is already closed2871 #mentioned_issues_links2872 presents related issues links2873 does not present closing issues links2874 appends status when mentioned issue is already closed2875 #assign_to_closing_issues_path2876 is expected to match "user1218/project-731/-/merge_requests/1/assign_related_issues"2877 #assign_to_closing_issues_count2878 single closing issue2879 returns correct count2880 multiple closing issues2881 returns correct count2882 no closing issue2883 returns correct count2884 #cancel_auto_merge_path2885 when can cancel mwps2886 returns path2887 when cannot cancel mwps2888 returns nil2889 #merge_path2890 when can be merged by user2891 returns path2892 when cannot be merged by user2893 returns nil2894 #create_issue_to_resolve_discussions_path2895 when can create issue and issues enabled2896 returns path2897 when cannot create issue2898 returns nil2899 when issues disabled2900 returns nil2901 #remove_wip_path2902 when merge request enabled and has permission2903 has remove_wip_path2904 when has no permission2905 returns nil2906 #target_branch_commits_path2907 when target branch exists2908 returns path2909 when target branch does not exist2910 returns nil2911 #source_branch_commits_path2912 when source branch exists2913 returns path2914 when source branch does not exist2915 returns nil2916 #target_branch_tree_path2917 when target branch exists2918 returns path2919 when target branch does not exist2920 returns nil2921 #source_branch_path2922 when source branch exists2923 returns path2924 when source branch does not exist2925 returns nil2926 #target_branch_path2927 when target branch exists2928 returns path2929 when target branch does not exist2930 returns nil2931 #source_branch_link2932 when source branch exists2933 returns link2934 when source branch does not exist2935 returns text2936 #target_branch_link2937 when target branch exists2938 returns link2939 when target branch does not exist2940 returns text2941 #source_branch_with_namespace_link2942 returns link2943 escapes html, when source_branch does not exist2944 #rebase_path2945 when can rebase2946 returns path2947 when cannot rebase2948 when rebase in progress2949 returns nil2950 when user cannot merge2951 returns nil2952 should not be rebased2953 returns nil2954 #can_push_to_source_branch2955 when source branch exists AND user can push to source branch2956 returns true2957 when source branch does not exists2958 returns false2959 when user cannot push to source branch2960 returns false2961 #api_approvals_path2962 is expected to eq "/api/v4/projects/712/merge_requests/1/approvals"2963 #api_approve_path2964 is expected to eq "/api/v4/projects/712/merge_requests/1/approve"2965 #api_unapprove_path2966 is expected to eq "/api/v4/projects/712/merge_requests/1/unapprove"2967 #pipeline_coverage_delta2968 when merge request has pipeline coverage delta2969 formats coverage into 2 decimal points2970 when merge request does not have pipeline coverage delta2971 returns nil2972MemberEntity2973 group member2974 behaves like member.json2975 matches json schema2976 correctly exposes `can_update`2977 correctly exposes `can_remove`2978 invite2979 behaves like member.json2980 matches json schema2981 correctly exposes `can_update`2982 correctly exposes `can_remove`2983 behaves like invite2984 correctly exposes `invite.avatar_url`2985 correctly exposes `invite.can_resend`2986 exposes `invite.user_state` as empty string2987 is_direct_member2988 behaves like is_direct_member2989 when `source` is the same as `member.source`2990 exposes `is_direct_member` as `true`2991 when `source` is not the same as `member.source`2992 exposes `is_direct_member` as `false`2993 is_last_owner2994 when member is last owner2995 exposes `is_last_owner` as `true`2996 when owner is not last owner2997 exposes `is_last_owner` as `false`2998 new member user state is blocked_pending_approval2999 behaves like user state is blocked_pending_approval3000 displays proper user state3001 project member3002 behaves like member.json3003 matches json schema3004 correctly exposes `can_update`3005 correctly exposes `can_remove`3006 invite3007 behaves like member.json3008 matches json schema3009 correctly exposes `can_update`3010 correctly exposes `can_remove`3011 behaves like invite3012 correctly exposes `invite.avatar_url`3013 correctly exposes `invite.can_resend`3014 exposes `invite.user_state` as empty string3015 is_direct_member3016 behaves like is_direct_member3017 when `source` is the same as `member.source`3018 exposes `is_direct_member` as `true`3019 when `source` is not the same as `member.source`3020 exposes `is_direct_member` as `false`3021 new members user state is blocked_pending_approval3022 behaves like user state is blocked_pending_approval3023 displays proper user state3024WorkItems::CreateService3025 behaves like creates work item in container3026 #execute3027 when user is not allowed to create a work item in the container3028 is expected to be error3029 returns an access error3030 when applying quick actions3031 when work item type is not the default Issue3032 saves the work item without applying the quick action3033 when work item type is the default Issue3034 saves the work item and applies the quick action3035 when params are valid3036 created instance is a WorkItem3037 calls NewIssueWorker with correct arguments3038 when params are invalid3039 is expected to be error3040 returns validation errors3041 does not execute after-create transaction widgets3042 checking spam3043 checks for spam3044 when `perform_spam_check` is set to `false`3045 does not check for spam3046 behaves like work item widgetable service3047 executes callbacks for expected widgets3048 hierarchy widget3049 when user can admin parent link3050 when parent is valid work item3051 creates new work item and sets parent reference3052 when parent type is invalid3053 behaves like fails creating work item and returns errors3054 does not create new work item if parent can not be set3055 when user cannot admin parent link3056 behaves like fails creating work item and returns errors3057 does not create new work item if parent can not be set3058 behaves like creates work item in container3059 #execute3060 when user is not allowed to create a work item in the container3061 is expected to be error3062 returns an access error3063 when applying quick actions3064 when work item type is not the default Issue3065 saves the work item without applying the quick action3066 when work item type is the default Issue3067 saves the work item and applies the quick action3068 when params are valid3069 created instance is a WorkItem3070 calls NewIssueWorker with correct arguments3071 when params are invalid3072 is expected to be error3073 returns validation errors3074 does not execute after-create transaction widgets3075 checking spam3076 checks for spam3077 when `perform_spam_check` is set to `false`3078 does not check for spam3079 behaves like work item widgetable service3080 executes callbacks for expected widgets3081 hierarchy widget3082 when user can admin parent link3083 when parent is valid work item3084 creates new work item and sets parent reference3085 when parent type is invalid3086 behaves like fails creating work item and returns errors3087 does not create new work item if parent can not be set3088 when user cannot admin parent link3089 behaves like fails creating work item and returns errors3090 does not create new work item if parent can not be set3091 behaves like creates work item in container3092 #execute3093 when user is not allowed to create a work item in the container3094 is expected to be error3095 returns an access error3096 when applying quick actions3097 when work item type is not the default Issue3098 saves the work item without applying the quick action3099 when work item type is the default Issue3100 saves the work item and applies the quick action3101 when params are valid3102 created instance is a WorkItem3103 calls NewIssueWorker with correct arguments3104 when params are invalid3105 is expected to be error3106 returns validation errors3107 does not execute after-create transaction widgets3108 checking spam3109 checks for spam3110 when `perform_spam_check` is set to `false`3111 does not check for spam3112 behaves like work item widgetable service3113 executes callbacks for expected widgets3114 hierarchy widget3115 when user can admin parent link3116 when parent is valid work item3117 creates new work item and sets parent reference3118 when parent type is invalid3119 behaves like fails creating work item and returns errors3120 does not create new work item if parent can not be set3121 when user cannot admin parent link3122 behaves like fails creating work item and returns errors3123 does not create new work item if parent can not be set3124Ci::CreateCommitStatusService3125 # order random3126 for running3127 when pipeline for sha does not exists3128 creates commit status and sets pipeline iid3129 when status transitions from pending3130 for running3131 changes to running3132 for success3133 changes to success3134 for failed3135 changes to failed3136 for canceled3137 changes to canceled3138 for invalid transition3139 returns bad request and error message3140 for pending3141 when pipeline for sha does not exists3142 creates commit status and sets pipeline iid3143 with partitions3144 creates records in the current partition3145 for failed3146 when pipeline for sha does not exists3147 creates commit status and sets pipeline iid3148 when status is invalid3149 does not create commit status3150 when retrying a commit status3151 correctly posts a new commit status3152 retries the commit status3153 with all optional parameters3154 when creating a commit status3155 creates commit status3156 when merge request exists for given branch3157 sets head pipeline3158 when updating a commit status3159 updates a commit status3160 when the `state` parameter is sent the same3161 does not update the commit status3162 when a pipeline id is specified3163 update the correct pipeline3164 when target URL is an invalid address3165 responds with bad request status and validation errors3166 when request without a state made3167 does not create commit status3168 for race condition3169 creates one pipeline and two jobs (one for licenses, one for security)3170 when trying to update a status of a different type3171 responds with bad request status and validation errors3172 for canceled3173 when pipeline for sha does not exists3174 creates commit status and sets pipeline iid3175 when updating a protected ref3176 with user as developer3177 does not create commit status3178 with user as maintainer3179 creates commit status3180 for success3181 when pipeline for sha does not exists3182 creates commit status and sets pipeline iid3183 when commit SHA is invalid3184 returns not found error3185 when target URL is an unsupported scheme3186 responds with bad request status and validation errors3187Projects::LfsPointers::LfsDownloadLinkListService3188 #each_link3189 retrieves each download link of every non existent lfs object3190 stores headers3191 when lfs objects size is larger than the batch size3192 when batch size3193 retrieves them in batches3194 when request fails with PayloadTooLarge error3195 when the smaller batch eventually works3196 retreives them eventually and logs exceptions3197 when batch size cannot be any smaller3198 raises an error and logs exceptions3199 credentials3200 when the download link and the lfs_endpoint have the same host3201 when lfs_endpoint has credentials3202 adds credentials to the download_link3203 when lfs_endpoint does not have any credentials3204 does not add any credentials3205 when the download link and the lfs_endpoint have different hosts3206 downloads without any credentials3207 #download_links_for3208 if request fails3209 raises an error3210 behaves like JSON parse errors3211 raises an error3212 behaves like JSON parse errors3213 raises an error3214 behaves like JSON parse errors3215 raises an error3216 #parse_response_links3217 does not add oid entry if href not found3218Mutations::MergeRequests::SetLabels3219 is expected to require graphql authorizations :update_merge_request3220 #resolve3221 behaves like permission level for merge request mutation is correctly verified3222 when the user is not a project member3223 behaves like when the user does not have access to the resource3224 raises an error3225 even if assigned to the merge request3226 does not modify merge request3227 even if reviewer of the merge request3228 raises an error3229 even if author of the merge request3230 raises an error3231 when the user is a project member3232 with guest role3233 behaves like when the user does not have access to the resource3234 raises an error3235 even if assigned to the merge request3236 does not modify merge request3237 even if reviewer of the merge request3238 raises an error3239 even if author of the merge request3240 raises an error3241 with reporter role3242 behaves like when the user does not have access to the resource3243 raises an error3244 even if assigned to the merge request3245 does not modify merge request3246 even if reviewer of the merge request3247 raises an error3248 even if author of the merge request3249 raises an error3250 when the user can update the merge request3251 sets the labels, removing all others3252 returns errors merge request could not be updated3253 when passing an empty array3254 removes all labels3255 when passing operation_mode as APPEND3256 sets the labels, without removing others3257 when passing operation_mode as REMOVE3258 removes the labels, without removing others3259ContainerRegistry::Tag3260 is expected to respond to #repository3261 is expected to delegate #registry to the #repository object3262 is expected to delegate #client to the #repository object3263 #path3264 when tag belongs to zero-level repository3265 returns path to the image3266 when tag belongs to first-level repository3267 returns path to the image3268 #location3269 returns a full location of the tag3270 manifest processing3271 schema v13272 #layers3273 is expected to eq 13274 #total_size3275 is expected to be nil3276 config processing3277 #config3278 is expected to be nil3279 #created_at3280 is expected to be nil3281 behaves like using the value manually set on created_at3282 does not use the config3283 image is a helm chart3284 #created_at3285 is expected to be nil3286 behaves like using the value manually set on created_at3287 does not use the config3288 schema v23289 #layers3290 is expected to eq 13291 #total_size3292 is expected to eq 23198703293 config processing3294 when locally stored3295 behaves like a processable3296 #config3297 is expected not to be nil3298 #created_at3299 is expected not to be nil3300 behaves like using the value manually set on created_at3301 does not use the config3302 when externally stored3303 behaves like a processable3304 #config3305 is expected not to be nil3306 #created_at3307 is expected not to be nil3308 behaves like using the value manually set on created_at3309 does not use the config3310 #force_created_at_from_iso86013311 with a valid input3312 behaves like setting and caching the created_at value3313 sets and caches the created_at value3314 with a nil input3315 behaves like setting and caching the created_at value3316 sets and caches the created_at value3317 with an invalid input3318 behaves like setting and caching the created_at value3319 sets and caches the created_at value3320 updated_at=3321 with a valid input3322 is expected to eq Wed, 18 Oct 2023 08:49:29.000000000 +00003323 with a nil input3324 is expected to eq nil3325 with an invalid input3326 is expected to eq nil3327 with stubbed digest3328 #digest3329 returns a correct tag digest3330 #unsafe_delete3331 correctly deletes the tag3332Gitlab::Database3333 EXTRA_SCHEMAS3334 contains only schemas starting with gitlab_ prefix3335 .all_database_connections3336 the first entry is always main3337 contains as many entries as YAML files3338 .database_base_models3339 contains "main"3340 does not contain "ci" when not running CI database (PENDING: Skipping because some of the extra databases [:ci] are setup)3341 contains "ci" pointing to Ci::ApplicationRecord when running CI database3342 .all_gitlab_schemas3343 contains as many entries as YAML files3344 .schemas_to_base_models3345 contains gitlab_main3346 contains gitlab_shared3347 contains gitlab_ci pointing to ActiveRecord::Base when not running CI database (PENDING: Skipping because some of the extra databases [:ci] are setup)3348 contains gitlab_ci pointing to Ci::ApplicationRecord when running CI database3349 .default_pool_size3350 returns the max thread size plus a fixed headroom of 103351 returns the max thread size plus a DB_POOL_HEADROOM if this env var is present3352 .has_config?3353 three tier database config3354 returns true for main3355 returns false for non-existent3356 ci3357 returns true for ci3358 ci database.yml not configured3359 returns false for ci3360 .has_database?3361 three tier database config3362 returns true for main3363 returns false for shared database3364 returns false for non-existent3365 .database_mode3366 three tier database config3367 returns single-database if ci is not configured (PENDING: Skipping because some of the extra databases [:ci] are setup)3368 returns single-database-ci-connection if ci is shared with main database3369 returns multiple-database if ci has its own database (PENDING: Skipping because ci is shared or doesn't not exist)3370 .check_for_non_superuser3371 prints user details if not superuser3372 raises an exception if superuser3373 catches exception if find_by fails3374 .db_config_for_connection3375 when the regular connection is used3376 returns db_config3377 when the connection is LoadBalancing::ConnectionProxy3378 returns primary db config even if ambiguous queries default to replica3379 when the pool is a NullPool3380 returns nil3381 .db_config_name3382 returns the db_config name for the connection3383 when replicas are configured3384 returns the main_replica for a main database replica3385 returns the ci_replica for a ci database replica3386 .db_config_names3387 configs_for: [:main], gitlab_schema: :gitlab_shared, expected_main: [:main], expected_main_ci: [:main]3388 when main and CI database are configured3389 configs_for: [:main, :ci], gitlab_schema: :gitlab_shared, expected_main: [:main], expected_main_ci: [:main, :ci]3390 when main and CI database are configured3391 configs_for: [:main, :ci], gitlab_schema: :gitlab_ci, expected_main: [:main], expected_main_ci: [:ci]3392 when main and CI database are configured3393 .db_config_share_with3394 db_config_name: "main", db_config_attributes: {:database_tasks=>true}, expected_db_config_share_with: nil3395 returns the expected result3396 db_config_name: "main", db_config_attributes: {:database_tasks=>false}, expected_db_config_share_with: nil3397 returns the expected result3398 db_config_name: "ci", db_config_attributes: {:database_tasks=>true}, expected_db_config_share_with: nil3399 returns the expected result3400 db_config_name: "ci", db_config_attributes: {:database_tasks=>false}, expected_db_config_share_with: "main"3401 returns the expected result3402 db_config_name: "main_clusterwide", db_config_attributes: {:database_tasks=>true}, expected_db_config_share_with: nil3403 returns the expected result3404 db_config_name: "main_clusterwide", db_config_attributes: {:database_tasks=>false}, expected_db_config_share_with: "main"3405 returns the expected result3406 db_config_name: "_test_unknown", db_config_attributes: {:database_tasks=>true}, expected_db_config_share_with: nil3407 returns the expected result3408 db_config_name: "_test_unknown", db_config_attributes: {:database_tasks=>false}, expected_db_config_share_with: "main"3409 returns the expected result3410 .gitlab_schemas_for_connection3411 does return a valid schema depending on a base model used3412 does return gitlab_ci when a ActiveRecord::Base is using CI connection3413 does return a valid schema for a replica connection3414 does return empty for non-adopted connections3415 when there's CI connection3416 when CI uses database_tasks: false does indicate that ci: is subset of main:3417 does return gitlab_ci when accessing via main: connection3418 does not return gitlab_main when accessing via ci: connection3419 when CI uses database_tasks: true does indicate that ci: has own database3420 does not return gitlab_ci when accessing via main: connection3421 does not return gitlab_main when accessing via ci: connection3422 .database_base_models_with_gitlab_shared3423 memoizes the models3424 .database_base_models_using_load_balancing3425 memoizes the models3426 #true_value3427 returns correct value3428 #false_value3429 returns correct value3430 #sanitize_timestamp3431 with a timestamp smaller than MAX_TIMESTAMP_VALUE3432 returns the given timestamp3433 with a timestamp larger than MAX_TIMESTAMP_VALUE3434 returns MAX_TIMESTAMP_VALUE3435 .all_uncached3436 wraps the given block in uncached calls for each primary connection3437 .read_only?3438 returns false3439 .read_write3440 returns true3441 ActiveRecordBaseTransactionMetrics3442 without a transaction block3443 does not publish a transaction event3444 within a transaction block3445 publishes a transaction event3446 within an empty transaction block3447 publishes a transaction event3448 within a nested transaction block3449 publishes multiple transaction events3450 within a cancelled transaction block3451 publishes multiple transaction events3452 .read_minimum_migration_version3453 valid migration files exist3454 finds the correct ID3455 no valid migration files exist3456 returns nil3457Integrations::Teamcity3458 behaves like Integrations::BaseCi3459 default values3460 is expected to eq :ci3461 behaves like Integrations::ResetSecretFields3462 #exposing_secrets_fields3463 returns an array of strings3464 #reset_secret_fields?3465 returns false if no exposing field has changed3466 returns true if any exposing field has changed3467 validation callback3468 when an exposing field has changed3469 clears all secret fields3470 when a secret field has been updated3471 does not clear this secret field3472 when a secret field has been updated with the same value3473 does not clear this secret field3474 when no exposing field has changed3475 does not clear any secret fields3476 accessors3477 is expected to respond to #enable_ssl_verification3478 is expected to respond to #enable_ssl_verification?3479 #initialize_properties3480 enables the setting by default3481 does not enable the setting if the record is already persisted3482 does not enable the setting if a custom value was set3483 #fields3484 inserts the checkbox field after the first URL field, or at the end3485 does not insert the field repeatedly3486 #enable_ssl_verification3487 returns true for a known hostname3488 returns true for new records3489 returns false for an unknown hostname3490 returns false for a HTTP URL3491 returns false for an invalid URL3492 returns the persisted value if present3493 Validations3494 when integration is active3495 is expected to validate that :build_type cannot be empty/falsy3496 is expected to validate that :teamcity_url cannot be empty/falsy3497 behaves like issue tracker integration URL attribute3498 is expected to allow :teamcity_url to be ‹"https://example.com"›3499 is expected not to allow :teamcity_url to be ‹"example.com"›3500 is expected not to allow :teamcity_url to be ‹"ftp://example.com"›3501 is expected not to allow :teamcity_url to be ‹"herp-and-derp"›3502 #username3503 does not validate the presence of username if password is nil3504 validates the presence of username if password is present3505 #password3506 does not validate the presence of password if username is nil3507 validates the presence of password if username is present3508 when integration is inactive3509 is expected not to validate that :build_type cannot be empty/falsy3510 is expected not to validate that :teamcity_url cannot be empty/falsy3511 is expected not to validate that :username cannot be empty/falsy3512 is expected not to validate that :password cannot be empty/falsy3513 #build_page3514 returns the contents of the reactive cache3515 #commit_status3516 returns the contents of the reactive cache3517 #calculate_reactive_cache3518 build_page3519 returns a specific URL when status is 5003520 returns a build URL when teamcity_url has no trailing slash3521 returns the teamcity_url when teamcity is unreachable3522 teamcity_url has trailing slash3523 returns a build URL3524 commit_status3525 sets commit status to :error when status is 5003526 sets commit status to "pending" when status is 4043527 sets commit status to "success" when build status contains SUCCESS3528 sets commit status to "failed" when build status contains FAILURE3529 sets commit status to "pending" when build status contains Pending3530 sets commit status to :error when build status is unknown3531 sets commit status to :error when teamcity is unreachable3532 #execute3533 returns nil when event is not supported3534 when push3535 handles push request correctly3536 returns nil when ref is blank3537 returns nil when there is no content3538 returns nil when a merge request is opened for the same ref3539 when merge_request3540 handles merge request correctly3541 returns nil when merge request is not opened3542 returns nil unless merge request is marked as unchecked3543Integrations::UnifyCircuit3544 behaves like chat integration3545 Associations3546 is expected to belong to project required: false3547 Validations3548 when integration is active3549 is expected to validate that :webhook cannot be empty/falsy3550 behaves like issue tracker integration URL attribute3551 is expected to allow :webhook to be ‹"https://example.com"›3552 is expected not to allow :webhook to be ‹"example.com"›3553 is expected not to allow :webhook to be ‹"ftp://example.com"›3554 is expected not to allow :webhook to be ‹"herp-and-derp"›3555 when integration is inactive3556 is expected not to validate that :webhook cannot be empty/falsy3557 .supported_events3558 does not support deployment_events3559 #execute3560 with push events3561 behaves like triggered Unify Circuit integration3562 calls Unify Circuit API3563 with default branch3564 when only default branch are to be notified3565 behaves like triggered Unify Circuit integration3566 calls Unify Circuit API3567 when only protected branches are to be notified3568 behaves like untriggered Unify Circuit integration3569 does not call Unify Circuit API3570 when default and protected branches are to be notified3571 behaves like triggered Unify Circuit integration3572 calls Unify Circuit API3573 when all branches are to be notified3574 behaves like triggered Unify Circuit integration3575 calls Unify Circuit API3576 with protected branch3577 when only default branch are to be notified3578 behaves like untriggered Unify Circuit integration3579 does not call Unify Circuit API3580 when only protected branches are to be notified3581 behaves like triggered Unify Circuit integration3582 calls Unify Circuit API3583 when default and protected branches are to be notified3584 behaves like triggered Unify Circuit integration3585 calls Unify Circuit API3586 when all branches are to be notified3587 behaves like triggered Unify Circuit integration3588 calls Unify Circuit API3589 with neither default nor protected branch3590 when only default branch are to be notified3591 behaves like untriggered Unify Circuit integration3592 does not call Unify Circuit API3593 when only protected branches are to be notified3594 behaves like untriggered Unify Circuit integration3595 does not call Unify Circuit API3596 when default and protected branches are to be notified3597 behaves like untriggered Unify Circuit integration3598 does not call Unify Circuit API3599 when all branches are to be notified3600 behaves like triggered Unify Circuit integration3601 calls Unify Circuit API3602 with issue events3603 behaves like triggered Unify Circuit integration3604 calls Unify Circuit API3605 with merge events3606 behaves like triggered Unify Circuit integration3607 calls Unify Circuit API3608 with wiki page events3609 behaves like triggered Unify Circuit integration3610 calls Unify Circuit API3611 with note events3612 with commit comment3613 behaves like triggered Unify Circuit integration3614 calls Unify Circuit API3615 with merge request comment3616 behaves like triggered Unify Circuit integration3617 calls Unify Circuit API3618 with issue comment3619 behaves like triggered Unify Circuit integration3620 calls Unify Circuit API3621 with snippet comment3622 behaves like triggered Unify Circuit integration3623 calls Unify Circuit API3624 with pipeline events3625 with failed pipeline3626 behaves like triggered Unify Circuit integration3627 calls Unify Circuit API3628 with succeeded pipeline3629 with default notify_only_broken_pipelines3630 does not call Unify Circuit API3631 when notify_only_broken_pipelines is false3632 behaves like triggered Unify Circuit integration3633 calls Unify Circuit API3634 with default branch3635 when only default branch are to be notified3636 behaves like triggered Unify Circuit integration3637 calls Unify Circuit API3638 when only protected branches are to be notified3639 behaves like untriggered Unify Circuit integration3640 does not call Unify Circuit API3641 when default and protected branches are to be notified3642 behaves like triggered Unify Circuit integration3643 calls Unify Circuit API3644 when all branches are to be notified3645 behaves like triggered Unify Circuit integration3646 calls Unify Circuit API3647 with protected branch3648 when only default branch are to be notified3649 behaves like untriggered Unify Circuit integration3650 does not call Unify Circuit API3651 when only protected branches are to be notified3652 behaves like triggered Unify Circuit integration3653 calls Unify Circuit API3654 when default and protected branches are to be notified3655 behaves like triggered Unify Circuit integration3656 calls Unify Circuit API3657 when all branches are to be notified3658 behaves like triggered Unify Circuit integration3659 calls Unify Circuit API3660 with neither default nor protected branch3661 when only default branch are to be notified3662 behaves like untriggered Unify Circuit integration3663 does not call Unify Circuit API3664 when only protected branches are to be notified3665 behaves like untriggered Unify Circuit integration3666 does not call Unify Circuit API3667 when default and protected branches are to be notified3668 behaves like untriggered Unify Circuit integration3669 does not call Unify Circuit API3670 when all branches are to be notified3671 behaves like triggered Unify Circuit integration3672 calls Unify Circuit API3673 deployment events3674 behaves like untriggered Unify Circuit integration3675 does not call Unify Circuit API3676IncidentManagement::IssuableEscalationStatus3677 # order random3678 is expected to be valid3679 associations3680 is expected to belong to issue required: false3681 is expected to have one project through issue inverse_of => incident_management_issuable_escalation_statuses3682 behaves like a model including Escalatable3683 validations3684 is expected to validate that :status cannot be empty/falsy3685 when status is triggered3686 when resolved_at is blank3687 is expected to be valid3688 when resolved_at is present3689 is expected to be invalid3690 when status is acknowledged3691 when resolved_at is blank3692 is expected to be valid3693 when resolved_at is present3694 is expected to be invalid3695 when status is resolved3696 when resolved_at is blank3697 is expected to be invalid3698 when resolved_at is present3699 is expected to be valid3700 when status is ignored3701 when resolved_at is blank3702 is expected to be valid3703 when resolved_at is present3704 is expected to be invalid3705 scopes3706 .order_status3707 descending3708 is expected to eq [#<IncidentManagement::IssuableEscalationStatus id: 1, created_at: "2023-10-20 08:49:53.510481000 +00...00 +0000", issue_id: 407, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 3>]3709 ascending3710 is expected to eq [#<IncidentManagement::IssuableEscalationStatus id: 4, created_at: "2023-10-20 08:49:54.474671000 +00...00 +0000", issue_id: 404, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 0>]3711 .open3712 is expected to contain exactly #<IncidentManagement::IssuableEscalationStatus id: 2, created_at: "2023-10-20 08:49:53.841158000 +000...000 +0000", issue_id: 405, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 1> and #<IncidentManagement::IssuableEscalationStatus id: 1, created_at: "2023-10-20 08:49:53.510481000 +000...000 +0000", issue_id: 404, policy_id: nil, escalations_started_at: nil, resolved_at: nil, status: 0>3713 .status_value3714 status: :triggered, status_value: 03715 returns status value by its name3716 status: :acknowledged, status_value: 13717 returns status value by its name3718 status: :resolved, status_value: 23719 returns status value by its name3720 status: :ignored, status_value: 33721 returns status value by its name3722 status: :unknown, status_value: nil3723 returns status value by its name3724 .status_name3725 raw_status: 0, status: :triggered3726 returns status name by its values3727 raw_status: 1, status: :acknowledged3728 returns status name by its values3729 raw_status: 2, status: :resolved3730 returns status name by its values3731 raw_status: 3, status: :ignored3732 returns status name by its values3733 raw_status: -1, status: nil3734 returns status name by its values3735 .open_status?3736 status: :triggered, is_open_status: true3737 returns true when the status is open status3738 status: :acknowledged, is_open_status: true3739 returns true when the status is open status3740 status: :resolved, is_open_status: false3741 returns true when the status is open status3742 status: :ignored, is_open_status: false3743 returns true when the status is open status3744 status: nil, is_open_status: false3745 returns true when the status is open status3746 #trigger3747 when escalatable is in triggered state3748 does not change the escalatable status3749 when escalatable is not in triggered state3750 changes the escalatable status to triggered3751 resets resolved at3752 #acknowledge3753 changes the escalatable status to acknowledged3754 resets ended at3755 #resolve3756 when escalatable is already resolved3757 does not change the escalatable status3758 when escalatable is not resolved3759 changes escalatable status to "resolved"3760 #ignore3761 changes the escalatable status to ignored3762 resets ended at3763 #status_event_for3764 for_status: :triggered, event: :trigger3765 returns event by status name3766 for_status: "triggered", event: :trigger3767 returns event by status name3768 for_status: :acknowledged, event: :acknowledge3769 returns event by status name3770 for_status: "acknowledged", event: :acknowledge3771 returns event by status name3772 for_status: :resolved, event: :resolve3773 returns event by status name3774 for_status: "resolved", event: :resolve3775 returns event by status name3776 for_status: :ignored, event: :ignore3777 returns event by status name3778 for_status: "ignored", event: :ignore3779 returns event by status name3780 for_status: :unknown, event: nil3781 returns event by status name3782 for_status: nil, event: nil3783 returns event by status name3784 for_status: "", event: nil3785 returns event by status name3786 for_status: 1, event: nil3787 returns event by status name3788 #open?3789 returns true when the status is open status3790 validatons3791 is expected to validate that :issue cannot be empty/falsy3792 is expected to validate that :issue is case-sensitively unique3793Projects::DataTransfer3794 # order random3795 is expected to be valid3796 .beginning_of_month3797 is expected to eq 2022-05-01 00:00:00.000000000 +00003798 associations3799 is expected to belong to project required: false3800 is expected to belong to namespace required: false3801 scopes3802 .current_month3803 returns data transfer for the current month3804 .with_project_between_dates3805 returns the correct number of results3806 .with_namespace_between_dates3807 returns the correct number of results3808 behaves like CounterAttribute3809 defines a method to store counters3810 repository_egress3811 #increment_counter3812 when attribute is a counter attribute3813 amount: 103814 increments the counter in Redis and logs it3815 does not increment the counter for the record3816 schedules a worker to flush counter increments asynchronously3817 amount: -33818 increments the counter in Redis and logs it3819 does not increment the counter for the record3820 schedules a worker to flush counter increments asynchronously3821 #increment_amount3822 increases the egress in cache3823 #current_counter3824 increases the amount in cache3825 when increment amount is 03826 does nothing3827 #bulk_increment_counter3828 when attribute is a counter attribute3829 increments the counter in Redis and logs each increment3830 does not increment the counter for the record3831 schedules a worker to flush counter increments asynchronously3832 when feature flag split_log_bulk_increment_counter is disabled3833 logs a single total increment3834 artifacts_egress3835 #increment_counter3836 when attribute is a counter attribute3837 amount: 103838 increments the counter in Redis and logs it3839 does not increment the counter for the record3840 schedules a worker to flush counter increments asynchronously3841 amount: -33842 increments the counter in Redis and logs it3843 does not increment the counter for the record3844 schedules a worker to flush counter increments asynchronously3845 #increment_amount3846 increases the egress in cache3847 #current_counter3848 increases the amount in cache3849 when increment amount is 03850 does nothing3851 #bulk_increment_counter3852 when attribute is a counter attribute3853 increments the counter in Redis and logs each increment3854 does not increment the counter for the record3855 schedules a worker to flush counter increments asynchronously3856 when feature flag split_log_bulk_increment_counter is disabled3857 logs a single total increment3858 packages_egress3859 #increment_counter3860 when attribute is a counter attribute3861 amount: 103862 increments the counter in Redis and logs it3863 does not increment the counter for the record3864 schedules a worker to flush counter increments asynchronously3865 amount: -33866 increments the counter in Redis and logs it3867 does not increment the counter for the record3868 schedules a worker to flush counter increments asynchronously3869 #increment_amount3870 increases the egress in cache3871 #current_counter3872 increases the amount in cache3873 when increment amount is 03874 does nothing3875 #bulk_increment_counter3876 when attribute is a counter attribute3877 increments the counter in Redis and logs each increment3878 does not increment the counter for the record3879 schedules a worker to flush counter increments asynchronously3880 when feature flag split_log_bulk_increment_counter is disabled3881 logs a single total increment3882 registry_egress3883 #increment_counter3884 when attribute is a counter attribute3885 amount: 103886 increments the counter in Redis and logs it3887 does not increment the counter for the record3888 schedules a worker to flush counter increments asynchronously3889 amount: -33890 increments the counter in Redis and logs it3891 does not increment the counter for the record3892 schedules a worker to flush counter increments asynchronously3893 #increment_amount3894 increases the egress in cache3895 #current_counter3896 increases the amount in cache3897 when increment amount is 03898 does nothing3899 #bulk_increment_counter3900 when attribute is a counter attribute3901 increments the counter in Redis and logs each increment3902 does not increment the counter for the record3903 schedules a worker to flush counter increments asynchronously3904 when feature flag split_log_bulk_increment_counter is disabled3905 logs a single total increment3906 #update_counters_with_lease3907 updates counters of the record3908 behaves like obtaining lease to update database3909 when it is unable to obtain lock3910 logs a warning3911 when the execution raises error3912 reraises error3913 unique index3914 raises unique index violation3915 when project was moved from one namespace to another3916 creates a new record3917 when a different project is created3918 creates a new record3919Integrations::WebexTeams3920 behaves like chat integration3921 Associations3922 is expected to belong to project required: false3923 Validations3924 when integration is active3925 is expected to validate that :webhook cannot be empty/falsy3926 behaves like issue tracker integration URL attribute3927 is expected to allow :webhook to be ‹"https://example.com"›3928 is expected not to allow :webhook to be ‹"example.com"›3929 is expected not to allow :webhook to be ‹"ftp://example.com"›3930 is expected not to allow :webhook to be ‹"herp-and-derp"›3931 when integration is inactive3932 is expected not to validate that :webhook cannot be empty/falsy3933 .supported_events3934 does not support deployment_events3935 #execute3936 with push events3937 behaves like triggered Webex Teams integration3938 calls Webex Teams API3939 with default branch3940 when only default branch are to be notified3941 behaves like triggered Webex Teams integration3942 calls Webex Teams API3943 when only protected branches are to be notified3944 behaves like untriggered Webex Teams integration3945 does not call Webex Teams API3946 when default and protected branches are to be notified3947 behaves like triggered Webex Teams integration3948 calls Webex Teams API3949 when all branches are to be notified3950 behaves like triggered Webex Teams integration3951 calls Webex Teams API3952 with protected branch3953 when only default branch are to be notified3954 behaves like untriggered Webex Teams integration3955 does not call Webex Teams API3956 when only protected branches are to be notified3957 behaves like triggered Webex Teams integration3958 calls Webex Teams API3959 when default and protected branches are to be notified3960 behaves like triggered Webex Teams integration3961 calls Webex Teams API3962 when all branches are to be notified3963 behaves like triggered Webex Teams integration3964 calls Webex Teams API3965 with neither default nor protected branch3966 when only default branch are to be notified3967 behaves like untriggered Webex Teams integration3968 does not call Webex Teams API3969 when only protected branches are to be notified3970 behaves like untriggered Webex Teams integration3971 does not call Webex Teams API3972 when default and protected branches are to be notified3973 behaves like untriggered Webex Teams integration3974 does not call Webex Teams API3975 when all branches are to be notified3976 behaves like triggered Webex Teams integration3977 calls Webex Teams API3978 with issue events3979 behaves like triggered Webex Teams integration3980 calls Webex Teams API3981 with merge events3982 behaves like triggered Webex Teams integration3983 calls Webex Teams API3984 with wiki page events3985 behaves like triggered Webex Teams integration3986 calls Webex Teams API3987 with note events3988 with commit comment3989 behaves like triggered Webex Teams integration3990 calls Webex Teams API3991 with merge request comment3992 behaves like triggered Webex Teams integration3993 calls Webex Teams API3994 with issue comment3995 behaves like triggered Webex Teams integration3996 calls Webex Teams API3997 with snippet comment3998 behaves like triggered Webex Teams integration3999 calls Webex Teams API4000 with pipeline events4001 with failed pipeline4002 behaves like triggered Webex Teams integration4003 calls Webex Teams API4004 with succeeded pipeline4005 with default notify_only_broken_pipelines4006 does not call Webex Teams API4007 when notify_only_broken_pipelines is false4008 behaves like triggered Webex Teams integration4009 calls Webex Teams API4010 with default branch4011 when only default branch are to be notified4012 behaves like triggered Webex Teams integration4013 calls Webex Teams API4014 when only protected branches are to be notified4015 behaves like untriggered Webex Teams integration4016 does not call Webex Teams API4017 when default and protected branches are to be notified4018 behaves like triggered Webex Teams integration4019 calls Webex Teams API4020 when all branches are to be notified4021 behaves like triggered Webex Teams integration4022 calls Webex Teams API4023 with protected branch4024 when only default branch are to be notified4025 behaves like untriggered Webex Teams integration4026 does not call Webex Teams API4027 when only protected branches are to be notified4028 behaves like triggered Webex Teams integration4029 calls Webex Teams API4030 when default and protected branches are to be notified4031 behaves like triggered Webex Teams integration4032 calls Webex Teams API4033 when all branches are to be notified4034 behaves like triggered Webex Teams integration4035 calls Webex Teams API4036 with neither default nor protected branch4037 when only default branch are to be notified4038 behaves like untriggered Webex Teams integration4039 does not call Webex Teams API4040 when only protected branches are to be notified4041 behaves like untriggered Webex Teams integration4042 does not call Webex Teams API4043 when default and protected branches are to be notified4044 behaves like untriggered Webex Teams integration4045 does not call Webex Teams API4046 when all branches are to be notified4047 behaves like triggered Webex Teams integration4048 calls Webex Teams API4049 deployment events4050 behaves like untriggered Webex Teams integration4051 does not call Webex Teams API4052Gitlab::Metrics4053 .settings4054 returns a Hash4055 .enabled?4056 returns a boolean4057 .prometheus_metrics_enabled_unmemoized4058 prometheus metrics enabled in config4059 when metrics folder is present4060 metrics are enabled4061 when metrics folder is missing4062 metrics are disabled4063 .prometheus_metrics_enabled?4064 returns a boolean4065 .measure4066 without a transaction4067 returns the return value of the block4068 with a transaction4069 adds a metric to the current transaction4070 returns the return value of the block4071 #series_prefix4072 returns a String4073 .record_status_for_duration?4074 status: 100, should_record: false4075 is expected to equal false4076 is expected to equal false4077 status: 200, should_record: true4078 is expected to equal true4079 is expected to equal true4080 status: 401, should_record: true4081 is expected to equal true4082 is expected to equal true4083 status: nil, should_record: false4084 is expected to equal false4085 is expected to equal false4086 status: 500, should_record: false4087 is expected to equal false4088 is expected to equal false4089 status: 503, should_record: false4090 is expected to equal false4091 is expected to equal false4092 status: "nothing", should_record: false4093 is expected to equal false4094 is expected to equal false4095 .server_error?4096 status: 100, should_record: false4097 is expected to equal false4098 is expected to equal false4099 status: 200, should_record: false4100 is expected to equal false4101 is expected to equal false4102 status: 401, should_record: false4103 is expected to equal false4104 is expected to equal false4105 status: 500, should_record: true4106 is expected to equal true4107 is expected to equal true4108 status: 503, should_record: true4109 is expected to equal true4110 is expected to equal true4111 status: nil, should_record: false4112 is expected to equal false4113 is expected to equal false4114 status: "nothing", should_record: false4115 is expected to equal false4116 is expected to equal false4117 .add_event4118 without a transaction4119 does nothing4120 with a transaction4121 adds an event4122 prometheus metrics disabled4123 behaves like prometheus metrics API4124 #counter4125 #increment4126 successfully calls #increment without arguments4127 successfully calls #increment with 1 argument4128 successfully calls #increment with 2 arguments4129 #summary4130 #observe4131 successfully calls #observe with 2 arguments4132 #gauge4133 #set4134 successfully calls #set with 2 arguments4135 #histogram4136 #observe4137 successfully calls #observe with 2 arguments4138 #null_metric4139 is expected to be a kind of Gitlab::Metrics::NullMetric4140 #counter4141 is expected to be a kind of Gitlab::Metrics::NullMetric4142 #summary4143 is expected to be a kind of Gitlab::Metrics::NullMetric4144 #gauge4145 is expected to be a kind of Gitlab::Metrics::NullMetric4146 #histogram4147 is expected to be a kind of Gitlab::Metrics::NullMetric4148 prometheus metrics enabled4149 behaves like prometheus metrics API4150 #counter4151 #increment4152 successfully calls #increment without arguments4153 successfully calls #increment with 1 argument4154 successfully calls #increment with 2 arguments4155 #summary4156 #observe4157 successfully calls #observe with 2 arguments4158 #gauge4159 #set4160 successfully calls #set with 2 arguments4161 #histogram4162 #observe4163 successfully calls #observe with 2 arguments4164 #null_metric4165 is expected to be nil4166 #counter4167 is expected not to be a kind of Gitlab::Metrics::NullMetric4168 #summary4169 is expected not to be a kind of Gitlab::Metrics::NullMetric4170 #gauge4171 is expected not to be a kind of Gitlab::Metrics::NullMetric4172 #histogram4173 is expected not to be a kind of Gitlab::Metrics::NullMetric4174Namespaces::PackageSettings::UpdateService4175 #execute4176 with existing namespace package setting4177 user_role: :owner, shared_examples_name: "updating the namespace package setting"4178 behaves like updating the namespace package setting4179 behaves like updating the namespace package setting attributes4180 updates the namespace package setting4181 behaves like not creating the namespace package setting4182 doesn't create the namespace package setting4183 behaves like returning a success4184 returns a success4185 with invalid params4186 doesn't update the maven_duplicates_allowed4187 behaves like not creating the namespace package setting4188 doesn't create the namespace package setting4189 behaves like returning an error4190 returns an error4191 user_role: :maintainer, shared_examples_name: "denying access to namespace package setting"4192 behaves like denying access to namespace package setting4193 with existing namespace package setting4194 behaves like not creating the namespace package setting4195 doesn't create the namespace package setting4196 behaves like returning an error4197 returns an error4198 behaves like disabling admin_package feature flag4199 behaves like updating the namespace package setting4200 behaves like updating the namespace package setting attributes4201 updates the namespace package setting4202 behaves like not creating the namespace package setting4203 doesn't create the namespace package setting4204 behaves like returning a success4205 returns a success4206 with invalid params4207 doesn't update the maven_duplicates_allowed4208 behaves like not creating the namespace package setting4209 doesn't create the namespace package setting4210 behaves like returning an error4211 returns an error4212 user_role: :developer, shared_examples_name: "denying access to namespace package setting"4213 behaves like denying access to namespace package setting4214 with existing namespace package setting4215 behaves like not creating the namespace package setting4216 doesn't create the namespace package setting4217 behaves like returning an error4218 returns an error4219 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"4220 behaves like denying access to namespace package setting4221 with existing namespace package setting4222 behaves like not creating the namespace package setting4223 doesn't create the namespace package setting4224 behaves like returning an error4225 returns an error4226 user_role: :guest, shared_examples_name: "denying access to namespace package setting"4227 behaves like denying access to namespace package setting4228 with existing namespace package setting4229 behaves like not creating the namespace package setting4230 doesn't create the namespace package setting4231 behaves like returning an error4232 returns an error4233 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"4234 behaves like denying access to namespace package setting4235 with existing namespace package setting4236 behaves like not creating the namespace package setting4237 doesn't create the namespace package setting4238 behaves like returning an error4239 returns an error4240 without existing namespace package setting4241 user_role: :owner, shared_examples_name: "creating the namespace package setting"4242 behaves like creating the namespace package setting4243 creates a new package setting4244 saves the settings4245 behaves like returning a success4246 returns a success4247 user_role: :maintainer, shared_examples_name: "denying access to namespace package setting"4248 behaves like denying access to namespace package setting4249 with existing namespace package setting4250 behaves like not creating the namespace package setting4251 doesn't create the namespace package setting4252 behaves like returning an error4253 returns an error4254 behaves like disabling admin_package feature flag4255 behaves like creating the namespace package setting4256 creates a new package setting4257 saves the settings4258 behaves like returning a success4259 returns a success4260 user_role: :developer, shared_examples_name: "denying access to namespace package setting"4261 behaves like denying access to namespace package setting4262 with existing namespace package setting4263 behaves like not creating the namespace package setting4264 doesn't create the namespace package setting4265 behaves like returning an error4266 returns an error4267 user_role: :reporter, shared_examples_name: "denying access to namespace package setting"4268 behaves like denying access to namespace package setting4269 with existing namespace package setting4270 behaves like not creating the namespace package setting4271 doesn't create the namespace package setting4272 behaves like returning an error4273 returns an error4274 user_role: :guest, shared_examples_name: "denying access to namespace package setting"4275 behaves like denying access to namespace package setting4276 with existing namespace package setting4277 behaves like not creating the namespace package setting4278 doesn't create the namespace package setting4279 behaves like returning an error4280 returns an error4281 user_role: :anonymous, shared_examples_name: "denying access to namespace package setting"4282 behaves like denying access to namespace package setting4283 with existing namespace package setting4284 behaves like not creating the namespace package setting4285 doesn't create the namespace package setting4286 behaves like returning an error4287 returns an error4288Integrations::PipelinesEmail4289 Validations4290 when integration is active4291 is expected to validate that :recipients cannot be empty/falsy4292 when integration is inactive4293 is expected not to validate that :recipients cannot be empty/falsy4294 validates number of recipients4295 valid number of recipients4296 does not count empty emails4297 invalid number of recipients4298 is expected not to be valid4299 adds an error message4300 when integration is not active4301 is expected to be valid4302 #test4303 when pipeline is failed and on default branch4304 behaves like sending email4305 sends email4306 when pipeline is succeeded4307 behaves like sending email4308 sends email4309 when the pipeline failed4310 on default branch4311 notifications are enabled only for default branch4312 behaves like sending email4313 sends email4314 notifications are enabled only for protected branch4315 behaves like sending email4316 sends email4317 notifications are enabled only for default and protected branches4318 behaves like sending email4319 sends email4320 notifications are enabled only for all branches4321 behaves like sending email4322 sends email4323 on a protected branch4324 notifications are enabled only for default branch4325 behaves like sending email4326 sends email4327 notifications are enabled only for protected branch4328 behaves like sending email4329 sends email4330 notifications are enabled only for default and protected branches4331 behaves like sending email4332 sends email4333 notifications are enabled only for all branches4334 behaves like sending email4335 sends email4336 on a neither protected nor default branch4337 notifications are enabled only for default branch4338 behaves like sending email4339 sends email4340 notifications are enabled only for protected branch4341 behaves like sending email4342 sends email4343 notifications are enabled only for default and protected branches4344 behaves like sending email4345 sends email4346 notifications are enabled only for all branches4347 behaves like sending email4348 sends email4349 #execute4350 with recipients4351 with succeeded pipeline4352 behaves like not sending email4353 does not send email4354 with notify_only_broken_pipelines on4355 with failed pipeline4356 behaves like sending email4357 sends email4358 with succeeded pipeline4359 behaves like not sending email4360 does not send email4361 when the pipeline failed4362 on default branch4363 behaves like sending email4364 sends email4365 notifications are enabled only for default branch4366 behaves like sending email4367 sends email4368 notifications are enabled only for protected branch4369 behaves like not sending email4370 does not send email4371 notifications are enabled only for default and protected branches4372 behaves like sending email4373 sends email4374 notifications are enabled only for all branches4375 behaves like sending email4376 sends email4377 on a protected branch4378 notifications are enabled only for default branch4379 behaves like not sending email4380 does not send email4381 notifications are enabled only for all branches4382 behaves like sending email4383 sends email4384 on a neither protected nor default branch4385 notifications are enabled only for default branch4386 behaves like not sending email4387 does not send email4388 notifications are enabled only for protected branch4389 behaves like not sending email4390 does not send email4391 notifications are enabled only for default and protected branches4392 behaves like not sending email4393 does not send email4394 notifications are enabled only for all branches4395 behaves like sending email4396 sends email4397 with empty recipients list4398 with failed pipeline4399 behaves like not sending email4400 does not send email4401 with recipients list separating with newlines4402 with failed pipeline4403 behaves like sending email4404 sends email4405GenericCommitStatus4406 validations4407 is expected to validate that the length of :target_url is at most 2554408 is expected to allow :target_url to be ‹nil›4409 is expected to allow :target_url to be ‹"http://gitlab.com/s"›4410 is expected not to allow :target_url to be ‹"javascript:alert(1)"›4411 #name_uniqueness_across_types4412 without attributes4413 behaves like it does not have uniqueness errors4414 does not return errors4415 with only a pipeline4416 without name4417 behaves like it does not have uniqueness errors4418 does not return errors4419 with only a name4420 without pipeline4421 behaves like it does not have uniqueness errors4422 does not return errors4423 with pipeline and name4424 without other statuses4425 behaves like it does not have uniqueness errors4426 does not return errors4427 with generic statuses4428 behaves like it does not have uniqueness errors4429 does not return errors4430 with ci_build statuses4431 returns name error4432 #context4433 is expected to eq "my_context"4434 #tags4435 is expected to eq [:external]4436 #detailed_status4437 returns detailed status object4438 when user has ability to see datails4439 details path points to an external URL4440 when user should not see details4441 does not have details4442 #present4443 is expected to be a kind of GenericCommitStatusPresenter4444Gitlab::GitalyClient::WithFeatureFlagActors4445 # order random4446 #user_actor4447 when user is not available in ApplicationContext4448 returns nil4449 when user is available in ApplicationContext4450 returns corresponding user record4451 when user does not exist4452 returns corresponding user record4453 #gitaly_client_call4454 triggers client call with feature flag actors4455 when call without repository_actor4456 calls error tracking track_and_raise_for_dev_exception4457 #gitaly_feature_flag_actors4458 returns a hash with collected feature flag actors4459 #repository, #project_actor, #group_actor4460 when normal project repository4461 behaves like Gitaly feature flag actors are inferred from repository4462 captures correct actors4463 does not issues SQL queries after the first invocation4464 behaves like Gitaly feature flag actors are inferred from repository4465 captures correct actors4466 does not issues SQL queries after the first invocation4467 behaves like Gitaly feature flag actors are inferred from repository4468 captures correct actors4469 does not issues SQL queries after the first invocation4470 when project wiki repository4471 behaves like Gitaly feature flag actors are inferred from repository4472 captures correct actors4473 does not issues SQL queries after the first invocation4474 behaves like Gitaly feature flag actors are inferred from repository4475 captures correct actors4476 does not issues SQL queries after the first invocation4477 behaves like Gitaly feature flag actors are inferred from repository4478 captures correct actors4479 does not issues SQL queries after the first invocation4480 when repository of project in user namespace4481 behaves like Gitaly feature flag actors are inferred from repository4482 captures correct actors4483 does not issues SQL queries after the first invocation4484 behaves like Gitaly feature flag actors are inferred from repository4485 captures correct actors4486 does not issues SQL queries after the first invocation4487 behaves like Gitaly feature flag actors are inferred from repository4488 captures correct actors4489 does not issues SQL queries after the first invocation4490 when personal snippet4491 behaves like Gitaly feature flag actors are inferred from repository4492 captures correct actors4493 does not issues SQL queries after the first invocation4494 behaves like Gitaly feature flag actors are inferred from repository4495 captures correct actors4496 does not issues SQL queries after the first invocation4497 behaves like Gitaly feature flag actors are inferred from repository4498 captures correct actors4499 does not issues SQL queries after the first invocation4500 when project snippet4501 behaves like Gitaly feature flag actors are inferred from repository4502 captures correct actors4503 does not issues SQL queries after the first invocation4504 behaves like Gitaly feature flag actors are inferred from repository4505 captures correct actors4506 does not issues SQL queries after the first invocation4507 behaves like Gitaly feature flag actors are inferred from repository4508 captures correct actors4509 does not issues SQL queries after the first invocation4510 when project design4511 behaves like Gitaly feature flag actors are inferred from repository4512 captures correct actors4513 does not issues SQL queries after the first invocation4514 behaves like Gitaly feature flag actors are inferred from repository4515 captures correct actors4516 does not issues SQL queries after the first invocation4517 behaves like Gitaly feature flag actors are inferred from repository4518 captures correct actors4519 does not issues SQL queries after the first invocation4520Gitlab::Verify::Uploads4521 behaves like Gitlab::Verify::BatchVerifier subclass4522 batching4523 iterates through objects in batches4524 allows the starting ID to be specified4525 allows the finishing ID to be specified4526 #run_batches4527 passes uploads with the correct file4528 fails uploads with a missing file4529 fails uploads with a mismatched checksum4530 fails uploads with a missing precalculated checksum4531 with remote files4532 returned hash object4533 passes uploads in object storage that exist4534 fails uploads in object storage that do not exist4535 performance4536 avoids N+1 queries4537Discussions::UpdateDiffPositionService4538 #execute4539 when the diff line is the same4540 updates the position4541 when the resolve_outdated_diff_discussions setting is set4542 does not resolve the discussion4543 when the diff line has changed4544 doesn't update the position4545 sets the change position4546 creates a system discussion4547 when the resolve_outdated_diff_discussions setting is set4548 sets resolves the discussion and sets resolved_by_push4549 doesn't update the position4550 sets the change position4551 creates a system discussion4552Ci::GroupVariable4553 is expected to includes the Presentable module4554 is expected to includes the Ci::Maskable module4555 is expected to includes the HasEnvironmentScope module4556 behaves like CI variable4557 is expected to includes the Ci::HasVariable module4558 strips whitespaces when assigning key4559 can convert to runner variable4560 variable type4561 defines variable types4562 defaults variable type to env_var4563 supports variable type file4564 behaves like includes Limitable concern4565 #exceeds_limits?4566 without plan limits configured4567 is expected to eq false4568 without plan limits configured4569 is expected to eq false4570 with an existing model4571 is expected to eq true4572 validations4573 is expected to be a kind of Limitable4574 without plan limits configured4575 can create new models4576 with plan limits configured4577 can create new models4578 with an existing model4579 cannot create new models exceeding the plan limits4580 validations4581 is expected to validate that :key is case-sensitively unique within the scope of :group_id and :environment_scope, producing a custom validation error on failure4582 is expected to allow :description to be ‹""›4583 is expected to allow :description to be ‹nil›4584 is expected to validate that the length of :description is at most 2554585 .by_environment_scope4586 is expected to contain exactly #<Ci::GroupVariable id: 6, key: [FILTERED], value: nil, encrypted_value: "U6POJVMNDNnGO78+ig2caQ==\n"...ked: false, variable_type: "env_var", environment_scope: "production", raw: false, description: nil>4587 .unprotected4588 when variable is protected4589 returns nothing4590 when variable is not protected4591 returns the variable4592 .for_groups4593 is expected to eq [#<Ci::GroupVariable id: 10, key: [FILTERED], value: nil, encrypted_value: "xInNrKf0yThvARkgiUdjig==\...00", masked: false, variable_type: "env_var", environment_scope: "*", raw: false, description: nil>]4594 .for_environment_scope_like4595 is expected to contain exactly #<Ci::GroupVariable id: 12, key: [FILTERED], value: nil, encrypted_value: "gGwErcx+O9eiU9ePimfW6g==\n...asked: false, variable_type: "env_var", environment_scope: "staging1", raw: false, description: nil> and #<Ci::GroupVariable id: 13, key: [FILTERED], value: nil, encrypted_value: "92uG9Xo4wj4Bjm83QeWheg==\n...asked: false, variable_type: "env_var", environment_scope: "staging2", raw: false, description: nil>4596 is expected to contain exactly #<Ci::GroupVariable id: 14, key: [FILTERED], value: nil, encrypted_value: "0eigWtPXH+VfjPT5P7/qeg==\n...ked: false, variable_type: "env_var", environment_scope: "production", raw: false, description: nil>4597 .environment_scope_names4598 groups and orders4599 sort_by_attribute4600 .created_at_asc4601 order by created_at ascending4602 .created_at_desc4603 order by created_at descending4604 .key_asc4605 order by key ascending4606 .key_desc4607 order by key descending4608 behaves like cleanup by a loose foreign key4609 cleans up (delete or nullify) the model4610 #audit_details4611 equals to the group variable's key4612 #group_name4613 equals to the name of the group the variable belongs to4614 #group_ci_cd_settings_path4615 equals to the path of the CI/CD settings of the group the variable belongs to4616Ci::BuildTraceMetadata4617 is expected to belong to build required: false4618 is expected to belong to trace_artifact required: false4619 is expected to validate that :build cannot be empty/falsy4620 is expected to validate that :archival_attempts cannot be empty/falsy4621 #can_attempt_archival_now?4622 when archival_attempts is over the limit4623 is expected to be falsey4624 when last_archival_attempt_at is not set4625 is expected to be truthy4626 when last_archival_attempt_at is set4627 is expected to be truthy4628 when last_archival_attempt_at is too close4629 is expected to be falsey4630 #archival_attempts_available?4631 when archival_attempts is over the limit4632 is expected to be falsey4633 when archival_attempts is at the limit4634 is expected to be truthy4635 #increment_archival_attempts!4636 increments the attempts4637 updates the last_archival_attempt_at timestamp4638 #track_archival!4639 stores the artifact id and timestamp4640 .find_or_upsert_for!4641 creates a new record4642 with existing records4643 returns the existing record4644 #remote_checksum_valid?4645 checksum: nil, remote_checksum: nil, result: false4646 is expected to eq false4647 checksum: nil, remote_checksum: "a", result: false4648 is expected to eq false4649 checksum: "a", remote_checksum: nil, result: false4650 is expected to eq false4651 checksum: "a", remote_checksum: "b", result: false4652 is expected to eq false4653 checksum: "b", remote_checksum: "a", result: false4654 is expected to eq false4655 checksum: "a", remote_checksum: "a", result: true4656 is expected to eq true4657 partitioning4658 assigns the same partition id as the one that build has4659Mutations::DependencyProxy::ImageTtlGroupPolicy::Update4660 is expected to require graphql authorizations :admin_dependency_proxy4661 #resolve4662 with existing dependency proxy image ttl policy4663 user_role: :owner, shared_examples_name: "updating the dependency proxy image ttl policy"4664 behaves like updating the dependency proxy image ttl policy4665 behaves like updating the dependency proxy image ttl policy attributes4666 updates the dependency proxy image ttl policy4667 behaves like not creating the dependency proxy image ttl policy4668 doesn't create the dependency proxy image ttl policy4669 behaves like returning a success4670 returns the dependency proxy image ttl group policy with no errors4671 with invalid params4672 doesn't create the dependency proxy image ttl policy4673 does not update4674 returns an error4675 user_role: :maintainer, shared_examples_name: "denying access to dependency proxy image ttl policy"4676 behaves like denying access to dependency proxy image ttl policy4677 raises Gitlab::Graphql::Errors::ResourceNotAvailable4678 behaves like disabling admin_package feature flag4679 behaves like updating the dependency proxy image ttl policy4680 behaves like updating the dependency proxy image ttl policy attributes4681 updates the dependency proxy image ttl policy4682 behaves like not creating the dependency proxy image ttl policy4683 doesn't create the dependency proxy image ttl policy4684 behaves like returning a success4685 returns the dependency proxy image ttl group policy with no errors4686 with invalid params4687 doesn't create the dependency proxy image ttl policy4688 does not update4689 returns an error4690 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"4691 behaves like denying access to dependency proxy image ttl policy4692 raises Gitlab::Graphql::Errors::ResourceNotAvailable4693 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"4694 behaves like denying access to dependency proxy image ttl policy4695 raises Gitlab::Graphql::Errors::ResourceNotAvailable4696 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"4697 behaves like denying access to dependency proxy image ttl policy4698 raises Gitlab::Graphql::Errors::ResourceNotAvailable4699 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"4700 behaves like denying access to dependency proxy image ttl policy4701 raises Gitlab::Graphql::Errors::ResourceNotAvailable4702 without existing dependency proxy image ttl policy4703 user_role: :owner, shared_examples_name: "creating the dependency proxy image ttl policy"4704 behaves like creating the dependency proxy image ttl policy4705 creates a new package setting4706 saves the settings4707 behaves like returning a success4708 returns the dependency proxy image ttl group policy with no errors4709 user_role: :maintainer, shared_examples_name: "denying access to dependency proxy image ttl policy"4710 behaves like denying access to dependency proxy image ttl policy4711 raises Gitlab::Graphql::Errors::ResourceNotAvailable4712 behaves like disabling admin_package feature flag4713 behaves like creating the dependency proxy image ttl policy4714 creates a new package setting4715 saves the settings4716 behaves like returning a success4717 returns the dependency proxy image ttl group policy with no errors4718 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"4719 behaves like denying access to dependency proxy image ttl policy4720 raises Gitlab::Graphql::Errors::ResourceNotAvailable4721 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"4722 behaves like denying access to dependency proxy image ttl policy4723 raises Gitlab::Graphql::Errors::ResourceNotAvailable4724 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"4725 behaves like denying access to dependency proxy image ttl policy4726 raises Gitlab::Graphql::Errors::ResourceNotAvailable4727 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"4728 behaves like denying access to dependency proxy image ttl policy4729 raises Gitlab::Graphql::Errors::ResourceNotAvailable4730Gitlab::Checks::DiffCheck4731 #validate!4732 when ref is not tag or branch ref4733 does not call find_changed_paths4734 when commits is empty4735 does not call find_changed_paths4736 when commits include merge commit4737 when merge commit does not include additional changes4738 checks the additional changes4739 when merge commit includes additional changes4740 checks the additional changes4741 when commits is not empty4742 when deletion is true4743 does not call find_changed_paths4744 with LFS not enabled4745 does not invoke :lfs_file_locks_validation4746 with LFS enabled4747 when change is sent by a different user4748 raises an error if the user is not allowed to update the file4749 when change is sent by the author of the lock4750 doesn't raise any error4751 when a merge commit merged a file locked by another user4752 doesn't raise any error4753 when a merge commit includes additional file locked by another user4754 does raise an error4755Gitlab::Diff::PositionTracer4756 #trace4757 position is on text4758 calls LineStrategy#trace4759 position is not on text4760 calls ImageStrategy#trace4761 position on file4762 calls ImageStrategy#trace4763 diffs methods4764 #ac_diffs4765 returns the diffs between the base of old and new diff4766 #bd_diffs4767 returns the diffs between the HEAD of old and new diff4768 #cd_diffs4769 returns the diffs in the new diff4770 when requesting diffs4771 when remove_request_stats_for_tracing is true4772 ac diffs4773 behaves like it does not call diff stats4774 does not call diff stats4775 bd diffs4776 behaves like it does not call diff stats4777 does not call diff stats4778 cd diffs4779 behaves like it does not call diff stats4780 does not call diff stats4781 when remove_request_stats_for_tracing is false4782 ac diffs4783 behaves like it calls diff stats4784 calls diff stats4785 bd diffs4786 behaves like it calls diff stats4787 calls diff stats4788 cd diffs4789 behaves like it calls diff stats4790 calls diff stats4791Packages::Nuget::SyncMetadatumService4792 #execute4793 creates a nuget metadatum4794 behaves like saving metadatum attributes4795 saves nuget metadatum4796 with exisiting nuget metadatum4797 does not create a nuget metadatum4798 behaves like saving metadatum attributes4799 saves nuget metadatum4800 with empty metadata4801 destroys the nuget metadatum4802 with metadata containing only authors and description4803 updates the nuget metadatum4804 with too long metadata4805 truncates authors and description to the maximum length and logs its info4806DeployKeys::BasicDeployKeyEntity4807 does not return an owner payload with_owner option not passed in4808 returns deploy keys4809 is expected to eq {:almost_orphaned=>false, :can_edit=>false, :created_at=>2023-10-20 08:51:57.585054360 +0000, :destro...Q", :id=>2, :title=>"My title 583", :updated_at=>2023-10-20 08:51:57.585054360 +0000, :user_id=>nil}4810 user is an admin4811 when admin mode is enabled4812 is expected to include {:can_edit => true}4813 when admin mode is disabled4814 is expected not to include {:can_edit => true}4815 user is a project maintainer4816 project deploy key4817 is expected to include {:can_edit => true}4818 public deploy key4819 is expected to include {:can_edit => true}4820 with_owner option4821 does not return an owner payload when it is set to false4822 when with_owner is set to true4823 returns an owner payload4824 does not return an owner if current_user cannot read the owner4825Gitlab::ImportExport::CommandLineUtil4826 #download_or_copy_upload4827 when the upload is local4828 copies the file4829 when the upload is remote4830 downloads the file4831 #download4832 a non-localhost uri4833 with ok status code4834 gets the contents4835 streams the contents via Gitlab::HTTP4836 does not get the content over the size_limit4837 gets the content within the size_limit4838 with a redirect status code MOVED_PERMANENTLY4839 logs the redirect4840 with a redirect status code FOUND4841 logs the redirect4842 with a redirect status code SEE_OTHER4843 logs the redirect4844 with a redirect status code TEMPORARY_REDIRECT4845 logs the redirect4846 with an invalid status code ACCEPTED4847 throws an error4848 with an invalid status code UNAUTHORIZED4849 throws an error4850 with an invalid status code BAD_REQUEST4851 throws an error4852 a localhost uri4853 throws a blocked url error4854 for object_storage uri4855 gets the content4856 #gzip4857 compresses specified file4858 when exception occurs4859 raises an exception4860 #gunzip4861 decompresses specified file4862 when exception occurs4863 raises an exception4864 #tar_cf4865 archives a folder without compression4866 when something goes wrong4867 raises an error4868 #untar_zxf4869 has the right mask for project.json4870 has the right mask for uploads4871 behaves like deletes symlinks4872 deletes the symlinks4873 behaves like handles shared hard links4874 raises an exception and deletes the extraction dir4875 #untar_xf4876 extracts archive without decompression4877 behaves like deletes symlinks4878 deletes the symlinks4879 behaves like handles shared hard links4880 raises an exception and deletes the extraction dir4881 when something goes wrong4882 raises an error4883 returns false and includes error status4884Types::MergeRequestType4885 is expected to expose permissions using Types::PermissionTypes::MergeRequest4886 is expected to require graphql authorizations :read_merge_request4887 is expected to include Types::Notes::NoteableInterface4888 is expected to include Types::CurrentUserTodos4889 is expected to include Types::TodoableInterface4890 has the expected fields4891 #pipelines4892 is expected to have attributes {:max_page_size => 500}4893 #diff_stats_summary4894 when MR metrics has additions and deletions4895 pulls out data from metrics object4896 #diverged_from_target_branch4897 delegates the diverged_from_target_branch? call to the merge request entity4898 merge_status_enum4899 has the type MergeStatus4900 when the the DB value is preparing4901 serializes correctly4902 when the the DB value is unchecked4903 serializes correctly4904 when the the DB value is cannot_be_merged_recheck4905 serializes correctly4906 when the the DB value is checking4907 serializes correctly4908 when the the DB value is cannot_be_merged_rechecking4909 serializes correctly4910 when the the DB value is can_be_merged4911 serializes correctly4912 when the the DB value is cannot_be_merged4913 serializes correctly4914 #merge_user4915 when MR is merged4916 is not nil4917 when MR is set to merge when pipeline succeeds4918 is not nil4919Mutations::Ci::Runner::Update4920 is expected to require graphql authorizations :update_runner4921 #resolve4922 when the user cannot admin the runner4923 generates an error4924 when required arguments are missing4925 raises an error4926 when user can update runner4927 with valid arguments4928 updates runner with correct values4929 with associatedProjects argument4930 with id set to project runner4931 updates runner attributes and project relationships4932 with missing permissions on one of the new projects4933 does not update runner4934 with an empty list of projects4935 removes project relationships4936 with id set to instance runner4937 raises error4938 with non-existing project ID in associatedProjects argument4939 does not change associated projects4940 with out-of-range maximum_timeout and missing tag_list4941 returns a descriptive error4942 with too long maintenance note4943 returns a descriptive error4944ForkNetwork4945 #add_root_as_member4946 adds the root project as a member when creating a new root network4947 #find_fork_in4948 finds all fork of the current network in al collection4949 #merge_requests4950 finds merge requests within the fork network4951 for a deleted project4952 keeps the fork network4953 allows multiple fork networks where the root project is deleted4954RuboCop::Cop::Graphql::OldTypes4955 # order random4956 does not add an offense for uses outside of field or argument4957 does not add an offense for other types in arguments4958 does not add an offense for other types in fields4959 old_type: "GraphQL::STRING_TYPE", message: "Avoid using GraphQL::STRING_TYPE. Use GraphQL::Types::String instead"4960 fields4961 adds an offense when an old type is used4962 adds an offense when an old type is used with other keywords4963 arguments4964 adds an offense when an old type is used4965 adds an offense when an old type is used with other keywords4966 old_type: "::GraphQL::INT_TYPE", message: "Avoid using GraphQL::INT_TYPE. Use GraphQL::Types::Int instead"4967 fields4968 adds an offense when an old type is used4969 adds an offense when an old type is used with other keywords4970 arguments4971 adds an offense when an old type is used4972 adds an offense when an old type is used with other keywords4973 old_type: "GraphQL::ID_TYPE", message: "Avoid using GraphQL::ID_TYPE. Use GraphQL::Types::ID instead"4974 fields4975 adds an offense when an old type is used4976 adds an offense when an old type is used with other keywords4977 arguments4978 adds an offense when an old type is used4979 adds an offense when an old type is used with other keywords4980 old_type: "GraphQL::FLOAT_TYPE", message: "Avoid using GraphQL::FLOAT_TYPE. Use GraphQL::Types::Float instead"4981 fields4982 adds an offense when an old type is used4983 adds an offense when an old type is used with other keywords4984 arguments4985 adds an offense when an old type is used4986 adds an offense when an old type is used with other keywords4987 old_type: "GraphQL::BOOLEAN_TYPE", message: "Avoid using GraphQL::BOOLEAN_TYPE. Use GraphQL::Types::Boolean instead"4988 fields4989 adds an offense when an old type is used4990 adds an offense when an old type is used with other keywords4991 arguments4992 adds an offense when an old type is used4993 adds an offense when an old type is used with other keywords4994 old_type: "::GraphQL::FLOAT_TYPE", message: "Avoid using GraphQL::FLOAT_TYPE. Use GraphQL::Types::Float instead"4995 fields4996 adds an offense when an old type is used4997 adds an offense when an old type is used with other keywords4998 arguments4999 adds an offense when an old type is used5000 adds an offense when an old type is used with other keywords5001 old_type: "::GraphQL::ID_TYPE", message: "Avoid using GraphQL::ID_TYPE. Use GraphQL::Types::ID instead"5002 fields5003 adds an offense when an old type is used5004 adds an offense when an old type is used with other keywords5005 arguments5006 adds an offense when an old type is used5007 adds an offense when an old type is used with other keywords5008 old_type: "GraphQL::INT_TYPE", message: "Avoid using GraphQL::INT_TYPE. Use GraphQL::Types::Int instead"5009 fields5010 adds an offense when an old type is used5011 adds an offense when an old type is used with other keywords5012 arguments5013 adds an offense when an old type is used5014 adds an offense when an old type is used with other keywords5015 old_type: "::GraphQL::STRING_TYPE", message: "Avoid using GraphQL::STRING_TYPE. Use GraphQL::Types::String instead"5016 fields5017 adds an offense when an old type is used5018 adds an offense when an old type is used with other keywords5019 arguments5020 adds an offense when an old type is used5021 adds an offense when an old type is used with other keywords5022 old_type: "::GraphQL::BOOLEAN_TYPE", message: "Avoid using GraphQL::BOOLEAN_TYPE. Use GraphQL::Types::Boolean instead"5023 fields5024 adds an offense when an old type is used5025 adds an offense when an old type is used with other keywords5026 arguments5027 adds an offense when an old type is used5028 adds an offense when an old type is used with other keywords5029SnippetInputAction5030 validations5031 action: :create, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5032 is expected to equal true5033 action: :move, file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5034 is expected to equal true5035 action: :delete, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5036 is expected to equal true5037 action: :update, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5038 is expected to equal true5039 action: :foo, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5040 is expected to include :action5041 action: "create", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5042 is expected to equal true5043 action: "move", file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5044 is expected to equal true5045 action: "delete", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5046 is expected to equal true5047 action: "update", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5048 is expected to equal true5049 action: "foo", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5050 is expected to include :action5051 action: nil, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5052 is expected to include :action5053 action: "", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5054 is expected to include :action5055 action: :move, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: false, invalid_field: :previous_path5056 is expected to include :previous_path5057 action: :move, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: false, invalid_field: :previous_path5058 is expected to include :previous_path5059 action: :move, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5060 is expected to include :file_path5061 action: :move, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5062 is expected to equal true5063 action: :move, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5064 is expected to equal true5065 action: :move, file_path: nil, content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5066 is expected to equal true5067 action: :move, file_path: "foobar", content: nil, previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5068 is expected to equal true5069 action: :move, file_path: "foobar", content: "", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5070 is expected to equal true5071 action: :create, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5072 is expected to include :content5073 action: :create, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5074 is expected to include :content5075 action: :create, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5076 is expected to equal true5077 action: :create, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5078 is expected to equal true5079 action: :update, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5080 is expected to include :content5081 action: :update, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5082 is expected to include :content5083 action: :update, file_path: "other", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5084 is expected to include :file_path5085 action: :update, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: true, invalid_field: nil5086 is expected to equal true5087 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: true, invalid_field: nil5088 is expected to equal true5089 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :update, is_valid: true, invalid_field: nil5090 is expected to equal true5091 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "update", is_valid: true, invalid_field: nil5092 is expected to equal true5093 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update], is_valid: true, invalid_field: nil5094 is expected to equal true5095 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update, :create], is_valid: true, invalid_field: nil5096 is expected to equal true5097 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :create, is_valid: false, invalid_field: :action5098 is expected to include :action5099 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "create", is_valid: false, invalid_field: :action5100 is expected to include :action5101 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:create], is_valid: false, invalid_field: :action5102 is expected to include :action5103 action: :foo, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :foo, is_valid: false, invalid_field: :action5104 is expected to include :action5105 #to_commit_action5106 transforms attributes to commit action5107 action is update5108 when previous_path is present5109 returns the existing previous_path5110 when previous_path is not present5111 assigns the file_path to the previous_path5112Gitlab::Ci::Reports::CodequalityReportsComparer5113 #status5114 when head report has an error5115 returns status failed5116 when head report does not have errors5117 returns status success5118 when head report does not exist5119 returns status not found5120 when base report does not exist5121 returns status success5122 #errors_count5123 when head report has an error5124 returns the number of new errors5125 when head report does not have an error5126 returns zero5127 #resolved_count5128 when base report has an error and head has a different error5129 counts the base report error as resolved5130 when base report has errors head has no errors5131 counts the base report errors as resolved5132 when base report has errors and head has the same error5133 returns zero5134 when base report does not have errors and head has errors5135 returns zero5136 when base report is nil5137 returns zero5138 #total_count5139 when base report has an error5140 returns zero5141 when head report has an error5142 includes the head report error in the count5143 when base report has errors and head report has errors5144 includes errors in the count5145 when base report has errors and head report has the same error5146 includes errors in the count5147 when base report is nil5148 returns zero5149 #existing_errors5150 when base report has errors and head has the same error5151 includes the base report errors sorted by severity5152 when base report has errors and head has a different error5153 returns an empty array5154 when base report does not have errors and head has errors5155 returns an empty array5156 when base report is nil5157 returns an empty array5158 #new_errors5159 when base report has errors and head has more errors5160 includes errors not found in the base report sorted by severity5161 when base report has an error and head has no errors5162 returns an empty array5163 when base report does not have errors and head has errors5164 returns the head report error5165 when base report is nil5166 returns an empty array5167 #resolved_errors5168 when base report errors are still found in the head report5169 returns an empty array5170 when base report has errors and head has a different error5171 returns the base report errors not found in the head report, sorted by severity5172 when base report does not have errors and head has errors5173 returns an empty array5174 when base report is nil5175 returns an empty array5176Gitlab::Search::RecentIssues5177 behaves like search recent items5178 #log_view5179 adds the item to the recent items5180 removes an item when it exceeds the size items_limit5181 expires the items after expires_after5182 does not include results logged for another user5183 #search5184 matches partial text in the item title5185 returns results sorted by recently viewed5186 does not leak items you no longer have access to5187 limits results to 5 items5188Gitlab::Ci::Status::Build::Stop5189 #label5190 is expected to eq "manual stop action"5191 action details5192 #has_action?5193 when user is allowed to update build5194 is expected to have action5195 when user is not allowed to update build5196 is expected not to have action5197 #action_path5198 is expected to include "164/play"5199 #action_icon5200 is expected to eq "stop"5201 #action_title5202 is expected to eq "Stop"5203 #action_button_title5204 is expected to eq "Stop this environment"5205 .matches?5206 when build is playable5207 when build stops an environment5208 is a correct match5209 when build does not stop an environment5210 does not match5211 when build is not playable5212 does not match5213 #status_tooltip5214 does not override status status_tooltip5215 #badge_tooltip5216 does not override status badge_tooltip5217JoinedGroupsFinder5218 #execute5219 without a user5220 only shows public groups from profile owner5221 with a user5222 when the profile visitor is in the private group5223 only shows groups where both users are authorized to see5224 if profile visitor is in one of the private group projects5225 shows group5226 external users5227 if not a member5228 does not show internal groups5229 if authorized5230 shows internal groups if authorized5231gitlab:ldap:rename_provider rake task5232 completes without error5233gitlab:ldap:secret rake tasks5234 :show5235 displays error when file does not exist5236 displays error when key does not exist5237 displays error when key is changed5238 outputs the unencrypted content when present5239 edit5240# main:5241# password: '123'5242# bind_dn: 'gitlab-adm'5243 creates encrypted file5244 displays error when key does not exist5245 displays error when key is changed5246 displays error when write directory does not exist5247somevalue shows a warning when content is invalid5248 displays error when $EDITOR is not set5249 write5250 creates encrypted file from stdin5251 displays error when key does not exist5252 displays error when write directory does not exist5253somevalue shows a warning when content is invalid5254Integrations::Youtrack5255 Validations5256 when integration is active5257 is expected to validate that :project_url cannot be empty/falsy5258 is expected to validate that :issues_url cannot be empty/falsy5259 behaves like issue tracker integration URL attribute5260 is expected to allow :project_url to be ‹"https://example.com"›5261 is expected not to allow :project_url to be ‹"example.com"›5262 is expected not to allow :project_url to be ‹"ftp://example.com"›5263 is expected not to allow :project_url to be ‹"herp-and-derp"›5264 behaves like issue tracker integration URL attribute5265 is expected to allow :issues_url to be ‹"https://example.com"›5266 is expected not to allow :issues_url to be ‹"example.com"›5267 is expected not to allow :issues_url to be ‹"ftp://example.com"›5268 is expected not to allow :issues_url to be ‹"herp-and-derp"›5269 when integration is inactive5270 is expected not to validate that :project_url cannot be empty/falsy5271 is expected not to validate that :issues_url cannot be empty/falsy5272 #reference_pattern5273 does allow project prefix on the reference5274 allows lowercase project key on the reference5275 behaves like allows project key on reference pattern5276 allows underscores in the project name5277 allows numbers in the project name5278 requires the project name to begin with A-Z5279 does not allow issue number to finish with a letter5280 #fields5281 only returns the project_url and issues_url fields5282Gitlab::ImportExport::LfsRestorer5283 #restore5284 when the archive contains lfs files5285 succeeds5286 does not create a new `LfsObject` records, as one already exists5287 creates new `LfsObjectsProject` records in order to link the project to the existing `LfsObject`5288 restores the correct `LfsObject` records5289 restores the correct `LfsObjectsProject` records for the project5290 assigns the file correctly5291 when there is not an existing `LfsObject`5292 creates a new lfs object5293 stores the upload5294 when there is no lfs-objects.json file5295 restores the correct `LfsObject` records5296 restores a single `LfsObjectsProject` record for the project with "project" for the `repository_type`5297 without any LFS-objects5298 succeeds5299Gitlab::Database::Reindexing::GrafanaNotifier5300 #notify_start5301 when Grafana is configured using application settings5302 behaves like interacting with Grafana annotations API5303 POSTs a JSON payload5304 on error5305 does not raise the error and returns false5306 when request was not successful5307 returns false5308 without api_key5309 does not post anything5310 without api_url5311 does not post anything5312 when there is no additional tag5313 behaves like interacting with Grafana annotations API5314 POSTs a JSON payload5315 on error5316 does not raise the error and returns false5317 when request was not successful5318 returns false5319 without api_key5320 does not post anything5321 without api_url5322 does not post anything5323 additional tag is provided5324 behaves like interacting with Grafana annotations API5325 POSTs a JSON payload5326 on error5327 does not raise the error and returns false5328 when request was not successful5329 returns false5330 without api_key5331 does not post anything5332 without api_url5333 does not post anything5334 #notify_end5335 when Grafana is configured using application settings5336 behaves like interacting with Grafana annotations API5337 POSTs a JSON payload5338 on error5339 does not raise the error and returns false5340 when request was not successful5341 returns false5342 without api_key5343 does not post anything5344 without api_url5345 does not post anything5346 when there is no additional tag5347 behaves like interacting with Grafana annotations API5348 POSTs a JSON payload5349 on error5350 does not raise the error and returns false5351 when request was not successful5352 returns false5353 without api_key5354 does not post anything5355 without api_url5356 does not post anything5357 additional tag is provided5358 behaves like interacting with Grafana annotations API5359 POSTs a JSON payload5360 on error5361 does not raise the error and returns false5362 when request was not successful5363 returns false5364 without api_key5365 does not post anything5366 without api_url5367 does not post anything5368Notes::PostProcessService5369 #execute5370 is expected to receive execute(*(any args)) 1 time5371 with a confidential issue5372 doesn't call note hooks/integrations5373 calls confidential-note hooks/integrations5374 when the noteable is a design5375 when the note is the start of a new discussion5376 creates a new system note5377 when the note is a reply within a discussion5378 does not create a new system note5379Ci::TriggerPolicy5380 #rules5381 when owner is an user5382 when user is maintainer of the project5383 is expected to be allowed :manage_trigger5384 is expected to be allowed :admin_trigger5385 when owner is another user5386 when user is maintainer of the project5387 is expected to be allowed :manage_trigger5388 is expected not to be allowed :admin_trigger5389 when user is developer of the project5390 is expected not to be allowed :manage_trigger5391 is expected not to be allowed :admin_trigger5392 when user is not member of the project5393 is expected not to be allowed :manage_trigger5394 is expected not to be allowed :admin_trigger5395Gitlab::TemplateParser::AST::Identifier5396 #evaluate5397 evaluates a selector5398 returns nil if the key is not set5399 returns nil if the input is not a Hash5400 returns the current data when using the special identifier "it"5401Gitlab::TemplateParser::AST::Integer5402 #evaluate5403 evaluates a selector5404 returns nil if the index is not set5405 returns nil if the input is not an Array5406Gitlab::TemplateParser::AST::Selector5407 #evaluate5408 evaluates a selector5409 evaluates a selector that returns nil5410Gitlab::TemplateParser::AST::Variable5411 #evaluate5412 evaluates a variable5413 evaluates an undefined variable5414 evaluates the special variable "it"5415Gitlab::TemplateParser::AST::Expressions5416 #evaluate5417 evaluates all expressions5418Gitlab::TemplateParser::AST::Text5419 #evaluate5420 returns the text5421Gitlab::TemplateParser::AST::If5422 #evaluate5423 evaluates a truthy if expression without an else clause5424 evaluates a falsy if expression without an else clause5425 evaluates a falsy if expression with an else clause5426 #truthy?5427 returns true for a non-empty String5428 returns true for a non-empty Array5429 returns true for a Boolean true5430 returns false for an empty String5431 returns true for an empty Array5432 returns false for a Boolean false5433Gitlab::TemplateParser::AST::Each5434 #evaluate5435 evaluates the expression5436 returns an empty string when the input is not a collection5437 disallows too many nested loops5438gitlab:db:truncate_legacy_tables5439 # order random5440 when truncating ci tables on the main database5441 behaves like truncating legacy tables5442 when tables are not locked for writes5443 raises an error when trying to truncate the tables (PENDING: Skipping because ci is shared or doesn't not exist)5444 when tables are locked for writes5445 calls TablesTruncate with the correct parameters and default minimum batch size (PENDING: Skipping because ci is shared or doesn't not exist)5446 truncates the legacy table (PENDING: Skipping because ci is shared or doesn't not exist)5447 does not truncate the table that belongs to the connection schema (PENDING: Skipping because ci is shared or doesn't not exist)5448 when running in dry_run mode5449 does not truncate any tables (PENDING: Skipping because ci is shared or doesn't not exist)5450 prints the truncation sql statement to the output (PENDING: Skipping because ci is shared or doesn't not exist)5451 when passing until_table parameter via environment variable5452 sends the table name to TablesTruncate (PENDING: Skipping because ci is shared or doesn't not exist)5453 when truncating main tables on the ci database5454 behaves like truncating legacy tables5455 when tables are not locked for writes5456 raises an error when trying to truncate the tables (PENDING: Skipping because ci is shared or doesn't not exist)5457 when tables are locked for writes5458 calls TablesTruncate with the correct parameters and default minimum batch size (PENDING: Skipping because ci is shared or doesn't not exist)5459 truncates the legacy table (PENDING: Skipping because ci is shared or doesn't not exist)5460 does not truncate the table that belongs to the connection schema (PENDING: Skipping because ci is shared or doesn't not exist)5461 when running in dry_run mode5462 does not truncate any tables (PENDING: Skipping because ci is shared or doesn't not exist)5463 prints the truncation sql statement to the output (PENDING: Skipping because ci is shared or doesn't not exist)5464 when passing until_table parameter via environment variable5465 sends the table name to TablesTruncate (PENDING: Skipping because ci is shared or doesn't not exist)5466CustomerRelations::Organization5467 associations5468 is expected to belong to group required: false5469 validations5470 is expected to validate that :group cannot be empty/falsy5471 is expected to validate that :name cannot be empty/falsy5472 is expected to validate that :name is case-insensitively unique within the scope of :group_id5473 is expected to validate that the length of :name is at most 2555474 is expected to validate that the length of :description is at most 10245475 #root_group5476 when root group5477 is expected to be valid5478 when subgroup5479 is expected to be invalid5480 #name5481 strips name5482 #find_by_name5483 strips name5484 #self.move_to_root_group5485 moves organizations with unique names and deletes the rest5486 updates contact.organization_id for dupes and leaves the rest untouched5487 .search5488 when search term is empty5489 returns all group crm_organizations5490 when search term is not empty5491 when searching for name5492 is expected to contain exactly #<CustomerRelations::Organization id: 17, group_id: 3992, created_at: "2023-10-20 08:53:32.311281185 ...53:32.311281185 +0000", state: "active", default_rate: nil, name: "ABC_st", description: [FILTERED]>5493 when searching for description5494 is expected to contain exactly #<CustomerRelations::Organization id: 16, group_id: 3992, created_at: "2023-10-20 08:53:32.306160865 ...:53:32.306160865 +0000", state: "inactive", default_rate: nil, name: "DEF", description: [FILTERED]>5495 when searching for name and description5496 is expected to contain exactly #<CustomerRelations::Organization id: 16, group_id: 3992, created_at: "2023-10-20 08:53:32.306160865 ...:53:32.306160865 +0000", state: "inactive", default_rate: nil, name: "DEF", description: [FILTERED]> and #<CustomerRelations::Organization id: 17, group_id: 3992, created_at: "2023-10-20 08:53:32.311281185 ...53:32.311281185 +0000", state: "active", default_rate: nil, name: "ABC_st", description: [FILTERED]>5497 .search_by_state5498 when searching for crm_organizations state5499 returns only inactive crm_organizations5500 returns only active crm_organizations5501 .counts_by_state5502 returns correct crm_organization counts5503 returns 0 with no results5504 sorting5505 .sort_by_name5506 sorts them by name in ascendent order5507 .sort_by_field5508 sorts them by description in descending order5509RuboCop::Cop::StaticTranslationDefinition5510 # order random5511 ignore5512 code: "CONSTANT_1 = __(\"a\")"5513 does not register an offense5514 code: "CONSTANT_2 = s__(\"a\")"5515 does not register an offense5516 code: "CONSTANT_3 = n__(\"a\")"5517 does not register an offense5518 code: "CONSTANT_var = _(code)"5519 does not register an offense5520 code: "CONSTANT_int = _(1)"5521 does not register an offense5522 code: "CONSTANT_none = _()"5523 does not register an offense5524 code: "class MyClass\n def self.method\n @cache ||= { hello: -> { _(\"hello\") } }\n end\nend\n"5525 does not register an offense5526 code: "class MyClass\n def self.method\n @cache ||= { hello: proc { _(\"hello\") } }\n end\nend\n"5527 does not register an offense5528 code: "class MyClass\n def method\n @cache ||= { hello: _(\"hello\") }\n end\nend\n"5529 does not register an offense5530 code: "def method\n s_('a')\nend\n"5531 does not register an offense5532 code: "class MyClass\n VALID = -> {\n s_('hi')\n }\nend\n"5533 does not register an offense5534 code: "class MyClass\n def hello\n {\n a: _('hi')\n }\n end\nend\n"5535 does not register an offense5536 code: "SomeClass = Struct.new do\n def text\n _('Some translated text')\n end\nend\n"5537 does not register an offense5538 code: "Struct.new('SomeClass') do\n def text\n _('Some translated text')\n end\nend\n"5539 does not register an offense5540 code: "class MyClass\n field :foo, title: -> { _('A title') }\nend\n"5541 does not register an offense5542 code: "included do\n put do\n _('b')\n end\nend\nclass_methods do\n expose do\n _('b')\n end\nend\n"5543 does not register an offense5544 offenses5545 code: "A = _(\"a\")\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n"5546 registers an offense5547 code: "B = s_(\"b\")\n ^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n"5548 registers an offense5549 code: "C = n_(\"c\")\n ^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n"5550 registers an offense5551 code: "A = _('a' \\\n ^^^^^^^ [...]\n 'b')\n"5552 registers an offense5553 code: "A = _(\"a\#{s}\")\n ^^^^^^^^^^ [...]\n"5554 registers an offense5555 code: "class MyClass\n def self.translations\n @cache ||= { hello: _(\"hello\") }\n ^^^^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n end\nend\n"5556 registers an offense5557 code: "module MyModule\n A = {\n b: {\n c: _(\"a\")\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n }\n }\nend\n"5558 registers an offense5559 code: "class MyClass\n B = [\n [\n s_(\"a\")\n ^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \n ]\n ]\nend\n"5560 registers an offense5561 code: "class MyClass\n field :foo, title: _('A title')\n ^^^^^^^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \nend\n"5562 registers an offense5563 code: "included do\n _('a')\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \nend\nprepended do\n self.var = _('a')\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \nend\nclass_methods do\n _('a')\n ^^^^^^ Translation is defined in static scope. Keep translations dynamic. See https://docs.gitlab.com/ee/development/i18n/externalization.html#keep-translations-dynamic \nend\n"5564 registers an offense5565CustomerRelations::IssueContact5566 is expected to be valid5567 associations5568 is expected to belong to issue required: true5569 is expected to belong to contact required: true5570 factory5571 for root groups5572 uses objects from the same group5573 for subgroups5574 builds using the root ancestor5575 validation5576 fails when the contact group is unrelated to the issue group5577 succeeds when the contact belongs to a root group and is the same as the issue group5578 succeeds when the contact belongs to a root group and it is an ancestor of the issue group5579 #self.find_contact_ids_by_emails5580 returns ids of contacts from issue5581 does not return ids of contacts from other issues5582 raises ArgumentError when called with too many emails5583 .delete_for_project5584 destroys all issue_contacts for project5585 .delete_for_group5586 destroys all issue_contacts for projects in group and subgroups5587Mutations::Issues::SetEscalationStatus5588 #resolve5589 behaves like permission level for issue mutation is correctly verified5590 when the user is not a project member5591 behaves like when the user does not have access to the resource5592 raises an error5593 even if assigned to the issue5594 does not modify issue5595 even if author of the issue5596 does not modify issue5597 when the user is a project member5598 with guest role5599 behaves like when the user does not have access to the resource5600 raises an error5601 even if assigned to the issue5602 does not modify issue5603 even if author of the issue5604 does not modify issue5605 when the user can update the issue5606 behaves like permission level for issue mutation is correctly verified5607 when the user is not a project member5608 behaves like when the user does not have access to the resource5609 raises an error5610 even if assigned to the issue5611 does not modify issue5612 even if author of the issue5613 does not modify issue5614 when the user is a project member5615 with guest role5616 behaves like when the user does not have access to the resource5617 raises an error5618 even if assigned to the issue5619 does not modify issue5620 even if author of the issue5621 does not modify issue5622 when the user can update the escalation status5623 returns the issue with the escalation policy5624 returns errors when issue update fails5625 with non-incident issue is provided5626 raises an error5627Packages::Nuget::PackagesMetadataPresenter5628 #count5629 is expected to eq 15630 #items5631 avoids N+1 database queries5632 returns an array5633 returns a summary structure5634 returns the catalog entries5635 returns sorted versions5636Repositories::HousekeepingService5637 behaves like housekeeps repository5638 with a clean redis state5639 #execute5640 enqueues a sidekiq job5641 yields the block if given5642 resets counter after execution5643 runs the task specifically requested5644 when no lease can be obtained5645 does not enqueue a job5646 does not reset pushes_since_gc5647 does not yield5648 task type5649 goes through all three housekeeping tasks, executing only the highest task when there is overlap5650 #needed?5651 when the count is low enough5652 when the count is high enough5653 when incremental repack period is not multiple of gc period5654 #increment!5655 increments the pushes_since_gc counter5656 behaves like housekeeps repository5657 with a clean redis state5658 #execute5659 enqueues a sidekiq job5660 yields the block if given5661 resets counter after execution5662 runs the task specifically requested5663 when no lease can be obtained5664 does not enqueue a job5665 does not reset pushes_since_gc5666 does not yield5667 task type5668 goes through all three housekeeping tasks, executing only the highest task when there is overlap5669 #needed?5670 when the count is low enough5671 when the count is high enough5672 when incremental repack period is not multiple of gc period5673 #increment!5674 increments the pushes_since_gc counter5675EventPresenter5676 #resource_parent_name5677 with group event5678 is expected to eq "group666"5679 with project label5680 is expected to eq "group666 / Project-1039 Name"5681 #target_link_options5682 with group event5683 is expected to eq [#<Group id:4045 @group666>, #<Milestone id:2 group666/project-1039%"My title 628">]5684 with project label5685 is expected to eq [#<Project id:1003 group666/project-1039>>, #<Milestone id:2 group666/project-1039%"My title 628">]5686 #target_type_name5687 returns design for a design event5688 returns project for a project event5689 returns milestone for a milestone event5690 returns the issue_type for issue events5691 returns the issue_type for work item events5692 #note_target_type_name5693 returns design for an event on a comment on a design5694 returns nil for an event without a target5695 returns issue for an issue comment event5696 #push_activity_description5697 when event is a regular event5698 is expected to be nil5699 when event is a push event5700 when it is an individual event5701 is expected to eq "pushed to branch"5702 when it is a batch event5703 is expected to eq "pushed to 1 branch"5704 #batch_push?5705 when event is a regular event5706 is expected to be falsey5707 when event is a push event5708 when it is an individual event5709 is expected to be falsey5710 when it is a batch event5711 is expected to be truthy5712 #linked_to_reference?5713 when event is a regular event5714 is expected to be falsey5715 when event is a push event5716 when event belongs to group5717 is expected to be falsey5718 when event belongs to project5719 is expected to be falsey5720 when matching tag exists5721 is expected to be truthy5722 when matching branch exists5723 is expected to be truthy5724Gitlab::Diff::Rendered::Notebook::DiffFileHelper5725 #strip_diff_frontmatter5726 diff: "FileLine1\nFileLine2\n@@ -1,76 +1,74 @@\nhello\n", result: "@@ -1,76 +1,74 @@\nhello\n"5727 is expected to eq "@@ -1,76 +1,74 @@\nhello\n"5728 diff: "", result: nil5729 is expected to eq nil5730 diff: nil, result: nil5731 is expected to eq nil5732 #map_transformed_line_to_source5733 case: "if transformed diff is empty", transformed_blocks: [], result: 05734 is expected to eq 05735 case: "if the transformed line does not map to any in the original file", transformed_blocks: [{:source_line=>nil}], result: 05736 is expected to eq 05737 case: "if the transformed line maps to a line in the source file", transformed_blocks: [{:source_line=>3}], result: 35738 is expected to eq 35739 #image_as_rich_text5740 text does not contain image5741 is expected to be nil5742 text contains image5743 is expected to eq "<img src=\"data:image/png;base64,some_image_here\">"5744 text contains image that has malicious html5745 sanitizes the html5746 adds image to src5747 #line_positions_at_source_diff5748 case: " A A", index: 0, transformed_positions: [1, 1], mapped_positions: [1, 1]5749 is expected to eq [1, 1]5750 case: "- C ", index: 1, transformed_positions: [2, 2], mapped_positions: [3, 2]5751 is expected to eq [3, 2]5752 case: "- B ", index: 2, transformed_positions: [3, 2], mapped_positions: [2, 2]5753 is expected to eq [2, 2]5754 case: "- L ", index: 3, transformed_positions: [4, 2], mapped_positions: [0, 0]5755 is expected to eq [0, 0]5756 case: "+ D", index: 4, transformed_positions: [5, 2], mapped_positions: [4, 2]5757 is expected to eq [4, 2]5758 case: "+ J", index: 5, transformed_positions: [5, 3], mapped_positions: [0, 0]5759 is expected to eq [0, 0]5760 case: "+ E", index: 6, transformed_positions: [5, 4], mapped_positions: [4, 3]5761 is expected to eq [4, 3]5762 case: " K K", index: 7, transformed_positions: [5, 5], mapped_positions: [0, 0]5763 is expected to eq [0, 0]5764 case: " F F", index: 8, transformed_positions: [6, 6], mapped_positions: [4, 4]5765 is expected to eq [4, 4]5766 #lines_in_source_diff5767 old_lines: [1, 2, 2], new_lines: [1, 1, 4], is_deleted: false, is_new: false, existing_lines: {:from=>#<Set: {1, 2}>, :to=>#<Set: {1, 4}>}5768 is expected to eq {:from=>#<Set: {1, 2}>, :to=>#<Set: {1, 4}>}5769 old_lines: [1, 2, 2], new_lines: [1, 1, 4], is_deleted: true, is_new: false, existing_lines: {:from=>#<Set: {1, 2}>, :to=>#<Set: {}>}5770 is expected to eq {:from=>#<Set: {1, 2}>, :to=>#<Set: {}>}5771 old_lines: [1, 2, 2], new_lines: [1, 1, 4], is_deleted: false, is_new: true, existing_lines: {:from=>#<Set: {}>, :to=>#<Set: {1, 4}>}5772 is expected to eq {:from=>#<Set: {}>, :to=>#<Set: {1, 4}>}5773SnippetPresenter5774 #web_url5775 with PersonalSnippet5776 returns snippet web url5777 with ProjectSnippet5778 returns snippet web url5779 #raw_url5780 with PersonalSnippet5781 returns snippet web url5782 with ProjectSnippet5783 returns snippet web url5784 #can_read_snippet?5785 with PersonalSnippet5786 checks read_snippet5787 with ProjectSnippet5788 checks read_snippet5789 #can_update_snippet?5790 with PersonalSnippet5791 checks update_snippet5792 with ProjectSnippet5793 checks update_snippet5794 #can_admin_snippet?5795 with PersonalSnippet5796 checks admin_snippet5797 with ProjectSnippet5798 checks admin_snippet5799 #can_report_as_spam5800 returns false if the user cannot submit the snippet as spam5801 returns true if the user can submit the snippet as spam5802 #blob5803 when snippet does not have a repository5804 returns SnippetBlob5805 when snippet has a repository5806 returns repository first blob5807Ci::HasVariable5808 is expected to validate that :key cannot be empty/falsy5809 is expected to validate that the length of :key is at most 2555810 is expected to allow :key to be ‹"foo"›5811 is expected not to allow :key to be ‹"foo bar"›5812 is expected not to allow :key to be ‹"foo/bar"›5813 scopes5814 .by_key5815 is expected to contain exactly #<Ci::Variable id: 7, key: [FILTERED], value: nil, encrypted_value: "oDmGZS0nHpg17FwVJk8uUQ==\n", enc...alse, environment_scope: "*", masked: false, variable_type: "env_var", raw: false, description: nil>5816 #key=5817 when the new key is nil5818 strips leading and trailing whitespaces5819 when the new key has leadind and trailing whitespaces5820 strips leading and trailing whitespaces5821 #value5822 stores the encrypted value5823 stores an iv for value5824 stores a salt for value5825 fails to decrypt if iv is incorrect5826 #to_runner_variable5827 returns a hash for the runner5828 with RequestStore enabled5829 decrypts once5830 does not cache similar keys5831 does not cache unpersisted values5832 .order_by5833 supports ordering by key ascending5834 supports ordering by key descending5835 when order method is unknown5836 does not call reorder5837 when order method is nil5838 does not call reorder5839Gitlab::EventStore::Store5840 #subscribe5841 subscribes a worker to an event5842 subscribes multiple workers to an event5843 subscribes a worker to multiple events is separate calls5844 subscribes a worker to multiple events in a single call5845 subscribes a worker to an event with condition5846 refuses the subscription if the target is not an Event object5847 refuses the subscription if the subscriber is not a worker5848 #publish5849 when event has a subscribed worker5850 dispatches the event to the subscribed worker5851 does not raise any Sidekiq warning5852 raises and tracks an error when event is published inside a database transaction5853 refuses publishing if the target is not an Event object5854 when other workers subscribe to the same event5855 dispatches the event to each subscribed worker5856 when an error is raised5857 is rescued and tracked5858 when event has subscribed workers with condition5859 dispatches the event to the workers satisfying the condition5860 when subscription has delayed dispatching of event5861 dispatches the event to the worker after some time5862 when the event does not have any subscribers5863 returns successfully5864 does not dispatch the event to another subscription5865 subscriber5866 is a Sidekiq worker5867 handles the event5868 when the event name does not exist5869 raises an error5870 when the worker does not define handle_event method5871 raises an error5872ResolvesPipelines5873 is expected to have graphql arguments :status, :scope, :ref, :sha, :source, :updated_after, :updated_before, and :username5874 finds all pipelines5875 allows filtering by status5876 allows filtering by scope5877 allows filtering by ref5878 allows filtering by sha5879 allows filtering by username5880 does not return any pipelines if the user does not have access5881 increases field complexity based on arguments5882 filtering by source5883 does filter by source5884 returns all the pipelines5885 filtering by updated_at5886 filters by updated_after5887 filters by updated_before5888 filters by both updated_after and updated_before with valid date range5889 filters by both updated_after and updated_before with invalid date range5890Integrations::Clickup5891 # order random5892 #fields5893 only returns the project_url and issues_url fields5894 Validations5895 when integration is active5896 is expected to validate that :project_url cannot be empty/falsy5897 is expected to validate that :issues_url cannot be empty/falsy5898 behaves like issue tracker integration URL attribute5899 is expected to allow :project_url to be ‹"https://example.com"›5900 is expected not to allow :project_url to be ‹"example.com"›5901 is expected not to allow :project_url to be ‹"ftp://example.com"›5902 is expected not to allow :project_url to be ‹"herp-and-derp"›5903 behaves like issue tracker integration URL attribute5904 is expected to allow :issues_url to be ‹"https://example.com"›5905 is expected not to allow :issues_url to be ‹"example.com"›5906 is expected not to allow :issues_url to be ‹"ftp://example.com"›5907 is expected not to allow :issues_url to be ‹"herp-and-derp"›5908 when integration is inactive5909 is expected not to validate that :project_url cannot be empty/falsy5910 is expected not to validate that :issues_url cannot be empty/falsy5911 #reference_pattern5912 does allow project prefix on the reference5913 allows a hash with an alphanumeric key on the reference5914 allows a global prefix with an alphanumeric key on the reference5915Packages::Conan::PackageFileFinder5916 #execute5917 behaves like package file finder examples5918 is expected to eq #<Packages::PackageFile id: 9, package_id: 10, created_at: "2023-10-20 08:54:14.365293000 +0000", upd...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>5919 with conan_file_type5920 is expected to eq "recipe_file"5921 with conan_package_reference5922 is expected to eq #<Packages::PackageFile id: 13, package_id: 10, created_at: "2023-10-20 08:54:14.439260000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>5923 with file_name_like5924 is expected to eq #<Packages::PackageFile id: 9, package_id: 10, created_at: "2023-10-20 08:54:14.365293000 +0000", upd...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>5925 behaves like not returning pending_destruction package files5926 returns the correct package file5927 with unknown file_name5928 is expected to be nil5929 #execute!5930 behaves like package file finder examples5931 is expected to eq #<Packages::PackageFile id: 9, package_id: 10, created_at: "2023-10-20 08:54:14.365293000 +0000", upd...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>5932 with conan_file_type5933 is expected to eq "recipe_file"5934 with conan_package_reference5935 is expected to eq #<Packages::PackageFile id: 13, package_id: 10, created_at: "2023-10-20 08:54:14.439260000 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>5936 with file_name_like5937 is expected to eq #<Packages::PackageFile id: 9, package_id: 10, created_at: "2023-10-20 08:54:14.365293000 +0000", upd...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>5938 behaves like not returning pending_destruction package files5939 returns the correct package file5940 with unknown file_name5941 is expected to raise ActiveRecord::RecordNotFound5942Direct upload support5943 config_name: "artifacts"5944 when object storage is enabled5945 when direct upload is enabled5946 when provider is AWS5947/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5948/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5949/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5950/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5951/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5952/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5953 succeeds5954 when provider is Google5955/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5956/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5957/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5958/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5959/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5960/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5961 succeeds5962 when provider is AzureRM5963/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5964/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5965/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5966/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5967/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5968/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5969 succeeds5970 when connection is empty5971/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5972/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5973/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5974/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5975/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5976/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5977 raises an error5978 when other provider is used5979/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5980/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5981/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5982/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5983/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5984/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5985 raises an error5986 when connection is omitted5987/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5988/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5989/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5990/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5991/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS5992/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here5993 raises an error5994 when direct upload is disabled5995/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS5996/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here5997/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError5998/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here5999/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6000/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6001 succeeds6002 when object storage is disabled6003/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6004/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6005/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6006/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6007/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6008/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6009 succeeds6010 config_name: "lfs"6011 when object storage is enabled6012 when direct upload is enabled6013 when provider is AWS6014/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6015/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6016/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6017/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6018/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6019/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6020 succeeds6021 when provider is Google6022/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6023/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6024/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6025/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6026/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6027/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6028 succeeds6029 when provider is AzureRM6030/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6031/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6032/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6033/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6034/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6035/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6036 succeeds6037 when connection is empty6038/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6039/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6040/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6041/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6042/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6043/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6044 raises an error6045 when other provider is used6046/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6047/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6048/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6049/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6050/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6051/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6052 raises an error6053 when connection is omitted6054/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6055/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6056/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6057/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6058/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6059/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6060 raises an error6061 when direct upload is disabled6062/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6063/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6064/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6065/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6066/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6067/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6068 succeeds6069 when object storage is disabled6070/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6071/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6072/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6073/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6074/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6075/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6076 succeeds6077 config_name: "uploads"6078 when object storage is enabled6079 when direct upload is enabled6080 when provider is AWS6081/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6082/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6083/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6084/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6085/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6086/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6087 succeeds6088 when provider is Google6089/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6090/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6091/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6092/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6093/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6094/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6095 succeeds6096 when provider is AzureRM6097/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6098/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6099/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6100/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6101/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6102/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6103 succeeds6104 when connection is empty6105/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6106/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6107/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6108/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6109/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6110/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6111 raises an error6112 when other provider is used6113/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6114/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6115/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6116/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6117/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6118/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6119 raises an error6120 when connection is omitted6121/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6122/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6123/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6124/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6125/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6126/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6127 raises an error6128 when direct upload is disabled6129/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6130/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6131/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6132/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6133/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6134/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6135 succeeds6136 when object storage is disabled6137/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: already initialized constant DirectUploadsValidator::SUPPORTED_DIRECT_UPLOAD_PROVIDERS6138/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:4: warning: previous definition of SUPPORTED_DIRECT_UPLOAD_PROVIDERS was here6139/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: already initialized constant DirectUploadsValidator::ValidationError6140/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:8: warning: previous definition of ValidationError was here6141/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: already initialized constant CONFIGS6142/builds/gitlab-org/gitlab/config/initializers/direct_upload_support.rb:38: warning: previous definition of CONFIGS was here6143 succeeds6144Integrations::GooglePlay6145 # order random6146 when integration is disabled6147 #ci_variables6148 returns an empty array6149 Validations6150 when active6151 is expected to validate that :service_account_key_file_name cannot be empty/falsy6152 is expected to validate that :service_account_key cannot be empty/falsy6153 is expected to validate that :package_name cannot be empty/falsy6154 is expected to allow :service_account_key to be ‹"{\n \"type\": \"service_account\",\n \"project_id\": \"demo-app-123\",\n \"private_key_id\": \"47f0b1700983da548af6fcd37007f42996099999\",\n \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJn8w20WcN+fi5\\nIhO1BEFCv7ExK8J5rW5Pc8XpJgpQoL5cfv6qC6aS+x4maI7S4AG7diqXBLCfjlnA\\nqBzXwCRnnPtQhu+v1ehAj5fGNa7F51f9aacRNmKdHzNmWZEPDuLqq0I/Ewcsotu+\\nnb+tCYk1o2ahyPZau8JtXFZs7oZb7SrfgoSJemccxeVreGm1Dt6SM74/3qJAeHN/\\niK/v0IiQP1GS4Jxgz38XQGo+jiTpNrFcf4S0R...›6155 is expected not to allow :service_account_key to be ‹"{\"name\":\"H5bp\",\"path\":\"h5bp\",\"owner_id\":null,\"created_at\":\"2020-01-09 12:08:57 UTC\",\"updated_at\":\"2020-01-09 12:08:57 UTC\",\"description\":\"A voluptate non sequi temporibus quam at.\",\"avatar\":{\"url\":null},\"membership_lock\":false,\"share_with_group_lock\":false,\"visibility_level\":20,\"request_access_enabled\":true,\"ldap_sync_status\":\"ready\",\"ldap_sync_error\":null,\"ldap_sync_last_update_at\":null,\"ldap_sync_last_successful_update_at\":null,\"ldap_sync_last_sync...›6156 is expected to allow :package_name to be ‹"com.example.myapp"›6157 is expected to allow :package_name to be ‹"com.example.myorg.myapp"›6158 is expected to allow :package_name to be ‹"com_us.example.my_org.my_app"›6159 is expected to allow :package_name to be ‹"a.a.a"›6160 is expected to allow :package_name to be ‹"com.example"›6161 is expected not to allow :package_name to be ‹"com"›6162************************************************************************6163Warning from shoulda-matchers:6164You are using `validate_inclusion_of` to assert that a boolean column6165allows boolean values and disallows non-boolean ones. Be aware that it6166is not possible to fully test this, as boolean columns will6167automatically convert non-boolean values to boolean ones. Hence, you6168should consider removing this test.6169************************************************************************6170 is expected to validate that :google_play_protected_refs is either ‹true› or ‹false›6171 is expected not to allow :package_name to be ‹"com.example.my app"›6172 is expected not to allow :package_name to be ‹"1com.example.myapp"›6173 is expected not to allow :package_name to be ‹"com.1example.myapp"›6174 is expected not to allow :package_name to be ‹"com.example._myapp"›6175 when integration is enabled6176 #fields6177 returns custom fields6178 #test6179 returns true for a successful request6180 returns false for an invalid request6181 #help6182 renders prompt information6183 .to_param6184 returns the name of the integration6185 #ci_variables6186 returns the vars for protected branch6187 doesn't return vars for unproteced branch6188 #initialize_properties6189 when google_play_protected_refs is nil6190 sets google_play_protected_refs to true6191 when google_play_protected_refs is false6192 sets google_play_protected_refs to false6193 returns vars for unprotected ref when google_play_protected_refs is false6194LimitedCapacity::Worker6195 required methods6196 is expected to raise NotImplementedError6197 is expected to raise NotImplementedError6198 is expected to raise NotImplementedError6199 Sidekiq options6200 does not retry failed jobs6201 does not deduplicate jobs6202 .perform_with_capacity6203 enqueues jobs6204 when max_running_jobs is 06205 does not enqueue jobs6206 #perform6207 with capacity6208 calls perform_work6209 re-enqueues itself6210 reports prometheus metrics6211 updates the running set6212 with capacity and without work6213 does not re-enqueue itself6214 without capacity6215 does not call perform_work6216 does not re-enqueue itself6217 when perform_work fails6218 does not re-enqueue itself6219 removes itself from the running set6220 reports prometheus metrics6221 #remove_failed_jobs6222 removes failed jobs6223 #report_prometheus_metrics6224 reports number of running jobs6225Packages::Debian::FileEntry6226 validations6227 is expected to be valid6228 #filename6229 is expected to validate that :filename cannot be empty/falsy6230 is expected not to allow :filename to be ‹"Hé"›6231 #size6232 is expected to validate that :size cannot be empty/falsy6233 #md5sum6234 is expected to validate that :md5sum cannot be empty/falsy6235 is expected not to allow :md5sum to be ‹"12345678901234567890123456789012"›, producing a custom validation error on failure6236 #section6237 is expected to validate that :section cannot be empty/falsy6238 #priority6239 is expected to validate that :priority cannot be empty/falsy6240 #sha1sum6241 is expected to validate that :sha1sum cannot be empty/falsy6242 is expected not to allow :sha1sum to be ‹"1234567890123456789012345678901234567890"›, producing a custom validation error on failure6243 #sha256sum6244 is expected to validate that :sha256sum cannot be empty/falsy6245 is expected not to allow :sha256sum to be ‹"1234567890123456789012345678901234567890123456789012345678901234"›, producing a custom validation error on failure6246 #package_file6247 is expected to validate that :package_file cannot be empty/falsy6248 #component6249 without section6250 is expected to eq "main"6251 with empty section6252 is expected to eq "main"6253 with ruby section6254 is expected to eq "main"6255 with contrib/ruby section6256 is expected to eq "contrib"6257Types::BaseEnum6258 adds a formatted `deprecated_reason` to the subject6259 appends to the description if given6260 does not append to the description if it is absent6261 adds information about the replacement if provided6262 supports named reasons: renamed6263 supports :alpha6264 does not allow :alpha and :deprecated together6265 .from_rails_enum6266 contructs the correct values6267 .declarative_enum6268 #graphql_name6269 when the use_name is `true`6270 changes the graphql_name6271 when the use_name is `false`6272 does not change the graphql_name6273 #description6274 when the use_description is `true`6275 changes the description6276 when the use_description is `false`6277 does not change the description6278 #values6279 sets the values defined by the declarative enum6280 .enum6281 adds all enum values to #enum6282 is a HashWithIndefferentAccess6283 validations6284 raises an informative error if `deprecation_reason` is used6285 raises an error if a required property is missing6286 raises an error if milestone is not a String6287 visible?6288 defaults to true6289 when subject is deprecated6290 defaults to true6291 returns false if `remove_deprecated` is true in context6292WorkItems::DeleteTaskService6293 #execute6294 when work item params are valid6295 is expected to be success6296 deletes the work item and the related issue link6297 removes the task list item with the work item reference6298 when first operation fails6299 behaves like failing WorkItems::DeleteTaskService6300 is expected to be error6301 does not remove work item or issue links6302 returns an error message6303 when last operation fails6304 behaves like failing WorkItems::DeleteTaskService6305 is expected to be error6306 does not remove work item or issue links6307 returns an error message6308Gitlab::SidekiqDaemon::Monitor6309 #within_job6310 tracks thread, jid and worker_class6311 when job is canceled6312 does not execute a block6313 raises exception6314 #jobs6315 returns running jobs hash6316 #run_thread when notification channel not enabled6317 return directly6318 #run_thread when notification channel enabled6319 when structured logging is used6320 logs start message6321 logs stop message6322 logs StandardError message6323 logs and raises Exception message6324 when StandardError is raised6325 does retry connection6326 when message is published6327 and message is valid6328 processes cancel6329 and message is not valid json6330 skips processing6331 #stop6332#<Thread:0x00007def030fb750 /builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:56 run> terminated with exception (report_on_exception is true):6333Interrupt (Interrupt)6334 does stop the thread6335 #process_job_cancel6336 when jid is missing6337 does not run thread6338 when jid is provided6339 when jid is not found6340 does not log cancellation message6341 when jid is found6342#<Thread:0x00007deefcbee790 /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237 run> terminated with exception (report_on_exception is true):6343/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)6344 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237:in `block (6 levels) in <top (required)>'6345 does log cancellation message6346#<Thread:0x00007deefd178aa8 /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237 run> terminated with exception (report_on_exception is true):6347/builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237:in `sleep': Gitlab::SidekiqDaemon::Monitor::CancelledError (Gitlab::SidekiqDaemon::Monitor::CancelledError)6348 from /builds/gitlab-org/gitlab/spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb:237:in `block (6 levels) in <top (required)>'6349 does cancel the thread6350 .cancel_job6351 sets a redis key6352 notifies all workers6353 #notification_channel_enabled?6354 return nil when SIDEKIQ_MONITOR_WORKER is not set6355 return nil when SIDEKIQ_MONITOR_WORKER set to 06356 return 1 when SIDEKIQ_MONITOR_WORKER set to 16357Gitlab::Chat::Responder::Mattermost6358 #send_response6359 sends a response back to Slack6360 #success6361 returns the output for a successful build6362 limits the output to a fixed size6363 does not send a response if the output is empty6364 #failure6365 returns the output for a failed build6366 #scheduled_output6367 returns the output for a scheduled build6368Mutations::Todos::Create6369 #resolve6370 when target does not support todos6371 raises error6372 with issue as target6373 behaves like create todo mutation6374 when user does not have permission to create todo6375 raises error6376 when user has permission to create todo6377 creates a todo6378 with merge request as target6379 behaves like create todo mutation6380 when user does not have permission to create todo6381 raises error6382 when user has permission to create todo6383 creates a todo6384 with design as target6385 behaves like create todo mutation6386 when user does not have permission to create todo6387 raises error6388 when user has permission to create todo6389 creates a todo6390WebHooks::WebHooksHelper6391 #show_project_hook_failed_callout?6392 all conditions are met6393 is true6394 stores a value6395 one condition is not met6396 namely user is logged in6397 is false6398 namely the user has permission6399 is false6400 namely a hook has failed6401 is false6402Types::BaseObject6403 scoping items6404 paginates arrays correctly6405 filters connections correctly6406 filters polymorphic connections6407 filters interface connections6408 redacts polymorphic objects6409 paginates before scoping6410 a lazy list6411 behaves like array member redaction6412 redacts the unauthorized array member6413 a list of lazy items6414 behaves like array member redaction6415 redacts the unauthorized array member6416 an array connection of items6417 behaves like array member redaction6418 redacts the unauthorized array member6419 an array connection of items, selecting edges6420 behaves like array member redaction6421 redacts the unauthorized array member6422 .authorize6423 keeps track of the specified value6424 can not redefine the authorize value6425Resolvers::ProjectMilestonesResolver6426 #resolve6427 calls MilestonesFinder to retrieve all milestones6428 when including ancestor milestones6429 calls MilestonesFinder with correct parameters6430 by ids6431 calls MilestonesFinder with correct parameters6432 by state6433 calls MilestonesFinder with correct parameters6434 by sort6435 calls MilestonesFinder with correct parameters6436 uses offset-pagination when sorting by EXPIRED_LAST_DUE_DATE_ASC6437 uses offset-pagination when sorting by EXPIRED_LAST_DUE_DATE_DESC6438 by timeframe6439 when passing a timeframe6440 calls MilestonesFinder with correct parameters6441 when title is present6442 calls MilestonesFinder with correct parameters6443 when search_title is present6444 calls MilestonesFinder with correct parameters6445 when containing date is present6446 calls MilestonesFinder with correct parameters6447Gitlab::VisibilityLevelChecker6448 #level_restricted?6449 when visibility level is allowed6450 returns false with nil for visibility level6451 when visibility level is restricted6452 for public project6453 for non-admin user6454 returns true and visibility name6455 for admin user6456 returns false and a nil visibility level6457 overridden visibility6458 when restricted6459 returns true and visibility name6460 when misspelled6461 returns false with nil for visibility level6462 when import_data is missing6463 returns false with nil for visibility level6464Constraints::ProjectUrlConstrainer6465 #matches?6466 valid request6467 is expected to be truthy6468 invalid request6469 non-existing project6470 is expected to be falsey6471 existence_check is false6472 is expected to be truthy6473 project id ending with .git6474 is expected to be falsey6475 when the request matches a redirect route6476 and is a GET request6477 is expected to be truthy6478 and is NOT a GET request6479 is expected to be falsey6480Environments::UpdateService6481 # order random6482 #execute6483 updates the external URL6484 returns successful response6485 when setting a kubernetes namespace to the environment6486 updates the kubernetes namespace6487 returns successful response6488 when setting a flux resource path to the environment6489 updates the flux resource path6490 returns successful response6491 when setting a cluster agent to the environment6492 returns successful response6493 when user does not have permission to read the agent6494 returns an error6495 when unsetting a cluster agent of the environment6496 returns successful response6497 when params contain invalid value6498 returns an error6499 when disallowed parameter is passed6500 ignores the parameter6501 when user is reporter6502 returns an error6503API::Entities::Ci::Pipeline6504 exposes pipeline before_sha6505 exposes pipeline tag6506 exposes pipeline yaml_errors6507 exposes pipeline created_at6508 exposes pipeline updated_at6509 exposes pipeline started_at6510 exposes pipeline finished_at6511 exposes pipeline committed_at6512 exposes pipeline duration6513 exposes pipeline queued_duration6514 exposes pipeline user basic information6515 exposes pipeline detailed status6516 exposes pipeline coverage as a string6517Clusters::Applications::ActivateIntegrationWorker#perform6518 when cluster exists6519 prometheus integration6520 with cluster type: group6521 ensures Prometheus integration is activated6522 with cluster type: project6523 ensures Prometheus integration is activated6524 with cluster type: instance6525 ensures Prometheus integration is activated6526 when cluster does not exist6527 does not raise Record Not Found error6528Types::Terraform::StateVersionType6529 is expected to eq "TerraformStateVersion"6530 is expected to require graphql authorizations :read_terraform_state6531 fields6532 is expected to have graphql fields :id, :created_by_user, :job, :download_path, :serial, :created_at, and :updated_at6533 is expected to be non null6534 is expected not to be non null6535 is expected not to be non null6536 is expected not to be non null6537 is expected not to be non null6538 is expected to be non null6539 is expected to be non null6540 query6541 returns job of the latest version6542 behaves like returning latest version6543 returns latest version of terraform state6544 when user cannot read jobs6545 does not return job of the latest version6546 behaves like returning latest version6547 returns latest version of terraform state6548IssueAssignee6549 associations6550 is expected to belong to issue class_name => Issue required: false6551 is expected to belong to assignee class_name => User required: false6552 validations6553 is expected to validate that :assignee is case-sensitively unique within the scope of :issue_id6554 scopes6555 in_projects6556 returns issue assignees for given project6557 on_issues6558 returns issue assignees for given issues6559Enums::Sbom6560 # order random6561 .purl_types6562 given_package_manager: :composer, expected_purl_type: 16563 returns the expected purl_type6564 given_package_manager: "composer", expected_purl_type: 16565 returns the expected purl_type6566 given_package_manager: :conan, expected_purl_type: 26567 returns the expected purl_type6568 given_package_manager: "conan", expected_purl_type: 26569 returns the expected purl_type6570 given_package_manager: :gem, expected_purl_type: 36571 returns the expected purl_type6572 given_package_manager: :golang, expected_purl_type: 46573 returns the expected purl_type6574 given_package_manager: :maven, expected_purl_type: 56575 returns the expected purl_type6576 given_package_manager: :npm, expected_purl_type: 66577 returns the expected purl_type6578 given_package_manager: :nuget, expected_purl_type: 76579 returns the expected purl_type6580 given_package_manager: :pypi, expected_purl_type: 86581 returns the expected purl_type6582 given_package_manager: :apk, expected_purl_type: 96583 returns the expected purl_type6584 given_package_manager: :rpm, expected_purl_type: 106585 returns the expected purl_type6586 given_package_manager: :deb, expected_purl_type: 116587 returns the expected purl_type6588 given_package_manager: :cbl_mariner, expected_purl_type: 126589 returns the expected purl_type6590 given_package_manager: "unknown-pkg-manager", expected_purl_type: 06591 returns the expected purl_type6592 given_package_manager: "Python (unknown)", expected_purl_type: 06593 returns the expected purl_type6594DesignManagement::DesignsFinder6595 #execute6596 when user can not read designs of an issue6597 returns no results6598 when user can read designs of an issue6599 when design management feature is disabled6600 returns no results6601 when design management feature is enabled6602 returns the designs sorted by their relative position6603 when argument is the ids of designs6604 is expected to eq [#<DesignManagement::Design id:5 namespace1040/project-1125#1/designs[homescreen-7.jpg]>]6605 when argument is the filenames of designs6606 is expected to eq [#<DesignManagement::Design id:6 namespace1040/project-1125#1/designs[homescreen-8.jpg]>]6607 when passed empty array6608 for filenames6609 is expected to be empty6610 for ids6611 is expected to be empty6612 returning designs that existed at a particular given version6613 when argument is the first version6614 is expected to eq [#<DesignManagement::Design id:5 namespace1040/project-1125#1/designs[homescreen-7.jpg]>]6615 when arguments are version and id6616 when id is absent at version6617 is expected to eq []6618 when id is present at version6619 is expected to eq [#<DesignManagement::Design id:6 namespace1040/project-1125#1/designs[homescreen-8.jpg]>]6620 when argument is the second version6621 is expected to contain exactly #<DesignManagement::Design id:5 namespace1040/project-1125#1/designs[homescreen-7.jpg]> and #<DesignManagement::Design id:6 namespace1040/project-1125#1/designs[homescreen-8.jpg]>6622Milestones::CloseService6623 #execute6624 is expected to be valid6625 is expected to be closed6626 event6627 is expected to be truthy6628 is expected to eq #<Milestone id:8 namespace1044/project-1129%"Milestone v1.2">6629 is expected to eq "closed"6630MergeRequest::DiffCommitUser6631 validations6632 requires that names are less than 512 characters long6633 requires that Emails are less than 512 characters long6634 requires either a name or Email6635 allows setting of just a name6636 allows setting of just an Email6637 allows setting of both a name and Email6638 .prepare6639 trims a value to at most 512 characters6640 returns nil if the value is an empty string6641 .find_or_create6642 creates a new row if none exist6643 returns an existing row if one exists6644 handles concurrent inserts6645 .bulk_find_or_create6646 bulk creates missing rows and reuses existing rows6647 does not insert any data when all users exist6648 handles concurrently inserted rows6649Gitlab::Kubernetes::Deployment6650 #name6651 is expected to eq :selected6652 #labels6653 is expected to eq :selected6654 #outdated?6655 when outdated6656 is expected to be truthy6657 when up to date6658 is expected to be falsy6659 when ahead of latest6660 is expected to be falsy6661 #instances6662 when unnamed6663 returns all pods with generated names and pending6664 when number of pods is less than wanted replicas6665 returns not spawned pods as pending and unknown and running6666 when outdated6667 returns all instances as named and waiting6668 with pods of each type6669 returns all instances6670 with track label6671 when marked as stable6672 returns all instances6673 when marked as canary6674 returns all instances6675DataTransfer::ProjectDataTransferFinder6676 # order random6677 #execute6678 returns the correct number of egress6679 returns the correct values6680 when there are no results for specified dates6681 returns nothing6682 when there are no results for specified project6683 returns nothing6684 when dates are not provided6685 return all values for a project6686 when user does not have permissions6687 returns nothing6688Gitlab::Themes6689 .body_classes6690 returns a space-separated list of class names6691 .by_id6692 returns a Theme by its ID6693 .default6694 returns the default application theme6695 prevents an infinite loop when configuration default is invalid6696 .each6697 passes the block to the THEMES Array6698 theme.css_filename6699 for Indigo6700 returns an existing CSS filename6701 for Light Indigo6702 returns an existing CSS filename6703 for Blue6704 returns an existing CSS filename6705 for Light Blue6706 returns an existing CSS filename6707 for Green6708 returns an existing CSS filename6709 for Light Green6710 returns an existing CSS filename6711 for Red6712 returns an existing CSS filename6713 for Light Red6714 returns an existing CSS filename6715 for Gray6716 returns an existing CSS filename6717 for Light Gray6718 returns an existing CSS filename6719BitbucketServer::Connection6720 #get6721 returns JSON body6722 throws an exception if the response is not 2006723 throws an exception if the response is not JSON6724 throws an exception upon a network error6725 #post6726 returns JSON body6727 throws an exception if the response is not 2006728 throws an exception upon a network error6729 throws an exception if the URI is invalid6730 #delete6731 branch API6732 returns JSON body6733 throws an exception if the response is not 2006734 throws an exception upon a network error6735Gitlab::FileDetector6736 .types_in_paths6737 returns the file types for the given paths6738 does not include unrecognized file paths6739 .type_of6740 returns the type of a README without extension6741 returns the type of a README file with a recognized extension6742 returns nil for a README with unrecognized extension6743 is case insensitive6744 returns nil for a README file in a directory6745 returns the type of a changelog file6746 returns the type of a license file6747 returns nil for an UNCOPYING file6748 returns the type of a version file6749 returns the type of a .gitignore file6750 returns the type of a GitLab CI config file6751 returns the type of an avatar6752 returns the type of an issue template6753 returns the type of a merge request template6754 returns nil for an unknown file6755 returns the type of an OpenAPI spec if file name is correct6756Ci::CreatePipelineService6757 job:parallel6758 numeric6759 creates the pipeline6760 creates 3 jobs6761 matrix6762 creates the pipeline6763 creates 4 builds with the corresponding matrix variables6764 when a bridge is using parallel:matrix6765 creates the pipeline6766 creates 1 build and 4 bridges with the corresponding matrix variables6767Gitlab::Cleanup::OrphanJobArtifactFiles6768 passes on dry_run6769 errors when invalid niceness is given6770 passes correct arguments to ionice6771 finds job artifacts on disk6772 does not find pipeline artifacts on disk6773 stops when limit is reached6774 cleans even if batch is not full6775 cleans in batches6776RuboCop::Cop::PutGroupRoutesUnderScope6777 # order random6778 does not register an offense for the root route within scope6779 registers an offense when route is outside scope for `get`6780 registers an offense when route is outside scope for `delete`6781 registers an offense when route is outside scope for `resource`6782 does not register an offense when resource is deep inside the scope6783 registers an offense when route is outside scope for `resources`6784 registers an offense when route is outside scope for `post`6785 does not register an offense when resource inside the scope6786 registers an offense when route is outside scope for `put`6787 registers an offense when route is outside scope for `patch`6788 does not register an offense for the root route6789Packages::Policies::GroupPolicy6790 read_package6791 with admin6792 when admin mode is enabled6793 is expected to be allowed :read_package6794 when admin mode is disabled6795 is expected to be disallowed :read_package6796 with owner6797 is expected to be allowed :read_package6798 with maintainer6799 is expected to be allowed :read_package6800 with reporter6801 is expected to be allowed :read_package6802 with guest6803 is expected to be disallowed :read_package6804 with non member6805 is expected to be disallowed :read_package6806 with anonymous6807 is expected to be disallowed :read_package6808 deploy token access6809 when a deploy token with read_package_registry scope6810 is expected to be allowed :read_package6811 when a deploy token with write_package_registry scope6812 is expected to be allowed :read_package6813Integrations::BaseThirdPartyWiki6814 default values6815 is expected to eq :third_party_wiki6816 Validations6817 only one third party wiki per project6818 when integration is changed manually by user6819 executes the validation6820 when integration is changed internally6821 does not execute the validation6822 when integration is not on the project level6823 executes the validation6824Gitlab::Ci::Pipeline::Seed::Pipeline6825 #stages6826 returns the stage resources6827 #size6828 returns the number of jobs6829 #errors6830 when attributes are valid6831 returns nil6832 when attributes are not valid6833 returns the errors6834 #deployments_count6835 counts the jobs having an environment associated6836 #root_variables6837 returns root_variables6838Gitlab::Graphs::Commits6839 #commit_per_day6840 when range is only commits from today6841 is expected to eq 26842 when range is only commits from today6843 #commit_per_day6844 is expected to eq 26845 #duration6846 is expected to eq 06847 with commits from yesterday and today6848 #commit_per_day6849 is expected to eq 1.06850 #duration6851 is expected to eq 16852Banzai::ReferenceParser::WorkItemParser6853 # order random6854 when checking multiple work items on another project6855 behaves like no N+1 queries6856 avoids N+1 queries in #records_for_nodes6857 behaves like no project N+1 queries6858 avoids N+1 queries in #nodes_visible_to_user6859 #records_for_nodes6860 returns a Hash containing the work items for a list of nodes6861BulkImports::Tracker6862 associations6863 is expected to belong to entity class_name => BulkImports::Entity required: true inverse_of => trackers6864 validations6865 is expected to validate that :relation cannot be empty/falsy6866 is expected to validate that :relation is case-sensitively unique within the scope of :bulk_import_entity_id6867 is expected to validate that :stage cannot be empty/falsy6868 when has_next_page is true6869 validates presence of `next_page`6870 .running_trackers6871 returns trackers that are running for a given entity6872 .next_pipeline_trackers_for6873 returns empty when all the stages pipelines are finished6874 returns the not started pipeline trackers from the minimum stage number6875 #pipeline_class6876 returns the pipeline class6877 raises an error when the pipeline is not valid6878Pajamas::EmptyStateComponent6879 # order random6880 when compact6881 renders section with flex direction row6882 when description is empty6883 does not render a description6884 default6885 renders the primary action6886 renders the secondary action6887 renders image as illustration6888 renders title6889 renders description6890 renders section with flex direction column6891 when svg_path is empty6892 does not render image6893 with no buttons6894 does not render any buttons6895Gitlab::Usage::Metrics::Instrumentations::CountImportedProjectsMetric6896 with import_type gitea6897 with all time frame6898 behaves like a correct instrumented metric value and query6899 behaves like a correct instrumented metric value6900 has correct value6901 behaves like a correct instrumented metric query6902 has correct generate query6903 for 28d time frame6904 behaves like a correct instrumented metric value and query6905 behaves like a correct instrumented metric value6906 has correct value6907 behaves like a correct instrumented metric query6908 has correct generate query6909 with import_type bitbucket6910 with all time frame6911 behaves like a correct instrumented metric value and query6912 behaves like a correct instrumented metric value6913 has correct value6914 behaves like a correct instrumented metric query6915 has correct generate query6916 for 28d time frame6917 behaves like a correct instrumented metric value and query6918 behaves like a correct instrumented metric value6919 has correct value6920 behaves like a correct instrumented metric query6921 has correct generate query6922GroupImportState6923 validations6924 is expected to belong to user required: true6925 is expected to validate that :group cannot be empty/falsy6926 is expected to validate that :status cannot be empty/falsy6927 can be created without a jid6928 cannot be started without a jid6929 cannot be finished without a jid6930 can fail without a jid6931 #in_progress?6932 when the import is 'created'6933 returns true6934 when the import is 'started'6935 returns true6936 when the import is 'finished'6937 returns false6938 when the import is 'failed'6939 returns false6940 when import failed6941 when error message is present6942 truncates error message6943 when error message is missing6944 has no error message6945TaskListToggleService6946 checks Task 16947 unchecks Item 16948 checks task in loose list6949 checks task with no-break space6950 checks Another item6951 returns false if line_source does not match the text6952 tolerates \r\n line endings6953 returns false if markdown is nil6954 returns false if markdown_html is nil6955 properly handles tasks in a blockquote6956 properly handles a GitLab blockquote6957 when clicking an embedded subtask6958 properly handles it inside an unordered list6959 properly handles it inside an ordered list6960RuboCop::Cop::Migration::BatchMigrationsPostOnly6961 # order random6962 when methods appear in a post-deployment migration6963 allows 'ensure_batched_background_migration_is_finished' to be called6964 allows 'queue_batched_background_migration' to be called6965 allows 'delete_batched_background_migration' to be called6966 allows 'ensure_batched_background_migration_is_finished' to be called6967 allows arbitrary other method to be called6968 when methods appear in a regular migration6969 does not allow 'ensure_batched_background_migration_is_finished' to be called6970 does not allow 'queue_batched_background_migration' to be called6971 does not allow 'delete_batched_background_migration' to be called6972 does not allow 'ensure_batched_background_migration_is_finished' to be called6973 allows arbitrary other method to be called6974Gitlab::Auth::OAuth::IdentityLinker6975 linked identity exists6976 doesn't create new identity6977 sets #changed? to false6978 identity already linked to different user6979 #changed? returns false6980 exposes error message6981 identity needs to be created6982 creates linked identity6983 sets identity provider6984 sets identity extern_uid6985 sets #changed? to true6986Groups::GroupLinks::UpdateService#execute6987 updates existing link6988 updates project permissions6989 executes UserProjectAccessChangedService6990 with only param not requiring authorization refresh6991 does not execute UserProjectAccessChangedService6992BulkImports::Failure6993 associations6994 is expected to belong to entity required: true6995 validations6996 is expected to validate that :entity cannot be empty/falsy6997 #relation6998 when pipeline class is valid6999 returns pipeline defined relation7000 when pipeline class is invalid7001 returns default relation7002 returns demodulized, underscored, chomped string7003 when pipeline class is outside of BulkImports namespace7004 returns default relation7005Integrations::EventEntity7006 #as_json7007 with integration without fields7008 exposes correct attributes7009 with integration with fields7010 exposes correct attributes7011 with integration with fields when channels are masked7012 exposes correct attributes7013DeclarativeEnum7014 .key7015 when the argument is set7016 changes the key7017 when the argument is `nil`7018 is expected to eq :my_enum7019 .name7020 when the argument is set7021 changes the name7022 when the argument is `nil`7023 is expected to eq "MyEnumName"7024 .description7025 when the argument is set7026 changes the description7027 when the argument is `nil`7028 is expected to eq "Enum description"7029 .define7030 when there is a block given7031 when the given block tries to register the same key7032 raises a `KeyCollisionError`7033 when the given block does not try to register the same key7034 appends the new definition7035 when there is no block given7036 raises a LocalJumpError7037 .definition7038 is expected to eq {:bar=>{:description=>"description of bar", :value=>1}, :foo=>{:description=>"description of foo", :value=>0}}7039 extending the enum module7040 extends the values of the base enum module7041projects/issues/service_desk/_service_desk_info_content7042 when service desk is disabled7043 when the logged user is at least maintainer7044 shows the info including the project settings link7045 when the logged user is at only a developer7046 shows the info without the project settings link7047 when service desk is enabled7048 when the logged user is at least reporter7049 shows the info including the email address7050 when the logged user is at only a guest7051 shows the info without the email address7052 when user is not logged in7053 shows the info without the email address7054Gitlab::SetupHelper::Praefect7055 .configuration_toml7056 defaults to in memory queue7057 provides database details if wanted7058 fails when pghost is missing7059 uses the provided pghost7060 fails when pgport is missing7061 uses the provided pgport7062 fails when pguser is missing7063 uses the provided pguser7064 defaults to praefect_test if dbname is missing7065 uses the provided dbname7066 .get_config_path7067 defaults to praefect.config.toml7068 takes the provided config_filename7069Gitlab::ImportExport::Json::NdjsonReader7070 #exist?7071 given valid dir_path7072 is expected to equal true7073 given invalid dir_path7074 is expected to equal false7075 #consume_attributes7076 returns the whole root tree from parsed JSON7077 when project.json is symlink or hard link7078 link_method: :link7079 raises an error7080 link_method: :symlink7081 raises an error7082 #consume_relation7083 given any key7084 returns an Enumerator7085 key has been consumed7086 yields nothing to the Enumerator7087 with mark_as_consumed: false7088 yields every relation value to the Enumerator7089 key has not been consumed7090 relation file does not exist7091 yields nothing to the Enumerator7092 when relation file is a symlink or hard link7093 link_method: :link7094 yields nothing to the Enumerator7095 link_method: :symlink7096 yields nothing to the Enumerator7097 relation file is empty7098 yields nothing to the Enumerator7099 relation file contains multiple lines7100 yields every relation value to the Enumerator7101Ci::VariablesHelper7102 # order random7103 #ci_variable_maskable_raw_regex7104 converts to a javascript regex7105 #create_deploy_token_path7106 returns the project deploy token path7107 returns the group deploy token path7108 #ci_variable_masked?7109 when variable is provided and only_key_value is false7110 expect ci_variable_masked? to return true7111 when variable is not provided / provided and only_key_value is true7112 expect ci_variable_masked? to return false7113 #ci_variable_maskable_regex7114 converts to a javascript regex7115 #ci_variable_protected?7116 when variable is provided and only_key_value is false7117 expect ci_variable_protected? to return true7118 when variable is not provided / provided and only_key_value is true7119 is equal to the value of ci_variable_protected_by_default?7120Ci::CancelRedundantPipelinesWorker7121 # order random7122 #perform7123 calls cancel redundant pipeline service7124 if pipeline is deleted7125 does not call redundant pipeline service7126 interacting with previous pending pipelines7127 behaves like an idempotent worker7128 is labeled as idempotent7129 performs multiple times sequentially without raising an exception7130 cancels the previous pending pipeline7131ProjectHookPolicy7132 when the user is not a maintainer7133 cannot read and destroy web-hooks7134 when the user is a maintainer7135 can read and destroy web-hooks7136Gitlab::Ci::Pipeline::Chain::PopulateMetadata7137 # order random7138 with pipeline name7139 does not break the chain7140 builds pipeline_metadata7141 with empty name7142 strips whitespace from name7143 with empty name after variable substitution7144 does not save empty name7145 with variables7146 substitutes variables7147 with invalid name7148 returns error and breaks chain7149Packages::Helm::PackageFilesFinder7150 #execute7151 with empty params7152 is expected to eq [#<Packages::PackageFile id: 28, package_id: 16, created_at: "2023-10-20 08:55:58.417401486 +0000", u...m: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>]7153 with another project7154 is expected to eq []7155 with another channel7156 is expected to eq []7157 with matching file_name7158 is expected to eq [#<Packages::PackageFile id: 28, package_id: 16, created_at: "2023-10-20 08:55:58.417401486 +0000", u...m: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>]7159 with another file_name7160 is expected to eq []7161 #most_recent!7162 is expected to eq #<Packages::PackageFile id: 28, package_id: 16, created_at: "2023-10-20 08:55:58.417401486 +0000", up...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>7163Resolvers::Ci::RunnerJobCountResolver7164 # order random7165 #resolve7166 with authorized user7167 with statuses argument filtering on successful builds7168 is expected to eq 27169 with statuses argument filtering on failed builds7170 is expected to eq 17171 without statuses argument7172 is expected to eq 37173 with unauthorized user7174 is expected to be nil7175Gitlab::LetsEncrypt::Challenge7176 #status7177 delegates to Acme::Client::Resources::Challenge7178 #token7179 delegates to Acme::Client::Resources::Challenge7180 #file_content7181 delegates to Acme::Client::Resources::Challenge7182 #request_validation7183 delegates to Acme::Client::Resources::Challenge7184 #error7185 delegates to Acme::Client::Resources::Challenge7186Gitlab::BitbucketImport::ImportPullRequestWorker7187 # order random7188 behaves like Gitlab::BitbucketImport::ObjectImporter7189 .sidekiq_retries_exhausted7190 notifies the waiter7191 #perform7192 when project does not exist7193 behaves like notifies the waiter7194 is expected to receive notify("key", anything) 1 time7195 when project has import started7196 calls the importer7197 behaves like notifies the waiter7198 is expected to receive notify("key", anything) 1 time7199 when the importer raises an ActiveRecord::RecordInvalid error7200 tracks the error7201 when the importer raises a StandardError7202 tracks the error and raises the error7203 when project import has been cancelled7204 does not call the importer7205 behaves like notifies the waiter7206 is expected to receive notify("key", anything) 1 time7207 #importer_class7208 does not raise a NotImplementedError7209Gitlab::Ci::Pipeline::Chain::Limit::ActiveJobs7210 # order random7211 when active jobs limit is not exceeded7212 behaves like successful step7213 doest not fail the pipeline and does not interrupt the chain7214 when active jobs limit is exceeded7215 fails the pipeline with an error7216 logs the failure7217 breaks the chain7218 when active jobs limit not enabled7219 behaves like successful step7220 doest not fail the pipeline and does not interrupt the chain7221Groups::AcceptingProjectImportsFinder7222 # order random7223 #execute7224 only returns groups where the user has access to import projects7225Ci::BuildTraceChunkFlushWorker7226 migrates chunk to a permanent store7227 #perform7228 behaves like an idempotent worker7229 is labeled as idempotent7230 performs multiple times sequentially without raising an exception7231 migrates build trace chunk to a safe store7232Users::MigrateRecordsToGhostUserInBatchesWorker7233 # order random7234 is labeled as idempotent7235 migrates issue to ghost user7236 performs multiple times sequentially without raising an exception7237 #perform7238 executes service with lease7239CustomerRelations::Organizations::CreateService7240 #execute7241 creates a crm_organization7242 returns an error when user does not have permission7243 returns an error when the crm_organization is not persisted7244Subscriptions::IssuableUpdated7245 is expected to have graphql arguments :issuable_id7246 is expected to eq Types::IssuableType7247 #resolve7248 initial subscription7249 returns nil7250 when user is unauthorized7251 raises an exception7252 when issue does not exist7253 raises an exception7254 subscription updates7255 returns the resolved object7256 when user is unauthorized7257 unsubscribes the user7258gitlab:security namespace rake tasks7259 # order random7260 exits when clone fails7261 adds banned keys when clone is successful7262 exits when max config size reaches7263Gitlab::Database::Migrations::ExtensionHelpers7264 # order random7265 #create_extension7266 executes CREATE EXTENSION statement7267 without proper permissions7268 raises an exception and prints an error message7269 #drop_extension7270 executes CREATE EXTENSION statement7271 without proper permissions7272 raises an exception and prints an error message7273GitlabScriptTagHelper7274 external script tag7275DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.7276Falling back to an asset that may be in the public folder.7277This behavior is deprecated and will be removed.7278To bypass the asset pipeline and preserve this behavior,7279use the `skip_pipeline: true` option.7280 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)7281 returns a script tag with defer=true and a nonce7282DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.7283Falling back to an asset that may be in the public folder.7284This behavior is deprecated and will be removed.7285To bypass the asset pipeline and preserve this behavior,7286use the `skip_pipeline: true` option.7287 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)7288 returns a script tag with defer=false and a nonce7289DEPRECATION WARNING: The asset "test.js" is not present in the asset pipeline.7290Falling back to an asset that may be in the public folder.7291This behavior is deprecated and will be removed.7292To bypass the asset pipeline and preserve this behavior,7293use the `skip_pipeline: true` option.7294 (called from javascript_include_tag at /builds/gitlab-org/gitlab/app/helpers/gitlab_script_tag_helper.rb:12)7295 returns a script tag with a nonce even nonce is set to nil7296 inline script tag7297 returns a script tag with a nonce using block syntax7298 returns a script tag with a nonce using block syntax with options7299 returns a script tag with a nonce using argument syntax7300 returns a script tag with a nonce using argument syntax with options7301 returns a script tag with a nonce using argument and block syntax with options7302 #preload_link_tag7303 returns a link tag with a nonce7304MergeRequests::CreateApprovalNoteWorker7305 calls SystemNoteService.approve_mr7306 behaves like subscribes to event7307 consumes the published event7308 behaves like an idempotent worker7309 is labeled as idempotent7310 performs multiple times sequentially without raising an exception7311 when the user does not exist7312 behaves like when object does not exist7313 logs and does not call SystemNoteService.approve_mr7314 when the merge request does not exist7315 behaves like when object does not exist7316 logs and does not call SystemNoteService.approve_mr7317Mutations::Environments::Delete7318 # order random7319 #resolve7320 when destroying the environment succeeds7321 returns no errors7322 deletes the environment7323 when the mutation is not authorized7324 returns errors7325 when destroying the environment fails7326 returns errors7327 when user is reporter who does not have permission to access the environment7328 raises an error7329Gitlab::AlertManagement::Payload7330 #parse7331 without a monitoring_tool specified by caller7332 without a monitoring tool in the payload7333 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic7334 with the payload specifying Prometheus7335 is expected to be a kind of Gitlab::AlertManagement::Payload::Prometheus7336 with the payload specifying an unknown tool7337 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic7338 with monitoring_tool specified by caller7339 as Prometheus7340 with an externally managed prometheus payload7341 is expected to be a kind of Gitlab::AlertManagement::Payload::Prometheus7342 as an unknown tool7343 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic7344 with integration specified by caller7345 passes an integration to a specific payload7346layouts/header/_super_sidebar_logged_out7347 # order random7348 renders links to Explore and Sign-in and Register7349 on self-managed7350 does not render marketing links7351 on gitlab.com7352 renders marketing links7353 renders the free trial button7354Ci::CreatePipelineService7355 # order random7356 when using variables7357 when variables have expand: true/false7358 creates the pipeline with a job that has variable expanded according to "expand"7359 when trigger variables have expand: true/false7360 creates the pipeline with a trigger job that has downstream_variables expanded according to "expand"7361 when trigger variables have CI_ENVIRONMENT_* predefined variables7362 creates the pipeline with a trigger job that has downstream_variables7363Mutations::SavedReplies::Update7364 #resolve7365 when feature is disabled7366 raises Gitlab::Graphql::Errors::ResourceNotAvailable7367 when feature is enabled for current user7368 when service fails to update a new saved reply7369 is expected to be nil7370 is expected to contain exactly "Content can't be blank" and "Name can't be blank"7371 when service successfully updates the saved reply7372 is expected to eq "save_reply_name"7373 is expected to eq "Save Reply Content"7374 is expected to be empty7375IncidentManagement::CloseIncidentWorker7376 # order random7377 #perform7378 calls the close issue service7379 when the incident does not exist7380 behaves like does not call the close issue service7381 is expected not to change `ResourceStateEvent.count`7382 when issue type is not incident7383 behaves like does not call the close issue service7384 is expected not to change `ResourceStateEvent.count`7385 when incident is not open7386 behaves like does not call the close issue service7387 is expected not to change `ResourceStateEvent.count`7388 when incident fails to close7389 is expected not to change `ResourceStateEvent.count`7390Sidebars::Projects::Menus::WikiMenu7391 does not contain any sub menu7392 #render?7393 when user can access project wiki7394 returns true7395 when user cannot access project wiki7396 returns false7397 behaves like serializable as super_sidebar_menu_args7398 returns hash with provided attributes7399 returns hash with an item_id7400StartupjsHelper7401 #page_startup_graphql_calls7402 returns an array containing GraphQL Page Startup Calls7403 #page_startup_graphql_headers7404 csrf_token: "abc", feature_category: "web_ide", expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>"web_ide"}7405 returns hash of headers for GraphQL requests7406 csrf_token: "", feature_category: "", expected: {"X-CSRF-Token"=>"", "x-gitlab-feature-category"=>""}7407 returns hash of headers for GraphQL requests7408 csrf_token: "abc", feature_category: nil, expected: {"X-CSRF-Token"=>"abc", "x-gitlab-feature-category"=>""}7409 returns hash of headers for GraphQL requests7410 csrf_token: "something", feature_category: " ", expected: {"X-CSRF-Token"=>"something", "x-gitlab-feature-category"=>""}7411 returns hash of headers for GraphQL requests7412DetectRepositoryLanguagesWorker7413 #perform7414 calls de DetectRepositoryLanguages service7415 when invalid ids are used7416 does not raise when the project could not be found7417Gitlab::Usage::ServicePing::PayloadKeysProcessor7418 with an object metric7419 returns the payload keys that have a metric definition7420 with a missing metric definition7421 returns the payload keys that have a metric definition7422 with array metric7423 returns the payload keys that have a metric definition7424 missing_instrumented_metrics_key_paths7425 returns the missing keys7426ServicePing::ServicePingSettings7427 #product_intelligence_enabled?7428 usage_ping_enabled: true, requires_usage_stats_consent: false, expected_product_intelligence_enabled: true7429 has the correct product_intelligence_enabled?7430 usage_ping_enabled: true, requires_usage_stats_consent: true, expected_product_intelligence_enabled: false7431 has the correct product_intelligence_enabled?7432 usage_ping_enabled: false, requires_usage_stats_consent: false, expected_product_intelligence_enabled: false7433 has the correct product_intelligence_enabled?7434 usage_ping_enabled: false, requires_usage_stats_consent: true, expected_product_intelligence_enabled: false7435 has the correct product_intelligence_enabled?7436 #enabled?7437 has the correct enabled7438 when false7439 when true7440Projects::TerraformHelper7441 #js_terraform_list_data7442 includes image path7443 includes project path7444 includes access token path7445 includes username7446 includes terraform state api url7447 indicates the user is a terraform admin7448 when current_user is not a terraform admin7449 indicates the user is not an admin7450 when current_user is missing7451 indicates the user is not an admin7452Mutations::Achievements::Revoke7453 # order random7454 is expected to require graphql authorizations :award_achievement7455 #resolve7456 when the user does not have permission7457 raises an error7458 when the user has permission7459 revokes user_achievement7460 when the params are invalid7461 returns the validation error7462Gitlab::UsageDataCounters::SnippetCounter7463 behaves like a redis usage counter7464 .count(create)7465 increments the Snippet create counter by 17466 .read(create)7467 returns the total number of create events7468 behaves like a redis usage counter7469 .count(update)7470 increments the Snippet update counter by 17471 .read(update)7472 returns the total number of update events7473 behaves like a redis usage counter with totals7474 totals7475 can report all totals7476 unknown events7477 cannot increment7478 cannot read7479Ci::UpdateLockedUnknownArtifactsWorker7480 #perform7481 executes an instance of Ci::JobArtifacts::UpdateUnknownLockedStatusService7482Gitlab::Database::MigrationHelpers::CascadingNamespaceSettings7483 #add_cascading_namespace_setting7484-- column_exists?(:namespace_settings, :some_setting)7485 -> 0.0052s7486-- column_exists?(:namespace_settings, :lock_some_setting)7487 -> 0.0047s7488-- column_exists?(:application_settings, :some_setting)7489 -> 0.2458s7490-- column_exists?(:application_settings, :lock_some_setting)7491 -> 0.2457s7492 creates the required columns7493 when columns already exist7494-- add_column(:namespace_settings, :cascading_setting, :integer)7495 -> 0.0019s7496-- add_column(:application_settings, :lock_cascading_setting, :boolean)7497 -> 0.0015s7498-- column_exists?(:namespace_settings, :cascading_setting)7499 -> 0.0049s7500-- column_exists?(:namespace_settings, :lock_cascading_setting)7501 -> 0.0045s7502-- column_exists?(:application_settings, :cascading_setting)7503 -> 0.2459s7504-- column_exists?(:application_settings, :lock_cascading_setting)7505 -> 0.2485s7506 raises an error when some columns already exist7507 #remove_cascading_namespace_setting7508 removes the columns7509RuboCop::Cop::Migration::AddReference7510 # order random7511 when in a migration7512 when the table existed before7513 registers an offense when using add_reference7514 registers an offense when using add_reference with index enabled7515 registers an offense if only a different table was created7516 when creating the table at the same time7517 registers an offense when using add_reference without index7518 registers an offense when using add_reference index disabled7519 does not register an offense when using add_reference with index enabled7520 does not register an offense when the index is unique7521 when outside of a migration7522 does not register any offenses7523Ci::CreatePipelineService7524 # order random7525 when project has not exceeded the active jobs limit7526 creates the pipeline successfully7527 when project has exceeded the active jobs limit7528 fails the pipeline before populating it7529PagesDomainSslRenewalWorker7530 #perform7531 delegates to ObtainLetsEncryptCertificateService7532 when domain was deleted7533 does nothing7534 when domain is disabled7535 does nothing7536Projects::CountService7537 .query7538 raises NotImplementedError7539 #relation_for_count7540 calls the class method query with the project id7541 #count7542 returns the number of rows7543 caches the number of rows7544 #refresh_cache7545 refreshes the cache7546 #delete_cache7547 removes the cache7548 #cache_key_name7549 raises NotImplementedError7550 #cache_key7551 returns the cache key as an Array7552Import::Github::Notes::CreateService7553 does not support quick actions7554Gitlab::Ci::Status::WaitingForResource7555 #text7556 is expected to eq "Waiting"7557 #label7558 is expected to eq "waiting for resource"7559 #icon7560 is expected to eq "status_pending"7561 #favicon7562 is expected to eq "favicon_status_pending"7563 #group7564 is expected to eq "waiting-for-resource"7565 #name7566 is expected to eq "WAITING_FOR_RESOURCE"7567 #details_path7568 is expected to be nil7569Gitlab::Usage::Metrics::Instrumentations::CountProjectsMetric7570 # order random7571 with all time frame7572 behaves like a correct instrumented metric value and query7573 behaves like a correct instrumented metric value7574 has correct value7575 behaves like a correct instrumented metric query7576 has correct generate query7577 with 28d time frame7578 behaves like a correct instrumented metric value and query7579 behaves like a correct instrumented metric value7580 has correct value7581 behaves like a correct instrumented metric query7582 has correct generate query7583Sidebars::Projects::Menus::CiCdMenu7584 #render?7585 when user cannot read builds7586 returns false7587 when user can read builds7588 returns true7589 Menu items7590 Pipelines Editor7591 when user cannot view pipeline editor7592 does not include pipeline editor menu item7593 when user can view pipeline editor7594 includes pipeline editor menu item7595 Artifacts7596 includes artifacts menu item7597ProjectCustomAttribute7598 assocations7599 is expected to belong to project required: false7600 validations7601 is expected to validate that :project cannot be empty/falsy7602 is expected to validate that :key cannot be empty/falsy7603 is expected to validate that :value cannot be empty/falsy7604 is expected to validate that :key is case-sensitively unique within the scope of :project_id7605ProjectPathValidator7606 .valid_path?7607 handles invalid utf87608 #validates_each7609 adds a message when the path is not in the correct format7610 adds a message when the path is reserved when creating7611 adds a message when the path is reserved when updating7612Resolvers::Ci::TemplateResolver7613 #resolve7614 when template exists7615 returns the found template7616 when template does not exist7617 returns nil7618AuthorizedProjectUpdate::UserRefreshOverUserRangeWorker7619 behaves like worker with data consistency7620 .get_data_consistency_feature_flag_enabled?7621 returns true7622 .get_data_consistency7623 returns correct data consistency7624 #perform7625 checks if project authorization update is required7626 checks if a project_authorization refresh is needed for each of the users7627 when there are project authorization records due for either removal or addition for a specific user7628 enqueues a new project authorization update job for the user7629 when there are no additions or removals to be made to project authorizations for a specific user7630 does not enqueue a new project authorization update job for the user7631groups/milestones/index.html.haml7632 behaves like milestone empty states7633 with no milestones7634 shows empty state7635 does not show tabs or searchbar7636 with no open milestones7637 shows tabs and searchbar7638 shows empty state7639 with no closed milestones7640 shows tabs and searchbar7641 shows empty state on closed milestones7642WebauthnRegistration7643 relations7644 is expected to belong to user required: false7645 validations7646 is expected to validate that :credential_xid cannot be empty/falsy7647 is expected to validate that :public_key cannot be empty/falsy7648 is expected to validate that :counter cannot be empty/falsy7649 is expected to validate that the length of :name is at least 07650 is expected not to allow :name to be ‹nil›7651 is expected to validate that :counter looks like an integer greater than or equal to 0 and less than or equal to 42949672957652RuboCop::Cop::SidekiqApiUsage7653 # order random7654 registers offence when assigning Sidekiq API classes7655 does not registers offence when calling Sidekiq::Testing7656 registers offence when calling Sidekiq API7657 when calling Sidekiq::Worker7658 registers no offences for calling skipping_transaction_check7659 registers no offences for calling raise_inside_transaction_exception7660 registers no offences for calling raise_exception_for_being_inside_a_transaction?7661 registers offence for calling other Sidekiq::Worker methods7662EmailReceiverWorker7663 when reply by email is enabled7664 calls the email receiver7665 when an error occurs7666 when error is a processing error7667 triggers email failure handler7668 logs the error7669 when error is not a processing error7670 triggers email failure handler7671 reports the error7672 when reply by email is disabled7673 doesn't call the email receiver7674CarrierWave::Storage::Fog::File7675 # order random7676 AWS7677 #copy_to7678 copies the file7679 Azure7680 #copy_to7681 copies the file7682 #authenticated_url7683 has an authenticated URL7684 with custom expire_at7685 properly sets expires param7686 with content_disposition option7687 passes options7688Emails::CreateService7689 #execute7690 creates an email with valid attributes7691 creates an email with additional attributes7692 has the right user association7693 sends a notification to the user7694 does not send a notification when the email is not persisted7695 does not send a notification email when the email is the primary, because we are creating the user7696Gitlab::Database::SchemaCleaner7697 removes comments on extensions7698 no assumption about public being the default schema7699 cleans up all the gitlab_schema_prevent_write table triggers7700 keeps the lock_writes trigger functions7701 cleans up the full schema as expected (blackbox test with example)7702API::Validations::Validators::ArrayNoneAny7703 valid parameters7704 does not raise a validation error7705 invalid parameters7706 raises a validation error7707Gitlab::WordDiff::Parser7708 #parse7709 returns a collection of lines7710 restarts object index after several calls to Enumerator7711 when diff is empty7712 is expected to eq []7713Gitlab::Usage::Metrics::Instrumentations::CountSlackAppInstallationsGbpMetric7714 # order random7715 behaves like a correct instrumented metric value and query7716 behaves like a correct instrumented metric value7717 has correct value7718 behaves like a correct instrumented metric query7719 has correct generate query7720Integrations::Pivotaltracker7721 Validations7722 when integration is active7723 is expected to validate that :token cannot be empty/falsy7724 when integration is inactive7725 is expected not to validate that :token cannot be empty/falsy7726 Execute7727 posts correct message7728 when allowed branches is specified7729 posts message if branch is in the list7730 does not post message if branch is not in the list7731 #avatar_url7732 returns the avatar image path7733ListboxHelper7734 #gl_redirect_listbox_tag7735 creates root element with expected classes7736 sets data attributes for items and selected7737 adds styled button7738 sets button text to selected item7739 given html_options7740 applies them to the root element7741 when selected does not match any item7742 selected: nil7743 selects first item7744 selected: "qux"7745 selects first item7746ObjectStorage::DeleteStaleDirectUploadsWorker7747 # order random7748 #perform7749 executes a service7750 behaves like an idempotent worker7751 is labeled as idempotent7752 performs multiple times sequentially without raising an exception7753 only deletes stale entries7754Gitlab::Analytics::CycleAnalytics::Average7755 #seconds7756 when no results7757 is expected to eq nil7758 #days7759 when no results7760 is expected to eq nil7761 returns the average duration in days7762 is expected to be within 0.01 of 7.57763Gitlab::ColorSchemes7764 .body_classes7765 returns a space-separated list of class names7766 .by_id7767 returns a scheme by its ID7768 .default7769 use config default7770 .each7771 passes the block to the SCHEMES Array7772 .for_user7773 returns default when user is nil7774 returns user's preferred color scheme7775BlameHelper7776 #get_age_map_start_date7777 returns the earliest date from a blame group7778 returns the earliest date from a project7779 #age_map_class7780 returns blame-commit-age-9 when oldest7781 returns blame-commit-age-0 class when newest7782 when called on the same day as project creation7783 returns blame-commit-age-0 class7784 #entire_blame_path7785 is expected to eq "/namespace1139/project-1224/-/blame/main/README.md/streaming"7786MigrationCollisionChecker7787 # order random7788 #check7789 when there's no collision between migrations7790 is expected to be nil7791 when migration class name clashes7792 returns the error code7793 returns the error message7794 when migration class name clashes but they are marked to be skipped7795 is expected to be nil7796Gitlab::Usage::Metrics::Instrumentations::CountMlCandidatesMetric7797 # order random7798 behaves like a correct instrumented metric value and query7799 behaves like a correct instrumented metric value7800 has correct value7801 behaves like a correct instrumented metric query7802 has correct generate query7803Backup::DatabaseBackupError7804 is expected to respond to #config7805 is expected to respond to #db_file_name7806 expects exception message to include database file7807 expects exception message to include database paths being back-up7808ProjectDailyStatistic7809 is expected to belong to project required: false7810RuboCop::Cop::Migration::PreventStrings7811 # order random7812 when outside of migration7813 registers no offense7814 when in migration7815 when the string data type is used7816 registers an offense7817 when the string data type is not used7818 registers no offense7819 when the text data type is used7820 registers no offense7821 when the string data type is used for arrays7822 registers no offense7823 when using down method7824 registers no offense7825Gitlab::CycleAnalytics::Updater7826 updates authors7827 maps the correct user7828 updates builds7829 maps the correct build7830UserPreferences::UpdateService7831 #execute7832 successfully updating the record7833 updates the preference and returns a success7834 unsuccessfully updating the record7835 returns an error7836profiles/show7837 when the profile page is opened7838 displays the correct elements7839 renders required hidden inputs for set status form7840Spam::Concerns::HasSpamActionResponseFields7841 #with_spam_action_response_fields7842 merges in spam action fields from spammable7843Gitlab::GithubImport::ImportNoteWorker7844 #import7845 imports a note7846BulkImports::Groups::Extractors::SubgroupsExtractor7847 #extract7848 returns ExtractedData response7849Gitlab::ChangesList7850 when changes is a valid string7851 splits elements by newline character7852 behaves like a list7853RuboCop::Cop::API::Base7854 # order random7855 does not add an offense when inheriting from BaseAPI7856 adds an offense when inheriting from ::Grape::API::Instance7857 adds an offense when inheriting from Grape::API::Instance7858 adds an offense when inheriting from Grape::API7859 adds an offense when inheriting from ::Grape::API7860SmimeSignatureSettings7861 .parse7862 sets correct default values to disabled7863 when providing custom values7864 sets correct default values to disabled7865 enables smime with default key and cert7866 enables smime with custom key and cert7867Gitlab::Auth::Activity7868 .each_counter7869 has all static counters defined7870 has all static incrementers defined7871 has all counters starting with `user_`7872 yields counter method, name and description7873Admin::AbuseReportLabelsFinder7874 # order random7875 #execute7876 when current user is admin7877 when params is empty7878 returns all abuse report labels sorted by title in ascending order7879 when search_term param is present7880 returns matching abuse report labels7881 when current user is not an admin7882 returns nothing7883projects/issues/_related_branches7884 shows the related branches with their build status7885FutureDateValidator7886 past date7887 is expected not to be valid7888 current date7889 is expected to be valid7890 future date7891 is expected to be valid7892API::Helpers::ImportGithubHelpers7893 # order random7894 #client7895 returns the new github client7896 #access_params7897 makes the passed in personal access token and extra tokens accessible7898 #too_many_requests7899 raises an error7900 #provider7901 is GitHub7902 #provider_unauthorized7903 raises an error7904Types::Blame::GroupsType7905 # order random7906 is expected to have graphql fields :commit, :commit_data, :lineno, :lines, and :span7907 is expected to eq "Groups"7908Gitlab::BatchWorkerContext7909 #arguments7910 returns all the expected arguments in arrays7911 #context_for7912 returns the correct application context for the arguments7913Gitlab::GitalyClient::PraefectInfoService7914 #repository_replicas7915 sends an RPC request7916Gitlab::DatabaseImporters::DefaultOrganizationImporter7917 # order random7918 #create_default_organization7919 when default organization does not exists7920 creates a default organization7921 when default organization exists7922 does not create another organization7923Types::DependencyProxy::ImageTtlGroupPolicyType7924 is expected to eq "DependencyProxyImageTtlGroupPolicy"7925 is expected to eq "Group-level Dependency Proxy TTL policy settings"7926 is expected to require graphql authorizations :admin_dependency_proxy7927 includes dependency proxy image ttl policy fields7928Gitlab::Middleware::RailsQueueDuration7929 #call7930 calls the app when metrics are disabled7931 when metrics are enabled7932 calls the app when metrics are enabled but no timing header is found7933 sets proxy_flight_time and calls the app when the header is present7934 observes rails queue duration metrics and calls the app when the header is present7935Types::Packages::PackageType7936 is expected to eq "Represents a package with pipelines in the Package Registry"7937 is expected to require graphql authorizations :read_package7938 includes all the package fields and pipelines7939shared/gitlab_version/_security_patch_upgrade_alert7940 # order random7941 when show_security_patch_upgrade_alert? is true7942 renders the security patch upgrade alert modal7943API::Validations::Validators::ProjectPortable7944 valid portable7945 does not raise a validation error7946 empty params7947 raises a validation error7948 not portable7949 raises a validation error7950Types::Ci::RunnerSetupType7951 is expected to eq "RunnerSetup"7952 exposes the expected fields7953Packages::Rubygems::Metadatum7954 relationships7955 is expected to belong to package required: false7956 validations7957 is expected to validate that :package cannot be empty/falsy7958 #rubygems_package_type7959 will not allow a package with a different package_type7960Integrations::SlackEvents::UrlVerificationService7961 # order random7962 #execute7963 returns the challenge7964Doorkeeper::Application7965 # order random7966 uses a prefixed secret7967Repositories::ReplicateService7968 # order random7969 replicates repository7970 when an error is raised during checksum calculation7971 raises the error and removes new repository7972 when checksum does not match7973 raises an error and removes new repository7974admin/application_settings/network.html.haml7975 # order random7976 for Projects API rate limit7977 renders the `projects_api_rate_limit_unauthenticated` field7978Gitlab::Search::SortOptions7979 .sort_and_direction7980 using order_by and sort7981 returns matched options7982 using just sort7983 returns matched options7984 when unknown option7985 returns unknown7986BulkImports::Projects::Graphql::GetProjectQuery7987 has a valid query7988 queries project based on source_full_path7989groups/settings/_general.html.haml7990 # order random7991 Group Settings README7992 renders #js-group-settings-readme7993Gitlab::Audit::DeployTokenAuthor7994 #initialize7995 sets correct attributes7996 sets default name when it is not provided7997PostgreSQL registered types7998 includes custom and standard OIDs7999 includes custom and standard types8000SystemCheck::IncomingEmail::ImapAuthenticationCheck8001 #load_config8002 returns no mailbox configurations with mailroom default configuration8003 is expected to be nil8004 returns an array of mailbox configurations with mailroom configured8005 is expected to eq [{:host=>"gitlab.example.com", :port=>143}]8006Types::Ci::VariableTypeEnum8007 matches the keys of Ci::Variable.variable_types8008Gitlab::Patch::Uri8009 # order random8010 #parse8011 raises an error if the URI is too long8012 does not raise an error if the URI is not too long8013EmojiHelper8014 #emoji_icon8015 has no options8016 with aria-hidden option8017 applies aria-hidden8018Types::WorkItems::Widgets::CurrentUserTodosInputType8019 # order random8020 is expected to contain exactly "action" and "todoId"8021 is expected to eq "WorkItemWidgetCurrentUserTodosInput"8022Sidebars::Groups::SuperSidebarMenus::PlanMenu8023 # order random8024 has title and sprite_icon8025 defines list of NilMenuItem placeholders8026Gitlab::Utils::ErrorMessage8027 # order random8028 #to_user_facing8029 returns a user-facing error message with the UF prefix8030 #prefixed_error_message8031 returns a message with the given prefix8032Gitlab::Usage::Metrics::Instrumentations::LdapEncryptedSecretsMetric8033 # order random8034 ldap_encrypted_secrets_enabled: true, expected_value: true8035 behaves like a correct instrumented metric value8036 has correct value8037 ldap_encrypted_secrets_enabled: false, expected_value: false8038 behaves like a correct instrumented metric value8039 has correct value8040Gitlab::Usage::Metrics::Instrumentations::EditionMetric8041 # order random8042 behaves like a correct instrumented metric value8043 has correct value8044RolloutStatuses::IngressEntity8045 exposes canary weight8046Admin::ApplicationSettings::SettingsHelper8047 #inactive_projects_deletion_data8048 has the expected data8049Types::Notes::DeletedNoteType8050 # order random8051 exposes the expected fields8052Gitlab::GithubImport::ImportCollaboratorWorker8053 # order random8054 #import8055 imports a collaborator8056API::Helpers::Pagination8057 delegates to OffsetPagination8058Types::Ci::PipelineTriggerType8059 # order random8060 is expected to have graphql fields :can_access_project, :description, :has_token_exposed, :last_used, :id, :owner, and :token8061Gitlab::Usage::Metrics::Instrumentations::IndexInconsistenciesMetric8062 # order random8063 behaves like a correct instrumented metric value8064 has correct value8065Types::MergeRequestType8066 is expected to expose permissions using Types::PermissionTypes::MergeRequest8067Integrations::HarborSerializers::TagSerializer8068 represents Integrations::HarborSerializers::TagEntity entities8069MetricImageUploader8070 .workhorse_local_upload_path8071 returns path that includes uploads dir8072auto_explain log contains 1778 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-11-28.327.main.ndjson.gz8073took 43.4308902468074auto_explain log contains 1779 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-single-db-ci-connection-11-28.327.ci.ndjson.gz8075took 41.2696414258076Knapsack report was generated. Preview:8077{8078 "spec/policies/issue_policy_spec.rb": 391.5129080830002,8079 "spec/models/clusters/platforms/kubernetes_spec.rb": 198.01351014400007,8080 "spec/lib/gitlab/middleware/go_spec.rb": 123.96579607900003,8081 "spec/models/integration_spec.rb": 65.11525638900002,8082 "spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb": 74.90716340299969,8083 "spec/services/notes/create_service_spec.rb": 65.36888954099959,8084 "spec/lib/gitlab/diff/position_tracer/line_strategy_spec.rb": 60.326071415000115,8085 "spec/presenters/ci/build_runner_presenter_spec.rb": 32.01472892299989,8086 "spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb": 38.23138876600024,8087 "spec/models/project_feature_spec.rb": 14.008938666999711,8088 "spec/helpers/users_helper_spec.rb": 16.46050349500001,8089 "spec/services/environments/stop_service_spec.rb": 26.059708769999816,8090 "spec/presenters/merge_request_presenter_spec.rb": 19.846437536999474,8091 "spec/serializers/member_entity_spec.rb": 21.04261899300036,8092 "spec/services/work_items/create_service_spec.rb": 15.547498889000053,8093 "spec/services/ci/create_commit_status_service_spec.rb": 21.15114962499956,8094 "spec/services/projects/lfs_pointers/lfs_download_link_list_service_spec.rb": 23.228668287999426,8095 "spec/graphql/mutations/merge_requests/set_labels_spec.rb": 24.316799010000068,8096 "spec/lib/container_registry/tag_spec.rb": 17.10087474899956,8097 "spec/lib/gitlab/database_spec.rb": 3.5623604899992642,8098 "spec/models/integrations/teamcity_spec.rb": 8.715906368000105,8099 "spec/models/integrations/unify_circuit_spec.rb": 8.580477038000026,8100 "spec/models/incident_management/issuable_escalation_status_spec.rb": 4.812035902000389,8101 "spec/models/projects/data_transfer_spec.rb": 3.9493322429998443,8102 "spec/models/integrations/webex_teams_spec.rb": 7.919193673999871,8103 "spec/lib/gitlab/metrics_spec.rb": 2.654708783999922,8104 "spec/services/namespaces/package_settings/update_service_spec.rb": 9.502957212999718,8105 "spec/models/integrations/pipelines_email_spec.rb": 9.352694062999944,8106 "spec/models/generic_commit_status_spec.rb": 11.0918475819999,8107 "spec/lib/gitlab/gitaly_client/with_feature_flag_actors_spec.rb": 5.111673550999512,8108 "spec/lib/gitlab/verify/uploads_spec.rb": 8.438705247999678,8109 "spec/services/discussions/update_diff_position_service_spec.rb": 10.790423012000247,8110 "spec/models/ci/group_variable_spec.rb": 5.281322328999522,8111 "spec/models/ci/build_trace_metadata_spec.rb": 6.944854032999501,8112 "spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb": 8.219690793000154,8113 "spec/lib/gitlab/checks/diff_check_spec.rb": 9.372125692000736,8114 "spec/lib/gitlab/diff/position_tracer_spec.rb": 8.622352714999579,8115 "spec/services/packages/nuget/sync_metadatum_service_spec.rb": 11.382654971000193,8116 "spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb": 9.961312409999664,8117 "spec/lib/gitlab/import_export/command_line_util_spec.rb": 3.054830516000038,8118 "spec/graphql/types/merge_request_type_spec.rb": 5.16899083699991,8119 "spec/graphql/mutations/ci/runner/update_spec.rb": 5.404440271000567,8120 "spec/models/fork_network_spec.rb": 7.601053561999834,8121 "spec/rubocop/cop/graphql/old_types_spec.rb": 2.775519726999846,8122 "spec/models/snippet_input_action_spec.rb": 2.1030682559994602,8123 "spec/lib/gitlab/ci/reports/codequality_reports_comparer_spec.rb": 1.5807629440005257,8124 "spec/lib/gitlab/search/recent_issues_spec.rb": 6.669251911000174,8125 "spec/lib/gitlab/ci/status/build/stop_spec.rb": 6.250872701999469,8126 "spec/finders/joined_groups_finder_spec.rb": 7.775494340000478,8127 "spec/tasks/gitlab/ldap_rake_spec.rb": 5.233316126999853,8128 "spec/models/integrations/youtrack_spec.rb": 4.573738004999541,8129 "spec/lib/gitlab/import_export/lfs_restorer_spec.rb": 5.489781437000602,8130 "spec/lib/gitlab/database/reindexing/grafana_notifier_spec.rb": 2.8281161929999143,8131 "spec/services/notes/post_process_service_spec.rb": 6.251998611999625,8132 "spec/policies/ci/trigger_policy_spec.rb": 6.100933462000285,8133 "spec/lib/gitlab/template_parser/ast_spec.rb": 2.806427944000461,8134 "spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb": 2.879519349000475,8135 "spec/models/customer_relations/organization_spec.rb": 2.564250412000547,8136 "spec/rubocop/cop/static_translation_definition_spec.rb": 1.7902243490007095,8137 "spec/models/customer_relations/issue_contact_spec.rb": 5.529188855000029,8138 "spec/graphql/mutations/issues/set_escalation_status_spec.rb": 4.856214823999835,8139 "spec/presenters/packages/nuget/packages_metadata_presenter_spec.rb": 4.953530196999964,8140 "spec/services/repositories/housekeeping_service_spec.rb": 3.1200513809999393,8141 "spec/presenters/event_presenter_spec.rb": 2.3241771100001642,8142 "spec/lib/gitlab/diff/rendered/notebook/diff_file_helper_spec.rb": 1.4301827350000167,8143 "spec/presenters/snippet_presenter_spec.rb": 3.2957962290001888,8144 "spec/models/concerns/ci/has_variable_spec.rb": 3.1672219869997207,8145 "spec/lib/gitlab/event_store/store_spec.rb": 1.4854857299997093,8146 "spec/graphql/resolvers/concerns/resolves_pipelines_spec.rb": 3.934973531000651,8147 "spec/models/integrations/clickup_spec.rb": 4.7891540390000955,8148 "spec/finders/packages/conan/package_file_finder_spec.rb": 2.898338517999946,8149 "spec/initializers/direct_upload_support_spec.rb": 1.65377714799979,8150 "spec/models/integrations/google_play_spec.rb": 1.9429732369999329,8151 "spec/workers/concerns/limited_capacity/worker_spec.rb": 0.8120249700004933,8152 "spec/models/packages/debian/file_entry_spec.rb": 1.0895866500004558,8153 "spec/graphql/types/base_enum_spec.rb": 0.8743943359995683,8154 "spec/services/work_items/delete_task_service_spec.rb": 3.776634564000233,8155 "spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb": 0.931219341000542,8156 "spec/lib/gitlab/chat/responder/mattermost_spec.rb": 3.8140211609998005,8157 "spec/graphql/mutations/todos/create_spec.rb": 3.4711466859998836,8158 "spec/helpers/web_hooks/web_hooks_helper_spec.rb": 4.404594048000035,8159 "spec/graphql/types/base_object_spec.rb": 1.485957920999681,8160 "spec/graphql/resolvers/project_milestones_resolver_spec.rb": 2.0582896099995196,8161 "spec/lib/gitlab/visibility_level_checker_spec.rb": 3.440592057999311,8162 "spec/lib/constraints/project_url_constrainer_spec.rb": 2.7561761689994455,8163 "spec/services/environments/update_service_spec.rb": 2.36910025600082,8164 "spec/lib/api/entities/ci/pipeline_spec.rb": 1.2265704999999798,8165 "spec/workers/clusters/applications/activate_integration_worker_spec.rb": 3.7724608829994395,8166 "spec/graphql/types/terraform/state_version_type_spec.rb": 2.4799292489997242,8167 "spec/models/issue_assignee_spec.rb": 3.5442075199998726,8168 "spec/models/concerns/enums/sbom_spec.rb": 0.802463510999587,8169 "spec/finders/design_management/designs_finder_spec.rb": 2.820767053000054,8170 "spec/services/milestones/close_service_spec.rb": 3.495012933999533,8171 "spec/models/merge_request/diff_commit_user_spec.rb": 0.7957922819996384,8172 "spec/lib/gitlab/kubernetes/deployment_spec.rb": 0.6656595209997249,8173 "spec/finders/data_transfer/project_data_transfer_finder_spec.rb": 1.793480157999511,8174 "spec/lib/gitlab/themes_spec.rb": 0.7413292459996228,8175 "spec/lib/bitbucket_server/connection_spec.rb": 0.6001009860001432,8176 "spec/lib/gitlab/file_detector_spec.rb": 0.9013137539996023,8177 "spec/services/ci/create_pipeline_service/parallel_spec.rb": 3.014333429000544,8178 "spec/lib/gitlab/cleanup/orphan_job_artifact_files_spec.rb": 1.823745706000409,8179 "spec/rubocop/cop/put_group_routes_under_scope_spec.rb": 0.6689632210000127,8180 "spec/policies/packages/policies/group_policy_spec.rb": 2.1739108609999676,8181 "spec/models/integrations/base_third_party_wiki_spec.rb": 2.574372771000526,8182 "spec/lib/gitlab/ci/pipeline/seed/pipeline_spec.rb": 1.3229728429996612,8183 "spec/lib/gitlab/graphs/commits_spec.rb": 2.3015109210000446,8184 "spec/lib/banzai/reference_parser/work_item_parser_spec.rb": 2.918245016000583,8185 "spec/models/bulk_imports/tracker_spec.rb": 1.921031689999836,8186 "spec/components/pajamas/empty_state_component_spec.rb": 0.6777653909994115,8187 "spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_metric_spec.rb": 2.273353132999546,8188 "spec/models/group_import_state_spec.rb": 1.2616284379992067,8189 "spec/services/task_list_toggle_service_spec.rb": 0.7590031740000995,8190 "spec/rubocop/cop/migration/batch_migrations_post_only_spec.rb": 0.6537237620004817,8191 "spec/lib/gitlab/auth/o_auth/identity_linker_spec.rb": 1.4176437960004478,8192 "spec/services/groups/group_links/update_service_spec.rb": 2.6657424650002213,8193 "spec/models/bulk_imports/failure_spec.rb": 0.9174601529994106,8194 "spec/serializers/integrations/event_entity_spec.rb": 2.804122403999827,8195 "spec/lib/declarative_enum_spec.rb": 0.5279557309995653,8196 "spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb": 1.4844232409996039,8197 "spec/lib/gitlab/setup_helper/praefect_spec.rb": 0.6092431960005342,8198 "spec/lib/gitlab/import_export/json/ndjson_reader_spec.rb": 0.5869332769998437,8199 "spec/helpers/ci/variables_helper_spec.rb": 0.578140607000023,8200 "spec/workers/ci/cancel_redundant_pipelines_worker_spec.rb": 2.2466506759992626,8201 "spec/policies/project_hook_policy_spec.rb": 2.7731501860007484,8202 "spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb": 1.621410701000059,8203 "spec/finders/packages/helm/package_files_finder_spec.rb": 1.1633300149997012,8204 "spec/graphql/resolvers/ci/runner_job_count_resolver_spec.rb": 2.6427865260002363,8205 "spec/lib/gitlab/lets_encrypt/challenge_spec.rb": 0.3142363970000588,8206 "spec/workers/gitlab/bitbucket_import/import_pull_request_worker_spec.rb": 1.377542029000324,8207 "spec/lib/gitlab/ci/pipeline/chain/limit/active_jobs_spec.rb": 1.9673947960000078,8208 "spec/finders/groups/accepting_project_imports_finder_spec.rb": 2.036627081000006,8209 "spec/workers/ci/build_trace_chunk_flush_worker_spec.rb": 1.9422359870004584,8210 "spec/workers/users/migrate_records_to_ghost_user_in_batches_worker_spec.rb": 1.9624846659999093,8211 "spec/services/customer_relations/organizations/create_service_spec.rb": 1.5587517260000823,8212 "spec/graphql/subscriptions/issuable_updated_spec.rb": 1.1134009480001623,8213 "spec/tasks/gitlab/security/update_banned_ssh_keys_rake_spec.rb": 1.7881863490001706,8214 "spec/lib/gitlab/database/migrations/extension_helpers_spec.rb": 0.27538886000002094,8215 "spec/helpers/gitlab_script_tag_helper_spec.rb": 0.5530664100006106,8216 "spec/workers/merge_requests/create_approval_note_worker_spec.rb": 1.656134839000515,8217 "spec/graphql/mutations/environments/delete_spec.rb": 1.1040150799999537,8218 "spec/lib/gitlab/alert_management/payload_spec.rb": 0.3586772029993881,8219 "spec/views/layouts/header/_super_sidebar_logged_out.html.haml_spec.rb": 0.6305531039997732,8220 "spec/services/ci/create_pipeline_service/variables_spec.rb": 1.5510882259995924,8221 "spec/graphql/mutations/saved_replies/update_spec.rb": 0.5940326770005413,8222 "spec/workers/incident_management/close_incident_worker_spec.rb": 1.27018299700012,8223 "spec/lib/sidebars/projects/menus/wiki_menu_spec.rb": 0.3801617820008687,8224 "spec/helpers/startupjs_helper_spec.rb": 0.35339061400009086,8225 "spec/workers/detect_repository_languages_worker_spec.rb": 0.45417351700052677,8226 "spec/lib/gitlab/usage/service_ping/payload_keys_processor_spec.rb": 0.3486391349997575,8227 "spec/lib/service_ping/service_ping_settings_spec.rb": 0.3680364230003761,8228 "spec/helpers/projects/terraform_helper_spec.rb": 0.8803507860002355,8229 "spec/graphql/mutations/achievements/revoke_spec.rb": 1.1305443870005547,8230 "spec/lib/gitlab/usage_data_counters/snippet_counter_spec.rb": 0.47683053400032804,8231 "spec/workers/ci/update_locked_unknown_artifacts_worker_spec.rb": 1.5740354640001897,8232 "spec/lib/gitlab/database/migration_helpers/cascading_namespace_settings_spec.rb": 1.2471836790000452,8233 "spec/rubocop/cop/migration/add_reference_spec.rb": 0.43964496800072084,8234 "spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb": 1.7479997809996348,8235 "spec/workers/pages_domain_ssl_renewal_worker_spec.rb": 1.0809589399996185,8236 "spec/services/projects/count_service_spec.rb": 0.512465112999962,8237 "spec/services/import/github/notes/create_service_spec.rb": 1.4230664249998881,8238 "spec/lib/gitlab/ci/status/waiting_for_resource_spec.rb": 0.3793733720003729,8239 "spec/lib/gitlab/usage/metrics/instrumentations/count_projects_metric_spec.rb": 1.1247791779996987,8240 "spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb": 0.40477491000001464,8241 "spec/models/project_custom_attribute_spec.rb": 0.6762754410001435,8242 "spec/validators/project_path_validator_spec.rb": 0.632646613000361,8243 "spec/graphql/resolvers/ci/template_resolver_spec.rb": 1.190880262999599,8244 "spec/workers/authorized_project_update/user_refresh_over_user_range_worker_spec.rb": 0.7647064940001655,8245 "spec/views/groups/milestones/index.html.haml_spec.rb": 0.7210544969993862,8246 "spec/models/webauthn_registration_spec.rb": 0.4224490890001107,8247 "spec/rubocop/cop/sidekiq_api_usage_spec.rb": 0.45021137700041436,8248 "spec/workers/email_receiver_worker_spec.rb": 0.40236395099964284,8249 "spec/initializers/carrierwave_s3_encryption_headers_patch_spec.rb": 0.37987963300020056,8250 "spec/services/emails/create_service_spec.rb": 0.6260147339999094,8251 "spec/lib/gitlab/database/schema_cleaner_spec.rb": 0.3231459660000837,8252 "spec/lib/api/validations/validators/array_none_any_spec.rb": 0.25426224100010586,8253 "spec/lib/gitlab/word_diff/parser_spec.rb": 0.25229599199974473,8254 "spec/lib/gitlab/usage/metrics/instrumentations/count_slack_app_installations_gbp_metric_spec.rb": 0.7805796829998144,8255 "spec/models/integrations/pivotaltracker_spec.rb": 0.37564433199986524,8256 "spec/helpers/listbox_helper_spec.rb": 0.4365945279996595,8257 "spec/workers/object_storage/delete_stale_direct_uploads_worker_spec.rb": 0.2873035290003827,8258 "spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb": 0.7114996679993055,8259 "spec/lib/gitlab/color_schemes_spec.rb": 0.36468559300010384,8260 "spec/helpers/blame_helper_spec.rb": 0.4063419900003282,8261 "spec/scripts/database/migration_collision_checker_spec.rb": 0.2736864999997124,8262 "spec/lib/gitlab/usage/metrics/instrumentations/count_ml_candidates_metric_spec.rb": 0.9383688110001458,8263 "spec/lib/backup/database_backup_error_spec.rb": 0.2775866900001347,8264 "spec/models/project_daily_statistic_spec.rb": 0.18422460700003285,8265 "spec/rubocop/cop/migration/prevent_strings_spec.rb": 0.3988610400001562,8266 "spec/lib/gitlab/cycle_analytics/updater_spec.rb": 0.7955881920006505,8267 "spec/services/user_preferences/update_service_spec.rb": 0.40869953999936115,8268 "spec/views/profiles/show.html.haml_spec.rb": 0.8502587379998658,8269 "spec/spam/concerns/has_spam_action_response_fields_spec.rb": 0.17407366699990234,8270 "spec/workers/gitlab/github_import/import_note_worker_spec.rb": 0.5409690699998464,8271 "spec/lib/bulk_imports/groups/extractors/subgroups_extractor_spec.rb": 0.9888437979998344,8272 "spec/lib/gitlab/changes_list_spec.rb": 0.2161850640004559,8273 "spec/rubocop/cop/api/base_spec.rb": 0.35862518299927615,8274 "spec/config/smime_signature_settings_spec.rb": 0.2762690099998508,8275 "spec/lib/gitlab/auth/activity_spec.rb": 0.27773509999951784,8276 "spec/finders/admin/abuse_report_labels_finder_spec.rb": 0.6581994010002745,8277 "spec/views/projects/issues/_related_branches.html.haml_spec.rb": 0.5314271109991751,8278 "spec/validators/future_date_validator_spec.rb": 0.24775963199954276,8279 "spec/lib/api/helpers/import_github_helpers_spec.rb": 0.31689349699991,8280 "spec/graphql/types/blame/groups_type_spec.rb": 0.2164110339999752,8281 "spec/lib/gitlab/batch_worker_context_spec.rb": 0.24424015200020222,8282 "spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb": 0.8072665310000957,8283 "spec/lib/gitlab/database_importers/default_organization_importer_spec.rb": 0.2595300410002892,8284 "spec/graphql/types/dependency_proxy/image_ttl_group_policy_type_spec.rb": 0.2895097489999898,8285 "spec/lib/gitlab/middleware/rails_queue_duration_spec.rb": 0.2844193589999122,8286 "spec/graphql/types/packages/package_type_spec.rb": 0.25338800200006517,8287 "spec/views/shared/gitlab_version/_security_patch_upgrade_alert.html.haml_spec.rb": 0.2479046919997927,8288 "spec/lib/api/validations/validators/project_portable_spec.rb": 0.28820914900006755,8289 "spec/graphql/types/ci/runner_setup_type_spec.rb": 0.21230505500079744,8290 "spec/models/packages/rubygems/metadatum_spec.rb": 0.3064368369996373,8291 "spec/services/integrations/slack_events/url_verification_service_spec.rb": 0.18237378699996043,8292 "spec/models/doorkeeper/application_spec.rb": 0.3078725269997449,8293 "spec/services/repositories/replicate_service_spec.rb": 0.24735297200004425,8294 "spec/views/admin/application_settings/network.html.haml_spec.rb": 0.4446759069996915,8295 "spec/lib/gitlab/search/sort_options_spec.rb": 0.24800006199984637,8296 "spec/lib/bulk_imports/projects/graphql/get_project_query_spec.rb": 0.31570476700017025,8297 "spec/views/groups/settings/_general.html.haml_spec.rb": 0.4059580699995422,8298 "spec/lib/gitlab/audit/deploy_token_author_spec.rb": 0.21029078500032483,8299 "spec/initializers/0_postgresql_types_spec.rb": 0.23345219299972086,8300 "spec/lib/system_check/incoming_email/imap_authentication_check_spec.rb": 0.2636032410000553,8301 "spec/graphql/types/ci/variable_type_enum_spec.rb": 0.4217116489999171,8302 "spec/lib/gitlab/patch/uri_spec.rb": 0.2108207350001976,8303 "spec/helpers/emoji_helper_spec.rb": 0.22588431300027878,8304 "spec/graphql/types/work_items/widgets/current_user_todos_input_type_spec.rb": 0.2130234840005869,8305 "spec/lib/sidebars/groups/super_sidebar_menus/plan_menu_spec.rb": 0.21352238400049828,8306 "spec/lib/gitlab/utils/error_message_spec.rb": 0.21632867399966926,8307 "spec/lib/gitlab/usage/metrics/instrumentations/ldap_encrypted_secrets_metric_spec.rb": 0.21662540399938734,8308 "spec/lib/gitlab/usage/metrics/instrumentations/edition_metric_spec.rb": 0.1768810770008713,8309 "spec/serializers/rollout_statuses/ingress_entity_spec.rb": 0.17249293700024282,8310 "spec/helpers/admin/application_settings/settings_helper_spec.rb": 0.2262262340000234,8311 "spec/graphql/types/notes/deleted_note_type_spec.rb": 0.17169571700014785,8312 "spec/workers/gitlab/github_import/import_collaborator_worker_spec.rb": 0.20010227600050712,8313 "spec/lib/api/helpers/pagination_spec.rb": 0.1749379980001322,8314 "spec/graphql/types/ci/pipeline_trigger_type_spec.rb": 0.1780482860003758,8315 "spec/lib/gitlab/usage/metrics/instrumentations/index_inconsistencies_metric_spec.rb": 0.17282689700004994,8316 "spec/graphql/types/permission_types/merge_request_type_spec.rb": 0.1686758670002746,8317 "spec/serializers/integrations/harbor_serializers/tag_serializer_spec.rb": 0.1697667469998123,8318 "spec/uploaders/metric_image_uploader_spec.rb": 0.179594576999988938319}8320Knapsack global time execution for tests: 28m 23s8321Pending: (Failures listed here are expected and do not affect your suite's status)8322 1) Ci::CreatePipelineService#execute behaves like creating a pipeline with environment keyword with environment sets tags when build job8323 # No reason given8324 # ./spec/support/shared_examples/ci/create_pipeline_service_environment_shared_examples.rb:228325 2) Gitlab::Database.database_base_models does not contain "ci" when not running CI database8326 # Skipping because some of the extra databases [:ci] are setup8327 # ./spec/lib/gitlab/database_spec.rb:368328 3) Gitlab::Database.schemas_to_base_models contains gitlab_ci pointing to ActiveRecord::Base when not running CI database8329 # Skipping because some of the extra databases [:ci] are setup8330 # ./spec/lib/gitlab/database_spec.rb:678331 4) Gitlab::Database.database_mode three tier database config returns single-database if ci is not configured8332 # Skipping because some of the extra databases [:ci] are setup8333 # ./spec/lib/gitlab/database_spec.rb:1528334 5) Gitlab::Database.database_mode three tier database config returns multiple-database if ci has its own database8335 # Skipping because ci is shared or doesn't not exist8336 # ./spec/lib/gitlab/database_spec.rb:1658337 6) gitlab:db:truncate_legacy_tables when truncating ci tables on the main database behaves like truncating legacy tables when tables are not locked for writes raises an error when trying to truncate the tables8338 # Skipping because ci is shared or doesn't not exist8339 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:418340 7) gitlab:db:truncate_legacy_tables when truncating ci tables on the main database behaves like truncating legacy tables when tables are locked for writes calls TablesTruncate with the correct parameters and default minimum batch size8341 # Skipping because ci is shared or doesn't not exist8342 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:668343 8) gitlab:db:truncate_legacy_tables when truncating ci tables on the main database behaves like truncating legacy tables when tables are locked for writes truncates the legacy table8344 # Skipping because ci is shared or doesn't not exist8345 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:788346 9) gitlab:db:truncate_legacy_tables when truncating ci tables on the main database behaves like truncating legacy tables when tables are locked for writes does not truncate the table that belongs to the connection schema8347 # Skipping because ci is shared or doesn't not exist8348 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:848349 10) gitlab:db:truncate_legacy_tables when truncating ci tables on the main database behaves like truncating legacy tables when tables are locked for writes when running in dry_run mode does not truncate any tables8350 # Skipping because ci is shared or doesn't not exist8351 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:958352 11) gitlab:db:truncate_legacy_tables when truncating ci tables on the main database behaves like truncating legacy tables when tables are locked for writes when running in dry_run mode prints the truncation sql statement to the output8353 # Skipping because ci is shared or doesn't not exist8354 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:1018355 12) gitlab:db:truncate_legacy_tables when truncating ci tables on the main database behaves like truncating legacy tables when tables are locked for writes when passing until_table parameter via environment variable sends the table name to TablesTruncate8356 # Skipping because ci is shared or doesn't not exist8357 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:1138358 13) gitlab:db:truncate_legacy_tables when truncating main tables on the ci database behaves like truncating legacy tables when tables are not locked for writes raises an error when trying to truncate the tables8359 # Skipping because ci is shared or doesn't not exist8360 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:418361 14) gitlab:db:truncate_legacy_tables when truncating main tables on the ci database behaves like truncating legacy tables when tables are locked for writes calls TablesTruncate with the correct parameters and default minimum batch size8362 # Skipping because ci is shared or doesn't not exist8363 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:668364 15) gitlab:db:truncate_legacy_tables when truncating main tables on the ci database behaves like truncating legacy tables when tables are locked for writes truncates the legacy table8365 # Skipping because ci is shared or doesn't not exist8366 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:788367 16) gitlab:db:truncate_legacy_tables when truncating main tables on the ci database behaves like truncating legacy tables when tables are locked for writes does not truncate the table that belongs to the connection schema8368 # Skipping because ci is shared or doesn't not exist8369 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:848370 17) gitlab:db:truncate_legacy_tables when truncating main tables on the ci database behaves like truncating legacy tables when tables are locked for writes when running in dry_run mode does not truncate any tables8371 # Skipping because ci is shared or doesn't not exist8372 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:958373 18) gitlab:db:truncate_legacy_tables when truncating main tables on the ci database behaves like truncating legacy tables when tables are locked for writes when running in dry_run mode prints the truncation sql statement to the output8374 # Skipping because ci is shared or doesn't not exist8375 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:1018376 19) gitlab:db:truncate_legacy_tables when truncating main tables on the ci database behaves like truncating legacy tables when tables are locked for writes when passing until_table parameter via environment variable sends the table name to TablesTruncate8377 # Skipping because ci is shared or doesn't not exist8378 # ./spec/tasks/gitlab/db/truncate_legacy_tables_rake_spec.rb:1138379Finished in 29 minutes 52 seconds (files took 46.34 seconds to load)83803642 examples, 0 failures, 19 pending8381Randomized with seed 392478382[TEST PROF INFO] Time spent in factories: 16:00.533 (53.41% of total time)8383RSpec exited with 0.8384No examples to retry, congrats!8386Running after script...8387$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"8391$ tooling/bin/push_job_metrics || true8392[job-metrics] Pushing job metrics file for the CI/CD job.8393[job-metrics] Pushed 4 CI job metric entries to InfluxDB.8395Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8397Uploading artifacts...8398auto_explain/: found 3 matching artifact files and directories 8399coverage/: found 5 matching artifact files and directories 8400crystalball/: found 2 matching artifact files and directories 8401deprecations/: found 3 matching artifact files and directories 8402knapsack/: found 4 matching artifact files and directories 8403rspec/: found 16 matching artifact files and directories 8404WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8405log/*.log: found 20 matching artifact files and directories 8406WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336650961/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8407WARNING: Retrying... context=artifacts-uploader error=request redirected8408Uploading artifacts as "archive" to coordinator... 201 Created id=5336650961 responseStatus=201 Created token=64_7kFsA8409Uploading artifacts...8410rspec/rspec-*.xml: found 1 matching artifact files and directories 8411WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/5336650961/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8412WARNING: Retrying... context=artifacts-uploader error=request redirected8413Uploading artifacts as "junit" to coordinator... 201 Created id=5336650961 responseStatus=201 Created token=64_7kFsA8415Job succeeded