rspec unit pg12 22/28
Passed Started
by
@ahegyi
Adam Hegyi
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on blue-1.private.runners-manager.gitlab.com/gitlab.com/gitlab-org 1zzGUpzq3 feature flags: FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:56e1d6dc77b242b5f4f91e7319f0740f7ab8bdf41023fd5d703f412ac87976f5 for postgres:12 with digest postgres@sha256:93fd73e2322241eec204dac54b316bf429670ff6e5292e16f9e2fd3a3374a713 ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:83c577984741ab5b2e78640e0524852998d539ea3961e6d56680f336371f5c83 for redis:6.0-alpine with digest redis@sha256:459e91c5fe54134da1601ef85a4d9bc40c953862737fdfbe8f3c2b2a3eb6b20b ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:5c5404ecc69273636c3ef49645be715ef30ea99e51ad146a2efbeac2a1875f9c for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:b032fe79dc0bf3ebfaeb610c82eacc500fbd0ec6e01889444011cf5a72b4135d ...18Running on runner-1zzgupzq-project-278964-concurrent-0 via runner-1zzgupzq-private-1667568873-238ff2b7...20$ eval "$CI_PRE_CLONE_SCRIPT"21Fetching changes with git depth set to 20...22Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/23Created fresh repository.24remote: Enumerating objects: 135178, done. 25remote: Counting objects: 100% (135178/135178), done. 26remote: Compressing objects: 100% (85462/85462), done. 27remote: Total 135178 (delta 62673), reused 94880 (delta 44892), pack-reused 0 28Receiving objects: 100% (135178/135178), 115.46 MiB | 33.96 MiB/s, done.29Resolving deltas: 100% (62673/62673), done.31 * [new ref] refs/pipelines/685831713 -> refs/pipelines/68583171332 * [new branch] master -> origin/master33Checking out 58c4ca27 as master...34Skipping Git submodules setup35$ git remote set-url origin "${CI_REPOSITORY_URL}"37Checking cache for ruby-gems-debian-bullseye-ruby-2.7-16...38cache.zip is up to date 39Successfully extracted cache40Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-16...41cache.zip is up to date 42Successfully extracted cache44Downloading artifacts for compile-test-assets (3275962690)...45Downloading artifacts from coordinator... ok id=3275962690 responseStatus=200 OK token=9J-mdPTa46Downloading artifacts for detect-tests (3275962698)...47Downloading artifacts from coordinator... ok id=3275962698 responseStatus=200 OK token=9J-mdPTa48Downloading artifacts for retrieve-tests-metadata (3275962699)...49Downloading artifacts from coordinator... ok id=3275962699 responseStatus=200 OK token=9J-mdPTa50Downloading artifacts for setup-test-env (3275962693)...51Downloading artifacts from coordinator... ok id=3275962693 responseStatus=200 OK token=9J-mdPTa53Using docker image sha256:5c5404ecc69273636c3ef49645be715ef30ea99e51ad146a2efbeac2a1875f9c for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:b032fe79dc0bf3ebfaeb610c82eacc500fbd0ec6e01889444011cf5a72b4135d ...54$ echo $FOSS_ONLY55$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb56$ export GOPATH=$CI_PROJECT_DIR/.go57$ mkdir -p $GOPATH58$ source scripts/utils.sh59$ source scripts/prepare_build.sh676Using decomposed database config (config/database.yml.decomposed-postgresql)677$ setup_db_user_only678CREATE ROLE679GRANT680==> 'setup_db_user_only' succeeded in 1 seconds.681$ bundle exec rake db:drop db:create db:schema:load db:migrate682Dropped database 'gitlabhq_test'683Dropped database 'gitlabhq_test_ci'684Dropped database 'gitlabhq_geo_test'685Created database 'gitlabhq_test'686Created database 'gitlabhq_test_ci'687Created database 'gitlabhq_geo_test'688==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 35 seconds.689$ setup_db_praefect690SELECT pg_catalog.set_config('search_path', '', false);691CREATE DATABASE praefect_test ENCODING 'UTF8';692==> 'setup_db_praefect' succeeded in 0 seconds.693$ source ./scripts/rspec_helpers.sh694$ run_timed_command "gem install knapsack --no-document"695$ gem install knapsack --no-document696Successfully installed knapsack-4.0.06971 gem installed698==> 'gem install knapsack --no-document' succeeded in 1 seconds.699$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"813$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"814SKIP_FLAKY_TESTS_AUTOMATICALLY: true815RETRY_FAILED_TESTS_IN_NEW_PROCESS: true816KNAPSACK_GENERATE_REPORT: true817FLAKY_RSPEC_GENERATE_REPORT: true818KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,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,components}{,/**/}*_spec.rb819KNAPSACK_LOG_LEVEL: debug820KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_22_28_report.json821FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json822FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_22_28_report.json823NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_22_28_report.json824SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_22_28_report.txt825RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_22_28_report.txt826CRYSTALBALL: 827Knapsack node specs:828spec/scripts/lib/glfm/update_example_snapshots_spec.rb829spec/models/repository_spec.rb830spec/models/project_team_spec.rb831spec/models/clusters/applications/knative_spec.rb832spec/policies/environment_policy_spec.rb833spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb834spec/models/clusters/applications/crossplane_spec.rb835spec/serializers/group_child_entity_spec.rb836spec/finders/admin/projects_finder_spec.rb837spec/routing/routing_spec.rb838spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb839spec/presenters/merge_request_presenter_spec.rb840spec/services/git/wiki_push_service_spec.rb841spec/graphql/resolvers/board_list_issues_resolver_spec.rb842spec/services/issues/import_csv_service_spec.rb843spec/models/ability_spec.rb844spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_with_corrected_regex_spec.rb845spec/models/serverless/domain_cluster_spec.rb846spec/services/merge_requests/link_lfs_objects_service_spec.rb847spec/helpers/merge_requests_helper_spec.rb848spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb849spec/models/concerns/approvable_spec.rb850spec/lib/gitlab/ci/templates/npm_spec.rb851spec/services/projects/after_rename_service_spec.rb852spec/lib/gitlab/ci/ansi2json/style_spec.rb853spec/models/integrations/prometheus_spec.rb854spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb855spec/lib/gitlab/background_migration/backfill_namespace_id_for_project_route_spec.rb856spec/services/merge_requests/request_review_service_spec.rb857spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb858spec/models/ci/job_token/project_scope_link_spec.rb859spec/lib/gitlab/search/abuse_detection_spec.rb860spec/lib/gitlab/ci/badge/release/metadata_spec.rb861spec/initializers/load_balancing_spec.rb862spec/models/project_snippet_spec.rb863spec/lib/gitlab/background_migration/remove_self_managed_wiki_notes_spec.rb864spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb865spec/services/ci/job_artifacts/create_service_spec.rb866spec/lib/gitlab/file_finder_spec.rb867spec/workers/packages/nuget/extraction_worker_spec.rb868spec/finders/context_commits_finder_spec.rb869spec/workers/merge_requests/create_pipeline_worker_spec.rb870spec/lib/gitlab/diff/file_collection/commit_spec.rb871spec/models/ci/resource_spec.rb872spec/models/pool_repository_spec.rb873spec/workers/ci/archive_traces_cron_worker_spec.rb874spec/serializers/merge_request_serializer_spec.rb875spec/lib/gitlab/database/migrations/constraints_helpers_spec.rb876spec/services/environments/auto_stop_service_spec.rb877spec/lib/gitlab/email/receiver_spec.rb878spec/tasks/gettext_rake_spec.rb879spec/services/projects/move_project_members_service_spec.rb880spec/services/merge_requests/reload_merge_head_diff_service_spec.rb881spec/models/integrations/base_chat_notification_spec.rb882spec/models/concerns/participable_spec.rb883spec/finders/user_group_notification_settings_finder_spec.rb884spec/workers/ci/pending_builds/update_project_worker_spec.rb885spec/lib/gitlab/import_export/fork_spec.rb886spec/helpers/projects/pages_helper_spec.rb887spec/models/integrations/packagist_spec.rb888spec/lib/gitlab/gl_repository/repo_type_spec.rb889spec/lib/gitlab/ci/build/step_spec.rb890spec/serializers/discussion_entity_spec.rb891spec/lib/gitlab/serverless/service_spec.rb892spec/models/note_diff_file_spec.rb893spec/helpers/boards_helper_spec.rb894spec/lib/gitlab/ci/config/normalizer_spec.rb895spec/graphql/mutations/incident_management/timeline_event/update_spec.rb896spec/lib/sidebars/projects/menus/monitor_menu_spec.rb897spec/models/board_spec.rb898spec/lib/gitlab/omniauth_initializer_spec.rb899spec/services/milestones/closed_issues_count_service_spec.rb900spec/policies/deploy_key_policy_spec.rb901spec/models/prometheus_alert_event_spec.rb902spec/workers/packages/cleanup_package_registry_worker_spec.rb903spec/lib/banzai/reference_parser/design_parser_spec.rb904spec/lib/banzai/filter/emoji_filter_spec.rb905spec/lib/gitlab/audit/type/definition_spec.rb906spec/lib/gitlab/mail_room/mail_room_spec.rb907spec/serializers/deployment_serializer_spec.rb908spec/lib/gitlab/ci/config/external/file/remote_spec.rb909spec/services/repository_archive_clean_up_service_spec.rb910spec/services/spam/akismet_service_spec.rb911spec/workers/environments/auto_delete_cron_worker_spec.rb912spec/graphql/resolvers/group_members_resolver_spec.rb913spec/serializers/merge_request_user_entity_spec.rb914spec/services/packages/composer/version_parser_service_spec.rb915spec/graphql/types/base_argument_spec.rb916spec/services/web_hooks/log_destroy_service_spec.rb917spec/services/clusters/aws/provision_service_spec.rb918spec/lib/bitbucket_server/representation/pull_request_spec.rb919spec/workers/destroy_pages_deployments_worker_spec.rb920spec/lib/gitlab/process_management_spec.rb921spec/lib/gitlab/endpoint_attributes_spec.rb922spec/lib/gitlab/ci/pipeline/logger_spec.rb923spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb924spec/helpers/recaptcha_helper_spec.rb925spec/workers/merge_requests/execute_approval_hooks_worker_spec.rb926spec/workers/migrate_external_diffs_worker_spec.rb927spec/serializers/ci/dag_job_group_entity_spec.rb928spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb929spec/components/pajamas/avatar_component_spec.rb930spec/lib/api/helpers/packages_manager_clients_helpers_spec.rb931spec/tasks/gitlab/password_rake_spec.rb932spec/models/preloaders/merge_request_diff_preloader_spec.rb933spec/lib/gitlab/usage_data/topology_spec.rb934spec/models/packages/dependency_spec.rb935spec/services/ml/experiment_tracking/experiment_repository_spec.rb936spec/workers/projects/import_export/relation_export_worker_spec.rb937spec/lib/gitlab/usage/metrics/query_spec.rb938spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb939spec/models/packages/sem_ver_spec.rb940spec/services/protected_branches/create_service_spec.rb941spec/lib/gitlab/request_endpoints_spec.rb942spec/views/projects/pipelines/show.html.haml_spec.rb943spec/models/issue/email_spec.rb944spec/services/boards/create_service_spec.rb945spec/initializers/settings_spec.rb946spec/models/clusters/agents/group_authorization_spec.rb947spec/lib/api/helpers/related_resources_helpers_spec.rb948spec/lib/gitlab/reactive_cache_set_cache_spec.rb949spec/experiments/require_verification_for_namespace_creation_experiment_spec.rb950spec/lib/gitlab/ci/variables/builder/release_spec.rb951spec/services/projects/lfs_pointers/lfs_import_service_spec.rb952spec/lib/bitbucket_server/connection_spec.rb953spec/models/integrations/chat_message/merge_message_spec.rb954spec/lib/gitlab/ci/status/build/preparing_spec.rb955spec/lib/gitlab/github_import/importer/pull_request_merged_by_importer_spec.rb956spec/serializers/import/manifest_provider_repo_entity_spec.rb957spec/validators/qualified_domain_array_validator_spec.rb958spec/graphql/mutations/customer_relations/contacts/update_spec.rb959spec/initializers/net_http_patch_spec.rb960spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb961spec/lib/gitlab/sql/cte_spec.rb962spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb963spec/db/docs_spec.rb964spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb965spec/serializers/merge_request_for_pipeline_entity_spec.rb966spec/lib/gitlab/ci/status/bridge/common_spec.rb967spec/models/users/callout_spec.rb968spec/lib/gitlab/import/import_failure_service_spec.rb969spec/models/wiki_directory_spec.rb970spec/lib/version_check_spec.rb971spec/policies/alert_management/http_integration_policy_spec.rb972spec/lib/gitlab/graphql/pagination/array_connection_spec.rb973spec/services/google_cloud/fetch_google_ip_list_service_spec.rb974spec/lib/gitlab/database/background_migration/health_status/indicators/write_ahead_log_spec.rb975spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb976spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb977spec/lib/gitlab/word_diff/segments/diff_hunk_spec.rb978spec/services/spam/ham_service_spec.rb979spec/rubocop/cop/database/rescue_statement_timeout_spec.rb980spec/lib/gitlab/ci/pipeline/expression/token_spec.rb981spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb982spec/lib/gitlab/utils/gzip_spec.rb983spec/services/projects/container_repository/destroy_service_spec.rb984spec/rubocop/cop/avoid_keyword_arguments_in_sidekiq_workers_spec.rb985spec/lib/gitlab/service_desk_spec.rb986spec/services/google_cloud/enable_cloudsql_service_spec.rb987spec/graphql/resolvers/alert_management/alert_status_counts_resolver_spec.rb988spec/lib/banzai/pipeline_spec.rb989spec/lib/gitlab/graphql/calls_gitaly/field_extension_spec.rb990spec/workers/schedule_merge_request_cleanup_refs_worker_spec.rb991spec/initializers/validate_puma_spec.rb992spec/lib/gitlab/phabricator_import/worker_state_spec.rb993spec/initializers/net_http_response_patch_spec.rb994spec/lib/gitlab/database/load_balancing/srv_resolver_spec.rb995spec/rubocop/cop/prefer_class_methods_over_module_spec.rb996spec/models/concerns/from_except_spec.rb997spec/lib/gitlab/git/conflict/file_spec.rb998spec/services/applications/create_service_spec.rb999spec/validators/future_date_validator_spec.rb1000spec/lib/gitlab/pagination/keyset/cursor_based_request_context_spec.rb1001spec/lib/gitlab/middleware/query_analyzer_spec.rb1002spec/rubocop/cop/database/multiple_databases_spec.rb1003spec/rubocop/cop/performance/ar_count_each_spec.rb1004spec/serializers/feature_flag_summary_entity_spec.rb1005spec/lib/gitlab/health_checks/master_check_spec.rb1006spec/lib/gitlab/config/entry/simplifiable_spec.rb1007spec/graphql/types/ci/runner_type_spec.rb1008spec/rubocop/cop/migration/versioned_migration_class_spec.rb1009spec/serializers/group_link/group_link_entity_spec.rb1010spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb1011spec/lib/gitlab/import_export/duration_measuring_spec.rb1012spec/initializers/100_patch_omniauth_oauth2_spec.rb1013spec/lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp_spec.rb1014spec/lib/api/validations/validators/git_sha_spec.rb1015spec/lib/gitlab/patch/database_config_spec.rb1016spec/rubocop/cop/qa/element_with_pattern_spec.rb1017spec/workers/gitlab/github_import/stage/import_protected_branches_worker_spec.rb1018spec/graphql/types/incident_management/timeline_event_type_spec.rb1019spec/graphql/types/tree/tree_entry_type_spec.rb1020spec/workers/repository_check/clear_worker_spec.rb1021spec/models/concerns/cross_database_modification_spec.rb1022spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb1023spec/workers/users/create_statistics_worker_spec.rb1024spec/graphql/resolvers/package_details_resolver_spec.rb1025spec/graphql/types/ci/runner_platform_type_spec.rb1026spec/graphql/types/root_storage_statistics_type_spec.rb1027spec/lib/gitlab/with_request_store_spec.rb1028spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb1029spec/graphql/types/ci/recent_failures_type_spec.rb1030spec/initializers/hashie_mash_permitted_patch_spec.rb1031spec/lib/banzai/pipeline/emoji_pipeline_spec.rb1032spec/services/gravatar_service_spec.rb1033spec/lib/gitlab/sidekiq_middleware/instrumentation_logger_spec.rb1034spec/db/development/import_common_metrics_spec.rb1035spec/graphql/types/dependency_proxy/blob_type_spec.rb1036spec/lib/gitlab/cluster/puma_worker_killer_observer_spec.rb1037spec/models/concerns/runners_token_prefixable_spec.rb1038spec/lib/gitlab/error_tracking/log_formatter_spec.rb1039spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb1040spec/serializers/namespace_serializer_spec.rb1041spec/graphql/types/permission_types/ci/job_spec.rb1042spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb1043spec/lib/gitlab/action_cable/request_store_callbacks_spec.rb1044spec/graphql/types/ci/pipeline_status_enum_spec.rb1045Filter specs:1046Running specs:1047Running all node tests without filter1048spec/scripts/lib/glfm/update_example_snapshots_spec.rb1049spec/models/repository_spec.rb1050spec/models/project_team_spec.rb1051spec/models/clusters/applications/knative_spec.rb1052spec/policies/environment_policy_spec.rb1053spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb1054spec/models/clusters/applications/crossplane_spec.rb1055spec/serializers/group_child_entity_spec.rb1056spec/finders/admin/projects_finder_spec.rb1057spec/routing/routing_spec.rb1058spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb1059spec/presenters/merge_request_presenter_spec.rb1060spec/services/git/wiki_push_service_spec.rb1061spec/graphql/resolvers/board_list_issues_resolver_spec.rb1062spec/services/issues/import_csv_service_spec.rb1063spec/models/ability_spec.rb1064spec/lib/gitlab/background_migration/backfill_draft_status_on_merge_requests_with_corrected_regex_spec.rb1065spec/models/serverless/domain_cluster_spec.rb1066spec/services/merge_requests/link_lfs_objects_service_spec.rb1067spec/helpers/merge_requests_helper_spec.rb1068spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb1069spec/models/concerns/approvable_spec.rb1070spec/lib/gitlab/ci/templates/npm_spec.rb1071spec/services/projects/after_rename_service_spec.rb1072spec/lib/gitlab/ci/ansi2json/style_spec.rb1073spec/models/integrations/prometheus_spec.rb1074spec/lib/gitlab/background_migration/remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb1075spec/lib/gitlab/background_migration/backfill_namespace_id_for_project_route_spec.rb1076spec/services/merge_requests/request_review_service_spec.rb1077spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb1078spec/models/ci/job_token/project_scope_link_spec.rb1079spec/lib/gitlab/search/abuse_detection_spec.rb1080spec/lib/gitlab/ci/badge/release/metadata_spec.rb1081spec/initializers/load_balancing_spec.rb1082spec/models/project_snippet_spec.rb1083spec/lib/gitlab/background_migration/remove_self_managed_wiki_notes_spec.rb1084spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb1085spec/services/ci/job_artifacts/create_service_spec.rb1086spec/lib/gitlab/file_finder_spec.rb1087spec/workers/packages/nuget/extraction_worker_spec.rb1088spec/finders/context_commits_finder_spec.rb1089spec/workers/merge_requests/create_pipeline_worker_spec.rb1090spec/lib/gitlab/diff/file_collection/commit_spec.rb1091spec/models/ci/resource_spec.rb1092spec/models/pool_repository_spec.rb1093spec/workers/ci/archive_traces_cron_worker_spec.rb1094spec/serializers/merge_request_serializer_spec.rb1095spec/lib/gitlab/database/migrations/constraints_helpers_spec.rb1096spec/services/environments/auto_stop_service_spec.rb1097spec/lib/gitlab/email/receiver_spec.rb1098spec/tasks/gettext_rake_spec.rb1099spec/services/projects/move_project_members_service_spec.rb1100spec/services/merge_requests/reload_merge_head_diff_service_spec.rb1101spec/models/integrations/base_chat_notification_spec.rb1102spec/models/concerns/participable_spec.rb1103spec/finders/user_group_notification_settings_finder_spec.rb1104spec/workers/ci/pending_builds/update_project_worker_spec.rb1105spec/lib/gitlab/import_export/fork_spec.rb1106spec/helpers/projects/pages_helper_spec.rb1107spec/models/integrations/packagist_spec.rb1108spec/lib/gitlab/gl_repository/repo_type_spec.rb1109spec/lib/gitlab/ci/build/step_spec.rb1110spec/serializers/discussion_entity_spec.rb1111spec/lib/gitlab/serverless/service_spec.rb1112spec/models/note_diff_file_spec.rb1113spec/helpers/boards_helper_spec.rb1114spec/lib/gitlab/ci/config/normalizer_spec.rb1115spec/graphql/mutations/incident_management/timeline_event/update_spec.rb1116spec/lib/sidebars/projects/menus/monitor_menu_spec.rb1117spec/models/board_spec.rb1118spec/lib/gitlab/omniauth_initializer_spec.rb1119spec/services/milestones/closed_issues_count_service_spec.rb1120spec/policies/deploy_key_policy_spec.rb1121spec/models/prometheus_alert_event_spec.rb1122spec/workers/packages/cleanup_package_registry_worker_spec.rb1123spec/lib/banzai/reference_parser/design_parser_spec.rb1124spec/lib/banzai/filter/emoji_filter_spec.rb1125spec/lib/gitlab/audit/type/definition_spec.rb1126spec/lib/gitlab/mail_room/mail_room_spec.rb1127spec/serializers/deployment_serializer_spec.rb1128spec/lib/gitlab/ci/config/external/file/remote_spec.rb1129spec/services/repository_archive_clean_up_service_spec.rb1130spec/services/spam/akismet_service_spec.rb1131spec/workers/environments/auto_delete_cron_worker_spec.rb1132spec/graphql/resolvers/group_members_resolver_spec.rb1133spec/serializers/merge_request_user_entity_spec.rb1134spec/services/packages/composer/version_parser_service_spec.rb1135spec/graphql/types/base_argument_spec.rb1136spec/services/web_hooks/log_destroy_service_spec.rb1137spec/services/clusters/aws/provision_service_spec.rb1138spec/lib/bitbucket_server/representation/pull_request_spec.rb1139spec/workers/destroy_pages_deployments_worker_spec.rb1140spec/lib/gitlab/process_management_spec.rb1141spec/lib/gitlab/endpoint_attributes_spec.rb1142spec/lib/gitlab/ci/pipeline/logger_spec.rbKnapsack report generator started!1143Run options: exclude {:quarantine=>true, :level=>"migration"}1144Test environment set up in 1.231389667 seconds1145Glfm::UpdateExampleSnapshots#process1146 glfm_example_status.yml1147 when skip_update_example_snapshots entry is truthy1148 still writes the example to examples_index.yml1149 still writes the example to markdown.yml1150 when any other skip_update_example_snapshot_* is also truthy1151 raises an error1152 writing examples_index.yml1153 writes the correct content1154 writing markdown.yml1155 writes the correct content1156 error handling when manually-curated input specification config files contain invalid example names:1157 for glfm_example_status.yml1158 raises error1159 for glfm_example_metadata.yml1160 raises error1161 for glfm_example_normalizations.yml1162 raises error1163 with full processing of static and WYSIWYG HTML1164 manually-curated input specification config files1165 can be empty1166 writing html.yml and prosemirror_json.yml1167 writes the correct content1168Repository1169 #branch_names_contains1170 is expected to include "master"1171 is expected not to include "feature"1172 is expected not to include "fix"1173 when limit is provided1174 is expected to contain exactly "'test'"1175 when storage is broken1176 raises a storage error1177 #tag_names_contains1178 is expected to include "v1.1.0"1179 is expected not to include "v1.0.0"1180 when limit is provided1181 is expected to contain exactly "v1.1.0"1182 #tags_sorted_by1183 name_desc1184 is expected to eq ["v1.1.0", "v1.0.0"]1185 name_asc1186 is expected to eq ["v1.0.0", "v1.1.0"]1187 with pagination1188 with limit1189 is expected to eq ["v1.0.0"]1190 with page token and limit1191 is expected to eq ["v1.1.0"]1192 with page token only1193 raises an ArgumentError1194 with negative limit1195 returns all tags1196 with unknown token1197 raises an ArgumentError1198 updated1199 desc1200 is expected to eq ["v0.0.0", "v1.1.0", "v1.0.0"]1201 asc1202 is expected to eq ["v1.0.0", "v1.1.0", "v0.0.0"]1203 annotated tag pointing to a blob1204 is expected to eq ["v1.0.0", "v1.1.0", "annotated-tag"]1205 semantic versioning sort1206 desc1207 is expected to eq ["v10.0.0", "v2.0.0", "v1.1.0", "v1.0.0"]1208 asc1209 is expected to eq ["v1.0.0", "v1.1.0", "v2.0.0", "v10.0.0"]1210 unknown option1211 is expected to eq ["v1.0.0", "v1.1.0"]1212 #ref_exists?1213 when ref exists1214 returns true1215 when ref does not exist1216 returns false1217 when ref format is incorrect1218 returns false1219 #search_branch_names1220 returns matching branch names1221 #list_last_commits_for_tree1222 returns the last commits for every entry in the current path1223 returns the last commits for every entry in the current path starting from the offset1224 returns a limited number of last commits for every entry in the current path starting from the offset1225 returns an empty hash when offset is out of bounds1226 with a commit with invalid UTF-8 path1227 does not raise an error1228 #last_commit_for_path1229 is expected to eq "c1acaa58bbcbc3eafe538cb8274ba387047b69f8"1230 when storage is broken1231 raises a storage error1232 with filename with pathspec characters1233 returns a commit SHA1234 #last_commit_id_for_path1235 returns last commit id for a given path1236 caches last commit id for a given path1237 when storage is broken1238 raises a storage error1239 with filename with pathspec characters1240 returns a commit SHA1241 #commits1242 when neither the all flag nor a ref are specified1243 returns every commit from default branch1244 when ref is passed1245 returns every commit from the specified ref1246 when all1247 returns every commit from the repository1248 with path1249 sets follow when it is a single path1250 does not set follow when it is multiple paths1251 without path1252 does not set follow1253 when 'author' is set1254 returns commits from that author1255 doesn't returns commits from an unknown author1256 when 'all' flag is set1257 returns every commit from the repository1258 when 'order' flag is set1259 passes order option to perform the query1260 #new_commits1261 when there are no new commits1262 returns an empty array1263 when new commits are found1264 returns the commits1265 #commits_by1266 finds each commit1267 returns only Commit instances1268 when some commits are not found1269 returns only found commits1270 when no oids are passed1271 does not call #batch_by_oid1272 #commits_between1273 delegates to Gitlab::Git::Commit#between, returning decorated commits1274 defaults to no limit1275 #find_commits_by_message1276 returns commits with messages containing a given string1277 is case insensitive1278 when storage is broken1279 raises a storage error1280 #list_commits_by1281 returns commits with messages containing a given string1282 is case insensitive1283 returns commits based in before filter1284 returns commits based in after filter1285 returns commits based in author filter1286 when storage is broken1287 raises a storage error1288 #blob_at1289 blank sha1290 is expected to be nil1291 regular blob1292 is expected to be an instance of Blob1293 readme blob not on HEAD1294 is expected to be an instance of Blob1295 #merged_to_root_ref?1296 merged branch without ff1297 is expected to be truthy1298 merged with ff1299 is expected to be truthy1300 not merged branch1301 is expected to be falsey1302 default branch1303 is expected to be falsey1304 non merged branch1305 is expected to be falsey1306 non existent branch1307 is expected to be nil1308 #root_ref_sha1309 is expected to eq "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"1310 #merged_branch_names1311 is expected to eq #<Set: {"definitely_merged"}>1312 is expected to be a kind of Set1313 cache expiry1314 is expired when the branches caches are expired1315 is expired when the repository caches are expired1316 cache is empty1317 is expected to eq #<Set: {"definitely_merged"}>1318 cache values1319 writes the values to redis1320 matches the supplied hash1321 cache is not empty1322 is expected to eq #<Set: {"definitely_merged"}>1323 doesn't fetch from the disk1324 cache is partially complete1325 is expected to eq #<Set: {"definitely_merged"}>1326 does fetch from the disk1327 requested branches array is empty1328 is expected to eq #<Set: {"definitely_merged"}>1329 #can_be_merged?1330 mergeable branches1331 is expected to be truthy1332 non-mergeable branches without conflict sides missing1333 is expected to be falsey1334 non-mergeable branches with conflict sides missing1335 is expected to be falsey1336 submodule changes that confuse rugged1337 is expected to be falsey1338 #commit1339 when ref exists1340 returns commit object1341 when ref does not exist1342 returns nil1343 when ref is not specified1344 is using a root ref1345 when ref is not valid1346 when preceding tree element exists1347 returns nil1348 when preceding tree element does not exist1349 returns nil1350 #create_dir1351 commits a change that creates a new directory1352 when committing to another project1353 creates a fork and commit to the forked project1354 when an author is specified1355 uses the given email/name to set the commit's author1356 #create_file1357 commits new file successfully1358 creates new file and dir when file_path has a forward slash1359 respects the autocrlf setting1360 when an author is specified1361 uses the given email/name to set the commit's author1362 #update_file1363 updates file successfully1364 updates filename successfully1365 when an author is specified1366 uses the given email/name to set the commit's author1367 #delete_file1368 removes file successfully1369 when an author is specified1370 uses the given email/name to set the commit's author1371 search_files_by_content1372 is expected to be a kind of Array1373 regex-escapes the query string1374 properly handles an unmatched parenthesis1375 properly handles when query is not present1376 properly handles query when repo is empty1377 when storage is broken1378 raises a storage error1379 result1380 is expected to be a kind of String1381 is expected to eq "master:CHANGELOG\u0000190\u0000 - Feature: Replace teams with group membership\n"1382 search_files_by_name1383 returns result1384 ignores leading slashes1385 properly handles when query is only slashes1386 properly handles when query is not present1387 properly handles query when repo is empty1388 when storage is broken1389 raises a storage error1390 #search_files_by_wildcard_path1391 when specifying a normal path1392 returns the path1393 when specifying a wildcard path1394 returns files matching the path in the root folder1395 when specifying a wildcard path for all1396 returns all matching files in all folders1397 when specifying a path to subfolders using two asterisks and a slash1398 returns all files matching the path1399 when specifying a wildcard path to subfolder with just two asterisks1400 returns all files in the matching path1401 when specifying a wildcard path to subfolder with one asterisk1402 returns all files in the matching path1403 when specifying a wildcard path for an unknown number of subfolder levels1404 returns all matched files in all subfolders1405 when specifying a wildcard path to one level of subfolders1406 returns all matched files in one subfolder1407 when sending regexp1408 ignores the regexp and returns an empty array1409 when sending another ref1410 returns an empty array1411 #fetch_as_mirror1412 fetches the URL without creating a remote1413 #fetch_ref1414 when storage is broken1415 raises a storage error1416 #get_raw_changes1417 with non-UTF8 bytes in paths1418 returns the changes1419 #create_ref1420 redirects the call to write_ref1421 #changelog1422 accepts changelog1423 accepts news instead of changelog1424 accepts history instead of changelog1425 accepts changes instead of changelog1426 is case-insensitive1427 #license_blob1428 handles when HEAD points to non-existent ref1429 looks in the root_ref only1430 detects license file with no recognizable open-source license content1431 detects 'LICENSE'1432 detects 'LICENCE'1433 detects 'LiCensE'1434 detects 'LICENSE.md'1435 detects 'LICENSE.foo'1436 detects 'COPYING'1437 detects 'COPYING.md'1438 #license_key1439 returns nil when no license is detected1440 returns nil when the repository does not exist1441 returns other when the content is not recognizable1442 returns nil when the commit SHA does not exist1443 returns nil when master does not exist1444 returns the license key1445 with feature flag license_from_gitaly=true1446 #license1447 returns nil when no license is detected1448 returns nil when the repository does not exist1449 returns other when the content is not recognizable1450 returns the license1451 with feature flag license_from_gitaly=false1452 #license1453 returns nil when no license is detected1454 returns nil when the repository does not exist1455 returns other when the content is not recognizable1456 returns the license1457 #gitlab_ci_yml1458 returns valid file1459 returns nil if not exists1460 returns nil for empty repository1461 #ambiguous_ref?1462 when ref is ambiguous1463 is true1464 when ref is not ambiguous1465 is false1466 #has_ambiguous_refs?1467 branch_names: nil, tag_names: nil, result: false1468 is expected to eq false1469 branch_names: [], tag_names: [], result: false1470 is expected to eq false1471 branch_names: ["a", "b"], tag_names: [], result: false1472 is expected to eq false1473 branch_names: [], tag_names: ["c", "d"], result: false1474 is expected to eq false1475 branch_names: ["a", "b"], tag_names: ["c", "d"], result: false1476 is expected to eq false1477 branch_names: ["a/b"], tag_names: ["c/d"], result: false1478 is expected to eq false1479 branch_names: ["a", "b"], tag_names: ["c", "d", "a/z"], result: true1480 is expected to eq true1481 branch_names: ["a", "b", "c/z"], tag_names: ["c", "d"], result: true1482 is expected to eq true1483 branch_names: ["a/b/z"], tag_names: ["a/b"], result: false1484 is expected to eq false1485 branch_names: ["a/b/z"], tag_names: ["a/b", "a"], result: true1486 is expected to eq true1487 branch_names: ["ab"], tag_names: ["abc/d", "a", "b"], result: false1488 is expected to eq false1489 #expand_ref1490 when ref is not tag or branch name1491 returns nil1492 when ref is tag name1493 returns the tag ref1494 when ref is branch name1495 returns the branch ref1496 #add_branch1497 calls Gitaly's OperationService1498 creates_the_branch1499 expires branches cache1500 with a non-existing target1501 returns false and doesn't create the branch1502 when expire_cache: false1503 does not expire branches cache1504 #exists?1505 returns true when a repository exists1506 returns false if no full path can be constructed1507 with broken storage1508 raises a storage error1509 behaves like asymmetric cached method1510 asymmetric caching1511 when it returns true1512 caches the output in RequestStore1513 caches the output in RepositoryCache1514 when it returns false1515 caches the output in RequestStore1516 does NOT cache the output in RepositoryCache1517 #has_visible_content?1518 delegates to raw_repository when true1519 delegates to raw_repository when false1520 behaves like asymmetric cached method1521 asymmetric caching1522 when it returns true1523 caches the output in RequestStore1524 caches the output in RepositoryCache1525 when it returns false1526 caches the output in RequestStore1527 does NOT cache the output in RepositoryCache1528 #branch_exists?1529 delegates to branch_names when the cache is empty1530 uses redis set caching when the cache is filled1531 #tag_exists?1532 delegates to tag_names when the cache is empty1533 uses redis set caching when the cache is filled1534 #branch_names1535 gets cached across Repository instances1536 #empty?1537 returns true for an empty repository1538 returns false for a non-empty repository1539 caches the output1540 #blobs_at1541 returns empty array for an empty repository1542 returns blob array for a non-empty repository1543 when Gitaly returns NoRepository1544 returns empty array1545 #root_ref1546 returns a branch name1547 caches the output1548 returns nil if the repository does not exist1549 behaves like asymmetric cached method1550 asymmetric caching1551 when it returns true1552 caches the output in RequestStore1553 caches the output in RepositoryCache1554 when it returns false1555 caches the output in RequestStore1556 does NOT cache the output in RepositoryCache1557 #expire_root_ref_cache1558 expires the root reference cache1559 #expire_branch_cache1560 expires the cache for all branches1561 expires the cache for all branches when the root branch is given1562 expires the cache for a specific branch1563 #expire_emptiness_caches1564 expires the caches for an empty repository1565 does not expire the cache for a non-empty repository1566 expires the memoized repository cache1567 skip_merges option1568 is expected not to include "e56497bb5f03a90a51293fc6d516788730953899"1569 #merge1570 merges the code and returns the commit id1571 sets the `in_progress_merge_commit_sha` flag for the given merge request1572 removes carriage returns from commit message1573 #merge_to_ref1574 writes merge of source SHA and first parent ref to MR merge_ref_path1575 #ff_merge1576 merges the code and return the commit id1577 sets the `in_progress_merge_commit_sha` flag for the given merge request1578 #rebase1579 executes the new Gitaly RPC1580 behaves like a method that can rebase successfully1581 returns the rebase commit sha1582 sets the `rebase_commit_sha` for the given merge request1583 rolling back the `rebase_commit_sha`1584 does not rollback when there are no errors1585 does rollback when a PreReceiveError is encountered in the second step1586 does rollback when a GitError is encountered in the second step1587 #revert1588 when there is a conflict1589 raises an error1590 when commit was already reverted1591 raises an error1592 when commit can be reverted1593 reverts the changes1594 reverting a merge commit1595 reverts the changes1596 #cherry_pick1597 when there is a conflict1598 raises an error1599 when commit was already cherry-picked1600 raises an error1601 when commit can be cherry-picked1602 cherry-picks the changes1603 cherry-picking a merge commit1604 cherry-picks the changes1605 #before_delete1606 when a repository does not exist1607 does not flush caches that depend on repository data1608 flushes the tags cache1609 flushes the branches cache1610 flushes the root ref cache1611 flushes the emptiness caches1612 flushes the exists cache1613 when a repository exists1614 flushes the tags cache1615 flushes the branches cache1616 flushes the root ref cache1617 flushes the emptiness caches1618 #before_change_head1619 flushes the branch cache1620 flushes the root ref cache1621 #after_change_head1622 flushes the method caches1623 calls after_repository_change_head on container1624 #expires_caches_for_tags1625 flushes the cache1626 #before_push_tag1627 logs an event1628 #after_push_commit1629 expires statistics caches1630 #after_create_branch1631 expires the branch caches1632 does not expire the branch caches when specified1633 #after_remove_branch1634 expires the branch caches1635 does not expire the branch caches when specified1636 #lookup1637 uses the lookup cache1638 returns the correct value1639 #after_create1640 calls expire_status_cache1641 logs an event1642 #expire_status_cache1643 flushes the exists cache1644 flushes the root ref cache1645 flushes the emptiness caches1646 #copy_gitattributes1647 returns true with a valid ref1648 returns false with an invalid ref1649 #before_remove_tag1650 flushes the tag cache1651 #branch_count1652 returns the number of branches1653 #tag_count1654 returns the number of tags1655 #expire_branches_cache1656 expires the cache1657 #expire_protected_branches_cache1658 expires the cache1659 when repository does not have a project1660 does not expire the cache1661 #expire_tags_cache1662 expires the cache1663 #add_tag1664 with a valid target1665 creates the tag1666 returns a Gitlab::Git::Tag object1667 with an invalid target1668 returns false1669 #rm_branch1670 removes a branch1671 when pre hooks failed1672 gets an error and does not delete the branch1673 #rm_tag1674 removes a tag1675 #find_tag1676 finds a tag with specified name by performing FindTag request1677 does not perform Gitaly call when tags are preloaded1678 returns nil when tag does not exists1679 #avatar1680 returns nil if repo does not exist1681 returns the first avatar file found in the repository1682 caches the output1683 #expire_exists_cache1684 expires the cache1685 expires the request store cache1686 #xcode_project?1687 when the root contains a *.xcodeproj directory1688 returns true1689 when the root contains a *.xcworkspace directory1690 returns true1691 when the root contains no Xcode config directory1692 returns false1693 #contribution_guide1694 returns and caches the output1695 #gitignore1696 returns and caches the output1697 #readme1698 with a non-existing repository1699 returns nil1700 with an existing repository1701 when no README exists1702 returns nil1703 #readme_path1704 with a non-existing repository1705 returns nil1706 with an existing repository1707 when no README exists1708 returns nil1709 when a README exists1710 returns the README1711 caches the response1712 #expire_statistics_caches1713 expires the caches1714 #expire_all_method_caches1715 expires the caches of all methods1716 all cache_method definitions are in the lists of method caches1717 #file_on_head1718 with a non-existing repository1719 returns nil1720 with a repository that has no blobs1721 returns nil1722 with an existing repository1723 returns a Gitlab::Git::Tree1724 #head_tree1725 with an existing repository1726 returns a Tree1727 with a non-existing repository1728 returns nil1729 behaves like #tree1730 using a non-existing repository1731 is expected to be nil1732 when path is defined1733 is expected to be nil1734 using an existing repository1735 is expected to be an instance of Tree1736 when different sha is set1737 is expected to be an instance of Tree1738 when recursive is true1739 is expected to be an instance of Tree1740 with pagination parameters1741 is expected to be an instance of Tree1742 #tree? with Rugged enabled1743 behaves like #tree1744 using a non-existing repository1745 is expected to be nil1746 when path is defined1747 is expected to be nil1748 using an existing repository1749 is expected to be an instance of Tree1750 when different sha is set1751 is expected to be an instance of Tree1752 when recursive is true1753 is expected to be an instance of Tree1754 with pagination parameters1755 is expected to be an instance of Tree1756 #size1757 with a non-existing repository1758 returns 01759 with an existing repository1760 returns the repository size as a Float1761 #local_branches1762 returns the local branches1763 #commit_count1764 with a non-existing repository1765 returns 01766 with an existing repository1767 returns the commit count1768 #commit_count_for_ref1769 with a non-existing repository1770 returns 01771 with empty repository1772 returns 01773 when searching for the root ref1774 returns the same count as #commit_count1775 #refresh_method_caches1776 refreshes the caches of the given types1777 #gitlab_ci_yml_for1778 when there is a .gitlab-ci.yml at the commit1779 returns the content1780 when there is no .gitlab-ci.yml at the commit1781 returns nil1782 #changelog_config1783 when there is a changelog_config_path at the commit1784 returns the content1785 when there is no changelog_config_path at the commit1786 returns nil1787 #route_map_for1788 when there is a .gitlab/route-map.yml at the commit1789 returns the content1790 when there is no .gitlab/route-map.yml at the commit1791 returns nil1792 #ancestor? with Gitaly enabled1793 behaves like #ancestor?1794 is an ancestor1795 is not an ancestor1796 returns false on nil-values1797 returns false for invalid commit IDs1798 caching1799 only calls out to Gitaly once1800 returns the value from the request store1801 returns the value from the redis cache1802 #ancestor? with Rugged enabled1803 calls out to the Rugged implementation1804 behaves like #ancestor?1805 is an ancestor1806 is not an ancestor1807 returns false on nil-values1808 returns false for invalid commit IDs1809 #archive_metadata1810 with hashed storage disabled1811 uses the project path to generate the filename1812 with hashed storage enabled1813 uses the project path to generate the filename1814 commit cache1815 caches based on SHA1816 caches nil values1817 #raw_repository1818 returns a Gitlab::Git::Repository representation of the repository1819 with a wiki repository1820 creates a Gitlab::Git::Repository with the proper attributes1821 #contributors1822 returns the array of Gitlab::Contributor for the repository1823 order_by email1824 asc1825 returns all the contributors ordered by email asc case insensitive1826 desc1827 returns all the contributors ordered by email desc case insensitive1828 order_by name1829 asc1830 returns all the contributors ordered by name asc case insensitive1831 desc1832 returns all the contributors ordered by name desc case insensitive1833 order_by commits1834 asc1835 returns all the contributors ordered by commits asc1836 desc1837 returns all the contributors ordered by commits desc1838 invalid ordering1839 returns the contributors unsorted1840 invalid sorting1841 returns the contributors unsorted1842 #merge_base1843 only makes one gitaly call1844 #create_if_not_exists1845 creates the repository if it did not exist1846 returns true1847 calls out to the repository client to create a repo1848 creates a repository with a default branch name1849 it does nothing if the repository already existed1850 does nothing if the repository already existed1851 returns nil1852 when the repository exists but the cache is not up to date1853 does not raise errors1854 returns nil1855 #create_from_bundle1856 calls out to the raw_repository to create a repo from bundle1857 calls after_create1858 when exception is raised1859 after_create is not executed1860 #blobs_metadata1861 returns blob metadata in batch for HEAD1862 returns blob metadata for a specified ref1863 performs a single gitaly call1864 #project1865 returns the project for a project snippet1866 returns nil for a personal snippet1867 returns the project for a project wiki1868 returns the container if it is a project1869 returns nil if the container is not a project1870 #submodule_links1871 returns an instance of Gitlab::SubmoduleLinks1872 #lfs_enabled?1873 for a project repository1874 returns true when LFS is enabled1875 returns false when LFS is disabled1876 for a project wiki repository1877 delegates to the project1878 for a project snippet repository1879 returns false when LFS is enabled1880 for a personal snippet repository1881 returns false when LFS is enabled1882 for a design repository1883 returns true when LFS is enabled1884 returns false when LFS is disabled1885 .pick_storage_shard1886 when expire is false1887 does not expire existing repository storage value1888 when expire is true1889 expires existing repository storage value1890 #change_head1891 when the branch exists1892 returns truthy1893 does not call container.after_change_head_branch_does_not_exist1894 calls repository hooks1895 copies the gitattributes1896 reloads the default branch1897 when the branch does not exist1898 returns falsey1899 calls container.after_change_head_branch_does_not_exist1900 does not call repository hooks1901 #remove_prohibited_branches1902 when prohibited branch exists1903 deletes prohibited branch1904 when branch name is 40-characters long but not hexadecimal1905 returns without removing the branch1906 when branch name is hexadecimal1907 when branch name is less than 40-characters long1908 returns without removing the branch1909 when branch name is more than 40-characters long1910 returns without removing the branch1911 when prohibited branch does not exist1912 returns without removing the branch1913 when raw repository does not exist1914 returns without removing the branch1915ProjectTeam1916 personal project1917 members collection1918 is expected to include #<User id:160 @user36>1919 is expected not to include #<User id:166 @user41>1920 is expected not to include #<User id:169 @user43>1921 is expected not to include #<User id:175 @user48>1922 access methods1923 is expected to be truthy1924 is expected to be falsey1925 is expected to be falsey1926 is expected to be falsey1927 is expected to be falsey1928 is expected to be truthy1929 is expected to be truthy1930 is expected to be falsey1931 is expected to be falsey1932 group project1933 members collection1934 is expected to include #<User id:218 @user81>1935 is expected to include #<User id:222 @user84>1936 is expected to include #<User id:229 @user90>1937 is expected not to include #<User id:233 @user93>1938 is expected not to include #<User id:240 @user99>1939 access methods1940 is expected to be truthy1941 is expected to be truthy1942 is expected to be truthy1943 is expected to be falsey1944 is expected to be falsey1945 is expected to be falsey1946 is expected to be truthy1947 is expected to be truthy1948 is expected to be falsey1949 is expected to be falsey1950 owner methods1951 personal project1952 is expected to contain exactly #<User id:294 @namespace231>1953 is expected to be truthy1954 group project1955 is expected to contain exactly #<User id:296 @user143> and #<User id:297 @user144>1956 is expected to be truthy1957 is expected to be truthy1958 #fetch_members1959 personal project1960 returns project members1961 returns project members of a specified level1962 returns invited members of a group1963 returns invited members of a group of a specified level1964 group project1965 returns project members1966 returns project members of a specified level1967 #find_member1968 personal project1969 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: integer, notification_level: integer, type: string, created_at: datetime, updated_at: datetime, created_by_id: integer, invite_email: string, invite_token: string, invite_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1970 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: integer, notification_level: integer, type: string, created_at: datetime, updated_at: datetime, created_by_id: integer, invite_email: string, invite_token: string, invite_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1971 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: integer, notification_level: integer, type: string, created_at: datetime, updated_at: datetime, created_by_id: integer, invite_email: string, invite_token: string, invite_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1972 is expected to be nil1973 is expected to be nil1974 group project1975 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: integer, notification_level: integer, type: string, created_at: datetime, updated_at: datetime, created_by_id: integer, invite_email: string, invite_token: string, invite_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1976 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: integer, notification_level: integer, type: string, created_at: datetime, updated_at: datetime, created_by_id: integer, invite_email: string, invite_token: string, invite_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1977 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: integer, notification_level: integer, type: string, created_at: datetime, updated_at: datetime, created_by_id: integer, invite_email: string, invite_token: string, invite_accepted_at: datetime, requested_at: datetime, expires_at: date, ldap: boolean, override: boolean, state: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)1978 is expected to be nil1979 is expected to be nil1980 #members_in_project_and_ancestors1981 group project1982 filters out users who are not members of the project1983 #members_with_access_levels1984 with access_levels1985 filters members who have given access levels1986 without access_levels1987 returns empty array1988 #add_members1989 add the given users to the team1990 when `tasks_to_be_done` and `tasks_project_id` are passed1991 creates a member_task with the correct attributes1992 #add_member1993 add the given user to the team1994 #human_max_access1995 returns Maintainer role1996 returns Owner role1997 #contributor?1998 when user is a member of project1999 is expected to equal false2000 is expected to equal false2001 is expected to equal false2002 when user has at least one merge request merged into default_branch2003 is expected to equal true2004 is expected to equal false2005 #max_member_access2006 personal project2007 when project is not shared with group2008 is expected to eq 402009 is expected to eq 202010 is expected to eq 102011 is expected to eq 02012 is expected to eq 02013 when project is shared with group2014 is expected to eq 302015 is expected to eq 202016 is expected to eq 02017 is expected to eq 02018 but share_with_group_lock is true2019 is expected to eq 02020 is expected to eq 02021 group project2022 is expected to eq 402023 is expected to eq 202024 is expected to eq 102025 is expected to eq 02026 is expected to eq 02027 #purge_member_access_cache_for_user_id2028 removes cached max access for user from store2029 #member?2030 returns false for no user2031 returns true for personal projects of the user2032 returns true for projects of groups the user is a member of2033 returns true for projects for which the user is a member of2034 returns true for projects shared on a group the user is a member of2035 checks for the correct minimum level access2036 #contribution_check_for_user_ids2037 does not perform extra queries when asked for users who have already been found2038 only requests the extra users when uncached users are passed2039 returns correct contributors2040 #max_member_access_for_user_ids2041 with RequestStore enabled2042 returns correct roles for different users2043 does not perform extra queries when asked for users who have already been found2044 only requests the extra users when uncached users are passed2045 with RequestStore disabled2046 returns correct roles for different users2047Clusters::Applications::Knative2048 is expected to belong to cluster required: false2049 is expected to validate that :cluster cannot be empty/falsy2050 #can_uninstall?2051 calls allowed_to_uninstall?2052 #name2053 is .application_name2054 is recorded in Clusters::Cluster::APPLICATIONS2055 .association_name2056 is expected to eq :application_knative2057 #helm_command_module2058 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V22059 is expected to eq Gitlab::Kubernetes::Helm::V22060 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V32061 is expected to eq Gitlab::Kubernetes::Helm::V32062 #status_states2063 returns a hash of state values2064 returns an integer for installed state value2065 .available2066 is expected to contain exactly #<Clusters::Applications::Knative id: 1, cluster_id: 12, created_at: "2022-11-04 14:25:59.688664023 +0000", updated_at: "2022-11-04 14:25:59.688664023 +0000", status: 3, version: "0.10.0", hostname: "example.com", status_reason: nil, external_ip: nil, external_hostname: nil> and #<Clusters::Applications::Knative id: 2, cluster_id: 18, created_at: "2022-11-04 14:26:00.754636592 +0000", updated_at: "2022-11-04 14:26:00.754636592 +0000", status: 5, version: "0.10.0", hostname: "example.com", status_reason: nil, external_ip: nil, external_hostname: nil>2067 status state machine2068 #make_installing2069 is installing2070 #make_installed2071 is installed2072 does not update the helm version2073 the cluster has no helm installed2074 runs without errors2075 application is updating2076 is updated2077 does not update the helm version2078 the cluster has no helm installed2079 runs without errors2080 #make_errored2081 is errored2082 application is updating2083 is update_errored2084 application is uninstalling2085 is uninstall_errored2086 #make_externally_installed2087 is installed2088 helm record does not exist2089 does not create a helm record2090 helm record exists2091 does not update helm version2092 application is updated2093 is installed2094 application is errored2095 is installed2096 clears #status_reason2097 #make_externally_uninstalled2098 is uninstalled2099 application is updated2100 is uninstalled2101 application is errored2102 is uninstalled2103 clears #status_reason2104 #make_scheduled2105 is scheduled2106 when installed2107 is scheduled2108 when was errored2109 clears #status_reason2110 when was updated_errored2111 clears #status_reason2112 when was uninstall_errored2113 clears #status_reason2114 #make_uninstalling2115 is uninstalling2116 #available?2117 trait: :not_installable, available: false2118 is expected not to be available2119 trait: :installable, available: false2120 is expected not to be available2121 trait: :scheduled, available: false2122 is expected not to be available2123 trait: :installing, available: false2124 is expected not to be available2125 trait: :installed, available: true2126 is expected to be available2127 trait: :updating, available: false2128 is expected not to be available2129 trait: :updated, available: true2130 is expected to be available2131 trait: :errored, available: false2132 is expected not to be available2133 trait: :update_errored, available: false2134 is expected not to be available2135 trait: :uninstalling, available: false2136 is expected not to be available2137 trait: :uninstall_errored, available: false2138 is expected not to be available2139 trait: :uninstalled, available: false2140 is expected not to be available2141 trait: :timed_out, available: false2142 is expected not to be available2143 trait: :externally_installed, available: true2144 is expected to be available2145 #uninstall_command2146 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::DeleteCommand2147 has files2148 is rbac2149 on a non rbac enabled cluster2150 is expected not to be rbac2151 #files2152 does not include cert files2153 when cluster does not have helm installed2154 does not include cert files2155 update_available?2156 version is not the same as VERSION2157 is expected to be truthy2158 version is the same as VERSION2159 is expected to be falsey2160 #make_installed2161 sets the correct version of the application2162 application is updating2163 updates the version of the application2164 #make_externally_installed2165 sets to a special version2166 #status2167 sets a default status2168 associations2169 is expected to have one serverless_domain_cluster class_name => ::Serverless::DomainCluster inverse_of => knative2170 when cloud run is enabled2171 is expected to be not installable2172 when rbac is not enabled2173 is expected to be not installable2174 make_installed with external_ip2175 schedules a ClusterWaitForIngressIpAddressWorker2176 configuring istio ingress gateway2177 after installed2178 schedules a ClusterConfigureIstioWorker2179 after updated2180 schedules a ClusterConfigureIstioWorker2181 #can_uninstall?2182 is expected to be truthy2183 #schedule_status_update with external_ip2184 schedules a ClusterWaitForIngressIpAddressWorker2185 when the application is not installed2186 does not schedule a ClusterWaitForIngressIpAddressWorker2187 when there is already an external_ip2188 does not schedule a ClusterWaitForIngressIpAddressWorker2189 when there is already an external_hostname2190 does not schedule a ClusterWaitForIngressIpAddressWorker2191 #install_command2192 is initialized with latest version2193 behaves like a command2194 is an instance of Helm::InstallCommand2195 is initialized with knative arguments2196 does not install metrics for prometheus2197 with prometheus installed2198 installs metrics2199 #update_command2200 is initialized with current version2201 behaves like a command2202 is an instance of Helm::InstallCommand2203 is initialized with knative arguments2204 does not install metrics for prometheus2205 with prometheus installed2206 installs metrics2207 #uninstall_command2208 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::DeleteCommand2209 removes knative deployed services before uninstallation2210 initializes command with all necessary postdelete script2211 #files2212 includes knative specific keys in the values.yaml file2213 validations2214 is expected to validate that :hostname cannot be empty/falsy2215 #available_domains2216 returns all instance serverless domains2217 #find_available_domain2218 returns the domain scoped to available domains2219 #pages_domain2220 returns the the associated pages domain2221EnvironmentPolicy2222 #rules2223 when project is public2224 with stop action2225 access_level: nil, allowed?: false2226 is expected to equal false2227 access_level: :guest, allowed?: false2228 is expected to equal false2229 access_level: :reporter, allowed?: false2230 is expected to equal false2231 access_level: :developer, allowed?: true2232 is expected to equal true2233 access_level: :maintainer, allowed?: true2234 is expected to equal true2235 when an admin user2236 when admin mode is enabled2237 is expected to be allowed :stop_environment2238 when admin mode is disabled2239 is expected to be disallowed :stop_environment2240 with protected branch2241 when an admin user2242 when admin mode is enabled2243 is expected to be allowed :stop_environment2244 when admin mode is disabled2245 is expected to be disallowed :stop_environment2246 without stop action2247 access_level: nil, allowed?: false2248 is expected to equal false2249 access_level: :guest, allowed?: false2250 is expected to equal false2251 access_level: :reporter, allowed?: false2252 is expected to equal false2253 access_level: :developer, allowed?: true2254 is expected to equal true2255 access_level: :maintainer, allowed?: true2256 is expected to equal true2257 when an admin user2258 when admin mode is enabled2259 is expected to be allowed :stop_environment2260 when admin mode is disabled2261 is expected to be disallowed :stop_environment2262 #destroy_environment2263 access_level: nil, allowed?: false2264 is expected to be disallowed :destroy_environment2265 when environment is stopped2266 is expected to equal false2267 access_level: :guest, allowed?: false2268 is expected to be disallowed :destroy_environment2269 when environment is stopped2270 is expected to equal false2271 access_level: :reporter, allowed?: false2272 is expected to be disallowed :destroy_environment2273 when environment is stopped2274 is expected to equal false2275 access_level: :developer, allowed?: true2276 is expected to be disallowed :destroy_environment2277 when environment is stopped2278 is expected to equal true2279 access_level: :maintainer, allowed?: true2280 is expected to be disallowed :destroy_environment2281 when environment is stopped2282 is expected to equal true2283 when an admin user2284 is expected to be disallowed :destroy_environment2285 when environment is stopped2286 when admin mode is enabled2287 is expected to be allowed :destroy_environment2288 when admin mode is disabled2289 is expected to be disallowed :destroy_environment2290 when project is private2291 with stop action2292 access_level: nil, allowed?: false2293 is expected to equal false2294 access_level: :guest, allowed?: false2295 is expected to equal false2296 access_level: :reporter, allowed?: false2297 is expected to equal false2298 access_level: :developer, allowed?: true2299 is expected to equal true2300 access_level: :maintainer, allowed?: true2301 is expected to equal true2302 when an admin user2303 when admin mode is enabled2304 is expected to be allowed :stop_environment2305 when admin mode is disabled2306 is expected to be disallowed :stop_environment2307 with protected branch2308 when an admin user2309 when admin mode is enabled2310 is expected to be allowed :stop_environment2311 when admin mode is disabled2312 is expected to be disallowed :stop_environment2313 without stop action2314 access_level: nil, allowed?: false2315 is expected to equal false2316 access_level: :guest, allowed?: false2317 is expected to equal false2318 access_level: :reporter, allowed?: false2319 is expected to equal false2320 access_level: :developer, allowed?: true2321 is expected to equal true2322 access_level: :maintainer, allowed?: true2323 is expected to equal true2324 when an admin user2325 when admin mode is enabled2326 is expected to be allowed :stop_environment2327 when admin mode is disabled2328 is expected to be disallowed :stop_environment2329 #destroy_environment2330 access_level: nil, allowed?: false2331 is expected to be disallowed :destroy_environment2332 when environment is stopped2333 is expected to equal false2334 access_level: :guest, allowed?: false2335 is expected to be disallowed :destroy_environment2336 when environment is stopped2337 is expected to equal false2338 access_level: :reporter, allowed?: false2339 is expected to be disallowed :destroy_environment2340 when environment is stopped2341 is expected to equal false2342 access_level: :developer, allowed?: true2343 is expected to be disallowed :destroy_environment2344 when environment is stopped2345 is expected to equal true2346 access_level: :maintainer, allowed?: true2347 is expected to be disallowed :destroy_environment2348 when environment is stopped2349 is expected to equal true2350 when an admin user2351 is expected to be disallowed :destroy_environment2352 when environment is stopped2353 when admin mode is enabled2354 is expected to be allowed :destroy_environment2355 when admin mode is disabled2356 is expected to be disallowed :destroy_environment2357layouts/nav/sidebar/_project2358 behaves like has nav sidebar2359 has collapsed nav sidebar on mobile2360 Project context2361 has a link to the project path2362 Project information2363 has a link to the project activity path2364 Activity2365 has a link to the project activity path2366 Labels2367 has a link to the labels path2368 Members2369 has a link to the members page2370 Learn GitLab2371 has a link to the learn GitLab2372 Repository2373 has a link to the project tree path2374 Files2375 has a link to the project tree path2376 Commits2377 has a link to the project commits path2378 Branches2379 has a link to the project branches path2380 Tags2381 has a link to the project tags path2382 Contributors2383 has a link to the project contributors path2384 Graph2385 has a link to the project graph path2386 Compare2387 has a link to the project compare path2388 Issues2389 has a link to the issue list path2390 shows pill with the number of open issues2391 Issue List2392 has a link to the issue list path2393 Issue Boards2394 has a link to the issue boards path2395 Service Desk2396 has a link to the service desk path2397 Milestones2398 has a link to the milestones path2399 External Issue Tracker2400 with custom external issue tracker2401 when external issue tracker is configured and active2402 has a link to the external issue tracker2403 when external issue tracker is not configured and active2404 does not have a link to the external issue tracker2405 with Jira issue tracker2406 has a link to the Jira issue tracker2407 Merge Requests2408 has a link to the merge request list path2409 shows pill with the number of merge requests2410 CI/CD2411 has a link to pipelines page2412 Artifacts2413 has a link to the artifacts page2414 Jobs2415 has a link to the jobs page2416 Pipeline Schedules2417 has a link to the pipeline schedules page2418 Pipelines2419 has a link to the pipelines page2420 Pipeline Editor2421 with a current_ref2422 has a link to the pipeline editor2423 with the default_branch2424 has a link to the pipeline editor2425 when user cannot access pipeline editor2426 does not has a link to the pipeline editor2427 Security and Compliance2428 when user does not have permissions2429 top level navigation link is not visible2430 when user has permissions2431 top level navigation link is visible2432 security configuration link is visible2433 Deployments2434 Feature Flags2435 has a link to the feature flags page2436 when the user does not have access2437 does not have a link to the feature flags page2438 Environments2439 has a link to the environments page2440 when the user does not have access2441 does not have a link to the environments page2442 Releases2443 has a link to the project releases path2444 Monitor2445 top level navigation link is visible for user with permissions2446 Metrics Dashboard2447 has a link to the metrics dashboard page2448 when the user does not have access2449 does not have a link to the metrics page2450 Error Tracking2451 has a link to the error tracking page2452 when the user does not have access2453 does not have a link to the error tracking page2454 Alert Management2455 has a link to the alert management page2456 when the user does not have access2457 does not have a link to the alert management page2458 Incidents2459 has a link to the incidents page2460 when the user does not have access2461 does not have a link to the incidents page2462 Infrastructure2463 Terraform2464 has a link to the terraform page2465 when the user does not have access2466 does not have a link to the terraform page2467 Kubernetes clusters2468 has a link to the kubernetes page2469 when the user does not have access2470 does not have a link to the kubernetes page2471 Google Cloud2472 has a link to the google cloud page2473 when the user does not have access2474 does not have a link to the google cloud page2475 Packages and Registries2476 top level navigation link is visible and points to package registry page2477 Packages Registry2478 shows link to package registry page2479 when packages config setting is not enabled2480 does not show link to package registry page2481 Container Registry2482 shows link to container registry page2483 when container config setting is not enabled2484 does not show link to package registry page2485 Infrastructure Registry2486 shows link to infrastructure registry page2487 when package registry config is disabled2488 does not show link to package registry page2489 Analytics2490 top level navigation link is visible points to the value stream page2491 CI/CD2492 has a link to the CI/CD analytics page2493 when user does not have access2494 does not have a link to the CI/CD analytics page2495 Repository2496 has a link to the repository analytics page2497 when user does not have access2498 does not have a link to the repository analytics page2499 Value stream2500 has a link to the value stream page2501 when user does not have access2502 does not have a link to the value stream page2503 Confluence2504 when the Confluence integration is active2505 shows the Confluence link2506 does not show the GitLab wiki link2507 when it is disabled2508 does not show the Confluence link2509 shows the GitLab wiki link2510 Wiki2511 when wiki is enabled2512 shows the wiki tab with the wiki internal link2513 when wiki is disabled2514 does not show the wiki link2515 External Wiki2516 when it is active2517 shows the external wiki tab with the external wiki service link2518 when it is disabled2519 does not show the external wiki link2520 Snippets2521 when user can access snippets2522 shows Snippets link2523 when user cannot access snippets2524 does not show Snippets link2525 Settings2526 General2527 has a link to the General settings2528 Integrations2529 has a link to the Integrations settings2530 WebHooks2531 has a link to the WebHooks settings2532 Access Tokens2533 self-managed instance2534 has a link to the Access Tokens settings2535 gitlab.com2536 has a link to the Access Tokens settings2537 Repository2538 has a link to the Repository settings2539 CI/CD2540 when project is archived2541 does not have a link to the CI/CD settings2542 when project is not archived2543 has a link to the CI/CD settings2544 Monitor2545 when project is archived2546 does not have a link to the Monitor settings2547 when project is not archived active2548 has a link to the Monitor settings2549 Pages2550 when pages are enabled2551 has a link to the Pages settings2552 when pages are not enabled2553 does not have a link to the Pages settings2554 Packages and registries2555 when registry is enabled2556 has a link to the Package and registry settings2557 when registry is not enabled2558 does not have a link to the Package and registry settings2559 when packages config is enabled2560 has a link to the Package and registry settings2561 Usage Quotas2562 has a link to Usage Quotas2563 Hidden menus2564 has a link to the Activity page2565 has a link to the Graph page2566 has a link to the New Issue page2567 has a link to the Jobs page2568 has a link to the Commits page2569 has a link to the Issue Boards page2570 behaves like sidebar includes snowplow attributes2571 is expected to have visible css ".nav-sidebar[data-track-action=\"render\"][data-track-label=\"projects_side_navigation\"][data-track-property=\"projects_side_navigation\"]"2572 Collapsed menu items2573 does not render the collapsed top menu as a link2574Clusters::Applications::Crossplane2575 is expected to belong to cluster required: false2576 is expected to validate that :cluster cannot be empty/falsy2577 #can_uninstall?2578 calls allowed_to_uninstall?2579 #name2580 is .application_name2581 is recorded in Clusters::Cluster::APPLICATIONS2582 .association_name2583 is expected to eq :application_crossplane2584 #helm_command_module2585 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V22586 is expected to eq Gitlab::Kubernetes::Helm::V22587 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V32588 is expected to eq Gitlab::Kubernetes::Helm::V32589 #status_states2590 returns a hash of state values2591 returns an integer for installed state value2592 .available2593 is expected to contain exactly #<Clusters::Applications::Crossplane id: 1, created_at: "2022-11-04 14:29:11.248863481 +0000", updated_at: "2022-11-04 14:29:11.248863481 +0000", cluster_id: 380, status: 3, version: "0.4.1", stack: "gcp", status_reason: nil> and #<Clusters::Applications::Crossplane id: 2, created_at: "2022-11-04 14:29:12.247906930 +0000", updated_at: "2022-11-04 14:29:12.247906930 +0000", cluster_id: 386, status: 5, version: "0.4.1", stack: "gcp", status_reason: nil>2594 status state machine2595 #make_installing2596 is installing2597 #make_installed2598 is installed2599 does not update the helm version2600 the cluster has no helm installed2601 runs without errors2602 application is updating2603 is updated2604 does not update the helm version2605 the cluster has no helm installed2606 runs without errors2607 #make_errored2608 is errored2609 application is updating2610 is update_errored2611 application is uninstalling2612 is uninstall_errored2613 #make_externally_installed2614 is installed2615 helm record does not exist2616 does not create a helm record2617 helm record exists2618 does not update helm version2619 application is updated2620 is installed2621 application is errored2622 is installed2623 clears #status_reason2624 #make_externally_uninstalled2625 is uninstalled2626 application is updated2627 is uninstalled2628 application is errored2629 is uninstalled2630 clears #status_reason2631 #make_scheduled2632 is scheduled2633 when installed2634 is scheduled2635 when was errored2636 clears #status_reason2637 when was updated_errored2638 clears #status_reason2639 when was uninstall_errored2640 clears #status_reason2641 #make_uninstalling2642 is uninstalling2643 #available?2644 trait: :not_installable, available: false2645 is expected not to be available2646 trait: :installable, available: false2647 is expected not to be available2648 trait: :scheduled, available: false2649 is expected not to be available2650 trait: :installing, available: false2651 is expected not to be available2652 trait: :installed, available: true2653 is expected to be available2654 trait: :updating, available: false2655 is expected not to be available2656 trait: :updated, available: true2657 is expected to be available2658 trait: :errored, available: false2659 is expected not to be available2660 trait: :update_errored, available: false2661 is expected not to be available2662 trait: :uninstalling, available: false2663 is expected not to be available2664 trait: :uninstall_errored, available: false2665 is expected not to be available2666 trait: :uninstalled, available: false2667 is expected not to be available2668 trait: :timed_out, available: false2669 is expected not to be available2670 trait: :externally_installed, available: true2671 is expected to be available2672 update_available?2673 version is not the same as VERSION2674 is expected to be truthy2675 version is the same as VERSION2676 is expected to be falsey2677 #make_installed2678 sets the correct version of the application2679 application is updating2680 updates the version of the application2681 #make_externally_installed2682 sets to a special version2683 #status2684 sets a default status2685 validations2686 is expected to validate that :stack cannot be empty/falsy2687 #can_uninstall?2688 is expected to be truthy2689 #install_command2690 is expected to be an instance of Gitlab::Kubernetes::Helm::V3::InstallCommand2691 is initialized with crossplane arguments2692 application failed to install previously2693 is initialized with the locked version2694 #files2695 includes crossplane specific keys in the values.yaml file2696GroupChildEntity2697 for a project2698 has the correct type2699 includes the star count2700 has the correct edit path2701 includes the last activity at2702 behaves like group child json2703 renders json2704 includes id2705 includes full_name2706 includes avatar_url2707 includes name2708 includes description2709 includes markdown_description2710 includes visibility2711 includes type2712 includes can_edit2713 includes visibility2714 includes permission2715 includes relative_path2716 for a group2717 has the correct type2718 counts projects and subgroups as children2719 includes children_count2720 includes leave_path2721 includes parent_id2722 includes number_users_with_delimiter2723 includes project_count2724 includes subgroup_count2725 allows an owner to leave when there is another one2726 allows an owner to delete the group2727 allows admin to delete the group2728 disallows a maintainer to delete the group2729 has the correct edit path2730 emoji in description2731 has the correct markdown_description2732 behaves like group child json2733 renders json2734 includes id2735 includes full_name2736 includes avatar_url2737 includes name2738 includes description2739 includes markdown_description2740 includes visibility2741 includes type2742 includes can_edit2743 includes visibility2744 includes permission2745 includes relative_path2746 for a private group2747 user is member of the group2748 includes the counts2749 user is not a member of the group2750 does not include the counts2751 user is only a member of a project in the group2752 does not include the counts2753 for a project with external authorization enabled2754 does not hit the external authorization service2755Admin::ProjectsFinder2756 #execute2757 without a user2758 is expected to contain exactly #<Project id:344 namespace381/D>>, #<Project id:343 group127/C>>, #<Project id:342 group127/B>>, and #<Project id:341 namespace378/A>>2759 with a user2760 is expected to contain exactly #<Project id:348 namespace385/D>>, #<Project id:347 group128/C>>, #<Project id:346 group128/B>>, and #<Project id:345 namespace382/A>>2761 with pending delete project2762 is expected not to include #<Project id:353 namespace390/project395>>2763 filter by namespace_id2764 is expected to eq [#<Project id:358 namespace395/project396>>]2765 filter by visibility_level2766 private2767 is expected to contain exactly #<Project id:362 namespace399/D>> and #<Project id:359 namespace396/A>>2768 internal2769 is expected to eq [#<Project id:364 group132/B>>]2770 public2771 is expected to eq [#<Project id:369 group133/C>>]2772 filter by push2773 is expected to eq [#<Project id:375 namespace412/project397>>]2774 filter by abandoned2775 is expected to eq [#<Project id:376 namespace413/A>>]2776 filter by last_repository_check_failed2777 is expected to eq [#<Project id:380 namespace417/A>>]2778 filter by archived2779 archived=false2780 is expected to contain exactly #<Project id:387 namespace424/D>>, #<Project id:386 group137/C>>, #<Project id:385 group137/B>>, and #<Project id:384 namespace421/A>>2781 archived=true2782 is expected to contain exactly #<Project id:393 namespace430/E>>, #<Project id:392 namespace429/D>>, #<Project id:391 group138/C>>, #<Project id:390 group138/B>>, and #<Project id:389 namespace426/A>>2783 archived=only2784 is expected to eq [#<Project id:398 namespace435/E>>]2785 filter by personal2786 is expected to eq [#<Project id:403 user1056/project398>>]2787 filter by name2788 is expected to contain exactly #<Project id:406 group141/C>>2789 sorting2790 is expected to eq [#<Project id:408 namespace444/A>>, #<Project id:409 group142/B>>, #<Project id:410 group142/C>>, #<Project id:411 namespace447/D>>]2791UsersController routing2792 to #show2793 to #gpg_keys2794 to #groups2795 to #projects2796 to #contributed2797 to #snippets2798 to #ssh_keys2799 to #calendar2800 to #calendar_activities2801SearchController routing2802 to #show2803Mounted Apps routing2804 to API2805SnippetsController routing2806 to #raw2807 to #index2808 to #new2809 to #edit2810 to #show2811 to #raw from unscoped routing2812 behaves like redirecting a legacy path2813 redirects /snippets/1 to /-/snippets/12814HelpController routing2815 to #index2816 to #show2817ProfilesController routing2818 to #account2819 to #audit_log2820 to #reset_feed_token2821 to #show2822Profiles::PreferencesController routing2823 to #show2824 to #update2825Profiles::KeysController routing2826 to #index2827 to #create2828 to #show2829 to #destroy2830Profiles::GpgKeysController routing2831 to #index2832 to #create2833 to #destroy2834Profiles::EmailsController routing2835 to #index2836 to #create2837 to #destroy2838Profiles::AvatarsController routing2839 to #destroy2840DashboardController routing2841 to #index2842 to #issues2843 to #calendar_issues2844 to #merge_requests2845RootController routing2846 to #index2847Authentication routing2848 GET /users/sign_in2849 POST /users/sign_in2850 POST /users/sign_out2851 POST /users/password2852 GET /users/password/new2853 GET /users/password/edit2854 PUT /users/password2855 with LDAP configured2856 POST /users/auth/ldapmain/callback2857 with LDAP sign-in disabled2858 prevents POST /users/auth/ldapmain/callback2859 with multiple LDAP providers configured2860 POST /users/auth/ldapmain/callback2861 POST /users/auth/ldapsecondary/callback2862HealthCheckController routing2863 to #index2864 also supports passing checks in the url2865InvitesController routing2866 to #show2867AbuseReportsController routing2868 to #new2869SentNotificationsController routing2870 to #unsubscribe2871AutocompleteController routing2872 to #users2873 to #projects2874 to #award_emojis2875 to #merge_request_target_branches2876SandboxController routing2877 to #mermaid2878Snippets::BlobsController routing2879 to #raw2880RunnerSetupController routing2881 to #platforms2882JwksController routing2883 to #index2884Banzai::Filter::References::MergeRequestReferenceFilter2885 requires project context2886 ignores valid references contained inside 'pre' element2887 ignores valid references contained inside 'code' element2888 ignores valid references contained inside 'a' element2889 ignores valid references contained inside 'style' element2890 performance2891 does not have a N+1 query problem2892 all references2893 adds merge request iid2894 adds project data attribute with project id2895 does not add `has-tooltip` class2896 internal reference2897 links to a valid reference2898 links with adjacent text2899 ignores invalid merge IDs2900 ignores out-of-bounds merge request IDs on the referenced project2901 has the MR title in the title attribute2902 escapes the title attribute2903 includes default classes, without tooltip2904 includes a data-project attribute2905 includes a data-merge-request attribute2906 includes a data-reference-format attribute2907 includes a data-reference-format attribute for URL references2908 supports an :only_path context2909 cross-project / cross-namespace complete reference2910 links to a valid reference2911 link has valid text2912 has valid text2913 has correct data attributes2914 ignores invalid merge IDs on the referenced project2915 cross-project / same-namespace complete reference2916 links to a valid reference2917 link has valid text2918 has valid text2919 ignores invalid merge IDs on the referenced project2920 cross-project shorthand reference2921 links to a valid reference2922 link has valid text2923 has valid text2924 ignores invalid merge IDs on the referenced project2925 URL reference for a commit2926 links to a valid reference2927 commit ref tag is valid2928 has valid text2929 ignores invalid commit short_ids on link text2930 cross-project URL reference2931 links to a valid reference2932 links with adjacent text2933 group context2934 links to a valid reference2935MergeRequestPresenter2936 #mergeable_discussions_state2937 returns the mergeable_discussions_state2938 #ci_status2939 when no head pipeline2940 return status from Ci integration2941 when head pipeline present2942 success with warnings2943 returns "success-with-warnings"2944 pipeline HAS status AND its not success with warnings2945 returns pipeline status2946 pipeline has NO status AND its not success with warnings2947 returns "preparing"2948 #conflict_resolution_path2949 when MR cannot be resolved in UI2950 does not return conflict resolution path2951 when conflicts cannot be resolved by user2952 does not return conflict resolution path2953 when able to access conflict resolution UI2954 does return conflict resolution path2955 issues links2956 #closing_issues_links2957 presents closing issues links2958 does not present related issues links2959 appends status when closing issue is already closed2960 #mentioned_issues_links2961 presents related issues links2962 does not present closing issues links2963 appends status when mentioned issue is already closed2964 #assign_to_closing_issues_path2965 is expected to match "user1065/project463/-/merge_requests/1/assign_related_issues"2966 #assign_to_closing_issues_count2967 single closing issue2968 returns correct count2969 multiple closing issues2970 returns correct count2971 no closing issue2972 returns correct count2973 #cancel_auto_merge_path2974 when can cancel mwps2975 returns path2976 when cannot cancel mwps2977 returns nil2978 #merge_path2979 when can be merged by user2980 returns path2981 when cannot be merged by user2982 returns nil2983 #create_issue_to_resolve_discussions_path2984 when can create issue and issues enabled2985 returns path2986 when cannot create issue2987 returns nil2988 when issues disabled2989 returns nil2990 #remove_wip_path2991 when merge request enabled and has permission2992 has remove_wip_path2993 when has no permission2994 returns nil2995 #target_branch_commits_path2996 when target branch exists2997 returns path2998 when target branch does not exist2999 returns nil3000 #source_branch_commits_path3001 when source branch exists3002 returns path3003 when source branch does not exist3004 returns nil3005 #target_branch_tree_path3006 when target branch exists3007 returns path3008 when target branch does not exist3009 returns nil3010 #source_branch_path3011 when source branch exists3012 returns path3013 when source branch does not exist3014 returns nil3015 #target_branch_path3016 when target branch exists3017 returns path3018 when target branch does not exist3019 returns nil3020 #source_branch_link3021 when source branch exists3022 returns link3023 when source branch does not exist3024 returns text3025 #target_branch_link3026 when target branch exists3027 returns link3028 when target branch does not exist3029 returns text3030 #source_branch_with_namespace_link3031 returns link3032 escapes html, when source_branch does not exist3033 #rebase_path3034 when can rebase3035 returns path3036 when cannot rebase3037 when rebase in progress3038 returns nil3039 when user cannot merge3040 returns nil3041 should not be rebased3042 returns nil3043 #can_push_to_source_branch3044 when source branch exists AND user can push to source branch3045 returns true3046 when source branch does not exists3047 returns false3048 when user cannot push to source branch3049 returns false3050 #api_approvals_path3051 is expected to eq "/api/v4/projects/472/merge_requests/1/approvals"3052 #api_approve_path3053 is expected to eq "/api/v4/projects/472/merge_requests/1/approve"3054 #api_unapprove_path3055 is expected to eq "/api/v4/projects/472/merge_requests/1/unapprove"3056 #pipeline_coverage_delta3057 when merge request has pipeline coverage delta3058 formats coverage into 2 decimal points3059 when merge request does not have pipeline coverage delta3060 returns nil3061Git::WikiPushService3062 #execute3063 executes model-specific callbacks3064 #process_changes3065 calls log_error for every event we cannot create3066 the push contains more than the permitted number of changes3067 creates only MAX_CHANGES events3068 default_branch collides with a tag3069 creates only one event3070 successfully creating events3071 creates one event for every wiki action3072 handles all known actions3073 when wiki_page slug is not UTF-83074 does not raise an error3075 two pages have been created3076 creates two events3077 creates two metadata records3078 creates appropriate events3079 a non-page file as been added3080 does not create events, or WikiPage metadata3081 one page, and one non-page have been created3082 creates a wiki page creation event3083 creates one metadata record3084 one page has been added, and then updated3085 creates just a single event3086 creates just one metadata record3087 creates a new wiki page creation event3088 when a page we already know about has been updated3089 does not create a new meta-data record3090 creates a new event3091 adds an update event3092 when a page we do not know about has been updated3093 creates a new meta-data record3094 creates a new event3095 adds an update event3096 when a page we do not know about has been deleted3097 create a new meta-data record3098 creates a new event3099 adds an update event3100 #perform_housekeeping3101 does not perform housekeeping when not needed3102 increments the push counter3103 when housekeeping is needed3104 performs housekeeping3105 does not raise an exception3106Resolvers::BoardListIssuesResolver3107 #resolve3108 when project boards3109 behaves like group and project board list issues resolver3110 when authorized3111 generates a mutually exclusive filter error when milestone wildcard and title are provided3112 returns the issues in the correct order3113 finds only issues matching filters3114 finds only issues filtered by milestone wildcard3115 finds only issues matching search param3116 filters issues by negated issue type3117 generates an error if both assignee_username and assignee_wildcard_id are present3118 accepts assignee wildcard id NONE3119 accepts assignee wildcard id ANY3120 when filtering by confidential3121 returns matching issue3122 when group boards3123 behaves like group and project board list issues resolver3124 when authorized3125 generates a mutually exclusive filter error when milestone wildcard and title are provided3126 returns the issues in the correct order3127 finds only issues matching filters3128 finds only issues filtered by milestone wildcard3129 finds only issues matching search param3130 filters issues by negated issue type3131 generates an error if both assignee_username and assignee_wildcard_id are present3132 accepts assignee wildcard id NONE3133 accepts assignee wildcard id ANY3134 when filtering by confidential3135 returns matching issue3136Issues::ImportCsvService3137 #execute3138 invalid file extension3139 behaves like invalid file3140 returns invalid file error3141 behaves like importer with email notification3142 notifies user of import result3143 behaves like an issuable importer3144 records the import attempt if resource is an issue3145 empty file3146 behaves like invalid file3147 returns invalid file error3148 behaves like importer with email notification3149 notifies user of import result3150 behaves like an issuable importer3151 records the import attempt if resource is an issue3152 file without headers3153 behaves like invalid file3154 returns invalid file error3155 behaves like importer with email notification3156 notifies user of import result3157 behaves like an issuable importer3158 records the import attempt if resource is an issue3159 with a file generated by Gitlab CSV export3160 imports the CSV without errors3161 correctly sets the issuable attributes3162 behaves like importer with email notification3163 notifies user of import result3164 behaves like an issuable importer3165 records the import attempt if resource is an issue3166 comma delimited file3167 imports CSV without errors3168 correctly sets the issuable attributes3169 behaves like importer with email notification3170 notifies user of import result3171 behaves like an issuable importer3172 records the import attempt if resource is an issue3173 tab delimited file with error row3174 imports CSV with some error rows3175 correctly sets the issuable attributes3176 behaves like importer with email notification3177 notifies user of import result3178 behaves like an issuable importer3179 records the import attempt if resource is an issue3180 semicolon delimited file with CRLF3181 imports CSV with a blank row3182 correctly sets the issuable attributes3183 behaves like importer with email notification3184 notifies user of import result3185 behaves like an issuable importer3186 records the import attempt if resource is an issue3187 #execute3188 sets all issueable attributes and executes quick actions3189Ability3190 using a nil subject3191 has no permissions3192 .users_that_can_read_project3193 using a public project3194 returns all the users3195 using an internal project3196 returns users that are administrators3197 returns internal users while skipping external users3198 returns external users if they are the project owner3199 returns external users if they are project members3200 returns an empty Array if all users are external users without access3201 using a private project3202 returns users that are administrators when admin mode is enabled3203 does not return users that are administrators when admin mode is disabled3204 returns external users if they are the project owner3205 returns external users if they are project members3206 returns an empty Array if all users are internal users without access3207 returns an empty Array if all users are external users without access3208 .users_that_can_read_personal_snippet3209 private snippet is readable only by its author3210 public snippet is readable by all users3211 .users_that_can_read_internal_note3212 for groups3213 behaves like filtering users that can read internal note3214 returns users that can read internal notes3215 for projects3216 behaves like filtering users that can read internal note3217 returns users that can read internal notes3218 .merge_requests_readable_by_user3219 with an admin when admin mode is enabled3220 returns all merge requests3221 with an admin when admin mode is disabled3222 returns merge_requests that are publicly visible3223 without a user3224 returns merge_requests that are publicly visible3225 with a user3226 returns projects visible to the user3227 when a user cannot read cross project and a filter is passed3228 returns only MRs of the specified project without checking access on others3229 .issues_readable_by_user3230 with an admin when admin mode is enabled3231 returns all given issues3232 with an admin when admin mode is disabled3233 returns the issues readable by the admin3234 returns no issues when not given access3235 with a regular user3236 returns the issues readable by the user3237 returns an empty Array when no issues are readable3238 without a regular user3239 returns issues that are publicly visible3240 when the user cannot read cross project3241 excludes issues from other projects whithout checking separatly when passing a scope3242 .feature_flags_readable_by_user3243 without a user3244 returns no feature flags3245 with a user3246 returns feature flags visible to the user3247 when a user cannot read cross project and a filter is passed3248 returns only feature flags of the specified project without checking access on others3249 .project_disabled_features_rules3250 wiki named abilities3251 disables wiki abilities if the project has no wiki3252 forgetting3253 allows us to discard specific values from the DeclarativePolicy cache3254 when bypassing the session3255 allows us to have re-entrant evaluation of admin-only permissions3256Serverless::DomainCluster3257 validations3258 is expected to validate that :pages_domain cannot be empty/falsy3259 is expected to validate that :knative cannot be empty/falsy3260 is expected to validate that :uuid cannot be empty/falsy3261 is expected to validate that the length of :uuid is 143262 is expected to validate that :uuid is case-sensitively unique3263 validates that uuid has only hex characters3264 associations3265 is expected to belong to pages_domain required: false3266 is expected to belong to knative required: false3267 is expected to belong to creator optional: true3268 uuid3269 when nil3270 generates a value by default3271 when not nil3272 does not override the existing value3273 cluster3274 is expected to respond to #cluster3275 domain3276 is expected to respond to #domain3277 certificate3278 is expected to respond to #certificate3279 key3280 is expected to respond to #key3281MergeRequests::LinkLfsObjectsService3282 when no oldrev and newrev passed3283 behaves like linking LFS objects3284 when source project is the same as target project3285 does not call Projects::LfsPointers::LfsLinkService#execute3286 when source project is different from target project3287 and there are changes3288 and there are LFS objects added3289 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of LFS objects in merge request3290 but there are no LFS objects added3291 does not call Projects::LfsPointers::LfsLinkService#execute3292 and there are no changes3293 does not call Projects::LfsPointers::LfsLinkService#execute3294 when oldrev and newrev are passed3295 behaves like linking LFS objects3296 when source project is the same as target project3297 does not call Projects::LfsPointers::LfsLinkService#execute3298 when source project is different from target project3299 and there are changes3300 and there are LFS objects added3301 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of LFS objects in merge request3302 but there are no LFS objects added3303 does not call Projects::LfsPointers::LfsLinkService#execute3304 and there are no changes3305 does not call Projects::LfsPointers::LfsLinkService#execute3306MergeRequestsHelper3307 #format_mr_branch_names3308 within the same project3309 is expected to eq ["master", "feature"]3310 within different projects3311 is expected to eq ["group146/project566:master", "namespace596/project565:feature"]3312 #merge_path_description3313 forked with arrow3314 is expected to eq "Project:Branches: group147/project568:master → namespace597/project567:feature"3315 forked default3316 is expected to eq "Project:Branches: group148/project570:master to namespace598/project569:feature"3317 with arrow3318 is expected to eq "Branches: master → feature"3319 default3320 is expected to eq "Branches: master to feature"3321 #tab_link_for3322 supports the :force_link option3323 removes the data-toggle attributes3324 #user_merge_requests_counts3325 returns assigned, review requested and total merge request counts3326 #reviewers_label3327 when multiple reviewers exist3328 returns reviewer label with reviewer names3329 returns reviewer label only with include_value: false3330 when the name contains a URL3331 returns sanitized name3332 when one reviewer exists3333 returns reviewer label with no names3334 returns reviewer label only with include_value: false3335 when no reviewers exist3336 returns reviewer label with no names3337 returns reviewer label only with include_value: false3338Approvable3339 # order random3340 #approved_by?3341 when a user has not approved3342 returns false3343 when a user has approved3344 returns false3345 when a user is nil3346 returns false3347 #eligible_for_unapproval_by?3348 returns false3349 when a user has approved3350 returns true3351 when a user is nil3352 returns false3353 #eligible_for_approval_by?3354 returns true3355 when a user has approved3356 returns false3357 when a user is nil3358 returns false3359 .not_approved_by_users_with_usernames3360 has the merge request that is not approved at all and not approved by either user3361npm.gitlab-ci.yml3362 the created pipeline3363 on default branch3364 when package.json has been changed3365 behaves like publish job created3366 creates a pipeline with a single job: publish3367 when package.json does not exist or has not been changed3368 behaves like no pipeline created3369 does not create a pipeline because the only job (publish) is not created3370 when the branch name is v1.0.03371 behaves like publish job created3372 creates a pipeline with a single job: publish3373 when the tag name is v1.0.03374 behaves like publish job created3375 creates a pipeline with a single job: publish3376 when the branch name is v2.1.0-alpha3377 behaves like publish job created3378 creates a pipeline with a single job: publish3379 when the tag name is v2.1.0-alpha3380 behaves like publish job created3381 creates a pipeline with a single job: publish3382 when the branch name is patch-13383 behaves like no pipeline created3384 does not create a pipeline because the only job (publish) is not created3385 when the tag name is patch-13386 behaves like no pipeline created3387 does not create a pipeline because the only job (publish) is not created3388 when the branch name is my-feature-branch3389 behaves like no pipeline created3390 does not create a pipeline because the only job (publish) is not created3391 when the tag name is my-feature-branch3392 behaves like no pipeline created3393 does not create a pipeline because the only job (publish) is not created3394 when the branch name is v13395 behaves like no pipeline created3396 does not create a pipeline because the only job (publish) is not created3397 when the tag name is v13398 behaves like no pipeline created3399 does not create a pipeline because the only job (publish) is not created3400 when the branch name is v1.03401 behaves like no pipeline created3402 does not create a pipeline because the only job (publish) is not created3403 when the tag name is v1.03404 behaves like no pipeline created3405 does not create a pipeline because the only job (publish) is not created3406 when the branch name is 2.1.03407 behaves like no pipeline created3408 does not create a pipeline because the only job (publish) is not created3409 when the tag name is 2.1.03410 behaves like no pipeline created3411 does not create a pipeline because the only job (publish) is not created3412Projects::AfterRenameService3413 #execute3414 using legacy storage3415 renames a repository3416 updates project full path in gitaly3417 updates storage location3418 container registry with images3419 raises a RenameFailedError3420 attachments3421 moves uploads folder to new location3422 with hashed storage upgrade when renaming enabled3423 calls HashedStorage::MigrationService with correct options3424 using hashed storage3425 renames a repository3426 updates project full path in gitaly3427 updates storage location3428 container registry with images3429 raises a RenameFailedError3430 attachments3431 keeps uploads folder location unchanged3432 when not rolled out3433 moves attachments folder to hashed storage3434 EventStore3435 publishes a ProjectPathChangedEvent3436Gitlab::Ci::Ansi2json::Style3437 #set?3438 when fg color is set3439 is expected to be truthy3440 when bg color is set3441 is expected to be truthy3442 when mask is set3443 is expected to be truthy3444 nothing is set3445 is expected to be falsey3446 #reset!3447 set the style params to default3448 update formats to mimic terminals3449 when fg color present3450 when mask is set to bold3451 changes the fg color to a lighter version3452 when mask set to another format3453 does not change the fg color3454 when mask is not set3455 does not change the fg color3456 #update3457 initial_state: [], ansi_commands: ["0"], result: "", description: "does not set any style"3458 change the style3459 initial_state: [], ansi_commands: ["1"], result: "term-bold", description: "enables format bold"3460 change the style3461 initial_state: [], ansi_commands: ["3"], result: "term-italic", description: "enables format italic"3462 change the style3463 initial_state: [], ansi_commands: ["4"], result: "term-underline", description: "enables format underline"3464 change the style3465 initial_state: [], ansi_commands: ["8"], result: "term-conceal", description: "enables format conceal"3466 change the style3467 initial_state: [], ansi_commands: ["9"], result: "term-cross", description: "enables format cross"3468 change the style3469 initial_state: ["1"], ansi_commands: ["21"], result: "", description: "disables format bold"3470 change the style3471 initial_state: ["1", "3"], ansi_commands: ["21"], result: "term-italic", description: "disables format bold and leaves italic"3472 change the style3473 initial_state: ["1"], ansi_commands: ["22"], result: "", description: "disables format bold using command 22"3474 change the style3475 initial_state: ["1", "3"], ansi_commands: ["22"], result: "term-italic", description: "disables format bold and leaves italic using command 22"3476 change the style3477 initial_state: ["3"], ansi_commands: ["23"], result: "", description: "disables format italic"3478 change the style3479 initial_state: ["1", "3"], ansi_commands: ["23"], result: "term-bold", description: "disables format italic and leaves bold"3480 change the style3481 initial_state: ["4"], ansi_commands: ["24"], result: "", description: "disables format underline"3482 change the style3483 initial_state: ["1", "4"], ansi_commands: ["24"], result: "term-bold", description: "disables format underline and leaves bold"3484 change the style3485 initial_state: ["8"], ansi_commands: ["28"], result: "", description: "disables format conceal"3486 change the style3487 initial_state: ["1", "8"], ansi_commands: ["28"], result: "term-bold", description: "disables format conceal and leaves bold"3488 change the style3489 initial_state: ["9"], ansi_commands: ["29"], result: "", description: "disables format cross"3490 change the style3491 initial_state: ["1", "9"], ansi_commands: ["29"], result: "term-bold", description: "disables format cross and leaves bold"3492 change the style3493 initial_state: [], ansi_commands: ["30"], result: "term-fg-black", description: "sets fg color black"3494 change the style3495 initial_state: [], ansi_commands: ["31"], result: "term-fg-red", description: "sets fg color red"3496 change the style3497 initial_state: [], ansi_commands: ["32"], result: "term-fg-green", description: "sets fg color green"3498 change the style3499 initial_state: [], ansi_commands: ["33"], result: "term-fg-yellow", description: "sets fg color yellow"3500 change the style3501 initial_state: [], ansi_commands: ["34"], result: "term-fg-blue", description: "sets fg color blue"3502 change the style3503 initial_state: [], ansi_commands: ["35"], result: "term-fg-magenta", description: "sets fg color magenta"3504 change the style3505 initial_state: [], ansi_commands: ["36"], result: "term-fg-cyan", description: "sets fg color cyan"3506 change the style3507 initial_state: [], ansi_commands: ["37"], result: "term-fg-white", description: "sets fg color white"3508 change the style3509 initial_state: [], ansi_commands: ["38", "5", "1"], result: "xterm-fg-1", description: "sets xterm fg color 1"3510 change the style3511 initial_state: [], ansi_commands: ["38", "5", "2"], result: "xterm-fg-2", description: "sets xterm fg color 2"3512 change the style3513 initial_state: [], ansi_commands: ["38", "1"], result: "term-bold", description: "ignores 38 command if not followed by 5 and sets format bold"3514 change the style3515 initial_state: [], ansi_commands: ["40"], result: "term-bg-black", description: "sets bg color black"3516 change the style3517 initial_state: [], ansi_commands: ["41"], result: "term-bg-red", description: "sets bg color red"3518 change the style3519 initial_state: [], ansi_commands: ["42"], result: "term-bg-green", description: "sets bg color green"3520 change the style3521 initial_state: [], ansi_commands: ["43"], result: "term-bg-yellow", description: "sets bg color yellow"3522 change the style3523 initial_state: [], ansi_commands: ["44"], result: "term-bg-blue", description: "sets bg color blue"3524 change the style3525 initial_state: [], ansi_commands: ["45"], result: "term-bg-magenta", description: "sets bg color magenta"3526 change the style3527 initial_state: [], ansi_commands: ["46"], result: "term-bg-cyan", description: "sets bg color cyan"3528 change the style3529 initial_state: [], ansi_commands: ["47"], result: "term-bg-white", description: "sets bg color white"3530 change the style3531 initial_state: [], ansi_commands: ["48", "5", "1"], result: "xterm-bg-1", description: "sets xterm bg color 1"3532 change the style3533 initial_state: [], ansi_commands: ["48", "5", "2"], result: "xterm-bg-2", description: "sets xterm bg color 2"3534 change the style3535 initial_state: [], ansi_commands: ["48", "1"], result: "term-bold", description: "ignores 48 command if not followed by 5 and sets format bold"3536 change the style3537 initial_state: [], ansi_commands: ["90"], result: "term-fg-l-black", description: "sets fg color light black"3538 change the style3539 initial_state: [], ansi_commands: ["91"], result: "term-fg-l-red", description: "sets fg color light red"3540 change the style3541 initial_state: [], ansi_commands: ["92"], result: "term-fg-l-green", description: "sets fg color light green"3542 change the style3543 initial_state: [], ansi_commands: ["93"], result: "term-fg-l-yellow", description: "sets fg color light yellow"3544 change the style3545 initial_state: [], ansi_commands: ["94"], result: "term-fg-l-blue", description: "sets fg color light blue"3546 change the style3547 initial_state: [], ansi_commands: ["95"], result: "term-fg-l-magenta", description: "sets fg color light magenta"3548 change the style3549 initial_state: [], ansi_commands: ["96"], result: "term-fg-l-cyan", description: "sets fg color light cyan"3550 change the style3551 initial_state: [], ansi_commands: ["97"], result: "term-fg-l-white", description: "sets fg color light white"3552 change the style3553 initial_state: [], ansi_commands: ["100"], result: "term-bg-l-black", description: "sets bg color light black"3554 change the style3555 initial_state: [], ansi_commands: ["101"], result: "term-bg-l-red", description: "sets bg color light red"3556 change the style3557 initial_state: [], ansi_commands: ["102"], result: "term-bg-l-green", description: "sets bg color light green"3558 change the style3559 initial_state: [], ansi_commands: ["103"], result: "term-bg-l-yellow", description: "sets bg color light yellow"3560 change the style3561 initial_state: [], ansi_commands: ["104"], result: "term-bg-l-blue", description: "sets bg color light blue"3562 change the style3563 initial_state: [], ansi_commands: ["105"], result: "term-bg-l-magenta", description: "sets bg color light magenta"3564 change the style3565 initial_state: [], ansi_commands: ["106"], result: "term-bg-l-cyan", description: "sets bg color light cyan"3566 change the style3567 initial_state: [], ansi_commands: ["107"], result: "term-bg-l-white", description: "sets bg color light white"3568 change the style3569 initial_state: ["1"], ansi_commands: [], result: "", description: "resets style from format bold"3570 change the style3571 initial_state: ["1"], ansi_commands: ["0"], result: "", description: "resets style from format bold"3572 change the style3573 initial_state: ["1", "3"], ansi_commands: ["0"], result: "", description: "resets style from format bold and italic"3574 change the style3575 initial_state: ["1", "3", "term-fg-l-red", "term-bg-yellow"], ansi_commands: ["0"], result: "", description: "resets all formats and colors"3576 change the style3577 initial_state: ["31", "42"], ansi_commands: ["39"], result: "term-bg-green", description: "set foreground from red to default leaving background unchanged"3578 change the style3579 initial_state: ["31", "42"], ansi_commands: ["49"], result: "term-fg-red", description: "set background from green to default leaving foreground unchanged"3580 change the style3581 initial_state: [], ansi_commands: ["1", "30", "42", "3"], result: "term-fg-l-black term-bg-green term-bold term-italic", description: "adds fg color, bg color and formats from no style"3582 change the style3583 initial_state: ["3", "31"], ansi_commands: ["23", "1", "43"], result: "term-fg-l-red term-bg-yellow term-bold", description: "replaces format italic with bold and adds a yellow background"3584 change the style3585Integrations::Prometheus3586 redirects3587 does not follow redirects3588 Validations3589 when manual_configuration is enabled3590 validates presence of api_url3591 when manual configuration is disabled3592 does not validate presence of api_url3593 local connections allowed3594 does not validate presence of api_url3595 when the api_url domain points to localhost or local network3596 cannot query3597 can query when local requests are allowed3598 with self-monitoring project and internal Prometheus3599 allows self-monitoring project to connect to internal Prometheus3600 does not allow self-monitoring project to connect to other local URLs3601 #test3602 success3603 reads the discovery endpoint3604 failure3605 fails to read the discovery endpoint3606 when configuration is not valid3607 returns failure message3608 #prometheus_client3609 manual configuration is enabled3610 calls valid?3611 manual configuration is disabled3612 no client provided3613 when local requests are allowed3614 allows local requests3615 when local requests are blocked3616 blocks local requests3617 with self-monitoring project and internal Prometheus URL3618 allows local requests3619 behind IAP3620 includes the authorization header3621 when passed with token_credential_uri3622 param_name: :token_credential_uri3623 does not make any unexpected HTTP requests3624 param_name: :tokencredentialuri3625 does not make any unexpected HTTP requests3626 param_name: :Token_credential_uri3627 does not make any unexpected HTTP requests3628 param_name: :tokenCredentialUri3629 does not make any unexpected HTTP requests3630 #prometheus_available?3631 clusters with enabled prometheus3632 cluster belongs to project3633 returns true3634 cluster belongs to projects group3635 returns true3636 avoids N+1 queries3637 cluster belongs to gitlab instance3638 returns true3639 clusters with prometheus disabled3640 returns false3641 clusters without prometheus3642 returns false3643 no clusters3644 returns false3645 #synchronize_service_state before_save callback3646 no clusters with prometheus are installed3647 when integration is inactive3648 activates integration when manual_configuration is enabled3649 keeps integration inactive when manual_configuration is disabled3650 when integration is active3651 keeps the integration active when manual_configuration is enabled3652 inactivates the integration when manual_configuration is disabled3653 with prometheus installed in the cluster3654 when integration is inactive3655 activates integration when manual_configuration is enabled3656 activates integration when manual_configuration is disabled3657 when integration is active3658 keeps integration active when manual_configuration is enabled3659 keeps integration active when manual_configuration is disabled3660 #track_events after_commit callback3661 enabling manual_configuration3662 tracks enable event3663 tracks disable event3664 #editable?3665 is editable3666 when cluster exists with prometheus enabled3667 remains editable3668MergeRequests::RequestReviewService3669 #execute3670 invalid permissions3671 behaves like failed service execution3672 returns an error3673 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated3674 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times3675 reviewer does not exist3676 behaves like failed service execution3677 returns an error3678 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated3679 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times3680 reviewer exists3681 returns success3682 updates reviewers state3683 sends email to reviewer3684 creates a new todo for the reviewer3685 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated3686 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:151 namespace664/project636!1>) 1 time3687Gitlab::Database::Migrations::TestBatchedBackgroundRunner3688 main database3689 running a real background migration3690 runs sampled jobs from the batched background migration3691 uses the correct connection to instrument the background migration3692 with jobs to run3693 samples jobs3694 with multiple jobs to run3695 runs all jobs created within the last 3 hours3696 choosing uniform batches to run3697 #uniform_fractions3698 generates evenly distributed sequences of fractions3699 ci database3700 running a real background migration3701 runs sampled jobs from the batched background migration3702 uses the correct connection to instrument the background migration3703 with jobs to run3704 samples jobs3705 with multiple jobs to run3706 runs all jobs created within the last 3 hours3707 choosing uniform batches to run3708 #uniform_fractions3709 generates evenly distributed sequences of fractions3710Ci::JobToken::ProjectScopeLink3711 is expected to belong to source_project required: false3712 is expected to belong to target_project required: false3713 is expected to belong to added_by required: false3714 behaves like cleanup by a loose foreign key3715 cleans up (delete or nullify) the model3716 unique index3717 raises an error3718 validations3719 must have a source project3720 must have a target project3721 must have a target project different than source project3722 .from_project3723 returns only the links having the given source project3724 .to_project3725 returns only the links having the given target project3726 .for_source_and_target3727 when link is found3728 is expected to eq #<Ci::JobToken::ProjectScopeLink id: 8, source_project_id: 624, target_project_id: 633, added_by_id: 1816, created_at: "2022-11-04 14:36:14.018380585 +0000", direction: "outbound">3729 when link is not found3730 is expected to be nil3731 enums3732 is expected to define :direction as an enum backed by an integer with values ‹{outbound: 0, inbound: 1}›3733 loose foreign key on ci_job_token_project_scope_links.source_project_id3734 behaves like cleanup by a loose foreign key3735 cleans up (delete or nullify) the model3736 loose foreign key on ci_job_token_project_scope_links.target_project_id3737 behaves like cleanup by a loose foreign key3738 cleans up (delete or nullify) the model3739Gitlab::Search::AbuseDetection3740 abusive scopes validation3741 allows only approved scopes3742 disallows anything not approved3743 abusive character matching3744 does match refs permitted by git refname: main3745 does NOT match refs with special characters: main3746 does match refs permitted by git refname: тест3747 does NOT match refs with special characters: тест3748 does match refs permitted by git refname: maiñ3749 does NOT match refs with special characters: maiñ3750 does match refs permitted by git refname: main1233751 does NOT match refs with special characters: main1233752 does match refs permitted by git refname: main-v1233753 does NOT match refs with special characters: main-v1233754 does match refs permitted by git refname: main-v12.33755 does NOT match refs with special characters: main-v12.33756 does match refs permitted by git refname: feature/it_works3757 does NOT match refs with special characters: feature/it_works3758 does match refs permitted by git refname: really_important!3759 does NOT match refs with special characters: really_important!3760 does match refs permitted by git refname: 测试3761 does NOT match refs with special characters: 测试3762 numericality validation3763 considers non Integers to be invalid3764 considers Integers to be valid3765 query_string validation3766 search: "a", errors: {:query_string=>["stopword only abusive search detected"]}3767 validates query string for pointless search3768 search: "an", errors: {:query_string=>["stopword only abusive search detected"]}3769 validates query string for pointless search3770 search: "and", errors: {:query_string=>["stopword only abusive search detected"]}3771 validates query string for pointless search3772 search: "are", errors: {:query_string=>["stopword only abusive search detected"]}3773 validates query string for pointless search3774 search: "as", errors: {:query_string=>["stopword only abusive search detected"]}3775 validates query string for pointless search3776 search: "at", errors: {:query_string=>["stopword only abusive search detected"]}3777 validates query string for pointless search3778 search: "be", errors: {:query_string=>["stopword only abusive search detected"]}3779 validates query string for pointless search3780 search: "but", errors: {:query_string=>["stopword only abusive search detected"]}3781 validates query string for pointless search3782 search: "by", errors: {:query_string=>["stopword only abusive search detected"]}3783 validates query string for pointless search3784 search: "for", errors: {:query_string=>["stopword only abusive search detected"]}3785 validates query string for pointless search3786 search: "if", errors: {:query_string=>["stopword only abusive search detected"]}3787 validates query string for pointless search3788 search: "in", errors: {:query_string=>["stopword only abusive search detected"]}3789 validates query string for pointless search3790 search: "into", errors: {:query_string=>["stopword only abusive search detected"]}3791 validates query string for pointless search3792 search: "is", errors: {:query_string=>["stopword only abusive search detected"]}3793 validates query string for pointless search3794 search: "it", errors: {:query_string=>["stopword only abusive search detected"]}3795 validates query string for pointless search3796 search: "no", errors: {:query_string=>["stopword only abusive search detected"]}3797 validates query string for pointless search3798 search: "not", errors: {:query_string=>["stopword only abusive search detected"]}3799 validates query string for pointless search3800 search: "of", errors: {:query_string=>["stopword only abusive search detected"]}3801 validates query string for pointless search3802 search: "on", errors: {:query_string=>["stopword only abusive search detected"]}3803 validates query string for pointless search3804 search: "or", errors: {:query_string=>["stopword only abusive search detected"]}3805 validates query string for pointless search3806 search: "such", errors: {:query_string=>["stopword only abusive search detected"]}3807 validates query string for pointless search3808 search: "that", errors: {:query_string=>["stopword only abusive search detected"]}3809 validates query string for pointless search3810 search: "the", errors: {:query_string=>["stopword only abusive search detected"]}3811 validates query string for pointless search3812 search: "their", errors: {:query_string=>["stopword only abusive search detected"]}3813 validates query string for pointless search3814 search: "then", errors: {:query_string=>["stopword only abusive search detected"]}3815 validates query string for pointless search3816 search: "there", errors: {:query_string=>["stopword only abusive search detected"]}3817 validates query string for pointless search3818 search: "these", errors: {:query_string=>["stopword only abusive search detected"]}3819 validates query string for pointless search3820 search: "they", errors: {:query_string=>["stopword only abusive search detected"]}3821 validates query string for pointless search3822 search: "this", errors: {:query_string=>["stopword only abusive search detected"]}3823 validates query string for pointless search3824 search: "to", errors: {:query_string=>["stopword only abusive search detected"]}3825 validates query string for pointless search3826 search: "was", errors: {:query_string=>["stopword only abusive search detected"]}3827 validates query string for pointless search3828 search: "will", errors: {:query_string=>["stopword only abusive search detected"]}3829 validates query string for pointless search3830 search: "with", errors: {:query_string=>["stopword only abusive search detected"]}3831 validates query string for pointless search3832 search: "x", errors: {:query_string=>["abusive tiny search detected"]}3833 validates query string for pointless search3834 search: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", errors: {:query_string=>["abusive term length detected"]}3835 validates query string for pointless search3836 search: "", errors: {}3837 validates query string for pointless search3838 search: "*", errors: {}3839 validates query string for pointless search3840 search: "ruby", errors: {}3841 validates query string for pointless search3842 abusive type coercion from string validation3843 considers anything not a String invalid3844 considers Strings to be valid3845Gitlab::Ci::Badge::Release::Metadata3846 behaves like badge metadata3847 #to_html3848 points to link3849 contains clickable image3850 #to_markdown3851 is expected to include "http://localhost/namespace682/project656/-/badges/release.svg"3852 is expected to include "http://localhost/namespace683/project657/-/releases"3853 #to_asciidoc3854 is expected to include "http://localhost/namespace684/project658/-/badges/release.svg"3855 is expected to include "http://localhost/namespace685/project659/-/releases"3856 is expected to include "image:"3857 is expected to include "link="3858 is expected to include "title="3859 #title3860 returns latest release title3861 #image_url3862 returns valid url3863 #link_url3864 returns valid link3865load_balancing3866 # order random3867 with replica hosts configured3868 configures load balancer with two replica hosts3869 for a clustered puma worker3870 configures load balancer to have two replica hosts3871 makes a read query successfully3872 makes a write query successfully3873ProjectSnippet3874 Associations3875 is expected to belong to project required: false3876 Validation3877 is expected to validate that :project cannot be empty/falsy3878 is expected to validate that :secret is ‹false›3879 #embeddable?3880 only returns true when both project and snippet are public3881 only returns true when both project and snippet are public3882 only returns true when both project and snippet are public3883 only returns true when both project and snippet are public3884 only returns true when both project and snippet are public3885 only returns true when both project and snippet are public3886 only returns true when both project and snippet are public3887 only returns true when both project and snippet are public3888 only returns true when both project and snippet are public3889 behaves like model with repository3890 container class includes HasRepository3891 #commits_by3892 retrieves several commits from the repository by oid3893 #web_url3894 when given the only_path option3895 when only_path is false3896 returns the full web URL for this repo3897 when only_path is true3898 returns the relative web URL for this repo3899 when only_path is nil3900 returns the full web URL for this repo3901 when not given the only_path option3902 returns the full web URL for this repo3903 #url_to_repo3904 returns the SSH URL to the repository3905 #ssh_url_to_repo3906 returns the SSH URL to the repository3907 #http_url_to_repo3908 returns the HTTP URL to the repository3909 #repository3910 returns valid repo3911 uses the same container3912 #storage3913 returns valid storage3914 #full_path3915 returns valid full_path3916 #lfs_enabled?3917 returns the expected value3918 #empty_repo?3919 when the repo does not exist3920 returns true3921 when the repo exists3922 returns the empty state of the repository3923 #valid_repo?3924 is expected to equal false3925 is expected to equal true3926 #repository_exists?3927 is expected to equal false3928 is expected to equal true3929 #repo_exists?3930 is expected to equal false3931 is expected to equal true3932 #root_ref3933 is expected to equal true3934 is expected to equal false3935 is expected to equal false3936 Respond to3937 is expected to respond to #base_dir3938 is expected to respond to #disk_path3939 is expected to respond to #gitlab_shell3940 #change_head3941 delegates #change_head to repository3942 #after_repository_change_head3943 calls #reload_default_branch3944Ci::CreatePipelineService#execute3945 with resource group3946 creates bridge job with resource group3947 when sidekiq processes the job3948 transitions to pending status and triggers a downstream pipeline3949 when the resource is occupied by the other bridge3950 stays waiting for resource3951Ci::JobArtifacts::CreateService3952 #execute3953 when artifacts file is uploaded3954 logs the created artifact3955 returns artifact in the response3956 saves artifact for the given type3957 when metadata file is also uploaded3958 saves metadata artifact3959 sets expiration date according to application settings3960 when expire_in params is set to a specific value3961 sets expiration date according to the parameter3962 when expire_in params is set to `never`3963 sets expiration date according to the parameter3964 when artifacts file already exists3965 when sha256 of uploading artifact is the same of the existing one3966 ignores the changes3967 when sha256 of uploading artifact is different than the existing one3968 returns error status3969 when artifact type is dotenv3970 calls parse service3971 with job partitioning3972 sets partition_id on artifacts3973 behaves like rescues object storage error3974 handles Errno::EIO3975 behaves like rescues object storage error3976 handles Google::Apis::ServerError3977 behaves like rescues object storage error3978 handles Signet::RemoteServerError3979Gitlab::FileFinder3980 #find3981 does not cause N+1 query3982 behaves like file finder3983 finds by path3984 finds by content3985 with inclusive filters3986 filters by filename3987 filters by path3988 filters by extension3989 with exclusive filters3990 filters by filename3991 filters by path3992 filters by extension3993 with white space in the path3994 filters by path correctly3995Packages::Nuget::ExtractionWorker3996 #perform3997 with valid package file3998 updates package and package file3999 with exisiting package4000 reuses existing package and updates package file4001 with invalid package file id4002 doesn't update package and package file4003 with package file not containing a nuspec file4004 behaves like handling the metadata error4005 updates package status to error4006 with package with an invalid package name4007 behaves like handling the metadata error4008 updates package status to error4009 behaves like handling the metadata error4010 updates package status to error4011 behaves like handling the metadata error4012 updates package status to error4013 behaves like handling the metadata error4014 updates package status to error4015 with package with an invalid package version4016 behaves like handling the metadata error4017 updates package status to error4018 behaves like handling the metadata error4019 updates package status to error4020 behaves like handling the metadata error4021 updates package status to error4022 behaves like handling the metadata error4023 updates package status to error4024 behaves like handling the metadata error4025 updates package status to error4026 behaves like handling the metadata error4027 updates package status to error4028 handles a processing an unaccounted for error4029 behaves like handling the metadata error4030 updates package status to error4031ContextCommitsFinder4032 #execute4033 filters commits by valid sha/commit message4034 returns nothing when searched by invalid sha/commit message4035 returns commits based in author filter4036 returns commits based in before filter4037 returns commits based in after filter4038MergeRequests::CreatePipelineWorker4039 #perform4040 when the objects exist4041 calls the merge request create pipeline service and calls update head pipeline4042 when push options are passed as Hash to the worker4043 calls the merge request create pipeline service and calls update head pipeline4044 when the project does not exist4045 behaves like when object does not exist4046 does not call the create pipeline service4047 when the user does not exist4048 behaves like when object does not exist4049 does not call the create pipeline service4050 when the merge request does not exist4051 behaves like when object does not exist4052 does not call the create pipeline service4053Gitlab::Diff::FileCollection::Commit4054 behaves like diff statistics4055 when include_stats is true4056 Repository#diff_stats is called4057 Gitlab::Diff::File is initialized with diff stats4058 when should not request diff stats4059 Repository#diff_stats is not called4060 behaves like unfoldable diff4061 calls Gitlab::Diff::File#unfold_diff_lines with correct position4062 behaves like sortable diff files4063 #raw_diff_files4064 when sorted is false (default)4065 returns unsorted diff files4066 when sorted is true4067 returns sorted diff files4068 #cache_key4069 returns with the commit id4070Ci::Resource4071 .free4072 returns free resources4073 .retained4074 returns the resource if it's retained4075 returns empty if it's not retained4076 .retained_by4077 returns retained resources4078 .stale_processables4079 when the processable is running4080 returns empty4081 and doomed4082 returns empty4083 returns the stale prosessable a few minutes later4084PoolRepository4085 associations4086 is expected to belong to shard required: false4087 is expected to belong to source_project required: false4088 is expected to have many member_projects4089 validations4090 is expected to validate that :shard cannot be empty/falsy4091 is expected to validate that :source_project cannot be empty/falsy4092 #disk_path4093 sets the hashed disk_path4094 #unlink_repository4095 when the last member leaves4096 schedules pool removal4097 when skipping disconnect4098 does not change the alternates file4099 when the second member leaves4100 does not schedule pool removal4101Ci::ArchiveTracesCronWorker4102 when a job succeeded4103 executes service4104 behaves like archives trace4105 is expected to be exist4106 when the job finished recently4107 behaves like does not archive trace4108 is expected to be nil4109 when a trace had already been archived4110 continues to archive live traces4111 when an unexpected exception happened during archiving4112 puts a log4113 when a job was cancelled4114 behaves like archives trace4115 is expected to be exist4116 when a job is running4117 behaves like does not archive trace4118 is expected to be nil4119MergeRequestSerializer4120 widget merge request serialization4121 matches issue json schema4122 sidebar merge request serialization4123 matches merge_request_sidebar json schema4124 sidebar_extras merge request serialization4125 matches merge_request_sidebar_extras json schema4126 basic merge request serialization4127 matches basic merge request json schema4128 noteable merge request serialization4129 matches noteable merge request json schema4130 when merge_request is locked4131 matches noteable merge request json schema4132 when project is archived4133 matches noteable merge request json schema4134 poll cached widget merge request serialization4135 matches basic merge request json schema4136 poll widget merge request serialization4137 matches basic merge request json schema4138 no serializer4139 falls back to the widget entity4140Gitlab::Database::Migrations::ConstraintsHelpers4141 # order random4142 #validate_check_constraint4143 when the constraint does not exist4144 raises an error4145 when the constraint exists4146 performs validation4147 #check_constraint_exists?4148 returns true if a constraint exists4149 returns false if a constraint does not exist4150 returns false if a constraint with the same name exists in another table4151 returns false if a constraint with the same name exists for the same table in another schema4152 #remove_not_null_constraint4153 when constraint_name is not provided4154 calls remove_check_constraint with an infered constraint name4155 when constraint_name is provided4156 calls remove_check_constraint with the correct parameters4157 #check_constraint_name4158 returns a valid constraint name4159 #rename_constraint4160 executes the statement to rename constraint4161 #check_text_limit_exists?4162 when constraint_name is not provided4163 calls check_constraint_exists? with an infered constraint name4164 when constraint_name is provided4165 calls check_constraint_exists? with the correct parameters4166 #drop_constraint4167 executes the statement to drop the constraint4168 when cascade option is false4169 executes the statement to drop the constraint without cascade4170 #validate_text_limit4171 when constraint_name is not provided4172 calls validate_check_constraint with an infered constraint name4173 when constraint_name is provided4174 calls validate_check_constraint with the correct parameters4175 #copy_check_constraints4176 when inside a transaction4177 raises an error4178 when outside a transaction4179 copies check constraints from one column to another4180 does nothing if there are no constraints defined for the old column4181 raises an error when the orginating column does not exist4182 raises an error when the target column does not exist4183 #remove_check_constraint4184 removes the constraint4185 #add_not_null_constraint4186 when it is called with the default options4187 calls add_check_constraint with an infered constraint name and validate: true4188 when all parameters are provided4189 calls add_check_constraint with the correct parameters4190 when the column is defined as NOT NULL4191 does not add a check constraint4192 #add_text_limit4193 when it is called with the default options4194 calls add_check_constraint with an infered constraint name and validate: true4195 when all parameters are provided4196 calls add_check_constraint with the correct parameters4197 #remove_text_limit4198 when constraint_name is not provided4199 calls remove_check_constraint with an infered constraint name4200 when constraint_name is provided4201 calls remove_check_constraint with the correct parameters4202 #add_check_constraint4203 when constraint name validation4204 raises an error when too long4205 does not raise error when the length is acceptable4206 when inside a transaction4207 raises an error4208 when outside a transaction4209 when the constraint is already defined in the database4210 does not create a constraint4211 when the constraint is not defined in the database4212 creates the constraint4213 when validate is not provided4214 performs validation4215 when validate is provided with a falsey value4216 skips validation4217 when validate is provided with a truthy value4218 performs validation4219 #check_not_null_constraint_exists?4220 when constraint_name is not provided4221 calls check_constraint_exists? with an infered constraint name4222 when constraint_name is provided4223 calls check_constraint_exists? with the correct parameters4224 #validate_not_null_constraint4225 when constraint_name is not provided4226 calls validate_check_constraint with an infered constraint name4227 when constraint_name is provided4228 calls validate_check_constraint with the correct parameters4229Environments::AutoStopService4230 #execute4231 stops environments and play stop jobs4232 schedules stop processes in bulk4233 when the other sidekiq worker has already been running4234 does not execute stop_in_batch4235 when loop reached timeout4236 returns false and does not continue the process4237 when loop reached loop limit4238 stops only one available environment4239Gitlab::Email::Receiver4240 requires all handlers to have a unique metric_event4241 requires all handlers to respond to #project4242 when the email contains a valid email address in a header4243 when in a Delivered-To header4244 behaves like successful receive4245 correctly finds the mail key4246 adds metric event4247 returns valid metadata4248 when in an Envelope-To header4249 behaves like successful receive4250 correctly finds the mail key4251 adds metric event4252 returns valid metadata4253 when in an X-Envelope-To header4254 behaves like successful receive4255 correctly finds the mail key4256 adds metric event4257 returns valid metadata4258 when enclosed with angle brackets in an Envelope-To header4259 behaves like successful receive4260 correctly finds the mail key4261 adds metric event4262 returns valid metadata4263 when all other headers are missing4264 it uses receive headers to find the key4265 behaves like successful receive4266 correctly finds the mail key4267 adds metric event4268 returns valid metadata4269 when we cannot find a capable handler4270 behaves like failed receive with event4271 adds metric event4272 when the email is blank4273 behaves like failed receive without event4274 adds metric event4275 when the email was auto generated with Auto-Submitted header4276 behaves like failed receive without event4277 adds metric event4278 when the email's To field is blank4279 behaves like successful receive4280 correctly finds the mail key4281 adds metric event4282 returns valid metadata4283 when the email's From field is blank4284 behaves like successful receive4285 correctly finds the mail key4286 adds metric event4287 returns valid metadata4288 when the email was auto generated with X-Autoreply header4289 behaves like failed receive without event4290 adds metric event4291 event raising via errors4292 handling errors which do not raise events4293 expected_error: Gitlab::Email::AutoGeneratedEmailError4294 behaves like failed receive without event4295 adds metric event4296 expected_error: Gitlab::Email::ProjectNotFound4297 behaves like failed receive without event4298 adds metric event4299 expected_error: Gitlab::Email::EmptyEmailError4300 behaves like failed receive without event4301 adds metric event4302 expected_error: Gitlab::Email::UserNotFoundError4303 behaves like failed receive without event4304 adds metric event4305 expected_error: Gitlab::Email::UserBlockedError4306 behaves like failed receive without event4307 adds metric event4308 expected_error: Gitlab::Email::UserNotAuthorizedError4309 behaves like failed receive without event4310 adds metric event4311 expected_error: Gitlab::Email::NoteableNotFoundError4312 behaves like failed receive without event4313 adds metric event4314 expected_error: Gitlab::Email::InvalidAttachment4315 behaves like failed receive without event4316 adds metric event4317 expected_error: Gitlab::Email::InvalidRecordError4318 behaves like failed receive without event4319 adds metric event4320 expected_error: Gitlab::Email::EmailTooLarge4321 behaves like failed receive without event4322 adds metric event4323 handling errors which do raise events4324 expected_error: Gitlab::Email::EmailUnparsableError4325 behaves like failed receive with event4326 adds metric event4327 expected_error: Gitlab::Email::UnknownIncomingEmail4328 behaves like failed receive with event4329 adds metric event4330 expected_error: ArgumentError4331 behaves like failed receive with event4332 adds metric event4333 expected_error: StandardError4334 behaves like failed receive with event4335 adds metric event4336gettext4337 :compile4338 creates a pot file and invokes the 'gettext:po_to_json' task4339 :regenerate4340 when the locale folder is not found4341 raises an error4342 where there are existing /**/gitlab.po files4343 does not remove that locale4344 when there are locale folders without a gitlab.po file4345 removes those folders4346 when the gitlab.pot file cannot be generated4347 prints an error4348 when gettext:find changes the revision dates4349 resets the changes4350 :lint4351 when all PO files are valid4352Linting po files: |============================================================|4353 completes without error4354 when there are invalid PO files4355Linting po files: |============================================================|4356 raises an error4357 when the .pot file is invalid4358Linting po files: |============================================================|4359 raises an error4360Projects::MoveProjectMembersService4361 #execute4362 moves the members from one project to another4363 does not move existent members to the current project4364 rollbacks changes if transaction fails4365 when remove_remaining_elements is false4366 does not remove remaining project members4367MergeRequests::ReloadMergeHeadDiffService4368 #execute4369 creates a merge head diff4370 when merge ref head is not present4371 returns error4372 when failed to create merge head diff4373 returns error4374 when there is existing merge head diff4375 recreates merge head diff4376Integrations::BaseChatNotification4377 validations4378 is expected to validate that :webhook cannot be empty/falsy4379 is expected to validate that :labels_to_be_notified_behavior is either ‹"match_any"› or ‹"match_all"›4380 #execute4381 with a repository4382 returns true4383 with an empty repository4384 returns true4385 with a project with name containing spaces4386 does not remove spaces4387 when the data object has a label4388 behaves like notifies the chat integration4389 is expected to receive notify(*(any args)) 1 time4390 with label filter4391 behaves like notifies the chat integration4392 is expected to receive notify(*(any args)) 1 time4393 MergeRequest events4394 behaves like notifies the chat integration4395 is expected to receive notify(*(any args)) 1 time4396 Issue events4397 behaves like notifies the chat integration4398 is expected to receive notify(*(any args)) 1 time4399 when labels_to_be_notified_behavior is not defined4400 no matching labels4401 behaves like does not notify the chat integration4402 is expected not to receive notify(*(any args)) 0 times4403 only one label matches4404 behaves like notifies the chat integration4405 is expected to receive notify(*(any args)) 1 time4406 when labels_to_be_notified_behavior is blank4407 no matching labels4408 behaves like does not notify the chat integration4409 is expected not to receive notify(*(any args)) 0 times4410 only one label matches4411 behaves like notifies the chat integration4412 is expected to receive notify(*(any args)) 1 time4413 when labels_to_be_notified_behavior is match_any4414 no label filter4415 behaves like notifies the chat integration4416 is expected to receive notify(*(any args)) 1 time4417 no matching labels4418 behaves like does not notify the chat integration4419 is expected not to receive notify(*(any args)) 0 times4420 only one label matches4421 behaves like notifies the chat integration4422 is expected to receive notify(*(any args)) 1 time4423 when labels_to_be_notified_behavior is match_all4424 no label filter4425 behaves like notifies the chat integration4426 is expected to receive notify(*(any args)) 1 time4427 no matching labels4428 behaves like does not notify the chat integration4429 is expected not to receive notify(*(any args)) 0 times4430 only one label matches4431 behaves like does not notify the chat integration4432 is expected not to receive notify(*(any args)) 0 times4433 labels matches exactly4434 behaves like notifies the chat integration4435 is expected to receive notify(*(any args)) 1 time4436 labels matches but object has more4437 behaves like notifies the chat integration4438 is expected to receive notify(*(any args)) 1 time4439 labels are distributed on multiple objects4440 behaves like does not notify the chat integration4441 is expected not to receive notify(*(any args)) 0 times4442 with "channel" property4443 empty string4444 does not include the channel4445 empty spaces4446 does not include the channel4447 with single channel specified4448 behaves like with channel specified4449 notifies all channels4450 with multiple channel names specified4451 behaves like with channel specified4452 notifies all channels4453 with multiple channel names with spaces specified4454 behaves like with channel specified4455 notifies all channels4456 #default_channel_placeholder4457 raises an error4458 #webhook_placeholder4459 raises an error4460 #event_channel_name4461 returns the channel field name for the given event4462 #event_channel_value4463 returns the channel field value for the given event4464 raises an error for unsupported events4465Participable4466 .participant4467 adds the participant attributes to the existing list4468 #participants4469 returns the list of participants4470 caches the list of filtered participants4471 supports attributes returning another Participable4472 when using a Proc as an attribute4473 calls the supplied Proc4474 participable is a personal snippet4475 returns the list of participants4476 #visible_participants4477 returns the list of participants4478 when Participable is not readable by the user4479 does not return unavailable participants4480 with multiple system notes from the same author and mentioned_users4481 skips expensive checks if the author is aleady in participants list4482 behaves like visible participants for issuable with read ability4483 when source is an award emoji4484 behaves like check for participables read ability4485 receives expected ability4486 when source is a note4487 behaves like check for participables read ability4488 receives expected ability4489 when source is an internal note4490 behaves like check for participables read ability4491 receives expected ability4492 behaves like visible participants for issuable with read ability4493 when source is an award emoji4494 behaves like check for participables read ability4495 receives expected ability4496 when source is a note4497 behaves like check for participables read ability4498 receives expected ability4499 when source is an internal note4500 behaves like check for participables read ability4501 receives expected ability4502 #participant?4503 returns whether the user is a participant4504 caches the list of raw participants4505 participable is a personal snippet4506 returns whether the user is a participant4507UserGroupNotificationSettingsFinder4508 when the groups have no existing notification settings4509 when the groups have no ancestors4510 will be a default Global notification setting4511 when the groups have ancestors4512 does not cause an N+14513 when an ancestor has a level other than Global4514 has the same level set4515 has the same email set4516 only returns the two queried groups4517 when an ancestor has a Global level but has an email set4518 has the same email and level set4519 when the group has parent_id set but that does not belong to any group4520 returns a default Global notification setting4521 when the group has a private parent4522 still inherits the notification settings4523 preloading `emails_disabled`4524 preloads the `group.emails_disabled` method4525 preloads the `group.emails_disabled` method correctly4526Ci::PendingBuilds::UpdateProjectWorker4527 #perform4528 when a project is not provided4529 does not call the service4530 when everything is ok4531 calls the service4532 is labeled as idempotent4533 performs multiple times sequentially without raising an exception4534 updates the pending builds4535forked project import4536 can access the MR4537Projects::PagesHelper4538 # order random4539 when the user have permission4540 on custom domain4541 external_http: false, external_https: false, can_create: false4542 is expected to equal false4543 external_http: false, external_https: true, can_create: true4544 is expected to equal true4545 external_http: true, external_https: false, can_create: true4546 is expected to equal true4547 external_http: true, external_https: true, can_create: true4548 is expected to equal true4549 on domain limit4550 can create new domains when the limit is 04551 validates custom domain creation is only allowed upto max value4552 when the user does not have permission4553 validates user cannot create domain4554Integrations::Packagist4555 behaves like Integrations::HasWebHook4556 associations4557 is expected to have one service_hook inverse_of => integration4558 callbacks4559 calls #update_web_hook! when enabled4560 does not call #update_web_hook! when disabled4561 does not call #update_web_hook! when validation fails4562 #hook_url4563 returns a string4564 #url_variables4565 returns a hash4566 #hook_ssl_verification4567 returns a boolean4568 delegates to #enable_ssl_verification if the concern is included4569 #update_web_hook!4570 creates or updates a service hook4571 raises an error if the service hook could not be saved4572 does not attempt to save the service hook if there are no changes4573 #execute_web_hook!4574 creates the webhook if necessary and executes it4575 raises an error if the service hook could not be saved4576 behaves like Integrations::ResetSecretFields4577 #exposing_secrets_fields4578 returns an array of strings4579 #reset_secret_fields?4580 returns false if no exposing field has changed4581 returns true if any exposing field has changed4582 validation callback4583 when an exposing field has changed4584 clears all secret fields4585 when a secret field has been updated4586 does not clear this secret field4587 when a secret field has been updated with the same value4588 does not clear this secret field4589 when no exposing field has changed4590 does not clear any secret fields4591 #execute4592 calls Packagist API4593Gitlab::GlRepository::RepoType4594 #<Gitlab::GlRepository::RepoType:0x00007f3d62adb028>4595 knows its type4596 checks if repository path is valid4597 behaves like a repo type4598 #identifier_for_container4599 is expected to eq "project-805"4600 #path_suffix4601 is expected to eq ""4602 #repository_for4603 finds the repository for the repo type4604 returns nil when container is nil4605 #<Gitlab::GlRepository::RepoType:0x00007f3d62a29e90>4606 knows its type4607 checks if repository path is valid4608 behaves like a repo type4609 #identifier_for_container4610 is expected to eq "wiki-805"4611 #path_suffix4612 is expected to eq ".wiki"4613 #repository_for4614 finds the repository for the repo type4615 returns nil when container is nil4616 #<Gitlab::GlRepository::RepoType:0x00007f3d6278f608>4617 when PersonalSnippet4618 knows its type4619 checks if repository path is valid4620 behaves like a repo type4621 #identifier_for_container4622 is expected to eq "snippet-9"4623 #path_suffix4624 is expected to eq ""4625 #repository_for4626 finds the repository for the repo type4627 returns nil when container is nil4628 when ProjectSnippet4629 knows its type4630 checks if repository path is valid4631 behaves like a repo type4632 #identifier_for_container4633 is expected to eq "snippet-10"4634 #path_suffix4635 is expected to eq ""4636 #repository_for4637 finds the repository for the repo type4638 returns nil when container is nil4639 #<Gitlab::GlRepository::RepoType:0x00007f3d6278d3d0>4640 uses the design access checker4641 knows its type4642 checks if repository path is valid4643 behaves like a repo type4644 #identifier_for_container4645 is expected to eq "design-805"4646 #path_suffix4647 is expected to eq ".design"4648 #repository_for4649 finds the repository for the repo type4650 returns nil when container is nil4651Gitlab::Ci::Build::Step4652 #from_commands4653 when script option is specified4654 behaves like has correct script4655 fabricates an object4656 when before and script option is specified4657 behaves like has correct script4658 fabricates an object4659 when timeout option is specified in seconds4660 has job level timeout4661 behaves like has correct script4662 fabricates an object4663 #from_release4664 with release4665 returns the release-cli command line4666 when release is empty4667 does not fabricate an object4668 #from_after_script4669 when after_script is empty4670 does not fabricate an object4671 when after_script is not empty4672 fabricates an object4673DiscussionEntity4674 exposes correct attributes4675 does not include base discussion in the notes4676 resolved_by matches note_user_entity schema4677 exposes the url for custom award emoji4678 when is LegacyDiffDiscussion4679 exposes correct attributes4680 when diff file is present4681 exposes diff file attributes4682Gitlab::Serverless::Service4683 exposes methods extracting data from the attributes hash4684 returns nil for missing attributes4685 #description4686 extracts the description in knative 7 format if available4687 extracts the description in knative 5/6 format if 7 is not available4688 #url4689 returns proxy URL if cluster has serverless domain4690 returns the URL from the knative 6/7 format4691 returns the URL from the knative 5 format4692NoteDiffFile4693 associations4694 is expected to belong to diff_note required: false4695 validations4696 is expected to validate that :diff_note cannot be empty/falsy4697 .referencing_sha4698 finds note diff files by project and sha4699 excludes note diff files with the wrong project4700 excludes note diff files with the wrong sha4701BoardsHelper4702 #build_issue_link_base4703 project board4704 returns correct path for project board4705 group board4706 returns correct path for base group4707 returns correct path for subgroup4708 #board_base_url4709 when group board4710 generates the correct url4711 when project board4712 generates the correct url4713 #current_board_namespace4714 when group board4715 returns the correct namespace4716 project under group4717 when project board4718 returns the correct namespace4719 project under user namespace4720 when project board4721 returns the correct namespace4722 #board_data4723 project_board4724 returns board type as parent4725 returns can_update for user permissions on the board4726 returns required label endpoints4727 returns the group id of a project4728 can_admin_list4729 returns can_admin_list as false by default4730 returns can_admin_list as true when user can admin the board lists4731 can_admin_board4732 returns can_admin_board as false by default4733 returns can_admin_board as true when user can admin the board4734 group board4735 returns correct path for base group4736 returns required label endpoints4737 returns the group id4738 can_admin_list4739 returns can_admin_list as false by default4740 returns can_admin_list as true when user can admin the board lists4741Gitlab::Ci::Config::Normalizer4742 .normalize_jobs4743 with parallel config as integer4744 does not have original job4745 has parallelized jobs4746 sets job instance in options4747 parallelizes jobs with original config4748 when the job is not parallelized4749 returns the same hash4750 when there is a job with a slash in it4751 properly parallelizes job names4752 behaves like parallel dependencies4753 when job has dependencies on parallelized jobs4754 parallelizes dependencies4755 does not include original job name in RSpec::ExampleGroups::GitlabCiConfigNormalizer::NormalizeJobs::WithParallelConfigAsInteger::BehavesLikeParallelDependencies::WhenJobHasDependenciesOnParallelizedJobs::Anonymous4756 when there are dependencies which are both parallelized and not4757 parallelizes dependencies4758 includes the regular job in dependencies4759 behaves like parallel needs4760 when job has needs on parallelized jobs4761 parallelizes needs4762 when there are dependencies which are both parallelized and not4763 parallelizes dependencies4764 includes the regular job in dependencies4765 with parallel matrix config4766 does not have original job4767 sets job instance in options4768 sets job variables4769 parallelizes jobs with original config4770 has parallelized jobs4771 behaves like parallel dependencies4772 when job has dependencies on parallelized jobs4773 parallelizes dependencies4774 does not include original job name in RSpec::ExampleGroups::GitlabCiConfigNormalizer::NormalizeJobs::WithParallelMatrixConfig::BehavesLikeParallelDependencies::WhenJobHasDependenciesOnParallelizedJobs::Anonymous4775 when there are dependencies which are both parallelized and not4776 parallelizes dependencies4777 includes the regular job in dependencies4778 behaves like parallel needs4779 when job has needs on parallelized jobs4780 parallelizes needs4781 when there are dependencies which are both parallelized and not4782 parallelizes dependencies4783 includes the regular job in dependencies4784 when parallel config does not matches a factory4785 does not alter the job config4786 when jobs config is nil4787 is expected to eq {}4788Mutations::IncidentManagement::TimelineEvent::Update4789 #resolve4790 when user has permissions to update the timeline event4791 when timeline event exists4792 updates the timeline event4793 returns updated timeline event4794 when there is a validation error4795 when note is blank4796 does not update the timeline event4797 responds with error4798 when occurred_at is blank4799 does not update the timeline event4800 responds with error4801 when occurred_at is invalid4802 does not update the timeline event4803 responds with error4804 when timeline event cannot be found4805 behaves like failed update with a top-level access error4806 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4807 when user does not have permissions to update the timeline event4808 behaves like failed update with a top-level access error4809 is expected to raise Gitlab::Graphql::Errors::ResourceNotAvailable with "The resource that you are attempting to access does not exist or you don't have permission to perform this action"4810Sidebars::Projects::Menus::MonitorMenu4811 #render?4812 flag_enabled: true, operations_access_level: disabled, monitor_level: enabled, render: true4813 renders when expected to4814 flag_enabled: true, operations_access_level: disabled, monitor_level: disabled, render: false4815 renders when expected to4816 flag_enabled: true, operations_access_level: enabled, monitor_level: enabled, render: true4817 renders when expected to4818 flag_enabled: true, operations_access_level: enabled, monitor_level: disabled, render: false4819 renders when expected to4820 flag_enabled: false, operations_access_level: disabled, monitor_level: enabled, render: false4821 renders when expected to4822 flag_enabled: false, operations_access_level: disabled, monitor_level: disabled, render: false4823 renders when expected to4824 flag_enabled: false, operations_access_level: enabled, monitor_level: enabled, render: true4825 renders when expected to4826 flag_enabled: false, operations_access_level: enabled, monitor_level: disabled, render: true4827 renders when expected to4828 when operation feature is enabled4829 when menu does not have any renderable menu items4830 returns false4831 when menu has menu items4832 returns true4833 #title4834 returns "Monitor"4835 #extra_container_html_options4836 returns "shortcuts-monitor"4837 Menu items4838 Metrics Dashboard4839 behaves like access rights checks4840 is expected not to be nil4841 when the user does not have access4842 is expected to be nil4843 Error Tracking4844 behaves like access rights checks4845 is expected not to be nil4846 when the user does not have access4847 is expected to be nil4848 Alert Management4849 behaves like access rights checks4850 is expected not to be nil4851 when the user does not have access4852 is expected to be nil4853 Incidents4854 behaves like access rights checks4855 is expected not to be nil4856 when the user does not have access4857 is expected to be nil4858Board4859 relationships4860 is expected to belong to project required: false4861 is expected to have many lists order => {:list_type=>:asc, :position=>:asc} dependent => delete_all4862 validations4863 is expected to validate that :name cannot be empty/falsy4864 is expected to validate that :project cannot be empty/falsy4865 constants4866 is expected to be a kind of Integer4867 #order_by_name_asc4868 returns in case-insensitive alphabetical order and then by ascending id4869 #first_board4870 return the first case-insensitive alphabetical board as a relation4871 raises an error when find is done on a non-existent record4872 #disabled_for?4873 for group board4874 behaves like board disabled_for?4875 when current user cannot create non backlog issues4876 is expected to eq true4877 when user can create backlog issues4878 is expected to eq false4879 when block_issue_repositioning is enabled4880 is expected to eq true4881 for project board4882 behaves like board disabled_for?4883 when current user cannot create non backlog issues4884 is expected to eq true4885 when user can create backlog issues4886 is expected to eq false4887 when block_issue_repositioning is enabled4888 is expected to eq true4889Gitlab::OmniauthInitializer4890 .arguments_for4891 when there are no args at all4892 returns an empty array4893 when there is an app_id and an app_secret4894 includes both of them, in positional order4895 when there is an app_id and an app_secret, and an array of args4896 concatenates the args on the end4897 when there is an app_id and an app_secret, and an array of args, and default values4898 concatenates the args on the end4899 when there is an app_id and an app_secret, and a hash of args4900 concatenates the args on the end4901 when there is an app_id and an app_secret, and a hash of args, and default arguments4902 concatenates the args on the end4903 when there is an app_id and an app_secret, no args, and default values4904 concatenates the args on the end4905 when there are args, of an unsupported type4906 when there are default arguments4907 tracks a configuration error4908 when there are no default arguments4909 tracks a configuration error4910 #execute4911 configures providers from array4912 allows "args" array for app_id and app_secret4913 passes app_id and app_secret as additional arguments4914 passes "args" hash as symbolized hash argument4915 normalizes a String strategy_class4916 allows a class to be specified in strategy_class4917 throws an error for an invalid strategy_class4918 configures fail_with_empty_uid for shibboleth4919 configures remote_sign_out_handler proc for authentiq4920 configures on_single_sign_out proc for cas34921 configures defaults for google_oauth24922 configures defaults for gitlab4923 configures defaults for gitlab, when arguments are not provided4924 configures defaults for gitlab, when array arguments are provided4925 tracks a configuration error if the arguments are neither a hash nor an array4926 .full_host4927 is expected to eq "http://localhost/test"4928Milestones::ClosedIssuesCountService4929 counts closed issues including confidential4930 behaves like a counter caching service4931 #count4932 caches the count4933 #refresh_cache4934 refreshes the cache4935 #delete_cache4936 removes the cache4937 #uncached_count4938 does not cache the count4939DeployKeyPolicy4940 updating a deploy_key4941 when a regular user4942 tries to update private deploy key attached to project4943 is expected to be allowed :update_deploy_key4944 tries to update private deploy key attached to other project4945 is expected to be disallowed :update_deploy_key4946 tries to update public deploy key4947 is expected to be disallowed :update_deploy_key4948 when an admin user4949 tries to update private deploy key4950 when admin mode enabled4951 is expected to be allowed :update_deploy_key4952 when admin mode disabled4953 is expected to be disallowed :update_deploy_key4954 when an admin user tries to update public deploy key4955 when admin mode enabled4956 is expected to be allowed :update_deploy_key4957 when admin mode disabled4958 is expected to be disallowed :update_deploy_key4959PrometheusAlertEvent4960 associations4961 is expected to belong to prometheus_alert required: true4962 validations4963 is expected to be valid4964 is expected to validate that :prometheus_alert cannot be empty/falsy, producing a custom validation error on failure4965 is expected to validate that :payload_key is case-sensitively unique within the scope of :prometheus_alert_id4966 is expected to validate that :started_at cannot be empty/falsy4967 payload_key & ended_at4968 absent if firing?4969 is expected to validate that :payload_key cannot be empty/falsy4970 is expected not to validate that :ended_at cannot be empty/falsy4971 present if resolved?4972 is expected not to validate that :payload_key cannot be empty/falsy4973 is expected to validate that :ended_at cannot be empty/falsy4974 #title4975 delegates to alert4976 prometheus_metric_id4977 delegates to alert4978 transaction4979 fire4980 when status is none4981 fires an event4982 when firing4983 cannot fire again4984 resolve4985 when firing4986 resolves an event4987 when resolved4988 cannot resolve again4989Packages::CleanupPackageRegistryWorker4990 #perform4991 with package files pending destruction4992 queues the cleanup job4993 behaves like an idempotent worker4994 is labeled as idempotent4995 performs multiple times sequentially without raising an exception4996 with no package files pending destruction4997 does not queue the cleanup job4998 behaves like an idempotent worker4999 is labeled as idempotent5000 performs multiple times sequentially without raising an exception5001 with runnable policies5002 queues the cleanup job5003 behaves like an idempotent worker5004 is labeled as idempotent5005 performs multiple times sequentially without raising an exception5006 with no runnable policies5007 does not queue the cleanup job5008 counts logging5009 logs all the counts5010 with load balancing enabled5011 reads the count from the replica5012Banzai::ReferenceParser::DesignParser5013 #nodes_visible_to_user5014 behaves like referenced feature visibility5015 when feature is disabled5016 does not create reference5017 when feature is enabled only for team members5018 does not create reference for non member5019 creates reference for member5020 when feature is enabled5021 creates reference5022 specific states5023 redacts links we should not have access to5024 design management is not available5025 redacts all nodes5026 #process5027 returns the correct designs5028Banzai::Filter::EmojiFilter5029 replaces supported name emoji5030 replaces supported unicode emoji5031 ignores unicode versions of trademark, copyright, and registered trademark5032 replaces name versions of trademark, copyright, and registered trademark5033 correctly encodes the URL5034 correctly encodes unicode to the URL5035 matches at the start of a string5036 unicode matches at the start of a string5037 matches at the end of a string5038 unicode matches at the end of a string5039 unicode matches with adjacent text5040 does not match multiple emoji in a row5041 unicode matches multiple emoji in a row5042 mixed matches multiple emoji in a row5043 has a data-name attribute5044 has a data-unicode-version attribute5045 unicode keeps whitespace intact5046 behaves like emoji filter5047 keeps whitespace intact5048 does not match emoji in a string5049 ignores non existent/unsupported emoji5050 matches with adjacent text5051 does not match emoji in a pre tag5052 does not match emoji in code tag5053 does not match emoji in tt tag5054Gitlab::Audit::Type::Definition5055 # order random5056 #key5057 returns a symbol from name5058 .get5059 when audit event type is not defined5060 returns nil5061 when audit event type is defined5062 returns an instance of Gitlab::Audit::Type::Definition5063 returns the properties as defined for that audit event type5064 .definitions5065 loads the definitions for all the audit event types5066 .load_all!5067 when there are no audit event types a list of definitions is empty5068 when there's a single audit event type it properly loads them5069 when the same audit event type is stored multiple times raises exception5070 when one of the YAMLs is invalid it does raise exception5071 #validate!5072 param: :path, value: "audit_event/types/invalid.yml", result: /Audit event type 'group_deploy_token_destroyed' has an invalid path/5073 is expected to raise /Audit event type 'group_deploy_token_destroyed' has an invalid path/5074 param: :name, value: nil, result: /property '\/name' is not of type: string/5075 is expected to raise /property '\/name' is not of type: string/5076 param: :description, value: nil, result: /property '\/description' is not of type: string/5077 is expected to raise /property '\/description' is not of type: string/5078 param: :introduced_by_issue, value: nil, result: /property '\/introduced_by_issue' is not of type: string/5079 is expected to raise /property '\/introduced_by_issue' is not of type: string/5080 param: :introduced_by_mr, value: nil, result: /property '\/introduced_by_mr' is not of type: string/5081 is expected to raise /property '\/introduced_by_mr' is not of type: string/5082 param: :group, value: nil, result: /property '\/group' is not of type: string/5083 is expected to raise /property '\/group' is not of type: string/5084 param: :milestone, value: nil, result: /property '\/milestone' is not of type: string/5085 is expected to raise /property '\/milestone' is not of type: string/5086 when both saved_to_database and streamed are false5087 raises an exception5088 .paths5089 returns at least one path5090 .load_from_file5091 properly loads a definition from file5092 for missing file5093 raises exception5094 for invalid definition5095 raises exception5096Gitlab::MailRoom5097 #enabled_configs5098 when both email and address is set5099 returns email configs5100 when the yml file cannot be found5101 returns an empty list5102 when email is disabled5103 returns an empty list5104 when email is enabled but address is not set5105 returns an empty list5106 when a config value is missing from the yml file5107 overwrites missing values with the default5108 when only incoming_email config is present5109 returns only encoming_email5110 setting up redis settings5111 sets delivery method to Sidekiq by default5112 sets redis config5113 setting up the log path5114 if the log path is a relative path5115 expands the log path to an absolute value5116 if the log path is absolute path5117 leaves the path as-is5118 #enabled_mailbox_types5119 when all mailbox types are enabled5120 returns the mailbox types5121 when an mailbox_types is disabled5122 returns the mailbox types5123 when email is disabled5124 returns an empty array5125 #worker_for5126 matched mailbox types5127 returns the constantized worker class5128 non-existing mailbox_type5129 returns nil5130 config/mail_room.yml5131 when delivery_method is implicit5132 behaves like renders mail-specific config file correctly5133 renders mail room config file correctly5134 behaves like renders arbitration options correctly5135 renders arbitration options correctly5136 behaves like renders the sidekiq delivery method and options correctly5137 renders the sidekiq delivery method and options correctly5138 when delivery_method is explicitly sidekiq5139 behaves like renders mail-specific config file correctly5140 renders mail room config file correctly5141 behaves like renders arbitration options correctly5142 renders arbitration options correctly5143 behaves like renders the sidekiq delivery method and options correctly5144 renders the sidekiq delivery method and options correctly5145 when delivery_method is webhook (internally postback in mail_room)5146 renders the webhook (postback) delivery method and options correctly5147 behaves like renders mail-specific config file correctly5148 renders mail room config file correctly5149 behaves like renders arbitration options correctly5150 renders arbitration options correctly5151DeploymentSerializer5152 #represent5153 behaves like json schema5154 matches deployment entity schema5155 #represent_concise5156 behaves like json schema5157 matches deployment entity schema5158Gitlab::Ci::Config::External::File::Remote5159 #matching?5160 when a remote is specified5161 returns true5162 with a missing remote5163 returns false5164 with a missing remote key5165 returns false5166 #valid?5167 when is a valid remote url5168 is expected to be truthy5169 with an irregular url5170 is expected to be falsy5171 with a timeout5172 is expected to be falsy5173 when is not a yaml file5174 is expected to be falsy5175 with an internal url5176 is expected to be falsy5177 #content5178 with a valid remote file5179 returns the content of the file5180 with a timeout5181 is falsy5182 with an invalid remote url5183 is nil5184 with an internal url5185 is nil5186 #error_message5187 when remote file location is not valid5188 returns an error message describing invalid address5189 when timeout error has been raised5190 returns error message about a timeout5191 when HTTP error has been raised5192 returns error message about a HTTP error5193 when response has 404 status5194 returns error message about a timeout5195 when the URL is blocked5196 includes details about blocked URL5197 #expand_context5198 drops all parameters5199 #metadata5200 is expected to eq {:blob=>nil, :context_project=>nil, :context_sha=>"12345", :extra=>{}, :location=>"https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.xxxxxxxxxxx.yml", :raw=>"https://gitlab.com/gitlab-org/gitlab-foss/blob/1234/.xxxxxxxxxxx.yml", :type=>:remote}5201 #to_hash5202 with a valid remote file5203 returns the content as a hash5204 when it has `include` with rules:exists5205 returns the content as a hash5206RepositoryArchiveCleanUpService5207 #execute (new archive locations)5208 removes outdated archives and directories in a new-style path5209 removes outdated archives and directories in a versioned path5210 does not remove directories when they contain outdated non-archives5211 does not remove in-date archives in a new-style path5212 #execute (legacy archive locations)5213 when the downloads directory does not exist5214 does not remove any archives5215 when the downloads directory exists5216 removes files older than 2 hours that matches valid archive extensions5217 with files older than 2 hours that does not matches valid archive extensions5218 behaves like invalid archive files5219 does not remove files and directory5220 with files older than 2 hours inside invalid directories5221 behaves like invalid archive files5222 does not remove files and directory5223 with files newer than 2 hours that matches valid archive extensions5224 behaves like invalid archive files5225 does not remove files and directory5226 with files newer than 2 hours that does not matches valid archive extensions5227 behaves like invalid archive files5228 does not remove files and directory5229 with files newer than 2 hours inside invalid directories5230 behaves like invalid archive files5231 does not remove files and directory5232Spam::AkismetService5233 #spam?5234 behaves like no activity if Akismet is not enabled5235 is automatically false5236 performs no check5237 if Akismet is enabled5238 correctly transforms options for the akismet client, including spelling of referrer key5239 the text is spam5240 is expected to be truthy5241 the text is blatant spam5242 is expected to be truthy5243 the text is not spam5244 is expected to be falsey5245 error handling5246 StandardError other than ArgumentError is raised5247 is expected to be falsey5248 logs an error5249 ArgumentError is raised in dev5250 raises original error5251 #submit_ham5252 behaves like no activity if Akismet is not enabled5253 is automatically false5254 performs no check5255 behaves like false if Akismet is not available5256 if Akismet is not available5257 is expected to be falsey5258 logs an error5259 if Akismet is available5260 is expected to be truthy5261 #submit_spam5262 behaves like no activity if Akismet is not enabled5263 is automatically false5264 performs no check5265 behaves like false if Akismet is not available5266 if Akismet is not available5267 is expected to be falsey5268 logs an error5269 if Akismet is available5270 is expected to be truthy5271Environments::AutoDeleteCronWorker5272 #perform5273 deletes the environment5274 when environment is not stopped5275 does not delete the environment5276 when auto_delete_at is null5277 does not delete the environment5278 with multiple deletable environments5279 deletes all deletable environments5280 when loop reached loop limit5281 deletes only one deletable environment5282 when batch size is less than the number of environments5283 deletes all deletable environments5284 with multiple deployments5285 deletes the deployment records and refs5286 when loop reached timeout5287 does not delete the environment5288 with idempotent flag5289 is labeled as idempotent5290 performs multiple times sequentially without raising an exception5291 deletes the environment5292Resolvers::GroupMembersResolver5293 is expected to have nullable GraphQL type GroupMemberConnection5294 behaves like querying members with a group5295 #resolve5296 finds all resource members5297 with sort options5298 searches users by user name5299 with search5300 when the search term matches a user5301 searches users by user name5302 when the search term does not match any user5303 is empty5304 when user can not see resource members5305 generates an error5306MergeRequestUserEntity5307 #as_json5308 exposes needed attributes5309 when `status` is not preloaded5310 does not expose the availability attribute5311 when the user has not approved the merge-request5312 exposes that the user has not approved the MR5313 when the user has approved the merge-request5314 exposes that the user has approved the MR5315 when `status` is preloaded5316 exposes the availibility attribute5317 performance5318 is linear in the number of merge requests (PENDING: See: https://gitlab.com/gitlab-org/gitlab/-/issues/322549)5319Packages::Composer::VersionParserService5320 #execute5321 tagname: nil, branchname: "master", expected_version: "dev-master"5322 is expected to eq "dev-master"5323 tagname: nil, branchname: "my-feature", expected_version: "dev-my-feature"5324 is expected to eq "dev-my-feature"5325 tagname: nil, branchname: "12-feature", expected_version: "dev-12-feature"5326 is expected to eq "dev-12-feature"5327 tagname: nil, branchname: "v1", expected_version: "1.x-dev"5328 is expected to eq "1.x-dev"5329 tagname: nil, branchname: "v1.x", expected_version: "1.x-dev"5330 is expected to eq "1.x-dev"5331 tagname: nil, branchname: "v1.7.x", expected_version: "1.7.x-dev"5332 is expected to eq "1.7.x-dev"5333 tagname: nil, branchname: "v1.7", expected_version: "1.7.x-dev"5334 is expected to eq "1.7.x-dev"5335 tagname: nil, branchname: "1.7.x", expected_version: "1.7.x-dev"5336 is expected to eq "1.7.x-dev"5337 tagname: "v1.0.0", branchname: nil, expected_version: "1.0.0"5338 is expected to eq "1.0.0"5339 tagname: "v1.0", branchname: nil, expected_version: "1.0"5340 is expected to eq "1.0"5341 tagname: "v1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"5342 is expected to eq "1.0.1+meta"5343 tagname: "1.0", branchname: nil, expected_version: "1.0"5344 is expected to eq "1.0"5345 tagname: "1.0.2", branchname: nil, expected_version: "1.0.2"5346 is expected to eq "1.0.2"5347 tagname: "1.0.2-beta2", branchname: nil, expected_version: "1.0.2-beta2"5348 is expected to eq "1.0.2-beta2"5349 tagname: "1.0.1+meta", branchname: nil, expected_version: "1.0.1+meta"5350 is expected to eq "1.0.1+meta"5351Types::BaseArgument5352 adds a formatted `deprecated_reason` to the subject5353 appends to the description if given5354 does not append to the description if it is absent5355 adds information about the replacement if provided5356 supports named reasons: renamed5357 supports named reasons: alpha5358 supports :alpha5359 does not allow :alpha and :deprecated together5360 validations5361 raises an informative error if `deprecation_reason` is used5362 raises an error if a required property is missing5363 raises an error if milestone is not a String5364 visible?5365 defaults to true5366 when subject is deprecated5367 defaults to true5368 returns false if `remove_deprecated` is true in context5369 required argument declarations5370 accepts nullable, required arguments5371 accepts required, non-nullable arguments5372 accepts non-required arguments5373 accepts no required argument declaration5374WebHooks::LogDestroyService5375 #execute5376 with system hook5377 behaves like deletes web hook logs for hook5378 deletes the logs5379 when the data-set exceeds the batch size5380 deletes the logs5381 when it encounters an error5382 reports the error5383 with project hook5384 behaves like deletes web hook logs for hook5385 deletes the logs5386 when the data-set exceeds the batch size5387 deletes the logs5388 when it encounters an error5389 reports the error5390Clusters::Aws::ProvisionService5391 #execute5392 updates the provider status to :creating and configures the provider with credentials5393 creates a CloudFormation stack5394 schedules a worker to monitor creation status5395 error handling5396 invalid state transition5397 sets the status to :errored with an appropriate error message5398 AWS role is not configured5399 sets the status to :errored with an appropriate error message5400 AWS credentials are not configured5401 sets the status to :errored with an appropriate error message5402 Authentication failure5403 sets the status to :errored with an appropriate error message5404 CloudFormation failure5405 sets the status to :errored with an appropriate error message5406BitbucketServer::Representation::PullRequest5407 #author5408 is expected to eq "root"5409 #author_email5410 is expected to eq "joe.montana@49ers.com"5411 #author_username5412 returns username5413 when username is absent5414 returns slug5415 when slug and username are absent5416 returns displayName5417 #description5418 is expected to eq "Test"5419 #iid5420 is expected to eq 75421 #state5422 is expected to eq "merged"5423 declined pull requests5424 returns closed5425 open pull requests5426 returns open5427 #merged?5428 is expected to be truthy5429 #created_at5430 is expected to eq 15306006355431 #updated_at5432 is expected to eq 15306006485433 #title5434 is expected to eq "Added a new line"5435 #source_branch_name5436 is expected to eq "refs/heads/root/CODE_OF_CONDUCTmd-1530600625006"5437 #source_branch_sha5438 is expected to eq "074e2b4dddc5b99df1bf9d4a3f66cfc15481fdc8"5439 #target_branch_name5440 is expected to eq "refs/heads/master"5441 #target_branch_sha5442 is expected to eq "839fa9a2d434eb697815b8fcafaecc51accfdbbc"5443DestroyPagesDeploymentsWorker5444 doesn't fail if project is already removed5445 can be called without last_deployment_id5446 calls destroy service5447Gitlab::ProcessManagement5448 .trap_signals5449 traps the given signals5450 .modify_signals5451 traps the given signals with the given command5452 .signal_processes5453 sends a signal to every given process5454 .signal5455 sends a signal to the given process5456 returns false when the process does not exist5457 .wait_async5458 waits for a process in a separate thread5459 .all_alive?5460 returns true if all processes are alive5461 returns false when a thread was not alive5462 .process_alive?5463 returns true if the process is alive5464 returns false when a thread was not alive5465 returns false when no pid is given5466 .process_died?5467 returns false if the process is alive5468 returns true when a thread was not alive5469 returns true when no pid is given5470 .pids_alive5471 returns the pids that are alive, from a given array5472 .any_alive?5473 returns true if at least one process is alive5474 returns false when all threads are dead5475 .write_pid5476 writes the PID of the current process to the given file5477Gitlab::EndpointAttributes5478 is nil when nothing was defined5479 returns the expected category5480 falls back to default when urgency was not defined5481 returns the expected urgency5482 returns feature category for an implied action if not specify actions5483 returns expected duration for an implied action if not specify actions5484 returns the expected category for categories defined in subclasses5485 falls back to superclass's feature category5486 returns the expected urgency for categories defined in subclasses5487 falls back to superclass's expected duration5488 raises an error when defining for the controller and for individual actions5489 raises an error when multiple calls define the same action5490 raises an error when multiple calls define the same action5491 does not raise an error when multiple calls define the same action and configs5492 raises an error if the expected duration is not supported5493Gitlab::Ci::Pipeline::Logger5494 #log_when5495 stores blocks for later evaluation5496 #instrument5497 returns the block's value5498 records durations of instrumented operations5499 raises an error when block is not provided5500 #instrument_with_sql5501 with a single query5502 is expected to eq 05503 includes SQL metrics5504 with multiple queries5505 is expected to eq 05506 includes SQL metrics5507 with multiple observations5508 includes SQL metrics5509 when there are not SQL operations5510 is expected to eq 1235511 does not include SQL metrics5512 #observe5513 records durations of observed operations5514 #commit5515 when the feature flag is enabled5516 logs to application.json5517 with log conditions5518 does not log when the conditions are false5519 logs when a condition is true5520 when project is not passed and pipeline is not persisted5521 logs to application.json5522 when the feature flag is disabled5523 does not log5524Resolvers::DesignManagement::DesignAtVersionResolver5525 #resolve5526 returns the specified design5527 when the user cannot see designs5528 generates ResourceNotAvailable5529 the ID belongs to a design on another issue5530 generates ResourceNotAvailable5531 the current object does not constrain the issue5532 returns the object5533RecaptchaHelper5534 .show_recaptcha_sign_up?5535 is expected to eq true5536 when setting is disabled5537 is expected to eq false5538 when GITLAB_QA_USER_AGENT env var is present5539 dot_com: false, user_agent: "qa_user_agent", qa_user_agent: "qa_user_agent", result: true5540 is expected to eq true5541 dot_com: true, user_agent: nil, qa_user_agent: "qa_user_agent", result: true5542 is expected to eq true5543 dot_com: true, user_agent: "", qa_user_agent: "qa_user_agent", result: true5544 is expected to eq true5545 dot_com: true, user_agent: "qa_user_agent", qa_user_agent: "", result: true5546 is expected to eq true5547 dot_com: true, user_agent: "qa_user_agent", qa_user_agent: nil, result: true5548 is expected to eq true5549 dot_com: true, user_agent: "qa_user_agent", qa_user_agent: "qa_user_agent", result: false5550 is expected to eq false5551 .recaptcha_enabled_on_login?5552 is expected to eq true5553 when setting is disabled5554 is expected to eq false5555 when GITLAB_QA_USER_AGENT env var is present5556 dot_com: false, user_agent: "qa_user_agent", qa_user_agent: "qa_user_agent", result: true5557 is expected to eq true5558 dot_com: true, user_agent: nil, qa_user_agent: "qa_user_agent", result: true5559 is expected to eq true5560 dot_com: true, user_agent: "", qa_user_agent: "qa_user_agent", result: true5561 is expected to eq true5562 dot_com: true, user_agent: "qa_user_agent", qa_user_agent: "", result: true5563 is expected to eq true5564 dot_com: true, user_agent: "qa_user_agent", qa_user_agent: nil, result: true5565 is expected to eq true5566 dot_com: true, user_agent: "qa_user_agent", qa_user_agent: "qa_user_agent", result: false5567 is expected to eq false5568MergeRequests::ExecuteApprovalHooksWorker5569 calls MergeRequests::ExecuteApprovalHooksService5570 behaves like subscribes to event5571 consumes the published event5572 behaves like an idempotent worker5573 is labeled as idempotent5574 performs multiple times sequentially without raising an exception5575 when the user does not exist5576 behaves like when object does not exist5577 logs and does not call MergeRequests::ExecuteApprovalHooksService5578 when the merge request does not exist5579 behaves like when object does not exist5580 logs and does not call MergeRequests::ExecuteApprovalHooksService5581MigrateExternalDiffsWorker5582 #perform5583 migrates the listed diff5584 does nothing if the diff is missing5585Ci::DagJobGroupEntity5586 #as_json5587 when group contains 1 job5588 exposes a name5589 exposes the size5590 exposes the jobs5591 matches schema5592 when group contains multiple parallel jobs5593 exposes a name5594 exposes the size5595 exposes the jobs5596 matches schema5597Gitlab::Kubernetes::Helm::V2::BaseCommand5598 HELM_VERSION5599 is expected to match /^2\.\d+\.\d+$/5600 #env5601 is expected to include {:TILLER_NAMESPACE => "gitlab-managed-apps"}5602 behaves like helm command generator5603 #generate_script5604 returns appropriate command5605 #pod_name5606 is expected to eq "install-test-class-name"5607 behaves like helm command5608 HELM_VERSION5609 is expected to match /\d+\.\d+\.\d+/5610 #env5611 is expected to be a kind of Hash5612 #rbac?5613 rbac is enabled5614 is expected to be truthy5615 rbac is not enabled5616 is expected to be falsey5617 #pod_resource5618 rbac is enabled5619 is expected to be an instance of Kubeclient::Resource5620 generates a pod that uses the tiller serviceAccountName5621 rbac is not enabled5622 is expected to be an instance of Kubeclient::Resource5623 generates a pod that uses the default serviceAccountName5624 #config_map_resource5625 returns a KubeClient resource with config map content for the application5626 #service_account_resource5627 rbac is enabled5628 generates a Kubeclient resource for the tiller ServiceAccount5629 rbac is not enabled5630 generates nothing5631 #cluster_role_binding_resource5632 rbac is enabled5633 generates a Kubeclient resource for the ClusterRoleBinding for tiller5634 binds the account in #service_account_resource5635 rbac is not enabled5636 generates nothing5637Pajamas::AvatarComponent5638 avatar shape5639 for a User5640 has a circle shape5641 for a Project5642 has default shape (rect)5643 for a Group5644 has default shape (rect)5645 avatar image5646 when it has an uploaded image5647 uses the avatar_url as image src5648 uses a srcset for higher resolution on retina displays5649 uses lazy loading5650 with size option5651 uses that size as param for image src and srcset5652 when a project or group has no uploaded image5653 uses an identicon with the record's initial5654 when the record has no id5655 uses an identicon with default background color5656 when a user has no uploaded image5657DEPRECATION WARNING: `rendered_component` is deprecated and will be removed in v3.0.0. Use `page` instead. (called from block (4 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/components/pajamas/avatar_component_spec.rb:95)5658 uses a gravatar5659 options5660 alt5661 with a value5662 uses given value as alt text5663 without a value5664 uses the record's name as alt text5665 class5666 has the correct custom class5667 size5668 has the correct size class5669API::Helpers::PackagesManagerClientsHelpers5670 #find_job_from_http_basic_auth5671 behaves like valid auth header5672 with a valid Authorization header5673 is expected to eq #<Ci::Build status: "running", finished_at: nil, created_at: "2022-11-04 08:50:29.000000000 +0000", updated_at: "2022-11-04 14:40:55.610314331 +0000", started_at: nil, runner_id: nil, coverage: nil, commit_id: 85, name: "test", options: nil, allow_failure: false, stage: "test", trigger_request_id: nil, stage_idx: 0, tag: false, ref: "master", user_id: 2174, type: "Ci::Build", target_url: nil, description: nil, project_id: 870, erased_by_id: nil, erased_at: nil, artifacts_expire_at: nil, environment: nil, when: nil, yaml_variables: nil, queued_at: "2022-11-04 08:50:29.000000000 +0000", lock_version: 0, coverage_regex: nil, auto_canceled_by_id: nil, retried: false, protected: false, failure_reason: "unknown_failure", scheduled_at: nil, token_encrypted: "|JfJyJ5YBgZCkHUJdVk9YLiIe/5KEhowxDVxK7S51uvgICibL0...", upstream_pipeline_id: nil, resource_group_id: nil, waiting_for_resource_at: nil, processed: false, scheduling_type: "stage", id: 124, stage_id: 85, partition_id: 100, tag_list: nil>5674 with an unknown password5675 is expected to equal nil5676 behaves like invalid auth header5677 with an invalid Authorization header5678 is expected to equal nil5679 when the job is not running5680 behaves like valid auth header5681 with a valid Authorization header5682 is expected to eq nil5683 with an unknown password5684 is expected to equal nil5685 #find_deploy_token_from_http_basic_auth5686 behaves like valid auth header5687 with a valid Authorization header5688 is expected to eq #<DeployToken id: 1, revoked: false, read_repository: true, read_registry: true, expires_at: "2022-11-09 14:40:56.807997333 +0000", created_at: "2022-11-04 14:40:56.826772761 +0000", name: "PDT 1", username: nil, token_encrypted: "yCaVHDngEsOrkYmI8F9dOMeiUQogg1ChyhfVBCC/CaFHb2bAzW...", deploy_token_type: "project_type", write_registry: false, read_package_registry: false, write_package_registry: false, creator_id: nil>5689 with an unknown password5690 is expected to equal nil5691 behaves like invalid auth header5692 with an invalid Authorization header5693 is expected to equal nil5694gitlab:password rake tasks5695 :reset5696 when all inputs are correct5697 updates the password properly5698 when username is not provided5699 asks for username5700 when username is empty5701Username can not be empty.5702 aborts with an error5703 when username is passed as argument5704 does not ask for username5705 when passwords do not match5706Unable to change password of the user with username foobar.5707Password confirmation doesn't match Password5708 aborts with an error5709 when user cannot be found5710Unable to find user with username nonexistentuser.5711 aborts with an error5712Preloaders::MergeRequestDiffPreloader5713 does not trigger N+1 queries5714Gitlab::UsageData::Topology5715 #topology_usage_data5716 can reach a ready Prometheus client5717 behaves like query topology data from Prometheus5718 tracking node metrics5719 contains node level metrics for each instance5720 and some node memory metrics are missing5721 removes the respective entries and includes the failures5722 and services run on the same node but report different instance values5723 normalizes equivalent instance values and maps them to the same node5724 and node metrics are missing but service metrics exist5725 still reports service metrics5726 and unknown services are encountered5727 filters out unknown service data and reports the unknown services as a failure5728 and an error is raised when querying Prometheus5729 without timeout failures5730 returns empty result and executes subsequent queries as usual5731 with timeout failures5732 exception: Errno::ETIMEDOUT5733 returns empty result and cancelled subsequent queries5734 exception: Net::OpenTimeout5735 returns empty result and cancelled subsequent queries5736 exception: Net::ReadTimeout5737 returns empty result and cancelled subsequent queries5738 can not reach a ready Prometheus client5739 behaves like returns empty result with no failures5740 is expected to eq {:duration_s=>0, :failures=>[]}5741 when top-level function raises error5742 returns empty result with generic failure5743Packages::Dependency5744 relationships5745 is expected to have many dependency_links5746 validations5747 is expected to validate that :name cannot be empty/falsy5748 is expected to validate that :version_pattern cannot be empty/falsy5749 is expected to validate that :name is case-sensitively unique within the scope of :version_pattern5750 .ids_for_package_names_and_version_patterns5751 is expected to contain exactly 5 and 65752 with unknown names5753 is expected to be empty5754 with unknown version patterns5755 is expected to be empty5756 with a name bigger than column size5757 is expected to contain exactly 5 and 65758 with a version pattern bigger than column size5759 is expected to contain exactly 5 and 65760 with too big parameter5761 is expected to raise ArgumentError with "Too many names_and_version_patterns"5762 with parameters size5763 above the chunk size5764 is expected to contain exactly 5, 6, 7, 8, 9, 10, and 115765 selecting too many rows5766 is expected to raise ArgumentError with "Too many Dependencies selected"5767 .for_package_names_and_version_patterns5768 is expected to contain exactly #<Packages::Dependency id: 12, name: "foo", version_pattern: "~1.0.0"> and #<Packages::Dependency id: 13, name: "bar", version_pattern: "~2.5.0">5769 with unknown names5770 is expected to be empty5771 with unknown version patterns5772 is expected to be empty5773Ml::ExperimentTracking::ExperimentRepository5774 # order random5775 #create!5776 creates the candidate5777 when name exists5778 throws error5779 when name is missing5780 throws error5781 #by_iid_or_name5782 when iid passed5783 fetches the experiment5784 and name passed5785 ignores the name5786 and does not exist5787 is expected to eq nil5788 when iid is not passed and name is passed5789 when name exists5790 fetches the experiment5791 when name does not exist5792 is expected to eq nil5793 #all5794 fetches experiments for project5795Projects::ImportExport::RelationExportWorker5796 behaves like an idempotent worker5797 is labeled as idempotent5798 performs multiple times sequentially without raising an exception5799 #perform5800 when relation export has initial state queued5801 calls RelationExportService5802 when relation export does not have queued state5803 does not call RelationExportService5804Gitlab::Usage::Metrics::Query5805 .count5806 returns the raw SQL5807 does not mix a nil column with keyword arguments5808 removes order from passed relation5809 returns valid raw SQL for join relations5810 returns valid raw SQL for join relations with joined columns5811 .distinct_count5812 returns the raw SQL5813 does not mix a nil column with keyword arguments5814 removes order from passed relation5815 returns valid raw SQL for join relations5816 returns valid raw SQL for join relations with joined columns5817 .sum5818 returns the raw SQL5819 .average5820 returns the raw SQL5821 estimate_batch_distinct_count5822 returns the raw SQL5823 .histogram5824 returns the histogram sql5825 other5826 raise ArgumentError error5827Gitlab::SlashCommands::Presenters::IssueClose5828 is expected to be a kind of Hash5829 shows the issue5830 confidential issue5831 shows an ephemeral response5832Packages::SemVer5833 #parse5834 behaves like #parse with a valid semver5835 with 1.0.05836 returns v1.0.0 with prefix5837 returns 1.0.0 without prefix5838 behaves like #parse with a valid semver5839 with 1.0.0-pre5840 returns v1.0.0-pre with prefix5841 returns 1.0.0-pre without prefix5842 behaves like #parse with a valid semver5843 with 1.0.0+build5844 returns v1.0.0+build with prefix5845 returns 1.0.0+build without prefix5846 behaves like #parse with a valid semver5847 with 1.0.0-pre+build5848 returns v1.0.0-pre+build with prefix5849 returns 1.0.0-pre+build without prefix5850 behaves like #parse with an invalid semver5851 with 01.0.05852 returns nil with prefix5853 returns nil without prefix5854 behaves like #parse with an invalid semver5855 with 0.01.05856 returns nil with prefix5857 returns nil without prefix5858 behaves like #parse with an invalid semver5859 with 0.0.015860 returns nil with prefix5861 returns nil without prefix5862 behaves like #parse with an invalid semver5863 with 1.0.0asdf5864 returns nil with prefix5865 returns nil without prefix5866ProtectedBranches::CreateService5867 #execute5868 creates a new protected branch5869 refreshes the cache5870 when protecting a branch with a name that contains HTML tags5871 creates a new protected branch5872 when user does not have permission5873 creates a new protected branch if we skip authorization step5874 raises Gitlab::Access:AccessDeniedError5875 when a policy restricts rule creation5876 prevents creation of the protected branch rule5877Gitlab::RequestEndpoints5878 .all_api_endpoints5879 selects all feature API classes5880 .all_controller_actions5881 selects all feature controllers and action names5882projects/pipelines/show5883 when pipeline has errors5884 shows errors5885 does not render the pipeline tabs5886 when pipeline is valid5887 does not show errors5888 renders the pipeline tabs5889Issue::Email5890 Associations5891 is expected to belong to issue required: false5892 Validations5893 is expected to validate that :issue cannot be empty/falsy5894 is expected to validate that :issue is case-sensitively unique5895 is expected to validate that :email_message_id is case-sensitively unique5896 is expected to validate that the length of :email_message_id is at most 10005897 is expected to validate that :email_message_id cannot be empty/falsy5898Boards::CreateService5899 #execute5900 when board parent is a project5901 behaves like boards create service5902 when parent does not have a board5903 creates a new board5904 creates the default lists5905 when parent has a board5906 does not create a new board5907 when board parent is a group5908 behaves like boards create service5909 when parent does not have a board5910 creates a new board5911 creates the default lists5912 when parent has a board5913 does not create a new board5914Settings5915 #ldap5916 can be accessed with dot syntax all the way down5917 can be accessed in a very specific way that breaks without reassigning each element with Settingslogic5918 #host_without_www5919 URL with protocol5920 returns the host5921 URL without protocol5922 returns the host5923 URL with user/port5924 returns the host5925 #weak_passwords_digest_set5926 is a Set5927 contains 4500 password digests5928 includes 8 char weak password digest5929 includes 16 char weak password digest5930 includes long char weak password digest5931 does not include 7 char weak password digest5932 does not include plaintext5933Clusters::Agents::GroupAuthorization5934 is expected to belong to agent class_name => Clusters::Agent required: true5935 is expected to belong to group class_name => ::Group required: true5936 is expected to validate jsonb schema "config"5937 #config_project5938 is expected to eq #<Project id:891 namespace959/project936>>5939API::Helpers::RelatedResourcesHelpers5940 #expose_path5941 empty relative URL root5942 returns the existing path5943 slash relative URL root5944 returns the existing path5945 with relative URL root5946 returns the existing path5947 #expose_url5948 respects the protocol if it is HTTP5949 respects the protocol if it is HTTPS5950 accepts the host if it contains an underscore5951 accepts port to be nil5952 includes port if provided5953 includes the relative_url before the path if it is set5954 includes the path after the host5955Gitlab::ReactiveCacheSetCache5956 #cache_key5957 includes the suffix5958 #read5959 is expected to be empty5960 after item added5961 is expected to contain exactly "test_item"5962 #write5963 writes the value to the cache5964 sets the expiry of the set5965 #clear_cache!5966 deletes the cached items5967 #include?5968 is expected to equal false5969 item added5970 is expected to equal true5971 count5972 is expected to equal 05973 item added5974 is expected to equal 15975RequireVerificationForNamespaceCreationExperiment5976 #candidate?5977 when experiment subject is candidate5978 returns true5979 when experiment subject is control5980 returns false5981 #record_conversion5982 when should_track? is false5983DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block (4 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/experiments/require_verification_for_namespace_creation_experiment_spec.rb:42)5984 does not record a conversion event5985 when should_track? is true5986DEPRECATION WARNING: publish_to_database is deprecated and should not be used for reporting anymore (called from block (4 levels) in <top (required)> at /builds/gitlab-org/gitlab/spec/experiments/require_verification_for_namespace_creation_experiment_spec.rb:53)5987 records a conversion event5988 exclusions5989 when user is new5990 is not excluded5991 when user is NOT new5992 is excluded5993Gitlab::Ci::Variables::Builder::Release5994 # order random5995 #variables5996 when the release is present5997 contains all the variables5998 for large description5999 truncates6000 when description is nil6001 returns without error6002 when the release is not present6003 contains no variables6004Projects::LfsPointers::LfsImportService6005 when lfs is enabled for the project6006 downloads lfs objects6007 when no downloadable lfs object links6008 does not call LfsDownloadService6009 when an exception is raised6010 returns error6011 when lfs is not enabled for the project6012 does not download lfs objects6013BitbucketServer::Connection6014 #get6015 returns JSON body6016 throws an exception if the response is not 2006017 throws an exception if the response is not JSON6018 throws an exception upon a network error6019 #post6020 returns JSON body6021 throws an exception if the response is not 2006022 throws an exception upon a network error6023 #delete6024 branch API6025 returns JSON body6026 throws an exception if the response is not 2006027 throws an exception upon a network error6028Integrations::ChatMessage::MergeMessage6029 behaves like Integrations::ChatMessage6030 when input contains link markup6031 strips all link markup characters6032 without markdown6033 open6034 returns a message regarding opening of merge requests6035 close6036 returns a message regarding closing of merge requests6037 with markdown6038 open6039 returns a message regarding opening of merge requests6040 close6041 returns a message regarding closing of merge requests6042 approved6043 returns a message regarding completed approval of merge requests6044 unapproved6045 returns a message regarding revocation of completed approval of merge requests6046 approval6047 returns a message regarding added approval of merge requests6048 unapproval6049 returns a message regarding revoking approval of merge requests6050Gitlab::Ci::Status::Build::Preparing6051 #illustration6052 is expected to include :image, :size, :title, and :content6053 .matches?6054 when build is preparing6055 is a correct match6056 when build is not preparing6057 does not match6058Gitlab::GithubImport::Importer::PullRequestMergedByImporter6059 when the merger user can be mapped6060 assigns the merged by user when mapped6061 when the merger user cannot be mapped to a gitlab user6062 adds a note referencing the merger user6063 when the merger user is not provided6064 adds a note referencing the merger user6065Import::ManifestProviderRepoEntity6066 behaves like exposes required fields for import entity6067 exposes required fields6068 correctly exposes id6069 correctly exposes full name6070 correctly exposes sanitized name6071 correctly exposes provider link6072QualifiedDomainArrayValidator6073 validations6074 returns error when attribute is nil6075 allows when domain is valid6076 returns error when domain contains unicode6077 returns error when entry is larger than 255 chars6078 returns error when entry contains HTML tags6079 behaves like can be blank6080 allows when attribute is blank6081 when allow_nil is set to true6082 behaves like can be nil6083 allows when attribute is nil6084 behaves like can be blank6085 allows when attribute is blank6086 when allow_blank is set to true6087 behaves like can be nil6088 allows when attribute is nil6089 behaves like can be blank6090 allows when attribute is blank6091Mutations::CustomerRelations::Contacts::Update6092 is expected to require graphql authorizations :admin_crm_contact6093 #resolve6094 when the user does not have permission to update a contact6095 raises an error6096 when the contact does not exist6097 raises an error6098 when the user has permission to update a contact6099 updates the organization with correct values6100Net::HTTP patch proxy user and password encoding6101 #proxy_user6102 is expected to eq nil6103 with http_proxy env6104 is expected to eq nil6105 and user:password authentication6106 when on multiuser safe platform6107 is expected to eq "Y\\X"6108 when not on multiuser safe platform6109 is expected to be nil6110 #proxy_pass6111 is expected to eq nil6112 with http_proxy env6113 is expected to eq nil6114 and user:password authentication6115 when on multiuser safe platform6116 is expected to eq "R%S] ?X"6117 when not on multiuser safe platform6118 is expected to be nil6119Gitlab::Kubernetes::KubectlCmd6120 .delete6121 constructs string properly6122 .apply_file6123 without optional args6124 requires filename to be present6125 constructs string properly6126 with optional args6127 constructs command properly with many args6128 constructs command properly with single arg6129 .api_resources6130 constructs string properly6131 .delete_crds_from_group6132 constructs string properly6133Gitlab::SQL::CTE6134 #to_arel6135 when relation is an ActiveRecord::Relation6136 generates an Arel relation for the CTE body6137 when relation is a String6138 generates an Arel relation for the CTE body6139 #alias_to6140 returns an alias for the CTE6141 #apply_to6142 applies a CTE to an ActiveRecord::Relation6143 behaves like CTE with MATERIALIZED keyword examples6144 adding MATERIALIZE to the CTE6145 when PG version is <126146 does not add MATERIALIZE keyword6147 when PG version is >=126148 adds MATERIALIZE keyword6149 when version is higher than 126150 adds MATERIALIZE keyword6151 when materialized is disabled6152 does not add MATERIALIZE keyword6153Gitlab::QuickActions::TimelineTextAndDateTimeSeparator6154 # order random6155 execute6156 with invalid parameters in arg line6157 with empty arg line6158 behaves like arg line with invalid parameters6159 returns nil6160 with invalid date6161 behaves like arg line with invalid parameters6162 returns nil6163 behaves like arg line with invalid parameters6164 returns nil6165 behaves like arg line with invalid parameters6166 returns nil6167 with invalid time6168 behaves like arg line with invalid parameters6169 returns nil6170 when date is invalid in arg line6171 return current date6172 with valid parameters6173 when only timeline text present in arg line6174 behaves like arg line with valid parameters6175 returns text and date time array6176 when only timeline text and time present in arg line6177 behaves like arg line with valid parameters6178 returns text and date time array6179 when timeline text and date is present in arg line6180 behaves like arg line with valid parameters6181 returns text and date time array6182Database Documentation6183 for each table6184 has a metadata file6185 has a valid metadata file6186 has a valid metadata file with allowed fields6187 has a valid metadata file without missing fields6188Resolvers::GroupMembers::NotificationEmailResolver6189 #resolve6190 is expected to have nullable GraphQL type String6191 when current_user is admin6192 returns email6193 when current_user is not admin6194 raises ResourceNotAvailable error6195MergeRequestForPipelineEntity6196 as json6197 exposes needed attributes6198Gitlab::Ci::Status::Bridge::Common6199 #details_path6200 when user has access to read downstream pipeline6201 is expected to have details6202 is expected to include "pipelines/95"6203 when user does not have access to read downstream pipeline6204 is expected not to have details6205 is expected to be nil6206Users::Callout6207 behaves like having unique enum values6208 has unique values in "feature_name"6209 validations6210 is expected to validate that :feature_name cannot be empty/falsy6211 is expected to validate that :feature_name is unique within the scope of :user_id6212 scopes6213 .with_feature_name6214 returns user callouts for the given feature name only6215Gitlab::Import::ImportFailureService6216 .track6217 with all arguments provided6218 invokes a new instance and executes6219 with only necessary arguments utilizing defaults6220 invokes a new instance and executes6221 #execute6222 when tracking metrics6223 tracks the failed import6224 when using the project as reference6225 when it fails the import6226 behaves like logs the exception and fails the import6227 when the failure does not abort the import6228 when it does not fail the import6229 behaves like logs the exception and does not fail the import6230 when the failure does not abort the import6231 when using the import_state as reference6232 when it fails the import6233 behaves like logs the exception and fails the import6234 when the failure does not abort the import6235 when it does not fail the import6236 behaves like logs the exception and does not fail the import6237 when the failure does not abort the import6238WikiDirectory6239 validations6240 is expected to validate that :slug cannot be empty/falsy6241 .group_pages6242 returns a nested array of entries6243 #initialize6244 when there are entries6245 sets the slug attribute6246 sets the entries attribute6247 when there are no entries6248 sets the slug attribute6249 sets the entries attribute to an empty array6250 #title6251 returns the basename of the directory, with hyphens replaced by spaces6252 #to_partial_path6253 returns the relative path to the partial to be used6254VersionCheck6255 .url6256 returns the correct URL6257 reactive cache properties6258 .reactive_cache_refresh_interval6259 returns 12.hours6260 .reactive_cache_lifetime6261 returns 7.days6262 #calculate_reactive_cache6263 response code is 2006264 returns the response object6265 response code is not 2006266 returns nil6267 #response6268 cache returns value6269 returns the response object6270 cache returns nil6271 returns nil6272AlertManagement::HttpIntegrationPolicy6273 rules6274 is expected to be disallowed :admin_operations6275 when maintainer6276 is expected to be allowed :admin_operations6277Gitlab::Graphql::Pagination::ArrayConnection6278 behaves like a connection with collection methods6279 responds to to_a6280 responds to size6281 responds to map6282 responds to include?6283 responds to empty?6284 behaves like a redactable connection6285 no redactor set6286 contains the unwanted item6287 does not redact more than once6288 redactor is set6289 does not contain the unwanted item6290 does not redact more than once6291GoogleCloud::FetchGoogleIpListService6292 # order random6293 #execute6294 returns a list of IPAddr subnets and caches the result6295 with rate limit in effect6296 returns rate limit error6297 when the URL returns a 4046298 behaves like IP range retrieval failure6299 does not cache the result and logs an error6300 when the URL returns too large of a payload6301 behaves like IP range retrieval failure6302 does not cache the result and logs an error6303 when the URL returns HTML6304 behaves like IP range retrieval failure6305 does not cache the result and logs an error6306 when the URL returns empty results6307 behaves like IP range retrieval failure6308 does not cache the result and logs an error6309Gitlab::Database::BackgroundMigration::HealthStatus::Indicators::WriteAheadLog6310 #evaluate6311 remembers the indicator class6312 returns NoSignal signal in case the feature flag is disabled6313 returns NoSignal signal when WAL archive queue can not be calculated6314 uses primary database6315 when WAL archive queue size is below the limit6316 returns Normal signal6317 when WAL archive queue size is above the limit6318 returns Stop signal6319Banzai::Filter::References::AbstractReferenceFilter6320 #data_attributes_for6321 is not an XSS vector6322 abstract methods6323 #find_object6324 raises NotImplementedError6325 #url_for_object6326 raises NotImplementedError6327Gitlab::Analytics::CycleAnalytics::Average6328 #seconds6329 when no results6330 is expected to eq nil6331 returns the average duration in seconds6332 is expected to be within 0.5 of 648000.06333 #days6334 when no results6335 is expected to eq nil6336 returns the average duration in days6337 is expected to be within 0.01 of 7.56338Gitlab::WordDiff::Segments::DiffHunk6339 #pos_old6340 is expected to eq 36341 when diff hunk is broken6342 is expected to eq 06343 #pos_new6344 is expected to eq 46345 when diff hunk is broken6346 is expected to eq 06347 #first_line?6348 is expected to be falsey6349 when diff hunk located on the first line6350 is expected to be truthy6351 #to_s6352 is expected to eq "@@ -3,14 +4,13 @@"6353Spam::HamService6354 #execute6355 AkismetService returns false (Akismet cannot be reached, etc)6356 returns false6357 does not update the record6358 if spam log record has already been marked as spam6359 does not update the record6360 Akismet ham submission is successful6361 returns true6362 updates the record6363RuboCop::Cop::Database::RescueStatementTimeout6364 # order random6365 flags the use of ActiveRecord::StatementTimeout6366 does not flag a different exception6367Gitlab::Ci::Pipeline::Expression::Token6368 #value6369 returns raw token value6370 #lexeme6371 returns raw token lexeme6372 #build6373 delegates to lexeme after adding a value6374 allows passing only required arguments6375 #type6376 delegates type query to the lexeme6377 #to_lexeme6378 returns raw lexeme syntax component name6379Gitlab::Config::Entry::Validators::NestedArrayHelpers6380 #validate_nested_array6381 with valid values6382 with arrays of integers6383 is expected to be empty6384 with nested arrays of integers6385 is expected to be empty6386 with invalid values6387 with single integers6388 is expected to eq {:value=>["is invalid"]}6389 when it is nested over the limit6390 is expected to eq {:value=>["is invalid"]}6391 when a value in the array is not valid6392 is expected to eq {:value=>["is invalid"]}6393 when a value in the nested array is not valid6394 is expected to eq {:value=>["is invalid"]}6395Gitlab::Utils::Gzip6396 # order random6397 #gzip_decompress6398 decompresses encoded data6399 returns compressed data when encountering Zlib::GzipFile::Error6400 returns unmodified data when it is determined to be uncompressed6401 #gzip_compress6402 compresses data passed to it6403 returns uncompressed data when encountering Zlib::GzipFile::Error6404Projects::ContainerRepository::DestroyService6405 when user does not have access to registry6406 does not delete a repository6407 when user has access to registry6408 when root container repository exists6409 deletes the repository6410 when destroy fails6411 set delete_status6412RuboCop::Cop::AvoidKeywordArgumentsInSidekiqWorkers6413 # order random6414 does not flag a violation for standard optional arguments usage in perform method signature6415 does not flag a violation for keyword arguments usage in non-perform method signatures6416 flags violation for optional keyword arguments usage in perform method signature6417 does not flag a violation for optional keyword arguments usage in non-perform method signatures6418 flags violation for keyword arguments usage in perform method signature6419Gitlab::ServiceDesk6420 enabled?6421 is expected to be truthy6422 when service desk is not supported6423 is expected to be falsy6424 when service desk is disabled for project6425 is expected to be falsy6426 supported?6427 is expected to be truthy6428 when incoming emails are disabled6429 is expected to be falsy6430 when email key is not supported6431 is expected to be falsy6432GoogleCloud::EnableCloudsqlService6433 when a project does not have any GCP_PROJECT_IDs configured6434 creates GCP_PROJECT_ID project var6435 when a project has GCP_PROJECT_IDs configured6436 enables cloudsql, compute and service networking Google APIs6437 when Google APIs raise an error6438 returns error result6439Resolvers::AlertManagement::AlertStatusCountsResolver6440 #resolve6441 is expected to be a kind of Gitlab::AlertManagement::AlertStatusCounts6442 is expected to eq #<Project id:912 namespace991/project967>>6443Banzai::Pipeline6444 .[]6445 for nil6446 is expected to eq Banzai::Pipeline::FullPipeline6447 for symbols6448 when known6449 is expected to eq Banzai::Pipeline::FullPipeline6450 when unknown6451 behaves like error6452 is expected to raise NameError with "uninitialized constant Banzai::Pipeline::UnknownPipeline"6453 for classes6454 subclassing Banzai::Pipeline::BasePipeline6455 is expected to eq #<Class:0x00007f3d3360bdb0>6456 subclassing other types6457 behaves like error6458 is expected to raise ArgumentError with "unsupported pipeline name Foo (Class)"6459 for other types6460 behaves like error6461 is expected to raise ArgumentError with "unsupported pipeline name \"label\" (String)"6462Gitlab::Graphql::CallsGitaly::FieldExtension6463 when the field calls gitaly6464 when the field has a constant complexity6465 allows the call6466 when the field declares that it calls gitaly6467 allows the call6468 when the field does not have these arguments6469 notices, and raises, mentioning the field6470 when it does not call gitaly6471 does not raise6472 when some field calls gitaly while we were waiting6473 is acceptable if all are accounted for6474 is unacceptable if some of the calls are unaccounted for6475ScheduleMergeRequestCleanupRefsWorker6476 #perform6477 does nothing if the database is read-only6478 retries stuck cleanup schedules6479 is labeled as idempotent6480 performs multiple times sequentially without raising an exception6481 schedules MergeRequestCleanupRefsWorker to be performed with capacity6482 when merge_request_refs_cleanup flag is disabled6483 does not schedule any merge request clean ups6484validate puma6485 for .com6486 when worker count is 06487 is expected to raise String6488 when worker count is > 06489 is expected not to raise Exception6490 for other environments6491 when worker count is 06492 is expected not to raise Exception6493 warns about running Puma in a Single mode6494 when worker count is > 06495 is expected not to raise Exception6496 does not issue a warning6497Gitlab::PhabricatorImport::WorkerState6498 #add_job6499 increments the counter for jobs6500 #remove_job6501 decrements the counter for jobs6502 #running_count6503 reads the value6504 returns 0 when nothing was set6505Net::HTTPResponse patch header read timeout6506 .each_response_header6507 with Net::BufferedIO6508 does not forward start time to the socket6509 when the response contains many consecutive spaces6510 has no regex backtracking issues6511 with Gitlab::BufferedIo6512 forwards start time to the socket6513 when the response contains an infinite number of headers6514 raises a timeout error6515Gitlab::Database::LoadBalancing::SrvResolver6516 #address_for6517 when additional section contains an A record6518 returns an IP4 address6519 when additional section contains an AAAA record6520Net::DNS unsupported record type: uninitialized constant Net::DNS::RR::OPT6521Did you mean? Net::DNS::OPT6522 returns an IP6 address6523 when additional section does not contain A nor AAAA records6524 when host resolves to an A record6525 returns an IP4 address6526 when host does resolves to an AAAA record6527Net::DNS unsupported record type: uninitialized constant Net::DNS::RR::OPT6528Did you mean? Net::DNS::OPT6529 returns an IP6 address6530RuboCop::Cop::PreferClassMethodsOverModule6531 # order random6532 doesn't flag violation when not using either class_methods or ClassMethods6533 flags violation when using module ClassMethods and corrects6534 doesn't flag violation when ClassMethods is used inside a class6535 doesn't flag violation when using class_methods6536 doesn't flag violation when module is not extending ActiveSupport::Concern6537FromExcept6538 behaves like from set operator6539 #from_except6540 selects from the results of the EXCEPT6541 returns empty set when passing empty array6542 supports the use of a custom alias for the sub query6543 supports keeping duplicate rows6544Gitlab::Git::Conflict::File6545 #lines6546 when the content contains non-UTF-8 characters6547 raises UnsupportedEncoding6548 when the content can be converted to UTF-86549 sets lines to the lines6550 sets the type to text6551 #content6552 when the content contains non-UTF-8 characters6553 raises UnsupportedEncoding6554 when the content can be converted to UTF-86555 returns a valid UTF-8 string6556 #path6557 returns our_path6558 when our_path is not present6559 returns their_path6560Applications::CreateService6561 when scopes are present6562 is expected to change `Doorkeeper::Application.count` by 16563 when scopes are missing6564 is expected not to change `Doorkeeper::Application.count`6565 includes blank scopes error message6566FutureDateValidator6567 past date6568 is expected not to be valid6569 current date6570 is expected to be valid6571 future date6572 is expected to be valid6573Gitlab::Pagination::Keyset::CursorBasedRequestContext6574 #per_page6575 is expected to eq 26576 #cursor6577 is expected to eq "eyJuYW1lIjoiR2l0TGFiIEluc3RhbmNlIiwiaWQiOiI1MiIsIl9rZCI6Im4ifQ=="6578 #order_by6579 is expected to eq {:name=>:asc}6580 #apply_headers6581 sets Link header with same host/path as the original request6582 sets Link header with a cursor to the next page6583Gitlab::Middleware::QueryAnalyzer6584 the PreventCrossDatabaseModification6585 #call6586 when there is a cross modification6587 detects cross modifications and tracks exception6588 when the detect_cross_database_modification is disabled6589 does not detect cross modifications6590 when there is no cross modification6591 does not log anything6592RuboCop::Cop::Database::MultipleDatabases6593 # order random6594 flags the use of ::ActiveRecord::Base.connection6595 flags the use of ActiveRecord::Base.connection6596 does not flag use of ActiveRecord::Base.no_touching6597 does not flag use of ActiveRecord::Base.configurations6598RuboCop::Cop::Performance::ARCountEach6599 # order random6600 when it is haml file6601 when the same object uses count and each6602 flags it as an offense6603 when different object uses count and each6604 does not flag it as an offense6605 when just using count without each6606 does not flag it as an offense6607 when just using each without count6608 does not flag it as an offense6609 when it is not haml file6610 does not flag it as an offense6611FeatureFlagSummaryEntity6612 has summary information6613Gitlab::HealthChecks::MasterCheck6614 when Puma runs in Clustered mode6615 .available?6616 is expected to equal true6617 .readiness6618 when no worker registered6619 succeeds6620 when worker registers itself6621 when reading from pipe succeeds6622 succeeds6623 when read pipe is open but not ready for reading6624 succeeds6625 when master finishes early6626 fails6627 when Puma runs in Single mode6628 .available?6629 is expected to equal false6630Gitlab::Config::Entry::Simplifiable6631 .strategy6632 defines entry strategies6633 setting strategy by a condition6634 when first strategy should be used6635 attemps to load a first strategy6636 when second strategy should be used6637 attemps to load a second strategy6638 when neither one is a valid strategy6639 instantiates an unknown strategy6640 when a unknown strategy class is not defined6641 raises an error when being initialized6642Types::Ci::RunnerType6643 is expected to eq "CiRunner"6644 is expected to require graphql authorizations :read_runner6645 contains attributes related to a runner6646RuboCop::Cop::Migration::VersionedMigrationClass6647 # order random6648 outside of a migration6649 behaves like a disabled cop6650 does not register any offenses6651 in migration6652 in an old migration6653 behaves like a disabled cop6654 does not register any offenses6655 that is recent6656 adds an offence if inheriting from ActiveRecord::Migration6657 adds an offence if including Gitlab::Database::MigrationHelpers directly6658 excludes ActiveRecord classes defined inside the migration6659GroupLink::GroupLinkEntity6660 matches json schema6661 correctly exposes `valid_roles`6662 correctly exposes `shared_with_group.avatar_url`6663Gitlab::Ci::Build::Artifacts::Adapters::GzipStream6664 #initialize6665 when stream is passed6666 initialized6667 when stream is not passed6668 raises an error6669 #each_blob6670 when stream is gzip file6671 when gzip file contains one file6672 iterates content and file_name6673 when gzip file contains three files6674 iterates content and file_name6675 when stream is zip file6676 raises an error6677Gitlab::ImportExport::DurationMeasuring6678 measures method execution duration6679 #with_duration_measuring6680 yields control6681 returns result of the yielded block6682OmniAuth::Strategies::OAuth26683 verifies the gem version6684 when a Faraday exception is raised6685 exception: Faraday::TimeoutError6686 passes the exception to OmniAuth6687 exception: Faraday::ConnectionFailed6688 passes the exception to OmniAuth6689Gitlab::Auth::Otp::Strategies::FortiAuthenticator::ManualOtp6690 successful validation6691 returns success6692 unsuccessful validation6693 returns error6694 unexpected error6695 returns error6696API::Validations::Validators::GitSha6697 valid sha6698 does not raise a validation error6699 empty params6700 raises a validation error6701 invalid sha6702 raises a validation error6703Gitlab::Patch::DatabaseConfig6704 module is included6705 config/database.yml6706 returns a hash containing only main:6707RuboCop::Cop::QA::ElementWithPattern6708 # order random6709 in a QA file6710 registers an offense for elements with a pattern6711 does not register an offense for element without a pattern6712 outside of a migration spec file6713 does not register an offense6714Gitlab::GithubImport::Stage::ImportProtectedBranchesWorker6715 # order random6716 #import6717 imports all the pull requests6718 when an error raised6719 raises an error6720Types::IncidentManagement::TimelineEventType6721 is expected to eq "TimelineEventType"6722 is expected to require graphql authorizations :read_incident_management_timeline_event6723 exposes the expected fields6724Types::Tree::TreeEntryType6725 is expected to eq "TreeEntry"6726 is expected to have graphql fields :id, :sha, :name, :type, :path, :flat_path, :web_url, and :web_path6727RepositoryCheck::ClearWorker6728 clears repository check columns6729CrossDatabaseModification6730 .transaction6731 adds the current gitlab schema to gitlab_transactions_stack6732 yields6733Types::ErrorTracking::SentryDetailedErrorType6734 is expected to eq "SentryDetailedError"6735 is expected to require graphql authorizations :read_sentry_issue6736 exposes the expected fields6737Users::CreateStatisticsWorker6738 #perform6739 when successful6740 create an users statistics entry6741 when unsuccessful6742 logs an error6743Resolvers::PackageDetailsResolver6744 #resolve6745 is expected to eq #<Packages::Package id: 21, project_id: 916, created_at: "2022-11-04 14:42:17.686697169 +0000", updated_at: "2022-11-04 14:42:17.686697169 +0000", name: "composer-package-1", version: "1.0.1", package_type: "composer", creator_id: 2262, status: "default", last_downloaded_at: nil>6746Types::Ci::RunnerPlatformType6747 is expected to eq "RunnerPlatform"6748 exposes the expected fields6749Types::RootStorageStatisticsType6750 is expected to eq "RootStorageStatistics"6751 has all the required fields6752 is expected to require graphql authorizations :read_statistics6753Gitlab::WithRequestStore6754 #with_request_store6755 starts a request store and yields control6756 only starts a request store once when nested6757Gitlab::Usage::Metrics::Instrumentations::SnowplowEnabledMetric6758 for snowplow enabled option6759 snowplow_enabled: true, expected_value: true6760 behaves like a correct instrumented metric value6761 has correct value6762 snowplow_enabled: false, expected_value: false6763 behaves like a correct instrumented metric value6764 has correct value6765Types::Ci::RecentFailuresType6766 is expected to eq "RecentFailures"6767 contains attributes related to a recent failure history for a test case6768Hashie::Mash#permitted patch6769 # order random6770 #permitted6771 raises ArgumentError6772 #respond_to? with :permitted?6773 returns false6774Banzai::Pipeline::EmojiPipeline6775 replaces emoji6776 filters out HTML tags6777GravatarService6778 #execute6779 replaces the placeholders6780Gitlab::SidekiqMiddleware::InstrumentationLogger6781 #call6782 merges all instrumentation data in the job6783Import metrics on development seed6784 imports all prometheus metrics6785Types::DependencyProxy::BlobType6786 includes dependency proxy blob fields6787Gitlab::Cluster::PumaWorkerKillerObserver6788 #callback6789 increments timeout counter6790RunnersTokenPrefixable6791 runners token prefix6792 has the correct value6793Gitlab::ErrorTracking::LogFormatter6794 appends error-related log fields and filters sensitive Sidekiq arguments6795Gitlab::Database::LoadBalancing::ActionCableCallbacks6796 .wrapper6797 uses primary and then releases the connection and clears the session6798 with an exception6799 releases the connection and clears the session6800NamespaceSerializer6801 represents NamespaceBasicEntity entities6802Types::PermissionTypes::Ci::Job6803 has expected permission fields6804Gitlab::GithubImport::ImportProtectedBranchWorker6805 # order random6806 #import6807 imports protected branch rule6808Gitlab::ActionCable::RequestStoreCallbacks6809 .wrapper6810 enables RequestStore in the inner block6811Types::Ci::PipelineStatusEnum6812 exposes all pipeline states6813Knapsack report was generated. Preview:6814{6815 "spec/scripts/lib/glfm/update_example_snapshots_spec.rb": 310.2127205220004,6816 "spec/models/repository_spec.rb": 132.4245884009997,6817 "spec/models/project_team_spec.rb": 127.44287320400008,6818 "spec/models/clusters/applications/knative_spec.rb": 71.19685137500028,6819 "spec/policies/environment_policy_spec.rb": 65.74311772200008,6820 "spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb": 54.7822299620002,6821 "spec/models/clusters/applications/crossplane_spec.rb": 41.62595067600023,6822 "spec/serializers/group_child_entity_spec.rb": 31.125446314999863,6823 "spec/finders/admin/projects_finder_spec.rb": 36.264932935999695,6824 "spec/routing/routing_spec.rb": 34.11978301199997,6825 "spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb": 35.426051111000106,6826 "spec/presenters/merge_request_presenter_spec.rb": 21.095956752999882,6827 "spec/services/git/wiki_push_service_spec.rb": 35.83051199900001,6828 "spec/graphql/resolvers/board_list_issues_resolver_spec.rb": 16.885913400999925,6829 "spec/services/issues/import_csv_service_spec.rb": 20.73761110999976,6830 "spec/models/ability_spec.rb": 18.2827058769999,6831 "spec/models/serverless/domain_cluster_spec.rb": 17.534491534000153,6832 "spec/services/merge_requests/link_lfs_objects_service_spec.rb": 18.03009224399966,6833 "spec/helpers/merge_requests_helper_spec.rb": 7.868965499999831,6834 "spec/models/concerns/approvable_spec.rb": 16.06679033699993,6835 "spec/lib/gitlab/ci/templates/npm_spec.rb": 14.678285322000193,6836 "spec/services/projects/after_rename_service_spec.rb": 14.997046388999934,6837 "spec/lib/gitlab/ci/ansi2json/style_spec.rb": 2.5353992059999655,6838 "spec/models/integrations/prometheus_spec.rb": 10.75862288999997,6839 "spec/services/merge_requests/request_review_service_spec.rb": 14.847791544000302,6840 "spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb": 10.924281081000117,6841 "spec/models/ci/job_token/project_scope_link_spec.rb": 10.674973917999978,6842 "spec/lib/gitlab/search/abuse_detection_spec.rb": 2.7214512569998988,6843 "spec/lib/gitlab/ci/badge/release/metadata_spec.rb": 9.913967308000338,6844 "spec/initializers/load_balancing_spec.rb": 9.113031421999949,6845 "spec/models/project_snippet_spec.rb": 6.888610632000109,6846 "spec/services/ci/create_pipeline_service/cross_project_pipeline_spec.rb": 13.606683513000007,6847 "spec/services/ci/job_artifacts/create_service_spec.rb": 8.662595968000005,6848 "spec/lib/gitlab/file_finder_spec.rb": 9.183419173999937,6849 "spec/workers/packages/nuget/extraction_worker_spec.rb": 7.77507869100009,6850 "spec/finders/context_commits_finder_spec.rb": 10.335724264000419,6851 "spec/workers/merge_requests/create_pipeline_worker_spec.rb": 9.32691505799994,6852 "spec/lib/gitlab/diff/file_collection/commit_spec.rb": 6.561694826999883,6853 "spec/models/ci/resource_spec.rb": 8.581471677000081,6854 "spec/models/pool_repository_spec.rb": 7.376845652999691,6855 "spec/workers/ci/archive_traces_cron_worker_spec.rb": 5.374190780999925,6856 "spec/serializers/merge_request_serializer_spec.rb": 5.38309752899977,6857 "spec/lib/gitlab/database/migrations/constraints_helpers_spec.rb": 2.063852655000119,6858 "spec/services/environments/auto_stop_service_spec.rb": 7.60934856699987,6859 "spec/lib/gitlab/email/receiver_spec.rb": 1.8507656880001377,6860 "spec/tasks/gettext_rake_spec.rb": 5.386164358999849,6861 "spec/services/projects/move_project_members_service_spec.rb": 6.703199492000294,6862 "spec/services/merge_requests/reload_merge_head_diff_service_spec.rb": 5.90613258600024,6863 "spec/models/integrations/base_chat_notification_spec.rb": 3.360904019999907,6864 "spec/models/concerns/participable_spec.rb": 3.526435123000283,6865 "spec/finders/user_group_notification_settings_finder_spec.rb": 4.499298142000043,6866 "spec/workers/ci/pending_builds/update_project_worker_spec.rb": 3.144145842999933,6867 "spec/lib/gitlab/import_export/fork_spec.rb": 5.575846639000247,6868 "spec/helpers/projects/pages_helper_spec.rb": 5.335810215000038,6869 "spec/models/integrations/packagist_spec.rb": 2.6418686160000107,6870 "spec/lib/gitlab/gl_repository/repo_type_spec.rb": 2.3634683929999483,6871 "spec/lib/gitlab/ci/build/step_spec.rb": 5.136608195000008,6872 "spec/serializers/discussion_entity_spec.rb": 4.446205086999726,6873 "spec/lib/gitlab/serverless/service_spec.rb": 3.674343997000051,6874 "spec/models/note_diff_file_spec.rb": 3.7577807689999645,6875 "spec/helpers/boards_helper_spec.rb": 2.287294281999948,6876 "spec/lib/gitlab/ci/config/normalizer_spec.rb": 1.0375472020000416,6877 "spec/graphql/mutations/incident_management/timeline_event/update_spec.rb": 4.867361872999936,6878 "spec/lib/sidebars/projects/menus/monitor_menu_spec.rb": 2.5049196489999304,6879 "spec/models/board_spec.rb": 2.7392317650001132,6880 "spec/lib/gitlab/omniauth_initializer_spec.rb": 1.0681327490001422,6881 "spec/services/milestones/closed_issues_count_service_spec.rb": 4.006618883000101,6882 "spec/policies/deploy_key_policy_spec.rb": 4.636241487000007,6883 "spec/models/prometheus_alert_event_spec.rb": 3.1979782870002964,6884 "spec/workers/packages/cleanup_package_registry_worker_spec.rb": 2.5931531999999606,6885 "spec/lib/banzai/reference_parser/design_parser_spec.rb": 2.9525971830003073,6886 "spec/lib/banzai/filter/emoji_filter_spec.rb": 1.1466724599999907,6887 "spec/lib/gitlab/audit/type/definition_spec.rb": 1.1295721329997832,6888 "spec/lib/gitlab/mail_room/mail_room_spec.rb": 1.0422623409999687,6889 "spec/serializers/deployment_serializer_spec.rb": 3.693738545999622,6890 "spec/lib/gitlab/ci/config/external/file/remote_spec.rb": 1.607745833000081,6891 "spec/services/repository_archive_clean_up_service_spec.rb": 2.1840518119997796,6892 "spec/services/spam/akismet_service_spec.rb": 1.2844660569999178,6893 "spec/workers/environments/auto_delete_cron_worker_spec.rb": 2.12723215799997,6894 "spec/graphql/resolvers/group_members_resolver_spec.rb": 2.4615514739998616,6895 "spec/serializers/merge_request_user_entity_spec.rb": 3.279338838000058,6896 "spec/services/packages/composer/version_parser_service_spec.rb": 0.9457556119996298,6897 "spec/graphql/types/base_argument_spec.rb": 1.0395361119999507,6898 "spec/services/web_hooks/log_destroy_service_spec.rb": 2.603981859000214,6899 "spec/services/clusters/aws/provision_service_spec.rb": 2.2575028749997728,6900 "spec/lib/bitbucket_server/representation/pull_request_spec.rb": 1.137578141999711,6901 "spec/workers/destroy_pages_deployments_worker_spec.rb": 2.964075251000395,6902 "spec/lib/gitlab/process_management_spec.rb": 1.3395644400002311,6903 "spec/lib/gitlab/endpoint_attributes_spec.rb": 1.7304824449997795,6904 "spec/lib/gitlab/ci/pipeline/logger_spec.rb": 1.2217582399998719,6905 "spec/graphql/resolvers/design_management/design_at_version_resolver_spec.rb": 1.895141853000041,6906 "spec/helpers/recaptcha_helper_spec.rb": 0.9761112539999885,6907 "spec/workers/merge_requests/execute_approval_hooks_worker_spec.rb": 2.1327290600002016,6908 "spec/workers/migrate_external_diffs_worker_spec.rb": 2.8880249059998278,6909 "spec/serializers/ci/dag_job_group_entity_spec.rb": 1.2797933440001543,6910 "spec/lib/gitlab/kubernetes/helm/v2/base_command_spec.rb": 0.8567858060000617,6911 "spec/components/pajamas/avatar_component_spec.rb": 1.0585443459999624,6912 "spec/lib/api/helpers/packages_manager_clients_helpers_spec.rb": 2.179981486000088,6913 "spec/tasks/gitlab/password_rake_spec.rb": 2.323649930999636,6914 "spec/models/preloaders/merge_request_diff_preloader_spec.rb": 3.2155352929999026,6915 "spec/lib/gitlab/usage_data/topology_spec.rb": 0.5502991060002387,6916 "spec/models/packages/dependency_spec.rb": 0.9445357859999604,6917 "spec/services/ml/experiment_tracking/experiment_repository_spec.rb": 1.2878595340002903,6918 "spec/workers/projects/import_export/relation_export_worker_spec.rb": 2.19176500399999,6919 "spec/lib/gitlab/usage/metrics/query_spec.rb": 0.7042365509996671,6920 "spec/lib/gitlab/slash_commands/presenters/issue_close_spec.rb": 2.040930689000106,6921 "spec/models/packages/sem_ver_spec.rb": 0.7661061849998987,6922 "spec/services/protected_branches/create_service_spec.rb": 1.6861578439998084,6923 "spec/lib/gitlab/request_endpoints_spec.rb": 0.8508544559999791,6924 "spec/views/projects/pipelines/show.html.haml_spec.rb": 2.0472091880001244,6925 "spec/models/issue/email_spec.rb": 1.4397570490000362,6926 "spec/services/boards/create_service_spec.rb": 2.237627380000049,6927 "spec/initializers/settings_spec.rb": 0.839263727999878,6928 "spec/models/clusters/agents/group_authorization_spec.rb": 1.9733813260004354,6929 "spec/lib/api/helpers/related_resources_helpers_spec.rb": 0.4419835370003966,6930 "spec/lib/gitlab/reactive_cache_set_cache_spec.rb": 0.9178728189999674,6931 "spec/experiments/require_verification_for_namespace_creation_experiment_spec.rb": 1.3249420899996949,6932 "spec/lib/gitlab/ci/variables/builder/release_spec.rb": 1.4235035900001094,6933 "spec/services/projects/lfs_pointers/lfs_import_service_spec.rb": 1.9560248969996792,6934 "spec/lib/bitbucket_server/connection_spec.rb": 0.7560547150001184,6935 "spec/models/integrations/chat_message/merge_message_spec.rb": 1.2498333579997052,6936 "spec/lib/gitlab/ci/status/build/preparing_spec.rb": 1.5899789529998998,6937 "spec/lib/gitlab/github_import/importer/pull_request_merged_by_importer_spec.rb": 1.7479084669998883,6938 "spec/serializers/import/manifest_provider_repo_entity_spec.rb": 0.8791622630001257,6939 "spec/validators/qualified_domain_array_validator_spec.rb": 0.5771741430003203,6940 "spec/graphql/mutations/customer_relations/contacts/update_spec.rb": 0.9221357490000628,6941 "spec/initializers/net_http_patch_spec.rb": 0.6105058399998597,6942 "spec/lib/gitlab/kubernetes/kubectl_cmd_spec.rb": 0.4626103539999349,6943 "spec/lib/gitlab/sql/cte_spec.rb": 0.510677769999802,6944 "spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb": 0.4651138539998101,6945 "spec/db/docs_spec.rb": 0.9413508369998453,6946 "spec/graphql/resolvers/group_members/notification_email_resolver_spec.rb": 1.1970539019998796,6947 "spec/serializers/merge_request_for_pipeline_entity_spec.rb": 1.8024587120003162,6948 "spec/lib/gitlab/ci/status/bridge/common_spec.rb": 1.608602792000056,6949 "spec/models/users/callout_spec.rb": 0.8710852249996606,6950 "spec/lib/gitlab/import/import_failure_service_spec.rb": 0.9412293870000212,6951 "spec/models/wiki_directory_spec.rb": 0.6981815710000774,6952 "spec/lib/version_check_spec.rb": 0.5532591160003903,6953 "spec/policies/alert_management/http_integration_policy_spec.rb": 1.4667798350001249,6954 "spec/lib/gitlab/graphql/pagination/array_connection_spec.rb": 0.43318620799982455,6955 "spec/services/google_cloud/fetch_google_ip_list_service_spec.rb": 0.9838915129998895,6956 "spec/lib/gitlab/database/background_migration/health_status/indicators/write_ahead_log_spec.rb": 0.48513269199975184,6957 "spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb": 0.911980289999974,6958 "spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb": 1.4593925359999957,6959 "spec/lib/gitlab/word_diff/segments/diff_hunk_spec.rb": 0.5517486759999883,6960 "spec/services/spam/ham_service_spec.rb": 0.8942414620000818,6961 "spec/rubocop/cop/database/rescue_statement_timeout_spec.rb": 0.5644800640002359,6962 "spec/lib/gitlab/ci/pipeline/expression/token_spec.rb": 0.5780556130002878,6963 "spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb": 0.44208133599977373,6964 "spec/lib/gitlab/utils/gzip_spec.rb": 0.4855236620001051,6965 "spec/services/projects/container_repository/destroy_service_spec.rb": 0.9460985969999456,6966 "spec/rubocop/cop/avoid_keyword_arguments_in_sidekiq_workers_spec.rb": 0.4081667400000697,6967 "spec/lib/gitlab/service_desk_spec.rb": 0.7148832390003008,6968 "spec/services/google_cloud/enable_cloudsql_service_spec.rb": 1.198370471999624,6969 "spec/graphql/resolvers/alert_management/alert_status_counts_resolver_spec.rb": 0.70847995000031,6970 "spec/lib/banzai/pipeline_spec.rb": 0.4375742170000194,6971 "spec/lib/gitlab/graphql/calls_gitaly/field_extension_spec.rb": 0.4358594269997411,6972 "spec/workers/schedule_merge_request_cleanup_refs_worker_spec.rb": 0.5894017219998204,6973 "spec/initializers/validate_puma_spec.rb": 0.42918732700036344,6974 "spec/lib/gitlab/phabricator_import/worker_state_spec.rb": 0.3209006980000595,6975 "spec/initializers/net_http_response_patch_spec.rb": 0.45900939500006643,6976 "spec/lib/gitlab/database/load_balancing/srv_resolver_spec.rb": 0.6496303970002373,6977 "spec/rubocop/cop/prefer_class_methods_over_module_spec.rb": 0.2893256110000948,6978 "spec/models/concerns/from_except_spec.rb": 0.26627958400013085,6979 "spec/lib/gitlab/git/conflict/file_spec.rb": 0.5985999810000067,6980 "spec/services/applications/create_service_spec.rb": 0.8408403270000235,6981 "spec/validators/future_date_validator_spec.rb": 0.25517202499986524,6982 "spec/lib/gitlab/pagination/keyset/cursor_based_request_context_spec.rb": 0.45732424500010893,6983 "spec/lib/gitlab/middleware/query_analyzer_spec.rb": 0.37955286199985494,6984 "spec/rubocop/cop/database/multiple_databases_spec.rb": 0.449189085999933,6985 "spec/rubocop/cop/performance/ar_count_each_spec.rb": 0.6711386139995739,6986 "spec/serializers/feature_flag_summary_entity_spec.rb": 1.1886871229999088,6987 "spec/lib/gitlab/health_checks/master_check_spec.rb": 0.3533460550002019,6988 "spec/lib/gitlab/config/entry/simplifiable_spec.rb": 0.4972603509995679,6989 "spec/graphql/types/ci/runner_type_spec.rb": 0.2563660250002613,6990 "spec/rubocop/cop/migration/versioned_migration_class_spec.rb": 0.39918698100018446,6991 "spec/serializers/group_link/group_link_entity_spec.rb": 0.4773902619999717,6992 "spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb": 0.3660974939998596,6993 "spec/lib/gitlab/import_export/duration_measuring_spec.rb": 0.43858564699985436,6994 "spec/initializers/100_patch_omniauth_oauth2_spec.rb": 0.3359525269997903,6995 "spec/lib/gitlab/auth/otp/strategies/forti_authenticator/manual_otp_spec.rb": 0.478288793000047,6996 "spec/lib/api/validations/validators/git_sha_spec.rb": 0.5445640259999891,6997 "spec/lib/gitlab/patch/database_config_spec.rb": 0.42731604799973866,6998 "spec/rubocop/cop/qa/element_with_pattern_spec.rb": 0.39604759100029696,6999 "spec/workers/gitlab/github_import/stage/import_protected_branches_worker_spec.rb": 0.7188415890000215,7000 "spec/graphql/types/incident_management/timeline_event_type_spec.rb": 0.45955859500008955,7001 "spec/graphql/types/tree/tree_entry_type_spec.rb": 0.32505576799985647,7002 "spec/workers/repository_check/clear_worker_spec.rb": 0.7111520399998881,7003 "spec/models/concerns/cross_database_modification_spec.rb": 0.3097410889999992,7004 "spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb": 0.4245330379999359,7005 "spec/workers/users/create_statistics_worker_spec.rb": 0.6363569479999569,7006 "spec/graphql/resolvers/package_details_resolver_spec.rb": 0.6926245820000076,7007 "spec/graphql/types/ci/runner_platform_type_spec.rb": 0.2716576239999995,7008 "spec/graphql/types/root_storage_statistics_type_spec.rb": 0.2118993290000617,7009 "spec/lib/gitlab/with_request_store_spec.rb": 0.7477330560000155,7010 "spec/lib/gitlab/usage/metrics/instrumentations/snowplow_enabled_metric_spec.rb": 0.2261886979999872,7011 "spec/graphql/types/ci/recent_failures_type_spec.rb": 0.6532539260001613,7012 "spec/initializers/hashie_mash_permitted_patch_spec.rb": 0.20834738000030484,7013 "spec/lib/banzai/pipeline/emoji_pipeline_spec.rb": 0.39120925099996384,7014 "spec/services/gravatar_service_spec.rb": 0.3713134929998887,7015 "spec/lib/gitlab/sidekiq_middleware/instrumentation_logger_spec.rb": 0.40124962999971103,7016 "spec/db/development/import_common_metrics_spec.rb": 0.4470857360001901,7017 "spec/graphql/types/dependency_proxy/blob_type_spec.rb": 0.3792083329999514,7018 "spec/lib/gitlab/cluster/puma_worker_killer_observer_spec.rb": 0.31664845899967986,7019 "spec/models/concerns/runners_token_prefixable_spec.rb": 0.2673114029998942,7020 "spec/lib/gitlab/error_tracking/log_formatter_spec.rb": 0.21272130799980005,7021 "spec/lib/gitlab/database/load_balancing/action_cable_callbacks_spec.rb": 0.3876653219999753,7022 "spec/serializers/namespace_serializer_spec.rb": 0.3983971709999423,7023 "spec/graphql/types/permission_types/ci/job_spec.rb": 0.1783998519999841,7024 "spec/workers/gitlab/github_import/import_protected_branch_worker_spec.rb": 0.2644776639999691,7025 "spec/lib/gitlab/action_cable/request_store_callbacks_spec.rb": 0.32328766899991024,7026 "spec/graphql/types/ci/pipeline_status_enum_spec.rb": 0.25234082499991937027}7028Knapsack global time execution for tests: 25m 57s7029Pending: (Failures listed here are expected and do not affect your suite's status)7030 1) MergeRequestUserEntity#as_json performance is linear in the number of merge requests7032 Failure/Error:7033 expect do7034 a = described_class.new(user_a, request: request, merge_request: merge_request_b)7035 b = described_class.new(user_b, request: request, merge_request: merge_request_b)7037 a.as_json7038 b.as_json7039 end.not_to exceed_query_limit(baseline)7040 Expected a maximum of 9 queries, got 20:7041 Query Diff:7042 -----------7043 SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations"...7044 -- (expected: 4, got: 0)7045 WHERE "project_authorizations"."project_id" = 852 AND "project_authorizations"."user_id" = 2143 GROUP BY "project_authorizations"."user_id"7046 -- (expected: 3, got: 0)7047 WHERE "project_authorizations"."project_id" = 852 AND "project_authorizations"."user_id" = 2141 GROUP BY "project_authorizations"."user_id"7048 -- (expected: 0, got: 4)7049 WHERE "project_authorizations"."project_id" = 853 AND "project_authorizations"."user_id" = 2143 GROUP BY "project_authorizations"."user_id"7050 -- (expected: 0, got: 6)7051 WHERE "project_authorizations"."project_id" = 853 AND "project_authorizations"."user_id" = 2141 GROUP BY "project_authorizations"."user_id"7052 -- (expected: 0, got: 4)7053 WHERE "project_authorizations"."project_id" = 853 AND "project_authorizations"."user_id" = 2144 GROUP BY "project_authorizations"."user_id"7054 SELECT "merge_requests".* FROM "merge_requests"...7055 -- (expected: 1, got: 0)7056 WHERE "merge_requests"."source_project_id" = 852 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'7057 -- (expected: 0, got: 2)7058 WHERE "merge_requests"."source_project_id" = 853 AND ("merge_requests"."state_id" IN (1)) AND "merge_requests"."allow_maintainer_to_push" = TRUE AND "merge_requests"."source_branch" = 'feature'7059 SELECT "merge_request_reviewers".* FROM "merge_request_reviewers"...7060 -- (expected: 1, got: 0)7061 WHERE "merge_request_reviewers"."merge_request_id" = 177 AND "merge_request_reviewers"."user_id" = 2143 LIMIT 17062 -- (expected: 0, got: 1)7063 WHERE "merge_request_reviewers"."merge_request_id" = 178 AND "merge_request_reviewers"."user_id" = 2143 LIMIT 17064 -- (expected: 0, got: 1)7065 WHERE "merge_request_reviewers"."merge_request_id" = 178 AND "merge_request_reviewers"."user_id" = 2144 LIMIT 17066 SELECT "protected_branches".* FROM "protected_branches"...7067 -- (expected: 0, got: 1)7068 WHERE "protected_branches"."project_id" = 8537069 SELECT "approvals".* FROM "approvals"...7070 -- (expected: 0, got: 1)7071 WHERE "approvals"."merge_request_id" = 1787072 # ./spec/serializers/merge_request_user_entity_spec.rb:71:in `block (4 levels) in <top (required)>'7073 # ./spec/spec_helper.rb:416:in `block (3 levels) in <top (required)>'7074 # ./spec/support/sidekiq_middleware.rb:9:in `with_sidekiq_server_middleware'7075 # ./spec/spec_helper.rb:408:in `block (2 levels) in <top (required)>'7076 # ./spec/spec_helper.rb:404:in `block (3 levels) in <top (required)>'7077 # ./lib/gitlab/application_context.rb:58:in `with_raw_context'7078 # ./spec/spec_helper.rb:404:in `block (2 levels) in <top (required)>'7079 # ./spec/spec_helper.rb:240:in `block (2 levels) in <top (required)>'7080 # ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <top (required)>'7081 # ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <top (required)>'7082 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'7083 # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'7084 # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'7085Finished in 26 minutes 2 seconds (files took 49.83 seconds to load)70862875 examples, 0 failures, 1 pending7087Randomized with seed 138487088[TEST PROF INFO] Time spent in factories: 12:58.764 (49.69% of total time)7089RSpec exited with 0.7090No examples to retry, congrats!7092Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7093Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7095Uploading artifacts...7096coverage/: found 5 matching files and directories 7097crystalball/: found 2 matching files and directories 7098deprecations/: found 3 matching files and directories 7099knapsack/: found 3 matching files and directories 7100rspec/: found 9 matching files and directories 7101WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 7102log/*.log: found 18 matching files and directories 7103WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3275962878/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7104WARNING: Retrying... context=artifacts-uploader error=request redirected7105Uploading artifacts as "archive" to coordinator... 201 Created id=3275962878 responseStatus=201 Created token=9J-mdPTa7106Uploading artifacts...7107rspec/junit_rspec.xml: found 1 matching files and directories 7108WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3275962878/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7109WARNING: Retrying... context=artifacts-uploader error=request redirected7110Uploading artifacts as "junit" to coordinator... 201 Created id=3275962878 responseStatus=201 Created token=9J-mdPTa7112Job succeeded