rspec unit pg14 2/28
Passed Started
by
@edith007

Siddharth Asthana
1WARNING: Service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 is already created. Ignoring.2Starting service registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...3Authenticating with credentials from job payload (GitLab Registry)4Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 ...5Using docker image sha256:a9a90ece30d9630d694ab1997cd103ea8ec729789451b983a75c7b58b0062d45 for registry.gitlab.com/gitlab-org/gitlab-build-images:redis-cluster-6.2.12 with digest registry.gitlab.com/gitlab-org/gitlab-build-images@sha256:7ef36177d5d0bc554fbb63d8210ae751bcc538bea7905b51d078d9ab90a755fa ...6Starting service redis:6.2-alpine ...7Pulling docker image redis:6.2-alpine ...8Using docker image sha256:d0675d033b87382205d08b598a004a99a1f6c4bd377cc86bb6df8957ce7dbb1c for redis:6.2-alpine with digest redis@sha256:740b5c973d1c9eea6e124a3905ba73d32354d0549f98ccc9e67af1af2a9ba478 ...9Waiting for services to be up and running (timeout 30 seconds)...10Authenticating with credentials from job payload (GitLab Registry)11Pulling 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 ...12Using docker image sha256:24a9e92645b17c878623efd51b7564f81e480bd281e94d7f33971082e0ca80e0 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:ca349d228348f199cb57f574476584f42aca338747393ed93a9032a0261afc4d ...14Running on runner-mf8bef5g-project-27783254-concurrent-0 via runner-mf8bef5g-shared-gitlab-org-1691891528-3b3dacd8...16Fetching changes with git depth set to 20...17Initialized empty Git repository in /builds/edith007/gitlab/.git/18Created fresh repository.19Checking out 199b254b as detached HEAD (ref is master)...20Skipping Git submodules setup21$ git remote set-url origin "${CI_REPOSITORY_URL}"23Checking cache for ruby-gems-debian-bullseye-ruby-3.0-protected...24WARNING: file does not exist 25Failed to extract cache27Downloading artifacts for compile-test-assets (4863613909)...28Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4863613909 responseStatus=200 OK token=64_TKCzp29Downloading artifacts for retrieve-tests-metadata (4863613915)...30Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4863613915 responseStatus=200 OK token=64_TKCzp31Downloading artifacts for setup-test-env (4863613912)...32Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4863613912 responseStatus=200 OK token=64_TKCzp34Using docker image sha256:24a9e92645b17c878623efd51b7564f81e480bd281e94d7f33971082e0ca80e0 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:ca349d228348f199cb57f574476584f42aca338747393ed93a9032a0261afc4d ...35$ echo $FOSS_ONLY36$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb37$ export GOPATH=$CI_PROJECT_DIR/.go38$ mkdir -p $GOPATH39$ source scripts/utils.sh40$ source scripts/prepare_build.sh1351Using decomposed database config (config/database.yml.decomposed-postgresql)1352Geo DB won't be set up.1353Embedding DB won't be set up.1365$ source ./scripts/rspec_helpers.sh1366$ run_timed_command "gem install knapsack --no-document"1367$ gem install knapsack --no-document1368Successfully installed knapsack-4.0.013691 gem installed1370==> 'gem install knapsack --no-document' succeeded in 1 seconds.1371$ section_start "gitaly-test-spawn" "Spawning Gitaly"; scripts/gitaly-test-spawn; section_end "gitaly-test-spawn"1376$ export RSPEC_SKIPPED_TESTS_REPORT_PATH="rspec/skipped_tests-${CI_JOB_ID}.txt"1377$ export RSPEC_RETRIED_TESTS_REPORT_PATH="rspec/retried_tests-${CI_JOB_ID}.txt"1378$ rspec_paralellized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house"1379SKIP_FLAKY_TESTS_AUTOMATICALLY: 1380RETRY_FAILED_TESTS_IN_NEW_PROCESS: true1381KNAPSACK_GENERATE_REPORT: true1382FLAKY_RSPEC_GENERATE_REPORT: true1383KNAPSACK_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.rb1384KNAPSACK_LOG_LEVEL: debug1385KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg14_2_28_report.json1386FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json1387FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg14_2_28_report.json1388NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg14_2_28_report.json1389RSPEC_SKIPPED_TESTS_REPORT_PATH: rspec/skipped_tests-4863614011.txt1390CRYSTALBALL: 1391RSPEC_TESTS_MAPPING_ENABLED: 1392RSPEC_TESTS_FILTER_FILE: 1393Shell set options (set -o) enabled:1394braceexpand on1395hashall on1396interactive-comments on1397pipefail on1398Running 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-4863614011.json --format RspecJunitFormatter --out rspec/rspec-4863614011.xml --fail-fast=20 --tag ~quarantine --tag ~level:background_migration --tag ~click_house -- spec/models/project_spec.rb spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb spec/tasks/gitlab/seed/group_seed_rake_spec.rb spec/lib/gitlab/background_migration/disable_legacy_open_source_license_for_no_issues_no_repo_projects_spec.rb spec/services/groups/update_service_spec.rb spec/lib/gitlab/ci/parsers/security/common_spec.rb spec/lib/gitlab/bitbucket_server_import/importer_spec.rb spec/lib/gitlab/background_migration/fix_vulnerability_reads_has_issues_spec.rb spec/services/packages/debian/process_package_file_service_spec.rb spec/workers/repository_fork_worker_spec.rb spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb spec/lib/gitlab/git/diff_collection_spec.rb spec/models/label_spec.rb spec/finders/releases_finder_spec.rb spec/services/projects/cleanup_service_spec.rb spec/models/commit_range_spec.rb spec/finders/members_finder_spec.rb spec/models/ml/candidate_spec.rb spec/models/trending_project_spec.rb spec/lib/banzai/reference_parser/base_parser_spec.rb spec/models/integrations/datadog_spec.rb spec/lib/gitlab/ci/trace/stream_spec.rb spec/lib/banzai/filter/references/reference_filter_spec.rb spec/lib/gitlab/ci/trace/chunked_io_spec.rb spec/lib/gitlab/cycle_analytics/permissions_spec.rb spec/models/terraform/state_spec.rb spec/lib/gitlab/diff/lines_unfolder_spec.rb spec/models/hooks/active_hook_filter_spec.rb spec/serializers/pipeline_details_entity_spec.rb spec/lib/gitlab/utils/sanitize_node_link_spec.rb spec/lib/gitlab/ci/config/entry/need_spec.rb spec/services/upload_service_spec.rb spec/lib/gitlab/database/migration_helpers/v2_spec.rb spec/graphql/mutations/merge_requests/set_assignees_spec.rb spec/graphql/types/merge_request_type_spec.rb spec/finders/merge_requests/oldest_per_commit_finder_spec.rb spec/lib/api/entities/merge_request_basic_spec.rb spec/finders/clusters/kubernetes_namespace_finder_spec.rb spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb spec/lib/gitlab/background_migration/backfill_project_import_level_spec.rb spec/services/security/ci_configuration/sast_create_service_spec.rb spec/lib/gitlab/doctor/secrets_spec.rb spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb spec/graphql/mutations/container_expiration_policies/update_spec.rb spec/services/merge_requests/merge_orchestration_service_spec.rb spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb spec/serializers/issue_sidebar_basic_entity_spec.rb spec/models/packages/debian/group_component_file_spec.rb spec/lib/banzai/reference_parser/commit_parser_spec.rb spec/models/users_statistics_spec.rb spec/lib/gitlab/git/blame_spec.rb spec/models/concerns/ci/has_ref_spec.rb spec/models/dependency_proxy/manifest_spec.rb spec/models/grafana_integration_spec.rb spec/lib/gitlab/ci/config/external/file/remote_spec.rb spec/graphql/mutations/releases/delete_spec.rb spec/lib/gitlab/ci/variables/collection/sort_spec.rb spec/lib/gitlab/spamcheck/client_spec.rb spec/models/concerns/project_features_compatibility_spec.rb spec/finders/projects/prometheus/alerts_finder_spec.rb spec/graphql/types/base_field_spec.rb spec/lib/gitlab/import_export/shared_spec.rb spec/lib/error_tracking/sentry_client/projects_spec.rb spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb spec/services/projects/container_repository/destroy_service_spec.rb spec/lib/gitlab/error_tracking/context_payload_generator_spec.rb spec/graphql/mutations/alert_management/create_alert_issue_spec.rb spec/models/protected_branch/merge_access_level_spec.rb spec/helpers/users/callouts_helper_spec.rb spec/lib/mattermost/session_spec.rb spec/tasks/rubocop_rake_spec.rb spec/services/system_notes/alert_management_service_spec.rb spec/tasks/gitlab/x509/update_rake_spec.rb spec/lib/gitlab/import_export/repo_restorer_spec.rb spec/tasks/gitlab/background_migrations_rake_spec.rb spec/models/instance_configuration_spec.rb spec/uploaders/gitlab_uploader_spec.rb spec/models/integrations/chat_message/wiki_page_message_spec.rb spec/lib/gitlab/ci/variables/builder/project_spec.rb spec/lib/gitlab/slash_commands/presenters/issue_comment_spec.rb spec/policies/resource_milestone_event_policy_spec.rb spec/lib/sidebars/user_profile/menus/snippets_menu_spec.rb spec/lib/gitlab/ci/config/entry/port_spec.rb spec/lib/api/entities/ml/mlflow/run_spec.rb spec/components/diffs/overflow_warning_component_spec.rb spec/lib/bulk_imports/pipeline/runner_spec.rb spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb spec/lib/slack_markdown_sanitizer_spec.rb spec/lib/gitlab/database/health_status/indicators/autovacuum_active_on_table_spec.rb spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb spec/models/blob_viewer/readme_spec.rb spec/serializers/merge_request_user_entity_spec.rb spec/lib/gitlab/lfs_token_spec.rb spec/services/bulk_imports/export_service_spec.rb spec/lib/banzai/reference_parser/design_parser_spec.rb spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb spec/models/concerns/bulk_insert_safe_spec.rb spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb spec/lib/banzai/reference_parser/feature_flag_parser_spec.rb spec/services/ci/create_pipeline_service/artifacts_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb spec/graphql/mutations/container_repositories/destroy_tags_spec.rb spec/lib/gitlab/ci/status/success_spec.rb spec/graphql/resolvers/design_management/design_resolver_spec.rb spec/lib/gitlab/jira/dvcs_spec.rb spec/services/user_project_access_changed_service_spec.rb spec/lib/gitlab/data_builder/feature_flag_spec.rb spec/lib/gitlab/rack_attack/store_spec.rb spec/lib/bulk_imports/projects/pipelines/protected_branches_pipeline_spec.rb spec/lib/gitlab/pipeline_scope_counts_spec.rb spec/lib/gitlab/cross_project_access/check_info_spec.rb spec/lib/gitlab/database/migrations/test_background_runner_spec.rb spec/services/merge_requests/execute_approval_hooks_service_spec.rb spec/lib/atlassian/jira_connect/jwt/symmetric_spec.rb spec/views/admin/application_settings/_repository_check.html.haml_spec.rb spec/services/ci/job_token_scope/remove_project_service_spec.rb spec/graphql/types/project_invitation_type_spec.rb spec/support_specs/helpers/migrations_helpers_spec.rb spec/lib/gitlab/hook_data/group_builder_spec.rb spec/lib/gitlab/ci/config/entry/services_spec.rb spec/lib/gitlab/pages/deployment_update_spec.rb spec/graphql/types/work_item_id_type_spec.rb spec/services/packages/create_event_service_spec.rb spec/workers/destroy_pages_deployments_worker_spec.rb spec/lib/sidebars/projects/menus/project_information_menu_spec.rb spec/tooling/danger/customer_success_spec.rb spec/views/admin/application_settings/_package_registry.html.haml_spec.rb spec/scripts/api/get_package_and_test_job_spec.rb spec/lib/gitlab/ci/config/entry/id_token_spec.rb spec/services/emails/destroy_service_spec.rb spec/rubocop/cop/performance/active_record_subtransactions_spec.rb spec/workers/bulk_imports/relation_batch_export_worker_spec.rb spec/serializers/runner_entity_spec.rb spec/lib/gitlab/ci/config/normalizer/number_strategy_spec.rb spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb spec/lib/gitlab/background_migration/encrypt_ci_trigger_token_spec.rb spec/services/award_emojis/collect_user_emoji_service_spec.rb spec/graphql/resolvers/issue_status_counts_resolver_spec.rb spec/rubocop/cop/gitlab/predicate_memoization_spec.rb spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb spec/lib/gitlab/safe_request_purger_spec.rb spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb spec/graphql/types/release_asset_link_input_type_spec.rb spec/lib/gitlab/unicode_spec.rb spec/finders/packages/package_file_finder_spec.rb spec/services/resource_events/merge_into_notes_service_spec.rb spec/models/blob_viewer/podspec_spec.rb spec/lib/gitlab/ci/build/policy_spec.rb spec/serializers/accessibility_reports_comparer_serializer_spec.rb spec/workers/design_management/copy_design_collection_worker_spec.rb spec/serializers/merge_request_sidebar_extras_entity_spec.rb spec/graphql/types/packages/nuget/dependency_link_metdatum_type_spec.rb spec/graphql/types/projects/fork_details_type_spec.rb spec/services/packages/nuget/extract_metadata_file_service_spec.rb spec/presenters/packages/helm/index_presenter_spec.rb spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb spec/presenters/deploy_key_presenter_spec.rb spec/views/projects/tree/show.html.haml_spec.rb spec/lib/system_check/orphans/repository_check_spec.rb spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb spec/presenters/ml/candidate_details_presenter_spec.rb spec/workers/pipeline_notification_worker_spec.rb spec/rubocop/cop/gitlab/rails_logger_spec.rb spec/lib/gitlab/import/set_async_jid_spec.rb spec/lib/gitlab/ci/build/releaser_spec.rb spec/services/projects/count_service_spec.rb spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb spec/models/integrations/pushover_spec.rb spec/lib/gitlab/plantuml_spec.rb spec/views/projects/blob/_viewer.html.haml_spec.rb spec/lib/gitlab/checks/file_size_check/hook_environment_aware_any_oversized_blobs_spec.rb spec/lib/gitlab/health_checks/puma_check_spec.rb spec/lib/api/entities/deploy_key_spec.rb spec/finders/terraform/states_finder_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_snippets_metric_spec.rb spec/lib/gitlab/github_import/page_counter_spec.rb spec/lib/bulk_imports/pipeline_spec.rb spec/models/user_mentions/merge_request_user_mention_spec.rb spec/graphql/types/color_type_spec.rb spec/serializers/blob_entity_spec.rb spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb spec/policies/resource_state_event_policy_spec.rb spec/config/smime_signature_settings_spec.rb spec/lib/gitlab/config/entry/composable_array_spec.rb spec/workers/ci/runners/reconcile_existing_runner_versions_cron_worker_spec.rb spec/models/projects/project_topic_spec.rb spec/lib/gitlab/repository_size_error_message_spec.rb spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb spec/serializers/analytics_build_serializer_spec.rb spec/workers/dependency_proxy/cleanup_manifest_worker_spec.rb spec/services/work_items/widgets/hierarchy_service/create_service_spec.rb spec/models/ml/experiment_metadata_spec.rb spec/models/concerns/from_intersect_spec.rb spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb spec/lib/gitlab/metrics/elasticsearch_rack_middleware_spec.rb spec/serializers/analytics_issue_serializer_spec.rb spec/serializers/analytics_merge_request_serializer_spec.rb spec/lib/gitlab/ci/config/entry/publish_spec.rb spec/lib/gitlab/config/entry/boolean_spec.rb spec/models/concerns/blob_language_from_git_attributes_spec.rb spec/views/admin/application_settings/_eks.html.haml_spec.rb spec/validators/future_date_validator_spec.rb spec/routing/user_routing_spec.rb spec/workers/concerns/gitlab/notify_upon_death_spec.rb spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb spec/presenters/milestone_presenter_spec.rb spec/lib/gitlab/pages/random_domain_spec.rb spec/rubocop/cop/sidekiq_options_queue_spec.rb spec/serializers/ci/codequality_mr_diff_report_serializer_spec.rb spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/service_ping_features_metric_spec.rb spec/lib/gitlab/graphql_logger_spec.rb spec/serializers/merge_request_basic_entity_spec.rb spec/rubocop/cop/migration/add_index_spec.rb spec/rubocop/cop/scalability/idempotent_worker_spec.rb spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb spec/graphql/types/visibility_pipeline_id_type_enum_spec.rb spec/lib/sidebars/groups/super_sidebar_menus/monitor_menu_spec.rb spec/lib/api/entities/plan_limit_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_group_type_active_online_metric_spec.rb spec/services/deploy_keys/create_service_spec.rb spec/lib/gitlab/safe_device_detector_spec.rb spec/workers/gitlab/github_import/pull_requests/import_review_request_worker_spec.rb spec/lib/api/entities/user_counts_spec.rb spec/graphql/types/permission_types/project_spec.rb spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb spec/graphql/types/ci/pipeline_trigger_type_spec.rb spec/serializers/evidences/release_serializer_spec.rb spec/graphql/resolvers/packages_base_resolver_spec.rb spec/graphql/types/merge_request_review_state_enum_spec.rb spec/services/packages/rpm/repository_metadata/build_primary_xml_service_spec.rb spec/lib/bitbucket/collection_spec.rb spec/lib/gitlab/kubernetes/role_spec.rb spec/finders/projects_finder_spec.rbKnapsack report generator started!1399/builds/edith007/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!1400/builds/edith007/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!1401/builds/edith007/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!1402/builds/edith007/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!1403/builds/edith007/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!1404/builds/edith007/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!1405/builds/edith007/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!1406/builds/edith007/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!1407/builds/edith007/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:17: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!1408/builds/edith007/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:24: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!1409/builds/edith007/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:25: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!1410/builds/edith007/gitlab/ee/lib/remote_development/workspaces/create/creator.rb:28: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!1411/builds/edith007/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!1412/builds/edith007/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!1413/builds/edith007/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!1414/builds/edith007/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!1415/builds/edith007/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!1416/builds/edith007/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!1417/builds/edith007/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!1418/builds/edith007/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!1419/builds/edith007/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!1420/builds/edith007/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!1421/builds/edith007/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!1422/builds/edith007/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!1423/builds/edith007/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!1424/builds/edith007/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!1425/builds/edith007/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!1426/builds/edith007/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!1427/builds/edith007/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!1428/builds/edith007/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!1429/builds/edith007/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!1430/builds/edith007/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!1431/builds/edith007/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!1432/builds/edith007/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!1433/builds/edith007/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!1434/builds/edith007/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!1435/builds/edith007/gitlab/ee/lib/remote_development/workspaces/update/updater.rb:12: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!1436/builds/edith007/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!1437/builds/edith007/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!1438/builds/edith007/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!1439/builds/edith007/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!1440/builds/edith007/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!1441/builds/edith007/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!1442/builds/edith007/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!1443/builds/edith007/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!1444/builds/edith007/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!1445/builds/edith007/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!1446/builds/edith007/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!1447Run options: exclude {:quarantine=>true, :level=>"background_migration", :click_house=>true}1448Test environment set up in 1.295703666 seconds1449Project1450 returns valid url to repo1451 behaves like having unique enum values1452 has unique values in "auto_cancel_pending_pipelines"1453 behaves like ensures runners_token is prefixed1454 #runners_token1455 generates runners_token which starts with runner prefix1456 when record has an invalid token1457 generates runners_token which starts with runner prefix1458 associations1459 is expected to belong to group required: false1460 is expected to belong to namespace required: false1461 is expected to belong to project_namespace class_name => Namespaces::ProjectNamespace required: false inverse_of => project1462 is expected to belong to creator class_name => User required: false1463 is expected to belong to pool_repository required: false1464 is expected to have many users1465 is expected to have many events1466 is expected to have many merge_requests1467 is expected to have many merge_request_metrics class_name => MergeRequest::Metrics1468 is expected to have many issues1469 is expected to have many work_items1470 is expected to have many incident_management_issuable_escalation_statuses class_name => IncidentManagement::IssuableEscalationStatus through issues inverse_of => project1471 is expected to have many milestones1472 is expected to have many project_members dependent => delete_all1473 is expected to have many namespace_members1474 is expected to have many users through project_members1475 is expected to have many requesters dependent => delete_all1476 is expected to have many namespace_requesters1477 is expected to have many notes dependent => destroy1478 is expected to have many snippets class_name => ProjectSnippet1479 is expected to have many deploy_keys_projects1480 is expected to have many deploy_keys1481 is expected to have many hooks1482 is expected to have many protected_branches1483 is expected to have many exported_protected_branches1484 is expected to have one wiki_repository class_name => Projects::WikiRepository inverse_of => project1485 is expected to have one design_management_repository class_name => DesignManagement::Repository inverse_of => project1486 is expected to have one slack_integration1487 is expected to have one catalog_resource1488 is expected to have many catalog_resource_versions class_name => Ci::Catalog::Resources::Version1489 is expected to have one microsoft_teams_integration1490 is expected to have one mattermost_integration1491 is expected to have one hangouts_chat_integration1492 is expected to have one telegram_integration1493 is expected to have one unify_circuit_integration1494 is expected to have one pumble_integration1495 is expected to have one webex_teams_integration1496 is expected to have one packagist_integration1497 is expected to have one pushover_integration1498 is expected to have one apple_app_store_integration1499 is expected to have one google_play_integration1500 is expected to have one asana_integration1501 is expected to have many boards1502 is expected to have one campfire_integration1503 is expected to have one datadog_integration1504 is expected to have one discord_integration1505 is expected to have one drone_ci_integration1506 is expected to have one emails_on_push_integration1507 is expected to have one pipelines_email_integration1508 is expected to have one irker_integration1509 is expected to have one pivotaltracker_integration1510 is expected to have one assembla_integration1511 is expected to have one slack_slash_commands_integration1512 is expected to have one mattermost_slash_commands_integration1513 is expected to have one buildkite_integration1514 is expected to have one bamboo_integration1515 is expected to have one teamcity_integration1516 is expected to have one jira_integration1517 is expected to have one harbor_integration1518 is expected to have one redmine_integration1519 is expected to have one youtrack_integration1520 is expected to have one clickup_integration1521 is expected to have one custom_issue_tracker_integration1522 is expected to have one bugzilla_integration1523 is expected to have one ewm_integration1524 is expected to have one external_wiki_integration1525 is expected to have one confluence_integration1526 is expected to have one gitlab_slack_application_integration1527 is expected to have one project_feature1528 is expected to have one project_repository1529 is expected to have one container_expiration_policy1530 is expected to have one statistics class_name => ProjectStatistics1531 is expected to have one import_data class_name => ProjectImportData1532 is expected to have one last_event class_name => Event1533 is expected to have one forked_from_project through fork_network_member1534 is expected to have one auto_devops class_name => ProjectAutoDevops1535 is expected to have one error_tracking_setting class_name => ErrorTracking::ProjectErrorTrackingSetting1536 is expected to have one project_setting1537 is expected to have one alerting_setting class_name => Alerting::ProjectAlertingSetting1538 is expected to have one mock_ci_integration1539 is expected to have one mock_monitoring_integration1540 is expected to have one service_desk_custom_email_verification class_name => ServiceDesk::CustomEmailVerification1541 is expected to have one container_registry_data_repair_detail class_name => ContainerRegistry::DataRepairDetail1542 is expected to have many commit_statuses1543 is expected to have many ci_pipelines1544 is expected to have many ci_refs1545 is expected to have many builds1546 is expected to have many build_report_results1547 is expected to have many runner_projects1548 is expected to have many runners1549 is expected to have many variables1550 is expected to have many triggers1551 is expected to have many labels class_name => ProjectLabel1552 is expected to have many users_star_projects1553 is expected to have many repository_languages1554 is expected to have many environments1555 is expected to have many deployments1556 is expected to have many todos1557 is expected to have many releases1558 is expected to have many lfs_objects_projects1559 is expected to have many project_group_links1560 is expected to have many notification_settings dependent => delete_all1561 is expected to have many forked_to_members class_name => ForkNetworkMember1562 is expected to have many forks through forked_to_members1563 is expected to have many uploads1564 is expected to have many pipeline_schedules1565 is expected to have many members_and_requesters1566 is expected to have many namespace_members_and_requesters1567 is expected to have many clusters1568 is expected to have many management_clusters class_name => Clusters::Cluster1569 is expected to have many kubernetes_namespaces1570 is expected to have many cluster_agents class_name => Clusters::Agent1571 is expected to have many custom_attributes class_name => ProjectCustomAttribute1572 is expected to have many project_badges class_name => ProjectBadge1573 is expected to have many lfs_file_locks1574 is expected to have many project_deploy_tokens1575 is expected to have many deploy_tokens through project_deploy_tokens1576 is expected to have many external_pull_requests1577 is expected to have many sourced_pipelines1578 is expected to have many source_pipelines1579 is expected to have many prometheus_alert_events1580 is expected to have many self_managed_prometheus_alert_events1581 is expected to have many alert_management_alerts1582 is expected to have many alert_management_http_integrations1583 is expected to have many jira_imports1584 is expected to have many metrics_users_starred_dashboards inverse_of => project1585 is expected to have many repository_storage_moves1586 is expected to have many reviews inverse_of => project1587 is expected to have many packages class_name => Packages::Package1588 is expected to have many package_files class_name => Packages::PackageFile1589 is expected to have many rpm_repository_files class_name => Packages::Rpm::RepositoryFile inverse_of => project dependent => destroy1590 is expected to have many debian_distributions class_name => Packages::Debian::ProjectDistribution dependent => destroy1591 is expected to have many npm_metadata_caches class_name => Packages::Npm::MetadataCache1592 is expected to have one packages_cleanup_policy class_name => Packages::Cleanup::Policy inverse_of => project1593 is expected to have many pipeline_artifacts dependent => restrict_with_error1594 is expected to have many terraform_states class_name => Terraform::State inverse_of => project1595 is expected to have many timelogs1596 is expected to have many error_tracking_client_keys class_name => ErrorTracking::ClientKey1597 is expected to have many pending_builds class_name => Ci::PendingBuild1598 is expected to have many ci_feature_usages class_name => Projects::CiFeatureUsage1599 is expected to have many bulk_import_exports class_name => BulkImports::Export1600 is expected to have many job_artifacts dependent => restrict_with_error1601 is expected to have many build_trace_chunks through builds dependent => restrict_with_error1602 is expected to have many secure_files class_name => Ci::SecureFile dependent => restrict_with_error1603 is expected to have one build_artifacts_size_refresh class_name => Projects::BuildArtifactsSizeRefresh1604 is expected to have many project_callouts class_name => Users::ProjectCallout1605 is expected to have many pipeline_metadata class_name => Ci::PipelineMetadata1606 is expected to have many incident_management_timeline_event_tags class_name => IncidentManagement::TimelineEventTag1607 is expected to have many integrations1608 is expected to have many push_hooks_integrations class_name => Integration1609 is expected to have many tag_push_hooks_integrations class_name => Integration1610 is expected to have many issue_hooks_integrations class_name => Integration1611 is expected to have many confidential_issue_hooks_integrations class_name => Integration1612 is expected to have many merge_request_hooks_integrations class_name => Integration1613 is expected to have many note_hooks_integrations class_name => Integration1614 is expected to have many confidential_note_hooks_integrations class_name => Integration1615 is expected to have many job_hooks_integrations class_name => Integration1616 is expected to have many archive_trace_hooks_integrations class_name => Integration1617 is expected to have many pipeline_hooks_integrations class_name => Integration1618 is expected to have many wiki_page_hooks_integrations class_name => Integration1619 is expected to have many deployment_hooks_integrations class_name => Integration1620 is expected to have many alert_hooks_integrations class_name => Integration1621 is expected to have many incident_hooks_integrations class_name => Integration1622 is expected to have many pages_domains1623 is expected to have one pages_metadatum1624 is expected to have many pages_deployments1625 has an inverse relationship with merge requests1626 has a distinct has_many :lfs_objects relation through lfs_objects_projects1627 behaves like model with repository1628 container class includes HasRepository1629 #commits_by1630 retrieves several commits from the repository by oid1631 #web_url1632 when given the only_path option1633 when only_path is false1634 returns the full web URL for this repo1635 when only_path is true1636 returns the relative web URL for this repo1637 when only_path is nil1638 returns the full web URL for this repo1639 when not given the only_path option1640 returns the full web URL for this repo1641 #url_to_repo1642 returns the SSH URL to the repository1643 #ssh_url_to_repo1644 returns the SSH URL to the repository1645 #http_url_to_repo1646 returns the HTTP URL to the repository1647 #repository1648 returns valid repo1649 uses the same container1650 #storage1651 returns valid storage1652 #full_path1653 returns valid full_path1654 #lfs_enabled?1655 returns the expected value1656 #empty_repo?1657 when the repo does not exist1658 returns true1659 when the repo exists1660 returns the empty state of the repository1661 #valid_repo?1662 is expected to equal false1663 is expected to equal true1664 #repository_exists?1665 is expected to equal false1666 is expected to equal true1667 #repo_exists?1668 is expected to equal false1669 is expected to equal true1670 #root_ref1671 is expected to equal true1672 is expected to equal false1673 is expected to equal false1674 Respond to1675 is expected to respond to #base_dir1676 is expected to respond to #disk_path1677 is expected to respond to #gitlab_shell1678 #change_head1679 delegates #change_head to repository1680 #after_repository_change_head1681 calls #reload_default_branch1682 publishes an Repositories::DefaultBranchChangedEvent event1683 behaves like model with wiki1684 #create_wiki1685 returns true if the wiki repository already exists1686 returns true if the wiki repository was created1687 when the repository cannot be created1688 returns false and adds a validation error1689 #wiki_repository_exists?1690 returns true when the wiki repository exists1691 returns false when the wiki repository does not exist1692 wiki path conflict1693 when the new path has been used by the wiki of other Project1694 has an error on the name attribute1695 when the new wiki path has been used by the path of other Project1696 has an error on the name attribute1697 when the new path has been used by the wiki of other Group1698 has an error on the name attribute1699 when the new wiki path has been used by the path of other Group1700 has an error on the name attribute1701 behaves like can move repository storage1702 #set_repository_read_only!1703 makes the repository read-only1704 raises an error if the project is already read-only1705 raises an error when there is an existing git transfer in progress1706 skip_git_transfer_check is true1707 makes the project read-only when git transfers are in progress1708 #set_repository_writable!1709 sets repository_read_only to false1710 #reference_counter1711 returns a Gitlab::ReferenceCounter object1712 after initialized1713 has a project_feature1714 when deleting project1715 also deletes the associated ProjectNamespace1716 when project has object storage attached to it1717 when associated object storage object is not deleted before the project1718 adds an error to project1719 when associated object storage object is deleted before the project1720 deletes the project1721 when creating a new project1722 automatically creates a CI/CD settings row1723 automatically creates a container expiration policy row1724 does not create another container expiration policy if there is already one1725 automatically creates a Pages metadata row1726 automatically builds a project setting row1727 with project namespaces1728 behaves like creates project namespace1729 automatically creates a project namespace1730 updating a project1731 when project has an associated project namespace1732 project is INVALID when trying to remove project namespace1733 when same project is being updated in 2 instances1734 syncs only changed attributes1735 updating cd_cd_settings1736 does not raise an error1737 #namespace_members1738 includes the correct users1739 is equivalent to #project_members1740 behaves like query without source filters1741 is expected not to include "source_id" and "source_type"1742 #namespace_requesters1743 includes the correct users1744 is equivalent to #project_members1745 behaves like query without source filters1746 is expected not to include "source_id" and "source_type"1747 #namespace_members_and_requesters1748 includes the correct users1749 is equivalent to #project_members1750 behaves like query without source filters1751 is expected not to include "source_id" and "source_type"1752 #namespace_members setters1753 is expected to be an instance of ProjectMember1754 is expected to eq #<User id:12 @user11>1755 is expected to eq #<Project id:24 namespace1/project-28>>1756 is expected to be nil1757 behaves like polymorphic membership relationship1758 is expected to include {"source_type" => "Project", "source_id" => 24}1759 behaves like member_namespace membership relationship1760 is expected to include {"member_namespace_id" => 38}1761 #namespace_requesters setters1762 is expected to be an instance of ProjectMember1763 is expected to eq #<User id:13 @user12>1764 is expected to eq #<Project id:25 namespace1/project-29>>1765 is expected to eq 2023-08-13 07:12:14.262611498 +00001766 behaves like polymorphic membership relationship1767 is expected to include {"source_type" => "Project", "source_id" => 25}1768 behaves like member_namespace membership relationship1769 is expected to include {"member_namespace_id" => 40}1770 #namespace_members_and_requesters setters1771 is expected to be an instance of ProjectMember1772 is expected to eq #<User id:14 @user13>1773 is expected to eq #<Project id:26 namespace1/project-30>>1774 is expected to eq 2023-08-13 07:12:14.866790875 +00001775 behaves like polymorphic membership relationship1776 is expected to include {"source_type" => "Project", "source_id" => 26}1777 behaves like member_namespace membership relationship1778 is expected to include {"member_namespace_id" => 42}1779 #members & #requesters1780 behaves like members and requesters associations1781 #members_and_requesters1782 includes members and requesters1783 #members1784 includes members and exclude requesters1785 #requesters1786 does not include requesters1787 ci_pipelines association1788 returns only pipelines from ci_sources1789 order of the `has_many :notes` association1790 has `has_many :notes` as the first association among all the other associations thatincludes the `Issuable` module1791 modules1792 is expected to includes the Gitlab::ConfigHelper module1793 is expected to includes the Gitlab::ShellAdapter module1794 is expected to includes the Gitlab::VisibilityLevel module1795 is expected to includes the Referable module1796 is expected to includes the Sortable module1797 before_validation1798 with removal of leading spaces1799 removes the leading space1800 when name is nil1801 falls through to the presence validation1802 validation1803 is expected to validate that :name cannot be empty/falsy1804 is expected to validate that :name is case-sensitively unique within the scope of :namespace_id1805 is expected to validate that the length of :name is at most 2551806 is expected to allow :name to be ‹"space last "›1807 is expected not to allow :path to be ‹"colon:in:path"›1808 is expected to validate that :path cannot be empty/falsy1809 is expected to validate that the length of :path is at most 2551810 is expected to validate that the length of :description is at most 20001811 is expected to validate that the length of :ci_config_path is at most 2551812 is expected to allow :ci_config_path to be ‹""›1813 is expected not to allow :ci_config_path to be ‹"test/../foo"›1814 is expected not to allow :ci_config_path to be ‹"/test/foo"›1815 is expected to validate that :creator cannot be empty/falsy1816 is expected to validate that :namespace cannot be empty/falsy1817 is expected to validate that :repository_storage cannot be empty/falsy1818 is expected to validate that :max_artifacts_size looks like an integer greater than 01819 is expected to validate that the length of :suggestion_commit_message is at most 2551820 validates build timeout constraints1821 does not allow new projects beyond user limits1822 validates the visibility1823 validates presence of project_feature1824 validates project namespace creation1825 does not create project namespace if project is not created1826 repository storages inclusion1827 does not allow repository storages that don't match a label in the configuration1828 import_url1829 does not allow an invalid URI as import_url1830 does allow a SSH URI as import_url for persisted projects1831 does not allow a SSH URI as import_url for new projects1832 does allow a valid URI as import_url1833 allows an empty URI1834 does not produce import data on an empty URI1835 does not produce import data on an invalid URI1836 does not allow import_url pointing to localhost1837 does not allow import_url pointing to the local network1838 does not allow import_url with invalid ports for new projects1839 does not allow import_url with invalid ports for persisted projects1840 does not allow import_url with invalid user1841 does not allow URLs with unencoded CR or LF characters1842 allow URLs with CR or LF characters1843 project pending deletion1844 contains errors related to the project being deleted1845 path validation1846 allows paths reserved on the root namespace1847 rejects paths reserved on another level1848 rejects nested paths1849 allows a reserved group name1850 rejects a path ending in '.'1851 rejects a path starting with '.'1852 rejects a path ending in '-'1853 rejects a path starting with '-'1854 rejects a path ending in '_'1855 rejects a path starting with '_'1856 when validating if path already exist as pages unique domain1857 rejects paths that match pages unique domain1858 accepts path when the host does not match1859 accepts path when the domain does not match1860 path is unchanged1861 does not raise validation error for path for existing project1862 behaves like a BulkUsersByEmailLoad model1863 #users_by_emails1864 when nothing is loaded1865 preforms the yielded query and supplies the data with only emails desired1866 when store is preloaded1867 passes back loaded data and does not update the items that already exist1868 #all_pipelines1869 has all pipelines1870 when builds are disabled1871 returns .external pipelines1872 #ci_pipelines1873 excludes dangling pipelines such as :webide1874 when builds are disabled1875 returns .external pipelines1876 #commit_notes1877 returns project's commit notes1878 #personal_namespace_holder?1879 project: personal_project, user: namespace_user, result: true1880 is expected to eq true1881 project: personal_project, user: admin_user, result: false1882 is expected to eq false1883 project: personal_project, user: another_user, result: false1884 is expected to eq false1885 project: personal_project, user: nil, result: false1886 is expected to eq false1887 project: group_project, user: namespace_user, result: false1888 is expected to eq false1889 project: group_project, user: group_owner_user, result: false1890 is expected to eq false1891 project: group_project, user: another_user, result: false1892 is expected to eq false1893 project: group_project, user: nil, result: false1894 is expected to eq false1895 project: group_project, user: nil, result: false1896 is expected to eq false1897 project: group_project, user: admin_user, result: false1898 is expected to eq false1899 #invalidate_personal_projects_count_of_owner1900 for personal projects1901 invalidates personal_project_count cache of the the owner of the personal namespace1902 for projects in groups1903 does not invalidates any cache1904 #default_pipeline_lock1905 keep_latest_artifact_enabled: false, result_pipeline_locked: :unlocked1906 is expected to eq :unlocked1907 keep_latest_artifact_enabled: true, result_pipeline_locked: :artifacts_locked1908 is expected to eq :artifacts_locked1909 #membership_locked?1910 returns false1911 #autoclose_referenced_issues1912 when DB entry is nil1913 returns true1914 when DB entry is true1915 returns true1916 when DB entry is false1917 returns false1918 project token1919 sets an random token if none provided1920 does not set an random token if one provided1921 Respond to1922 is expected to respond to #url_to_repo1923 is expected to respond to #execute_hooks1924 is expected to respond to #owner1925 is expected to respond to #path_with_namespace1926 is expected to respond to #full_path1927 delegation1928 is expected to delegate #add_guest to the #team object1929 is expected to delegate #add_reporter to the #team object1930 is expected to delegate #add_developer to the #team object1931 is expected to delegate #add_maintainer to the #team object1932 is expected to delegate #add_member to the #team object1933 is expected to delegate #add_members to the #team object1934 is expected to delegate #team_members to the #team object as #members1935 is expected to delegate #owner_name to the #owner object as #name, allowing #owner to return nil1936 is expected to delegate #root_ancestor to the #namespace object, allowing #namespace to return nil1937 is expected to delegate #certificate_based_clusters_enabled? to the #namespace object, allowing #namespace to return nil1938 is expected to delegate #last_pipeline to the #commit object, allowing #commit to return nil1939 is expected to delegate #container_registry_enabled? to the #project_feature object1940 is expected to delegate #container_registry_access_level to the #project_feature object1941 is expected to delegate #environments_access_level to the #project_feature object1942 is expected to delegate #model_experiments_access_level to the #project_feature object1943 is expected to delegate #feature_flags_access_level to the #project_feature object1944 is expected to delegate #releases_access_level to the #project_feature object1945 is expected to delegate #infrastructure_access_level to the #project_feature object1946 is expected to delegate #maven_package_requests_forwarding to the #namespace object1947 is expected to delegate #pypi_package_requests_forwarding to the #namespace object1948 is expected to delegate #npm_package_requests_forwarding to the #namespace object1949 read project settings1950 is expected to delegate #show_default_award_emojis to the #project_setting object, allowing #project_setting to return nil1951 is expected to delegate #show_default_award_emojis? to the #project_setting object, allowing #project_setting to return nil1952 is expected to delegate #warn_about_potentially_unwanted_characters to the #project_setting object, allowing #project_setting to return nil1953 is expected to delegate #warn_about_potentially_unwanted_characters? to the #project_setting object, allowing #project_setting to return nil1954 is expected to delegate #enforce_auth_checks_on_uploads to the #project_setting object, allowing #project_setting to return nil1955 is expected to delegate #enforce_auth_checks_on_uploads? to the #project_setting object, allowing #project_setting to return nil1956 write project settings1957 is expected to delegate #show_default_award_emojis= to the #project_setting object passing arguments [:args], allowing #project_setting to return nil1958 is expected to delegate #warn_about_potentially_unwanted_characters= to the #project_setting object passing arguments [:args], allowing #project_setting to return nil1959 is expected to delegate #enforce_auth_checks_on_uploads= to the #project_setting object passing arguments [:args], allowing #project_setting to return nil1960 when ci_cd_settings is destroyed but project is not1961 allows methods delegated to ci_cd_settings to be nil1962 #ci_forward_deployment_enabled?1963 behaves like a ci_cd_settings predicate method1964 when ci_cd_settings is nil1965 returns false1966 when ci_cd_settings is not nil1967 delegated_method_return: true, subject_return: true1968 returns the expected boolean value1969 delegated_method_return: false, subject_return: false1970 returns the expected boolean value1971 #ci_forward_deployment_rollback_allowed?1972 behaves like a ci_cd_settings predicate method1973 when ci_cd_settings is nil1974 returns false1975 when ci_cd_settings is not nil1976 delegated_method_return: true, subject_return: true1977 returns the expected boolean value1978 delegated_method_return: false, subject_return: false1979 returns the expected boolean value1980 #ci_allow_fork_pipelines_to_run_in_parent_project?1981 behaves like a ci_cd_settings predicate method1982 when ci_cd_settings is nil1983 returns false1984 when ci_cd_settings is not nil1985 delegated_method_return: true, subject_return: true1986 returns the expected boolean value1987 delegated_method_return: false, subject_return: false1988 returns the expected boolean value1989 #ci_outbound_job_token_scope_enabled?1990 behaves like a ci_cd_settings predicate method1991 when ci_cd_settings is nil1992 returns false1993 when ci_cd_settings is not nil1994 delegated_method_return: true, subject_return: true1995 returns the expected boolean value1996 delegated_method_return: false, subject_return: false1997 returns the expected boolean value1998 #ci_inbound_job_token_scope_enabled?1999 behaves like a ci_cd_settings predicate method2000 when ci_cd_settings is nil2001 returns false2002 when ci_cd_settings is not nil2003 delegated_method_return: true, subject_return: true2004 returns the expected boolean value2005 delegated_method_return: false, subject_return: false2006 returns the expected boolean value2007 #restrict_user_defined_variables?2008 behaves like a ci_cd_settings predicate method2009 when ci_cd_settings is nil2010 returns false2011 when ci_cd_settings is not nil2012 delegated_method_return: true, subject_return: true2013 returns the expected boolean value2014 delegated_method_return: false, subject_return: false2015 returns the expected boolean value2016 #keep_latest_artifacts_available?2017 behaves like a ci_cd_settings predicate method2018 when ci_cd_settings is nil2019 returns false2020 when ci_cd_settings is not nil2021 delegated_method_return: true, subject_return: true2022 returns the expected boolean value2023 delegated_method_return: false, subject_return: false2024 returns the expected boolean value2025 #keep_latest_artifact?2026 behaves like a ci_cd_settings predicate method2027 when ci_cd_settings is nil2028 returns false2029 when ci_cd_settings is not nil2030 delegated_method_return: true, subject_return: true2031 returns the expected boolean value2032 delegated_method_return: false, subject_return: false2033 returns the expected boolean value2034 #group_runners_enabled?2035 behaves like a ci_cd_settings predicate method2036 when ci_cd_settings is nil2037 returns false2038 when ci_cd_settings is not nil2039 delegated_method_return: true, subject_return: true2040 returns the expected boolean value2041 delegated_method_return: false, subject_return: false2042 returns the expected boolean value2043 #merge_commit_template_or_default2044 returns default merge commit template2045 when merge commit template is set and not nil2046 returns current value2047 #merge_commit_template_or_default=2048 sets template to nil when set to default value2049 sets template to nil when set to default value but with CRLF line endings2050 allows changing template2051 allows setting template to nil2052 #squash_commit_template_or_default2053 returns default squash commit template2054 when squash commit template is set and not nil2055 returns current value2056 #squash_commit_template_or_default=2057 sets template to nil when set to default value2058 allows changing template2059 allows setting template to nil2060 reference methods2061 #to_reference2062 returns the path with reference_postfix2063 returns the path with reference_postfix when arg is self2064 returns the full_path with reference_postfix when full2065 returns the full_path with reference_postfix when cross-project2066 #to_reference_base2067 when nil argument2068 returns nil2069 when full is true2070 returns complete path to the project2071 when same project argument2072 returns nil2073 when cross namespace project argument2074 returns complete path to the project2075 when same namespace / cross-project argument2076 returns path to the project2077 when different namespace / cross-project argument with same owner2078 returns full path to the project2079 when argument is a namespace2080 with same project path2081 returns path to the project2082 with different project path2083 returns full path to the project2084 when argument is a user2085 returns full path to the project2086 #to_human_reference2087 when nil argument2088 returns nil2089 when same project argument2090 returns nil2091 when cross namespace project argument2092 returns complete name with namespace of the project2093 when same namespace / cross-project argument2094 returns name of the project2095 #to_reference_base2096 project: project1, full: false, from: nil, result: nil2097 returns correct path2098 project: project1, full: true, from: nil, result: lazy { project.full_path }2099 returns correct path2100 project: project1, full: false, from: group, result: lazy { project.path }2101 returns correct path2102 project: project1, full: true, from: group, result: lazy { project.full_path }2103 returns correct path2104 project: project1, full: false, from: parent, result: lazy { project.full_path }2105 returns correct path2106 project: project1, full: true, from: parent, result: lazy { project.full_path }2107 returns correct path2108 project: project1, full: false, from: project1, result: nil2109 returns correct path2110 project: project1, full: true, from: project1, result: lazy { project.full_path }2111 returns correct path2112 project: project1, full: false, from: project_namespace, result: nil2113 returns correct path2114 project: project1, full: true, from: project_namespace, result: lazy { project.full_path }2115 returns correct path2116 project: project1, full: false, from: project2, result: lazy { project.path }2117 returns correct path2118 project: project1, full: true, from: project2, result: lazy { project.full_path }2119 returns correct path2120 project: project1, full: false, from: project_namespace2, result: lazy { project.path }2121 returns correct path2122 project: project1, full: true, from: project_namespace2, result: lazy { project.full_path }2123 returns correct path2124 project: project1, full: false, from: another_group, result: lazy { project.full_path }2125 returns correct path2126 project: project1, full: true, from: another_group, result: lazy { project.full_path }2127 returns correct path2128 project: project1, full: false, from: project3, result: lazy { project.full_path }2129 returns correct path2130 project: project1, full: true, from: project3, result: lazy { project.full_path }2131 returns correct path2132 project: project1, full: false, from: project_namespace3, result: lazy { project.full_path }2133 returns correct path2134 project: project1, full: true, from: project_namespace3, result: lazy { project.full_path }2135 returns correct path2136 project: project1, full: false, from: user_namespace, result: lazy { project.full_path }2137 returns correct path2138 project: project1, full: true, from: user_namespace, result: lazy { project.full_path }2139 returns correct path2140 #merge_method2141 ff: true, rebase: true, method: :ff2142 is expected to eq :ff2143 ff: true, rebase: false, method: :ff2144 is expected to eq :ff2145 ff: false, rebase: true, method: :rebase_merge2146 is expected to eq :rebase_merge2147 ff: false, rebase: false, method: :merge2148 is expected to eq :merge2149 #readme_url2150 with a non-existing repository2151 returns nil2152 with an existing repository2153 when no README exists2154 returns nil2155 when a README exists2156 returns the README2157 #new_issuable_address2158 incoming email enabled2159 returns the address to create a new issue2160 returns the address to create a new merge request2161 returns nil with invalid address type2162 incoming email disabled2163 returns nil2164 returns nil2165 last_activity methods2166 last_activity2167 alias last_activity to last_event2168 last_activity_date2169 returns the project's last update date2170 #get_issue2171 with default issues tracker2172 returns an issue2173 returns count of open issues2174 returns nil when no issue found2175 returns nil when user doesn't have access2176 with external issues tracker2177 when internal issues are enabled2178 returns interlan issue2179 returns an ExternalIssue when internal issue does not exists2180 when internal issues are disabled2181 returns always an External issues2182 returns an ExternalIssue when internal issue does not exists2183 #open_issues_count2184 provides the issue count2185 invokes the count service with current_user2186 invokes the batch count service with no current_user2187 #open_merge_requests_count2188 provides the merge request count2189 #issue_exists?2190 is truthy when issue exists2191 is falsey when issue does not exist2192 #to_param2193 with namespace2194 is expected to eq "gitlabhq"2195 with invalid path2196 returns previous path to keep project suitable for use in URLs when persisted2197 returns current path when new record2198 #default_issues_tracker?2199 is true if used internal tracker2200 is false if used other tracker2201 #has_wiki?2202 returns true if project is wiki enabled or has external wiki2203 #first_owner2204 the project does not have a group2205 is the namespace owner2206 the project is in a group2207 is the group owner2208 #external_issue_tracker2209 sets Project#has_external_issue_tracker when it is nil2210 returns nil and does not query services when there is no external issue tracker2211 retrieves external_issue_tracker querying services and cache it when there is external issue tracker2212 #has_external_issue_tracker2213 is false when external issue tracker integration is not active2214 is false when other integration is active2215 when there is an active external issue tracker integration2216 is expected to eq true2217 becomes false when external issue tracker integration is destroyed2218 becomes false when external issue tracker integration becomes inactive2219 when there are two active external issue tracker integrations2220 does not become false when external issue tracker integration is destroyed2221 does not become false when external issue tracker integration becomes inactive2222 #external_wiki2223 returns an active external wiki2224 does not return an inactive external wiki2225 sets Project#has_external_wiki when it is nil2226 #has_external_wiki2227 is expected to eq false2228 when there is an active external wiki integration2229 is expected to eq true2230 becomes false if the external wiki integration is destroyed2231 becomes false if the external wiki integration becomes inactive2232 when created as inactive2233 is false2234 #star_count2235 counts stars from multiple users2236 does not count stars from blocked users2237 counts stars on the right project2238 #avatar_type2239 is true if avatar is image2240 is false if avatar is html page2241 #avatar_url2242 when avatar file is uploaded2243 shows correct url2244 when avatar file in git2245 is expected to eq "http://localhost/namespace1/project-172/-/avatar"2246 when git repo is empty2247 is expected to eq nil2248 #builds_enabled2249 is expected to be truthy2250 .sort_by_attribute2251 reorders the input relation by start count desc2252 reorders the input relation by last activity desc2253 reorders the input relation by last activity asc2254 sorting by name2255 when using .sort_by_name_desc2256 reorders the projects by descending name order2257 when using .sort_by_name_asc2258 reorders the projects by ascending name order2259 .with_shared_runners_enabled2260 when shared runners are enabled for project2261 returns a project2262 when shared runners are disabled for project2263 returns an empty array2264 .with_remote_mirrors2265 when some remote mirrors are enabled for the project2266 returns a project2267 when some remote mirrors exists but disabled for the project2268 returns a project2269 when no remote mirrors exist for the project2270 returns an empty list2271 .with_jira_dvcs_cloud2272 returns the correct project2273 .with_jira_dvcs_server2274 returns the correct project2275 .with_slack_application_disabled2276 when the Slack app setting is enabled2277 includes only projects where Slack app is disabled or absent2278 when the Slack app setting is not enabled2279 includes all projects2280 .with_slack_integration2281 returns projects with both active and inactive slack integrations2282 .with_slack_slash_commands_integration2283 returns projects with both active and inactive slack slash commands integrations2284 .cached_count2285 returns total project count2286 .trending2287 sorts projects by the amount of notes in descending order2288 does not take system notes into account2289 .starred_by2290 returns only projects starred by the given user2291 .with_limit2292 limits the number of projects returned2293 .visible_to_user2294 when a user has access to a project2295 is expected to eq [#<Project id:177 namespace1/project-209>>]2296 when a user does not have access to any projects2297 is expected to eq []2298 .with_integration2299 returns the correct projects2300 .with_active_integration2301 returns the correct projects2302 .include_integration2303 avoids n + 12304 .service_desk_enabled2305 returns the correct project2306 #service_desk_enabled?2307 is enabled2308 #service_desk_address2309 when service_desk_email is disabled2310 behaves like with incoming email address2311 when incoming email is enabled2312 uses project full path as service desk address key2313 when incoming email is disabled2314 uses project full path as service desk address key2315 when service_desk_email is enabled2316 when project_key is set2317 returns custom address including the project_key2318 when project_key is not set2319 returns custom address including the project full path2320 .with_service_desk_key2321 returns projects with given key2322 returns empty if there is no project with the key2323 .find_by_url2324 url is internal2325 path is recognised as a project path2326 is expected to eq #<Project id:194 namespace1/project-227>>2327 returns nil if the path detection throws an error2328 path is not a project path2329 is expected to be nil2330 url is external2331 is expected to be nil2332 .without_integration2333 returns projects without the integration2334 repository storage by default2335 picks storage from ApplicationSetting2336 shared runners by default2337 are enabled2338 is expected to be truthy2339 are disabled2340 is expected to be falsey2341 #any_online_runners?2342 shared runners2343 for shared runners disabled2344 has no runners available2345 has a project runner2346 has a shared runner, but they are prohibited to use2347 checks the presence of project runner2348 returns false if match cannot be found2349 returns false if runner is offline2350 for shared runners enabled2351 has a shared runner2352 checks the presence of shared runner2353 returns false if match cannot be found2354 group runners2355 for group runners disabled2356 has no runners available2357 has a group runner, but they are prohibited to use2358 for group runners enabled2359 has a group runner2360 has an offline group runner2361 checks the presence of group runner2362 returns false if match cannot be found2363 #shared_runners2364 behaves like shared_runners2365 when shared runners are enabled for project2366 returns a list of shared runners2367 when shared runners are disabled for project2368 returns a empty list2369 #available_shared_runners2370 behaves like shared_runners2371 when shared runners are enabled for project2372 returns a list of shared runners2373 when shared runners are disabled for project2374 returns a empty list2375 #visibility_level2376 by default2377 is expected to eq 02378 when set to INTERNAL in application settings2379 is expected to eq 102380 attribute_name: :visibility, value: "public"2381 sets the visibility level2382 attribute_name: :visibility_level, value: 202383 sets the visibility level2384 attribute_name: "visibility", value: "public"2385 sets the visibility level2386 attribute_name: "visibility_level", value: 202387 sets the visibility level2388 #visibility_level_allowed?2389 when checking on non-forked project2390 is expected to be truthy2391 is expected to be truthy2392 is expected to be truthy2393 when checking on forked project2394 is expected to be truthy2395 is expected to be truthy2396 is expected to be falsey2397 #pages_show_onboarding?2398 if there is no metadata2399 is expected to be truthy2400 if onboarding is complete2401 is expected to be falsey2402 if there is metadata, but onboarding is not complete2403 is expected to be truthy2404 will return false if pages is deployed even if onboarding_complete is false2405 is expected to be falsey2406 #pages_deployed?2407 if pages are deployed2408 is expected to be truthy2409 if public folder doesn't exist2410 is expected to be falsey2411 #default_branch_protected?2412 default_branch_protection_level: 0, result: false2413 is expected to eq false2414 default_branch_protection_level: 1, result: false2415 is expected to eq false2416 default_branch_protection_level: 3, result: true2417 is expected to eq true2418 default_branch_protection_level: 2, result: true2419 is expected to eq true2420 default_branch_protection_level: 4, result: true2421 is expected to eq true2422 initial_push_to_default_branch_allowed_for_developer?2423 default_branch_protection_level: 0, result: true2424 is expected to eq true2425 default_branch_protection_level: 1, result: true2426 is expected to eq true2427 default_branch_protection_level: 3, result: false2428 is expected to eq false2429 default_branch_protection_level: 2, result: false2430 is expected to eq false2431 default_branch_protection_level: 4, result: true2432 is expected to eq true2433 .search2434 returns projects with a matching name2435 returns projects with a partially matching name2436 returns projects with a matching name regardless of the casing2437 returns projects with a matching description2438 returns projects with a partially matching description2439 returns projects with a matching description regardless of the casing2440 returns projects with a matching path2441 returns projects with a partially matching path2442 returns projects with a matching path regardless of the casing2443 defaults use_minimum_char_limit to true2444 passes use_minimum_char_limit if it is set2445 when include_namespace is true2446 returns projects that match the group path2447 returns projects that match the full path2448 with pending_delete project2449 shows pending deletion project2450 .optionally_search2451 searches for projects matching the query if one is given2452 returns the current relation if no search query is given2453 .eager_load_namespace_and_owner2454 eager loads the namespace and namespace owner2455 #expire_caches_before_rename2456 expires the caches of the repository and wiki2457 .search_by_title2458 returns projects with a matching name2459 returns projects with a partially matching name2460 returns projects with a matching name regardless of the casing2461 when checking projects from groups2462 when group is private project can not be internal2463 is expected to be falsey2464 when group is internal project can not be public2465 is expected to be falsey2466 #track_project_repository2467 with projects on legacy storage2468 behaves like tracks storage location2469 when a project repository entry does not exist2470 creates a new entry2471 tracks the project storage location2472 when a tracking entry exists2473 does not create a new entry in the database2474 updates the project storage location2475 refreshes a memoized repository value2476 when "replicate_object_pool_on_move" FF is disabled2477 does not update a memoized repository value2478 with projects on hashed storage2479 behaves like tracks storage location2480 when a project repository entry does not exist2481 creates a new entry2482 tracks the project storage location2483 when a tracking entry exists2484 does not create a new entry in the database2485 updates the project storage location2486 refreshes a memoized repository value2487 when "replicate_object_pool_on_move" FF is disabled2488 does not update a memoized repository value2489 #create_repository2490 using a regular repository2491 creates the repository2492 adds an error if the repository could not be created2493 passes through default branch2494 using a forked repository2495 does nothing2496 #ensure_repository2497 creates the repository if it not exist2498 does not create the repository if it exists2499 creates the repository if it is a fork2500 handling import URL2501 returns the sanitized URL2502 saves the url credentials percent decoded2503 saves url with no credentials2504 #container_registry_url2505 for enabled registry2506 is expected not to be nil2507 for disabled registry2508 is expected to be nil2509 #container_repositories_size2510 on gitlab.com2511 no_container_repositories: true, all_migrated: nil, gitlab_api_supported: nil, returned_size: nil, expected_result: 02512 is expected to eq 02513 no_container_repositories: false, all_migrated: false, gitlab_api_supported: nil, returned_size: nil, expected_result: nil2514 is expected to eq nil2515 no_container_repositories: false, all_migrated: true, gitlab_api_supported: false, returned_size: nil, expected_result: nil2516 is expected to eq nil2517 no_container_repositories: false, all_migrated: true, gitlab_api_supported: true, returned_size: 555, expected_result: 5552518 is expected to eq 5552519 no_container_repositories: false, all_migrated: true, gitlab_api_supported: true, returned_size: nil, expected_result: nil2520 is expected to eq nil2521 not on gitlab.com2522 is expected to eq nil2523 #container_registry_enabled=2524 updates project_feature2525 #container_registry_enabled2526 delegates to project_feature2527 #has_container_registry_tags?2528 when container registry is enabled2529 when tags are present for multi-level registries2530 has image tags2531 when tags are present for root repository2532 has image tags2533 when there are no tags at all2534 does not have image tags2535 when container registry is disabled2536 does not have image tags2537 does not check root repository tags2538 iterates through container repositories2539 #ci_config_path=2540 default_ci_config_path: nil, project_ci_config_path: :notset, expected_ci_config_path: :default2541 returns the correct path2542 default_ci_config_path: nil, project_ci_config_path: nil, expected_ci_config_path: :default2543 returns the correct path2544 default_ci_config_path: nil, project_ci_config_path: "", expected_ci_config_path: :default2545 returns the correct path2546 default_ci_config_path: nil, project_ci_config_path: "cust\u0000om/\u0000/path", expected_ci_config_path: "custom//path"2547 returns the correct path2548 default_ci_config_path: "", project_ci_config_path: :notset, expected_ci_config_path: :default2549 returns the correct path2550 default_ci_config_path: "", project_ci_config_path: nil, expected_ci_config_path: :default2551 returns the correct path2552 default_ci_config_path: "", project_ci_config_path: "", expected_ci_config_path: :default2553 returns the correct path2554 default_ci_config_path: "", project_ci_config_path: "cust\u0000om/\u0000/path", expected_ci_config_path: "custom//path"2555 returns the correct path2556 default_ci_config_path: "global/path", project_ci_config_path: :notset, expected_ci_config_path: "global/path"2557 returns the correct path2558 default_ci_config_path: "global/path", project_ci_config_path: nil, expected_ci_config_path: :default2559 returns the correct path2560 default_ci_config_path: "global/path", project_ci_config_path: "", expected_ci_config_path: :default2561 returns the correct path2562 default_ci_config_path: "global/path", project_ci_config_path: "cust\u0000om/\u0000/path", expected_ci_config_path: "custom//path"2563 returns the correct path2564 #uses_default_ci_config?2565 has a custom ci config path2566 has a blank ci config path2567 does not have a custom ci config path2568 #latest_successful_build_for_ref2569 behaves like latest successful build for sha or ref2570 with many builds2571 gives the latest builds from latest pipeline2572 with succeeded pipeline2573 standalone pipeline2574 returns builds for ref for default_branch2575 with nonexistent build2576 returns empty relation if the build cannot be found2577 with some pending pipeline2578 gives the latest build from latest pipeline2579 with pending pipeline2580 returns empty relation2581 with build belonging to a child pipeline2582 returns the child build2583 with a specified ref2584 is expected to eq #<Ci::Build status: "pending", finished_at: "2023-08-13 08:53:29.000000000 +0000", created_at: "2023-... processed: false, scheduling_type: "stage", id: 14, stage_id: 13, partition_id: 100, tag_list: nil>2585 #latest_pipeline2586 default repository branch2587 when explicitly provided2588 is expected to eq #<Ci::Pipeline id: 14, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni...ha: nil, external_pull_request_id: nil, ci_ref_id: 6, locked: "artifacts_locked", partition_id: 100>2589 when not provided2590 is expected to eq #<Ci::Pipeline id: 17, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: ni...ha: nil, external_pull_request_id: nil, ci_ref_id: 8, locked: "artifacts_locked", partition_id: 100>2591 with provided sha2592 is expected to eq #<Ci::Pipeline id: 22, ref: "master", sha: "1b12f15a11fc6e62177bef08f47bc7b5ce50b141", before_sha: ni...a: nil, external_pull_request_id: nil, ci_ref_id: 10, locked: "artifacts_locked", partition_id: 100>2593 provided ref2594 is expected to eq #<Ci::Pipeline id: 24, ref: "add-ipython-files", sha: "4963fefc990451a8ad34289ce266b757456fc88c", bef...a: nil, external_pull_request_id: nil, ci_ref_id: 13, locked: "artifacts_locked", partition_id: 100>2595 with provided sha2596 is expected to eq #<Ci::Pipeline id: 29, ref: "add-ipython-files", sha: "4963fefc990451a8ad34289ce266b757456fc88c", bef...a: nil, external_pull_request_id: nil, ci_ref_id: 15, locked: "artifacts_locked", partition_id: 100>2597 bad ref2598 is expected to be nil2599 on deleted ref2600 always returns nil despite a pipeline exists2601 #latest_successful_build_for_sha2602 behaves like latest successful build for sha or ref2603 with many builds2604 gives the latest builds from latest pipeline2605 with succeeded pipeline2606 standalone pipeline2607 returns builds for ref for default_branch2608 with nonexistent build2609 returns empty relation if the build cannot be found2610 with some pending pipeline2611 gives the latest build from latest pipeline2612 with pending pipeline2613 returns empty relation2614 with build belonging to a child pipeline2615 returns the child build2616 #latest_successful_build_for_ref!2617 with many builds2618 gives the latest builds from latest pipeline2619 with succeeded pipeline2620 standalone pipeline2621 returns builds for ref for default_branch2622 returns exception if the build cannot be found2623 with some pending pipeline2624 gives the latest build from latest pipeline2625 with pending pipeline2626 returns empty relation2627 #import_status2628 with import_state2629 returns the right status2630 without import_state2631 returns none2632 #import_checksums2633 with import_checksums2634 returns the right checksums2635 without import_state2636 returns empty hash2637 #jira_import_status2638 when no jira imports2639 returns none2640 when there are jira imports2641 when latest import status is initial or jira imports are mising2642 returns initial2643 when latest import status is scheduled2644 returns scheduled2645 #human_import_status_name2646 with import_state2647 returns the right human import status2648 without import_state2649 returns none2650 #beautified_import_status_name2651 when import not finished2652 returns the right beautified import status2653 when import is finished2654 when import is partially completed2655 returns partially completed2656 when import is fully completed2657 returns completed2658 #add_import_job2659 forked2660 schedules a RepositoryForkWorker job2661 without repository2662 schedules RepositoryImportWorker2663 not forked2664 schedules a RepositoryImportWorker job2665 jira import2666 schedules a jira import job2667 #jira_import?2668 is expected to equal true2669 is expected to equal true2670 #github_import?2671 is expected to equal true2672 #github_enterprise_import?2673 is expected to equal true2674 is expected to equal false2675 is expected to equal true2676 is expected to equal true2677 #remove_import_data2678 when jira import2679 does remove import data2680 when neither a mirror nor a jira import2681 removes import data2682 #gitlab_project_import?2683 is expected to equal true2684 #gitea_import?2685 is expected to equal true2686 #has_remote_mirror?2687 returns true when a remote mirror is enabled2688 returns false when remote mirror is disabled2689 #update_remote_mirrors2690 syncs enabled remote mirror2691 does nothing when remote mirror is disabled globally and not overridden2692 does not sync disabled remote mirrors2693 #remote_mirror_available?2694 when remote mirror global setting is enabled2695 returns true2696 when remote mirror global setting is disabled2697 returns true when overridden2698 returns false when not overridden2699 #mark_primary_write_location2700 marks the location with project ID2701 #mark_stuck_remote_mirrors_as_failed!2702 fails stuck remote mirrors2703 #ancestors2704 group ancestory2705 behaves like project with group ancestors2706 returns all ancestors2707 behaves like project with ordered group ancestors2708 returns ancestors ordered by descending hierarchy2709 namespace ancestry2710 is expected to be empty2711 #ancestors_upto2712 group ancestry2713 includes ancestors upto but excluding the given ancestor2714 behaves like project with group ancestors2715 returns all ancestors2716 behaves like project with ordered group ancestors2717 returns ancestors ordered by descending hierarchy2718 with hierarchy_order2719 can be used with upto option2720 namespace ancestry2721 is expected to be empty2722 #root_ancestor2723 is expected to eq #<Namespaces::UserNamespace id:1 @namespace1>2724 in a group2725 is expected to eq #<Group id:411 @group53>2726 in a nested group2727 is expected to eq #<Group id:414 @group54>2728 #emails_disabled?2729 is the opposite of emails_disabled2730 #lfs_enabled?2731 LFS disabled in group2732 behaves like project overrides group2733 returns true when enabled in project2734 returns false when disabled in project2735 returns the value from the namespace, when no value is set in project2736 LFS enabled in group2737 behaves like project overrides group2738 returns true when enabled in project2739 returns false when disabled in project2740 returns the value from the namespace, when no value is set in project2741 LFS disabled globally2742 when no values are set2743 behaves like it always returns false2744 is expected to be falsey2745 when all values are set to true2746 behaves like it always returns false2747 is expected to be falsey2748 #after_repository_change_head2749 updates commit count2750 reloads the default branch2751 #after_change_head_branch_does_not_exist2752 adds an error to container if branch does not exist2753 #lfs_objects_for_repository_types2754 returns LFS objects of the specified type only2755 forks2756 #fork_network2757 includes a fork of the project2758 includes a fork of a fork2759 includes sibling forks2760 includes the base project2761 #in_fork_network_of?2762 is true for a real fork2763 is true for a fork of a fork2764 is true for sibling forks2765 is false when another project is given2766 #fork_source2767 returns the direct source if it exists2768 returns the root of the fork network when the directs source was deleted2769 returns nil if it is the root of the fork network2770 #forks2771 includes direct forks of the project2772 #lfs_object_oids_from_fork_source2773 when fork has one of two LFS objects2774 returns OIDs of owned LFS objects2775 returns empty when project is not a fork2776 behaves like can housekeep repository2777 with a clean redis state2778 #pushes_since_gc2779 without any pushes2780 returns 02781 with a number of pushes2782 returns the number of pushes2783 #increment_pushes_since_gc2784 increments the number of pushes since the last GC2785 #reset_pushes_since_gc2786 resets the number of pushes since the last GC2787 #pushes_since_gc_redis_shared_state_key2788 returns the proper redis key format2789 #git_garbage_collect_worker_klass2790 defines a git gargabe collect worker2791 #deployment_variables2792 when the deployment platform is stubbed2793 when project has a deployment platform2794 is expected to eq ["platform", "variables"]2795 when project has no deployment platform2796 is expected to eq []2797 when project has a deployment platforms2798 when environment name is review/name2799 returns variables from this service2800 when environment name is other2801 returns variables from this service2802 #default_environment2803 returns production environment when it exists2804 returns first environment when no production environment exists2805 returns nil when no available environment exists2806 #any_lfs_file_locks?2807 returns false when there are no LFS file locks2808 returns a cached true when there are LFS file locks2809 #protected_for?2810 when ref is nil2811 returns false2812 when ref is ref name2813 when ref is ambiguous2814 raises an error2815 when the ref is not protected2816 behaves like ref is not protected2817 returns false2818 when the ref is a protected branch2819 behaves like ref is protected branch2820 returns true2821 when the ref is a protected tag2822 behaves like ref is protected tag2823 returns true2824 when ref does not exist2825 returns false2826 when ref is full ref2827 when the ref is not protected2828 behaves like ref is not protected2829 returns false2830 when the ref is a protected branch2831 behaves like ref is protected branch2832 returns true2833 when the ref is a protected tag2834 behaves like ref is protected tag2835 returns true2836 when branch ref name is a full tag ref2837 when ref is not protected2838 returns false2839 when ref is a protected branch2840 returns true2841 when ref does not exist2842 returns false2843 #update_project_statistics2844 is called after creation2845 copies the namespace_id2846 updates the namespace_id when changed2847 inside_path2848 returns correct project2849 #route_map_for2850 when there is a .gitlab/route-map.yml at the commit2851 when the route map is valid2852 returns a route map2853 when the route map is invalid2854 returns nil2855 when there is no .gitlab/route-map.yml at the commit2856 returns nil2857 #public_path_for_source_path2858 when there is a route map2859 returns a public path with a leading slash unmodified2860 when the source path is mapped2861 returns the public path2862 when the source path is not mapped2863 returns nil2864 when there is no route map2865 returns nil2866 #parent2867 is expected to eq #<Namespaces::UserNamespace id:1 @namespace1>2868 #parent_id2869 is expected to eq 12870 #parent_changed?2871 is expected to be truthy2872 #default_merge_request_target2873 when mr_default_target_self is set to true2874 returns the current project2875 when merge request can not target upstream2876 returns the current project2877 when merge request can target upstream2878 returns the source project2879 #mr_can_target_upstream?2880 when forked from a more visible project2881 can not target the upstream project2882 when forked from a project with disabled merge requests2883 can not target the upstream project2884 when forked from a project with enabled merge requests2885 can target the upstream project2886 when not forked2887 can not target the upstream project2888 #lfs_http_url_to_repo2889 when a custom HTTP clone URL root is not set2890 returns the url to the repo without a username2891 when a custom HTTP clone URL root is set2892 returns the url to the repo, with the root replaced with the custom one2893 #pipeline_status2894 builds a pipeline status2895 hase a loaded pipeline status2896 #update2897 validates the visibility2898 does not validate the visibility2899 when validating if path already exist as pages unique domain2900 rejects paths that match pages unique domain2901 accepts path when the host does not match2902 accepts path when the domain does not match2903 #last_repository_updated_at2904 sets to created_at upon creation2905 .public_or_visible_to_user2906 with a user2907 includes projects the user has access to2908 includes projects the user can see2909 without a user2910 only includes public projects2911 min_access_level2912 excludes projects when user does not have required minimum access level2913 with deploy token users2914 deploy token user without project2915 is expected to eq []2916 deploy token user with projects2917 is expected to contain exactly #<Project id:401 namespace1/project-499>>, #<Project id:402 namespace1/project-500>>, and #<Project id:403 namespace1/project-501>>2918 with chained filter2919 is expected to contain exactly #<Project id:401 namespace1/project-499>> and #<Project id:402 namespace1/project-500>>2920 .ids_with_issuables_available_for2921 returns project ids with milestones available for user2922 .with_feature_available_for_user2923 with user2924 behaves like feature disabled2925 does not return projects with the project feature disabled2926 behaves like feature public2927 returns projects with the project feature public2928 behaves like feature enabled2929 returns projects with the project feature enabled2930 behaves like feature access level is nil2931 returns projects with the project feature access level nil2932 when feature is private2933 when user does not have access to the feature2934 does not return projects with the project feature private2935 when user has access to the feature2936 returns projects with the project feature private2937 user is an admin2938 behaves like feature disabled2939 does not return projects with the project feature disabled2940 behaves like feature public2941 returns projects with the project feature public2942 behaves like feature enabled2943 returns projects with the project feature enabled2944 behaves like feature access level is nil2945 returns projects with the project feature access level nil2946 when feature is private2947 when admin mode is enabled2948 returns projects with the project feature private2949 when admin mode is disabled2950 does not return projects with the project feature private2951 without user2952 behaves like feature disabled2953 does not return projects with the project feature disabled2954 behaves like feature public2955 returns projects with the project feature public2956 behaves like feature enabled2957 returns projects with the project feature enabled2958 behaves like feature access level is nil2959 returns projects with the project feature access level nil2960 when feature is private2961 does not return projects with the project feature private2962 .filter_by_feature_visibility2963 with reporter level access2964 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 12965 behaves like filter respects visibility2966 respects visibility2967 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 12968 behaves like filter respects visibility2969 respects visibility2970 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 12971 behaves like filter respects visibility2972 respects visibility2973 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 12974 behaves like filter respects visibility2975 respects visibility2976 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 12977 behaves like filter respects visibility2978 respects visibility2979 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 12980 behaves like filter respects visibility2981 respects visibility2982 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 12983 behaves like filter respects visibility2984 respects visibility2985 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 02986 behaves like filter respects visibility2987 respects visibility2988 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 12989 behaves like filter respects visibility2990 respects visibility2991 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 02992 behaves like filter respects visibility2993 respects visibility2994 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 02995 behaves like filter respects visibility2996 respects visibility2997 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 02998 behaves like filter respects visibility2999 respects visibility3000 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03001 behaves like filter respects visibility3002 respects visibility3003 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03004 behaves like filter respects visibility3005 respects visibility3006 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03007 behaves like filter respects visibility3008 respects visibility3009 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03010 behaves like filter respects visibility3011 respects visibility3012 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13013 behaves like filter respects visibility3014 respects visibility3015 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13016 behaves like filter respects visibility3017 respects visibility3018 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13019 behaves like filter respects visibility3020 respects visibility3021 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13022 behaves like filter respects visibility3023 respects visibility3024 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13025 behaves like filter respects visibility3026 respects visibility3027 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 03028 behaves like filter respects visibility3029 respects visibility3030 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13031 behaves like filter respects visibility3032 respects visibility3033 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03034 behaves like filter respects visibility3035 respects visibility3036 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13037 behaves like filter respects visibility3038 respects visibility3039 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 03040 behaves like filter respects visibility3041 respects visibility3042 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03043 behaves like filter respects visibility3044 respects visibility3045 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03046 behaves like filter respects visibility3047 respects visibility3048 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03049 behaves like filter respects visibility3050 respects visibility3051 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03052 behaves like filter respects visibility3053 respects visibility3054 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03055 behaves like filter respects visibility3056 respects visibility3057 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03058 behaves like filter respects visibility3059 respects visibility3060 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13061 behaves like filter respects visibility3062 respects visibility3063 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03064 behaves like filter respects visibility3065 respects visibility3066 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13067 behaves like filter respects visibility3068 respects visibility3069 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 03070 behaves like filter respects visibility3071 respects visibility3072 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03073 behaves like filter respects visibility3074 respects visibility3075 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03076 behaves like filter respects visibility3077 respects visibility3078 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03079 behaves like filter respects visibility3080 respects visibility3081 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03082 behaves like filter respects visibility3083 respects visibility3084 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03085 behaves like filter respects visibility3086 respects visibility3087 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03088 behaves like filter respects visibility3089 respects visibility3090 with feature issues3091 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13092 behaves like filter respects visibility3093 respects visibility3094 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13095 behaves like filter respects visibility3096 respects visibility3097 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13098 behaves like filter respects visibility3099 respects visibility3100 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13101 behaves like filter respects visibility3102 respects visibility3103 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13104 behaves like filter respects visibility3105 respects visibility3106 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 13107 behaves like filter respects visibility3108 respects visibility3109 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13110 behaves like filter respects visibility3111 respects visibility3112 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03113 behaves like filter respects visibility3114 respects visibility3115 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13116 behaves like filter respects visibility3117 respects visibility3118 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13119 behaves like filter respects visibility3120 respects visibility3121 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03122 behaves like filter respects visibility3123 respects visibility3124 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03125 behaves like filter respects visibility3126 respects visibility3127 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03128 behaves like filter respects visibility3129 respects visibility3130 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03131 behaves like filter respects visibility3132 respects visibility3133 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03134 behaves like filter respects visibility3135 respects visibility3136 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03137 behaves like filter respects visibility3138 respects visibility3139 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13140 behaves like filter respects visibility3141 respects visibility3142 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13143 behaves like filter respects visibility3144 respects visibility3145 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13146 behaves like filter respects visibility3147 respects visibility3148 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13149 behaves like filter respects visibility3150 respects visibility3151 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13152 behaves like filter respects visibility3153 respects visibility3154 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 03155 behaves like filter respects visibility3156 respects visibility3157 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13158 behaves like filter respects visibility3159 respects visibility3160 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03161 behaves like filter respects visibility3162 respects visibility3163 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13164 behaves like filter respects visibility3165 respects visibility3166 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13167 behaves like filter respects visibility3168 respects visibility3169 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03170 behaves like filter respects visibility3171 respects visibility3172 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03173 behaves like filter respects visibility3174 respects visibility3175 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03176 behaves like filter respects visibility3177 respects visibility3178 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03179 behaves like filter respects visibility3180 respects visibility3181 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03182 behaves like filter respects visibility3183 respects visibility3184 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03185 behaves like filter respects visibility3186 respects visibility3187 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13188 behaves like filter respects visibility3189 respects visibility3190 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03191 behaves like filter respects visibility3192 respects visibility3193 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13194 behaves like filter respects visibility3195 respects visibility3196 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13197 behaves like filter respects visibility3198 respects visibility3199 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03200 behaves like filter respects visibility3201 respects visibility3202 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03203 behaves like filter respects visibility3204 respects visibility3205 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03206 behaves like filter respects visibility3207 respects visibility3208 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03209 behaves like filter respects visibility3210 respects visibility3211 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03212 behaves like filter respects visibility3213 respects visibility3214 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03215 behaves like filter respects visibility3216 respects visibility3217 with feature wiki3218 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13219 behaves like filter respects visibility3220 respects visibility3221 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13222 behaves like filter respects visibility3223 respects visibility3224 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13225 behaves like filter respects visibility3226 respects visibility3227 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13228 behaves like filter respects visibility3229 respects visibility3230 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13231 behaves like filter respects visibility3232 respects visibility3233 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 13234 behaves like filter respects visibility3235 respects visibility3236 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13237 behaves like filter respects visibility3238 respects visibility3239 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03240 behaves like filter respects visibility3241 respects visibility3242 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13243 behaves like filter respects visibility3244 respects visibility3245 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13246 behaves like filter respects visibility3247 respects visibility3248 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03249 behaves like filter respects visibility3250 respects visibility3251 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03252 behaves like filter respects visibility3253 respects visibility3254 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03255 behaves like filter respects visibility3256 respects visibility3257 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03258 behaves like filter respects visibility3259 respects visibility3260 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03261 behaves like filter respects visibility3262 respects visibility3263 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03264 behaves like filter respects visibility3265 respects visibility3266 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13267 behaves like filter respects visibility3268 respects visibility3269 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13270 behaves like filter respects visibility3271 respects visibility3272 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13273 behaves like filter respects visibility3274 respects visibility3275 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13276 behaves like filter respects visibility3277 respects visibility3278 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13279 behaves like filter respects visibility3280 respects visibility3281 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 03282 behaves like filter respects visibility3283 respects visibility3284 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13285 behaves like filter respects visibility3286 respects visibility3287 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03288 behaves like filter respects visibility3289 respects visibility3290 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13291 behaves like filter respects visibility3292 respects visibility3293 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13294 behaves like filter respects visibility3295 respects visibility3296 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03297 behaves like filter respects visibility3298 respects visibility3299 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03300 behaves like filter respects visibility3301 respects visibility3302 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03303 behaves like filter respects visibility3304 respects visibility3305 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03306 behaves like filter respects visibility3307 respects visibility3308 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03309 behaves like filter respects visibility3310 respects visibility3311 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03312 behaves like filter respects visibility3313 respects visibility3314 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13315 behaves like filter respects visibility3316 respects visibility3317 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03318 behaves like filter respects visibility3319 respects visibility3320 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13321 behaves like filter respects visibility3322 respects visibility3323 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13324 behaves like filter respects visibility3325 respects visibility3326 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03327 behaves like filter respects visibility3328 respects visibility3329 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03330 behaves like filter respects visibility3331 respects visibility3332 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03333 behaves like filter respects visibility3334 respects visibility3335 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03336 behaves like filter respects visibility3337 respects visibility3338 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03339 behaves like filter respects visibility3340 respects visibility3341 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03342 behaves like filter respects visibility3343 respects visibility3344 with feature code3345 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13346 behaves like filter respects visibility3347 respects visibility3348 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13349 behaves like filter respects visibility3350 respects visibility3351 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13352 behaves like filter respects visibility3353 respects visibility3354 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13355 behaves like filter respects visibility3356 respects visibility3357 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13358 behaves like filter respects visibility3359 respects visibility3360 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 13361 behaves like filter respects visibility3362 respects visibility3363 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13364 behaves like filter respects visibility3365 respects visibility3366 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03367 behaves like filter respects visibility3368 respects visibility3369 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13370 behaves like filter respects visibility3371 respects visibility3372 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13373 behaves like filter respects visibility3374 respects visibility3375 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03376 behaves like filter respects visibility3377 respects visibility3378 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03379 behaves like filter respects visibility3380 respects visibility3381 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03382 behaves like filter respects visibility3383 respects visibility3384 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03385 behaves like filter respects visibility3386 respects visibility3387 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03388 behaves like filter respects visibility3389 respects visibility3390 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03391 behaves like filter respects visibility3392 respects visibility3393 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13394 behaves like filter respects visibility3395 respects visibility3396 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13397 behaves like filter respects visibility3398 respects visibility3399 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13400 behaves like filter respects visibility3401 respects visibility3402 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13403 behaves like filter respects visibility3404 respects visibility3405 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13406 behaves like filter respects visibility3407 respects visibility3408 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 03409 behaves like filter respects visibility3410 respects visibility3411 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13412 behaves like filter respects visibility3413 respects visibility3414 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03415 behaves like filter respects visibility3416 respects visibility3417 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13418 behaves like filter respects visibility3419 respects visibility3420 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13421 behaves like filter respects visibility3422 respects visibility3423 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03424 behaves like filter respects visibility3425 respects visibility3426 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03427 behaves like filter respects visibility3428 respects visibility3429 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03430 behaves like filter respects visibility3431 respects visibility3432 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03433 behaves like filter respects visibility3434 respects visibility3435 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03436 behaves like filter respects visibility3437 respects visibility3438 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03439 behaves like filter respects visibility3440 respects visibility3441 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13442 behaves like filter respects visibility3443 respects visibility3444 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03445 behaves like filter respects visibility3446 respects visibility3447 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13448 behaves like filter respects visibility3449 respects visibility3450 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 03451 behaves like filter respects visibility3452 respects visibility3453 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03454 behaves like filter respects visibility3455 respects visibility3456 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03457 behaves like filter respects visibility3458 respects visibility3459 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03460 behaves like filter respects visibility3461 respects visibility3462 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03463 behaves like filter respects visibility3464 respects visibility3465 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03466 behaves like filter respects visibility3467 respects visibility3468 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03469 behaves like filter respects visibility3470 respects visibility3471 .wrap_with_cte3472 wrapped query matches original3473 #pages_available?3474 when the project is in a top level namespace3475 is expected to equal true3476 when the project is in a subgroup3477 is expected to equal true3478 #remove_private_deploy_keys3479 for a private deploy key3480 when the key is not linked to another project3481 removes the key3482 when the key is linked to another project3483 does not remove the key3484 for a public deploy key3485 does not remove the key3486 #remove_export3487 removes the export3488 with export3489 #export_file_exists? returns true3490 #export_archive_exists? returns false3491 #forks_count3492 returns the number of forks3493 #git_transfer_in_progress?3494 project_reference_counter: 0, wiki_reference_counter: 0, design_reference_counter: 0, result: false3495 is expected to equal false3496 project_reference_counter: 2, wiki_reference_counter: 0, design_reference_counter: 0, result: true3497 is expected to equal true3498 project_reference_counter: 0, wiki_reference_counter: 2, design_reference_counter: 0, result: true3499 is expected to equal true3500 project_reference_counter: 0, wiki_reference_counter: 0, design_reference_counter: 2, result: true3501 is expected to equal true3502 legacy storage3503 #base_dir3504 returns base_dir based on namespace only3505 #disk_path3506 returns disk_path based on namespace and project path3507 #legacy_storage?3508 returns true when storage_version is nil3509 returns true when the storage_version is 03510 #hashed_storage?3511 returns false3512 #pages_path3513 returns a path where pages are stored3514 #migrate_to_hashed_storage!3515 returns true3516 does not run validation3517 schedules HashedStorage::ProjectMigrateWorker with delayed start when the project repo is in use3518 schedules HashedStorage::ProjectMigrateWorker with delayed start when the wiki repo is in use3519 schedules HashedStorage::ProjectMigrateWorker3520 #rollback_to_legacy_storage!3521 returns nil3522 does not run validations3523 hashed storage3524 #legacy_storage?3525 returns false3526 #hashed_storage?3527 returns true if rolled out3528 returns false when not rolled out yet3529 #base_dir3530 returns base_dir based on hash of project id3531 #disk_path3532 returns disk_path based on hash of project id3533 #pages_path3534 returns a path where pages are stored3535 #migrate_to_hashed_storage!3536 returns nil3537 does not flag as read-only3538 when partially migrated3539 enqueues a job3540 #rollback_to_legacy_storage!3541 returns true3542 does not run validations3543 does not flag as read-only3544 enqueues a job3545 #has_ci?3546 when has .gitlab-ci.yml3547 CI is available3548 when there is no .gitlab-ci.yml3549 CI is available3550 when auto devops is disabled3551 CI is not available3552 #predefined_project_variables3553 is expected to include nil3554 when ci config path is overridden3555 is expected to include nil3556 #dependency_proxy_variables3557 when dependency_proxy is enabled3558 contains the downcased name3559 when dependency_proxy is disabled3560 is expected to be empty3561 #auto_devops_enabled?3562 when explicitly enabled3563 is expected to be truthy3564 when explicitly disabled3565 is expected to be falsey3566 when enabled in settings3567 is expected to be truthy3568 when disabled in settings3569 is expected to be falsey3570 when explicitly enabled3571 is expected to be truthy3572 when explicitly disabled3573 is expected to be falsey3574 when force_autodevops_on_by_default is enabled for the project3575 is expected to be truthy3576 with group parents3577 when enabled on parent3578 when auto devops instance enabled3579 is expected to be truthy3580 when auto devops instance disabled3581 is expected to be truthy3582 when disabled on parent3583 when auto devops instance enabled3584 is expected to be falsy3585 when auto devops instance disabled3586 is expected to be falsy3587 when enabled on root parent3588 when auto devops instance enabled3589 is expected to be truthy3590 when auto devops instance disabled3591 is expected to be truthy3592 when explicitly disabled on parent3593 is expected to be falsy3594 when disabled on root parent3595 when auto devops instance enabled3596 is expected to be falsy3597 when auto devops instance disabled3598 is expected to be falsy3599 when explicitly disabled on parent3600 is expected to be falsy3601 #has_auto_devops_implicitly_enabled?3602 when disabled in settings3603 does not have auto devops implicitly disabled3604 when enabled in settings3605 auto devops is implicitly disabled3606 when explicitly disabled3607 does not have auto devops implicitly disabled3608 when explicitly enabled3609 does not have auto devops implicitly disabled3610 when enabled on group3611 has auto devops implicitly enabled3612 when enabled on parent group3613 has auto devops implicitly enabled3614 #has_auto_devops_implicitly_disabled?3615 when explicitly disabled3616 does not have auto devops implicitly disabled3617 when explicitly enabled3618 does not have auto devops implicitly disabled3619 when enabled in settings3620 does not have auto devops implicitly disabled3621 when disabled in settings3622 auto devops is implicitly disabled3623 when force_autodevops_on_by_default is enabled for the project3624 does not have auto devops implicitly disabled3625 when disabled on group3626 has auto devops implicitly disabled3627 when disabled on parent group3628 has auto devops implicitly disabled3629 #api_variables3630 exposes API v4 URL3631 exposes API GraphQL URL3632 contains a URL variable for every supported API version3633 #latest_successful_builds_for3634 without a ref3635 returns a pipeline for the default branch3636 with the ref set to the default branch3637 returns a pipeline for the default branch3638 with a ref that is not the default branch3639 returns the latest successful pipeline for the given ref3640 #check_repository_path_availability3641 when the repository already exists3642 returns false when repository already exists3643 when the repository does not exist3644 returns false when repository already exists3645 skips gitlab-shell exists?3646 #latest_successful_pipeline_for_default_branch3647 memoizes and returns the latest successful pipeline for the default branch3648 #after_import3649 runs the correct hooks3650 project authorizations refresh3651 updates user authorizations3652 branch protection3653 does not protect when branch protection is disabled3654 gives developer access to push when branch protection is set to 'developers can push'3655 gives developer access to merge when branch protection is set to 'developers can merge'3656 protects default branch3657 project target platforms detection3658 calls enqueue_record_project_target_platforms3659 #update_project_counter_caches3660 updates all project counter caches3661 #set_full_path3662 writes full path in .git/config when key is missing3663 updates full path in .git/config when key is present3664 does not raise an error with an empty repository3665 #default_branch3666 with default_branch_name3667 instance_branch: "", root_group_branch: nil, project_group_branch: nil, project_branch: nil3668 is expected to eq nil3669 instance_branch: nil, root_group_branch: nil, project_group_branch: nil, project_branch: nil3670 is expected to eq nil3671 instance_branch: "main", root_group_branch: nil, project_group_branch: nil, project_branch: "main"3672 is expected to eq "main"3673 instance_branch: "main", root_group_branch: "root_branch", project_group_branch: nil, project_branch: "root_branch"3674 is expected to eq "root_branch"3675 instance_branch: "main", root_group_branch: "root_branch", project_group_branch: "group_branch", project_branch: "group_branch"3676 is expected to eq "group_branch"3677 #to_ability_name3678 returns project3679 #execute_hooks3680 executes active projects hooks with the specified scope3681 does not execute project hooks that dont match the specified scope3682 does not execute project hooks which are not active3683 executes hooks which were backed off and are no longer backed off3684 executes the system hooks with the specified scope3685 executes the system hooks when inside a transaction3686 #execute_integrations3687 executes integrations with the specified scope3688 does not execute integration that don't match the specified scope3689 does not trigger extra queries when called multiple times3690 with a CI integration3691 executes the integrations3692 and skipping ci3693 does not execute ci integrations3694 #has_active_hooks?3695 is expected to eq false3696 returns true when a matching push hook exists3697 returns true when a matching system hook exists3698 returns true when a plugin exists3699 with :emoji_hooks scope3700 returns true when a matching emoji hook exists3701 #has_active_integrations?3702 is expected to eq false3703 returns true when a matching service exists3704 caches matching integrations3705 #badges3706 returns the project and the project group badges3707 with nested_groups3708 returns the project and the project nested groups badges3709 with cross internal project merge requests3710 does not endlessly loop for internal projects with MRs to each other3711 #branch_allows_collaboration?3712 when there are open merge requests that have their source/target branches point to each other3713 when user is a developer3714 behaves like successful check3715 does not go into an infinite loop3716 when user is a reporter3717 behaves like successful check3718 does not go into an infinite loop3719 when user is a guest3720 behaves like successful check3721 does not go into an infinite loop3722 with cross project merge requests3723 #merge_requests_allowing_push_to_user3724 returns open merge requests for which the user has developer access to the target project3725 does not include closed merge requests3726 does not include merge requests for guest users3727 does not include the merge request for other users3728 is empty when no user is passed3729 #any_branch_allows_collaboration?3730 allows access when there are merge requests open allowing collaboration3731 does not allow access when there are no merge requests open allowing collaboration3732 #branch_allows_collaboration?3733 allows access if the user can merge the merge request3734 does not allow guest users access3735 does not allow access to branches for which the merge request was closed3736 does not allow access if the user cannot merge the merge request3737 when the requeststore is active3738 only queries per project across instances3739 #external_authorization_classification_label3740 falls back to the default when none is configured3741 returns the classification label if it was configured on the project3742 #pages_https_only?3743 when HTTPS pages are disabled3744 is expected not to be pages https only3745 when HTTPS pages are enabled3746 is expected to be pages https only3747 #pages_https_only? validation3748 when no domains are associated3749 is expected to be valid3750 when domains including keys and certificates are associated3751 is expected to be valid3752 when domains including no keys or certificates are associated3753 is expected not to be valid3754 #toggle_ci_cd_settings!3755 toggles the value on #settings3756 #gitlab_deploy_token3757 when there is a gitlab deploy token associated3758 is expected to eq #<DeployToken id: 7, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-08...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>3759 when there is no a gitlab deploy token associated3760 is expected to be nil3761 when there is a gitlab deploy token associated but is has been revoked3762 is expected to be nil3763 when there is a gitlab deploy token associated but it is expired3764 is expected to be nil3765 when there is a deploy token associated with a different name3766 is expected to be nil3767 when there is a deploy token associated to a different project3768 is expected to be nil3769 when the project group has a gitlab deploy token associated3770 is expected to eq #<DeployToken id: 12, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-0...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>3771 when the project and its group has a gitlab deploy token associated3772 is expected to eq #<DeployToken id: 13, revoked: false, read_repository: true, read_registry: true, expires_at: "2023-0...write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>3773 with uploads3774 behaves like model with uploads3775 .destroy3776 with mounted uploader3777 deletes remote uploads3778 with not mounted uploads3779 with local files3780 deletes any FileUploader uploads which are not mounted3781 deletes local files3782 with remote files3783 deletes any FileUploader uploads which are not mounted3784 deletes remote files3785 #members_among3786 when users is an Array3787 returns project members among the users3788 maintains input order3789 returns empty array if users is empty3790 when users is a relation3791 returns project members among the users3792 returns empty relation if users is empty3793 #find_or_initialize_integrations3794 avoids N+1 database queries3795 avoids N+1 database queries with more available integrations3796 with disabled integrations3797 returns only enabled integrations sorted3798 #disabled_integrations3799 is expected to include "gitlab_slack_application"3800 is expected not to include "slack_slash_commands"3801 when slack_app_enabled setting is enabled3802 is expected to include "slack_slash_commands"3803 is expected not to include "gitlab_slack_application"3804 when Rails.env.development?3805 is expected not to include "slack_slash_commands"3806 is expected not to include "gitlab_slack_application"3807 #find_or_initialize_integration3808 avoids N+1 database queries3809 returns nil if integration is disabled3810 returns nil if integration does not exist3811 with an existing integration3812 retrieves the integration3813 with an instance-level integration3814 builds the integration from the instance integration3815 without an existing integration or instance-level3816 builds the integration3817 .for_group3818 returns the projects for a given group3819 .for_group_and_its_ancestor_groups3820 returns projects for group and its ancestors3821 .pending_data_repair_analysis3822 returns projects that are not in ContainerRegistry::DataRepairDetail3823 .deployments3824 when there is a deployment record with created status3825 does not return the record3826 when there is a deployment record with running status3827 does not return the record3828 when there is a deployment record with success status3829 returns the record3830 #snippets_visible?3831 returns true when a logged in user can read snippets3832 returns true when an anonymous user can read snippets3833 returns false when a user can not read snippets3834 #all_clusters3835 returns project level cluster3836 project belongs to a group3837 returns clusters for groups of this project3838 project is hosted on instance with integrated cluster3839 returns all available clusters for this project3840 #object_pool_params3841 when the objects cannot be pooled3842 is expected to be empty3843 when a pool is created3844 returns that pool repository3845 #git_objects_poolable?3846 when not using hashed storage3847 is expected not to be git objects poolable3848 when the project is private3849 is expected not to be git objects poolable3850 when the project is public3851 is expected to be git objects poolable3852 when the project is internal3853 is expected to be git objects poolable3854 when objects are poolable3855 is expected to be git objects poolable3856 #swap_pool_repository!3857 moves project to the new pool repository3858 when feature flag replicate_object_pool_on_move is disabled3859 behaves like no pool repository swap3860 does not change pool repository for the project3861 when repository does not exist3862 behaves like no pool repository swap3863 does not change pool repository for the project3864 when project does not have a pool repository3865 behaves like no pool repository swap3866 does not change pool repository for the project3867 when project pool is on the same shard as repository3868 behaves like no pool repository swap3869 does not change pool repository for the project3870 when pool repository for shard is missing3871 raises record not found error3872 #leave_pool_repository3873 removes the membership and disconnects alternates3874 when the project is pending delete3875 removes the membership and does not disconnect alternates3876 #link_pool_repository3877 links pool repository to project repository3878 when pool repository is missing3879 does not link anything3880 when pool repository is on the different shard as project repository3881 does not link anything3882 when feature flag replicate_object_pool_on_move is disabled3883 links pool repository to project repository3884 #check_personal_projects_limit3885 when creating a project for a group3886 does nothing3887 when the user is not allowed to create a personal project3888 when the project limit is zero3889 adds a validation error3890 when the project limit is greater than zero3891 adds a validation error3892 when the user is allowed to create personal projects3893 does nothing3894 validation #changing_shared_runners_enabled_is_allowed3895 shared_runners_setting: :shared_runners_enabled, project_shared_runners_enabled: true, valid_record: true3896 validates the configuration3897 shared_runners_setting: :shared_runners_enabled, project_shared_runners_enabled: false, valid_record: true3898 validates the configuration3899 shared_runners_setting: :shared_runners_disabled_and_overridable, project_shared_runners_enabled: true, valid_record: true3900 validates the configuration3901 shared_runners_setting: :shared_runners_disabled_and_overridable, project_shared_runners_enabled: false, valid_record: true3902 validates the configuration3903 shared_runners_setting: :shared_runners_disabled_and_unoverridable, project_shared_runners_enabled: true, valid_record: false3904 validates the configuration3905 shared_runners_setting: :shared_runners_disabled_and_unoverridable, project_shared_runners_enabled: false, valid_record: true3906 validates the configuration3907 #mark_pages_onboarding_complete3908 creates new record and sets onboarding_complete to true if none exists yet3909 overrides an existing setting3910 #mark_pages_as_deployed3911 works when artifacts_archive is missing3912 creates new record and sets deployed to true if none exists yet3913 updates the existing record and sets deployed to true and records artifact archive3914 #mark_pages_as_not_deployed3915 creates new record and sets deployed to false if none exists yet3916 updates the existing record and sets deployed to false and clears artifacts_archive3917 #update_pages_deployment!3918 creates new metadata record if none exists yet and sets deployment3919 updates the existing metadara record with deployment3920 #set_first_pages_deployment!3921 creates new metadata record if none exists yet and sets deployment3922 updates the existing metadara record with deployment3923 only updates metadata for this project3924 does nothing if metadata already references some deployment3925 marks project as not deployed if deployment is nil3926 #has_pool_repsitory?3927 returns false when it does not have a pool repository3928 returns true when it has a pool repository3929 #access_request_approvers_to_be_notified3930 for a personal project3931 behaves like returns active, non_invited, non_requested owners/maintainers of the project3932 is expected to contain exactly #<ProjectMember id: 697, access_level: 40, source_id: 590, source_type: "Project", user_id: 364, noti...invite_email_success: true, member_namespace_id: 1094, member_role_id: nil, expiry_notified_at: nil> and #<ProjectMember id: 696, access_level: 50, source_id: 590, source_type: "Project", user_id: 1, notifi...invite_email_success: true, member_namespace_id: 1094, member_role_id: nil, expiry_notified_at: nil>3933 for a project in a group3934DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3935from Rails 7.1 will use the default Ruby implementation.3936You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3937to enable the new behavior now.3938 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)3939DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3940from Rails 7.1 will use the default Ruby implementation.3941You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3942to enable the new behavior now.3943 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)3944DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3945from Rails 7.1 will use the default Ruby implementation.3946You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3947to enable the new behavior now.3948 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)3949DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3950from Rails 7.1 will use the default Ruby implementation.3951You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3952to enable the new behavior now.3953 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)3954DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3955from Rails 7.1 will use the default Ruby implementation.3956You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3957to enable the new behavior now.3958 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)3959DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3960from Rails 7.1 will use the default Ruby implementation.3961You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3962to enable the new behavior now.3963 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)3964DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3965from Rails 7.1 will use the default Ruby implementation.3966You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3967to enable the new behavior now.3968 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)3969DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3970from Rails 7.1 will use the default Ruby implementation.3971You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3972to enable the new behavior now.3973 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)3974DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3975from Rails 7.1 will use the default Ruby implementation.3976You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3977to enable the new behavior now.3978 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)3979DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3980from Rails 7.1 will use the default Ruby implementation.3981You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3982to enable the new behavior now.3983 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)3984DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3985from Rails 7.1 will use the default Ruby implementation.3986You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3987to enable the new behavior now.3988 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)3989DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3990from Rails 7.1 will use the default Ruby implementation.3991You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3992to enable the new behavior now.3993 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)3994DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and3995from Rails 7.1 will use the default Ruby implementation.3996You can set `config.active_support.remove_deprecated_time_with_zone_name = true`3997to enable the new behavior now.3998 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)3999DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4000from Rails 7.1 will use the default Ruby implementation.4001You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4002to enable the new behavior now.4003 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4004DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4005from Rails 7.1 will use the default Ruby implementation.4006You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4007to enable the new behavior now.4008 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4009DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4010from Rails 7.1 will use the default Ruby implementation.4011You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4012to enable the new behavior now.4013 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4014DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4015from Rails 7.1 will use the default Ruby implementation.4016You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4017to enable the new behavior now.4018 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4019DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4020from Rails 7.1 will use the default Ruby implementation.4021You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4022to enable the new behavior now.4023 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4024DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4025from Rails 7.1 will use the default Ruby implementation.4026You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4027to enable the new behavior now.4028 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4029DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4030from Rails 7.1 will use the default Ruby implementation.4031You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4032to enable the new behavior now.4033 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4034DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4035from Rails 7.1 will use the default Ruby implementation.4036You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4037to enable the new behavior now.4038 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4039DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4040from Rails 7.1 will use the default Ruby implementation.4041You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4042to enable the new behavior now.4043 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4044DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4045from Rails 7.1 will use the default Ruby implementation.4046You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4047to enable the new behavior now.4048 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4049DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4050from Rails 7.1 will use the default Ruby implementation.4051You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4052to enable the new behavior now.4053 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4054DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4055from Rails 7.1 will use the default Ruby implementation.4056You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4057to enable the new behavior now.4058 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4059DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4060from Rails 7.1 will use the default Ruby implementation.4061You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4062to enable the new behavior now.4063 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4064DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4065from Rails 7.1 will use the default Ruby implementation.4066You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4067to enable the new behavior now.4068 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4069DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4070from Rails 7.1 will use the default Ruby implementation.4071You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4072to enable the new behavior now.4073 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4074DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4075from Rails 7.1 will use the default Ruby implementation.4076You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4077to enable the new behavior now.4078 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4079DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4080from Rails 7.1 will use the default Ruby implementation.4081You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4082to enable the new behavior now.4083 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4084DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4085from Rails 7.1 will use the default Ruby implementation.4086You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4087to enable the new behavior now.4088 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4089DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4090from Rails 7.1 will use the default Ruby implementation.4091You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4092to enable the new behavior now.4093 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4094DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4095from Rails 7.1 will use the default Ruby implementation.4096You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4097to enable the new behavior now.4098 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4099DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4100from Rails 7.1 will use the default Ruby implementation.4101You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4102to enable the new behavior now.4103 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4104DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4105from Rails 7.1 will use the default Ruby implementation.4106You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4107to enable the new behavior now.4108 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4109DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4110from Rails 7.1 will use the default Ruby implementation.4111You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4112to enable the new behavior now.4113 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4114DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4115from Rails 7.1 will use the default Ruby implementation.4116You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4117to enable the new behavior now.4118 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4119DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4120from Rails 7.1 will use the default Ruby implementation.4121You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4122to enable the new behavior now.4123 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4124DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4125from Rails 7.1 will use the default Ruby implementation.4126You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4127to enable the new behavior now.4128 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4129DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4130from Rails 7.1 will use the default Ruby implementation.4131You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4132to enable the new behavior now.4133 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4134DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4135from Rails 7.1 will use the default Ruby implementation.4136You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4137to enable the new behavior now.4138 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4139DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4140from Rails 7.1 will use the default Ruby implementation.4141You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4142to enable the new behavior now.4143 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:108)4144DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4145from Rails 7.1 will use the default Ruby implementation.4146You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4147to enable the new behavior now.4148 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4149DEPRECATION WARNING: ActiveSupport::TimeWithZone.name has been deprecated and4150from Rails 7.1 will use the default Ruby implementation.4151You can set `config.active_support.remove_deprecated_time_with_zone_name = true`4152to enable the new behavior now.4153 (called from block (4 levels) in <top (required)> at /builds/edith007/gitlab/spec/factories/users.rb:109)4154 returns a maximum of ten maintainers/owners of the project in recent_sign_in descending order4155 behaves like returns active, non_invited, non_requested owners/maintainers of the project4156 is expected to contain exactly #<ProjectMember id: 731, access_level: 40, source_id: 596, source_type: "Project", user_id: 383, noti...invite_email_success: true, member_namespace_id: 1108, member_role_id: nil, expiry_notified_at: nil> and #<ProjectMember id: 708, access_level: 50, source_id: 596, source_type: "Project", user_id: 371, noti...invite_email_success: true, member_namespace_id: 1108, member_role_id: nil, expiry_notified_at: nil>4157 #pages_lookup_path4158 returns instance of Pages::LookupPath4159 .with_pages_deployed4160 returns only projects that have pages deployed4161 .pages_metadata_not_migrated4162 returns only projects that have pages deployed4163 #pages_variables4164 returns the pages variables4165 returns the pages variables4166 #closest_setting4167 when setting is of non-boolean type4168 global_setting: 100, group_setting: 200, project_setting: 300, result: 3004169 behaves like fetching closest setting4170 returns closest non-nil value4171 global_setting: 100, group_setting: 200, project_setting: nil, result: 2004172 behaves like fetching closest setting4173 returns closest non-nil value4174 global_setting: 100, group_setting: nil, project_setting: nil, result: 1004175 behaves like fetching closest setting4176 returns closest non-nil value4177 global_setting: nil, group_setting: nil, project_setting: nil, result: nil4178 behaves like fetching closest setting4179 returns closest non-nil value4180 when setting is of boolean type4181 global_setting: true, group_setting: true, project_setting: false, result: false4182 behaves like fetching closest setting4183 returns closest non-nil value4184 global_setting: true, group_setting: false, project_setting: nil, result: false4185 behaves like fetching closest setting4186 returns closest non-nil value4187 global_setting: true, group_setting: nil, project_setting: nil, result: true4188 behaves like fetching closest setting4189 returns closest non-nil value4190 #drop_visibility_level!4191 when has a group4192 when the group `visibility_level` is more strict4193 sets `visibility_level` value from the group4194 when the group `visibility_level` is less strict4195 does not change the value of the `visibility_level` field4196 when `restricted_visibility_levels` of the GitLab instance exist4197 when `visibility_level` is included into `restricted_visibility_levels`4198 sets `visibility_level` value to `PRIVATE`4199 when `restricted_visibility_levels` does not include `visibility_level`4200 does not change the value of the `visibility_level` field4201 #jira_subscription_exists?4202 jira connect subscription exists4203 is expected to eq true4204 with_issues_or_mrs_available_for_user4205 returns correct projects4206 #limited_protected_branches4207 returns limited number of protected branches based on specified limit4208 #group_protected_branches4209 returns protected branches of the group4210 when project belongs to namespace4211 returns empty relation4212 #all_protected_branches4213 when feature flag `group_protected_branches` enabled4214 return all protected branches4215 when feature flag `group_protected_branches` disabled4216 return only project-level protected branches4217 #lfs_objects_oids4218 when project has associated LFS objects4219 returns OIDs of LFS objects4220 lfs_objects_projects associations are deleted along with project4221 lfs_objects associations are unchanged when the assicated project is removed4222 and there are specified oids4223 returns OIDs of LFS objects that match specified oids4224 when project has no associated LFS objects4225 returns empty array4226 #prometheus_integration_active?4227 when project has an activated prometheus integration4228 is expected to be truthy4229 when project has an inactive prometheus integration4230 the integration is marked as inactive4231 #add_export_job4232 when project storage_size does not exceed the application setting max_export_size4233 starts project export worker4234 when project storage_size exceeds the application setting max_export_size4235 raises Project::ExportLimitExceeded4236 when application setting max_export_size is not set4237 starts project export worker4238 #export_in_progress?4239 when project export is enqueued4240 is expected to equal false4241 when project export is in progress4242 is expected to equal true4243 when project export is completed4244 is expected to equal false4245 #export_status4246 when project export is enqueued4247 is expected to eq :queued4248 when project export is in progress4249 is expected to eq :started4250 when project export is completed4251 is expected to eq :finished4252 when project export is being regenerated4253 is expected to eq :regeneration_in_progress4254 with Debian Distributions4255 behaves like model with Debian distributions4256 removes distribution files on removal4257 #environments_for_scope4258 retrieves all project environments when using the * wildcard4259 retrieves a specific project environment when using the name of that environment4260 #latest_jira_import4261 when no jira imports4262 returns nil4263 when single jira import4264 returns the jira import4265 when multiple jira imports4266 returns latest jira import by created_at4267 #packages_enabled4268 is expected to equal true4269 when packages_enabled is enabled4270 project_visibility: 0, expected_result: 104271 set package_registry_access_level to correct value4272 project_visibility: 10, expected_result: 204273 set package_registry_access_level to correct value4274 project_visibility: 20, expected_result: 304275 set package_registry_access_level to correct value4276 when packages_enabled is disabled4277 set package_registry_access_level to DISABLED4278 set package_registry_access_level to DISABLED4279 set package_registry_access_level to DISABLED4280 #related_group_ids4281 when associated with a namespace4282 only includes linked groups4283 when associated with a group4284 includes self, ancestors and linked groups4285 #has_namespaced_npm_packages?4286 with scope of the namespace path4287 is expected to equal true4288 without scope of the namespace path4289 is expected to equal false4290 without packages4291 is expected to equal false4292 #package_already_taken?4293 within the package project4294 package_name: "@test/bar", package_version: "1.2.3", expected_result: false4295 is expected to eq false4296 package_name: "@test/bar", package_version: "5.5.5", expected_result: false4297 is expected to eq false4298 package_name: "@test/foo", package_version: "1.2.3", expected_result: false4299 is expected to eq false4300 package_name: "@test/foo", package_version: "5.5.5", expected_result: false4301 is expected to eq false4302 within a different project4303 package_name: "@test/bar", package_version: "1.2.3", expected_result: false4304 is expected to eq false4305 package_name: "@test/bar", package_version: "5.5.5", expected_result: false4306 is expected to eq false4307 package_name: "@test/foo", package_version: "1.2.3", expected_result: true4308 is expected to eq true4309 package_name: "@test/foo", package_version: "5.5.5", expected_result: false4310 is expected to eq false4311 for a different package type4312 returns false4313 with a pending_destruction package4314 package_name: "@test/bar", package_version: "1.2.3", expected_result: false4315 is expected to eq false4316 package_name: "@test/bar", package_version: "5.5.5", expected_result: false4317 is expected to eq false4318 package_name: "@test/foo", package_version: "1.2.3", expected_result: false4319 is expected to eq false4320 package_name: "@test/foo", package_version: "5.5.5", expected_result: false4321 is expected to eq false4322 #design_management_enabled?4323 lfs_enabled: false, hashed_storage_enabled: false, expectation: false4324 is expected to equal false4325 lfs_enabled: true, hashed_storage_enabled: false, expectation: false4326 is expected to equal false4327 lfs_enabled: false, hashed_storage_enabled: true, expectation: false4328 is expected to equal false4329 lfs_enabled: true, hashed_storage_enabled: true, expectation: true4330 is expected to equal true4331 #parent_loaded?4332 is false when the parent is not loaded4333 is true when the parent is loaded4334 #bots4335 is expected to contain exactly #<User id:407 @user377>4336 is expected not to include #<User id:408 @user378>4337 #metrics_setting4338 creates setting if it does not exist4339 #enabled_group_deploy_keys4340 when a project does not have a group4341 is expected to be empty4342 when a project has a parent group4343 and this group has a group deploy key enabled4344 is expected to contain exactly #<GroupDeployKey id: 1, user_id: 409, created_at: "2023-08-13 07:18:53.748583408 +0000", updated_at: ...59:85:25:6b:99", fingerprint_sha256: "fyOTkqwOXkuP+zBOY9KbKOsw3+S7zmfoah57+wLgwXk", usage_type: nil>4345 and this group has parent group which also has a group deploy key enabled4346 returns both group deploy keys4347 and another group has a group deploy key enabled4348 does not return this group deploy key4349 #activity_path4350 returns the project activity_path4351 #default_branch_or_main4352 returns default branch4353 when default branch is nil4354 returns Gitlab::DefaultBranch.value4355 topics4356 topic_list returns correct string array4357 topics returns correct topic records4358 topic_list=4359 set topics if only the order is changed4360 does not persist topics before project is saved4361 does not update topics if project is not valid4362 does not add new topic if name is not unique (case insensitive)4363 topic_list: ["topicA", "topicB"], expected_result: ["topicA", "topicB"]4364 set topics4365 topic_list: ["topicB", "topicA"], expected_result: ["topicB", "topicA"]4366 set topics4367 topic_list: [" topicC ", " topicD "], expected_result: ["topicC", "topicD"]4368 set topics4369 topic_list: ["topicE", "topicF", "topicE"], expected_result: ["topicE", "topicF"]4370 set topics4371 topic_list: ["topicE ", "topicF", " topicE"], expected_result: ["topicE", "topicF"]4372 set topics4373 topic_list: "topicA, topicB", expected_result: ["topicA", "topicB"]4374 set topics4375 topic_list: "topicB, topicA", expected_result: ["topicB", "topicA"]4376 set topics4377 topic_list: " topicC , topicD ", expected_result: ["topicC", "topicD"]4378 set topics4379 topic_list: "topicE, topicF, topicE", expected_result: ["topicE", "topicF"]4380 set topics4381 topic_list: "topicE , topicF, topicE", expected_result: ["topicE", "topicF"]4382 set topics4383 public topics counter4384 initial_visibility: private, new_visibility: nil, new_topic_list: "t2, t3", expected_count_changes: [0, 0, 0]4385 increments or decrements counters of topics4386 initial_visibility: internal, new_visibility: nil, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]4387 increments or decrements counters of topics4388 initial_visibility: public, new_visibility: nil, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]4389 increments or decrements counters of topics4390 initial_visibility: private, new_visibility: public, new_topic_list: nil, expected_count_changes: [1, 1, 0]4391 increments or decrements counters of topics4392 initial_visibility: private, new_visibility: internal, new_topic_list: nil, expected_count_changes: [1, 1, 0]4393 increments or decrements counters of topics4394 initial_visibility: private, new_visibility: private, new_topic_list: nil, expected_count_changes: [0, 0, 0]4395 increments or decrements counters of topics4396 initial_visibility: internal, new_visibility: public, new_topic_list: nil, expected_count_changes: [0, 0, 0]4397 increments or decrements counters of topics4398 initial_visibility: internal, new_visibility: internal, new_topic_list: nil, expected_count_changes: [0, 0, 0]4399 increments or decrements counters of topics4400 initial_visibility: internal, new_visibility: private, new_topic_list: nil, expected_count_changes: [-1, -1, 0]4401 increments or decrements counters of topics4402 initial_visibility: public, new_visibility: public, new_topic_list: nil, expected_count_changes: [0, 0, 0]4403 increments or decrements counters of topics4404 initial_visibility: public, new_visibility: internal, new_topic_list: nil, expected_count_changes: [0, 0, 0]4405 increments or decrements counters of topics4406 initial_visibility: public, new_visibility: private, new_topic_list: nil, expected_count_changes: [-1, -1, 0]4407 increments or decrements counters of topics4408 initial_visibility: private, new_visibility: public, new_topic_list: "t2, t3", expected_count_changes: [0, 1, 1]4409 increments or decrements counters of topics4410 initial_visibility: private, new_visibility: internal, new_topic_list: "t2, t3", expected_count_changes: [0, 1, 1]4411 increments or decrements counters of topics4412 initial_visibility: private, new_visibility: private, new_topic_list: "t2, t3", expected_count_changes: [0, 0, 0]4413 increments or decrements counters of topics4414 initial_visibility: internal, new_visibility: public, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]4415 increments or decrements counters of topics4416 initial_visibility: internal, new_visibility: internal, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]4417 increments or decrements counters of topics4418 initial_visibility: internal, new_visibility: private, new_topic_list: "t2, t3", expected_count_changes: [-1, -1, 0]4419 increments or decrements counters of topics4420 initial_visibility: public, new_visibility: public, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]4421 increments or decrements counters of topics4422 initial_visibility: public, new_visibility: internal, new_topic_list: "t2, t3", expected_count_changes: [-1, 0, 1]4423 increments or decrements counters of topics4424 initial_visibility: public, new_visibility: private, new_topic_list: "t2, t3", expected_count_changes: [-1, -1, 0]4425 increments or decrements counters of topics4426 #all_runners4427 behaves like all_runners4428 when shared runners are enabled for project4429 returns a list with all runners4430 when shared runners are disabled for project4431 returns a list without shared runners4432 when group runners are enabled for project4433 returns a list with all runners4434 when group runners are disabled for project4435 returns a list without group runners4436 #all_available_runners4437 behaves like all_runners4438 when shared runners are enabled for project4439 returns a list with all runners4440 when shared runners are disabled for project4441 returns a list without shared runners4442 when group runners are enabled for project4443 returns a list with all runners4444 when group runners are disabled for project4445 returns a list without group runners4446 #enforced_runner_token_expiration_interval and #effective_runner_token_expiration_interval4447 when there is no interval4448 behaves like no enforced expiration interval4449 is expected to be nil4450 behaves like no effective expiration interval4451 is expected to be nil4452 when there is a project interval4453 behaves like no enforced expiration interval4454 is expected to be nil4455 behaves like effective expiration interval4456 is expected to eq 3 days4457 when there is a site-wide enforced shared interval4458 behaves like no enforced expiration interval4459 is expected to be nil4460 behaves like no effective expiration interval4461 is expected to be nil4462 when there is a site-wide enforced group interval4463 behaves like no enforced expiration interval4464 is expected to be nil4465 behaves like no effective expiration interval4466 is expected to be nil4467 when there is a site-wide enforced project interval4468 behaves like enforced expiration interval4469 is expected to eq 5 days4470 behaves like effective expiration interval4471 is expected to eq 5 days4472 when there is a group-enforced group interval4473 behaves like no enforced expiration interval4474 is expected to be nil4475 behaves like no effective expiration interval4476 is expected to be nil4477 when there is a group-enforced subgroup interval4478 behaves like no enforced expiration interval4479 is expected to be nil4480 behaves like no effective expiration interval4481 is expected to be nil4482 when there is an owner group-enforced project interval4483 behaves like enforced expiration interval4484 is expected to eq 4 days4485 behaves like effective expiration interval4486 is expected to eq 4 days4487 when there is a grandparent group-enforced interval4488 behaves like enforced expiration interval4489 is expected to eq 3 days4490 behaves like effective expiration interval4491 is expected to eq 3 days4492 when there is a parent group-enforced interval overridden by group-enforced interval4493 behaves like enforced expiration interval4494 is expected to eq 4 days4495 behaves like effective expiration interval4496 is expected to eq 4 days4497 when site-wide enforced interval overrides project interval4498 behaves like enforced expiration interval4499 is expected to eq 3 days4500 behaves like effective expiration interval4501 is expected to eq 3 days4502 when project interval overrides site-wide enforced interval4503 has human-readable expiration intervals4504 behaves like enforced expiration interval4505 is expected to eq 5 days4506 behaves like effective expiration interval4507 is expected to eq 4 days4508 when site-wide enforced interval overrides group-enforced interval4509 behaves like enforced expiration interval4510 is expected to eq 3 days4511 behaves like effective expiration interval4512 is expected to eq 3 days4513 when group-enforced interval overrides site-wide enforced interval4514 behaves like enforced expiration interval4515 is expected to eq 4 days4516 behaves like effective expiration interval4517 is expected to eq 4 days4518 when group-enforced interval overrides project interval4519 behaves like enforced expiration interval4520 is expected to eq 3 days4521 behaves like effective expiration interval4522 is expected to eq 3 days4523 when project interval overrides group-enforced interval4524 behaves like enforced expiration interval4525 is expected to eq 5 days4526 behaves like effective expiration interval4527 is expected to eq 4 days4528 when there is an enforced project interval in an unrelated group4529 behaves like no enforced expiration interval4530 is expected to be nil4531 behaves like no effective expiration interval4532 is expected to be nil4533 when there is an enforced project interval in a subgroup4534 behaves like no enforced expiration interval4535 is expected to be nil4536 behaves like no effective expiration interval4537 is expected to be nil4538 behaves like it has loose foreign keys4539 has at least one loose foreign key definition4540 has the deletion trigger present4541 records record deletions4542 cleans up record deletions4543 Projects::SyncEvent4544 when creating the project4545 creates a projects_sync_event record4546 enqueues ProcessProjectSyncEventsWorker4547 when updating project namespace_id4548 creates a projects_sync_event record4549 enqueues ProcessProjectSyncEventsWorker4550 when updating project other attribute4551 creates a projects_sync_event record4552 in the same transaction4553 when updating different namespace_id4554 creates two projects_sync_event records4555 when updating the same namespace_id4556 creates one projects_sync_event record4557 .not_hidden4558 lists projects that are not hidden4559 #pending_delete_or_hidden?4560 pending_delete: true, hidden: false, expected_result: true4561 returns true if project is pending delete or hidden4562 pending_delete: true, hidden: true, expected_result: true4563 returns true if project is pending delete or hidden4564 pending_delete: false, hidden: true, expected_result: true4565 returns true if project is pending delete or hidden4566 pending_delete: false, hidden: false, expected_result: false4567 returns true if project is pending delete or hidden4568 #work_items_feature_flag_enabled?4569 behaves like checks parent group feature flag4570 when feature flag is disabled globally4571 is expected to be falsey4572 when feature flag is enabled globally4573 is expected to be truthy4574 when feature flag is enabled for the root group4575 is expected to be truthy4576 when feature flag is enabled for the group4577 is expected to be truthy4578 when feature flag is enabled for the project4579 when project belongs to a group4580 is expected to be truthy4581 when project does not belong to a group4582 is expected to be truthy4583 #content_editor_on_issues_feature_flag_enabled?4584 behaves like checks parent group feature flag4585 when feature flag is disabled globally4586 is expected to be falsey4587 when feature flag is enabled globally4588 is expected to be truthy4589 when feature flag is enabled for the root group4590 is expected to be truthy4591 when feature flag is enabled for the group4592 is expected to be truthy4593 #work_items_mvc_feature_flag_enabled?4594 behaves like checks parent group feature flag4595 when feature flag is disabled globally4596 is expected to be falsey4597 when feature flag is enabled globally4598 is expected to be truthy4599 when feature flag is enabled for the root group4600 is expected to be truthy4601 when feature flag is enabled for the group4602 is expected to be truthy4603 #work_items_mvc_2_feature_flag_enabled?4604 behaves like checks parent group feature flag4605 when feature flag is disabled globally4606 is expected to be falsey4607 when feature flag is enabled globally4608 is expected to be truthy4609 when feature flag is enabled for the root group4610 is expected to be truthy4611 when feature flag is enabled for the group4612 is expected to be truthy4613 serialization4614 behaves like blocks unsafe serialization4615 blocks as_json4616 blocks to_json4617 #enqueue_record_project_target_platforms4618 enqueues a Projects::RecordTargetPlatformsWorker4619 when not in gitlab.com4620 behaves like does not enqueue a Projects::RecordTargetPlatformsWorker4621 does not enqueue a Projects::RecordTargetPlatformsWorker4622 #inactive?4623 behaves like returns true if project is inactive4624 storage_size: 1048576, last_activity_at: Thu, 13 Jul 2023 07:11:44.733375243 UTC +00:00, expected_result: false4625 returns expected result4626 storage_size: 1048576, last_activity_at: Thu, 13 Aug 2020 07:11:44.733766803 UTC +00:00, expected_result: false4627 returns expected result4628 storage_size: 8388608, last_activity_at: Thu, 13 Jul 2023 07:11:44.733935253 UTC +00:00, expected_result: false4629 returns expected result4630 storage_size: 8388608, last_activity_at: Thu, 13 Aug 2020 07:11:44.734055253 UTC +00:00, expected_result: true4631 returns expected result4632 .inactive4633 returns projects that are inactive4634 #refreshing_build_artifacts_size?4635 when project has no existing refresh record4636 is expected to be falsey4637 when project has existing refresh record4638 and refresh has not yet started4639 is expected to eq false4640 and refresh has started4641 is expected to eq true4642 #group_group_links4643 with group project4644 returns group links of group4645 with personal project4646 returns none4647 #security_training_available?4648 returns false4649 #packages_policy_subject4650 returns wrapper4651 #destroy_deployment_by_id4652 will call fast_destroy_all on a specific deployment by id4653 #can_create_custom_domains?4654 when max custom domain setting is set to 04655 is expected to equal true4656 when max custom domain setting is not set to 04657 is expected to equal false4658 #can_suggest_reviewers?4659 is expected to equal false4660 #suggested_reviewers_available?4661 is expected to equal false4662 .cascading_with_parent_namespace4663 behaves like cascading settings4664 return self value when no parent4665 return self value when unlocked4666 still return self value when locked subgroup4667 still return unlocked value when locked group4668 behaves like cascading settings4669 return self value when no parent4670 return self value when unlocked4671 still return self value when locked subgroup4672 still return unlocked value when locked group4673 behaves like cascading settings4674 return self value when no parent4675 return self value when unlocked4676 still return self value when locked subgroup4677 still return unlocked value when locked group4678 #archived4679 is expected to be falsey4680 is expected to be truthy4681 #resolve_outdated_diff_discussions4682 is expected to be falsey4683 when set explicitly4684 is expected to be truthy4685 #only_allow_merge_if_all_discussions_are_resolved4686 is expected to be falsey4687 when set explicitly4688 is expected to be truthy4689 #remove_source_branch_after_merge4690 is expected to be truthy4691 when set explicitly4692 is expected to be falsey4693 .is_importing4694 returns projects that have import in progress4695 .without_created_and_owned_by_banned_user4696 when project creator is not banned4697 includes the project4698 when project creator is banned4699 when project creator is also an owner4700 excludes the project4701 when project creator is not an owner4702 includes the project4703 #created_and_owned_by_banned_user?4704 when creator is banned4705 is expected to eq false4706 when creator is an owner4707 is expected to eq true4708 when creator is not banned4709 is expected to eq false4710 when there is no creator4711 is expected to eq false4712 behaves like something that has web-hooks4713 #any_hook_failed?4714 when there are no hooks4715 is expected to eq false4716 when there are hooks4717 is expected to eq false4718 when there is a failed hook4719 is expected to eq true4720 #cache_web_hook_failure4721 when no value is passed4722 stores the return value of #any_hook_failed? and passes it back4723 when a value is passed4724 stores the value and passes it back4725 #get_web_hook_failure4726 when no value is stored4727 is expected to be nil4728 when stored as true4729 is expected to eq true4730 when stored as false4731 is expected to eq false4732 #fetch_web_hook_failure4733 when a value has not been stored4734 calls #any_hook_failed?4735 when a value has been stored4736 does not call #any_hook_failed?4737 deprecated project attributes4738 project_attr: :wiki_enabled, project_method: :wiki_enabled?, project_feature_attr: :wiki_access_level4739 delegates the attributes to project feature4740 sets the default value4741 project_attr: :builds_enabled, project_method: :builds_enabled?, project_feature_attr: :builds_access_level4742 delegates the attributes to project feature4743 sets the default value4744 project_attr: :merge_requests_enabled, project_method: :merge_requests_enabled?, project_feature_attr: :merge_requests_access_level4745 delegates the attributes to project feature4746 sets the default value4747 project_attr: :issues_enabled, project_method: :issues_enabled?, project_feature_attr: :issues_access_level4748 delegates the attributes to project feature4749 sets the default value4750 project_attr: :snippets_enabled, project_method: :snippets_enabled?, project_feature_attr: :snippets_access_level4751 delegates the attributes to project feature4752 sets the default value4753Banzai::Filter::References::ExternalIssueReferenceFilter4754 redmine project4755 with a hash prefix4756 behaves like external issue tracker4757 requires project context4758 ignores valid references contained inside 'pre' element4759 ignores valid references contained inside 'code' element4760 ignores valid references contained inside 'a' element4761 ignores valid references contained inside 'style' element4762 ignores valid references when using default tracker4763 links to a valid reference4764 links to the external tracker4765 links with adjacent text4766 includes a title attribute4767 escapes the title attribute4768 includes default classes4769 supports an :only_path context4770 has an empty link if issue_url is invalid4771 has an empty link if issue_path is invalid4772 behaves like a reference containing an element node4773 does not escape inner html4774 with RequestStore enabled4775 queries the collection on the first call4776 with a single-letter prefix4777 behaves like external issue tracker4778 requires project context4779 ignores valid references contained inside 'pre' element4780 ignores valid references contained inside 'code' element4781 ignores valid references contained inside 'a' element4782 ignores valid references contained inside 'style' element4783 ignores valid references when using default tracker4784 links to a valid reference4785 links to the external tracker4786 links with adjacent text4787 includes a title attribute4788 escapes the title attribute4789 includes default classes4790 supports an :only_path context4791 has an empty link if issue_url is invalid4792 has an empty link if issue_path is invalid4793 behaves like a reference containing an element node4794 does not escape inner html4795 with RequestStore enabled4796 queries the collection on the first call4797 youtrack project4798 with right markdown4799 behaves like external issue tracker4800 requires project context4801 ignores valid references contained inside 'pre' element4802 ignores valid references contained inside 'code' element4803 ignores valid references contained inside 'a' element4804 ignores valid references contained inside 'style' element4805 ignores valid references when using default tracker4806 links to a valid reference4807 links to the external tracker4808 links with adjacent text4809 includes a title attribute4810 escapes the title attribute4811 includes default classes4812 supports an :only_path context4813 has an empty link if issue_url is invalid4814 has an empty link if issue_path is invalid4815 behaves like a reference containing an element node4816 does not escape inner html4817 with RequestStore enabled4818 queries the collection on the first call4819 with underscores in the prefix4820 behaves like external issue tracker4821 requires project context4822 ignores valid references contained inside 'pre' element4823 ignores valid references contained inside 'code' element4824 ignores valid references contained inside 'a' element4825 ignores valid references contained inside 'style' element4826 ignores valid references when using default tracker4827 links to a valid reference4828 links to the external tracker4829 links with adjacent text4830 includes a title attribute4831 escapes the title attribute4832 includes default classes4833 supports an :only_path context4834 has an empty link if issue_url is invalid4835 has an empty link if issue_path is invalid4836 behaves like a reference containing an element node4837 does not escape inner html4838 with RequestStore enabled4839 queries the collection on the first call4840 with lowercase letters in the prefix4841 behaves like external issue tracker4842 requires project context4843 ignores valid references contained inside 'pre' element4844 ignores valid references contained inside 'code' element4845 ignores valid references contained inside 'a' element4846 ignores valid references contained inside 'style' element4847 ignores valid references when using default tracker4848 links to a valid reference4849 links to the external tracker4850 links with adjacent text4851 includes a title attribute4852 escapes the title attribute4853 includes default classes4854 supports an :only_path context4855 has an empty link if issue_url is invalid4856 has an empty link if issue_path is invalid4857 behaves like a reference containing an element node4858 does not escape inner html4859 with RequestStore enabled4860 queries the collection on the first call4861 with a single-letter prefix4862 behaves like external issue tracker4863 requires project context4864 ignores valid references contained inside 'pre' element4865 ignores valid references contained inside 'code' element4866 ignores valid references contained inside 'a' element4867 ignores valid references contained inside 'style' element4868 ignores valid references when using default tracker4869 links to a valid reference4870 links to the external tracker4871 links with adjacent text4872 includes a title attribute4873 escapes the title attribute4874 includes default classes4875 supports an :only_path context4876 has an empty link if issue_url is invalid4877 has an empty link if issue_path is invalid4878 behaves like a reference containing an element node4879 does not escape inner html4880 with RequestStore enabled4881 queries the collection on the first call4882 with a lowercase prefix4883 behaves like external issue tracker4884 requires project context4885 ignores valid references contained inside 'pre' element4886 ignores valid references contained inside 'code' element4887 ignores valid references contained inside 'a' element4888 ignores valid references contained inside 'style' element4889 ignores valid references when using default tracker4890 links to a valid reference4891 links to the external tracker4892 links with adjacent text4893 includes a title attribute4894 escapes the title attribute4895 includes default classes4896 supports an :only_path context4897 has an empty link if issue_url is invalid4898 has an empty link if issue_path is invalid4899 behaves like a reference containing an element node4900 does not escape inner html4901 with RequestStore enabled4902 queries the collection on the first call4903 clickup project4904 with right markdown4905 behaves like external issue tracker4906 requires project context4907 ignores valid references contained inside 'pre' element4908 ignores valid references contained inside 'code' element4909 ignores valid references contained inside 'a' element4910 ignores valid references contained inside 'style' element4911 ignores valid references when using default tracker4912 links to a valid reference4913 links to the external tracker4914 links with adjacent text4915 includes a title attribute4916 escapes the title attribute4917 includes default classes4918 supports an :only_path context4919 has an empty link if issue_url is invalid4920 has an empty link if issue_path is invalid4921 behaves like a reference containing an element node4922 does not escape inner html4923 with RequestStore enabled4924 queries the collection on the first call4925 with underscores in the prefix4926 behaves like external issue tracker4927 requires project context4928 ignores valid references contained inside 'pre' element4929 ignores valid references contained inside 'code' element4930 ignores valid references contained inside 'a' element4931 ignores valid references contained inside 'style' element4932 ignores valid references when using default tracker4933 links to a valid reference4934 links to the external tracker4935 links with adjacent text4936 includes a title attribute4937 escapes the title attribute4938 includes default classes4939 supports an :only_path context4940 has an empty link if issue_url is invalid4941 has an empty link if issue_path is invalid4942 behaves like a reference containing an element node4943 does not escape inner html4944 with RequestStore enabled4945 queries the collection on the first call4946 with a hash prefix and alphanumeric4947 behaves like external issue tracker4948 requires project context4949 ignores valid references contained inside 'pre' element4950 ignores valid references contained inside 'code' element4951 ignores valid references contained inside 'a' element4952 ignores valid references contained inside 'style' element4953 ignores valid references when using default tracker4954 links to a valid reference4955 links to the external tracker4956 links with adjacent text4957 includes a title attribute4958 escapes the title attribute4959 includes default classes4960 supports an :only_path context4961 has an empty link if issue_url is invalid4962 has an empty link if issue_path is invalid4963 behaves like a reference containing an element node4964 does not escape inner html4965 with RequestStore enabled4966 queries the collection on the first call4967 with prefix and alphanumeric4968 behaves like external issue tracker4969 requires project context4970 ignores valid references contained inside 'pre' element4971 ignores valid references contained inside 'code' element4972 ignores valid references contained inside 'a' element4973 ignores valid references contained inside 'style' element4974 ignores valid references when using default tracker4975 links to a valid reference4976 links to the external tracker4977 links with adjacent text4978 includes a title attribute4979 escapes the title attribute4980 includes default classes4981 supports an :only_path context4982 has an empty link if issue_url is invalid4983 has an empty link if issue_path is invalid4984 behaves like a reference containing an element node4985 does not escape inner html4986 with RequestStore enabled4987 queries the collection on the first call4988 jira project4989 with right markdown4990 behaves like external issue tracker4991 requires project context4992 ignores valid references contained inside 'pre' element4993 ignores valid references contained inside 'code' element4994 ignores valid references contained inside 'a' element4995 ignores valid references contained inside 'style' element4996 ignores valid references when using default tracker4997 links to a valid reference4998 links to the external tracker4999 links with adjacent text5000 includes a title attribute5001 escapes the title attribute5002 includes default classes5003 supports an :only_path context5004 has an empty link if issue_url is invalid5005 has an empty link if issue_path is invalid5006 behaves like a reference containing an element node5007 does not escape inner html5008 with RequestStore enabled5009 queries the collection on the first call5010 with a single-letter prefix5011 ignores reference5012 with wrong markdown5013 ignores reference5014 with a custom regex5015 with right markdown5016 behaves like external issue tracker5017 requires project context5018 ignores valid references contained inside 'pre' element5019 ignores valid references contained inside 'code' element5020 ignores valid references contained inside 'a' element5021 ignores valid references contained inside 'style' element5022 ignores valid references when using default tracker5023 links to a valid reference5024 links to the external tracker5025 links with adjacent text5026 includes a title attribute5027 escapes the title attribute5028 includes default classes5029 supports an :only_path context5030 has an empty link if issue_url is invalid5031 has an empty link if issue_path is invalid5032 behaves like a reference containing an element node5033 does not escape inner html5034 with RequestStore enabled5035 queries the collection on the first call5036 with a single-letter prefix5037 ignores reference5038 with wrong markdown5039 ignores reference5040 ewm project5041 rtcwi keyword5042 behaves like external issue tracker5043 requires project context5044 ignores valid references contained inside 'pre' element5045 ignores valid references contained inside 'code' element5046 ignores valid references contained inside 'a' element5047 ignores valid references contained inside 'style' element5048 ignores valid references when using default tracker5049 links to a valid reference5050 links to the external tracker5051 links with adjacent text5052 includes a title attribute5053 escapes the title attribute5054 includes default classes5055 supports an :only_path context5056 has an empty link if issue_url is invalid5057 has an empty link if issue_path is invalid5058 behaves like a reference containing an element node5059 does not escape inner html5060 with RequestStore enabled5061 queries the collection on the first call5062 workitem keyword5063 behaves like external issue tracker5064 requires project context5065 ignores valid references contained inside 'pre' element5066 ignores valid references contained inside 'code' element5067 ignores valid references contained inside 'a' element5068 ignores valid references contained inside 'style' element5069 ignores valid references when using default tracker5070 links to a valid reference5071 links to the external tracker5072 links with adjacent text5073 includes a title attribute5074 escapes the title attribute5075 includes default classes5076 supports an :only_path context5077 has an empty link if issue_url is invalid5078 has an empty link if issue_path is invalid5079 behaves like a reference containing an element node5080 does not escape inner html5081 with RequestStore enabled5082 queries the collection on the first call5083 defect keyword5084 behaves like external issue tracker5085 requires project context5086 ignores valid references contained inside 'pre' element5087 ignores valid references contained inside 'code' element5088 ignores valid references contained inside 'a' element5089 ignores valid references contained inside 'style' element5090 ignores valid references when using default tracker5091 links to a valid reference5092 links to the external tracker5093 links with adjacent text5094 includes a title attribute5095 escapes the title attribute5096 includes default classes5097 supports an :only_path context5098 has an empty link if issue_url is invalid5099 has an empty link if issue_path is invalid5100 behaves like a reference containing an element node5101 does not escape inner html5102 with RequestStore enabled5103 queries the collection on the first call5104 task keyword5105 behaves like external issue tracker5106 requires project context5107 ignores valid references contained inside 'pre' element5108 ignores valid references contained inside 'code' element5109 ignores valid references contained inside 'a' element5110 ignores valid references contained inside 'style' element5111 ignores valid references when using default tracker5112 links to a valid reference5113 links to the external tracker5114 links with adjacent text5115 includes a title attribute5116 escapes the title attribute5117 includes default classes5118 supports an :only_path context5119 has an empty link if issue_url is invalid5120 has an empty link if issue_path is invalid5121 behaves like a reference containing an element node5122 does not escape inner html5123 with RequestStore enabled5124 queries the collection on the first call5125 bug keyword5126 behaves like external issue tracker5127 requires project context5128 ignores valid references contained inside 'pre' element5129 ignores valid references contained inside 'code' element5130 ignores valid references contained inside 'a' element5131 ignores valid references contained inside 'style' element5132 ignores valid references when using default tracker5133 links to a valid reference5134 links to the external tracker5135 links with adjacent text5136 includes a title attribute5137 escapes the title attribute5138 includes default classes5139 supports an :only_path context5140 has an empty link if issue_url is invalid5141 has an empty link if issue_path is invalid5142 behaves like a reference containing an element node5143 does not escape inner html5144 with RequestStore enabled5145 queries the collection on the first call5146 checking N+15147 does not have N+1 per multiple references per project5148gitlab:seed:group_seed rake task5149 performs group seed successfully5150Groups::UpdateService5151 #execute5152 with project5153 located in a subgroup5154 does allow a path update if there is not a root namespace change5155 project visibility_level validation5156 public group with public projects5157 does not change permission level5158 returns false if save failed5159 when a project has container images5160 within group5161 with path updates5162 does not allow the update5163 with name updates5164 allows the update5165 when the path does not change5166 allows the update5167 within subgroup5168 does not allow path updates5169 internal group with internal project5170 does not change permission level5171 internal group with private project5172 changes permission level to private5173 with parent_id user doesn't have permissions for5174 does not update parent_id5175 crm_enabled param5176 when no existing crm_settings5177 when param not present, leave crm disabled5178 when param set true, enables crm5179 with existing crm_settings5180 when param set true, enables crm5181 when param set false, disables crm5182 when param not present, crm remains disabled5183 when param not present, crm remains enabled5184 unauthorized visibility_level validation5185 does not change permission level5186 path change validation5187 with namespaced npm packages5188 updating the root group5189 behaves like not allowing a path update5190 does not allow a path update5191 behaves like allowing an update5192 allows an update on name5193 when npm_package_registry_fix_group_path_validation is disabled5194 behaves like not allowing a path update5195 does not allow a path update5196 behaves like allowing an update5197 allows an update on name5198 updating the subgroup5199 behaves like allowing an update5200 allows an update on path5201 behaves like allowing an update5202 allows an update on name5203 when npm_package_registry_fix_group_path_validation is disabled5204 behaves like not allowing a path update5205 does not allow a path update5206 behaves like allowing an update5207 allows an update on name5208 with scoped npm packages5209 updating the root group5210 behaves like allowing an update5211 allows an update on path5212 behaves like allowing an update5213 allows an update on name5214 when npm_package_registry_fix_group_path_validation is disabled5215 behaves like not allowing a path update5216 does not allow a path update5217 behaves like allowing an update5218 allows an update on name5219 updating the subgroup5220 behaves like allowing an update5221 allows an update on path5222 behaves like allowing an update5223 allows an update on name5224 when npm_package_registry_fix_group_path_validation is disabled5225 behaves like not allowing a path update5226 does not allow a path update5227 behaves like allowing an update5228 allows an update on name5229 with unscoped npm packages5230 updating the root group5231 behaves like allowing an update5232 allows an update on path5233 behaves like allowing an update5234 allows an update on name5235 when npm_package_registry_fix_group_path_validation is disabled5236 behaves like not allowing a path update5237 does not allow a path update5238 behaves like allowing an update5239 allows an update on name5240 updating the subgroup5241 behaves like allowing an update5242 allows an update on path5243 behaves like allowing an update5244 allows an update on name5245 when npm_package_registry_fix_group_path_validation is disabled5246 behaves like not allowing a path update5247 does not allow a path update5248 behaves like allowing an update5249 allows an update on name5250 when user is not group owner5251 when group is private5252 does not update the group to public5253 does not update the group to public with tricky value5254 when group is public5255 does not update the group to private5256 does not update the group to private with invalid string value5257 does not update the group to private with valid string value5258 does not update the group to private because of Active Record typecasting5259 when updating #emails_disabled5260 updates the attribute5261 does not update when not group owner5262 updating default_branch_protection5263 for users who have the ability to update default_branch_protection5264 updates default_branch_protection attribute5265 updates default_branch_protection_defaults to match default_branch_protection5266 for users who do not have the ability to update default_branch_protection5267 does not update the attribute5268 EventStore5269 when changing a group path5270 publishes a GroupPathChangedEvent5271 when not changing a group path5272 does not publish a GroupPathChangedEvent5273 rename group5274 returns true5275 error moving group5276 does not raise an error5277 returns false5278 has the right error5279 hasn't changed the path5280 for a subgroup5281 when the parent group share_with_group_lock is enabled5282 for the parent group owner5283 allows disabling share_with_group_lock5284 for a subgroup owner (who does not own the parent)5285 does not allow disabling share_with_group_lock5286 change shared Runners config5287 calls the shared runners update service5288 handles errors in the shared runners update service5289 changes allowing subgroups to establish own 2FA5290 changes settings5291 enqueues update subgroups and its members5292Gitlab::Ci::Parsers::Security::Common5293 #parse!5294 signatures_enabled: true5295 schema validation5296 when the validate flag is set to `false`5297 does not instantiate the validator5298 marks the report as valid5299 keeps the execution flow as normal5300 when the validate flag is set to `true`5301nil versions are discouraged and will be deprecated in Rubygems 45302 instantiates the validator with correct params5303 when the report data is not valid according to the schema5304 adds errors to the report5305 marks the report as invalid5306 does not try to create report entities5307 when the report data is valid according to the schema5308 does not add errors to the report5309 keeps the execution flow as normal5310 and no warnings are present5311 does not add warnings to the report5312 and some warnings are present5313 does add warnings to the report5314 report parsing5315 parsing finding.name5316 when name is provided5317 sets name from the report as a name5318 when name is not provided5319 when location does not exist5320 returns only identifier name5321 when location exists5322 when CVE identifier exists5323 combines identifier with location to create name5324 when CWE identifier exists5325 combines identifier with location to create name5326 when neither CVE nor CWE identifier exist5327 combines identifier with location to create name5328 parsing finding.details5329 when details are provided5330 sets details from the report5331 when details are not provided5332 sets empty hash5333 top-level scanner5334 is the primary scanner5335 returns nil report has no scanner5336 parsing scanners5337 when the report contains top-level scanner5338 sets the scanner of finding as top-level scanner5339 when the report does not contain top-level scanner5340 sets the scanner of finding as `vulnerabilities[].scanner`5341 parsing scan5342 returns scan object for each finding5343 returns nil when scan is not a hash5344 parsing schema version5345 parses the version5346 returns nil when there is no version5347 parsing analyzer5348 associates analyzer with report5349 returns nil when analyzer data is not available5350 parsing flags5351 returns flags object for each finding5352 parsing links5353 returns links object for each finding5354 parsing evidence5355 returns evidence object for each finding5356 setting the uuid5357 sets the UUIDv5 for findings5358 setting the `found_by_pipeline` attribute5359 is expected to eq [#<Ci::Pipeline id: 51, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 26, locked: "artifacts_locked", partition_id: 100>]5360 parsing tracking5361 with invalid tracking information5362 ignores invalid algorithm types5363 with valid tracking information5364 creates signatures for each signature algorithm5365 sets the uuid according to the higest priority signature5366 signatures_enabled: false5367 schema validation5368 when the validate flag is set to `false`5369 does not instantiate the validator5370 marks the report as valid5371 keeps the execution flow as normal5372 when the validate flag is set to `true`5373 instantiates the validator with correct params5374 when the report data is not valid according to the schema5375 adds errors to the report5376 marks the report as invalid5377 does not try to create report entities5378 when the report data is valid according to the schema5379 does not add errors to the report5380 keeps the execution flow as normal5381 and no warnings are present5382 does not add warnings to the report5383 and some warnings are present5384 does add warnings to the report5385 report parsing5386 parsing finding.name5387 when name is provided5388 sets name from the report as a name5389 when name is not provided5390 when location does not exist5391 returns only identifier name5392 when location exists5393 when CVE identifier exists5394 combines identifier with location to create name5395 when CWE identifier exists5396 combines identifier with location to create name5397 when neither CVE nor CWE identifier exist5398 combines identifier with location to create name5399 parsing finding.details5400 when details are provided5401 sets details from the report5402 when details are not provided5403 sets empty hash5404 top-level scanner5405 is the primary scanner5406 returns nil report has no scanner5407 parsing scanners5408 when the report contains top-level scanner5409 sets the scanner of finding as top-level scanner5410 when the report does not contain top-level scanner5411 sets the scanner of finding as `vulnerabilities[].scanner`5412 parsing scan5413 returns scan object for each finding5414 returns nil when scan is not a hash5415 parsing schema version5416 parses the version5417 returns nil when there is no version5418 parsing analyzer5419 associates analyzer with report5420 returns nil when analyzer data is not available5421 parsing flags5422 returns flags object for each finding5423 parsing links5424 returns links object for each finding5425 parsing evidence5426 returns evidence object for each finding5427 setting the uuid5428 sets the UUIDv5 for findings5429 setting the `found_by_pipeline` attribute5430 is expected to eq [#<Ci::Pipeline id: 52, ref: "master", sha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", before_sha: n...: nil, external_pull_request_id: nil, ci_ref_id: 27, locked: "artifacts_locked", partition_id: 100>]5431 parsing tracking5432 with invalid tracking information5433 ignores invalid algorithm types5434 with valid tracking information5435 creates signatures for each signature algorithm5436 sets the uuid according to the higest priority signature5437Gitlab::BitbucketServerImport::Importer5438 #import_repository5439 adds a remote5440 raises a Gitlab::Git::CommandError in the fetch5441 raises an unhandled exception in the fetch5442 #import_pull_requests5443 imports merge event5444 falls back to comments if diff comments fail to validate5445 reports an error if an exception is raised5446 pull request author user mapping5447 when bitbucket_server_user_mapping_by_username feature flag is disabled5448 when email is not present5449 maps user5450 when email is present5451 maps user5452 when bitbucket_server_user_mapping_by_username feature flag is enabled5453 when username is not present5454 maps user5455 when username is present5456 maps user5457 when user is not found5458 maps importer user5459 comments5460 when bitbucket_server_user_mapping_by_username feature flag is disabled5461 imports comments5462 when bitbucket_server_user_mapping_by_username feature flag is enabled5463 imports comments5464 when username is not present5465 defaults to import user5466 when username is present5467 maps by username5468 metrics5469 counts and measures duration of imported projects5470 counts imported pull requests5471 threaded discussions5472 when bitbucket_server_user_mapping_by_username feature flag is disabled5473 imports threaded discussions5474 when bitbucket_server_user_mapping_by_username feature flag is enabled5475 imports threaded discussions5476 when username is not present5477 defaults to import user5478 when user is not found5479 maps importer user5480 import pull requests with caching5481 only imports one Merge Request, as the other on is in the cache5482 inaccessible branches5483 #restore_branches5484 #delete_temp_branches5485 lfs files5486 downloads lfs objects if lfs_enabled is enabled for project5487 adds the error message when the lfs download fails5488Packages::Debian::ProcessPackageFileService5489 # order random5490 #execute5491 with a changes file5492 behaves like common validations5493 with package file without Debian metadata5494 behaves like raises error5495 raises error5496 with already processed package file5497 behaves like raises error5498 raises error5499 without a distribution5500 behaves like raises error5501 raises error5502 when there is a matching published package in another distribution5503 behaves like raises error5504 raises error5505 with distribution_name5506 behaves like raises error5507 raises error5508 with component_name5509 behaves like raises error5510 raises error5511 with crafted file_metadata5512 with missing Source field5513 behaves like raises error5514 raises error5515 with missing Version field5516 behaves like raises error5517 raises error5518 with missing Distribution field5519 behaves like raises error5520 raises error5521 when lease is already taken5522 behaves like does nothing5523 does nothing5524 when there is no matching published package5525 behaves like updates package and changes file5526 updates package and changes file5527 when there is a matching published package5528 reuses existing package and update package file5529 when there is a matching published package pending destruction5530 behaves like updates package and changes file5531 updates package and changes file5532 with a package file5533 with a deb5534 with Debian package file5535 behaves like common validations5536 with package file without Debian metadata5537 behaves like raises error5538 raises error5539 with already processed package file5540 behaves like raises error5541 raises error5542 without a distribution5543 behaves like raises error5544 raises error5545 when there is a matching published package in another distribution5546 behaves like raises error5547 raises error5548 without distribution name5549 behaves like raises error5550 raises error5551 without component name5552 behaves like raises error5553 raises error5554 with invalid package file type5555 behaves like raises error5556 raises error5557 when lease is already taken5558 behaves like does nothing5559 does nothing5560 when there is no matching published package5561 behaves like updates package and package file5562 updates package and package file5563 with suite as distribution name5564 behaves like updates package and package file5565 updates package and package file5566 when there is a matching published package5567 reuses existing package and update package file5568 when there is a matching published package pending destruction5569 behaves like updates package and package file5570 updates package and package file5571 with an udeb5572 with Debian package file5573 behaves like common validations5574 with package file without Debian metadata5575 behaves like raises error5576 raises error5577 with already processed package file5578 behaves like raises error5579 raises error5580 without a distribution5581 behaves like raises error5582 raises error5583 when there is a matching published package in another distribution5584 behaves like raises error5585 raises error5586 without distribution name5587 behaves like raises error5588 raises error5589 without component name5590 behaves like raises error5591 raises error5592 with invalid package file type5593 behaves like raises error5594 raises error5595 when lease is already taken5596 behaves like does nothing5597 does nothing5598 when there is no matching published package5599 behaves like updates package and package file5600 updates package and package file5601 with suite as distribution name5602 behaves like updates package and package file5603 updates package and package file5604 when there is a matching published package5605 reuses existing package and update package file5606 when there is a matching published package pending destruction5607 behaves like updates package and package file5608 updates package and package file5609 with an ddeb5610 with Debian package file5611 behaves like common validations5612 with package file without Debian metadata5613 behaves like raises error5614 raises error5615 with already processed package file5616 behaves like raises error5617 raises error5618 without a distribution5619 behaves like raises error5620 raises error5621 when there is a matching published package in another distribution5622 behaves like raises error5623 raises error5624 without distribution name5625 behaves like raises error5626 raises error5627 without component name5628 behaves like raises error5629 raises error5630 with invalid package file type5631 behaves like raises error5632 raises error5633 when lease is already taken5634 behaves like does nothing5635 does nothing5636 when there is no matching published package5637 behaves like updates package and package file5638 updates package and package file5639 with suite as distribution name5640 behaves like updates package and package file5641 updates package and package file5642 when there is a matching published package5643 reuses existing package and update package file5644 when there is a matching published package pending destruction5645 behaves like updates package and package file5646 updates package and package file5647 #lease_key5648 with a changes file5649 is expected to eq "packages:debian:process_package_file_service:867_sample_1.2.3~alpha2"5650 with a package file5651 is expected to eq "packages:debian:process_package_file_service:867_sample_1.2.3~alpha2"5652RepositoryForkWorker5653 modules5654 includes ProjectImportOptions5655 #perform5656 only project ID passed5657 behaves like RepositoryForkWorker performing5658 creates a new repository from a fork5659 protects the default branch5660 flushes various caches5661 handles bad fork5662 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects5663 handles LFS objects link failure5664 when a worker was reset without cleanup5665 creates a new repository from a fork5666 project ID, storage and repo paths passed5667 behaves like RepositoryForkWorker performing5668 creates a new repository from a fork5669 protects the default branch5670 flushes various caches5671 handles bad fork5672 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects5673 handles LFS objects link failure5674 when a worker was reset without cleanup5675 creates a new repository from a fork5676Gitlab::Ci::Build::Rules::Rule::Clause::Exists5677 #satisfied_by?5678 when the rules are being evaluated at job level5679 behaves like a rules:exists with a context5680 behaves like a glob matching rule5681 exact top-level match5682 is expected to eq true5683 exact top-level no match5684 is expected to eq false5685 pattern top-level match5686 is expected to eq true5687 pattern top-level no match5688 is expected to eq false5689 exact nested match5690 is expected to eq true5691 exact nested no match5692 is expected to eq false5693 pattern nested match5694 is expected to eq true5695 pattern nested no match5696 is expected to eq false5697 ext top-level match5698 is expected to eq true5699 ext nested no match5700 is expected to eq false5701 ext slash no match5702 is expected to eq false5703 when the rules:exists has a variable5704 when the context has the specified variables5705 is expected to be truthy5706 when variable expansion does not match5707 is expected to be falsey5708 after pattern comparision limit is reached5709 is expected to be truthy5710 when the rules are being evaluated for an entire pipeline5711 behaves like a rules:exists with a context5712 behaves like a glob matching rule5713 exact top-level match5714 is expected to eq true5715 exact top-level no match5716 is expected to eq false5717 pattern top-level match5718 is expected to eq true5719 pattern top-level no match5720 is expected to eq false5721 exact nested match5722 is expected to eq true5723 exact nested no match5724 is expected to eq false5725 pattern nested match5726 is expected to eq true5727 pattern nested no match5728 is expected to eq false5729 ext top-level match5730 is expected to eq true5731 ext nested no match5732 is expected to eq false5733 ext slash no match5734 is expected to eq false5735 when the rules:exists has a variable5736 when the context has the specified variables5737 is expected to be truthy5738 when variable expansion does not match5739 is expected to be falsey5740 after pattern comparision limit is reached5741 is expected to be truthy5742 when rules are being evaluated with `include`5743 behaves like a rules:exists with a context5744 behaves like a glob matching rule5745 exact top-level match5746 is expected to eq true5747 exact top-level no match5748 is expected to eq false5749 pattern top-level match5750 is expected to eq true5751 pattern top-level no match5752 is expected to eq false5753 exact nested match5754 is expected to eq true5755 exact nested no match5756 is expected to eq false5757 pattern nested match5758 is expected to eq true5759 pattern nested no match5760 is expected to eq false5761 ext top-level match5762 is expected to eq true5763 ext nested no match5764 is expected to eq false5765 ext slash no match5766 is expected to eq false5767 when the rules:exists has a variable5768 when the context has the specified variables5769 is expected to be truthy5770 when variable expansion does not match5771 is expected to be falsey5772 after pattern comparision limit is reached5773 is expected to be truthy5774 when context has no project5775 is expected to eq false5776Gitlab::Git::DiffCollection5777 #to_a5778 is expected to be a kind of Array5779 #decorate!5780 modifies the array in place5781 avoids future iterator iterations5782 overflow handling5783 adding few enough files5784 and few enough lines5785 behaves like overflow stuff5786 returns the expected overflow values5787 #overflow?5788 is expected to be falsey5789 #empty?5790 is expected to be falsey5791 #real_size5792 is expected to eq "3"5793 #size5794 is expected to eq 35795 does not change after peeking5796 #line_count5797 is expected to eq 305798 when limiting is disabled5799 behaves like overflow stuff5800 returns the expected overflow values5801 #overflow?5802 is expected to be falsey5803 #empty?5804 is expected to be falsey5805 #real_size5806 is expected to eq "3"5807 #size5808 is expected to eq 35809 does not change after peeking5810 #line_count5811 is expected to eq 305812 and too many lines5813 is expected to eq 05814 behaves like overflow stuff5815 returns the expected overflow values5816 #overflow?5817 is expected to be truthy5818 #empty?5819 is expected to be falsey5820 #real_size5821 is expected to eq "0+"5822 #line_count5823 is expected to eq 10005824 when limiting is disabled5825 is expected to eq 35826 behaves like overflow stuff5827 returns the expected overflow values5828 #overflow?5829 is expected to be falsey5830 #empty?5831 is expected to be falsey5832 #real_size5833 is expected to eq "3"5834 #line_count5835 is expected to eq 30005836 adding too many files5837 and few enough lines5838 is expected to eq 105839 behaves like overflow stuff5840 returns the expected overflow values5841 #overflow?5842 is expected to be truthy5843 #empty?5844 is expected to be falsey5845 #real_size5846 is expected to eq "10+"5847 #line_count5848 is expected to eq 105849 when limiting is disabled5850 is expected to eq 115851 behaves like overflow stuff5852 returns the expected overflow values5853 #overflow?5854 is expected to be falsey5855 #empty?5856 is expected to be falsey5857 #real_size5858 is expected to eq "11"5859 #line_count5860 is expected to eq 115861 and too many lines5862 is expected to eq 35863 behaves like overflow stuff5864 returns the expected overflow values5865 #overflow?5866 is expected to be truthy5867 #empty?5868 is expected to be falsey5869 #real_size5870 is expected to eq "3+"5871 #line_count5872 is expected to eq 1205873 when limiting is disabled5874 is expected to eq 115875 behaves like overflow stuff5876 returns the expected overflow values5877 #overflow?5878 is expected to be falsey5879 #empty?5880 is expected to be falsey5881 #real_size5882 is expected to eq "11"5883 #line_count5884 is expected to eq 3305885 adding exactly the maximum number of files5886 and few enough lines5887 is expected to eq 105888 behaves like overflow stuff5889 returns the expected overflow values5890 #overflow?5891 is expected to be falsey5892 #empty?5893 is expected to be falsey5894 #real_size5895 is expected to eq "10"5896 #line_count5897 is expected to eq 105898 adding too many bytes5899 is expected to eq 95900 behaves like overflow stuff5901 returns the expected overflow values5902 #overflow?5903 is expected to be truthy5904 #empty?5905 is expected to be falsey5906 #real_size5907 is expected to eq "9+"5908 #line_count5909 is expected to eq 105910 when limiting is disabled5911 is expected to eq 105912 behaves like overflow stuff5913 returns the expected overflow values5914 #overflow?5915 is expected to be falsey5916 #empty?5917 is expected to be falsey5918 #real_size5919 is expected to eq "10"5920 #line_count5921 is expected to eq 105922 empty collection5923 behaves like overflow stuff5924 returns the expected overflow values5925 #overflow?5926 is expected to be falsey5927 #empty?5928 is expected to be truthy5929 #size5930 is expected to eq 05931 #real_size5932 is expected to eq "0"5933 #line_count5934 is expected to eq 05935 #each5936 when diff are too large5937 yields Diff instances even when they are too large5938 prunes diffs that are too large5939 when diff is quite large will collapse by default5940 when no collapse is set5941 yields Diff instances even when they are quite big5942 does not prune diffs5943 when no collapse is unset5944 yields Diff instances even when they are quite big5945 single-file collections5946 does not prune diffs5947 multi-file collections5948 prunes diffs that are quite big5949 when go over safe limits on files5950 prunes diffs by default even little ones and sets collapsed_safe_files true5951 when go over safe limits on lines5952 prunes diffs by default even little ones and sets collapsed_safe_lines true5953 when go over safe limits on bytes5954 prunes diffs by default even little ones and sets collapsed_safe_bytes true5955 when limiting is disabled5956 yields Diff instances even when they are quite big5957 does not prune diffs5958 when offset_index is given5959 does not yield diffs before the offset5960 when go over safe limits on bytes5961 considers size of diffs before the offset for prunning5962 .limits5963 when options do not include max_patch_bytes_for_file_extension5964 sets max_patch_bytes_for_file_extension as empty5965 when options include max_patch_bytes_for_file_extension5966 sets value for max_patch_bytes_for_file_extension5967Label5968 modules5969 is expected to includes the Referable module5970 is expected to includes the Subscribable module5971 associations5972 is expected to have many issues through label_links source => target5973 is expected to have many label_links dependent => destroy5974 is expected to have many lists dependent => destroy5975 is expected to have many priorities class_name => LabelPriority5976 validation5977 is expected to validate that :title is case-sensitively unique within the scope of :group_id and :project_id5978 validates color code5979 validates title5980 description length5981 when label is a new record5982 when description exceeds the maximum size5983 adds a description too long error5984 when description is within the allowed limits5985 does not add a validation error5986 when label is an existing record5987 when record already had a valid description5988 when new description exceeds the maximum size5989 adds a description too long error5990 when new description is within the allowed limits5991 does not add a validation error5992 when record existed with an invalid description5993 when description is not changed5994 does not add a validation error5995 when new description exceeds the maximum size5996 when new description is shorter than existing description5997 allows updating descriptions that already existed above the limit5998 when new description is longer than existing description5999 adds a description too long error6000 when new description is within the allowed limits6001 does not add a validation error6002 scopes6003 .on_board6004 returns only the board labels6005 #color6006 strips color6007 uses default color if color is missing6008 #text_color6009 uses default color if color is missing6010 #title6011 sanitizes title6012 strips title6013 #description6014 sanitizes description6015 accepts an empty string6016 priorization6017 #prioritize!6018 when label is not prioritized6019 creates a label priority6020 sets label priority6021 when label is prioritized6022 does not create a label priority6023 updates label priority6024 #unprioritize!6025 removes label priority6026 #priority6027 when label is not prioritized6028 returns nil6029 when label is prioritized6030 returns label priority6031 .search6032 returns labels with a partially matching title6033 returns labels with a partially matching description6034 returns nothing6035 .subscribed_by6036 returns subscribed labels6037 returns nothing6038 .top_labels_by_target6039 returns distinct labels, ordered by usage in the given target relation6040 excludes labels that are not assigned to any records in the given target relation6041 .optionally_subscribed_by6042 returns subscribed labels6043 returns all labels if user_id is nil6044 #templates6045 with invalid template labels6046 returns only valid template labels6047 .pluck_titles6048 returns the audit event type of the event type filter6049ReleasesFinder6050 when parent is a project6051 behaves like when the user is not authorized6052 returns no releases6053 when the user has guest privileges or higher6054 returns the releases6055 with sorting parameters6056 sorted by released_at in descending order by default6057 released_at in ascending order6058 is expected to eq [#<Release id: 1, tag: "v1.0.0", description: [FILTERED], project_id: 966, created_at: "2023-08-12 07...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-08-12 07:24:25.724472603 +0000">]6059 order by created_at in descending order6060 is expected to eq [#<Release id: 1, tag: "v1.0.0", description: [FILTERED], project_id: 966, created_at: "2023-08-12 07...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-08-12 07:24:26.043849088 +0000">]6061 order by created_at in ascending order6062 is expected to eq [#<Release id: 2, tag: "v1.1.0", description: [FILTERED], project_id: 966, created_at: "2023-08-11 07...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-08-11 07:24:26.298060741 +0000">]6063 behaves like preload6064 preloads associations6065 when preload is false6066 does not preload associations6067 behaves like when a tag parameter is passed6068 only returns the release with the matching tag6069 when parent is an array of projects6070 behaves like when the user is not authorized6071 returns no releases6072 when the user has guest privileges or higher on one project6073 returns the releases of only the authorized project6074 when the user has guest privileges or higher on all projects6075 returns the releases of all projects6076 behaves like preload6077 preloads associations6078 when preload is false6079 does not preload associations6080 behaves like when a tag parameter is passed6081 only returns the release with the matching tag6082 with sorting parameters6083 sorted by released_at in descending order by default6084 released_at in ascending order6085 is expected to eq [#<Release id: 1, tag: "v1.0.0", description: [FILTERED], project_id: 966, created_at: "2023-08-12 07...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-08-12 07:24:30.539788469 +0000">]6086 order by created_at in descending order6087 is expected to eq [#<Release id: 1, tag: "v1.0.0", description: [FILTERED], project_id: 966, created_at: "2023-08-12 07...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-08-12 07:24:30.928382777 +0000">]6088 order by created_at in ascending order6089 is expected to eq [#<Release id: 4, tag: "v2.1.0", description: [FILTERED], project_id: 967, created_at: "2023-08-09 07...ha: "b83d6e391c22777fca1ed3012fce84f633d7fed0", released_at: "2023-08-09 07:24:31.316285255 +0000">]6090 latest releases6091 behaves like when the user is not authorized6092 returns no releases6093 when the user has guest privileges or higher on one project6094 returns the latest release of only the authorized project6095 when the user has guest privileges or higher on all projects6096 returns the latest release by released date for each project6097 with order_by_for_latest: created6098 returns the latest release by created date for each project6099 when one project does not have releases6100 returns the latest release of only the project with releases6101 when all projects do not have releases6102 returns empty response6103 behaves like preload6104 preloads associations6105 when preload is false6106 does not preload associations6107Projects::CleanupService6108 .enqueue6109 makes the repository read-only6110 sets the bfg_object_map of the project6111 enqueues a RepositoryCleanupWorker6112 returns success6113 returns an error if making the repository read-only fails6114 returns an error if updating the project fails6115 .cleanup_after6116 sets the repository read-write6117 removes the BFG object map6118 #execute6119 runs the apply_bfg_object_map_stream gitaly RPC6120 runs garbage collection on the repository6121 clears the repository cache6122 removes the object map file6123 makes the repository read-write again6124 raises an error if no object map can be found6125 with a tainted merge request diff6126 removes the tainted commit from the database6127 ignores non-commit responses from Gitaly6128 with a tainted diff note6129 removes the tainted commit from the database6130 removes the highlight cache from redis6131 ignores non-commit responses from Gitaly6132CommitRange6133 raises ArgumentError when given an invalid range string6134 modules6135 is expected to includes the Referable module6136 #initialize6137 does not modify strings in-place6138 #to_s6139 is correct for three-dot syntax6140 is correct for two-dot syntax6141 #to_reference6142 returns a String reference to the object6143 returns a String reference to the object6144 supports a cross-project reference6145 #reference_link_text6146 returns a String reference to the object6147 returns a String reference to the object6148 supports a cross-project reference6149 #to_param6150 includes the correct keys6151 includes the correct values for a three-dot range6152 includes the correct values for a two-dot range6153 #exclude_start?6154 is false for three-dot ranges6155 is true for two-dot ranges6156 #valid_commits?6157 with a valid repo6158 is false when `sha_from` is invalid6159 is false when `sha_to` is invalid6160 is true when both `sha_from` and `sha_to` are valid6161 without a valid repo6162 returns false6163MembersFinder6164 behaves like #execute6165 returns members for project and parent groups6166 returns owners and maintainers6167 returns active users and excludes invited users6168 does not return members of parent group with minimal access6169 includes only non-invite members if user do not have amdin permissions on project6170 includes invited members if user have admin permissions on project6171 includes nested group members if asked6172 returns only members of project if asked6173 returns only inherited members of project if asked6174 returns only inherited members of a personal project6175 returns the members.access_level when the user is invited6176 returns the highest access_level for the user6177 returns searched members if requested6178 returns members sorted by id_desc6179 with :shared_into_ancestors6180 when :shared_into_ancestors is included in the relations6181 includes members of groups invited into ancestors of project's group6182 when :shared_into_ancestors is not included in the relations6183 does not include members of groups invited into ancestors of project's group6184 when :invited_groups is passed6185 behaves like with invited_groups param6186 includes all the invited_groups members including members inherited from ancestor groups6187 includes all the invited_groups members6188 excludes group_members not visible to the user6189 when the user is a member of invited group and ancestor groups6190 returns the highest access_level for the user limited by project_group_link.group_access6191Ml::Candidate6192 associations6193 is expected to belong to experiment required: false6194 is expected to belong to project required: false6195 is expected to belong to user required: false6196 is expected to belong to package required: false6197 is expected to belong to ci_build class_name => Ci::Build required: false6198 is expected to have many params6199 is expected to have many metrics6200 is expected to have many metadata6201 modules6202 behaves like AtomicInternalId6203 .has_internal_id6204 Module inclusion6205 is expected to includes the AtomicInternalId module6206 Validation6207 when presence validation is required6208 when creating an object6209 raises an error if the internal id is blank6210 when updating an object6211 raises an error if the internal id is blank6212 when presence validation is not required6213 when creating an object6214 does not raise an error if the internal id is blank (PENDING: No reason given)6215 when updating an object6216 does not raise an error if the internal id is blank (PENDING: No reason given)6217 Creating an instance6218 saves a new instance properly6219 internal id generation6220 calls InternalId.generate_next and sets internal id attribute6221 does not overwrite an existing internal id6222 when the instance has an internal ID set6223 calls InternalId.update_last_value and sets the `last_value` to that of the instance6224 unsetting the instance internal id on rollback6225 when the internal id has been changed6226 when the internal id is automatically set6227 clears it on the instance6228 when the internal id is manually set6229 does not clear it on the instance6230 when the internal id has not been changed6231 preserves the value on the instance6232 supply of internal ids6233 provides a persistent supply of IID values, sensitive to the current state6234 #reset_scope_internal_id_attribute6235 rewinds the allocated IID6236 allocates the same IID6237 default values6238 is expected to be present6239 .destroy6240 destroys metrics, params and metadata, but not the artifact6241 .artifact_root6242 is expected to eq "/ml_experiment_1/1/"6243 .package_version6244 is expected to eq 16245 .eid6246 is expected to eq "332c8aa6-1695-4d73-8188-4f5cac600ba9"6247 .artifact6248 when has logged artifacts6249 returns the package6250 when does not have logged artifacts6251 is expected to be nil6252 #by_project_id_and_eid6253 when eid exists and belongs to project6254 is expected to eq #<Ml::Candidate id: 1, created_at: "2023-08-13 07:25:26.484212032 +0000", updated_at: "2023-08-13 07:...92, eid: "28160128-4b98-4a70-b497-76aa233a745d", project_id: 1012, internal_id: 1, ci_build_id: nil>6255 when eid exists and does not belong to project6256 is expected to be nil6257 when eid does not exist6258 is expected to be nil6259 #by_project_id_and_iid6260 when internal_id exists and belongs to project6261 is expected to eq #<Ml::Candidate id: 1, created_at: "2023-08-13 07:25:26.484212032 +0000", updated_at: "2023-08-13 07:...92, eid: "28160128-4b98-4a70-b497-76aa233a745d", project_id: 1012, internal_id: 1, ci_build_id: nil>6262 when internal_id exists and does not belong to project6263 is expected to be nil6264 when internal_id does not exist6265 is expected to be nil6266 #latest_metrics6267 fetches only the last metric for the name6268 #including_relationships6269 loads latest metrics and params6270 #by_name6271 when name matches6272 gets the correct candidates6273 when name matches partially6274 gets the correct candidates6275 when name does not match6276 does not fetch any candidate6277 from_ci?6278 is false if candidate does not have ci_build_id6279 is true if candidate does has ci_build_id6280 #order_by_metric6281 orders correctly6282 when direction is asc6283 orders correctly6284 with loose foreign key on ml_candidates.ci_build_id6285 behaves like cleanup by a loose foreign key6286 cleans up (delete or nullify) the model6287TrendingProject6288 .refresh!6289 populates the trending projects table6290 removes existing rows before populating the table6291 stores the project IDs for every trending project6292 does not store projects that fall out of the trending time range6293 stores only public projects6294Banzai::ReferenceParser::BaseParser6295 .reference_class6296 when the method is not defined6297 build the reference class6298 when the method is redefined6299 uses specified reference class6300 .reference_type=6301 sets the reference type6302 #project_for_node6303 returns the Project for a node6304 #nodes_visible_to_user6305 when the link has a data-project attribute6306 includes the link if can_read_reference? returns true6307 excludes the link if can_read_reference? returns false6308 when the link does not have a data-project attribute6309 returns the nodes6310 #nodes_user_can_reference6311 returns the nodes6312 #referenced_by6313 when references_relation is implemented6314 and ids_only is set to false6315 returns a collection of objects6316 and ids_only is set to true6317 returns a collection of id values without performing a db query6318 and the html fragment does not contain any attributes6319 returns an empty array6320 when references_relation is not implemented6321 raises NotImplementedError6322 #references_relation6323 raises NotImplementedError6324 #gather_attributes_per_project6325 returns a Hash containing attribute values per project6326 #grouped_objects_for_nodes6327 returns a Hash grouping objects per node6328 returns an empty Hash when entry does not exist in the database6329 #unique_attribute_values6330 returns an Array of unique values6331 #process6332 gathers the references for every node matching the reference type6333 #gather_references6334 returns referenceable and visible objects, alongside all and visible nodes6335 is always empty if the input is empty6336 #can?6337 delegates the permissions check to the Ability class6338 #find_projects_for_hash_keys6339 returns a list of Projects6340 #collection_objects_for_ids6341 with RequestStore disabled6342 queries the collection directly6343 with RequestStore enabled6344 queries the collection on the first call6345 does not query previously queried objects6346 casts String based IDs to Fixnums before querying objects6347 queries any additional objects after the first call6348 caches objects on a per collection class basis6349 will not overflow the stack6350 #collection_cache_key6351 returns the cache key for a Class6352 returns the cache key for an ActiveRecord::Relation6353Integrations::Datadog6354 behaves like Integrations::ResetSecretFields6355 #exposing_secrets_fields6356 returns an array of strings6357 #reset_secret_fields?6358 returns false if no exposing field has changed6359 returns true if any exposing field has changed6360 validation callback6361 when an exposing field has changed6362 clears all secret fields6363 when a secret field has been updated6364 does not clear this secret field6365 when a secret field has been updated with the same value6366 does not clear this secret field6367 when no exposing field has changed6368 does not clear any secret fields6369 behaves like Integrations::HasWebHook6370 associations6371 is expected to have one service_hook inverse_of => integration6372 callbacks6373 calls #update_web_hook! when enabled6374 does not call #update_web_hook! when disabled6375 does not call #update_web_hook! when validation fails6376 #hook_url6377 returns a string6378 #url_variables6379 returns a hash6380 #hook_ssl_verification6381 returns a boolean6382 delegates to #enable_ssl_verification if the concern is included6383 #update_web_hook!6384 creates or updates a service hook6385 raises an error if the service hook could not be saved6386 does not attempt to save the service hook if there are no changes6387 #execute_web_hook!6388 creates the webhook if necessary and executes it6389 raises an error if the service hook could not be saved6390 validations6391 when service is active6392 is expected to validate that :api_key cannot be empty/falsy6393 is expected to allow :api_key to be ‹"164f0076e05bc0470d53d336b7f47ecf1567a7dd9278a0bf496152694f260d3e"›6394 is expected not to allow :api_key to be ‹"87dab2403c9d462 87aec4d9214edb1e"›6395 is expected not to allow :api_key to be ‹"................................"›6396 when selecting site6397 is expected to validate that :datadog_site cannot be empty/falsy6398 is expected not to validate that :api_url cannot be empty/falsy6399 is expected to allow :datadog_site to be ‹"data-dog-hq.com"›6400 is expected to allow :datadog_site to be ‹"dataDOG.com"›6401 is expected not to allow :datadog_site to be ‹"datadog hq.com"›6402 is expected not to allow :datadog_site to be ‹"-datadoghq.com"›6403 is expected not to allow :datadog_site to be ‹".datadoghq.com"›6404 is expected not to allow :datadog_site to be ‹"datadoghq.com_"›6405 is expected not to allow :datadog_site to be ‹"data-dog"›6406 is expected not to allow :datadog_site to be ‹"datadoghq.com-"›6407 is expected not to allow :datadog_site to be ‹"datadoghq.com."›6408 with custom api_url6409 is expected not to validate that :datadog_site cannot be empty/falsy6410 is expected to validate that :api_url cannot be empty/falsy6411 is expected to allow :api_url to be ‹"https://webhook-intake.datad0g.com/api/v2/webhook"›6412 is expected not to allow :api_url to be ‹"example.com"›6413 when missing site and api_url6414 is expected not to be valid6415 is expected to validate that :datadog_site cannot be empty/falsy6416 is expected to validate that :api_url cannot be empty/falsy6417 when providing both site and api_url6418 is expected not to allow :datadog_site to be ‹"datadog hq.com"›6419 is expected not to allow :api_url to be ‹"example.com"›6420 with custom tags6421 is expected to allow :datadog_tags to be ‹""›6422 is expected to allow :datadog_tags to be ‹"key:value"›6423 is expected to allow :datadog_tags to be ‹"key:value\nkey2:value2"›6424 is expected to allow :datadog_tags to be ‹"key:value\nkey2:value with spaces and 123?&$"›6425 is expected to allow :datadog_tags to be ‹"key:value\n\n\n\nkey2:value2\n"›6426 is expected not to allow :datadog_tags to be ‹"value"›6427 is expected not to allow :datadog_tags to be ‹"key:"›6428 is expected not to allow :datadog_tags to be ‹"key: "›6429 is expected not to allow :datadog_tags to be ‹":value"›6430 is expected not to allow :datadog_tags to be ‹"key:value\nINVALID"›6431 when integration is not active6432 is expected to be valid6433 is expected not to validate that :api_key cannot be empty/falsy6434 #help6435 is expected to be a kind of String6436 is expected not to be empty6437 #hook_url6438 with standard site URL6439 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab"6440 with custom URL6441 is expected to eq "https://webhook-intake.datad0g.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab"6442 blank6443 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab"6444 without optional params6445 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}"6446 with custom tags6447 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab&tags=key%3Avalue%2C%22key2%3Avalue%2C+2%22"6448 and empty lines6449 is expected to eq "https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key={api_key}&env=ci&service=awesome-gitlab&tags=key%3Avalue%2C%22key2%3Avalue%2C+2%22"6450 #test6451 when request is successful with a HTTP 200 status6452 is expected to eq {:result=>"OK", :success=>true}6453 when request is successful with a HTTP 202 status6454 is expected to eq {:result=>"OK", :success=>true}6455 when request fails with a HTTP 500 status6456 is expected to eq {:result=>"CRASH!!!", :success=>false}6457 #execute6458 with pipeline data6459 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=c999b08b5dc0e72a5afab27ad1f86cccd8375ec628d89a17f77dcf00e22b02d7&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"pipeline\",\"object_attributes\":{\"id\":54,\"iid\":1,\"name\":null,\"ref\":\"master\",\"tag\":false,\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"before_sha\":\"0000000000000000000000000000000000000000\",\"source\":\"push\",\"status\":\"pending\",\"detailed_status\":\"pending\",\"stages\":[\"test\"],\"created_at\":\"2023-08-13T07:26:14.303Z\",\"finished_at\":null,\"duration\":null,\"queued_duration\":null,\"variables\":[],\"url\":\"http://localhost/namespace384/project-1244/-/pipelines/54\"},\"merge_request\":null,\"user\":null,\"project\":{\"id\":1086,\"name\":\"Project-1244 Name\",\"description\":null,\"web_url\":\"http://localhost/namespace384/project-1244\",\"avatar_url\":null,\"git_ssh_url\":\"git@localhost:namespace384/project-1244.git\",\"git_http_url\":\"http://localhost/namespace384/project-1244.git\",\"namespace\":\"Sidney Jones905\",\"visibility_level\":0,\"path_with_namespace\":\"namespace384/project-1244\",\"default_branch\":null,\"ci_config_path\":null},\"commit\":null,\"builds\":[{\"id\":39,\"stage\":\"test\",\"name\":\"test\",\"status\":\"pending\",\"created_at\":\"2023-08-13T08:50:29.000Z\",\"started_at\":null,\"finished_at\":null,\"duration\":null,\"queued_duration\":-5049.0,\"failure_reason\":null,\"when\":\"on_success\",\"manual\":false,\"allow_failure\":false,\"user\":null,\"runner\":null,\"artifacts_file\":{\"filename\":null,\"size\":null},\"environment\":null},{\"id\":40,\"stage\":\"test\",\"name\":\"test\",\"status\":\"pending\",\"created_at\":\"2023-08-13T08:50:29.000Z\",\"started_at\":null,\"finished_at\":null,\"duration\":null,\"queued_duration\":-5049.0,\"failure_reason\":null,\"when\":\"on_success\",\"manual\":false,\"allow_failure\":false,\"user\":null,\"runner\":null,\"artifacts_file\":{\"filename\":null,\"size\":null},\"environment\":null}]}" with headers {'X-Gitlab-Event'=>'Pipeline Hook'} 1 time6460 with job data6461 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=fe73822ac1a22934ab51b09165e4bf4d8e9d1a9f7949a56a0d18cde13b34f2a0&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"build\",\"ref\":\"master\",\"tag\":false,\"before_sha\":\"0000000000000000000000000000000000000000\",\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"retries_count\":1,\"build_id\":39,\"build_name\":\"test\",\"build_stage\":\"test\",\"build_status\":\"pending\",\"build_created_at\":\"2023-08-13T08:50:29.000Z\",\"build_started_at\":null,\"build_finished_at\":null,\"build_duration\":null,\"build_queued_duration\":-5049.0,\"build_allow_failure\":false,\"build_failure_reason\":\"unknown_failure\",\"pipeline_id\":54,\"runner\":null,\"project_id\":1086,\"project_name\":\"Sidney Jones905 / Project-1244 Name\",\"user\":null,\"commit\":{\"id\":54,\"name\":null,\"sha\":\"b83d6e391c22777fca1ed3012fce84f633d7fed0\",\"message\":null,\"author_name\":null,\"author_email\":null,\"author_url\":\"mailto:\",\"status\":\"pending\",\"duration\":null,\"started_at\":null,\"finished_at\":null},\"repository\":{\"name\":\"Project-1244 Name\",\"url\":\"git@localhost:namespace384/project-1244.git\",\"description\":null,\"homepage\":\"http://localhost/namespace384/project-1244\",\"git_http_url\":\"http://localhost/namespace384/project-1244.git\",\"git_ssh_url\":\"git@localhost:namespace384/project-1244.git\",\"visibility_level\":0},\"environment\":null}" with headers {'X-Gitlab-Event'=>'Job Hook'} 1 time6462 with archive trace data6463 is expected to request POST https://webhook-intake.datadoghq.com/api/v2/webhook?dd-api-key=3a25b84eebcd41fc5ef3a89f45912e4d567b0e1a903278d5e4167b6862261c9d&env=ci&service=awesome-gitlab with body "{\"object_kind\":\"archive_trace\",\"trace_url\":\"/08/4a/084ae23e6996e701addeeb7dcf33696f32dcb4ab78c0ca2026f8f5dbbe5a81d0/2023_08_13/39/63/sample_trace\",\"build_id\":39,\"pipeline_id\":54,\"project\":{\"id\":1086,\"name\":\"Project-1244 Name\",\"description\":null,\"web_url\":\"http://localhost/namespace384/project-1244\",\"avatar_url\":null,\"git_ssh_url\":\"git@localhost:namespace384/project-1244.git\",\"git_http_url\":\"http://localhost/namespace384/project-1244.git\",\"namespace\":\"Sidney Jones905\",\"visibility_level\":0,\"path_with_namespace\":\"namespace384/project-1244\",\"default_branch\":null,\"ci_config_path\":null,\"homepage\":\"http://localhost/namespace384/project-1244\",\"url\":\"git@localhost:namespace384/project-1244.git\",\"ssh_url\":\"git@localhost:namespace384/project-1244.git\",\"http_url\":\"http://localhost/namespace384/project-1244.git\"}}" with headers {'X-Gitlab-Event'=>'Archive Trace Hook'} 1 time6464Gitlab::Ci::Trace::Stream6465 delegates6466 is expected to delegate #close to the #stream object6467 is expected to delegate #tell to the #stream object6468 is expected to delegate #seek to the #stream object6469 is expected to delegate #size to the #stream object6470 is expected to delegate #path to the #stream object6471 is expected to delegate #truncate to the #stream object6472 is expected to delegate #valid? to the #stream object as #present?6473 #limit6474 when stream is StringIO6475 behaves like limits6476 if size is larger we start from beginning6477 if size is smaller we start from the end6478 when the trace contains ANSI sequence and Unicode6479 forwards to the next linefeed, case 16480 forwards to the next linefeed, case 26481 reads in binary, output as Encoding.default_external6482 when stream is ChunkedIO6483 behaves like limits6484 if size is larger we start from beginning6485 if size is smaller we start from the end6486 when the trace contains ANSI sequence and Unicode6487 forwards to the next linefeed, case 16488 forwards to the next linefeed, case 26489 reads in binary, output as Encoding.default_external6490 #append6491 when stream is Tempfile6492 behaves like appends6493 truncates and appends content6494 appends in binary mode6495 when stream is ChunkedIO6496 behaves like appends6497 truncates and appends content6498 appends in binary mode6499 metrics6500 increments trace streamed operation6501 increments trace bytes counter6502 #set6503 when stream is StringIO6504 behaves like sets6505 overwrite content6506 when stream is ChunkedIO6507 behaves like sets6508 overwrite content6509 #raw6510 when stream is File6511 behaves like sets6512 returns all contents if last_lines is not specified6513 limit max lines6514 returns last few lines6515 returns everything if trying to get too many lines6516 when stream is ChunkedIO6517 behaves like sets6518 returns all contents if last_lines is not specified6519 limit max lines6520 returns last few lines6521 returns everything if trying to get too many lines6522 #html6523 when stream is StringIO6524 behaves like htmls6525 returns html6526 returns html for last line only6527 when stream is ChunkedIO6528 behaves like htmls6529 returns html6530 returns html for last line only6531 #extract_coverage6532 when stream is StringIO6533 behaves like extract_coverages6534 valid content & regex6535 is expected to eq "98.29"6536 valid content & bad regex6537 is expected to be nil6538 no coverage content & regex6539 is expected to be nil6540 multiple results in content & regex6541 returns the last matched coverage6542 when BUFFER_SIZE is smaller than stream.size6543 is expected to eq "98.29"6544 when regex is multi-byte char6545 is expected to eq "95.0"6546 when BUFFER_SIZE is equal to stream.size6547 is expected to eq "98.29"6548 using a regex capture6549 is expected to eq "65"6550 malicious regexp6551 takes under a second6552 multi-line data with rooted regexp6553 is expected to eq "65"6554 long line6555 is expected to eq "100"6556 many lines6557 is expected to eq "100"6558 empty regex6559 skips processing6560 nil regex6561 skips processing6562 when stream is ChunkedIO6563 behaves like extract_coverages6564 valid content & regex6565 is expected to eq "98.29"6566 valid content & bad regex6567 is expected to be nil6568 no coverage content & regex6569 is expected to be nil6570 multiple results in content & regex6571 returns the last matched coverage6572 when BUFFER_SIZE is smaller than stream.size6573 is expected to eq "98.29"6574 when regex is multi-byte char6575 is expected to eq "95.0"6576 when BUFFER_SIZE is equal to stream.size6577 is expected to eq "98.29"6578 using a regex capture6579 is expected to eq "65"6580 malicious regexp6581 takes under a second6582 multi-line data with rooted regexp6583 is expected to eq "65"6584 long line6585 is expected to eq "100"6586 many lines6587 is expected to eq "100"6588 empty regex6589 skips processing6590 nil regex6591 skips processing6592Banzai::Filter::References::ReferenceFilter6593 #each_node6594 iterates over the nodes in a document6595 returns an Enumerator when no block is given6596 skips links with a "gfm" class6597 skips text nodes in pre elements6598 #nodes6599 returns an Array of the HTML nodes6600 #replace_text_when_pattern_matches6601 when node has no reference pattern6602 skips node6603 behaves like replaces document node6604 when parent has only one node6605 behaves like replaces text6606 when content didnt change6607 does not replace link node with html6608 when link node has changed6609 replaces reference node6610 calls replace_and_update_new_nodes6611 stores filtered new nodes6612 when parent has multiple nodes6613 when pattern matches in the first node6614 behaves like replaces text6615 when content didnt change6616 does not replace link node with html6617 when link node has changed6618 replaces reference node6619 calls replace_and_update_new_nodes6620 stores filtered new nodes6621 when pattern matches in the middle node6622 behaves like replaces text6623 when content didnt change6624 does not replace link node with html6625 when link node has changed6626 replaces reference node6627 calls replace_and_update_new_nodes6628 stores filtered new nodes6629 when pattern matches in the last node6630 behaves like replaces text6631 when content didnt change6632 does not replace link node with html6633 when link node has changed6634 replaces reference node6635 calls replace_and_update_new_nodes6636 stores filtered new nodes6637 #replace_link_node_with_text6638 behaves like replaces document node6639 when parent has only one node6640 behaves like replaces text6641 when content didnt change6642 does not replace link node with html6643 when link node has changed6644 replaces reference node6645 calls replace_and_update_new_nodes6646 stores filtered new nodes6647 when parent has multiple nodes6648 when pattern matches in the first node6649 behaves like replaces text6650 when content didnt change6651 does not replace link node with html6652 when link node has changed6653 replaces reference node6654 calls replace_and_update_new_nodes6655 stores filtered new nodes6656 when pattern matches in the middle node6657 behaves like replaces text6658 when content didnt change6659 does not replace link node with html6660 when link node has changed6661 replaces reference node6662 calls replace_and_update_new_nodes6663 stores filtered new nodes6664 when pattern matches in the last node6665 behaves like replaces text6666 when content didnt change6667 does not replace link node with html6668 when link node has changed6669 replaces reference node6670 calls replace_and_update_new_nodes6671 stores filtered new nodes6672 #replace_link_node_with_href6673 behaves like replaces document node6674 when parent has only one node6675 behaves like replaces text6676 when content didnt change6677 does not replace link node with html6678 when link node has changed6679 replaces reference node6680 calls replace_and_update_new_nodes6681 stores filtered new nodes6682 when parent has multiple nodes6683 when pattern matches in the first node6684 behaves like replaces text6685 when content didnt change6686 does not replace link node with html6687 when link node has changed6688 replaces reference node6689 calls replace_and_update_new_nodes6690 stores filtered new nodes6691 when pattern matches in the middle node6692 behaves like replaces text6693 when content didnt change6694 does not replace link node with html6695 when link node has changed6696 replaces reference node6697 calls replace_and_update_new_nodes6698 stores filtered new nodes6699 when pattern matches in the last node6700 behaves like replaces text6701 when content didnt change6702 does not replace link node with html6703 when link node has changed6704 replaces reference node6705 calls replace_and_update_new_nodes6706 stores filtered new nodes6707 #call_and_update_nodes6708 updates all new nodes6709 .call6710 updates all nodes6711 abstract methods6712 #references_in6713 raises NotImplementedError6714 #object_link_filter6715 raises NotImplementedError6716Gitlab::Ci::Trace::ChunkedIO6717 #initialize6718 when a chunk exists6719 is expected to eq 36720 when two chunks exist6721 is expected to eq 66722 when no chunks exists6723 is expected to eq 06724 #seek6725 when moves pos to end of the file6726 is expected to eq 1924416727 when moves pos to middle of the file6728 is expected to eq 962206729 when moves pos around6730 matches the result6731 #eof?6732 when current pos is at end of the file6733 is expected to be truthy6734 when current pos is not at end of the file6735 is expected to be falsey6736 #each_line6737 when buffer size is smaller than file size6738 yields lines6739 when buffer size is larger than file size6740 calls get_chunk only once6741 when buffer consist of many empty lines6742 yields lines6743 #read6744 when read the whole size6745 when buffer size is smaller than file size6746 is expected to eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"6747 when buffer size is larger than file size6748 is expected to eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"6749 when chunk is missing data6750 raises an error6751 when read only first 100 bytes6752 when buffer size is smaller than file size6753 reads a trace6754 when buffer size is larger than file size6755 reads a trace6756 when tries to read oversize6757 when buffer size is smaller than file size6758 reads a trace6759 when buffer size is larger than file size6760 reads a trace6761 when tries to read 0 bytes6762 when buffer size is smaller than file size6763 reads a trace6764 when buffer size is larger than file size6765 reads a trace6766 #readline6767 when buffer size is smaller than file size6768 behaves like all line matching6769 is expected to eq "\e[0;m\n"6770 when buffer size is larger than file size6771 behaves like all line matching6772 is expected to eq "\e[0;m\n"6773 when pos is at middle of the file6774 reads from pos6775 when chunk is missing data6776 raises an error6777 when utf-8 is being used6778 has known length6779 behaves like all line matching6780 is expected to eq "\xF0\x9F\x98\xBA"6781 #write6782 when data does not exist6783 when buffer size is smaller than file size6784 behaves like writes a trace6785 is expected to eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"6786 when buffer size is larger than file size6787 behaves like writes a trace6788 is expected to eq "\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 30d62d59\n\...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"6789 when data already exists6790 when buffer size is smaller than file size6791 behaves like appends a trace6792 is expected to eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"6793 when buffer size is larger than file size6794 behaves like appends a trace6795 is expected to eq "exist data\e[0KRunning with gitlab-runner 10.6.0 (a3543a27)\n\e[0;m\e[0K on docker-auto-scale-com 3...token\e[0;m=rusBKvxM\nsection_end:1522927520:upload_artifacts\n\e[0K\e[32;1mJob succeeded\n\e[0;m\n"6796 #truncate6797 when data does not exist6798 when buffer size is smaller than file size6799 behaves like truncates a trace6800 is expected to eq "\e[0KRunnin"6801 when buffer size is larger than file size6802 behaves like truncates a trace6803 is expected to eq "\e[0KRunnin"6804 #destroy!6805 deletes6806Gitlab::CycleAnalytics::Permissions6807 user with no relation to the project6808 has no permissions to issue stage6809 has no permissions to test stage6810 has no permissions to staging stage6811 has no permissions to code stage6812 has no permissions to review stage6813 has no permissions to plan stage6814 user is maintainer6815 has permissions to issue stage6816 has permissions to test stage6817 has permissions to staging stage6818 has permissions to code stage6819 has permissions to review stage6820 has permissions to plan stage6821 user has no build permissions6822 has permissions to issue stage6823 has no permissions to test stage6824 has no permissions to staging stage6825 user has no merge request permissions6826 has permissions to issue stage6827 has no permissions to code stage6828 has no permissions to review stage6829 user has no issue permissions6830 has permissions to code stage6831 has no permissions to issue stage6832Terraform::State6833 is expected to belong to project required: false6834 is expected to belong to locked_by_user class_name => User required: false6835 is expected to validate that :name cannot be empty/falsy6836 is expected to validate that :project_id cannot be empty/falsy6837 is expected to validate that :uuid cannot be empty/falsy6838 default values6839 is expected to be present6840 is expected to eq "test"6841 scopes6842 .ordered_by_name6843 is expected to eq ["state_a", "state_b", "state_c", "state_d"]6844 .with_name6845 is expected to contain exactly #<Terraform::State id: 10, project_id: 1120, created_at: "2023-08-13 07:26:50.022571695 +0000", updat...b0", name: "matching-name", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0>6846 #latest_file6847 is expected to eq #<Terraform::StateUploader:0x00007d681165ef18 @model=#<Terraform::StateVersion id: 6, terraform_state...0x00007d681165ec70 @uploader=#<Terraform::StateUploader:0x00007d681165ef18 ...>, @cache_called=nil>>6848 but no version exists yet6849 is expected to be nil6850 #update_file!6851 versioning is enabled6852 creates a new version6853 versioning is disabled (migration to versioned in progress)6854 creates a new version, corrects the migrated version number, and marks the state as versioned6855 the current version cannot be determined6856 uses version - 1 to correct the migrated version number6857Gitlab::Diff::LinesUnfolder6858 position requires a middle expansion and new match lines6859 old_line is an invalid number6860 fails gracefully6861 blob lines6862 returns the extracted blob lines correctly6863 diff lines6864 return merge of blob lines with diff lines correctly6865 merged lines have correct line codes6866 position requires a middle expansion and no top match line6867 blob lines6868 returns the extracted blob lines correctly6869 diff lines6870 return merge of blob lines with diff lines correctly6871 merged lines have correct line codes6872 position requires a middle expansion and no bottom match line6873 blob lines6874 returns the extracted blob lines correctly6875 diff lines6876 return merge of blob lines with diff lines correctly6877 merged lines have correct line codes6878 position requires a short top expansion6879 blob lines6880 returns the extracted blob lines correctly6881 diff lines6882 return merge of blob lines with diff lines correctly6883 merged lines have correct line codes6884 position sits between two match lines (no expasion needed)6885 diff lines6886 returns nil6887 position requires bottom expansion and new match lines6888 blob lines6889 returns the extracted blob lines correctly6890 diff lines6891 return merge of blob lines with diff lines correctly6892 merged lines have correct line codes6893 position requires bottom expansion and no new match line6894 blob lines6895 returns the extracted blob lines correctly6896 diff lines6897 return merge of blob lines with diff lines correctly6898 merged lines have correct line codes6899 positioned on an image6900 diff file is not text6901 returns nil6902 diff file is text6903 returns nil6904ActiveHookFilter6905 #matches?6906 for various types of branch_filter6907 branch_filter_strategy: "all_branches", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true6908 is expected to equal true6909 is expected to equal true6910 branch_filter_strategy: "all_branches", branch_filter: "", ref: "refs/heads/master", expected_matches?: true6911 is expected to equal true6912 is expected to equal true6913 branch_filter_strategy: "all_branches", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true6914 is expected to equal true6915 is expected to equal true6916 branch_filter_strategy: "all_branches", branch_filter: ".*", ref: "refs/heads/master", expected_matches?: true6917 is expected to equal true6918 is expected to equal true6919 branch_filter_strategy: "wildcard", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true6920 is expected to equal true6921 is expected to equal true6922 branch_filter_strategy: "wildcard", branch_filter: "master", ref: "refs/heads/my_branch", expected_matches?: false6923 is expected to equal false6924 is expected to equal true6925 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/features/my-branch", expected_matches?: true6926 is expected to equal true6927 is expected to equal true6928 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/features/my-branch/something", expected_matches?: true6929 is expected to equal true6930 is expected to equal true6931 branch_filter_strategy: "wildcard", branch_filter: "features/*", ref: "refs/heads/master", expected_matches?: false6932 is expected to equal false6933 is expected to equal true6934 branch_filter_strategy: "wildcard", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true6935 is expected to equal true6936 is expected to equal true6937 branch_filter_strategy: "wildcard", branch_filter: "", ref: "refs/heads/master", expected_matches?: true6938 is expected to equal true6939 is expected to equal true6940 branch_filter_strategy: "regex", branch_filter: "master", ref: "refs/heads/master", expected_matches?: true6941 is expected to equal true6942 is expected to equal true6943 branch_filter_strategy: "regex", branch_filter: "master", ref: "refs/heads/my_branch", expected_matches?: false6944 is expected to equal false6945 is expected to equal true6946 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/xxxx/features/my-branch", expected_matches?: true6947 is expected to equal true6948 is expected to equal true6949 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/features/", expected_matches?: true6950 is expected to equal true6951 is expected to equal true6952 branch_filter_strategy: "regex", branch_filter: "features/*", ref: "refs/heads/features", expected_matches?: true6953 is expected to equal true6954 is expected to equal true6955 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/features/my-branch", expected_matches?: true6956 is expected to equal true6957 is expected to equal true6958 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/features/my-branch/something", expected_matches?: true6959 is expected to equal true6960 is expected to equal true6961 branch_filter_strategy: "regex", branch_filter: "features/.*", ref: "refs/heads/master", expected_matches?: false6962 is expected to equal false6963 is expected to equal true6964 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/feature", expected_matches?: true6965 is expected to equal true6966 is expected to equal true6967 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/dev", expected_matches?: true6968 is expected to equal true6969 is expected to equal true6970 branch_filter_strategy: "regex", branch_filter: "(feature|dev)", ref: "refs/heads/master", expected_matches?: false6971 is expected to equal false6972 is expected to equal true6973 branch_filter_strategy: "regex", branch_filter: nil, ref: "refs/heads/master", expected_matches?: true6974 is expected to equal true6975 is expected to equal true6976 branch_filter_strategy: "regex", branch_filter: "", ref: "refs/heads/master", expected_matches?: true6977 is expected to equal true6978 is expected to equal true6979 when the branch filter is a invalid regex6980 is expected to equal false6981 when the branch filter is not properly set to nil6982 is expected to equal true6983PipelineDetailsEntity6984 inherits from PipelineEntity6985 #as_json6986 when pipeline is empty6987 contains details6988 contains flags6989 when disable_manual_and_scheduled_actions is true6990 does not contain manual and scheduled actions6991 when pipeline has manual builds6992 sets :has_manual_actions to true6993 when pipeline is retryable6994 user has ability to retry pipeline6995 retryable flag is true6996 user does not have ability to retry pipeline6997 retryable flag is false6998 when pipeline is cancelable6999 user has ability to cancel pipeline7000 cancelable flag is true7001 user does not have ability to cancel pipeline7002 cancelable flag is false7003 when pipeline has commit statuses7004 contains stages7005 when pipeline has YAML errors7006 contains information about error7007 contains flag that indicates there are errors7008 when pipeline does not have YAML errors7009 does not contain field that normally holds an error7010 contains flag that indicates there are no errors7011 when pipeline is triggered by other pipeline7012 contains an information about depedent pipeline7013 when pipeline triggered other pipeline7014 contains an information about dependent pipeline7015Gitlab::Utils::SanitizeNodeLink7016 # order random7017 #remove_unsafe_links7018 with the scheme: javascript:7019 <a> tags7020 removes the unsafe link7021 <img> tags7022 removes the unsafe link7023 <video> tags7024 removes the unsafe link7025 <audio> tags7026 removes the unsafe link7027 with the scheme: JaVaScRiPt:7028 <a> tags7029 removes the unsafe link7030 <img> tags7031 removes the unsafe link7032 <video> tags7033 removes the unsafe link7034 <audio> tags7035 removes the unsafe link7036 with the scheme: javascript:7037 <a> tags7038 removes the unsafe link7039 <img> tags7040 removes the unsafe link7041 <video> tags7042 removes the unsafe link7043 <audio> tags7044 removes the unsafe link7045 with the scheme: javascript :7046 <a> tags7047 removes the unsafe link7048 <img> tags7049 removes the unsafe link7050 <video> tags7051 removes the unsafe link7052 <audio> tags7053 removes the unsafe link7054 with the scheme: javascript:7055 <a> tags7056 removes the unsafe link7057 <img> tags7058 removes the unsafe link7059 <video> tags7060 removes the unsafe link7061 <audio> tags7062 removes the unsafe link7063 with the scheme: javascript :7064 <a> tags7065 removes the unsafe link7066 <img> tags7067 removes the unsafe link7068 <video> tags7069 removes the unsafe link7070 <audio> tags7071 removes the unsafe link7072 with the scheme: :javascript:7073 <a> tags7074 removes the unsafe link7075 <img> tags7076 removes the unsafe link7077 <video> tags7078 removes the unsafe link7079 <audio> tags7080 removes the unsafe link7081 with the scheme: javascript:7082 <a> tags7083 removes the unsafe link7084 <img> tags7085 removes the unsafe link7086 <video> tags7087 removes the unsafe link7088 <audio> tags7089 removes the unsafe link7090 with the scheme: javascript:7091 <a> tags7092 removes the unsafe link7093 <img> tags7094 removes the unsafe link7095 <video> tags7096 removes the unsafe link7097 <audio> tags7098 removes the unsafe link7099 with the scheme:  javascript:7100 <a> tags7101 removes the unsafe link7102 <img> tags7103 removes the unsafe link7104 <video> tags7105 removes the unsafe link7106 <audio> tags7107 removes the unsafe link7108 when URI is valid7109 does not remove it7110 when URI is invalid7111 removes the link7112 when URI is encoded but still invalid7113 removes the link7114 #safe_protocol?7115 with the scheme: javascript:7116 returns false7117 with the scheme: JaVaScRiPt:7118 returns false7119 with the scheme: javascript:7120 returns false7121 with the scheme: javascript :7122 returns false7123 with the scheme: javascript:7124 returns false7125 with the scheme: javascript :7126 returns false7127 with the scheme: :javascript:7128 returns false7129 with the scheme: javascript:7130 returns false7131 with the scheme: javascript:7132 returns false7133 with the scheme:  javascript:7134 returns false7135 #sanitize_unsafe_links7136 makes a call to #remove_unsafe_links_method7137Gitlab::Ci::Config::Entry::Need7138 with simple config7139 when job is specified7140 #valid?7141 is expected to be valid7142 #value7143 returns job needs configuration7144 behaves like job type7145 #type7146 is expected to eq :job7147 when need is empty7148 #valid?7149 is expected not to be valid7150 #errors7151 is returns an error about an empty config7152 behaves like job type7153 #type7154 is expected to eq :job7155 with complex config7156 with job name and artifacts true7157 #valid?7158 is expected to be valid7159 #value7160 returns job needs configuration7161 behaves like job type7162 #type7163 is expected to eq :job7164 with job name and artifacts false7165 #valid?7166 is expected to be valid7167 #value7168 returns job needs configuration7169 behaves like job type7170 #type7171 is expected to eq :job7172 with job name and artifacts nil7173 #valid?7174 is expected to be valid7175 #value7176 returns job needs configuration7177 behaves like job type7178 #type7179 is expected to eq :job7180 without artifacts key7181 #valid?7182 is expected to be valid7183 #value7184 returns job needs configuration7185 behaves like job type7186 #type7187 is expected to eq :job7188 with job name and optional true7189 is expected to be valid7190 behaves like job type7191 #type7192 is expected to eq :job7193 #value7194 returns job needs configuration7195 with job name and optional false7196 is expected to be valid7197 behaves like job type7198 #type7199 is expected to eq :job7200 #value7201 returns job needs configuration7202 with job name and optional nil7203 is expected to be valid7204 behaves like job type7205 #type7206 is expected to eq :job7207 #value7208 returns job needs configuration7209 without optional key7210 is expected to be valid7211 behaves like job type7212 #type7213 is expected to eq :job7214 #value7215 returns job needs configuration7216 when job name is empty7217 #valid?7218 is expected not to be valid7219 #errors7220 is returns an error about an empty config7221 behaves like job type7222 #type7223 is expected to eq :job7224 when job name is not a string7225 #valid?7226 is expected not to be valid7227 #errors7228 is returns an error about job type7229 behaves like job type7230 #type7231 is expected to eq :job7232 when job has unknown keys7233 #valid?7234 is expected not to be valid7235 #errors7236 is returns an error about job type7237 behaves like job type7238 #type7239 is expected to eq :job7240 when parallel:matrix has a value7241 and it is a string value7242 #valid?7243 is expected to be valid7244 #value7245 returns job needs configuration7246 behaves like job type7247 #type7248 is expected to eq :job7249 and it is an array value7250 #valid?7251 is expected to be valid7252 #value7253 returns job needs configuration7254 behaves like job type7255 #type7256 is expected to eq :job7257 and it is a both an array and string value7258 #valid?7259 is expected to be valid7260 #value7261 returns job needs configuration7262 behaves like job type7263 #type7264 is expected to eq :job7265 with cross pipeline artifacts needs7266 when pipeline is provided7267 when job is provided7268 is expected to be valid7269 sets artifacts:true by default7270 sets the type as cross_dependency7271 when artifacts is provided7272 is expected to be valid7273 returns the correct value7274 when config contains not allowed keys7275 is expected not to be valid7276 returns an error7277 when need config is not a string or a hash7278 #valid?7279 is expected not to be valid7280 #errors7281 is returns an error about job type7282UploadService7283 File service7284 for valid gif file7285 is expected to have key :alt7286 is expected to have key :url7287 is expected to have value "banana_sample"7288 is expected to match "banana_sample.gif"7289 for valid png file7290 is expected to have key :alt7291 is expected to have key :url7292 is expected to have value "dk"7293 is expected to match "dk.png"7294 for valid jpg file7295 is expected to have key :alt7296 is expected to have key :url7297 is expected to have value "rails_sample"7298 is expected to match "rails_sample.jpg"7299 for txt file7300 is expected to have key :alt7301 is expected to have key :url7302 is expected to have value "doc_sample.txt"7303 is expected to match "doc_sample.txt"7304 for too large a file7305 is expected to eq {}7306 #override_max_attachment_size7307 allows the upload7308 disallows the upload7309Gitlab::Database::MigrationHelpers::V27310 #rename_column_concurrently7311 behaves like Setting up to rename a column7312 creates the renamed column, syncing existing data7313 installs triggers to sync new data7314 requires the helper to run in ddl mode7315 when called inside a transaction block7316 raises an error7317 when the existing column has a default function7318 raises an error7319 when passing a batch column7320 when the batch column does not exist7321 raises an error7322 when the batch column does exist7323 passes it when creating the column7324 when the existing column has a default value7325 creates the renamed column, syncing existing data7326 installs triggers to sync new data7327 when the existing column has a default value that evaluates to NULL7328 creates the renamed column, syncing existing data7329 installs triggers to sync new data7330 when the column to rename does not exist7331 raises an error7332 #undo_cleanup_concurrent_column_rename7333 behaves like Setting up to rename a column7334 creates the renamed column, syncing existing data7335 installs triggers to sync new data7336 requires the helper to run in ddl mode7337 when called inside a transaction block7338 raises an error7339 when the existing column has a default function7340 raises an error7341 when passing a batch column7342 when the batch column does not exist7343 raises an error7344 when the batch column does exist7345 passes it when creating the column7346 when the existing column has a default value7347 creates the renamed column, syncing existing data7348 installs triggers to sync new data7349 when the existing column has a default value that evaluates to NULL7350 creates the renamed column, syncing existing data7351 installs triggers to sync new data7352 when the renamed column does not exist7353 raises an error7354 #undo_rename_column_concurrently7355 behaves like Cleaning up from renaming a column7356 when the helper is called repeatedly7357 does not make repeated attempts to cleanup7358 when the renamed column exists7359 removes the sync triggers and renamed columns7360 #cleanup_concurrent_column_rename7361 behaves like Cleaning up from renaming a column7362 when the helper is called repeatedly7363 does not make repeated attempts to cleanup7364 when the renamed column exists7365 removes the sync triggers and renamed columns7366 #create_table7367 using a limit: attribute on .text7368 creates the table as expected7369 #with_lock_retries7370-- transaction_open?()7371 -> 0.0002s7372 sets the migration class name in the logs7373-- transaction_open?()7374 -> 0.0002s7375 does not raise on exhaustion by default7376-- transaction_open?()7377 -> 0.0002s7378 defaults to disallowing subtransactions7379 raise_on_exhaustion: true7380-- transaction_open?()7381 -> 0.0002s7382 sets raise_on_exhaustion as requested7383 raise_on_exhaustion: false7384-- transaction_open?()7385 -> 0.0003s7386 sets raise_on_exhaustion as requested7387 when in transaction7388 when lock retries are enabled7389 does not use Gitlab::Database::WithLockRetries and executes the provided block directly7390 when lock retries are not enabled7391 raises an error7392 #truncate_tables!7393 truncates the table7394 truncates multiple tables7395 raises an ArgumentError if truncating multiple gitlab_schema7396 with multiple databases7397 for ci database7398 skips the TRUNCATE statement tables not in schema for connection7399 for main database7400 executes a TRUNCATE statement7401 with single database7402 executes a TRUNCATE statement (PENDING: Skipping because database ci exists)7403Mutations::MergeRequests::SetAssignees7404 when the user does not have permissions7405 #resolve7406 behaves like permission level for merge request mutation is correctly verified7407 when the user is not a project member7408 behaves like when the user does not have access to the resource7409 raises an error7410 even if assigned to the merge request7411 does not modify merge request7412 even if reviewer of the merge request7413 raises an error7414 even if author of the merge request7415 raises an error7416 when the user is a project member7417 with guest role7418 behaves like when the user does not have access to the resource7419 raises an error7420 even if assigned to the merge request7421 does not modify merge request7422 even if reviewer of the merge request7423 raises an error7424 even if author of the merge request7425 raises an error7426 with reporter role7427 behaves like when the user does not have access to the resource7428 raises an error7429 even if assigned to the merge request7430 does not modify merge request7431 even if reviewer of the merge request7432 raises an error7433 even if author of the merge request7434 raises an error7435 behaves like an assignable resource7436 #resolve7437 raises an error if the resource is not accessible to the user7438 does not change assignees if the resource is not accessible to the assignees7439 returns an operational error if the resource is not accessible to the assignees7440 when the user can update the resource7441 replaces the assignee7442 returns errors when resource could not be updated7443 when passing an empty assignee list7444 removes all assignees7445 when passing "append" as true7446 is a NO-OP in FOSS7447 when passing "remove" as true7448 removes named assignee7449 does not remove unnamed assignee7450Types::MergeRequestType7451 is expected to expose permissions using Types::PermissionTypes::MergeRequest7452 is expected to require graphql authorizations :read_merge_request7453 is expected to include Types::Notes::NoteableInterface7454 is expected to include Types::CurrentUserTodos7455 is expected to include Types::TodoableInterface7456 has the expected fields7457 #pipelines7458 is expected to have attributes {:max_page_size => 500}7459 #diff_stats_summary7460 when MR metrics has additions and deletions7461 pulls out data from metrics object7462 #diverged_from_target_branch7463 delegates the diverged_from_target_branch? call to the merge request entity7464 merge_status_enum7465 has the type MergeStatus7466 when the the DB value is preparing7467 serializes correctly7468 when the the DB value is unchecked7469 serializes correctly7470 when the the DB value is cannot_be_merged_recheck7471 serializes correctly7472 when the the DB value is checking7473 serializes correctly7474 when the the DB value is cannot_be_merged_rechecking7475 serializes correctly7476 when the the DB value is can_be_merged7477 serializes correctly7478 when the the DB value is cannot_be_merged7479 serializes correctly7480 #merge_user7481 when MR is merged7482 is not nil7483 when MR is set to merge when pipeline succeeds7484 is not nil7485MergeRequests::OldestPerCommitFinder7486 #execute7487 returns a Hash mapping commit SHAs to their oldest merge requests7488 skips merge requests that are not merged7489 includes the merge request for a merge commit7490 includes a merge request that was squashed into the target branch7491 includes a merge request for both a squash and merge commit7492 includes the oldest merge request when a merge commit is present in a newer merge request7493API::Entities::MergeRequestBasic7494 includes expected fields7495 with :with_api_entity_associations scope7496 avoids N+1 queries7497 reviewers7498 includes assigned reviewers7499 squash7500 is expected to eq true7501 squash_on_merge7502 is expected to eq false7503Clusters::KubernetesNamespaceFinder7504 #execute7505 cluster supports separate namespaces per environment7506 no persisted namespace is present7507 is expected to be nil7508 a namespace with an environment is present7509 environment matches7510 is expected to eq #<Clusters::KubernetesNamespace id: 1, cluster_id: 18, project_id: 1225, cluster_project_id: nil, cre...ame: "project-1491-1225-production-service-account", environment_id: 14, service_account_token: nil>7511 project cluster7512 is expected to eq #<Clusters::KubernetesNamespace id: 2, cluster_id: 20, project_id: 1226, cluster_project_id: 8, creat...ame: "project-1492-1226-production-service-account", environment_id: 15, service_account_token: nil>7513 service account token is blank7514 is expected to be nil7515 allow_blank_token is true7516 is expected to eq #<Clusters::KubernetesNamespace id: 4, cluster_id: 24, project_id: 1228, cluster_project_id: nil, cre...ame: "project-1494-1228-production-service-account", environment_id: 17, service_account_token: nil>7517 environment does not match7518 is expected to be nil7519 cluster does not support separate namespaces per environment7520 no persisted namespace is present7521 is expected to be nil7522 a legacy namespace with no environment is present7523 is expected to eq #<Clusters::KubernetesNamespace id: 6, cluster_id: 30, project_id: 1231, cluster_project_id: nil, cre..._account_name: "project-1497-1231-service-account", environment_id: nil, service_account_token: nil>7524 project cluster7525 is expected to eq #<Clusters::KubernetesNamespace id: 7, cluster_id: 32, project_id: 1232, cluster_project_id: 9, creat..._account_name: "project-1498-1232-service-account", environment_id: nil, service_account_token: nil>7526 service account token is blank7527 is expected to be nil7528 allow_blank_token is true7529 is expected to eq #<Clusters::KubernetesNamespace id: 9, cluster_id: 36, project_id: 1234, cluster_project_id: nil, cre..._account_name: "project-1500-1234-service-account", environment_id: nil, service_account_token: nil>7530Gitlab::GithubImport::Importer::MilestonesImporter7531 #execute7532 imports the milestones in bulk7533 #build_milestones7534 returns an Array containing milestone rows7535 does not build milestones that already exist7536 does not build milestones that are invalid7537 #build_milestones_cache7538 builds the milestones cache7539 #build_attributes7540 returns the attributes of the milestone as a Hash7541 the returned Hash7542 includes the milestone number7543 includes the milestone title7544 includes the milestone description7545 includes the project ID7546 includes the milestone state7547 includes the due date7548 responds correctly to no due date value7549 includes the created timestamp7550 includes the updated timestamp7551 #each_milestone7552 returns the milestones7553Security::CiConfiguration::SastCreateService7554 #execute7555 user does not belong to project7556 returns an error status7557 does not track a snowplow event7558 user belongs to project7559 does track the snowplow event7560 raises exception if the user does not have permission to create a new branch7561 when exception is raised7562 when branch was created7563 tries to rm branch7564 when branch was not created7565 does not try to rm branch7566 with no parameters7567 returns the path to create a new merge request7568 when the project has a non-default ci config file7569 does track the snowplow event7570 when existing ci config contains anchors/aliases7571 returns a ServiceResponse error7572 when parsing existing ci config gives a Psych error7573 returns a ServiceResponse error7574 when parsing existing ci config gives any other error7575 is successful7576 with parameters7577 returns the path to create a new merge request7578 when the project is empty7579 returns a ServiceResponse error7580 when the repository is empty7581 when initialize_with_sast is false7582 returns a ServiceResponse error7583 when initialize_with_sast is true7584 behaves like commits directly to the default branch7585 commits directly to the default branch7586 when committing to the default branch7587 does not try to remove that branch on raised exceptions7588 behaves like commits directly to the default branch7589 commits directly to the default branch7590Gitlab::Doctor::Secrets7591 when not ran in a Rake runtime7592 raises an error7593 when encrypted attributes are properly set7594 detects decryptable secrets7595 when attr_encrypted values are not decrypting7596 marks undecryptable values as bad7597 when TokenAuthenticatable values are not decrypting7598 marks undecryptable values as bad7599 when initializers attempt to use encrypted data7600 skips the initializers and detects bad data7601 resets the initializers after the task runs7602 when GrafanaIntegration token is set via private method7603 can access GrafanaIntegration token value7604Gitlab::UsageDataCounters::KubernetesAgentCounter7605 behaves like a redis usage counter7606 .count(gitops_sync)7607 increments the Kubernetes Agent gitops_sync counter by 17608 .read(gitops_sync)7609 returns the total number of gitops_sync events7610 behaves like a redis usage counter with totals7611 totals7612 can report all totals7613 unknown events7614 cannot increment7615 cannot read7616 behaves like a redis usage counter7617 .count(k8s_api_proxy_request)7618 increments the Kubernetes Agent k8s_api_proxy_request counter by 17619 .read(k8s_api_proxy_request)7620 returns the total number of k8s_api_proxy_request events7621 behaves like a redis usage counter with totals7622 totals7623 can report all totals7624 unknown events7625 cannot increment7626 cannot read7627 behaves like a redis usage counter7628 .count(flux_git_push_notifications_total)7629 increments the Kubernetes Agent flux_git_push_notifications_total counter by 17630 .read(flux_git_push_notifications_total)7631 returns the total number of flux_git_push_notifications_total events7632 behaves like a redis usage counter with totals7633 totals7634 can report all totals7635 unknown events7636 cannot increment7637 cannot read7638 behaves like a redis usage counter7639 .count(k8s_api_proxy_requests_via_ci_access)7640 increments the Kubernetes Agent k8s_api_proxy_requests_via_ci_access counter by 17641 .read(k8s_api_proxy_requests_via_ci_access)7642 returns the total number of k8s_api_proxy_requests_via_ci_access events7643 behaves like a redis usage counter with totals7644 totals7645 can report all totals7646 unknown events7647 cannot increment7648 cannot read7649 behaves like a redis usage counter7650 .count(k8s_api_proxy_requests_via_user_access)7651 increments the Kubernetes Agent k8s_api_proxy_requests_via_user_access counter by 17652 .read(k8s_api_proxy_requests_via_user_access)7653 returns the total number of k8s_api_proxy_requests_via_user_access events7654 behaves like a redis usage counter with totals7655 totals7656 can report all totals7657 unknown events7658 cannot increment7659 cannot read7660 .increment_event_counts7661 increments the specified counters by the new increment amount7662 with empty events7663 is expected not to change `Gitlab::UsageDataCounters::KubernetesAgentCounter.totals`7664 event is unknown7665 raises an ArgumentError7666 increment is negative7667 raises an ArgumentError7668Mutations::ContainerExpirationPolicies::Update7669 is expected to require graphql authorizations :admin_container_image7670 #resolve7671 with existing container expiration policy7672 user_role: :maintainer, shared_examples_name: "updating the container expiration policy"7673 behaves like updating the container expiration policy7674 behaves like updating the container expiration policy attributes7675 updates the container expiration policy7676 behaves like not creating the container expiration policy7677 doesn't create the container expiration policy7678 behaves like returning a success7679 returns the container expiration policy with no errors7680 with invalid params7681 doesn't update the cadence7682 returns an error7683 behaves like not creating the container expiration policy7684 doesn't create the container expiration policy7685 with blank regex7686 doesn't update the cadence7687 returns an error7688 behaves like not creating the container expiration policy7689 doesn't create the container expiration policy7690 user_role: :developer, shared_examples_name: "denying access to container expiration policy"7691 behaves like denying access to container expiration policy7692 raises Gitlab::Graphql::Errors::ResourceNotAvailable7693 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"7694 behaves like denying access to container expiration policy7695 raises Gitlab::Graphql::Errors::ResourceNotAvailable7696 user_role: :guest, shared_examples_name: "denying access to container expiration policy"7697 behaves like denying access to container expiration policy7698 raises Gitlab::Graphql::Errors::ResourceNotAvailable7699 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"7700 behaves like denying access to container expiration policy7701 raises Gitlab::Graphql::Errors::ResourceNotAvailable7702 without existing container expiration policy7703 user_role: :maintainer, shared_examples_name: "creating the container expiration policy"7704 behaves like creating the container expiration policy7705 behaves like updating the container expiration policy attributes7706 creates a new container expiration policy7707 updates the container expiration policy7708 behaves like returning a success7709 returns the container expiration policy with no errors7710 user_role: :developer, shared_examples_name: "denying access to container expiration policy"7711 behaves like denying access to container expiration policy7712 raises Gitlab::Graphql::Errors::ResourceNotAvailable7713 user_role: :reporter, shared_examples_name: "denying access to container expiration policy"7714 behaves like denying access to container expiration policy7715 raises Gitlab::Graphql::Errors::ResourceNotAvailable7716 user_role: :guest, shared_examples_name: "denying access to container expiration policy"7717 behaves like denying access to container expiration policy7718 raises Gitlab::Graphql::Errors::ResourceNotAvailable7719 user_role: :anonymous, shared_examples_name: "denying access to container expiration policy"7720 behaves like denying access to container expiration policy7721 raises Gitlab::Graphql::Errors::ResourceNotAvailable7722MergeRequests::MergeOrchestrationService7723 #execute7724 when merge request is mergeable7725 when merge request can be merged automatically7726 schedules auto merge7727 when merge request cannot be merged automatically7728 merges immediately7729 when merge request is not mergeable7730 does nothing7731 #can_merge?7732 when merge request is mergeable7733 is expected to eq true7734 when merge request is not mergeable7735 is expected to eq false7736 #preferred_auto_merge_strategy7737 when merge request can be merged automatically7738 fetches preferred auto merge strategy7739 when merge request cannot be merged automatically7740 is expected to be nil7741Projects::LfsPointers::LfsObjectDownloadListService7742 #each_list_item7743 when no lfs pointer is linked7744 retrieves all lfs pointers in the project repository7745 when no LFS objects exist7746 retrieves all LFS objects7747 when some LFS objects already exist7748 retrieves the download links of non-existent objects7749 when lfsconfig file exists7750 when url points to the same import url host7751 downloads lfs object using the new endpoint7752 when import url has credentials7753 adds the credentials to the new endpoint7754 when url has its own credentials7755 does not add the import url credentials7756 when url points to a third party service7757 disables lfs from the project7758 does not download anything7759 #default_endpoint_uri7760 adds suffix .git if the url does not have it7761IssueSidebarBasicEntity7762 contains keys related to issuables7763 contains attributes related to the issue7764 current_user7765 contains attributes related to the current user7766 can_update_escalation_status7767 for a standard issue7768 is not present7769 for an incident issue7770 is present and true7771 without permissions7772 is present and false7773 show_crm_contacts7774 is_reporter: false, contacts_exist_for_group: false, expected: false7775 sets proper boolean value for show_crm_contacts7776 is_reporter: false, contacts_exist_for_group: true, expected: false7777 sets proper boolean value for show_crm_contacts7778 is_reporter: true, contacts_exist_for_group: false, expected: false7779 sets proper boolean value for show_crm_contacts7780 is_reporter: true, contacts_exist_for_group: true, expected: true7781 sets proper boolean value for show_crm_contacts7782 in subgroup7783 with crm enabled7784 is true7785 with crm disabled7786 is false7787Packages::Debian::GroupComponentFile7788 behaves like Debian Component File7789 relationships7790 with stubbed uploader7791 is expected to belong to component class_name => Packages::Debian::GroupComponent required: false inverse_of => files7792 with packages file_type7793 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture required: false inverse_of => files7794 with :sources file_type7795 is expected to belong to architecture class_name => Packages::Debian::GroupArchitecture inverse_of => files optional: true7796 validations7797 #component7798 is expected to validate that :component cannot be empty/falsy7799 #architecture7800 with packages file_type7801 is expected to validate that :architecture cannot be empty/falsy7802 with :sources file_type7803 is expected to validate that :architecture is empty/falsy7804 #file_type7805 is expected to validate that :file_type cannot be empty/falsy7806 is expected to allow :file_type to be ‹:packages›7807 #compression_type7808 is expected not to validate that :compression_type cannot be empty/falsy7809 is expected to allow :compression_type to be ‹nil›7810 is expected to allow :compression_type to be ‹:gz›7811 #file7812 the uploader api7813 is expected to respond to #store_dir7814 is expected to respond to #cache_dir7815 is expected to respond to #work_dir7816 #file_store7817 is expected to validate that :file_store cannot be empty/falsy7818 #file_sha2567819 is expected to validate that :file_sha256 cannot be empty/falsy7820 scopes7821 .with_container7822 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2023-08-13 07:29:01.153142219 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">7823 .with_codename_or_suite7824 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 6, created_at: "2023-08-13 07:29:01.153142219 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">7825 .with_component_name7826 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 3, created_at: "2023-08-13 07:29:01.136260400 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">7827 .with_file_type7828 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 7, created_at: "2023-08-13 07:29:01.159328000 +0000", upda..._type: nil, file_store: 1, file: "Sources", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">7829 .with_architecture7830 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-08-13 07:29:01.130233541 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">7831 .with_architecture_name7832 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 2, created_at: "2023-08-13 07:29:01.130233541 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">7833 .with_compression_type7834 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 4, created_at: "2023-08-13 07:29:01.141889790 +0000", upda...ype: "xz", file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">7835 .with_file_sha2567836 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 5, created_at: "2023-08-13 07:29:01.147517429 +0000", upda...pe: "packages", compression_type: nil, file_store: 1, file: "Packages", file_sha256: "other_sha256">7837 .updated_before7838 is expected to contain exactly #<Packages::Debian::GroupComponentFile id: 9, created_at: "2023-08-13 07:29:02.273206937 +0000", upda...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad"> and #<Packages::Debian::GroupComponentFile id: 10, created_at: "2023-08-13 07:29:02.282394486 +0000", upd...type: nil, file_store: 1, file: "Packages", file_sha256: "be93151dc23ac34a82752444556fe79b32c7a1ad">7839 callbacks7840 updates metadata columns7841 #relative_path7842 with a Packages file_type7843 is expected to eq "debitis1/binary-optio1/Packages"7844 with a Source file_type7845 is expected to eq "debitis1/source/Sources"7846 with a DI Packages file_type7847 is expected to eq "debitis1/debian-installer/binary-optio1/Packages"7848 with an xz compression_type7849 is expected to eq "debitis1/binary-optio1/Packages.xz"7850 #empty?7851 with a non-empty component7852 is expected to be falsey7853 with an empty component7854 is expected to be truthy7855Banzai::ReferenceParser::CommitParser7856 #nodes_visible_to_user7857 when the link has a data-project attribute7858 includes the link if can_read_reference? returns true7859 excludes the link if can_read_reference? returns false7860 behaves like referenced feature visibility7861 when feature is disabled7862 does not create reference7863 when feature is enabled only for team members7864 does not create reference for non member7865 creates reference for member7866 when feature is enabled7867 creates reference7868 when the link does not have a data-project attribute7869 returns the nodes7870 #referenced_by7871 when the link has a data-project attribute7872 when the link has a data-commit attribute7873 returns an Array of commits7874 returns an empty Array when the commit could not be found7875 skips projects without valid repositories7876 when the link does not have a data-commit attribute7877 returns an empty Array7878 when the link does not have a data-project attribute7879 returns an empty Array7880 #commit_ids_per_project7881 returns a Hash containing commit IDs per project7882 does not add a project when the data-commit attribute is empty7883 #find_commits7884 is empty when repo is invalid7885 returns commits by the specified ids7886 is limited7887 when checking commits on another projects7888 behaves like no project N+1 queries7889 avoids N+1 queries in #nodes_visible_to_user7890UsersStatistics7891 scopes7892 .order_created_at_desc7893 returns the entries ordered by created at descending7894 .latest7895 returns the latest entry7896 .create_current_stats!7897 when successful7898 creates an entry with the current statistics values7899 when unsuccessful7900 raises an ActiveRecord::RecordInvalid exception7901 #active7902 sums users statistics values without the value for blocked7903 #total7904 sums all users statistics values7905Gitlab::Git::Blame7906 blaming a file7907 has the right commit span7908 has the right number of lines7909 blaming a range7910 only returns the range7911 ISO-8859 encoding7912 converts to UTF-87913 unknown encoding7914 converts to UTF-87915 renamed file7916 includes the previous path7917Ci::HasRef7918 #branch?7919 is not a tag7920 return true when tag is set to false7921 when it was triggered by merge request7922 returns false7923 is not a tag7924 return false when tag is set to true7925 #git_ref7926 when tag is true7927 returns a tag ref7928 when tag is false7929 returns a branch ref7930 when tag is nil7931 returns a branch ref7932 when it is triggered by a merge request7933 returns nil7934DependencyProxy::Manifest7935 behaves like ttl_expirable7936 behaves like having unique enum values7937 has unique values in "status"7938 default values7939 is expected to within one second of 2023-08-13 07:29:20 UTC7940 is expected to within one second of 2023-08-12 07:29:20 UTC7941 validations7942 is expected to validate that :status cannot be empty/falsy7943 .read_before7944 returns items with created at older than the supplied number of days7945 .active7946 returns only active items7947 #read!7948 updates read_at7949 behaves like destructible7950 .next_pending_destruction7951 returns the oldest item pending destruction based on updated_at7952 returns the oldest item pending destruction based on created_at7953 behaves like updates namespace statistics7954 when creating7955 schedules a statistic refresh7956 when updating7957 when the statistic attribute has not changed7958 does not schedule a statistic refresh7959 when the statistic attribute has changed7960 schedules a statistic refresh7961 when deleting7962 schedules a statistic refresh7963 relationships7964 is expected to belong to group required: false7965 validations7966 is expected to validate that :group cannot be empty/falsy7967 is expected to validate that :file cannot be empty/falsy7968 is expected to validate that :file_name cannot be empty/falsy7969 is expected to validate that :digest cannot be empty/falsy7970 scopes7971 order_id_desc7972 file is being stored7973 when existing object has local store7974 behaves like mounted file in local store7975 is stored locally7976 when direct upload is enabled7977 behaves like mounted file in object store7978 is stored remotely7979 .find_by_file_name_or_digest7980 no manifest exists7981 is expected to be nil7982 manifest exists and matches file_name7983 is expected to eq #<DependencyProxy::Manifest id: 18, created_at: "2023-08-13 07:29:23.123272288 +0000", updated_at: "2...RED], status: "default", read_at: "2023-08-13 07:29:23.123405939 +0000", verification_checksum: nil>7984 manifest exists and matches digest7985 is expected to eq #<DependencyProxy::Manifest id: 19, created_at: "2023-08-13 07:29:23.233982886 +0000", updated_at: "2...RED], status: "default", read_at: "2023-08-13 07:29:23.234138436 +0000", verification_checksum: nil>7986GrafanaIntegration7987 associations7988 is expected to belong to project required: false7989 validations7990 is expected to validate that :project cannot be empty/falsy7991 is expected to validate that :encrypted_token cannot be empty/falsy7992 disallows invalid urls for grafana_url7993 allows valid urls for grafana_url7994 disallows non-booleans in enabled column7995 allows booleans in enabled column7996 .client7997 with grafana integration disabled7998 returns a grafana client7999 with grafana integration enabled8000 returns nil8001 attribute encryption8002 token8003 encrypts original value into encrypted_token attribute8004 locks access to raw value in private method8005 prevents overriding token value with its encrypted or masked version8006 Callbacks8007 before_validation :reset_token8008 when a token was previously set8009 resets token if url changed8010 does not reset token if new url is set together with the same token8011 does not reset token if new url is set together with a new token8012Gitlab::Ci::Config::External::File::Remote8013 #matching?8014 when a remote is specified8015 returns true8016 with a missing remote8017 returns false8018 with a missing remote key8019 returns false8020 #valid?8021 when is a valid remote url8022 is expected to be truthy8023 with an irregular url8024 is expected to be falsy8025 with a timeout8026 is expected to be falsy8027 when is not a yaml file8028 is expected to be falsy8029 with an internal url8030 is expected to be falsy8031 #content8032 with a valid remote file8033 returns the content of the file8034 with a timeout8035 is falsy8036 with an invalid remote url8037 is nil8038 with an internal url8039 is nil8040 #error_message8041 when remote file location is not valid8042 returns an error message describing invalid address8043 when timeout error has been raised8044 returns error message about a timeout8045 when HTTP error has been raised8046 returns error message about a HTTP error8047 when response has 404 status8048 returns error message about a timeout8049 when the URL is blocked8050 includes details about blocked URL8051 when connection refused error has been raised8052 returns details about connection failure8053 #expand_context8054 drops all parameters8055 #metadata8056 is expected to eq {:blob=>nil, :context_project=>nil, :context_sha=>"12345", :extra=>{}, :location=>"https://gitlab.com....yml", :raw=>"https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.xxxxxxxxxxx.yml", :type=>:remote}8057 #to_hash8058 with a valid remote file8059 returns the content as a hash8060 when it has `include` with rules:exists8061 returns the content as a hash8062 when interpolation has been used8063 returns the content as a hash8064Mutations::Releases::Delete8065 #resolve8066 when the current user has access to create releases8067 deletes the release8068 returns the deleted release8069 does not remove the Git tag associated with the deleted release8070 returns no errors8071 with protected tag8072 when user has access to the protected tag8073 does not have errors8074 when user does not have access to the protected tag8075 has an access error8076 validation8077 when the release does not exist8078 returns the release as nil8079 returns an errors-at-data message8080 when the project does not exist8081 behaves like unauthorized or not found error8082 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error8083 when the current user doesn't have access to update releases8084 when the user is a reporter8085 behaves like unauthorized or not found error8086 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error8087 when the user is a non-project member8088 behaves like unauthorized or not found error8089 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error8090Gitlab::Ci::Variables::Collection::Sort8091 #initialize with non-Collection value8092 raises ArgumentError8093 #errors8094 table tests8095 empty array8096 errors matches expected errors8097 valid? matches expected errors8098 does not raise8099 simple expansions8100 errors matches expected errors8101 valid? matches expected errors8102 does not raise8103 cyclic dependency8104 errors matches expected errors8105 valid? matches expected errors8106 does not raise8107 array with raw variable8108 errors matches expected errors8109 valid? matches expected errors8110 does not raise8111 variable containing escaped variable reference8112 errors matches expected errors8113 valid? matches expected errors8114 does not raise8115 #tsort8116 table tests8117 empty array8118 returns correctly sorted variables8119 simple expansions, no reordering needed8120 returns correctly sorted variables8121 complex expansion, reordering needed8122 returns correctly sorted variables8123 unused variables8124 returns correctly sorted variables8125 missing variable8126 returns correctly sorted variables8127 complex expansions with missing variable8128 returns correctly sorted variables8129 raw variable does not get resolved8130 returns correctly sorted variables8131 variable containing escaped variable reference8132 returns correctly sorted variables8133 cyclic dependency8134 raises TSort::Cyclic8135 with overridden variables8136 preserves relative order of overridden variables8137Gitlab::Spamcheck::Client8138 url scheme8139 is tls8140 uses secure connection8141 is grpc8142 uses insecure connection8143 #spam?8144 issue8145 behaves like check for spam8146 includes interceptors8147 verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.018148 returns expected spam result8149 verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.58150 returns expected spam result8151 verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.758152 returns expected spam result8153 verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.998154 returns expected spam result8155 verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.08156 returns expected spam result8157 snippet8158 behaves like check for spam8159 includes interceptors8160 verdict_value: 0, expected: "allow", verdict_evaluated: true, verdict_score: 0.018161 returns expected spam result8162 verdict_value: 1, expected: "conditional_allow", verdict_evaluated: true, verdict_score: 0.58163 returns expected spam result8164 verdict_value: 2, expected: "disallow", verdict_evaluated: true, verdict_score: 0.758165 returns expected spam result8166 verdict_value: 3, expected: "block", verdict_evaluated: true, verdict_score: 0.998167 returns expected spam result8168 verdict_value: 4, expected: "noop", verdict_evaluated: false, verdict_score: 0.08169 returns expected spam result8170 #build_protobuf8171 builds the expected issue protobuf object8172 builds the expected snippet protobuf object8173 builds the expected generic protobuf object8174 #build_user_protobuf8175 builds the expected protobuf object8176 when user has multiple email addresses8177 adds emails to the user pb object8178 #build_project_protobuf8179 builds the expected protobuf object8180 #get_spammable_mappings8181 is a defined spammable8182 is a generic spammable8183ProjectFeaturesCompatibility8184 converts fields from 'true' to ProjectFeature::ENABLED8185 converts fields from 'false' to ProjectFeature::DISABLED8186 converts fields from true to ProjectFeature::ENABLED8187 converts fields from false to ProjectFeature::DISABLED8188 access levels8189 access_level: "disabled", expected_result: 08190 accepts access level8191 access_level: "private", expected_result: 108192 accepts access level8193 access_level: "enabled", expected_result: 208194 accepts access level8195 access_level: "public", expected_result: 308196 accepts access level8197Projects::Prometheus::AlertsFinder8198 with params8199 #execute8200 with project8201 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 21, project_id: 1316, prometheus_metric_id: 3, runbook_url: nil>]8202 with matching metric8203 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 20, project_id: 1316, prometheus_metric_id: 1, runbook_url: nil>]8204 with matching metric id8205 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 20, project_id: 1316, prometheus_metric_id: 1, runbook_url: nil>]8206 with project non-specific metric8207 is expected to be empty8208 with environment8209 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 20, project_id: 1316, prometheus_metric_id: 2, runbook_url: nil>]8210 with matching metric8211 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 20, project_id: 1316, prometheus_metric_id: 1, runbook_url: nil>]8212 with environment non-specific metric8213 is expected to be empty8214 with matching project and environment8215 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 20, project_id: 1316, prometheus_metric_id: 2, runbook_url: nil>]8216 with matching metric8217 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 20, project_id: 1316, prometheus_metric_id: 1, runbook_url: nil>]8218 with environment non-specific metric8219 is expected to be empty8220 with matching id8221 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 20, project_id: 1316, prometheus_metric_id: 1, runbook_url: nil>]8222 with a nil id8223 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 20, project_id: 1316, prometheus_metric_id: 2, runbook_url: nil>]8224 with non-matching project-environment pair8225 is expected to be empty8226 with id8227 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 20, project_id: 1316, prometheus_metric_id: 1, runbook_url: nil>]8228 with multiple ids8229 is expected to eq [#<PrometheusAlert id: 1, created_at: "2023-08-13 07:29:42.967894780 +0000", updated_at: "2023-08-13 ...0, operator: "gt", environment_id: 19, project_id: 1317, prometheus_metric_id: 4, runbook_url: nil>]8230 with non-matching id8231 is expected to be empty8232 without params8233 raises an error8234Types::BaseField8235 adds a formatted `deprecated_reason` to the subject8236 appends to the description if given8237 does not append to the description if it is absent8238 adds information about the replacement if provided8239 supports named reasons: renamed8240 supports named reasons: alpha8241 supports :alpha8242 does not allow :alpha and :deprecated together8243 authorized?8244 defaults to true8245 tests the field authorization, if provided8246 tests the field authorization, if provided, when it succeeds8247 only tests the resolver authorization if it authorizes_object?8248 tests the resolver authorization, if provided8249 tests field authorization before resolver authorization, when field auth fails8250 tests field authorization before resolver authorization, when field auth succeeds8251 when considering complexity8252 defaults to 18253 has specified value8254 #base_complexity8255 with no gitaly calls8256 defaults to 18257 with a gitaly call8258 adds 1 to the default value8259 when field has a resolver8260 when a valid complexity is already set8261 uses this complexity8262 and is a connection8263 sets complexity depending on arguments for resolvers8264 sets complexity depending on number load limits for resolvers8265 and is not a connection8266 sets complexity as normal8267 calls_gitaly8268 defaults to false8269 for fields with a resolver8270 adds 1 if true8271 for fields without a resolver8272 adds 1 if true8273 with declared constant complexity value8274 has complexity set to that constant8275 does not raise an error even with Gitaly calls8276 #resolve8277 late_extensions is given8278 registers the late extensions after the regular extensions8279 validations8280 raises an informative error if `deprecation_reason` is used8281 raises an error if a required property is missing8282 raises an error if milestone is not a String8283 visible?8284 defaults to true8285 when subject is deprecated8286 defaults to true8287 returns false if `remove_deprecated` is true in context8288Gitlab::ImportExport::Shared8289 with a repository on disk8290 #archive_path8291 uses a random hash to avoid conflicts8292 memoizes the path8293 #export_path8294 uses a random hash relative to project path8295 memoizes the path8296 with a group on disk8297 #base_path8298 uses hashed storage path8299 when exportable type is unsupported8300 #base_path8301 raises8302 #error8303 filters any full paths8304 tracks exception8305ErrorTracking::SentryClient::Projects8306 # order random8307 #projects8308 behaves like calls sentry api8309 calls sentry api8310 behaves like has correct return type8311 returns objects of type Gitlab::ErrorTracking::Project8312 behaves like has correct length8313 is expected to eq 28314 behaves like Sentry API response size limit8315 raises an exception when response is too large8316 essential keys missing in API response8317 raises exception8318 optional keys missing in sentry response8319 behaves like calls sentry api8320 calls sentry api8321 behaves like has correct return type8322 returns objects of type Gitlab::ErrorTracking::Project8323 behaves like has correct length8324 is expected to eq 18325 error object created from sentry response8326 sentry_project_object: :id, sentry_response: :id8327 is expected to eq "2"8328 sentry_project_object: :name, sentry_response: :name8329 is expected to eq "sentry-example"8330 sentry_project_object: :status, sentry_response: :status8331 is expected to eq "active"8332 sentry_project_object: :slug, sentry_response: :slug8333 is expected to eq "sentry-example"8334 sentry_project_object: :organization_name, sentry_response: [:organization, :name]8335 is expected to eq "Sentry"8336 sentry_project_object: :organization_id, sentry_response: [:organization, :id]8337 is expected to eq "1"8338 sentry_project_object: :organization_slug, sentry_response: [:organization, :slug]8339 is expected to eq "sentry"8340 redirects8341 behaves like no Sentry redirects8342 does not follow redirects8343 when exception is raised8344 behaves like maps Sentry exceptions8345 HTTParty::Error8346 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"8347 Net::OpenTimeout8348 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"8349 SocketError8350 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"8351 OpenSSL::SSL::SSLError8352 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"8353 Errno::ECONNREFUSED8354 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"8355 StandardError8356 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"8357Gitlab::Database::Partitioning::MonthlyStrategy8358 #current_partitions8359 detects both partitions8360 #missing_partitions8361 with existing partitions8362 detects the gap and the missing partition in May 20208363 detects the missing partitions at the end of the range and expects a partition for July 20208364 detects the missing partitions at the end of the range and expects a partition for August 20208365 creates partitions 6 months out from now (Sep 2020 through Feb 2021)8366 detects all missing partitions8367 when pruning partitions before June 20208368 does not include the missing partition from May 2020 because it would be dropped8369 detects the missing partition for 1 month ago (July 2020)8370 without existing partitions8371 detects the missing catch-all partition at the beginning8372 detects the missing partition for today and expects a partition for August 20208373 creates partitions 6 months out from now (Sep 2020 through Feb 20218374 detects all missing partitions8375 when pruning partitions before June 20208376 detects exactly the set of partitions from June 2020 to March 20218377 with a regular partition but no catchall (MINVALUE, to) partition8378 detects a missing catch-all partition to add before the existing partition8379 #extra_partitions8380 with existing partitions8381 without a time retention policy8382 has no extra partitions to prune8383 with a time retention policy that excludes no partitions8384 has no extra partitions to prune8385 with a time retention policy of 3 months8386 prunes the unbounded partition ending 2020-05-018387 with a time retention policy of 2 months8388 prunes the unbounded partition and the partition for May-June8389 when the retain_non_empty_partitions is true8390 prunes empty partitions8391 does not prune non-empty partitions8392Projects::ContainerRepository::DestroyService8393 when user has access to registry8394 behaves like executing with permissions8395 deletes the repository8396 sends disable_timeout = true as part of the params as default8397 sends disable_timeout = false as part of the params if it is set to false8398 when deleting the tags fails8399 sets status as deleted_failed8400 logs the error8401 behaves like returning an error status with message8402 returns an error status8403 when destroying the repository fails8404 sets status as deleted_failed8405 logs the error8406 behaves like returning an error status with message8407 returns an error status8408 when user does not have access to registry8409 does not delete a repository8410 behaves like returning an error status with message8411 returns an error status8412 when called during project deletion8413 behaves like executing with permissions8414 deletes the repository8415 sends disable_timeout = true as part of the params as default8416 sends disable_timeout = false as part of the params if it is set to false8417 when deleting the tags fails8418 sets status as deleted_failed8419 logs the error8420 behaves like returning an error status with message8421 returns an error status8422 when destroying the repository fails8423 sets status as deleted_failed8424 logs the error8425 behaves like returning an error status with message8426 returns an error status8427 when there is no user8428 behaves like returning an error status with message8429 returns an error status8430Gitlab::ErrorTracking::ContextPayloadGenerator8431 user metadata8432 appends user metadata to the payload8433 tags metadata8434 when the GITLAB_SENTRY_EXTRA_TAGS env is not set8435 does not log into AppLogger8436 does not send any extra tags8437 when the GITLAB_SENTRY_EXTRA_TAGS env is a JSON hash8438 includes those tags in all events8439 does not log into AppLogger8440 when the GITLAB_SENTRY_EXTRA_TAGS env is not a JSON hash8441 env_var: "{:foo=>\"bar\", :baz=>\"quux\"}", error: "JSON::ParserError"8442 logs into AppLogger8443 does not include any extra tags8444 env_var: "[]", error: "NoMethodError"8445 logs into AppLogger8446 does not include any extra tags8447 env_var: "[[\"foo\",\"bar\"]]", error: "NoMethodError"8448 logs into AppLogger8449 does not include any extra tags8450 env_var: "[\"foo\",\"bar\"]", error: "NoMethodError"8451 logs into AppLogger8452 does not include any extra tags8453 env_var: "\"string\"", error: "NoMethodError"8454 logs into AppLogger8455 does not include any extra tags8456 extra metadata8457 appends extra metadata to the payload8458 appends exception embedded extra metadata to the payload8459 filters sensitive extra info8460Mutations::AlertManagement::CreateAlertIssue8461 is expected to require graphql authorizations :update_alert_management_alert8462 #resolve8463 user has access to project8464 when CreateAlertIssueService responds with success8465 returns the issue with no errors8466 behaves like an incident management tracked event8467 .track_event8468 tracks the event using redis8469 behaves like an incident management tracked event8470 .track_event8471 tracks the event using redis8472 behaves like Snowplow event tracking with RedisHLL context8473 behaves like Snowplow event tracking8474 is emitted8475 when CreateAlertIssue responds with an error8476 returns errors8477 behaves like Snowplow event tracking with RedisHLL context8478 behaves like Snowplow event tracking8479 is emitted8480 when resource is not accessible to the user8481 raises an error if the resource is not accessible to the user8482ProtectedBranch::MergeAccessLevel8483 is expected to belong to protected_branch required: false8484 validations8485 when role?8486 is expected to validate that :access_level is either ‹30›, ‹40›, ‹60›, or ‹0›8487 is expected to validate that :access_level cannot be empty/falsy8488 is expected to validate that :access_level is case-sensitively unique within the scope of :protected_branch_id8489 when not role?8490 is expected not to validate that :access_level cannot be empty/falsy8491 is expected not to validate that :access_level is either ‹30›, ‹40›, ‹60›, or ‹0›8492 is expected not to validate that :access_level is case-sensitively unique within the scope of :protected_branch_id8493 ::human_access_levels8494 is expected to eq {30=>"Developers + Maintainers", 40=>"Maintainers", 60=>"Instance admins", 0=>"No one"}8495 #check_access8496 when current_user is nil8497 is expected to eq false8498 when access_level is NO_ACCESS8499 is expected to eq false8500 when instance admin access is configured8501 when current_user is a maintainer8502 is expected to eq false8503 when current_user is admin8504 is expected to eq true8505 when current_user can push_code to project8506 and member access is high enough8507 is expected to eq true8508 when external authorization denies access8509 is expected to be falsey8510 and member access is too low8511 is expected to eq false8512 when current_user cannot push_code to project8513 is expected to eq false8514 #project8515 delegates project to protected_branch association8516 ::allowed_access_levels8517 when running on Gitlab.com?8518 is expected to contain exactly 30, 40, and 08519 when self hosted?8520 is expected to contain exactly 30, 40, 60, and 08521Users::CalloutsHelper8522 .show_gke_cluster_integration_callout?8523 when user can create a cluster8524 when user has not dismissed8525 when active_nav_link is in the operations section8526 is expected to equal true8527 when active_nav_link is not in the operations section8528 is expected to equal false8529 when user dismissed8530 is expected to equal false8531 when user can not create a cluster8532 is expected to equal false8533 .show_feature_flags_new_version?8534 when the feature flags new version info has not been dismissed8535 is expected to be truthy8536 when the feature flags new version has been dismissed8537 is expected to be falsy8538 .show_registration_enabled_user_callout?8539 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: true8540 is expected to equal true8541 gitlab_com: true, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: false8542 is expected to equal false8543 gitlab_com: false, current_user: user, signup_enabled: true, user_dismissed: false, controller_path: "admin/users", expected_result: false8544 is expected to equal false8545 gitlab_com: false, current_user: admin, signup_enabled: false, user_dismissed: false, controller_path: "admin/users", expected_result: false8546 is expected to equal false8547 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: true, controller_path: "admin/users", expected_result: false8548 is expected to equal false8549 gitlab_com: false, current_user: admin, signup_enabled: true, user_dismissed: false, controller_path: "projects/issues", expected_result: false8550 is expected to equal false8551 .show_unfinished_tag_cleanup_callout?8552 when user has not dismissed8553 is expected to equal true8554 when user dismissed8555 is expected to equal false8556 .show_security_newsletter_user_callout?8557 when `current_user` is not an admin8558 is expected to equal false8559 when user has dismissed callout8560 is expected to equal false8561 when `current_user` is an admin and user has not dismissed callout8562 is expected to equal true8563 .show_pages_menu_callout?8564 when user has not dismissed8565 is expected to equal true8566 when user dismissed8567 is expected to equal false8568 #web_hook_disabled_dismissed?8569 without a project8570 is false8571 with a project8572 when the web-hook failure callout has never been dismissed8573 is false8574 when the web-hook failure callout has been dismissed8575 is true8576 is true when passed as a presenter8577 when there was an older failure8578 is true8579 when there has been a more recent failure8580 is false8581Mattermost::Session8582 is expected to respond to #current_resource_owner8583 is expected to respond to #request8584 is expected to respond to #authorization8585 is expected to respond to #strategy8586 #with session8587 without oauth uri8588 makes a request to the oauth uri8589 returns nill on calling a non exisitng method on request8590 with oauth_uri8591 without token_uri8592 can not create a session8593 with token_uri8594 can set up a session8595 returns the value of the block8596 exclusive lease8597 tries to obtain a lease8598 returns a NoSessionError error without lease8599rubocop rake tasks8600 check:graceful8601 with successful task result8602 example at ./spec/tasks/rubocop_rake_spec.rb:468603 modifies ENV and deletes REVEAL_RUBOCOP_TODO key8604 with non-successful task result8605 is expected to abort execution8606 todo:generate8607 without arguments8608 generates TODOs for all RuboCop rules8609 sets acronyms for inflections8610 with cop names as arguments8611 generates TODOs for given RuboCop cops8612SystemNotes::AlertManagementService8613 #create_new_alert8614 has the appropriate message8615 behaves like a system note8616 has the correct attributes8617 #change_alert_status8618 with no specified reason8619 has the appropriate message8620 behaves like a system note8621 has the correct attributes8622 with reason provided8623 has the appropriate message8624 #new_alert_issue8625 has the appropriate message8626 behaves like a system note8627 has the correct attributes8628 #log_resolving_alert8629 has the appropriate message8630 behaves like a system note8631 has the correct attributes8632gitlab:x509 namespace rake task8633 update_signatures8634 changes from unverified to verified if the certificate store contains the root certificate8635 returns if no signature is available8636Gitlab::ImportExport::RepoRestorer8637 bundle a project Git repo8638 restores the repo successfully8639 when the repository already exists8640 deletes the existing repository before importing8641 restore a wiki Git repo8642 restores the wiki repo successfully8643 no wiki in the bundle8644 does not creates an empty wiki8645 when wiki already exists8646 does not cause an error when restoring8647gitlab:background_migrations namespace rake tasks8648 finalize8649 without the proper arguments8650 exits without finalizing the migration8651 with the proper arguments8652 finalizes the matching migration8653 with a null parameter8654 finalizes the matching migration8655 when multiple database feature is enabled8656 ignores geo (PENDING: Skipping because ci is shared or doesn't not exist)8657 without the proper arguments8658 exits without finalizing the migration (PENDING: Skipping because ci is shared or doesn't not exist)8659 with the proper arguments8660 finalizes the matching migration (PENDING: Skipping because ci is shared or doesn't not exist)8661 when database name is not passed8662 aborts the rake task (PENDING: Skipping because ci is shared or doesn't not exist)8663 status8664 outputs the status of background migrations8665 when running the rake task against one database in multiple databases setup8666 outputs the status of background migrations8667 when multiple databases are configured8668 with two connections sharing the same database8669 skips the shared database (PENDING: Skipping because database ci exists)8670 ignores geo (PENDING: Skipping because database ci exists)8671 with multiple databases8672 outputs the status for each database8673InstanceConfiguration8674 without cache8675 #settings8676 #ssh_algorithms_hashes8677 does not return anything if file does not exist8678 does not return anything if file is empty8679 returns the md5 and sha256 if file valid and exists8680 includes all algorithms8681 does not include disabled algorithm8682 #host8683 returns current instance host8684 #gitlab_pages8685 returns Settings.pages8686 returns the GitLab's pages host ip address8687 returns the ip address as nil if the domain is invalid8688 returns the ip address of the domain8689 #size_limits8690 returns size limits from application settings8691 returns nil if receive_max_input_size not set8692 returns nil if set to 0 (unlimited)8693 #package_file_size_limits8694 returns package file size limits8695 #ci_cd_limits8696 returns CI/CD limits8697 #rate_limits8698 returns rate limits from application settings8699 with cache8700 caches settings content8701 cached settings8702 expires after EXPIRATION_TIME8703GitlabUploader8704 #file_storage?8705 when file storage is used8706 is expected to be file storage8707 when is remote storage8708 is expected not to be file storage8709 #file_cache_storage?8710 when file storage is used8711 is expected to be file cache storage8712 when is remote storage8713 is expected not to be file cache storage8714 #move_to_cache8715 is true8716 #move_to_store8717 is true8718 #cache!8719 moves the file from the working directory to the cache directory8720 #replace_file_without_saving!8721 allows file to be replaced without triggering any callbacks8722 #open8723 when trace is stored in File storage8724 when file exists8725 returns io stream8726 when passing block it yields8727 when file does not exist8728 returns nil8729 when passing block it does not yield8730 when trace is stored in Object storage8731 when file exists8732 returns http io stream8733 when passing block it yields8734 when file does not exist8735 returns nil8736 when passing block it does not yield8737 #url_or_file_path8738 returns url when in remote storage8739 returns url when in remote storage8740 #multi_read8741 is expected to eq ["Running", "gitlab-runner"]8742 .version8743 is expected to raise RuntimeError with message matching /not supported/8744 .storage_location8745 sets the identifier for the storage location options8746 when given identifier is not known8747 raises an error8748Integrations::ChatMessage::WikiPageMessage8749 behaves like Integrations::ChatMessage8750 when input contains link markup8751 strips all link markup characters8752 without markdown8753 #pretext8754 when :action == "create"8755 returns a message that a new wiki page was created8756 when :action == "update"8757 returns a message that a wiki page was updated8758 #attachments8759 when :action == "create"8760 returns the commit message for a new wiki page8761 when :action == "update"8762 returns the commit message for an updated wiki page8763 with markdown8764 #pretext8765 when :action == "create"8766 returns a message that a new wiki page was created8767 when :action == "update"8768 returns a message that a wiki page was updated8769 #attachments8770 when :action == "create"8771 returns the commit message for a new wiki page8772 when :action == "update"8773 returns the commit message for an updated wiki page8774 #activity8775 when :action == "create"8776 returns the attachment for a new wiki page8777 when :action == "update"8778 returns the attachment for an updated wiki page8779Gitlab::Ci::Variables::Builder::Project8780 #secret_variables8781 when the ref is protected8782 contains all the variables8783 when the ref is not protected8784 contains only the unprotected variables8785 when environment name is specified8786 when environment scope is exactly matched8787 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007d6858a5b638 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>8788 when environment scope is matched by wildcard8789 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007d6849628750 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>8790 when environment scope does not match8791 is expected not to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007d68420a73a0 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>8792 when environment scope has _8793 does not treat it as wildcard8794 when environment name contains underscore8795 matches literally for _8796 when environment scope has %8797 does not treat it as wildcard8798 when environment name contains a percent8799 matches literally for _8800 when variables with the same name have different environment scopes8801 puts variables matching environment scope more in the end8802Gitlab::SlashCommands::Presenters::IssueComment8803 #present8804 is expected to be a kind of Hash8805 sets ephemeral response type8806 sets the title8807 sets the fallback text8808 sets the fields8809 sets the color8810ResourceMilestoneEventPolicy8811 # order random8812 #read_resource_milestone_event8813 with non-member user8814 does not allow to read event8815 with member user8816 allows to read event for accessible milestone8817 does not allow to read event for not accessible milestone8818 #read_milestone8819 allows to read deleted milestone8820 allows to read accessible milestone8821 does not allow to read not accessible milestone8822Sidebars::UserProfile::Menus::SnippetsMenu8823 # order random8824 behaves like User profile menu8825 does not contain any sub menu8826 renders the correct link8827 renders the correct title8828 renders the correct icon8829 defines correct active route8830 renders if user is logged in8831 when viewed user is blocked8832 when user is not logged in8833 is not allowed to view the menu item8834 when current user has permission8835 is allowed to view the menu item8836 when current user does not have permission8837 is not allowed to view the menu item8838 when viewed user is banned8839 when user is not logged in8840 is not allowed to view the menu item8841 when current user has permission8842 is allowed to view the menu item8843 when current user does not have permission8844 is not allowed to view the menu item8845Gitlab::Ci::Config::Entry::Port8846 when configuration is a string8847 #valid?8848 is valid8849 #value8850 returns valid hash8851 #number8852 returns port number8853 #protocol8854 is nil8855 #name8856 is nil8857 when configuration is a hash8858 with the complete hash8859 #valid?8860 is valid8861 #value8862 returns valid hash8863 #number8864 returns port number8865 #protocol8866 returns port protocol8867 #name8868 returns port name8869 with only the port number8870 #valid?8871 is valid8872 #value8873 returns valid hash8874 #number8875 returns port number8876 #protocol8877 is nil8878 #name8879 is nil8880 without the number8881 #valid?8882 is not valid8883 when configuration is invalid8884 #valid?8885 is valid8886 when protocol8887 is http8888 #valid?8889 is valid8890 is https8891 #valid?8892 is valid8893 is neither http nor https8894 #valid?8895 is invalid8896API::Entities::Ml::Mlflow::Run8897 # order random8898 presents the metrics8899 has the id8900 has run key8901 presents metrics correctly8902 presents the params8903 presents params correctly8904 when candidate has no params8905 data is empty8906 when candidate has no metrics8907 returns empty data8908Diffs::OverflowWarningComponent8909 rendered component8910 on a commit page8911 is expected to include "For a faster browsing experience, only <strong>1 of 2</strong> files are shown. Download one of the files below to see all changes."8912 links to the diff8913 links to the patch8914 on a merge request page and the merge request is persisted8915 is expected to include "For a faster browsing experience, only <strong>1 of 2</strong> files are shown. Download one of the files below to see all changes."8916 links to the diff8917 links to the patch8918 both conditions fail8919 is expected to include "For a faster browsing experience, only <strong>1 of 2</strong> files are shown. Download one of the files below to see all changes."8920 is expected not to include "btn gl-alert-action btn-default gl-button btn-default-secondary"8921 is expected not to include "Plain diff"8922 is expected not to include "Email patch"8923 #message8924 is expected to be a kind of String8925 is HTML-safe8926 #diff_link8927 is a string when on a commit page8928 is a string when on a merge request page8929 is nil in other situations8930 #patch_link8931 is a string when on a commit page8932 is a string when on a merge request page8933 is nil in other situations8934BulkImports::Pipeline::Runner8935 pipeline runner8936 when entity is not marked as failed8937 runs pipeline extractor, transformer, loader8938 when extracted data has multiple pages8939 updates tracker information and runs pipeline again8940 when the exception BulkImports::NetworkError is raised8941 when exception is retriable8942 raises the exception BulkImports::RetryPipelineError8943 when exception is not retriable8944 behaves like failed pipeline8945 logs import failure8946 when pipeline is marked to abort on failure8947 logs a warn message and marks entity and tracker as failed8948 when pipeline is not marked to abort on failure8949 does not mark entity as failed8950 when a retriable BulkImports::NetworkError exception is raised while extracting the next page8951 raises the exception BulkImports::RetryPipelineError8952 when the exception StandardError is raised8953 behaves like failed pipeline8954 logs import failure8955 when pipeline is marked to abort on failure8956 logs a warn message and marks entity and tracker as failed8957 when pipeline is not marked to abort on failure8958 does not mark entity as failed8959 when entity is marked as failed8960 logs and returns without execution8961Gitlab::UsageDataCounters::WikiPageCounter8962 behaves like a redis usage counter8963 .count(view)8964 increments the Wiki Page view counter by 18965 .read(view)8966 returns the total number of view events8967 behaves like a redis usage counter8968 .count(create)8969 increments the Wiki Page create counter by 18970 .read(create)8971 returns the total number of create events8972 behaves like a redis usage counter8973 .count(update)8974 increments the Wiki Page update counter by 18975 .read(update)8976 returns the total number of update events8977 behaves like a redis usage counter8978 .count(delete)8979 increments the Wiki Page delete counter by 18980 .read(delete)8981 returns the total number of delete events8982 behaves like a redis usage counter with totals8983 totals8984 can report all totals8985 unknown events8986 cannot increment8987 cannot read8988SlackMarkdownSanitizer8989 # order random8990 .sanitize_slack_link8991 input: "", output: ""8992 returns the expected output8993 input: "[label](url)", output: "[label](url)"8994 returns the expected output8995 input: "<url|label>", output: "<url|label>"8996 returns the expected output8997 input: "<a href=\"url\">label</a>", output: "<a href=\"url\">label</a>"8998 returns the expected output8999 .sanitize9000 input: nil, output: nil9001 returns the expected output9002 input: "", output: ""9003 returns the expected output9004 input: "[label](url)", output: "label(url)"9005 returns the expected output9006 input: "<url|label>", output: "urllabel"9007 returns the expected output9008 input: "<a href=\"url\">label</a>", output: "a href=\"url\"label/a"9009 returns the expected output9010Gitlab::Database::HealthStatus::Indicators::AutovacuumActiveOnTable9011 # order random9012 #evaluate9013 without autovacuum activity9014 returns Normal signal9015 remembers the indicator class9016 with autovacuum activity9017 returns Stop signal9018 explains why9019 remembers the indicator class9020 returns NoSignal signal in case the feature flag is disabled9021Gitlab::Ci::Pipeline::Chain::Sequence9022 when one of steps breaks the chain9023 does not process the second step9024 returns a pipeline object9025 when all chains are executed correctly9026 iterates through entire sequence9027 returns a pipeline object9028 adds sequence duration to duration histogram9029 adds step sequence duration to duration histogram9030 records pipeline size by pipeline source in a histogram9031 active jobs by pipeline plan histogram9032 counts all the active jobs9033BlobViewer::Readme9034 #render_error9035 when there is no wiki9036 returns :no_wiki9037 when there is an external wiki9038 returns nil9039 when there is a local wiki9040 when the wiki is empty9041 returns :no_wiki9042 when the wiki is not empty9043 returns nil9044MergeRequestUserEntity9045 #as_json9046 exposes needed attributes9047 when `status` is not preloaded9048 does not expose the availability attribute9049 when the user has not approved the merge-request9050 exposes that the user has not approved the MR9051 when the user has approved the merge-request9052 exposes that the user has approved the MR9053 when `status` is preloaded9054 exposes the availibility attribute9055 performance9056 is linear in the number of merge requests (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)9057Gitlab::LfsToken9058 #token9059 when the actor is a user9060 returns the correct username9061 returns the correct token type9062 behaves like a valid LFS token9063 returns a computed token9064 when the actor is a key9065 returns the correct username9066 returns the correct token type9067 behaves like a valid LFS token9068 returns a computed token9069 when the actor is a deploy key9070 returns the correct username9071 returns the correct token type9072 behaves like a valid LFS token9073 returns a computed token9074 when the actor is invalid9075 raises an exception9076 #token_valid?9077 where the token is invalid9078 because it's junk9079 returns false9080 because it's been fiddled with9081 returns false9082 because it was generated with a different secret9083 returns false9084 because it's expired9085 returns false9086 where the token is valid9087 returns true9088 when the actor is a regular user9089 when the user is blocked9090 returns false9091 when the user password is expired9092 returns false9093 when the actor is an ldap user9094 when the user is blocked9095 returns false9096 when the user password is expired9097 returns true9098 #deploy_key_pushable?9099 when actor is not a DeployKey9100 returns false9101 when actor is a DeployKey9102 but the DeployKey cannot push to the project9103 returns false9104 and the DeployKey can push to the project9105 returns true9106 #type9107 when actor is not a User9108 returns :lfs_deploy_token type9109 when actor is a User9110 returns :lfs_token type9111 #authentication_payload9112 returns a Hash designed for gitlab-shell9113BulkImports::ExportService9114 #execute9115 when export is not batched9116 schedules RelationExportWorker for each top level relation9117 when export is batched9118 schedules RelationExportWorker with a `batched: true` flag9119 when exception occurs9120 does not schedule RelationExportWorker9121 when user is not allowed to perform export9122 does not schedule RelationExportWorker9123Banzai::ReferenceParser::DesignParser9124 #nodes_visible_to_user9125 behaves like referenced feature visibility9126 when feature is disabled9127 does not create reference9128 when feature is enabled only for team members9129 does not create reference for non member9130 creates reference for member9131 when feature is enabled9132 creates reference9133 specific states9134 redacts links we should not have access to9135 design management is not available9136 redacts all nodes9137 #process9138 returns the correct designs9139Clusters::Agents::Authorizations::CiAccess::ConfigScopes9140 # order random9141 .with_available_ci_access_fields9142 is expected to contain exactly #<Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization id: 1, project_id: 1356, agent_id: 1, config: {"default_namespace"=>"production"}>, #<Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization id: 2, project_id: 1356, agent_id: 2, config: {"access_as"=>{}}>, and #<Clusters::Agents::Authorizations::CiAccess::ProjectAuthorization id: 3, project_id: 1356, agent_id: 3, config: {"access_as"=>{"agent"=>{}}}>9143BulkInsertSafe9144-- create_table(:_test_bulk_insert_parent_items, {:force=>true})9145 -> 0.0041s9146-- create_table(:_test_bulk_insert_items, {:force=>true})9147 -> 0.0058s9148-- create_table(:_test_bulk_insert_items_with_composite_pk, {:id=>false, :force=>true})9149 -> 0.0020s9150-- execute("ALTER TABLE _test_bulk_insert_items_with_composite_pk ADD PRIMARY KEY (id,name);")9151 -> 0.0012s9152 BulkInsertItem9153 behaves like a BulkInsertSafe model9154 when calling class methods directly9155 raises an error when method is not bulk-insert safe9156 does not raise an error when method is bulk-insert safe9157 .bulk_insert!9158 when all items are valid9159 inserts them all9160 returns an empty array9161 when some items are invalid9162 does not insert any of them and raises an error9163 inserts them anyway when bypassing validations9164 when inheriting class methods9165 raises an error when method is not bulk-insert safe9166 does not raise an error when method is bulk-insert safe9167 primary keys9168 raises error if primary keys are set prior to insertion9169 .bulk_insert!9170 inserts items in the given number of batches9171 inserts items with belongs_to association9172 items can be properly fetched from database9173 rolls back the transaction when any item is invalid9174 does nothing and returns an empty array when items are empty9175 with returns option set9176 when is set to :ids9177 is expected to contain exactly (a kind of Integer)9178 when is set to nil9179 is expected to eq []9180 when is set to a list of attributes9181 is expected to contain exactly [(a kind of Integer), "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"]9182 when duplicate items are to be inserted9183 .bulk_insert!9184 when skip_duplicates is set to false9185 raises an exception9186 when skip_duplicates is set to true9187 does not update existing object9188 .bulk_upsert!9189 updates existing object9190 when the `created_at` attribute is provided9191 does not change the existing `created_at` value9192 when a model with composite primary key is inserted9193WARNING: Active Record does not support composite primary key.9194_test_bulk_insert_items_with_composite_pk has composite primary key. Composite primary key is ignored.9195 successfully inserts an item9196-- drop_table(:_test_bulk_insert_items, {:force=>true})9197 -> 0.0022s9198-- drop_table(:_test_bulk_insert_parent_items, {:force=>true})9199 -> 0.0013s9200-- drop_table(:_test_bulk_insert_items_with_composite_pk, {:force=>true})9201 -> 0.0012s9202Gitlab::Ci::Config::Entry::PullPolicy9203 #value9204 when config value is nil9205 is expected to be nil9206 when retry value is an empty array9207 is expected to eq nil9208 when retry value is string9209 is expected to eq ["always"]9210 when retry value is array9211 is expected to eq ["always", "if-not-present"]9212 validation9213 when retry value is nil9214 is expected to eq false9215 when retry value is an empty array9216 is expected to eq false9217 when retry value is a hash9218 is expected to eq false9219 when retry value is string9220 is expected to eq true9221 when it is an invalid policy9222 is expected to eq false9223 when it is an empty string9224 is expected to eq false9225 when retry value is array9226 is expected to eq true9227 when config contains an invalid policy9228 is expected to eq false9229Gitlab::Ci::Reports::Security::Locations::Sast9230 behaves like vulnerability location9231 #initialize9232 when all params are given9233 initializes an instance9234 param: :file_path9235 when param file_path is missing9236 raises an error9237 param: :start_line9238 when param start_line is missing9239 raises an error9240 #fingerprint9241 generates expected fingerprint9242 #fingerprint_path9243 generates expected fingerprint9244 #==9245 returns true when fingerprints are equal9246 returns false when fingerprints are different9247Banzai::ReferenceParser::FeatureFlagParser9248 #nodes_visible_to_user9249 when the link has a data-issue attribute9250 behaves like referenced feature visibility9251 when feature is disabled9252 does not create reference9253 when feature is enabled only for team members9254 does not create reference for non member9255 creates reference for member9256 when feature is enabled9257 creates reference9258 #referenced_by9259 when the link has a data-feature-flag attribute9260 using an existing feature flag ID9261 returns an Array of feature flags9262 using a non-existing feature flag ID9263 returns an empty Array9264Ci::CreatePipelineService9265 artifacts:9266 reports:9267 with valid config9268 creates pipeline with builds9269 with invalid config9270 creates pipeline with yaml errors9271Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestFirstDeployedToProduction9272 behaves like value stream analytics event9273 is expected to be a kind of String9274 is expected to be a kind of Symbol9275 is expected to include ApplicationRecord(abstract)9276 is expected to respond to #timestamp_projection9277 is expected to respond to #html_description9278 is expected to be a kind of Array9279 #apply_query_customization9280 expects an ActiveRecord::Relation object as argument and returns a modified version of it9281 #hash_code9282 returns a hash that uniquely identifies an event9283 does not differ when the same object is built with the same params9284 behaves like LEFT JOIN-able value stream analytics event9285 can use the event as LEFT JOIN9286 when looking at the record with data9287 contains the timestamp expression9288 when looking at the record without data9289 returns nil for the timestamp expression9290Mutations::ContainerRepositories::DestroyTags9291 is expected to require graphql authorizations :destroy_container_image9292 #resolve9293 with valid id9294 user_role: :maintainer, shared_examples_name: "destroying container repository tags"9295 behaves like destroying container repository tags9296 destroys the container repository tags9297 creates a package event9298 user_role: :developer, shared_examples_name: "destroying container repository tags"9299 behaves like destroying container repository tags9300 destroys the container repository tags9301 creates a package event9302 user_role: :reporter, shared_examples_name: "denying access to container respository"9303 behaves like denying access to container respository9304 raises an error9305 user_role: :guest, shared_examples_name: "denying access to container respository"9306 behaves like denying access to container respository9307 raises an error9308 user_role: :anonymous, shared_examples_name: "denying access to container respository"9309 behaves like denying access to container respository9310 raises an error9311 with non-existing id9312 behaves like denying access to container respository9313 raises an error9314 with service error9315 is expected to eq {:deleted_tag_names=>[], :errors=>["could not delete tags"]}9316 does not create a package event9317Gitlab::Ci::Status::Success9318 #text9319 is expected to eq "passed"9320 #label9321 is expected to eq "passed"9322 #icon9323 is expected to eq "status_success"9324 #favicon9325 is expected to eq "favicon_status_success"9326 #group9327 is expected to eq "success"9328 #details_path9329 is expected to be nil9330Resolvers::DesignManagement::DesignResolver9331 is expected to have nullable GraphQL type Design9332 #resolve9333 when the user cannot see designs9334 returns nothing9335 when no argument has been passed9336 generates an error9337 when both arguments have been passed9338 generates an error9339 by ID9340 returns the specified design9341 the ID belongs to a design on another issue9342 returns nothing9343 by filename9344 returns the specified design9345 the filename belongs to a design on another issue9346 returns nothing9347Gitlab::Jira::Dvcs9348 .encode_slash9349 replaces slash character9350 ignores path without slash9351 .decode_slash9352 replaces slash character9353 ignores path without slash9354 .encode_project_name9355 root group9356 returns project path9357 nested group9358 returns encoded project full path9359 .restore_full_path9360 project name is an encoded full path9361 returns decoded project path9362 project name is not an encoded full path9363 assumes project belongs to root namespace and returns full project path based on passed in namespace9364UserProjectAccessChangedService9365 #execute9366 permits high-priority operation9367 permits medium-priority operation9368 sets the current caller_id as related_class in the context of all the enqueued jobs9369 for low priority operation9370 does not perform low-priority operation9371 when the feature flag `do_not_run_safety_net_auth_refresh_jobs` is disabled9372 permits low-priority operation9373 with load balancing enabled9374 sticks all the updated users and returns the original result9375 avoids N+1 cached queries9376Gitlab::DataBuilder::FeatureFlag9377 .build9378 is expected to be a kind of Hash9379 is expected to eq "feature_flag"9380 contains the correct object attributes9381Gitlab::RackAttack::Store9382 # order random9383 #with9384 is expected to eq "PONG"9385 when redis is unavailable9386 is expected to eq nil9387 #increment9388 increments without expiry9389 rejects amounts other than 19390 with expiry9391 increments and sets expiry9392 #read9393 reads the namespaced key9394 #write9395 sets the key9396 with expiry9397 sets the key with expiry9398 #delete9399 is expected to eq 09400 when the key exists9401 is expected to eq 19402BulkImports::Projects::Pipelines::ProtectedBranchesPipeline9403 #run9404 imports protected branch information9405Gitlab::PipelineScopeCounts9406 has policy class9407 has expected attributes9408 with large amount of pipelines9409 sets the PIPELINES_COUNT_LIMIT constant to a value of 1_0009410 when there are more records than the limit9411 limits the found items9412Gitlab::CrossProjectAccess::CheckInfo9413 #should_run?9414 runs when an action is defined9415 runs when the action is missing9416 does not run when the action is excluded9417 runs when the `if` conditional is true9418 does not run when the if condition is false9419 does not run when the `unless` check is true9420 runs when the `unless` check is false9421 returns the opposite of #should_skip? when the check is a skip9422 #should_skip?9423 skips when an action is defined9424 does not skip when the action is not defined9425 does not skip when the action is excluded9426 skips when the `if` conditional is true9427 does not skip the `if` conditional is false9428 does not skip when the `unless` check is true9429 skips when `unless` check is false9430 returns the opposite of #should_run? when the check is not a skip9431Gitlab::Database::Migrations::TestBackgroundRunner9432 without jobs to run9433 returns immediately9434 with jobs to run9435 finding pending background jobs9436 finds all the migrations9437 running migrations9438 runs the migration class correctly9439 runs the migration for a uniform amount of time9440 with multiple migrations to run9441 splits the time between migrations when all migrations use all their time9442 does not give leftover time to extra migrations9443MergeRequests::ExecuteApprovalHooksService9444 #execute9445 sends a notification when approving9446 with remaining approvals9447 fires an approval webhook9448Atlassian::JiraConnect::Jwt::Symmetric9449 #iss_claim9450 is expected to eq "123"9451 invalid JWT9452 is expected to eq nil9453 #sub_claim9454 is expected to eq "123"9455 invalid JWT9456 is expected to eq nil9457 #valid?9458 invalid JWT9459 is expected to eq false9460 valid JWT9461 is expected to eq true9462 #verify_qsh_claim9463 is expected to eq true9464 qsh does not match9465 is expected to eq false9466 creating query string hash raises an error9467 is expected to eq false9468 #verify_context_qsh_claim9469 is expected to eq true9470 jwt does not contain a context qsh9471 is expected to eq false9472admin/application_settings/_repository_check.html.haml9473 repository checks9474 has the setting subsection9475 renders the correct setting subsection content9476 housekeeping9477 has the setting subsection9478 renders the correct setting subsection content9479 inactive project deletion9480 has the setting subsection9481 renders the correct setting subsection content9482Ci::JobTokenScope::RemoveProjectService9483 #execute9484 behaves like editable job token scope9485 when user does not have permissions to edit the job token scope9486 behaves like returns error9487 returns an error response9488 when user has permissions to edit the job token scope9489 when target project is not provided9490 behaves like returns error9491 returns an error response9492 when target project is provided9493 when user does not have permissions to read the target project9494 behaves like returns error9495 returns an error response9496 when user has permissions on source and target project9497 behaves like removes project9498 removes the project from the scope9499 when token scope is disabled9500 behaves like removes project9501 removes the project from the scope9502 when target project is same as the source project9503 behaves like returns error9504 returns an error response9505 when target project is not in the job token scope9506 behaves like returns error9507 returns an error response9508Types::ProjectInvitationType9509 is expected to expose permissions using Types::PermissionTypes::Project9510 is expected to eq "ProjectInvitation"9511 is expected to require graphql authorizations :admin_project9512 has the expected fields9513MigrationsHelpers9514 #active_record_base9515 returns the main base model9516 raises ArgumentError for bad database argument9517 ci database configured9518 returns the CI base model9519 ci database not configured9520 returns the main base model (PENDING: Skipping because some of the extra databases [:ci] are setup)9521 #table9522 creates a class based on main base model9523 ci database configured9524 create a class based on the CI base model9525 ci database not configured9526 creates a class based on main base model (PENDING: Skipping because some of the extra databases [:ci] are setup)9527 #reset_column_information9528 with a regular ActiveRecord model class9529 calls reset_column_information9530 with an anonymous class with table name defined9531 calls reset_column_information9532 with an anonymous class with no table name defined9533 does not call reset_column_information9534Gitlab::HookData::GroupBuilder9535 #build9536 data9537 on create9538 is expected to eq "group_create"9539 behaves like includes the required attributes9540 includes the required attributes9541 behaves like does not include old path attributes9542 does not include old path attributes9543 on destroy9544 is expected to eq "group_destroy"9545 behaves like includes the required attributes9546 includes the required attributes9547 behaves like does not include old path attributes9548 does not include old path attributes9549 on rename9550 is expected to eq "group_rename"9551 includes old path details9552 behaves like includes the required attributes9553 includes the required attributes9554Gitlab::Ci::Config::Entry::Services9555 when configuration is valid9556 #valid?9557 is valid9558 #value9559 returns valid array9560 when configuration is invalid9561 #valid?9562 is invalid9563 when configuration has ports9564 when with_image_ports metadata is not enabled9565 #valid?9566 is not valid9567 when with_image_ports metadata is enabled9568 #valid?9569 is valid9570 #value9571 returns valid array9572 services alias9573 when they are not unique9574 #valid?9575 is invalid9576 when they are unique9577 #valid?9578 is valid9579 when one of the duplicated alias is in a service without ports9580 is valid9581 when there are not any ports9582 is valid9583Gitlab::Pages::DeploymentUpdate9584 for new artifacts9585 is invalid for invalid archive9586 for a valid job9587 is valid9588 when missing artifacts metadata9589 is invalid9590 maximum pages artifacts size9591 when maximum pages size is set to zero9592 when size is above the limit9593 is valid9594 when size is limited on the instance level9595 when size is below the limit9596 is valid9597 when size is above the limit9598 is invalid9599 when retrying the job9600 marks older pages:deploy jobs retried9601Types::WorkItemIdType9602 .coerce_input9603 can coerce valid issue input9604 can coerce valid work item input9605 fails for other input types9606 .coerce_result9607 can coerce issue results and return a WorkItem global ID9608 can coerce work item results9609 fails for other input types9610Packages::CreateEventService9611 #execute9612 with a user9613 behaves like redis package unique event creation9614 tracks the event9615 behaves like redis package count event creation9616 tracks the event9617 with a deploy token9618 behaves like redis package unique event creation9619 tracks the event9620 behaves like redis package count event creation9621 tracks the event9622 with no user9623 behaves like redis package count event creation9624 tracks the event9625 with a package as scope9626 as guest9627 behaves like redis package count event creation9628 tracks the event9629 with user9630 behaves like redis package unique event creation9631 tracks the event9632 behaves like redis package count event creation9633 tracks the event9634DestroyPagesDeploymentsWorker9635 doesn't fail if project is already removed9636 can be called without last_deployment_id9637 calls destroy service9638Sidebars::Projects::Menus::ProjectInformationMenu9639 behaves like not serializable as super_sidebar_menu_args9640 returns nil9641 #container_html_options9642 is expected to match #<RSpec::Mocks::ArgumentMatchers::HashIncludingMatcher:0x00007d680faa6ed8 @expected={:class=>"shortcuts-project-information has-sub-items"}>9643 Menu Items9644 Labels9645 is expected not to be nil9646 when merge requests are disabled9647 is expected not to be nil9648 when issues are disabled9649 is expected not to be nil9650 when merge requests and issues are disabled9651 is expected to be nil9652 Members9653 is expected not to be nil9654 when the user does not have access9655 is expected to be nil9656Tooling::Danger::CustomerSuccess9657 customer success danger9658 with data category changes to Ops and no Customer Success::Impact Check label9659 generates correct message9660 with data category changes and Customer Success::Impact Check label9661 generates correct message9662 with metric file changes and no data category changes9663 generates correct message9664 with data category changes from Ops9665 generates correct message9666 with data category removed9667 generates correct message9668 with data category added9669 generates correct message9670 with data category in uppercase9671 generates correct message9672admin/application_settings/_package_registry9673 package file size limits9674 has fields for max package file sizes9675 does not display the plan name when there is only one plan9676 with multiple plans9677 displays the plan name when there is more than one plan9678GetPackageAndTestJob9679 # order random9680 #execute9681 returns a package-and-test pipeline that passed with warnings9682 when the bridge can not be found9683 returns nothing9684 when the downstream pipeline can not be found9685 returns nothing9686 when the bridge fails9687 returns the downstream_pipeline9688 when the package-and-test can not be found9689 returns nothing9690 when the package-and-test does not include a detailed status9691 returns nothing9692 when the package-and-test succeeds9693 returns nothing9694 when the package-and-test is canceled9695 returns a failed package-and-test pipeline9696Gitlab::Ci::Config::Entry::IdToken9697 # order random9698 when not given an `aud`9699 is invalid9700 when given `aud` is a variable9701 is valid9702 when given `aud` as an array9703 is valid and concatenates the values9704 when given `aud` as an array with variables9705 is valid and concatenates the values9706 when given `aud` as a string9707 is valid9708 when given `aud` includes a variable9709 is valid9710 when given an unknown keyword9711 is invalid9712Emails::DestroyService9713 #execute9714 removes an email9715 when it corresponds to the user primary email9716 does not remove the email and raises an exception9717RuboCop::Cop::Performance::ActiveRecordSubtransactions9718 # order random9719 when calling #transaction with other options9720 does not register an offense9721 when calling #transaction with only requires_new: true9722 registers an offense9723 when passing multiple arguments to #transaction, including requires_new: true9724 registers an offense9725 when calling #transaction with no arguments9726 does not register an offense9727 when calling #transaction with requires_new: false9728 does not register an offense9729BulkImports::RelationBatchExportWorker9730 # order random9731 #perform9732 is labeled as idempotent9733 performs multiple times sequentially without raising an exception9734 executes RelationBatchExportService9735RunnerEntity9736 #as_json9737 contains required fields9738 without admin permissions9739 does not contain admin_path field9740 with admin permissions9741 contains admin_path field9742Gitlab::Ci::Config::Normalizer::NumberStrategy9743 .applies_to?9744 with numbers9745 is expected to be truthy9746 with hash that has :number key9747 is expected to be truthy9748 with a float number9749 is expected to be falsey9750 with hash that does not have :number key9751 is expected to be falsey9752 .build_from9753 with numbers9754 behaves like parallelized job9755 is expected to eq 39756 has attributes9757 has parallelized name9758 with hash that has :number key9759 behaves like parallelized job9760 is expected to eq 39761 has attributes9762 has parallelized name9763 with one9764 behaves like single parallelized job9765 is expected to eq 19766 has attributes9767 has parallelized name9768Gitlab::GithubImport::Importer::DiffNotesImporter9769 #parallel?9770 returns true when running in parallel mode9771 returns false when running in sequential mode9772 #execute9773 when running in parallel mode9774 imports diff notes in parallel9775 when running in sequential mode9776 imports diff notes in sequence9777 #sequential_import9778 imports each diff note in sequence9779 #parallel_import9780 imports each diff note in parallel9781 #id_for_already_imported_cache9782 returns the ID of the given note9783 #collection_options9784 returns an empty Hash9785AwardEmojis::CollectUserEmojiService9786 #execute9787 returns an Array containing the awarded emoji names9788 returns an empty Array when no user is given9789Resolvers::IssueStatusCountsResolver9790 #resolve9791 is expected to be a kind of Gitlab::IssuablesCountForState9792 is expected to eq #<Project id:1406 group489/project-1685>>9793 filters by search9794 filters by issue type9795 behaves like returns expected results9796 returns expected results9797 project used as parent9798 behaves like returns expected results9799 returns expected results9800 group used as parent9801 behaves like returns expected results9802 returns expected results9803 when both assignee_username and assignee_usernames are provided9804 returns a mutually exclusive filter error9805RuboCop::Cop::Gitlab::PredicateMemoization9806 # order random9807 when source is a predicate method using local with ||=9808 behaves like not registering offense9809 does not register offenses9810 when source is a predicate method using ivar with assignment9811 behaves like not registering offense9812 does not register offenses9813 when source is a regular method memoizing via ivar9814 behaves like not registering offense9815 does not register offenses9816 when source is a predicate method memoizing via ivar9817 when assigning to boolean9818 registers an offense9819 when assigning to another variable that is a boolean9820 registers an offense9821Ci::ResourceGroups::AssignResourceFromResourceGroupWorker9822 has the `until_executed` deduplicate strategy9823 has an option to reschedule once if deduplicated9824 #perform9825 is labeled as idempotent9826 performs multiple times sequentially without raising an exception9827 when resource group exists9828 executes AssignResourceFromResourceGroupService9829 when build does not exist9830 does not execute AssignResourceFromResourceGroupService9831Gitlab::SafeRequestPurger9832 .execute9833 purges an entry from the store9834 #execute9835 when request store is active9836 purges an entry from the store9837 when there are multiple resource_ids to purge9838 purges an entry from the store9839 when there is no matching resource_ids9840 purges an entry from the store9841 when request store is not active9842 does offer the ability to interact with data store9843Gitlab::GithubImport::Stage::ImportBaseDataWorker9844 #import9845 imports the base data of a project9846 raises an error9847Types::ReleaseAssetLinkInputType9848 is expected to eq "ReleaseAssetLinkInput"9849 has the correct arguments9850 sets the type of link_type argument to ReleaseAssetLinkTypeEnum9851Gitlab::Unicode9852 (?-mix:\p{Bidi Control})9853 bidi_string: "", match: true9854 matches only the bidi characters9855 bidi_string: "", match: true9856 matches only the bidi characters9857 bidi_string: "", match: true9858 matches only the bidi characters9859 bidi_string: "", match: true9860 matches only the bidi characters9861 bidi_string: "", match: true9862 matches only the bidi characters9863 bidi_string: "", match: true9864 matches only the bidi characters9865 bidi_string: "", match: true9866 matches only the bidi characters9867 bidi_string: "", match: true9868 matches only the bidi characters9869 bidi_string: "", match: true9870 matches only the bidi characters9871 bidi_string: "foobar", match: true9872 matches only the bidi characters9873 bidi_string: "", match: false9874 matches only the bidi characters9875 bidi_string: "foo", match: false9876 matches only the bidi characters9877 bidi_string: "✓", match: false9878 matches only the bidi characters9879Packages::PackageFileFinder9880 #execute9881 behaves like package file finder examples9882 is expected to eq #<Packages::PackageFile id: 473, package_id: 98, created_at: "2023-08-13 07:31:46.658288000 +0000", u...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>9883 with file_name_like9884 is expected to eq #<Packages::PackageFile id: 473, package_id: 98, created_at: "2023-08-13 07:31:46.658288000 +0000", u...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>9885 behaves like not returning pending_destruction package files9886 returns the correct package file9887 with unknown file_name9888 is expected to be nil9889 #execute!9890 behaves like package file finder examples9891 is expected to eq #<Packages::PackageFile id: 473, package_id: 98, created_at: "2023-08-13 07:31:46.658288000 +0000", u...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>9892 with file_name_like9893 is expected to eq #<Packages::PackageFile id: 473, package_id: 98, created_at: "2023-08-13 07:31:46.658288000 +0000", u...um: nil, verification_state: 0, verification_started_at: nil, status: "default", new_file_path: nil>9894 behaves like not returning pending_destruction package files9895 returns the correct package file9896 with unknown file_name9897 is expected to raise ActiveRecord::RecordNotFound9898ResourceEvents::MergeIntoNotesService9899 #execute9900 merges label events into notes in order of created_at9901 squashes events with same time and author into single note9902 fetches only notes created after last_fetched_at9903 preloads the note author's status9904BlobViewer::Podspec9905 #package_name9906 returns the package name9907Gitlab::Ci::Build::Policy9908 .fabricate9909 when policy exists9910 fabricates and initializes relevant policy9911 when some policies are not defined9912 gracefully skips unknown policies9913 when passing a nil value as specs9914 returns an empty array9915AccessibilityReportsComparerSerializer9916 #to_json9917 when base report has error and head has a different error9918 matches the schema9919 when base report has no error and head has errors9920 matches the schema9921DesignManagement::CopyDesignCollectionWorker9922 #perform9923 calls DesignManagement::CopyDesignCollection::CopyService9924 logs if there was an error calling the service9925 behaves like an idempotent worker9926 is labeled as idempotent9927 performs multiple times sequentially without raising an exception9928 is expected to receive perform(*(any args)) 2 times9929MergeRequestSidebarExtrasEntity9930 #assignees9931 contains assignees attributes9932 #reviewers9933 contains reviewers attributes9934Types::Packages::Nuget::DependencyLinkMetadatumType9935 includes nuget dependency link metadatum fields9936Types::Projects::ForkDetailsType9937 # order random9938 has specific fields9939 is expected to eq "ForkDetails"9940Packages::Nuget::ExtractMetadataFileService9941 # order random9942 #execute9943 with valid package file id9944 returns the nuspec file content9945 with invalid package file id9946 behaves like raises an error9947 is expected to raise Packages::Nuget::ExtractMetadataFileService::ExtractionError with "invalid package file"9948 when linked to a non nuget package9949 behaves like raises an error9950 is expected to raise Packages::Nuget::ExtractMetadataFileService::ExtractionError with "invalid package file"9951 with a 0 byte package file id9952 behaves like raises an error9953 is expected to raise Packages::Nuget::ExtractMetadataFileService::ExtractionError with "invalid package file"9954 without the nuspec file9955 behaves like raises an error9956 is expected to raise Packages::Nuget::ExtractMetadataFileService::ExtractionError with "nuspec file not found"9957 with a too big nuspec file9958 behaves like raises an error9959 is expected to raise Packages::Nuget::ExtractMetadataFileService::ExtractionError with "nuspec file too big"9960 with a corrupted nupkg file with a wrong entry size9961 behaves like raises an error9962 is expected to raise Packages::Nuget::ExtractMetadataFileService::ExtractionError with "nuspec file has the wrong entry size: entry 'DummyProject.DummyPackage.nuspec' should be 255B, but is larger when inflated."9963Packages::Helm::IndexPresenter9964 #entries9965 returns the correct hash9966 with an unknown channel9967 is expected to be empty9968 with a nil channel9969 is expected to be empty9970 #api_version9971 is expected to eq "v1"9972 #generated9973 returns the expected format9974 #server_info9975 is expected to eq {"contextPath"=>"/api/v4/projects/1418/packages/helm"}9976 with url encoded project id param9977 is expected to eq {"contextPath"=>"/api/v4/projects/foo%2Fbar/packages/helm"}9978RuboCop::Cop::AvoidRouteRedirectLeadingSlash9979 # order random9980 does not register an offense when redirect does not have a leading slash9981 registers an offense when redirect has a leading slash and corrects9982DeployKeyPresenter9983 # order random9984 #humanized_error_message9985 when public key is unsupported9986 returns the custom error message9987projects/tree/show9988 for branch names ending on .json9989 displays correctly9990SystemCheck::Orphans::RepositoryCheck9991 #multi_check9992 all orphans9993 prints list of all orphaned namespaces except @hashed9994 few orphans with existing namespace9995 prints list of orphaned namespaces9996 few orphans with existing namespace and parents with same name as orphans9997 prints list of orphaned namespaces ignoring parents with same namespace as orphans9998 no orphans9999 prints an empty list ignoring @hashed10000BulkImports::Common::Pipelines::LabelsPipeline10001 #run10002 imports group labels into destination group and removes tmpdir10003 #load10004 when label is not persisted10005 saves the label10006 when label is missing10007 returns10008Gitlab::Email::Message::InProductMarketing::Team10009 public methods10010 series: 010011 returns value for series10012 #progress10013 on gitlab.com10014 is expected to include "This is email 2 of 4 in the Team series"10015 not on gitlab.com10016 is expected to include "This is email 2 of 4 in the Team series" and "http://localhost/-/profile/notifications"10017 series: 110018 returns value for series10019 #progress10020 on gitlab.com10021 is expected to include "This is email 3 of 4 in the Team series"10022 not on gitlab.com10023 is expected to include "This is email 3 of 4 in the Team series" and "http://localhost/-/profile/notifications"10024 with series 210025 returns value for series10026 #progress10027 on gitlab.com10028 is expected to include "This is email 4 of 4 in the Team series"10029 not on gitlab.com10030 is expected to include "This is email 4 of 4 in the Team series" and "http://localhost/-/profile/notifications"10031Ml::CandidateDetailsPresenter10032 # order random10033 #execute10034 when candidate has metrics, params and artifacts10035 generates the correct params10036 generates the correct metrics10037 generates the correct info10038 when candidate has job10039 generates the correct ci10040 when build user is nil10041 does not include build user info10042 and job is from MR10043 generates the correct ci10044PipelineNotificationWorker10045 #execute10046 calls NotificationService#pipeline_finished when the pipeline exists10047 does nothing when the pipeline does not exist10048 when the user is blocked10049 does nothing10050 behaves like worker with data consistency10051 .get_data_consistency_feature_flag_enabled?10052 returns true10053 .get_data_consistency10054 returns correct data consistency10055RuboCop::Cop::Gitlab::RailsLogger10056 # order random10057 does not flag the use of Rails.logger with a constant that is not Rails10058 flags the use of Rails.logger.warn with a constant receiver10059 flags the use of Rails.logger.fatal with a constant receiver10060 flags the use of Rails.logger.error with a constant receiver10061 flags the use of Rails.logger.debug with a constant receiver10062 does not flag the use of Rails.logger.level10063 does not flag the use of logger with a send receiver10064 flags the use of Rails.logger.info with a constant receiver10065Gitlab::Import::SetAsyncJid10066 .set_jid10067 sets the JID in Redis10068 updates the import JID of the project10069Gitlab::Ci::Build::Releaser10070 #script10071 all nodes10072 generates the script10073 individual nodes10074 node_name: :name, node_value: "Release $CI_COMMIT_SHA", result: "release-cli create --name \"Release $CI_COMMIT_SHA\""10075 generates the script10076 node_name: :description, node_value: "Release-cli $EXTRA_DESCRIPTION", result: "release-cli create --description \"Release-cli $EXTRA_DESCRIPTION\""10077 generates the script10078 node_name: :tag_name, node_value: "release-$CI_COMMIT_SHA", result: "release-cli create --tag-name \"release-$CI_COMMIT_SHA\""10079 generates the script10080 node_name: :tag_message, node_value: "Annotated tag message", result: "release-cli create --tag-message \"Annotated tag message\""10081 generates the script10082 node_name: :ref, node_value: "$CI_COMMIT_SHA", result: "release-cli create --ref \"$CI_COMMIT_SHA\""10083 generates the script10084 node_name: :milestones, node_value: ["m1", "m2", "m3"], result: "release-cli create --milestone \"m1\" --milestone \"m2\" --milestone \"m3\""10085 generates the script10086 node_name: :released_at, node_value: "2020-07-15T08:00:00Z", result: "release-cli create --released-at \"2020-07-15T08:00:00Z\""10087 generates the script10088 node_name: :assets, node_value: {:links=>[{:name=>"asset1", :url=>"https://example.com/assets/1", :link_type=>"other", :filepath=>"/pretty/asset/1"}]}, result: "release-cli create --assets-link \"{\\\"name\\\":\\\"asset1\\\",\\\"url\\\":\\\"https://example.com/assets/1\\\",\\\"link_type\\\":\\\"other\\\",\\\"filepath\\\":\\\"/pretty/asset/1\\\"}\""10089 generates the script10090Projects::CountService10091 .query10092 raises NotImplementedError10093 #relation_for_count10094 calls the class method query with the project id10095 #count10096 returns the number of rows10097 caches the number of rows10098 #refresh_cache10099 refreshes the cache10100 #delete_cache10101 removes the cache10102 #cache_key_name10103 raises NotImplementedError10104 #cache_key10105 returns the cache key as an Array10106projects/pipeline_schedules/_pipeline_schedule10107 taking ownership of schedule10108 when non-owner is signed in10109 non-owner can take ownership of pipeline10110 when owner is signed in10111 owner cannot take ownership of pipeline10112Integrations::Pushover10113 Validations10114 when integration is active10115 is expected to validate that :api_key cannot be empty/falsy10116 is expected to validate that :user_key cannot be empty/falsy10117 is expected to validate that :priority cannot be empty/falsy10118 when integration is inactive10119 is expected not to validate that :api_key cannot be empty/falsy10120 is expected not to validate that :user_key cannot be empty/falsy10121 is expected not to validate that :priority cannot be empty/falsy10122 Execute10123 calls Pushover API10124Gitlab::Plantuml10125 # order random10126 .configure10127 when PlantUML is enabled10128 configures the endpoint URL10129 enables PNG support10130 disables SVG support10131 disables TXT support10132 when PlantUML is disabled10133 configures the endpoint URL10134 enables PNG support10135 disables SVG support10136 disables TXT support10137projects/blob/_viewer.html.haml10138 when the viewer is loaded asynchronously10139 when there is no render error10140 adds a URL to the blob viewer element10141 renders the loading indicator10142 when there is a render error10143 renders the error10144 when the viewer is loaded synchronously10145 when there is no render error10146 prepares the viewer10147 renders the viewer10148 when there is a render error10149 renders the error10150Gitlab::Checks::FileSizeCheck::HookEnvironmentAwareAnyOversizedBlobs10151 # order random10152 #find10153 returns the result from AnyOversizedBlobs10154 with hook env10155 with hook environment10156 returns an emtpy array10157 when the file is over the limit10158 when the blob does not exist in the repo10159 returns an array with the blobs that are over the limit10160 when the blob exists in the repo10161 filters out the blobs in the repo10162Gitlab::HealthChecks::PumaCheck10163 when Puma is not loaded10164 does not provide readiness and metrics10165 when Puma is loaded10166 when stats are missing10167 behaves like with state10168 does provide readiness10169 does provide metrics10170 for Single mode10171 behaves like with state10172 does provide readiness10173 does provide metrics10174 for Cluster mode10175 behaves like with state10176 does provide readiness10177 does provide metrics10178API::Entities::DeployKey10179 #as_json10180 includes basic fields10181 when in FIPS mode10182 is expected not to have key :fingerprint10183Terraform::StatesFinder10184 #execute10185 is expected to contain exactly #<Terraform::State id: 17, project_id: 1429, created_at: "2023-08-13 07:32:06.266334489 +0000", updat...9a29302", name: "state-11", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0> and #<Terraform::State id: 18, project_id: 1429, created_at: "2023-08-13 07:32:06.271601919 +0000", updat...1dde306", name: "state-12", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0>10186 user does not have permission10187 is expected to be empty10188 filtering by name10189 name does not match10190 is expected to be empty10191 name does match10192 is expected to contain exactly #<Terraform::State id: 17, project_id: 1429, created_at: "2023-08-13 07:32:06.266334489 +0000", updat...9a29302", name: "state-11", versioning_enabled: true, deleted_at: nil, activerecord_lock_version: 0>10193Gitlab::Usage::Metrics::Instrumentations::CountSnippetsMetric10194 # order random10195 with a time_frame of 28 days10196 behaves like a correct instrumented metric value10197 has correct value10198 with a timeframe of all10199 behaves like a correct instrumented metric value10200 has correct value10201Gitlab::GithubImport::PageCounter10202 #initialize10203 sets the initial page number to 1 when no value is cached10204 sets the initial page number to the cached value when one is present10205 when gists import10206 uses gists specific key10207 #set10208 overwrites the page number when the given number is greater than the current number10209 does not overwrite the page number when the given number is lower than the current number10210 #expire!10211 expires the current page counter10212BulkImports::Pipeline10213 pipeline attributes10214 getters10215 retrieves class attributes10216 when extractor and loader are defined within the pipeline10217 returns itself when retrieving extractor & loader10218 setters10219 sets class attributes10220 #instantiate10221 when options are present10222 instantiates new object with options10223 when options are missing10224 instantiates new object without options10225 #transformers10226 has instance transform method first to run10227MergeRequestUserMention10228 associations10229 is expected to belong to merge_request required: false10230 is expected to belong to note required: false10231 behaves like has user mentions10232 #has_mentions?10233 when no mentions10234 returns false10235 when mentioned_users_ids not null10236 returns true10237 when mentioned projects10238 returns true10239 when mentioned groups10240 returns true10241Types::ColorType10242 is expected to eq "Color"10243 coerces Color object into hex string10244 coerces an hex string into Color object10245 coerces an named Color into hex string10246 coerces an named color into Color object10247 rejects invalid input10248 rejects nil10249BlobEntity10250 as json10251 contains needed attributes10252Gitlab::GitalyClient::PraefectInfoService10253 #repository_replicas10254 sends an RPC request10255ResourceStateEventPolicy10256 # order random10257 #read_resource_state_event10258 with non-member user10259 does not allow to read event10260 with member user10261 allows to read event for a state change10262SmimeSignatureSettings10263 .parse10264 sets correct default values to disabled10265 when providing custom values10266 sets correct default values to disabled10267 enables smime with default key and cert10268 enables smime with custom key and cert10269Gitlab::Config::Entry::ComposableArray10270 #valid?10271 is valid10272 is invalid10273 is expected not to be valid10274 #compose!10275 composes child entry with configured value10276 composes child entries with configured values10277 #descendants10278 creates descendant nodes10279Ci::Runners::ReconcileExistingRunnerVersionsCronWorker10280 #perform10281 when scheduled by cronjob10282 reschedules itself10283 when self-scheduled10284 is labeled as idempotent10285 performs multiple times sequentially without raising an exception10286 executes the service10287 logs the service result10288Projects::ProjectTopic10289 is expected to be valid10290 associations10291 is expected to belong to project required: false10292 is expected to belong to topic required: false10293Gitlab::RepositorySizeErrorMessage10294 error messages10295 #commit_error10296 returns the correct message10297 #merge_error10298 returns the correct message10299 #push_error10300 with exceeded_limit value10301 returns the correct message10302 without exceeded_limit value10303 returns the correct message10304 #new_changes_error10305 when additional repo storage is available10306 returns the correct message10307 when no additional repo storage is available10308 returns the correct message10309Gitlab::Analytics::CycleAnalytics::Sorting10310 when invalid sorting params are given10311 falls back to end_event DESC sorting10312 sorting end_event10313 direction desc10314 is expected to eq [#<Arel::Nodes::Descending:0x00007d680df5b3e0 @expr=#<struct Arel::Attributes::Attribute relation=#<A...ject_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">>]10315 direction asc10316 is expected to eq [#<Arel::Nodes::Ascending:0x00007d680e593078 @expr=#<struct Arel::Attributes::Attribute relation=#<Ar...ject_id: integer, id: integer, first_contribution: boolean)>, @table_alias=nil>, name="merged_at">>]10317 sorting duration10318 direction desc10319 is expected to eq [#<Arel::Nodes::Descending:0x00007d680fa92fa0 @expr=#<Arel::Nodes::Subtraction:0x00007d680fa93090 @le..., draft: boolean, prepared_at: timestamptz)>, @table_alias=nil>, name="created_at">, @operator=:->>]10320 direction asc10321 is expected to eq [#<Arel::Nodes::Ascending:0x00007d68106edf48 @expr=#<Arel::Nodes::Subtraction:0x00007d68106edf70 @lef..., draft: boolean, prepared_at: timestamptz)>, @table_alias=nil>, name="created_at">, @operator=:->>]10322AnalyticsBuildSerializer10323 when there is a single object provided10324 contains important elements of analyticsBuild10325DependencyProxy::CleanupManifestWorker10326 behaves like dependency_proxy_cleanup_worker10327 #perform_work10328 with no work to do10329 is expected to be nil10330 with work to do10331 deletes the oldest artifact pending destruction based on updated_at10332 #max_running_jobs10333 is expected to eq 510334 #remaining_work_count10335 is expected to eq 310336WorkItems::Widgets::HierarchyService::CreateService10337 # order random10338 #create10339 when invalid params are present10340 behaves like raises a WidgetError10341 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "One or more arguments are invalid: other_parent."10342Ml::ExperimentMetadata10343 # order random10344 associations10345 is expected to belong to experiment required: false10346 uniqueness of name10347 is unique within experiment10348FromIntersect10349 behaves like from set operator10350 #from_intersect10351 selects from the results of the INTERSECT10352 returns empty set when passing empty array10353 supports the use of a custom alias for the sub query10354 supports keeping duplicate rows10355BulkImports::Projects::Pipelines::ProjectFeaturePipeline10356 #run10357 imports project feature10358Gitlab::Metrics::ElasticsearchRackMiddleware10359 #call10360 calls the app10361 records elasticsearch metrics10362 records elasticsearch metrics if an error is raised10363 when there are no elasticsearch requests10364 does not record any metrics10365AnalyticsIssueSerializer10366 when there is a single object provided10367 contains important elements of the issue10368AnalyticsMergeRequestSerializer10369 when there is a single object provided10370 contains important elements of the merge request10371Gitlab::Ci::Config::Entry::Publish10372 # order random10373 .default10374 returns the default value10375 validations10376 when publish config value is correct10377 #config10378 returns the publish directory10379 #valid?10380 is valid10381 when the value has a wrong type10382 reports an error10383Gitlab::Config::Entry::Boolean10384 validations10385 when entry config value is valid10386 #value10387 returns key value10388 #valid?10389 is valid10390 when entry value is not valid10391 #errors10392 saves errors10393BlobLanguageFromGitAttributes10394 #language_from_gitattributes10395 returns return value from gitattribute10396 returns nil if repository is absent10397 returns nil if repository does not exist10398admin/application_settings/_eks10399 when eks_secret_access_key is not set10400 renders an empty password field10401 when eks_secret_access_key is set10402 renders an empty password field10403FutureDateValidator10404 past date10405 is expected not to be valid10406 current date10407 is expected to be valid10408 future date10409 is expected to be valid10410user routing10411 # order random10412 when GitHub OAuth on sign in is cancelled10413 when all required parameters are present10414 behaves like redirecting a legacy path10415 redirects /users/auth?error=access_denied&state=xyz to /projects/new#import_project10416 when one of the required parameters is missing10417 behaves like redirecting a legacy path10418 redirects /users/auth?error=access_denied&state= to /auth10419 when GitHub OAuth on project import is cancelled10420 behaves like redirecting a legacy path10421 redirects /users/auth?error=access_denied&state=xyz to /users/sign_in10422Gitlab::NotifyUponDeath10423 .sidekiq_retries_exhausted10424 notifies the JobWaiter when 3 arguments are given and the last is a String10425 does not notify the JobWaiter when only 2 arguments are given10426 does not notify the JobWaiter when only 1 argument is given10427 does not notify the JobWaiter when the last argument is not a String10428Banzai::Filter::AsciiDocPostProcessingFilter10429 adds class for elements with data-math-style10430 adds class for elements with data-mermaid-style10431 keeps content when no data-math-style found10432MilestonePresenter10433 #milestone_path10434 returns correct path10435Gitlab::Pages::RandomDomain10436 # order random10437 when project path is close to 48 chars10438 behaves like random domain10439 is expected to eq 6310440 when project path is larger than 48 chars10441 behaves like random domain10442 is expected to eq 6310443 when project path is less than 48 chars10444 behaves like random domain10445 is expected to eq 6310446RuboCop::Cop::SidekiqOptionsQueue10447 # order random10448 registers an offense when `sidekiq_options` is used with the `queue` option10449 does not register an offense when `sidekiq_options` is used with another option10450Ci::CodequalityMrDiffReportSerializer10451 #to_json10452 when quality report has degradations10453 matches the schema10454 when quality report has no degradations10455 matches the schema10456RuboCop::Cop::Migration::ReferToIndexByName10457 # order random10458 when in migration10459 when existing indexes are referred to without an explicit name10460 registers an offense10461 when outside migration10462 registers no offenses10463Gitlab::Usage::Metrics::Instrumentations::ServicePingFeaturesMetric10464 usage_ping_features_enabled: true, expected_value: true10465 behaves like a correct instrumented metric value10466 has correct value10467 usage_ping_features_enabled: false, expected_value: false10468 behaves like a correct instrumented metric value10469 has correct value10470Gitlab::GraphqlLogger10471 builds a logger once10472 logging a GraphQL query10473 logs a query from JSON10474MergeRequestBasicEntity10475 has public_merge_status as merge_status10476 #reviewers10477 contains reviewers attributes10478RuboCop::Cop::Migration::AddIndex10479 # order random10480 outside of migration10481 registers no offense10482 in migration10483 registers an offense when add_index is used10484RuboCop::Cop::Scalability::IdempotentWorker10485 # order random10486 adds an offense when not defining idempotent method10487 adds an offense when not defining idempotent method10488Gitlab::GrapeLogging::Loggers::CloudflareLogger10489 #parameters10490 with no Cloudflare headers10491 returns an empty hash10492 with Cloudflare headers10493 returns the correct duration in seconds10494Types::VisibilityPipelineIdTypeEnum10495 # order random10496 exposes all visibility pipeline id types10497 is expected to eq "VisibilityPipelineIdType"10498Sidebars::Groups::SuperSidebarMenus::MonitorMenu10499 # order random10500 defines list of NilMenuItem placeholders10501 has title and sprite_icon10502API::Entities::PlanLimit10503 exposes correct attributes10504 does not expose id and plan_id10505Gitlab::Usage::Metrics::Instrumentations::CountCiRunnersGroupTypeActiveOnlineMetric10506 # order random10507 behaves like a correct instrumented metric value10508 has correct value10509DeployKeys::CreateService10510 creates a deploy key10511Gitlab::SafeDeviceDetector10512 # order random10513 truncates big user agents10514 retains the behavior for normal user agents10515Gitlab::GithubImport::PullRequests::ImportReviewRequestWorker10516 # order random10517 #import10518 imports an pull request review requests10519API::Entities::UserCounts10520 # order random10521 represents user counts10522Types::PermissionTypes::Project10523 is expected to have graphql field :read_environment10524Gitlab::Graphql::QueryAnalyzers::AST::LoggerAnalyzer10525 #result10526 returns the complexity, depth, duration, etc10527Gitlab::ErrorTracking::Processor::ContextPayloadProcessor10528 .call10529 merges the context payload into event payload10530Types::Ci::PipelineTriggerType10531 # order random10532 is expected to have graphql fields :can_access_project, :description, :has_token_exposed, :last_used, :id, :owner, and :token10533Evidences::ReleaseSerializer10534 represents an Evidence::ReleaseEntity entity10535Resolvers::PackagesBaseResolver10536 #resolve10537 throws an error10538Types::MergeRequestReviewStateEnum10539 the correct enum members10540Packages::Rpm::RepositoryMetadata::BuildPrimaryXmlService10541 # order random10542 #execute10543 adds node with required_text_only_attributes10544Bitbucket::Collection10545 iterates paginator10546Gitlab::Kubernetes::Role10547 #generate10548 is expected to eq #<Kubeclient::Resource metadata={:name=>"example-name", :namespace=>"example-namespace"}, rules=[{:ap...>["hello.world"], :resources=>["oil", "diamonds", "coffee"], :verbs=>["say", "do", "walk", "run"]}]>10549Knapsack report was generated. Preview:10551 "spec/models/project_spec.rb": 458.6982090140009,10552 "spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb": 31.07698094400257,10553 "spec/tasks/gitlab/seed/group_seed_rake_spec.rb": 59.16218012900208,10554 "spec/services/groups/update_service_spec.rb": 45.37640283899964,10555 "spec/lib/gitlab/ci/parsers/security/common_spec.rb": 22.24573439100277,10556 "spec/lib/gitlab/bitbucket_server_import/importer_spec.rb": 34.43872314699911,10557 "spec/services/packages/debian/process_package_file_service_spec.rb": 20.90879397500248,10558 "spec/workers/repository_fork_worker_spec.rb": 35.19754679000107,10559 "spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb": 23.02019523600029,10560 "spec/lib/gitlab/git/diff_collection_spec.rb": 5.300373974001559,10561 "spec/models/label_spec.rb": 15.056852762001654,10562 "spec/finders/releases_finder_spec.rb": 11.534095885002898,10563 "spec/services/projects/cleanup_service_spec.rb": 16.67754206599784,10564 "spec/models/commit_range_spec.rb": 18.974694475000433,10565 "spec/finders/members_finder_spec.rb": 14.652021985999454,10566 "spec/models/ml/candidate_spec.rb": 10.34856596499958,10567 "spec/models/trending_project_spec.rb": 21.707814457000495,10568 "spec/lib/banzai/reference_parser/base_parser_spec.rb": 16.192960118001793,10569 "spec/models/integrations/datadog_spec.rb": 6.900581278001482,10570 "spec/lib/gitlab/ci/trace/stream_spec.rb": 3.8634160210021946,10571 "spec/lib/banzai/filter/references/reference_filter_spec.rb": 2.697688776002906,10572 "spec/lib/gitlab/ci/trace/chunked_io_spec.rb": 5.068764564002777,10573 "spec/lib/gitlab/cycle_analytics/permissions_spec.rb": 12.174142152998684,10574 "spec/models/terraform/state_spec.rb": 9.47321084899886,10575 "spec/lib/gitlab/diff/lines_unfolder_spec.rb": 8.327458944000682,10576 "spec/models/hooks/active_hook_filter_spec.rb": 2.463557472001412,10577 "spec/serializers/pipeline_details_entity_spec.rb": 11.555779362999601,10578 "spec/lib/gitlab/utils/sanitize_node_link_spec.rb": 2.1489831159997266,10579 "spec/lib/gitlab/ci/config/entry/need_spec.rb": 2.1797060329990927,10580 "spec/services/upload_service_spec.rb": 6.661240096000256,10581 "spec/lib/gitlab/database/migration_helpers/v2_spec.rb": 3.79574781699921,10582 "spec/graphql/mutations/merge_requests/set_assignees_spec.rb": 9.778125955999712,10583 "spec/graphql/types/merge_request_type_spec.rb": 5.25896005800314,10584 "spec/finders/merge_requests/oldest_per_commit_finder_spec.rb": 10.839925639997091,10585 "spec/lib/api/entities/merge_request_basic_spec.rb": 12.783027649998985,10586 "spec/finders/clusters/kubernetes_namespace_finder_spec.rb": 9.668208697999944,10587 "spec/lib/gitlab/github_import/importer/milestones_importer_spec.rb": 6.292356975001894,10588 "spec/services/security/ci_configuration/sast_create_service_spec.rb": 5.505371021001338,10589 "spec/lib/gitlab/doctor/secrets_spec.rb": 6.803040499999042,10590 "spec/lib/gitlab/usage_data_counters/kubernetes_agent_counter_spec.rb": 1.504275745999621,10591 "spec/graphql/mutations/container_expiration_policies/update_spec.rb": 4.187843273997714,10592 "spec/services/merge_requests/merge_orchestration_service_spec.rb": 6.132110362999811,10593 "spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb": 4.939107632999367,10594 "spec/serializers/issue_sidebar_basic_entity_spec.rb": 5.832085185000324,10595 "spec/models/packages/debian/group_component_file_spec.rb": 1.8715689860000566,10596 "spec/lib/banzai/reference_parser/commit_parser_spec.rb": 4.927853223998682,10597 "spec/models/users_statistics_spec.rb": 3.186918854000396,10598 "spec/lib/gitlab/git/blame_spec.rb": 5.19655602399871,10599 "spec/models/concerns/ci/has_ref_spec.rb": 4.817456926000887,10600 "spec/models/dependency_proxy/manifest_spec.rb": 2.524483524997777,10601 "spec/models/grafana_integration_spec.rb": 4.2870153640033095,10602 "spec/lib/gitlab/ci/config/external/file/remote_spec.rb": 1.9103251519991318,10603 "spec/graphql/mutations/releases/delete_spec.rb": 5.334186730000511,10604 "spec/lib/gitlab/ci/variables/collection/sort_spec.rb": 1.1447550660013803,10605 "spec/lib/gitlab/spamcheck/client_spec.rb": 1.7582148990004498,10606 "spec/models/concerns/project_features_compatibility_spec.rb": 4.594365860997641,10607 "spec/finders/projects/prometheus/alerts_finder_spec.rb": 1.4596369520004373,10608 "spec/graphql/types/base_field_spec.rb": 1.4986873569978343,10609 "spec/lib/gitlab/import_export/shared_spec.rb": 3.828228823000245,10610 "spec/lib/error_tracking/sentry_client/projects_spec.rb": 1.5726567689998774,10611 "spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb": 1.2333446359989466,10612 "spec/services/projects/container_repository/destroy_service_spec.rb": 2.833430630998919,10613 "spec/lib/gitlab/error_tracking/context_payload_generator_spec.rb": 0.8999242219979351,10614 "spec/graphql/mutations/alert_management/create_alert_issue_spec.rb": 3.690508478997799,10615 "spec/models/protected_branch/merge_access_level_spec.rb": 1.351474982999207,10616 "spec/helpers/users/callouts_helper_spec.rb": 2.368856262000918,10617 "spec/lib/mattermost/session_spec.rb": 2.4522386829994502,10618 "spec/tasks/rubocop_rake_spec.rb": 5.478942693996942,10619 "spec/services/system_notes/alert_management_service_spec.rb": 2.02404223999838,10620 "spec/tasks/gitlab/x509/update_rake_spec.rb": 2.780742527000257,10621 "spec/lib/gitlab/import_export/repo_restorer_spec.rb": 4.758906622999348,10622 "spec/tasks/gitlab/background_migrations_rake_spec.rb": 2.0244497089988727,10623 "spec/models/instance_configuration_spec.rb": 2.8991045449984085,10624 "spec/uploaders/gitlab_uploader_spec.rb": 0.8999425830006658,10625 "spec/models/integrations/chat_message/wiki_page_message_spec.rb": 0.5315220619995671,10626 "spec/lib/gitlab/ci/variables/builder/project_spec.rb": 1.5396080120008264,10627 "spec/lib/gitlab/slash_commands/presenters/issue_comment_spec.rb": 0.8034342229984759,10628 "spec/policies/resource_milestone_event_policy_spec.rb": 1.7348308010004985,10629 "spec/lib/sidebars/user_profile/menus/snippets_menu_spec.rb": 0.8054200320002565,10630 "spec/lib/gitlab/ci/config/entry/port_spec.rb": 0.8873421040007088,10631 "spec/lib/api/entities/ml/mlflow/run_spec.rb": 0.9508900860018912,10632 "spec/components/diffs/overflow_warning_component_spec.rb": 1.9541401679998671,10633 "spec/lib/bulk_imports/pipeline/runner_spec.rb": 1.1058337100002973,10634 "spec/lib/gitlab/usage_data_counters/wiki_page_counter_spec.rb": 0.6183038419985678,10635 "spec/lib/slack_markdown_sanitizer_spec.rb": 0.4218507639998279,10636 "spec/lib/gitlab/database/health_status/indicators/autovacuum_active_on_table_spec.rb": 0.4147793949996412,10637 "spec/lib/gitlab/ci/pipeline/chain/sequence_spec.rb": 1.1964038900005107,10638 "spec/models/blob_viewer/readme_spec.rb": 3.85829804000241,10639 "spec/serializers/merge_request_user_entity_spec.rb": 3.198058461999608,10640 "spec/lib/gitlab/lfs_token_spec.rb": 2.187614701997518,10641 "spec/services/bulk_imports/export_service_spec.rb": 1.12663384699772,10642 "spec/lib/banzai/reference_parser/design_parser_spec.rb": 2.6315585740012466,10643 "spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb": 3.545959094000864,10644 "spec/models/concerns/bulk_insert_safe_spec.rb": 1.2320661459998519,10645 "spec/lib/gitlab/ci/config/entry/pull_policy_spec.rb": 0.637774710998201,10646 "spec/lib/gitlab/ci/reports/security/locations/sast_spec.rb": 0.38693375699949684,10647 "spec/lib/banzai/reference_parser/feature_flag_parser_spec.rb": 3.0806807940025465,10648 "spec/services/ci/create_pipeline_service/artifacts_spec.rb": 1.7923143449988856,10649 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb": 2.5090711760021804,10650 "spec/graphql/mutations/container_repositories/destroy_tags_spec.rb": 2.2370526459999382,10651 "spec/lib/gitlab/ci/status/success_spec.rb": 0.3184765949990833,10652 "spec/graphql/resolvers/design_management/design_resolver_spec.rb": 2.3736971619982796,10653 "spec/lib/gitlab/jira/dvcs_spec.rb": 1.4591113310016226,10654 "spec/services/user_project_access_changed_service_spec.rb": 0.38524503799999366,10655 "spec/lib/gitlab/data_builder/feature_flag_spec.rb": 1.5740521990010166,10656 "spec/lib/gitlab/rack_attack/store_spec.rb": 0.5328997319993505,10657 "spec/lib/bulk_imports/projects/pipelines/protected_branches_pipeline_spec.rb": 0.5964518750006391,10658 "spec/lib/gitlab/pipeline_scope_counts_spec.rb": 1.495547037000506,10659 "spec/lib/gitlab/cross_project_access/check_info_spec.rb": 0.7209113419994537,10660 "spec/lib/gitlab/database/migrations/test_background_runner_spec.rb": 1.031064888000401,10661 "spec/services/merge_requests/execute_approval_hooks_service_spec.rb": 2.545812243999535,10662 "spec/lib/atlassian/jira_connect/jwt/symmetric_spec.rb": 0.557989829001599,10663 "spec/views/admin/application_settings/_repository_check.html.haml_spec.rb": 0.5758714969997527,10664 "spec/services/ci/job_token_scope/remove_project_service_spec.rb": 2.045975337001437,10665 "spec/graphql/types/project_invitation_type_spec.rb": 0.2719859200005885,10666 "spec/support_specs/helpers/migrations_helpers_spec.rb": 0.46567015899927355,10667 "spec/lib/gitlab/hook_data/group_builder_spec.rb": 0.5333868519992393,10668 "spec/lib/gitlab/ci/config/entry/services_spec.rb": 0.46585444000083953,10669 "spec/lib/gitlab/pages/deployment_update_spec.rb": 1.898008934000245,10670 "spec/graphql/types/work_item_id_type_spec.rb": 0.6661916570010362,10671 "spec/services/packages/create_event_service_spec.rb": 1.85770694799794,10672 "spec/workers/destroy_pages_deployments_worker_spec.rb": 2.2935397699984605,10673 "spec/lib/sidebars/projects/menus/project_information_menu_spec.rb": 1.4284095840012014,10674 "spec/tooling/danger/customer_success_spec.rb": 0.3890414880006574,10675 "spec/views/admin/application_settings/_package_registry.html.haml_spec.rb": 0.48718220599766937,10676 "spec/scripts/api/get_package_and_test_job_spec.rb": 0.42438020299960044,10677 "spec/lib/gitlab/ci/config/entry/id_token_spec.rb": 0.3768922190029116,10678 "spec/services/emails/destroy_service_spec.rb": 0.42869864399835933,10679 "spec/rubocop/cop/performance/active_record_subtransactions_spec.rb": 0.3287315640009183,10680 "spec/workers/bulk_imports/relation_batch_export_worker_spec.rb": 0.6582160780017148,10681 "spec/serializers/runner_entity_spec.rb": 1.5728534789996047,10682 "spec/lib/gitlab/ci/config/normalizer/number_strategy_spec.rb": 0.647146209001221,10683 "spec/lib/gitlab/github_import/importer/diff_notes_importer_spec.rb": 0.4000214869993215,10684 "spec/services/award_emojis/collect_user_emoji_service_spec.rb": 1.8525297779997345,10685 "spec/graphql/resolvers/issue_status_counts_resolver_spec.rb": 1.493551966999803,10686 "spec/rubocop/cop/gitlab/predicate_memoization_spec.rb": 0.30615022699930705,10687 "spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb": 1.0805125419974502,10688 "spec/lib/gitlab/safe_request_purger_spec.rb": 0.2787435899990669,10689 "spec/workers/gitlab/github_import/stage/import_base_data_worker_spec.rb": 0.5587224789996981,10690 "spec/graphql/types/release_asset_link_input_type_spec.rb": 0.2283605249976972,10691 "spec/lib/gitlab/unicode_spec.rb": 0.575131607001822,10692 "spec/finders/packages/package_file_finder_spec.rb": 1.047298536002927,10693 "spec/services/resource_events/merge_into_notes_service_spec.rb": 1.411544316997606,10694 "spec/models/blob_viewer/podspec_spec.rb": 0.17216678100157878,10695 "spec/lib/gitlab/ci/build/policy_spec.rb": 0.27053523999711615,10696 "spec/serializers/accessibility_reports_comparer_serializer_spec.rb": 0.20142121800017776,10697 "spec/workers/design_management/copy_design_collection_worker_spec.rb": 1.226775416998862,10698 "spec/serializers/merge_request_sidebar_extras_entity_spec.rb": 1.2070441380019474,10699 "spec/graphql/types/packages/nuget/dependency_link_metdatum_type_spec.rb": 0.15857515199968475,10700 "spec/graphql/types/projects/fork_details_type_spec.rb": 0.19204516900208546,10701 "spec/services/packages/nuget/extract_metadata_file_service_spec.rb": 0.6997317440000188,10702 "spec/presenters/packages/helm/index_presenter_spec.rb": 0.8545582970000396,10703 "spec/rubocop/cop/avoid_route_redirect_leading_slash_spec.rb": 0.20291222800005926,10704 "spec/presenters/deploy_key_presenter_spec.rb": 0.21459694700024556,10705 "spec/views/projects/tree/show.html.haml_spec.rb": 1.2556508230009058,10706 "spec/lib/system_check/orphans/repository_check_spec.rb": 1.022493858999951,10707 "spec/lib/bulk_imports/common/pipelines/labels_pipeline_spec.rb": 0.9741442039994581,10708 "spec/lib/gitlab/email/message/in_product_marketing/team_spec.rb": 0.4375583420005569,10709 "spec/presenters/ml/candidate_details_presenter_spec.rb": 0.8401576489995932,10710 "spec/workers/pipeline_notification_worker_spec.rb": 0.8661777449997317,10711 "spec/rubocop/cop/gitlab/rails_logger_spec.rb": 0.4422233210025297,10712 "spec/lib/gitlab/import/set_async_jid_spec.rb": 0.8463013780019537,10713 "spec/lib/gitlab/ci/build/releaser_spec.rb": 0.405485936000332,10714 "spec/services/projects/count_service_spec.rb": 0.4794745779981895,10715 "spec/views/projects/pipeline_schedules/_pipeline_schedule.html.haml_spec.rb": 1.2267367160020513,10716 "spec/models/integrations/pushover_spec.rb": 0.5070532350000576,10717 "spec/lib/gitlab/plantuml_spec.rb": 0.469277439002326,10718 "spec/views/projects/blob/_viewer.html.haml_spec.rb": 0.5690633279991744,10719 "spec/lib/gitlab/checks/file_size_check/hook_environment_aware_any_oversized_blobs_spec.rb": 0.735664830001042,10720 "spec/lib/gitlab/health_checks/puma_check_spec.rb": 0.43507249200047227,10721 "spec/lib/api/entities/deploy_key_spec.rb": 0.5401246519977576,10722 "spec/finders/terraform/states_finder_spec.rb": 0.7359774889991968,10723 "spec/lib/gitlab/usage/metrics/instrumentations/count_snippets_metric_spec.rb": 0.9875598629987508,10724 "spec/lib/gitlab/github_import/page_counter_spec.rb": 0.36115141100162873,10725 "spec/lib/bulk_imports/pipeline_spec.rb": 0.30400101600025664,10726 "spec/models/user_mentions/merge_request_user_mention_spec.rb": 0.31841243600138114,10727 "spec/graphql/types/color_type_spec.rb": 0.3883145270010573,10728 "spec/serializers/blob_entity_spec.rb": 0.9601403859996935,10729 "spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb": 0.9167869199991401,10730 "spec/policies/resource_state_event_policy_spec.rb": 0.6929233450027823,10731 "spec/config/smime_signature_settings_spec.rb": 0.2571287520004262,10732 "spec/lib/gitlab/config/entry/composable_array_spec.rb": 0.283253349000006,10733 "spec/workers/ci/runners/reconcile_existing_runner_versions_cron_worker_spec.rb": 0.2991092070005834,10734 "spec/models/projects/project_topic_spec.rb": 0.46857015999921714,10735 "spec/lib/gitlab/repository_size_error_message_spec.rb": 0.3141449150025437,10736 "spec/lib/gitlab/analytics/cycle_analytics/sorting_spec.rb": 0.38580498800001806,10737 "spec/serializers/analytics_build_serializer_spec.rb": 0.6774427569980617,10738 "spec/workers/dependency_proxy/cleanup_manifest_worker_spec.rb": 0.4613236199984385,10739 "spec/services/work_items/widgets/hierarchy_service/create_service_spec.rb": 0.5961817349998455,10740 "spec/models/ml/experiment_metadata_spec.rb": 0.45077131099969847,10741 "spec/models/concerns/from_intersect_spec.rb": 0.2565789520012913,10742 "spec/lib/bulk_imports/projects/pipelines/project_feature_pipeline_spec.rb": 0.4903661969983659,10743 "spec/lib/gitlab/metrics/elasticsearch_rack_middleware_spec.rb": 0.24170722399867373,10744 "spec/serializers/analytics_issue_serializer_spec.rb": 0.5275540629991156,10745 "spec/serializers/analytics_merge_request_serializer_spec.rb": 0.596017824998853,10746 "spec/lib/gitlab/ci/config/entry/publish_spec.rb": 0.27522013999987394,10747 "spec/lib/gitlab/config/entry/boolean_spec.rb": 0.23005790499883005,10748 "spec/models/concerns/blob_language_from_git_attributes_spec.rb": 0.2480992029995832,10749 "spec/views/admin/application_settings/_eks.html.haml_spec.rb": 0.3186578749991895,10750 "spec/validators/future_date_validator_spec.rb": 0.22211623600014718,10751 "spec/routing/user_routing_spec.rb": 1.1699329029979708,10752 "spec/workers/concerns/gitlab/notify_upon_death_spec.rb": 0.23734269399938057,10753 "spec/lib/banzai/filter/ascii_doc_post_processing_filter_spec.rb": 0.21921082599874353,10754 "spec/presenters/milestone_presenter_spec.rb": 0.44362368200017954,10755 "spec/lib/gitlab/pages/random_domain_spec.rb": 0.22316672599845333,10756 "spec/rubocop/cop/sidekiq_options_queue_spec.rb": 0.2756547409990162,10757 "spec/serializers/ci/codequality_mr_diff_report_serializer_spec.rb": 0.1967991390010866,10758 "spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb": 0.2080992379997042,10759 "spec/lib/gitlab/usage/metrics/instrumentations/service_ping_features_metric_spec.rb": 0.20458987800157047,10760 "spec/lib/gitlab/graphql_logger_spec.rb": 0.18440496000039275,10761 "spec/serializers/merge_request_basic_entity_spec.rb": 0.22027817600246635,10762 "spec/rubocop/cop/migration/add_index_spec.rb": 0.19732585800011293,10763 "spec/rubocop/cop/scalability/idempotent_worker_spec.rb": 0.19343160800053738,10764 "spec/lib/gitlab/grape_logging/loggers/cloudflare_logger_spec.rb": 0.18234085099902586,10765 "spec/graphql/types/visibility_pipeline_id_type_enum_spec.rb": 0.1831467000010889,10766 "spec/lib/sidebars/groups/super_sidebar_menus/monitor_menu_spec.rb": 0.1874030090002634,10767 "spec/lib/api/entities/plan_limit_spec.rb": 0.21137130700299167,10768 "spec/lib/gitlab/usage/metrics/instrumentations/count_ci_runners_group_type_active_online_metric_spec.rb": 0.3111517260003893,10769 "spec/services/deploy_keys/create_service_spec.rb": 0.2568527620023815,10770 "spec/lib/gitlab/safe_device_detector_spec.rb": 0.1944939989989507,10771 "spec/workers/gitlab/github_import/pull_requests/import_review_request_worker_spec.rb": 0.17046497100091074,10772 "spec/lib/api/entities/user_counts_spec.rb": 0.1611153829981049,10773 "spec/graphql/types/permission_types/project_spec.rb": 0.1634506619993772,10774 "spec/lib/gitlab/graphql/query_analyzers/ast/logger_analyzer_spec.rb": 0.1601441619968682,10775 "spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb": 0.15795099299793947,10776 "spec/graphql/types/ci/pipeline_trigger_type_spec.rb": 0.1579950830018788,10777 "spec/serializers/evidences/release_serializer_spec.rb": 0.16957318200002192,10778 "spec/graphql/resolvers/packages_base_resolver_spec.rb": 0.1620549419967574,10779 "spec/graphql/types/merge_request_review_state_enum_spec.rb": 0.19322767899939208,10780 "spec/services/packages/rpm/repository_metadata/build_primary_xml_service_spec.rb": 0.15923948300041957,10781 "spec/lib/bitbucket/collection_spec.rb": 0.15683053299653693,10782 "spec/lib/gitlab/kubernetes/role_spec.rb": 0.1571901930001331510784Knapsack global time execution for tests: 20m 33s10785Pending: (Failures listed here are expected and do not affect your suite's status)10786 1) Ml::Candidate modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank10787 # No reason given10788 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:4910789 2) Ml::Candidate modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank10790 # No reason given10791 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:5710792 3) Gitlab::Database::MigrationHelpers::V2#truncate_tables! with single database executes a TRUNCATE statement10793 # Skipping because database ci exists10794 # ./spec/lib/gitlab/database/migration_helpers/v2_spec.rb:49110795 4) gitlab:background_migrations namespace rake tasks finalize when multiple database feature is enabled ignores geo10796 # Skipping because ci is shared or doesn't not exist10797 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:7110798 5) gitlab:background_migrations namespace rake tasks finalize when multiple database feature is enabled without the proper arguments exits without finalizing the migration10799 # Skipping because ci is shared or doesn't not exist10800 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:7910801 6) gitlab:background_migrations namespace rake tasks finalize when multiple database feature is enabled with the proper arguments finalizes the matching migration10802 # Skipping because ci is shared or doesn't not exist10803 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:9010804 7) gitlab:background_migrations namespace rake tasks finalize when multiple database feature is enabled when database name is not passed aborts the rake task10805 # Skipping because ci is shared or doesn't not exist10806 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:9910807 8) gitlab:background_migrations namespace rake tasks status when multiple databases are configured with two connections sharing the same database skips the shared database10808 # Skipping because database ci exists10809 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:15410810 9) gitlab:background_migrations namespace rake tasks status when multiple databases are configured with two connections sharing the same database ignores geo10811 # Skipping because database ci exists10812 # ./spec/tasks/gitlab/background_migrations_rake_spec.rb:16210813 10) MergeRequestUserEntity#as_json performance is linear in the number of merge requests10815 Failure/Error:10816 expect do10817 a = described_class.new(user_a, request: request, merge_request: merge_request_b)10818 b = described_class.new(user_b, request: request, merge_request: merge_request_b)10820 a.as_json10821 b.as_json10822 end.not_to exceed_query_limit(baseline)10823 Expected a maximum of 10 queries, got 20:10824 Query Diff:10825 -----------10826 SELECT "users".* FROM "users"...10827 -- (expected: 1, got: 0)10828 WHERE "users"."id" = 1446 LIMIT 110829 SELECT MAX("project_authorizations"."access_level") AS "maximum_access_level", "project_authorizations"."user_id" AS "project_authorizations_user_id" FROM "project_authorizations"...10830 -- (expected: 4, got: 0)10831 WHERE "project_authorizations"."project_id" = 1349 AND "project_authorizations"."user_id" = 1449 GROUP BY "project_authorizations"."user_id"10832 -- (expected: 3, got: 0)10833 WHERE "project_authorizations"."project_id" = 1349 AND "project_authorizations"."user_id" = 1446 GROUP BY "project_authorizations"."user_id"10834 -- (expected: 0, got: 4)10835 WHERE "project_authorizations"."project_id" = 1350 AND "project_authorizations"."user_id" = 1449 GROUP BY "project_authorizations"."user_id"10836 -- (expected: 0, got: 6)10837 WHERE "project_authorizations"."project_id" = 1350 AND "project_authorizations"."user_id" = 1446 GROUP BY "project_authorizations"."user_id"10838 -- (expected: 0, got: 4)10839 WHERE "project_authorizations"."project_id" = 1350 AND "project_authorizations"."user_id" = 1450 GROUP BY "project_authorizations"."user_id"10840 SELECT "merge_requests".* FROM "merge_requests"...10841 -- (expected: 1, got: 0)10842 WHERE "merge_requests"."source_project_id" = 1349 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'10843 -- (expected: 0, got: 2)10844 WHERE "merge_requests"."source_project_id" = 1350 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'10845 SELECT "merge_request_reviewers".* FROM "merge_request_reviewers"...10846 -- (expected: 1, got: 0)10847 WHERE "merge_request_reviewers"."merge_request_id" = 99 AND "merge_request_reviewers"."user_id" = 1449 LIMIT 110848 -- (expected: 0, got: 1)10849 WHERE "merge_request_reviewers"."merge_request_id" = 100 AND "merge_request_reviewers"."user_id" = 1449 LIMIT 110850 -- (expected: 0, got: 1)10851 WHERE "merge_request_reviewers"."merge_request_id" = 100 AND "merge_request_reviewers"."user_id" = 1450 LIMIT 110852 SELECT "protected_branches".* FROM ((SELECT "protected_branches".* FROM "protected_branches"...10853 -- (expected: 0, got: 1)10854 WHERE "protected_branches"."project_id" = 1350)) protected_branches10855 SELECT "approvals".* FROM "approvals"...10856 -- (expected: 0, got: 1)10857 WHERE "approvals"."merge_request_id" = 10010858 # ./spec/serializers/merge_request_user_entity_spec.rb:71:in `block (4 levels) in <top (required)>'10859 # ./spec/spec_helper.rb:448:in `block (3 levels) in <top (required)>'10860 # ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'10861 # ./spec/spec_helper.rb:439:in `block (2 levels) in <top (required)>'10862 # ./spec/spec_helper.rb:435:in `block (3 levels) in <top (required)>'10863 # ./lib/gitlab/application_context.rb:66:in `with_raw_context'10864 # ./spec/spec_helper.rb:435:in `block (2 levels) in <top (required)>'10865 # ./spec/spec_helper.rb:266:in `block (2 levels) in <top (required)>'10866 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'10867 # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'10868 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'10869 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'10870 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'10871 11) MigrationsHelpers#active_record_base ci database not configured returns the main base model10872 # Skipping because some of the extra databases [:ci] are setup10873 # ./spec/support_specs/helpers/migrations_helpers_spec.rb:3610874 12) MigrationsHelpers#table ci database not configured creates a class based on main base model10875 # Skipping because some of the extra databases [:ci] are setup10876 # ./spec/support_specs/helpers/migrations_helpers_spec.rb:6810877Finished in 20 minutes 37 seconds (files took 1 minute 18.55 seconds to load)108784422 examples, 0 failures, 12 pending10879Randomized with seed 1228210880[TEST PROF INFO] Time spent in factories: 11:44.187 (55.25% of total time)10881RSpec exited with 0.10882No examples to retry, congrats! 10883 Running after_script 10884Running after script...10885$ echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results"10910Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-protected due to policy10912Uploading artifacts...10913WARNING: auto_explain/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/edith007/gitlab) 10914coverage/: found 5 matching artifact files and directories 10915WARNING: crystalball/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/edith007/gitlab) 10916deprecations/: found 3 matching artifact files and directories 10917knapsack/: found 4 matching artifact files and directories 10918rspec/: found 10 matching artifact files and directories 10919WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/edith007/gitlab) 10920log/*.log: found 21 matching artifact files and directories 10921WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4863614011/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com10922WARNING: Retrying... context=artifacts-uploader error=request redirected10923Uploading artifacts as "archive" to coordinator... 201 Created id=4863614011 responseStatus=201 Created token=64_TKCzp10924Uploading artifacts...10925rspec/rspec-*.xml: found 1 matching artifact files and directories 10926WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4863614011/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com10927WARNING: Retrying... context=artifacts-uploader error=request redirected10928Uploading artifacts as "junit" to coordinator... 201 Created id=4863614011 responseStatus=201 Created token=64_TKCzp10930Job succeeded