rspec unit pg12 4/28
Passed Started
by
@ahegyi
Adam Hegyi
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on green-4.shared-gitlab-org.runners-manager.gitlab.com/default x5QiHUKw3 feature flags: FF_USE_FASTZIP: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-x5qihukw-project-278964-concurrent-0 via runner-x5qihukw-shared-gitlab-org-1667565160-a4ca4b7e...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 | 32.60 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=b1PifbeB46Downloading artifacts for detect-tests (3275962698)...47Downloading artifacts from coordinator... ok id=3275962698 responseStatus=200 OK token=b1PifbeB48Downloading artifacts for retrieve-tests-metadata (3275962699)...49Downloading artifacts from coordinator... ok id=3275962699 responseStatus=200 OK token=b1PifbeB50Downloading artifacts for setup-test-env (3275962693)...51Downloading artifacts from coordinator... ok id=3275962693 responseStatus=200 OK token=b1PifbeB53Using 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 0 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 33 seconds.689$ setup_db_praefect690SELECT pg_catalog.set_config('search_path', '', false);691CREATE DATABASE praefect_test ENCODING 'UTF8';692==> 'setup_db_praefect' succeeded in 1 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 0 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_4_28_report.json821FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json822FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_4_28_report.json823NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_4_28_report.json824SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_4_28_report.txt825RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_4_28_report.txt826CRYSTALBALL: 827Knapsack node specs:828spec/models/merge_request_spec.rb829spec/finders/group_members_finder_spec.rb830spec/uploaders/design_management/design_v432x230_uploader_spec.rb831spec/finders/groups_finder_spec.rb832spec/models/clusters/applications/cilium_spec.rb833spec/lib/gitlab/database/migration_helpers_spec.rb834spec/lib/gitlab/git_access_snippet_spec.rb835spec/finders/notes_finder_spec.rb836spec/services/ci/retry_job_service_spec.rb837spec/workers/repository_fork_worker_spec.rb838spec/services/merge_requests/cleanup_refs_service_spec.rb839spec/policies/commit_policy_spec.rb840spec/lib/gitlab/ssh_public_key_spec.rb841spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb842spec/workers/process_commit_worker_spec.rb843spec/lib/gitlab/github_import/user_finder_spec.rb844spec/policies/packages/policies/project_policy_spec.rb845spec/models/resource_label_event_spec.rb846spec/lib/gitlab/background_migration/backfill_user_namespace_spec.rb847spec/helpers/labels_helper_spec.rb848spec/lib/gitlab/database/with_lock_retries_spec.rb849spec/serializers/diffs_entity_spec.rb850spec/services/projects/git_deduplication_service_spec.rb851spec/services/jira/requests/projects/list_service_spec.rb852spec/lib/gitlab/hashed_storage/migrator_spec.rb853spec/lib/gitlab/url_sanitizer_spec.rb854spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb855spec/models/import_export_upload_spec.rb856spec/lib/gitlab/database/tables_truncate_spec.rb857spec/services/alert_management/alerts/update_service_spec.rb858spec/helpers/avatars_helper_spec.rb859spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb860spec/services/clusters/create_service_spec.rb861spec/lib/gitlab/database/background_migration/batched_job_spec.rb862spec/uploaders/packages/package_file_uploader_spec.rb863spec/lib/gitlab/legacy_github_import/importer_spec.rb864spec/services/notes/build_service_spec.rb865spec/tasks/gitlab/packages/events_rake_spec.rb866spec/lib/gitlab/search/recent_merge_requests_spec.rb867spec/lib/gitlab/gitaly_client_spec.rb868spec/services/notes/copy_service_spec.rb869spec/services/ci/create_pipeline_service/partitioning_spec.rb870spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb871spec/serializers/ci/trigger_entity_spec.rb872spec/models/ci/persistent_ref_spec.rb873spec/lib/gitlab/diff/suggestion_spec.rb874spec/models/ci_platform_metric_spec.rb875spec/lib/gitlab/import_export/base/relation_factory_spec.rb876spec/finders/clusters/agents_finder_spec.rb877spec/lib/banzai/filter/gollum_tags_filter_spec.rb878spec/presenters/project_clusterable_presenter_spec.rb879spec/lib/gitlab/diff/file_collection/compare_spec.rb880spec/graphql/resolvers/container_repositories_resolver_spec.rb881spec/lib/gitlab/kubernetes/helm/pod_spec.rb882spec/lib/gitlab/background_migration/backfill_cluster_agents_has_vulnerabilities_spec.rb883spec/lib/gitlab/ci/config/external/file/project_spec.rb884spec/workers/repository_check/batch_worker_spec.rb885spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb886spec/services/ci/create_pipeline_service/tags_spec.rb887spec/lib/gitlab/import_export/project/export_task_spec.rb888spec/workers/design_management/new_version_worker_spec.rb889spec/lib/gitlab/i18n/translation_entry_spec.rb890spec/helpers/wiki_helper_spec.rb891spec/services/metrics/dashboard/pod_dashboard_service_spec.rb892spec/lib/gitlab/git/keep_around_spec.rb893spec/services/groups/group_links/destroy_service_spec.rb894spec/rack_servers/puma_spec.rb895spec/models/time_tracking/timelog_category_spec.rb896spec/services/users/update_todo_count_cache_service_spec.rb897spec/models/ci/job_variable_spec.rb898spec/policies/deploy_keys_project_policy_spec.rb899spec/models/members/member_task_spec.rb900spec/graphql/mutations/customer_relations/contacts/create_spec.rb901spec/finders/ci/daily_build_group_report_results_finder_spec.rb902spec/workers/environments/auto_stop_worker_spec.rb903spec/lib/gitlab/ci/reports/security/scanner_spec.rb904spec/services/notes/destroy_service_spec.rb905spec/lib/gitlab/quick_actions/command_definition_spec.rb906spec/lib/gitlab/robots_txt/parser_spec.rb907spec/models/work_items/type_spec.rb908spec/graphql/resolvers/project_packages_resolver_spec.rb909spec/lib/gitlab/subscription_portal_spec.rb910spec/models/deploy_keys_project_spec.rb911spec/lib/gitlab/checks/push_file_count_check_spec.rb912spec/lib/banzai/filter/wiki_link_filter_spec.rb913spec/services/packages/nuget/sync_metadatum_service_spec.rb914spec/finders/keys_finder_spec.rb915spec/lib/gitlab/import_export/base/object_builder_spec.rb916spec/services/security/ci_configuration/secret_detection_create_service_spec.rb917spec/graphql/resolvers/design_management/version/designs_at_version_resolver_spec.rb918spec/services/packages/terraform_module/create_package_service_spec.rb919spec/rubocop/formatter/graceful_formatter_spec.rb920spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb921spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb922spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rb923spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb924spec/lib/gitlab/query_limiting/transaction_spec.rb925spec/finders/resource_milestone_event_finder_spec.rb926spec/graphql/types/board_list_type_spec.rb927spec/services/clusters/agents/delete_service_spec.rb928spec/models/issue_email_participant_spec.rb929spec/lib/gitlab/diff/file_collection/base_spec.rb930spec/rubocop/formatter/todo_formatter_spec.rb931spec/lib/gitlab/untrusted_regexp_spec.rb932spec/lib/banzai/filter/inline_grafana_metrics_filter_spec.rb933spec/lib/gitlab/database/async_indexes/migration_helpers_spec.rb934spec/lib/gitlab/background_task_spec.rb935spec/helpers/dashboard_helper_spec.rb936spec/models/legacy_diff_note_spec.rb937spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb938spec/services/clusters/aws/fetch_credentials_service_spec.rb939spec/lib/gitlab/ci/config/entry/needs_spec.rb940spec/lib/gitlab/identifier_spec.rb941spec/views/notify/changed_milestone_email.html.haml_spec.rb942spec/services/metrics/dashboard/panel_preview_service_spec.rb943spec/lib/gitlab/template/finders/global_template_finder_spec.rb944spec/lib/gitlab/daemon_spec.rb945spec/workers/releases/create_evidence_worker_spec.rb946spec/lib/banzai/filter/color_filter_spec.rb947spec/lib/gitlab/ci/build/credentials/registry/gitlab_registry_spec.rb948spec/models/concerns/usage_statistics_spec.rb949spec/services/lfs/push_service_spec.rb950spec/presenters/search_service_presenter_spec.rb951spec/lib/api/every_api_endpoint_spec.rb952spec/graphql/mutations/clusters/agent_tokens/create_spec.rb953spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb954spec/workers/ci/archive_trace_worker_spec.rb955spec/services/clusters/kubernetes_spec.rb956spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb957spec/services/users/update_highest_member_role_service_spec.rb958spec/models/integrations/base_issue_tracker_spec.rb959spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb960spec/models/ci/pipeline_schedule_variable_spec.rb961spec/services/alert_management/http_integrations/update_service_spec.rb962spec/lib/gitlab/github_import/importer/note_attachments_importer_spec.rb963spec/models/users/group_callout_spec.rb964spec/models/ci/build_pending_state_spec.rb965spec/services/alert_management/http_integrations/destroy_service_spec.rb966spec/services/merge_requests/create_approval_event_service_spec.rb967spec/rubocop/cop/code_reuse/service_class_spec.rb968spec/tooling/rspec_flaky/flaky_example_spec.rb969spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb970spec/validators/array_members_validator_spec.rb971spec/lib/sidebars/groups/menus/merge_requests_menu_spec.rb972spec/lib/gitlab/template/finders/repo_template_finders_spec.rb973spec/lib/gitlab/alert_management/alert_status_counts_spec.rb974spec/rubocop/cop/performance/readlines_each_spec.rb975spec/lib/gitlab/usage_data_counters/vscode_extension_activity_unique_counter_spec.rb976spec/lib/gitlab/ci/status/created_spec.rb977spec/services/projects/all_issues_count_service_spec.rb978spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb979spec/lib/gitlab/database/similarity_score_spec.rb980spec/initializers/carrierwave_patch_spec.rb981spec/helpers/projects/pipeline_helper_spec.rb982spec/serializers/blob_entity_spec.rb983spec/views/projects/runners/_specific_runners.html.haml_spec.rb984spec/graphql/mutations/saved_replies/update_spec.rb985spec/lib/gitlab/config/entry/configurable_spec.rb986spec/lib/bulk_imports/pipeline_spec.rb987spec/services/users/in_product_marketing_email_records_spec.rb988spec/lib/gitlab/config/entry/undefined_spec.rb989spec/lib/banzai/filter/kroki_filter_spec.rb990spec/models/badges/project_badge_spec.rb991spec/graphql/mutations/base_mutation_spec.rb992spec/graphql/types/container_respository_tags_sort_enum_spec.rb993spec/views/admin/application_settings/_package_registry.html.haml_spec.rb994spec/workers/clusters/agents/delete_expired_events_worker_spec.rb995spec/views/layouts/_published_experiments.html.haml_spec.rb996spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb997spec/tooling/lib/tooling/test_map_generator_spec.rb998spec/lib/api/helpers/label_helpers_spec.rb999spec/policies/packages/package_policy_spec.rb1000spec/lib/tasks/gitlab/metrics_exporter_task_spec.rb1001spec/lib/gitlab/github_import/settings_spec.rb1002spec/lib/gitlab/database/async_indexes/index_destructor_spec.rb1003spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb1004spec/workers/upload_checksum_worker_spec.rb1005spec/lib/gitlab/usage_data_counters/merge_request_counter_spec.rb1006spec/lib/marginalia_spec.rb1007spec/workers/gitlab/github_import/attachments/import_merge_request_worker_spec.rb1008spec/graphql/types/clusters/agent_token_type_spec.rb1009spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb1010spec/lib/gitlab/import_export/attribute_cleaner_spec.rb1011spec/helpers/ci/triggers_helper_spec.rb1012spec/lib/gitlab/gitlab_import/importer_spec.rb1013spec/graphql/types/design_management/version_type_spec.rb1014spec/graphql/types/ci/pipeline_message_type_spec.rb1015spec/lib/gitlab/auth/saml/origin_validator_spec.rb1016spec/lib/gitlab/chat_spec.rb1017spec/lib/gitlab/email/hook/smime_signature_interceptor_spec.rb1018spec/models/blob_viewer/route_map_spec.rb1019spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb1020spec/lib/gitlab/namespaced_session_store_spec.rb1021spec/validators/any_field_validator_spec.rb1022spec/graphql/types/award_emojis/award_emoji_type_spec.rb1023spec/lib/gitlab/other_markup_spec.rb1024spec/graphql/types/packages/conan/file_metadatum_type_spec.rb1025spec/lib/bulk_imports/groups/transformers/subgroup_to_entity_transformer_spec.rb1026spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb1027spec/lib/system_check/base_check_spec.rb1028spec/initializers/sawyer_patch_spec.rb1029spec/graphql/types/namespace_type_spec.rb1030spec/db/development/add_security_training_providers_spec.rb1031spec/lib/gitlab/gitaly_client/blobs_stitcher_spec.rb1032spec/graphql/types/deployment_type_spec.rb1033spec/graphql/types/branch_protections/merge_access_level_type_spec.rb1034spec/helpers/export_helper_spec.rb1035spec/workers/ci/schedule_delete_objects_cron_worker_spec.rb1036spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb1037spec/lib/gitlab/ci/config/normalizer/factory_spec.rb1038spec/graphql/types/ci/test_report_summary_type_spec.rb1039spec/views/help/show.html.haml_spec.rb1040spec/graphql/types/permission_types/user_spec.rb1041spec/graphql/types/work_items/widgets/start_and_due_date_type_spec.rb1042spec/models/concerns/token_authenticatable_strategies/digest_spec.rb1043spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb1044spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb1045spec/workers/namespaces/in_product_marketing_emails_worker_spec.rb1046Filter specs:1047Running specs:1048Running all node tests without filter1049spec/models/merge_request_spec.rb1050spec/finders/group_members_finder_spec.rb1051spec/uploaders/design_management/design_v432x230_uploader_spec.rb1052spec/finders/groups_finder_spec.rb1053spec/models/clusters/applications/cilium_spec.rb1054spec/lib/gitlab/database/migration_helpers_spec.rb1055spec/lib/gitlab/git_access_snippet_spec.rb1056spec/finders/notes_finder_spec.rb1057spec/services/ci/retry_job_service_spec.rb1058spec/workers/repository_fork_worker_spec.rb1059spec/services/merge_requests/cleanup_refs_service_spec.rb1060spec/policies/commit_policy_spec.rb1061spec/lib/gitlab/ssh_public_key_spec.rb1062spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb1063spec/workers/process_commit_worker_spec.rb1064spec/lib/gitlab/github_import/user_finder_spec.rb1065spec/policies/packages/policies/project_policy_spec.rb1066spec/models/resource_label_event_spec.rb1067spec/lib/gitlab/background_migration/backfill_user_namespace_spec.rb1068spec/helpers/labels_helper_spec.rb1069spec/lib/gitlab/database/with_lock_retries_spec.rb1070spec/serializers/diffs_entity_spec.rb1071spec/services/projects/git_deduplication_service_spec.rb1072spec/services/jira/requests/projects/list_service_spec.rb1073spec/lib/gitlab/hashed_storage/migrator_spec.rb1074spec/lib/gitlab/url_sanitizer_spec.rb1075spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb1076spec/models/import_export_upload_spec.rb1077spec/lib/gitlab/database/tables_truncate_spec.rb1078spec/services/alert_management/alerts/update_service_spec.rb1079spec/helpers/avatars_helper_spec.rb1080spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb1081spec/services/clusters/create_service_spec.rb1082spec/lib/gitlab/database/background_migration/batched_job_spec.rb1083spec/uploaders/packages/package_file_uploader_spec.rb1084spec/lib/gitlab/legacy_github_import/importer_spec.rb1085spec/services/notes/build_service_spec.rb1086spec/tasks/gitlab/packages/events_rake_spec.rb1087spec/lib/gitlab/search/recent_merge_requests_spec.rb1088spec/lib/gitlab/gitaly_client_spec.rb1089spec/services/notes/copy_service_spec.rb1090spec/services/ci/create_pipeline_service/partitioning_spec.rb1091spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb1092spec/serializers/ci/trigger_entity_spec.rb1093spec/models/ci/persistent_ref_spec.rb1094spec/lib/gitlab/diff/suggestion_spec.rb1095spec/models/ci_platform_metric_spec.rb1096spec/lib/gitlab/import_export/base/relation_factory_spec.rb1097spec/finders/clusters/agents_finder_spec.rb1098spec/lib/banzai/filter/gollum_tags_filter_spec.rb1099spec/presenters/project_clusterable_presenter_spec.rb1100spec/lib/gitlab/diff/file_collection/compare_spec.rb1101spec/graphql/resolvers/container_repositories_resolver_spec.rb1102spec/lib/gitlab/kubernetes/helm/pod_spec.rb1103spec/lib/gitlab/background_migration/backfill_cluster_agents_has_vulnerabilities_spec.rb1104spec/lib/gitlab/ci/config/external/file/project_spec.rb1105spec/workers/repository_check/batch_worker_spec.rb1106spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb1107spec/services/ci/create_pipeline_service/tags_spec.rb1108spec/lib/gitlab/import_export/project/export_task_spec.rb1109spec/workers/design_management/new_version_worker_spec.rb1110spec/lib/gitlab/i18n/translation_entry_spec.rb1111spec/helpers/wiki_helper_spec.rb1112spec/services/metrics/dashboard/pod_dashboard_service_spec.rb1113spec/lib/gitlab/git/keep_around_spec.rb1114spec/services/groups/group_links/destroy_service_spec.rb1115spec/rack_servers/puma_spec.rb1116spec/models/time_tracking/timelog_category_spec.rb1117spec/services/users/update_todo_count_cache_service_spec.rb1118spec/models/ci/job_variable_spec.rb1119spec/policies/deploy_keys_project_policy_spec.rb1120spec/models/members/member_task_spec.rb1121spec/graphql/mutations/customer_relations/contacts/create_spec.rb1122spec/finders/ci/daily_build_group_report_results_finder_spec.rb1123spec/workers/environments/auto_stop_worker_spec.rb1124spec/lib/gitlab/ci/reports/security/scanner_spec.rb1125spec/services/notes/destroy_service_spec.rb1126spec/lib/gitlab/quick_actions/command_definition_spec.rb1127spec/lib/gitlab/robots_txt/parser_spec.rb1128spec/models/work_items/type_spec.rb1129spec/graphql/resolvers/project_packages_resolver_spec.rb1130spec/lib/gitlab/subscription_portal_spec.rb1131spec/models/deploy_keys_project_spec.rb1132spec/lib/gitlab/checks/push_file_count_check_spec.rb1133spec/lib/banzai/filter/wiki_link_filter_spec.rb1134spec/services/packages/nuget/sync_metadatum_service_spec.rb1135spec/finders/keys_finder_spec.rb1136spec/lib/gitlab/import_export/base/object_builder_spec.rb1137spec/services/security/ci_configuration/secret_detection_create_service_spec.rb1138spec/graphql/resolvers/design_management/version/designs_at_version_resolver_spec.rb1139spec/services/packages/terraform_module/create_package_service_spec.rb1140spec/rubocop/formatter/graceful_formatter_spec.rb1141spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb1142spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb1143spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rbKnapsack report generator started!1144Run options: exclude {:quarantine=>true, :level=>"migration"}1145Test environment set up in 0.863497949 seconds1146MergeRequest1147 associations1148 is expected to belong to target_project class_name => Project required: false1149 is expected to belong to source_project class_name => Project required: false1150 is expected to belong to merge_user class_name => User required: false1151 is expected to have many assignees through merge_request_assignees1152 is expected to have many reviewers through merge_request_reviewers1153 is expected to have many merge_request_diffs1154 is expected to have many user_mentions class_name => MergeRequestUserMention1155 is expected to belong to milestone required: false1156 is expected to belong to iteration required: false1157 is expected to have many resource_milestone_events1158 is expected to have many resource_state_events1159 is expected to have many draft_notes1160 is expected to have many reviews inverse_of => merge_request1161 is expected to have one cleanup_schedule inverse_of => merge_request1162 is expected to have many created_environments class_name => Environment inverse_of => merge_request1163 for forks1164 does not load another project due to inverse relationship1165 finds the associated merge request1166 .from_and_to_forks1167 returns only MRs from and to forks (with no internal MRs)1168 .order_merged_at_asc1169 returns MRs ordered by merged_at ascending1170 .order_merged_at_desc1171 returns MRs ordered by merged_at descending1172 .order_closed_at_asc1173 returns MRs ordered by closed_at ascending1174 .order_closed_at_desc1175 returns MRs ordered by closed_at descending1176 .with_jira_issue_keys1177 is expected to contain exactly #<MergeRequest id:15 namespace1/project1!1> and #<MergeRequest id:16 namespace1/project1!2>1178 is expected not to include #<MergeRequest id:17 namespace1/project1!3>1179 scopes1180 .review_requested1181 returns MRs that have any review requests1182 .no_review_requested1183 returns MRs that have no review requests1184 .review_requested_to1185 returns MRs that the user has been requested to review1186 .no_review_requested_to1187 returns MRs that the user has not been requested to review1188 .drafts1189 returns MRs where draft == true1190 #squash?1191 disabled in database1192 is expected to be falsy1193 enabled in database1194 is expected to be truthy1195 #default_squash_commit_message1196 returns the merge request title1197 uses template from target project1198 modules1199 is expected to includes the Issuable module1200 is expected to includes the Referable module1201 is expected to includes the Sortable module1202 is expected to includes the Taskable module1203 is expected to includes the MilestoneEventable module1204 is expected to includes the StateEventable module1205 behaves like AtomicInternalId1206 .has_internal_id1207 Module inclusion1208 is expected to includes the AtomicInternalId module1209 Validation1210 when presence validation is required1211 when creating an object1212 raises an error if the internal id is blank1213 when updating an object1214 raises an error if the internal id is blank1215 when presence validation is not required1216 when creating an object1217 does not raise an error if the internal id is blank (PENDING: No reason given)1218 when updating an object1219 does not raise an error if the internal id is blank (PENDING: No reason given)1220 Creating an instance1221 saves a new instance properly1222 internal id generation1223 calls InternalId.generate_next and sets internal id attribute1224 does not overwrite an existing internal id1225 when the instance has an internal ID set1226 calls InternalId.update_last_value and sets the `last_value` to that of the instance1227 unsetting the instance internal id on rollback1228 when the internal id has been changed1229 when the internal id is automatically set1230 clears it on the instance1231 when the internal id is manually set1232 does not clear it on the instance1233 when the internal id has not been changed1234 preserves the value on the instance1235 supply of internal ids1236 provides a persistent supply of IID values, sensitive to the current state1237 #reset_scope_internal_id_attribute1238 rewinds the allocated IID1239 allocates the same IID1240 validation1241 is expected to validate that :target_branch cannot be empty/falsy1242 is expected to validate that :source_branch cannot be empty/falsy1243 Validation of merge user with Merge When Pipeline Succeeds1244 allows user to be nil when the feature is disabled1245 is invalid without merge user1246 is valid with merge user1247 for branch1248 branch_name: "foo", valid: true1249 validates source_branch1250 validates target_branch1251 branch_name: "foo:bar", valid: false1252 validates source_branch1253 validates target_branch1254 branch_name: "+foo:bar", valid: false1255 validates source_branch1256 validates target_branch1257 branch_name: "foo bar", valid: false1258 validates source_branch1259 validates target_branch1260 branch_name: "-foo", valid: false1261 validates source_branch1262 validates target_branch1263 branch_name: "HEAD", valid: true1264 validates source_branch1265 validates target_branch1266 branch_name: "refs/heads/master", valid: true1267 validates source_branch1268 validates target_branch1269 for forks1270 allows merge requests for sibling-forks1271 callbacks1272 #ensure_merge_request_diff1273 when async_merge_request_diff_creation is true1274 does not create a merge_request_diff after create1275 when async_merge_request_diff_creation is false1276 creates merge_request_diff after create1277 #ensure_merge_request_metrics1278 creates metrics after saving1279 does not duplicate metrics for a merge request1280 does not create duplicated metrics records when MR is concurrently updated1281 syncs the `target_project_id` to the metrics record1282 #set_draft_status1283 MR is a draft1284 sets draft to true1285 MR is not a draft1286 sets draft to true1287 respond to1288 is expected to respond to #unchecked?1289 is expected to respond to #checking?1290 is expected to respond to #can_be_merged?1291 is expected to respond to #cannot_be_merged?1292 is expected to respond to #merge_params1293 is expected to respond to #merge_when_pipeline_succeeds1294 .by_commit_sha1295 with sha contained in latest merge request diff1296 returns merge requests1297 with sha contained not in latest merge request diff1298 returns empty requests1299 with sha not contained in1300 returns empty result1301 .by_merge_commit_sha1302 returns merge requests that match the given merge commit1303 .by_squash_commit_sha1304 returns merge requests that match the given squash commit1305 .by_merge_or_squash_commit_sha1306 returns merge requests that match the given squash and merge commits1307 .join_metrics1308 when a no target_project_id is available1309 moves target_project_id condition to the merge request metrics1310 when a target_project_id is present in the where conditions1311 moves target_project_id condition to the merge request metrics1312 .by_related_commit_sha1313 when commit is a squash commit1314 is expected to eq [#<MergeRequest id:48 namespace1/project1!1>]1315 when commit is a part of the merge request1316 is expected to eq [#<MergeRequest id:49 namespace1/project1!1>]1317 when commit is a merge commit1318 is expected to eq [#<MergeRequest id:50 namespace1/project1!1>]1319 when commit is not found1320 is expected to be empty1321 when commit is part of the merge request and a squash commit at the same time1322 is expected to eq [#<MergeRequest id:51 namespace1/project1!1>]1323 .in_projects1324 returns the merge requests for a set of projects1325 .set_latest_merge_request_diff_ids!1326 sets IDs for merge requests, whether they are already set or not1327 .recent_target_branches1328 returns target branches sort by updated at desc1329 .sort_by_attribute1330 merged_at1331 sorts asc1332 sorts desc1333 closed_at1334 sorts asc1335 sorts desc1336 sorts asc when its closed_at1337 title1338 sorts asc1339 sorts desc1340 time to merge calculations1341 .total_time_to_merge1342 returns the sum of the time to merge for all merged MRs1343 when merged_at is earlier than created_at1344 returns nil1345 #target_branch_sha1346 returns memoized value1347 when the target branch does not exist1348 returns nil1349 #card_attributes1350 includes the author name1351 includes the assignees name1352 #assignee_or_author?1353 returns true for a user that is assigned to a merge request1354 returns true for a user that is the author of a merge request1355 returns false for a user that is not the assignee or author1356 #visible_closing_issues_for1357 shows only allowed issues to guest1358 shows only allowed issues to developer1359 when external issue tracker is enabled1360 calls non #closes_issues to retrieve data1361 #cache_merge_request_closes_issues!1362 caches closed issues1363 does not cache closed issues when merge request is closed1364 does not cache closed issues when merge request is merged1365 when both internal and external issue trackers are enabled1366 does not cache issues from external trackers1367 caches an internal issue1368 when only external issue tracker enabled1369 does not cache issues from external trackers1370 does not cache an internal issue1371 caches issues from another project with issues enabled1372 #source_branch_sha1373 returns memoized value1374 with diffs1375 returns the sha of the source branch last commit1376 without diffs1377 returns the sha of the source branch last commit1378 when there is a tag name matching the branch name1379 returns the sha of the source branch last commit1380 when the merge request is being created1381 returns nil1382 #to_reference1383 returns a String reference to the object1384 supports a cross-project reference1385 returns a String reference with the full path1386 #raw_diffs1387 when there are MR diffs1388 delegates to the MR diffs1389 when there are no MR diffs1390 delegates to the compare object1391 #diffs1392 when there are MR diffs1393 delegates to the MR diffs1394 when there are no MR diffs1395 delegates to the compare object, setting expanded: true1396 #note_positions_for_paths1397 returns a Gitlab::Diff::PositionCollection1398 within all diff files1399 returns correct positions1400 within specific diff file1401 returns correct positions1402 within no diff files1403 returns no positions1404 when user is given1405 returns notes and draft notes positions1406 when user is not given1407 returns notes positions1408 #discussions_diffs1409 with commit diff note1410 behaves like discussions diffs collection1411 initializes Gitlab::DiscussionsDiff::FileCollection with correct data1412 eager loads relations1413 with merge request diff note1414 behaves like discussions diffs collection1415 initializes Gitlab::DiscussionsDiff::FileCollection with correct data1416 eager loads relations1417 #diff_size1418 when there are MR diffs1419 returns the correct count1420 returns the correct overflow count1421 does not perform highlighting1422 when there are no MR diffs1423 returns the correct count1424 returns the correct overflow count1425 does not perform highlighting1426 #modified_paths1427 when past_merge_request_diff is specified1428 returns affected file paths from specified past_merge_request_diff1429 when compare is present1430 and diff_stats are not present1431 returns affected file paths from compare1432 and diff_stats are present1433 returns affected file paths from compare1434 when no arguments provided1435 returns affected file paths for merge_request_diff1436 #new_paths1437 returns new path of changed files1438 #related_notes1439 includes notes for commits1440 includes notes for commits from target project as well1441 excludes system notes for commits1442 #for_fork?1443 returns true if the merge request is for a fork1444 returns false if is not for a fork1445 #closes_issues1446 accesses the set of issues that will be closed on acceptance1447 only lists issues as to be closed if it targets the default branch1448 ignores referenced issues when auto-close is disabled1449 #issues_mentioned_but_not_closing1450 detects issues mentioned in description but not closed1451 when the project has an external issue tracker1452 detects issues mentioned in description but not closed1453 #draft?1454 detects the 'draft:' prefix1455 detects the 'Draft: ' prefix1456 detects the '[Draft]' prefix1457 detects the '[DRAFT] ' prefix1458 returns false1459 when 'WIP:' prefixes the title1460 when 'WIP: ' prefixes the title1461 when '[WIP]' prefixes the title1462 when '[WIP] ' prefixes the title1463 when ' [WIP] WIP: [WIP] WIP:' prefixes the title1464 when 'WIP ' prefixes the title1465 when '(WIP)' prefixes the title1466 when 'draft' prefixes the title1467 when 'Draft' prefixes the title1468 when 'Draft -' prefixes the title1469 when 'draft - ' prefixes the title1470 when 'Draft ' prefixes the title1471 when 'draft ' prefixes the title1472 when merge request title is simply 'WIP'1473 when WIP is in the middle of the title1474 when WIP is at the end of the title1475 when title contains words starting with WIP1476 when title contains words containing with WIP1477 when merge request title is simply 'Draft'1478 when Draft is in the middle of the title1479 when Draft is at the end of the title1480 when title contains words starting with Draft1481 when title contains words containing with Draft1482 when Draft: in the middle of the title1483 when the title does not contain draft1484 is aliased to #draft?1485 #draftless_title1486 removes a 'draft:' prefix1487 is satisfies the #work_in_progress? method1488 removes a 'Draft: ' prefix1489 is satisfies the #work_in_progress? method1490 removes a '[Draft]' prefix1491 is satisfies the #work_in_progress? method1492 removes a '[DRAFT] ' prefix1493 is satisfies the #work_in_progress? method1494 doesn't remove a 'WIP:' prefix1495 doesn't remove a 'WIP: ' prefix1496 doesn't remove a '[WIP]' prefix1497 doesn't remove a '[WIP] ' prefix1498 doesn't remove a '[WIP] WIP: [WIP] WIP:' prefix1499 removes only draft prefix from the MR title1500 does not remove WIP in the middle of the title1501 does not remove Draft in the middle of the title1502 does not remove WIP at the end of the title1503 does not remove Draft at the end of the title1504 #draft_title1505 adds the Draft: prefix to the title1506 does not add the Draft: prefix multiple times1507 is satisfies the #work_in_progress? method1508 #permits_force_push?1509 when source branch is not protected1510 is expected to be truthy1511 when source branch is protected1512 when force push is not allowed1513 is expected to be falsey1514 when force push is allowed1515 is expected to be truthy1516 #can_remove_source_branch?1517 can't be removed when its a protected branch1518 can't be removed because source project has been deleted1519 can't remove a root ref1520 is unable to remove the source branch for a project the user cannot push to1521 can be removed if the last commit is the head of the source branch1522 cannot be removed if the last commit is not also the head of the source branch1523 #source_branch_exists?1524 when the source project is set1525 returns true when the branch exists1526 when the source project is not set1527 returns false1528 #default_merge_commit_message1529 includes merge information as the title1530 includes its title in the body1531 includes its closed issues in the body1532 includes its reference in the body1533 excludes multiple linebreak runs when description is blank1534 includes its description in the body1535 does not includes its description in the body1536 uses template from target project1537 ignores template when include_description is true1538 #auto_merge_strategy1539 is expected to eq "merge_when_pipeline_succeeds"1540 when auto merge is disabled1541 is expected to be nil1542 #committers1543 returns all the committers of every commit in the merge request1544 returns an empty array if no committer is associated with a user1545 #diverged_commits_count1546 when the target branch does not exist anymore1547 does not crash1548 returns 01549 diverged on same repository1550 counts commits that are on target branch but not on source branch1551 diverged on fork1552 counts commits that are on target branch but not on source branch1553 rebased on fork1554 counts commits that are on target branch but not on source branch1555 caching1556 caches the output1557 invalidates the cache when the source sha changes1558 invalidates the cache when the target sha changes1559 behaves like an editable mentionable1560 creates new cross-reference notes when the mentionable text is edited1561 behaves like a mentionable1562 generates a descriptive back-reference1563 extracts references from its reference property1564 creates cross-reference notes1565 when there are cached markdown fields1566 sends in cached markdown fields when appropriate1567 when there are cached markdown fields1568 refreshes markdown cache if necessary1569 when the markdown cache is stale1570 persists the refreshed cache so that it does not have to be refreshed every time1571 behaves like a Taskable1572 with multiple tasks1573 returns the correct task status1574 #tasks?1575 returns true when object has tasks1576 returns false when object has no tasks1577 with nested tasks1578 returns the correct task status1579 with an incomplete task1580 returns the correct task status1581 with tasks that are not formatted correctly1582 returns the correct task status1583 with a complete task1584 returns the correct task status1585 with tasks in blockquotes1586 returns the correct task status1587 #commit_shas1588 persisted merge request1589 with a limit1590 returns a limited number of commit shas1591 without a limit1592 returns all commit shas of the merge request diff1593 new merge request1594 returns diff_head_sha as an array1595 compare commits1596 without a limit1597 returns all shas of compare commits1598 with a limit1599 returns a limited number of shas1600 head pipeline1601 #head_pipeline1602 returns nil for MR without head_pipeline_id1603 when the source project does not exist1604 returns nil1605 #actual_head_pipeline1606 returns nil for MR with old pipeline1607 returns the pipeline for MR with recent pipeline1608 returns the pipeline for MR with recent merge request pipeline1609 returns nil when source project does not exist1610 #merge_pipeline1611 returns nil when not merged1612 when the MR is merged1613 and there is a merge commit1614 returns the pipeline associated with that merge request1615 and there is no merge commit, but there is a diff head1616 returns the pipeline associated with that merge request1617 and there is no merge commit, but there is a squash commit1618 returns the pipeline associated with that merge request1619 #has_ci?1620 has ci1621 returns true if MR has head_pipeline_id and commits1622 returns true if MR has any pipeline and commits1623 returns true if MR has CI integration and commits1624 has no ci1625 returns false if MR has no CI integration nor pipeline, and no commits1626 #update_head_pipeline1627 when there is a pipeline with the diff head sha1628 updates the head pipeline1629 when merge request has already had head pipeline1630 when failed to find an actual head pipeline1631 does not update the current head pipeline1632 when detached merge request pipeline is run on head ref of the merge request1633 sets the head ref of the merge request to the pipeline ref1634 updates correctly even though the target branch name of the merge request is different from the pipeline ref1635 when sha is not HEAD of the source branch1636 does not update head pipeline1637 when there are no pipelines with the diff head sha1638 does not update the head pipeline1639 #has_test_reports?1640 when head pipeline has test reports1641 is expected to be truthy1642 when head pipeline does not have test reports1643 is expected to be falsey1644 #has_accessibility_reports?1645 when head pipeline has an accessibility reports1646 is expected to be truthy1647 when head pipeline does not have accessibility reports1648 is expected to be falsey1649 #has_coverage_reports?1650 when head pipeline has coverage reports1651 is expected to be truthy1652 when head pipeline does not have coverage reports1653 is expected to be falsey1654 #has_codequality_mr_diff_report?1655 when head pipeline has codequality mr diff report1656 is expected to be truthy1657 when head pipeline does not have codeqquality mr diff report1658 is expected to be falsey1659 #has_codequality_reports?1660 when head pipeline has a codequality report1661 is expected to be truthy1662 when head pipeline does not have a codequality report1663 is expected to be falsey1664 #has_terraform_reports?1665 when head pipeline has terraform reports1666 returns true1667 when head pipeline does not have terraform reports1668 returns false1669 #has_sast_reports?1670 when head pipeline has sast reports1671 is expected to be truthy1672 when head pipeline does not have sast reports1673 is expected to be falsey1674 #has_secret_detection_reports?1675 when head pipeline has secret detection reports1676 is expected to be truthy1677 when head pipeline does not have secrets detection reports1678 is expected to be falsey1679 #calculate_reactive_cache1680 when given an unknown service class name1681 raises a NameError exception1682 when given a known service class name1683 does not raises a NameError exception1684 #find_exposed_artifacts1685 when head pipeline has exposed artifacts1686 when reactive cache worker is parsing results asynchronously1687 returns status1688 when reactive cache worker is inline1689 returns status and data1690 when an error occurrs1691 returns an error message1692 when cached results is not latest1693 raises and InvalidateReactiveCache error1694 #find_coverage_reports1695 when head pipeline has coverage reports1696 when reactive cache worker is parsing results asynchronously1697 returns status1698 when reactive cache worker is inline1699 returns status and data1700 when an error occurrs1701 returns an error message1702 when cached results is not latest1703 raises and InvalidateReactiveCache error1704 #find_codequality_mr_diff_reports1705 when head pipeline has coverage reports1706 when reactive cache worker is parsing results asynchronously1707 returns status1708 when reactive cache worker is inline1709 returns status and data1710 when an error occurrs1711 returns an error message1712 when cached results is not latest1713 raises and InvalidateReactiveCache error1714 #compare_test_reports1715 when head pipeline has test reports1716 when reactive cache worker is parsing asynchronously1717 returns status1718 when reactive cache worker is inline1719 returns status and data1720 when cached results is not latest1721 raises and InvalidateReactiveCache error1722 when head pipeline does not have test reports1723 returns status and error message1724 #compare_accessibility_reports1725 when head pipeline has accessibility reports1726 when reactive cache worker is parsing results asynchronously1727 returns parsing status1728 when reactive cache worker is inline1729 returns parsed status1730 when an error occurrs1731 returns an error status1732 when cached result is not latest1733 raises an InvalidateReactiveCache error1734 #compare_codequality_reports1735 when head pipeline has codequality report1736 when reactive cache worker is parsing results asynchronously1737 returns parsing status1738 when reactive cache worker is inline1739 returns parsed status1740 when an error occurrs1741 returns an error status1742 when cached result is not latest1743 raises an InvalidateReactiveCache error1744 #all_commit_shas1745 when merge request is persisted1746 with a completely different branch1747 behaves like returning all SHA1748 returns all SHAs from all merge_request_diffs1749 with a branch having no difference1750 behaves like returning all SHA1751 returns all SHAs from all merge_request_diffs1752 when merge request is not persisted1753 when compare commits are set in the service1754 returns commits from compare commits temporary data1755 when compare commits are not set in the service1756 returns array with diff head sha element only1757 #short_merge_commit_sha1758 returns short id when there is a merge_commit_sha1759 returns nil when there is no merge_commit_sha1760 #merged_commit_sha1761 returns nil when not merged1762 when the MR is merged1763 returns merge_commit_sha when there is a merge_commit_sha1764 returns squash_commit_sha when there is a squash_commit_sha1765 returns diff_head_sha when there are no merge_commit_sha and squash_commit_sha1766 #short_merged_commit_sha1767 when merged_commit_sha is nil1768 returns nil1769 when merged_commit_sha is present1770 returns shortened merged_commit_sha1771 #can_be_reverted?1772 when there is no merge_commit for the MR1773 returns false1774 when the MR has been merged1775 when there is no revert commit1776 returns true1777 when there is no merged_at for the MR1778 returns true1779 when there is a revert commit1780 but merged at timestamp cannot be found1781 returns false1782 when the revert commit is mentioned in a note after the MR was merged1783 returns false1784 when there is no merged_at for the MR1785 returns false1786 when the revert commit is mentioned in a note just before the MR was merged1787 returns false1788 when the revert commit is mentioned in a note long before the MR was merged1789 returns true1790 #merged_at1791 when MR is not merged1792 returns nil1793 when metrics has merged_at data1794 returns metrics merged_at1795 when merged event is persisted, but no metrics merged_at is persisted1796 returns merged event creation date1797 when no metrics or merge event exists1798 when resource event for the merge exists1799 returns the resource event creation date1800 when system note for the merge exists1801 returns the merging note creation date1802 #participants1803 includes the merge request author1804 includes the authors of the notes1805 cached counts1806 updates when assignees change1807 #merge_async1808 enqueues MergeWorker job and updates merge_jid1809 #rebase_async1810 atomically enqueues a RebaseWorker job and updates rebase_jid1811 refuses to enqueue a job if a rebase is in progress1812 refuses to enqueue a job if the MR is not open1813 raises ActiveRecord::LockWaitTimeout after 6 tries1814 #mergeable?1815 returns false if #mergeable_state? is false1816 return true if #mergeable_state? is true and the MR #can_be_merged? is true1817 return true if #mergeable_state? is true and the MR #can_be_merged? is false1818 with skip_ci_check option1819 mergeable_ci_state: false, skip_ci_check: false, expected_mergeable: false1820 overrides mergeable_ci_state?1821 mergeable_ci_state: false, skip_ci_check: true, expected_mergeable: true1822 overrides mergeable_ci_state?1823 mergeable_ci_state: true, skip_ci_check: false, expected_mergeable: true1824 overrides mergeable_ci_state?1825 mergeable_ci_state: true, skip_ci_check: true, expected_mergeable: true1826 overrides mergeable_ci_state?1827 with skip_discussions_check option1828 mergeable_discussions_state: false, skip_discussions_check: false, expected_mergeable: false1829 overrides mergeable_discussions_state?1830 mergeable_discussions_state: false, skip_discussions_check: true, expected_mergeable: true1831 overrides mergeable_discussions_state?1832 mergeable_discussions_state: true, skip_discussions_check: false, expected_mergeable: true1833 overrides mergeable_discussions_state?1834 mergeable_discussions_state: true, skip_discussions_check: true, expected_mergeable: true1835 overrides mergeable_discussions_state?1836 #check_mergeability1837 if the merge status is unchecked1838 behaves like method that executes MergeabilityCheckService1839 executes MergeabilityCheckService1840 when async is true1841 executes MergeabilityCheckService asynchronously1842 if the merge status is checking1843 behaves like method that executes MergeabilityCheckService1844 executes MergeabilityCheckService1845 when async is true1846 executes MergeabilityCheckService asynchronously1847 if the merge status is checked1848 does not call MergeabilityCheckService1849 #mergeable_state?1850 behaves like for mergeable_state1851 checks if merge request can be merged1852 when not open1853 returns false1854 when working in progress1855 returns false1856 when broken1857 returns false1858 when failed1859 when #mergeable_ci_state? is false1860 returns false1861 returns true when skipping ci check1862 when #mergeable_discussions_state? is false1863 returns false1864 returns true when skipping discussions check1865 when merge state caching is off1866 behaves like for mergeable_state1867 checks if merge request can be merged1868 when not open1869 returns false1870 when working in progress1871 returns false1872 when broken1873 returns false1874 when failed1875 when #mergeable_ci_state? is false1876 returns false1877 returns true when skipping ci check1878 when #mergeable_discussions_state? is false1879 returns false1880 returns true when skipping discussions check1881 #public_merge_status1882 status: "cannot_be_merged_rechecking", public_status: "checking"1883 is expected to eq "checking"1884 status: "preparing", public_status: "checking"1885 is expected to eq "checking"1886 status: "checking", public_status: "checking"1887 is expected to eq "checking"1888 status: "cannot_be_merged", public_status: "cannot_be_merged"1889 is expected to eq "cannot_be_merged"1890 #head_pipeline_active?1891 when project lacks a head_pipeline relation1892 returns false1893 when project has a head_pipeline relation1894 accesses the value from the head_pipeline1895 #actual_head_pipeline_success?1896 when project lacks an actual_head_pipeline relation1897 returns false1898 when project has a actual_head_pipeline relation1899 accesses the value from the actual_head_pipeline1900 #actual_head_pipeline_active?1901 when project lacks an actual_head_pipeline relation1902 returns false1903 when project has a actual_head_pipeline relation1904 accesses the value from the actual_head_pipeline1905 #mergeable_ci_state?1906 when it is only allowed to merge when build is green1907 and a failed pipeline is associated1908 is expected to be falsey1909 and a successful pipeline is associated1910 is expected to be truthy1911 and a skipped pipeline is associated1912 is expected to be falsey1913 when no pipeline is associated1914 is expected to be falsey1915 when it is only allowed to merge when build is green or skipped1916 and a failed pipeline is associated1917 is expected to be falsey1918 and a successful pipeline is associated1919 is expected to be truthy1920 and a skipped pipeline is associated1921 is expected to be truthy1922 when no pipeline is associated1923 is expected to be falsey1924 when merges are not restricted to green builds1925 and a failed pipeline is associated1926 is expected to be truthy1927 when no pipeline is associated1928 is expected to be truthy1929 and a skipped pipeline is associated1930 is expected to be truthy1931 when no pipeline is associated1932 is expected to be truthy1933 #mergeable_discussions_state?1934 when project.only_allow_merge_if_all_discussions_are_resolved == true1935 with all discussions resolved1936 returns true1937 with unresolved discussions1938 returns false1939 with no discussions1940 returns true1941 when project.only_allow_merge_if_all_discussions_are_resolved == false1942 with unresolved discussions1943 returns true1944 #reload_diff1945 calls MergeRequests::ReloadDiffsService#execute with correct params1946 when using the after_update hook to update1947 when the branches are updated1948 uses the new heads to generate the diff1949 #update_diff_discussion_positions1950 updates diff discussion positions1951 does not call the resolve method1952 when resolve_outdated_diff_discussions is set1953 when the active discussion is resolved in the update1954 calls MergeRequests::ResolvedDiscussionNotificationService1955 when the active discussion does not have resolved in the update1956 does not call the resolve method1957 when the active discussion was already resolved1958 does not call the resolve method1959 #branch_merge_base_commit1960 source and target branch exist1961 is expected to eq "ae73cb07c9eeaf35924a10f713b364d32b2dd34f"1962 is expected to be a kind of Commit1963 when the target branch does not exist1964 returns nil1965 #diff_refs1966 with diffs1967 does not touch the repository1968 returns expected diff_refs1969 when importing1970 returns MR diff_refs1971 #source_project_missing?1972 when the fork exists1973 is expected to be falsey1974 when the source project is the same as the target project1975 is expected to be falsey1976 when the fork does not exist1977 returns true1978 #merge_ongoing?1979 returns true when the merge request is locked1980 returns true when merge_id, MR is not merged and it has no running job1981 returns false when merge_jid is nil1982 returns false if MR is merged1983 returns false if there is no merge job running1984 #closed_or_merged_without_fork?1985 when the merge request is closed1986 returns false if the fork exist1987 returns true if the fork does not exist1988 when the merge request was merged1989 returns false if the fork exist1990 returns true if the fork does not exist1991 when the merge request is open1992 returns false1993 #reopenable?1994 when the merge request is closed1995 returns true1996 forked project1997 returns false if unforked1998 returns false if the source project is deleted1999 returns false if the merge request is merged2000 when the merge request is opened2001 returns false2002 #pipeline_coverage_delta2003 when both source and target branches have coverage information2004 returns the appropriate coverage delta2005 when target branch does not have coverage information2006 returns nil2007 when source branch does not have coverage information2008 returns nil for coverage_delta2009 neither source nor target branch has coverage information2010 returns nil for coverage_delta2011 #use_merge_base_pipeline_for_comparison?2012 when service class is Ci::CompareMetricsReportsService2013 is expected to be truthy2014 when service class is Ci::CompareCodequalityReportsService2015 is expected to be truthy2016 when service class is different2017 is expected to be falsey2018 #comparison_base_pipeline2019 when service class is Ci::CompareCodequalityReportsService2020 when merge request has a merge request pipeline2021 returns the merge_base_pipeline2022 when merge does not have a merge request pipeline2023 returns the base_pipeline2024 when service_class is different2025 returns the base_pipeline2026 #base_pipeline2027 returns latest pipeline for the target branch2028 #merge_base_pipeline2029 returns a pipeline pointing to a commit on the target ref2030 #has_commits?2031 returns true when merge request diff has commits2032 when commits_count is nil2033 returns false2034 #has_no_commits?2035 returns true when merge request diff has 0 commits2036 #merge_request_diff_for2037 runs a single query on the initial call, and none afterwards2038 with diff refs2039 returns the diffs2040 with a commit SHA2041 returns the diffs2042 #version_params_for2043 when the diff refs are for an older merge request version2044 returns the diff ID for the version to show2045 when the diff refs are for a comparison between merge request versions2046 returns the diff ID and start sha of the versions to compare2047 when the diff refs are not for a merge request version2048 returns nil2049 #fetch_ref!2050 fetches the ref correctly2051 #eager_fetch_ref!2052 fetches the ref correctly2053 only fetches the ref once after saved2054 removing a merge request2055 refreshes the number of open merge requests of the target project2056 behaves like throttled touch2057 #touch2058 updates the updated_at timestamp2059 updates the object at most once per minute2060 state machine transitions2061 #unlock_mr2062 updates merge request head pipeline and sets merge_jid to nil2063 #mark_as_preparing2064 when the status is unchecked2065 is a valid state transition2066 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2067 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2068 when the status is checking2069 is not a valid state transition2070 when the status is can_be_merged2071 is not a valid state transition2072 when the status is cannot_be_merged_recheck2073 is not a valid state transition2074 when the status is cannot_be_merged2075 is not a valid state transition2076 when the status is cannot_be_merged_rechecking2077 is not a valid state transition2078 #mark_as_unchecked2079 when the status is unchecked2080 is not a valid state transition2081 when the status is checking2082 is a valid state transition2083 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2084 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:347 namespace1/project151!1>) 1 time2085 when trigger_mr_subscription_on_merge_status_change is disabled2086 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2087 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2088 when the status is can_be_merged2089 is a valid state transition2090 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2091 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:350 namespace1/project154!1>) 1 time2092 when trigger_mr_subscription_on_merge_status_change is disabled2093 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2094 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2095 when the status is cannot_be_merged_recheck2096 is not a valid state transition2097 when the status is cannot_be_merged2098 is a valid state transition2099 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2100 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:354 namespace1/project158!1>) 1 time2101 when trigger_mr_subscription_on_merge_status_change is disabled2102 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2103 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2104 when the status is cannot_be_merged_rechecking2105 is a valid state transition2106 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2107 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:357 namespace1/project161!1>) 1 time2108 when trigger_mr_subscription_on_merge_status_change is disabled2109 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2110 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2111 #mark_as_checking2112 when the status is unchecked2113 is a valid state transition2114 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2115 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:360 namespace1/project164!1>) 1 time2116 when trigger_mr_subscription_on_merge_status_change is disabled2117 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2118 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2119 when the status is checking2120 is not a valid state transition2121 when the status is can_be_merged2122 is not a valid state transition2123 when the status is cannot_be_merged_recheck2124 is a valid state transition2125 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2126 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:365 namespace1/project169!1>) 1 time2127 when trigger_mr_subscription_on_merge_status_change is disabled2128 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2129 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2130 when the status is cannot_be_merged2131 is not a valid state transition2132 when the status is cannot_be_merged_rechecking2133 is not a valid state transition2134 #mark_as_mergeable2135 when the status is unchecked2136 is a valid state transition2137 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2138 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:370 namespace1/project174!1>) 1 time2139 when trigger_mr_subscription_on_merge_status_change is disabled2140 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2141 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2142 when the status is checking2143 is a valid state transition2144 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2145 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:373 namespace1/project177!1>) 1 time2146 when trigger_mr_subscription_on_merge_status_change is disabled2147 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2148 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2149 when the status is can_be_merged2150 is not a valid state transition2151 when the status is cannot_be_merged_recheck2152 is a valid state transition2153 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2154 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:377 namespace1/project181!1>) 1 time2155 when trigger_mr_subscription_on_merge_status_change is disabled2156 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2157 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2158 when the status is cannot_be_merged2159 is not a valid state transition2160 when the status is cannot_be_merged_rechecking2161 is a valid state transition2162 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2163 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:381 namespace1/project185!1>) 1 time2164 when trigger_mr_subscription_on_merge_status_change is disabled2165 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2166 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2167 #mark_as_unmergeable2168 when the status is unchecked2169 is a valid state transition2170 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2171 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:384 namespace1/project188!1>) 1 time2172 when trigger_mr_subscription_on_merge_status_change is disabled2173 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2174 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2175 when the status is checking2176 is a valid state transition2177 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2178 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:387 namespace1/project191!1>) 1 time2179 when trigger_mr_subscription_on_merge_status_change is disabled2180 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2181 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2182 when the status is can_be_merged2183 is not a valid state transition2184 when the status is cannot_be_merged_recheck2185 is a valid state transition2186 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2187 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:391 namespace1/project195!1>) 1 time2188 when trigger_mr_subscription_on_merge_status_change is disabled2189 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2190 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2191 when the status is cannot_be_merged2192 is not a valid state transition2193 when the status is cannot_be_merged_rechecking2194 is a valid state transition2195 behaves like transition triggering mergeRequestMergeStatusUpdated GraphQL subscription2196 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:395 namespace1/project199!1>) 1 time2197 when trigger_mr_subscription_on_merge_status_change is disabled2198 behaves like transition not triggering mergeRequestMergeStatusUpdated GraphQL subscription2199 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times2200 transition to closed2201 with merge error2202 clears merge error2203 transition to cannot_be_merged2204 opened2205 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged2206 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check2207 notifies conflict, whenever newly unmergeable2208 notifies conflict, whenever newly unmergeable with async mergeability check2209 does not notify whenever merge request is newly unmergeable due to other reasons2210 locked2211 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged2212 notifies conflict, but does not notify again if rechecking still results in cannot_be_merged with async mergeability check2213 notifies conflict, whenever newly unmergeable2214 notifies conflict, whenever newly unmergeable with async mergeability check2215 does not notify whenever merge request is newly unmergeable due to other reasons2216 closed2217 does not notify2218 merged2219 does not notify2220 source branch is missing2221 does not raise error2222 check_state?2223 indicates whether MR is still checking for mergeability2224 #should_be_rebased?2225 returns false for the same source and target branches2226 #rebase_in_progress?2227 rebase_jid: "foo", jid_valid: true, result: true2228 is expected to eq true2229 rebase_jid: "foo", jid_valid: false, result: false2230 is expected to eq false2231 rebase_jid: "", jid_valid: true, result: false2232 is expected to eq false2233 rebase_jid: nil, jid_valid: true, result: false2234 is expected to eq false2235 #allow_collaboration2236 is false when pushing by a maintainer is not possible2237 is true when pushing by a maintainer is possible2238 #collaborative_push_possible?2239 does not allow maintainer to push if the source project is the same as the target2240 allows maintainer to push when both source and target are public2241 is not available for protected branches2242 #can_allow_collaboration?2243 is false if the user does not have push access to the source project2244 is true when the user has push access to the source project2245 #merge_participants2246 contains author2247 when merge_when_pipeline_succeeds? is true2248 when merge user is author2249 author is not a project member2250 is empty2251 author is a project member2252 contains author only2253 when merge user and author are different users2254 merge user is not a member2255 contains author only2256 both author and merge users are project members2257 contains author and merge user2258 .merge_request_ref?2259 when ref is ref name of a branch2260 is expected to be falsey2261 when ref is HEAD ref path of a branch2262 is expected to be falsey2263 when ref is HEAD ref path of a merge request2264 is expected to be truthy2265 when ref is merge ref path of a merge request2266 is expected to be truthy2267 .merge_train_ref?2268 when ref is ref name of a branch2269 is expected to be falsey2270 when ref is HEAD ref path of a branch2271 is expected to be falsey2272 when ref is HEAD ref path of a merge request2273 is expected to be falsey2274 when ref is merge ref path of a merge request2275 is expected to be falsey2276 when ref is train ref path of a merge request2277 is expected to be truthy2278 #in_locked_state2279 when the merge request does not change state2280 returns to previous state and has no errors on the object2281 when the merge request is merged while locked2282 becomes merged and has no errors on the object2283 #cleanup_refs2284 when removing all refs2285 deletes all refs from the target project2286 when removing only train ref2287 deletes train ref from the target project2288 .with_auto_merge_enabled2289 is expected to contain exactly #<MergeRequest id:420 namespace1/project225!1>2290 behaves like versioned description2291 associations2292 is expected to have many description_versions2293 save_description_version2294 when description was changed2295 saves the old and new description for the first update2296 only saves the new description for subsequent updates2297 sets the new description version to `saved_description_version`2298 clears `saved_description_version` after another save that does not change description2299 when description was not changed2300 does not save any description version2301 #commits2302 persisted merge request2303 with a limit2304 returns a limited number of commits2305 without a limit2306 returns all commits of the merge request diff2307 new merge request2308 compare commits2309 without a limit2310 returns all the compare commits2311 with a limit2312 returns a limited number of commits2313 #recent_commits2314 returns the safe number of commits2315 #recent_visible_deployments2316 returns visible deployments2317 only returns a limited number of deployments2318 #diffable_merge_ref?2319 merge request can be merged2320 merge_head diff is not created2321 returns true2322 merge_head diff is created2323 returns true2324 merge request is merged2325 returns false2326 merge request cannot be merged2327 returns false2328 #predefined_variables2329 caches all SQL-sourced data on the first call2330 banzai_render_context2331 sets the label_url_method in the context2332 #head_pipeline_builds_with_coverage2333 delegates to head_pipeline2334 #merge_ref_head2335 when merge_ref_sha is not present2336 returns the commit based on merge ref path2337 when merge_ref_sha is present2338 returns the commit based on cached merge_ref_sha2339 #allows_reviewers?2340 returns true2341 #update_and_mark_in_progress_merge_commit_sha2342 updates commit ID2343 #enabled_reports2344 report_type: :sast, with_reports: :with_sast_reports, feature: :sast2345 when head pipeline has reports2346 is expected to be truthy2347 when head pipeline does not have reports2348 is expected to be falsy2349 report_type: :secret_detection, with_reports: :with_secret_detection_reports, feature: :secret_detection2350 when head pipeline has reports2351 is expected to be truthy2352 when head pipeline does not have reports2353 is expected to be falsy2354 #includes_ci_config?2355 when diff_stats is nil2356 is expected to eq false2357 when diff_stats does not include the ci config path of the project2358 is expected to eq false2359 when diff_stats includes the ci config path of the project2360 is expected to eq true2361 .from_fork2362 returns merge requests from forks only2363 behaves like it has loose foreign keys2364 has at least one loose foreign key definition2365 has the deletion trigger present2366 records record deletions2367 cleans up record deletions2368 loose foreign key on merge_requests.head_pipeline_id2369 behaves like cleanup by a loose foreign key2370 cleans up (delete or nullify) the model2371 #merge_blocked_by_other_mrs?2372 returns false when there is no blocking merge requests2373 #merge_request_reviewers_with2374 returns reviewers2375 #merge_request_assignees_with2376 returns assignees2377 #recent_diff_head_shas2378 when the association is not loaded2379 has up to MAX_RECENT_DIFF_HEAD_SHAS, ordered most recent first2380 supports limits2381 when the association is loaded2382 has up to MAX_RECENT_DIFF_HEAD_SHAS, ordered most recent first2383 supports limits2384 does not issue any queries2385 #target_default_branch?2386 returns false2387 with target_branch equal project default branch2388 returns false2389 #can_suggest_reviewers?2390 returns false2391 #suggested_reviewer_users2392 is expected to be empty2393GroupMembersFinder#execute2394 relations2395 raises an error if a non-supported relation type is used2396 subject_relations: [], subject_group: :group, expected_members: []2397 returns correct members2398 subject_relations: [:direct, :inherited], subject_group: :group, expected_members: [:user1_group, :user2_group, :user3_group, :user4_group]2399 returns correct members2400 subject_relations: [:direct], subject_group: :group, expected_members: [:user1_group, :user2_group, :user3_group, :user4_group]2401 returns correct members2402 subject_relations: [:inherited], subject_group: :group, expected_members: []2403 returns correct members2404 subject_relations: [:descendants], subject_group: :group, expected_members: [:user1_sub_sub_group, :user2_sub_group, :user3_sub_group, :user4_sub_group]2405 returns correct members2406 subject_relations: [:shared_from_groups], subject_group: :group, expected_members: [:user1_public_shared_group, :user2_public_shared_group, :user3_public_shared_group, :user4_public_shared_group]2407 returns correct members2408 subject_relations: [:direct, :inherited, :descendants, :shared_from_groups], subject_group: :group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_public_shared_group]2409 returns correct members2410 subject_relations: [], subject_group: :sub_group, expected_members: []2411 returns correct members2412 subject_relations: [:direct, :inherited], subject_group: :sub_group, expected_members: [:user1_sub_group, :user2_group, :user3_sub_group, :user4_group]2413 returns correct members2414 subject_relations: [:direct], subject_group: :sub_group, expected_members: [:user1_sub_group, :user2_sub_group, :user3_sub_group, :user4_sub_group]2415 returns correct members2416 subject_relations: [:inherited], subject_group: :sub_group, expected_members: [:user1_group, :user2_group, :user3_group, :user4_group]2417 returns correct members2418 subject_relations: [:descendants], subject_group: :sub_group, expected_members: [:user1_sub_sub_group, :user2_sub_sub_group, :user3_sub_sub_group, :user4_sub_sub_group]2419 returns correct members2420 subject_relations: [:shared_from_groups], subject_group: :sub_group, expected_members: [:user1_public_shared_group, :user2_public_shared_group, :user3_public_shared_group, :user4_public_shared_group]2421 returns correct members2422 subject_relations: [:direct, :inherited, :descendants, :shared_from_groups], subject_group: :sub_group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_public_shared_group]2423 returns correct members2424 subject_relations: [], subject_group: :sub_sub_group, expected_members: []2425 returns correct members2426 subject_relations: [:direct, :inherited], subject_group: :sub_sub_group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_group]2427 returns correct members2428 subject_relations: [:direct], subject_group: :sub_sub_group, expected_members: [:user1_sub_sub_group, :user2_sub_sub_group, :user3_sub_sub_group, :user4_sub_sub_group]2429 returns correct members2430 subject_relations: [:inherited], subject_group: :sub_sub_group, expected_members: [:user1_sub_group, :user2_group, :user3_sub_group, :user4_group]2431 returns correct members2432 subject_relations: [:descendants], subject_group: :sub_sub_group, expected_members: []2433 returns correct members2434 subject_relations: [:shared_from_groups], subject_group: :sub_sub_group, expected_members: [:user1_public_shared_group, :user2_public_shared_group, :user3_public_shared_group, :user4_public_shared_group]2435 returns correct members2436 subject_relations: [:direct, :inherited, :descendants, :shared_from_groups], subject_group: :sub_sub_group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_public_shared_group]2437 returns correct members2438 search2439 returns searched members if requested2440 returns nothing if search only in inherited relation2441 returns searched member only from sub_group if search only in inherited relation2442 filter by two-factor2443 returns members with two-factor auth if requested by owner2444 returns members without two-factor auth if requested by owner2445 returns direct members with two-factor auth if requested by owner2446 returns inherited members with two-factor auth if requested by owner2447 returns direct members without two-factor auth if requested by owner2448 returns inherited members without two-factor auth if requested by owner2449 filter by access levels2450 by owner2451 returns owners2452 by maintainer2453 returns owners2454 by owner and maintainer2455 returns owners and maintainers2456DesignManagement::DesignV432x230Uploader2457 resizes images2458 behaves like builds correct paths2459 #store_dir2460 behaves like matches the method pattern2461 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//2462 #cache_dir2463 behaves like matches the method pattern2464 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2465 #work_dir2466 behaves like matches the method pattern2467 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2468 #upload_path2469 behaves like matches the method pattern2470 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//2471 #relative_path2472 is relative (PENDING: Path not set, skipping.)2473 .absolute_path2474 behaves like matches the method pattern2475 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/design_management\/action\/image_v432x230\//2476 .base_dir2477 behaves like matches the method pattern2478 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2479 path traversal exploits2480 throws an exception2481 object_store is REMOTE2482 behaves like builds correct paths2483 #store_dir2484 behaves like matches the method pattern2485 is expected to match /design_management\/action\/image_v432x230\//2486 #cache_dir2487 behaves like matches the method pattern2488 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2489 #work_dir2490 behaves like matches the method pattern2491 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2492 #upload_path2493 behaves like matches the method pattern2494 is expected to match /design_management\/action\/image_v432x230\//2495 #relative_path2496 is relative (PENDING: Path not set, skipping.)2497 .absolute_path2498 behaves like matches the method pattern2499 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2500 .base_dir2501 behaves like matches the method pattern2502 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)2503 path traversal exploits2504 throws an exception2505 #migrate!2506 behaves like migrates2507 returns corresponding file type2508 does nothing when migrating to the current store2509 migrate to the specified store2510 removes the original file after the migration2511 can access to the original file during migration2512 when migrate! is not occupied by another process2513 executes migrate!2514 executes use_file2515 when migrate! is occupied by another process2516 does not execute migrate!2517 does not execute use_file2518 migration is unsuccessful2519 when the store is not supported2520 does not update the object_store2521 does not delete the original file2522 upon a fog failure2523 does not update the object_store2524 does not delete the original file2525 upon a database failure2526 does not update the object_store2527 does not delete the original file2528 behaves like migrates2529 returns corresponding file type2530 does nothing when migrating to the current store2531 migrate to the specified store2532 removes the original file after the migration2533 can access to the original file during migration2534 when migrate! is not occupied by another process2535 executes migrate!2536 executes use_file2537 when migrate! is occupied by another process2538 does not execute migrate!2539 does not execute use_file2540 migration is unsuccessful2541 when the store is not supported2542 does not update the object_store2543 does not delete the original file2544 upon a fog failure2545 does not update the object_store2546 does not delete the original file2547 upon a database failure2548 does not update the object_store2549 does not delete the original file2550 accept whitelist file content type2551 mime_type: "image/png"2552 behaves like accepted carrierwave upload2553 will accept upload2554 will cache uploaded file2555 mime_type: "image/jpeg"2556 behaves like accepted carrierwave upload2557 will accept upload2558 will cache uploaded file2559 mime_type: "image/bmp"2560 behaves like accepted carrierwave upload2561 will accept upload2562 will cache uploaded file2563 mime_type: "image/gif"2564 behaves like accepted carrierwave upload2565 will accept upload2566 will cache uploaded file2567 upload non-whitelisted file content type2568 behaves like denied carrierwave upload2569 will deny upload2570 upload misnamed non-whitelisted file content type2571 behaves like denied carrierwave upload2572 will deny upload2573GroupsFinder2574 #execute2575 root level groups2576 user_type: nil, params: {:all_available=>true}, results: [:public_group, :user_public_group]2577 is expected to contain exactly #<Group id:1022 @public_group> and #<Group id:1025 @user_public_group>2578 user_type: nil, params: {:all_available=>false}, results: [:public_group, :user_public_group]2579 is expected to contain exactly #<Group id:1028 @public_group> and #<Group id:1031 @user_public_group>2580 user_type: nil, params: {}, results: [:public_group, :user_public_group]2581 is expected to contain exactly #<Group id:1034 @public_group> and #<Group id:1037 @user_public_group>2582 user_type: :regular, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2583 is expected to contain exactly #<Group id:1040 @public_group>, #<Group id:1039 @internal_group>, #<Group id:1043 @user_public_group>, #<Group id:1042 @user_internal_group>, and #<Group id:1041 @user_private_group>2584 user_type: :regular, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2585 is expected to contain exactly #<Group id:1050 @user_public_group>, #<Group id:1049 @user_internal_group>, and #<Group id:1048 @user_private_group>2586 user_type: :regular, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2587 is expected to contain exactly #<Group id:1054 @public_group>, #<Group id:1053 @internal_group>, #<Group id:1057 @user_public_group>, #<Group id:1056 @user_internal_group>, and #<Group id:1055 @user_private_group>2588 user_type: :regular, params: {:min_access_level=>30}, results: [:user_public_group, :user_internal_group, :user_private_group]2589 is expected to contain exactly #<Group id:1064 @user_public_group>, #<Group id:1063 @user_internal_group>, and #<Group id:1062 @user_private_group>2590 user_type: :external, params: {:all_available=>true}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]2591 is expected to contain exactly #<Group id:1068 @public_group>, #<Group id:1071 @user_public_group>, #<Group id:1070 @user_internal_group>, and #<Group id:1069 @user_private_group>2592 user_type: :external, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2593 is expected to contain exactly #<Group id:1078 @user_public_group>, #<Group id:1077 @user_internal_group>, and #<Group id:1076 @user_private_group>2594 user_type: :external, params: {}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]2595 is expected to contain exactly #<Group id:1082 @public_group>, #<Group id:1085 @user_public_group>, #<Group id:1084 @user_internal_group>, and #<Group id:1083 @user_private_group>2596 user_type: :admin_without_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2597 is expected to contain exactly #<Group id:1089 @public_group>, #<Group id:1088 @internal_group>, #<Group id:1092 @user_public_group>, #<Group id:1091 @user_internal_group>, and #<Group id:1090 @user_private_group>2598 user_type: :admin_without_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2599 is expected to contain exactly #<Group id:1099 @user_public_group>, #<Group id:1098 @user_internal_group>, and #<Group id:1097 @user_private_group>2600 user_type: :admin_without_admin_mode, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2601 is expected to contain exactly #<Group id:1103 @public_group>, #<Group id:1102 @internal_group>, #<Group id:1106 @user_public_group>, #<Group id:1105 @user_internal_group>, and #<Group id:1104 @user_private_group>2602 user_type: :admin_with_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]2603 is expected to contain exactly #<Group id:1110 @public_group>, #<Group id:1109 @internal_group>, #<Group id:1108 @private_group>, #<Group id:1113 @user_public_group>, #<Group id:1112 @user_internal_group>, and #<Group id:1111 @user_private_group>2604 user_type: :admin_with_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2605 is expected to contain exactly #<Group id:1120 @user_public_group>, #<Group id:1119 @user_internal_group>, and #<Group id:1118 @user_private_group>2606 user_type: :admin_with_admin_mode, params: {}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]2607 is expected to contain exactly #<Group id:1124 @public_group>, #<Group id:1123 @internal_group>, #<Group id:1122 @private_group>, #<Group id:1127 @user_public_group>, #<Group id:1126 @user_internal_group>, and #<Group id:1125 @user_private_group>2608 subgroups2609 with [nil] parent2610 returns only top-level groups2611 without a user2612 only returns parent and public subgroups2613 with a user2614 returns parent, public, and internal subgroups2615 being member2616 returns parent, public subgroups, internal subgroups, and private subgroups user is member of2617 parent group private2618 being member of parent group2619 returns all subgroups2620 authorized to private project2621 project one level deep2622 includes the subgroup of the project2623 does not include private subgroups deeper down2624 project two levels deep2625 returns all the ancestor groups2626 returns the groups for a given parent2627 being minimal access member of parent group2628 do not return group with minimal_access access2629 with include parent group descendants2630 with nil parent2631 returns all accessible groups2632 without a user2633 only returns the group public descendants2634 when a user is present2635 returns the group public and internal descendants2636 when a parent group member is present2637 returns all group descendants2638 with search2639 returns all groups with matching title2640 returns all groups with matching path2641 does not search in full path if parent is set2642 with group descendants2643 searches in full path if descendant groups are not included2644 with include_ancestors2645 if include_ancestors is true2646 returns ancestors of user groups2647 returns subgroup if user is member of project of subgroup2648 returns only groups related to user groups if all_available is false2649 if include_ancestors is false2650 does not return private ancestors of user groups2651 returns project's parent group if user is member of project2652 returns only user groups and their descendants if all_available is false2653 when use_traversal_ids_groups_finder feature flags is disabled2654 root level groups2655 user_type: nil, params: {:all_available=>true}, results: [:public_group, :user_public_group]2656 is expected to contain exactly #<Group id:1219 @public_group> and #<Group id:1222 @user_public_group>2657 user_type: nil, params: {:all_available=>false}, results: [:public_group, :user_public_group]2658 is expected to contain exactly #<Group id:1225 @public_group> and #<Group id:1228 @user_public_group>2659 user_type: nil, params: {}, results: [:public_group, :user_public_group]2660 is expected to contain exactly #<Group id:1231 @public_group> and #<Group id:1234 @user_public_group>2661 user_type: :regular, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2662 is expected to contain exactly #<Group id:1237 @public_group>, #<Group id:1236 @internal_group>, #<Group id:1240 @user_public_group>, #<Group id:1239 @user_internal_group>, and #<Group id:1238 @user_private_group>2663 user_type: :regular, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2664 is expected to contain exactly #<Group id:1247 @user_public_group>, #<Group id:1246 @user_internal_group>, and #<Group id:1245 @user_private_group>2665 user_type: :regular, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2666 is expected to contain exactly #<Group id:1251 @public_group>, #<Group id:1250 @internal_group>, #<Group id:1254 @user_public_group>, #<Group id:1253 @user_internal_group>, and #<Group id:1252 @user_private_group>2667 user_type: :regular, params: {:min_access_level=>30}, results: [:user_public_group, :user_internal_group, :user_private_group]2668 is expected to contain exactly #<Group id:1261 @user_public_group>, #<Group id:1260 @user_internal_group>, and #<Group id:1259 @user_private_group>2669 user_type: :external, params: {:all_available=>true}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]2670 is expected to contain exactly #<Group id:1265 @public_group>, #<Group id:1268 @user_public_group>, #<Group id:1267 @user_internal_group>, and #<Group id:1266 @user_private_group>2671 user_type: :external, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2672 is expected to contain exactly #<Group id:1275 @user_public_group>, #<Group id:1274 @user_internal_group>, and #<Group id:1273 @user_private_group>2673 user_type: :external, params: {}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]2674 is expected to contain exactly #<Group id:1279 @public_group>, #<Group id:1282 @user_public_group>, #<Group id:1281 @user_internal_group>, and #<Group id:1280 @user_private_group>2675 user_type: :admin_without_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2676 is expected to contain exactly #<Group id:1286 @public_group>, #<Group id:1285 @internal_group>, #<Group id:1289 @user_public_group>, #<Group id:1288 @user_internal_group>, and #<Group id:1287 @user_private_group>2677 user_type: :admin_without_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2678 is expected to contain exactly #<Group id:1296 @user_public_group>, #<Group id:1295 @user_internal_group>, and #<Group id:1294 @user_private_group>2679 user_type: :admin_without_admin_mode, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2680 is expected to contain exactly #<Group id:1300 @public_group>, #<Group id:1299 @internal_group>, #<Group id:1303 @user_public_group>, #<Group id:1302 @user_internal_group>, and #<Group id:1301 @user_private_group>2681 user_type: :admin_with_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]2682 is expected to contain exactly #<Group id:1307 @public_group>, #<Group id:1306 @internal_group>, #<Group id:1305 @private_group>, #<Group id:1310 @user_public_group>, #<Group id:1309 @user_internal_group>, and #<Group id:1308 @user_private_group>2683 user_type: :admin_with_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2684 is expected to contain exactly #<Group id:1317 @user_public_group>, #<Group id:1316 @user_internal_group>, and #<Group id:1315 @user_private_group>2685 user_type: :admin_with_admin_mode, params: {}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]2686 is expected to contain exactly #<Group id:1321 @public_group>, #<Group id:1320 @internal_group>, #<Group id:1319 @private_group>, #<Group id:1324 @user_public_group>, #<Group id:1323 @user_internal_group>, and #<Group id:1322 @user_private_group>2687 subgroups2688 with [nil] parent2689 returns only top-level groups2690 without a user2691 only returns parent and public subgroups2692 with a user2693 returns parent, public, and internal subgroups2694 being member2695 returns parent, public subgroups, internal subgroups, and private subgroups user is member of2696 parent group private2697 being member of parent group2698 returns all subgroups2699 authorized to private project2700 project one level deep2701 includes the subgroup of the project2702 does not include private subgroups deeper down2703 project two levels deep2704 returns all the ancestor groups2705 returns the groups for a given parent2706 being minimal access member of parent group2707 do not return group with minimal_access access2708 with include parent group descendants2709 with nil parent2710 returns all accessible groups2711 without a user2712 only returns the group public descendants2713 when a user is present2714 returns the group public and internal descendants2715 when a parent group member is present2716 returns all group descendants2717 with search2718 returns all groups with matching title2719 returns all groups with matching path2720 does not search in full path if parent is set2721 with group descendants2722 searches in full path if descendant groups are not included2723 with include_ancestors2724 if include_ancestors is true2725 returns ancestors of user groups2726 returns subgroup if user is member of project of subgroup2727 returns only groups related to user groups if all_available is false2728 if include_ancestors is false2729 does not return private ancestors of user groups2730 returns project's parent group if user is member of project2731 returns only user groups and their descendants if all_available is false2732Clusters::Applications::Cilium2733 is expected to belong to cluster required: false2734 is expected to validate that :cluster cannot be empty/falsy2735 #can_uninstall?2736 calls allowed_to_uninstall?2737 #name2738 is .application_name2739 is recorded in Clusters::Cluster::APPLICATIONS2740 .association_name2741 is expected to eq :application_cilium2742 #helm_command_module2743 helm_major_version: 2, expected_helm_command_module: Gitlab::Kubernetes::Helm::V22744 is expected to eq Gitlab::Kubernetes::Helm::V22745 helm_major_version: 3, expected_helm_command_module: Gitlab::Kubernetes::Helm::V32746 is expected to eq Gitlab::Kubernetes::Helm::V32747 #status_states2748 returns a hash of state values2749 returns an integer for installed state value2750 .available2751 is expected to contain exactly #<Clusters::Applications::Cilium id: 1, cluster_id: 12, created_at: "2022-11-04 14:25:45.528217258 +0000", updated_at: "2022-11-04 14:25:45.528217258 +0000", status: 3, status_reason: nil> and #<Clusters::Applications::Cilium id: 2, cluster_id: 18, created_at: "2022-11-04 14:25:46.469189559 +0000", updated_at: "2022-11-04 14:25:46.469189559 +0000", status: 5, status_reason: nil>2752 status state machine2753 #make_installing2754 is installing2755 #make_installed2756 is installed2757 does not update the helm version2758 the cluster has no helm installed2759 runs without errors2760 application is updating2761 is updated2762 does not update the helm version2763 the cluster has no helm installed2764 runs without errors2765 #make_errored2766 is errored2767 application is updating2768 is update_errored2769 application is uninstalling2770 is uninstall_errored2771 #make_externally_installed2772 is installed2773 helm record does not exist2774 does not create a helm record2775 helm record exists2776 does not update helm version2777 application is updated2778 is installed2779 application is errored2780 is installed2781 clears #status_reason2782 #make_externally_uninstalled2783 is uninstalled2784 application is updated2785 is uninstalled2786 application is errored2787 is uninstalled2788 clears #status_reason2789 #make_scheduled2790 is scheduled2791 when installed2792 is scheduled2793 when was errored2794 clears #status_reason2795 when was updated_errored2796 clears #status_reason2797 when was uninstall_errored2798 clears #status_reason2799 #make_uninstalling2800 is uninstalling2801 #available?2802 trait: :not_installable, available: false2803 is expected not to be available2804 trait: :installable, available: false2805 is expected not to be available2806 trait: :scheduled, available: false2807 is expected not to be available2808 trait: :installing, available: false2809 is expected not to be available2810 trait: :installed, available: true2811 is expected to be available2812 trait: :updating, available: false2813 is expected not to be available2814 trait: :updated, available: true2815 is expected to be available2816 trait: :errored, available: false2817 is expected not to be available2818 trait: :update_errored, available: false2819 is expected not to be available2820 trait: :uninstalling, available: false2821 is expected not to be available2822 trait: :uninstall_errored, available: false2823 is expected not to be available2824 trait: :uninstalled, available: false2825 is expected not to be available2826 trait: :timed_out, available: false2827 is expected not to be available2828 trait: :externally_installed, available: true2829 is expected to be available2830 #status2831 sets a default status2832 #allowed_to_uninstall?2833 is expected to equal false2834Gitlab::Database::MigrationHelpers2835 overridden dynamic model helpers2836 #define_batchable_model2837 defines a batchable model with the migration connection2838 #each_batch2839 calls each_batch with the migration connection2840 #each_batch_range2841 calls each_batch with the migration connection2842 #remove_timestamps2843 can remove the default timestamps2844 can remove custom timestamps2845 #add_timestamps_with_timezone2846 adds "created_at" and "updated_at" fields with the "datetime_with_timezone" data type2847 can disable the NOT NULL constraint2848 can add just one column2849 can add choice of acceptable columns2850 cannot add unacceptable column names2851 #create_table_with_constraints2852 when no check constraints are defined2853 creates the table as expected2854 when check constraints are defined2855 runs the change within a with_lock_retries2856 when the text_limit is explicity named2857 creates the table as expected2858 when the text_limit is not named2859 creates the table as expected, naming the text limit2860 when with_lock_retries re-runs the block2861 only creates constraint for unique definitions2862 when constraints are given invalid names2863 when the explicit text limit name is not valid2864 raises an error2865 when a check constraint name is not valid2866 raises an error2867 #add_concurrent_index2868 outside a transaction2869 creates the index concurrently2870 creates unique index concurrently2871 unprepares the async index creation2872 when the index exists and is valid2873 does leaves the existing index2874 when an invalid copy of the index exists2875 when the default name is used2876 drops and recreates the index2877 when a custom name is used2878 drops and recreates the index2879 when a qualified table name is used2880 drops and recreates the index2881 when targeting a partition table2882 when allow_partition is true2883 creates the index concurrently2884 when allow_partition is not provided2885 raises ArgumentError2886 inside a transaction2887 raises RuntimeError2888 #remove_concurrent_index2889 outside a transaction2890 by column name2891 removes the index concurrently2892 does nothing if the index does not exist2893 unprepares the async index creation2894 by index name2895 removes the index concurrently by index name2896 does nothing if the index does not exist2897 removes the index with keyword arguments2898 raises an error if the index is blank2899 unprepares the async index creation2900 inside a transaction2901 raises RuntimeError2902 #remove_foreign_key_if_exists2903 when the foreign key does not exist2904 does nothing2905 when the foreign key exists2906 removes the foreign key2907 when the target table is not given2908 passes the options as the second parameter2909 when the reverse_lock_order option is given2910 requests for lock before removing the foreign key2911 when not inside a transaction2912 does not lock2913 #add_concurrent_foreign_key2914 inside a transaction2915 raises an error2916 outside a transaction2917 target column2918 defaults to (id) when no custom target column is provided2919 references the custom taget column when provided2920 ON DELETE statements2921 on_delete: :nullify2922 appends ON DELETE SET NULL statement2923 on_delete: :cascade2924 appends ON DELETE CASCADE statement2925 on_delete: nil2926 appends no ON DELETE statement2927 when no custom key name is supplied2928 creates a concurrent foreign key and validates it2929 does not create a foreign key if it exists already2930 when a custom key name is supplied2931 for creating a new foreign key for a column that does not presently exist2932 creates a new foreign key2933 for creating a duplicate foreign key for a column that presently exists2934 when the supplied key name is the same as the existing foreign key name2935 does not create a new foreign key2936 when the supplied key name is different from the existing foreign key name2937 creates a new foreign key2938 validate option2939 when validate is supplied with a falsey value2940 behaves like skips validation2941 skips validation2942 behaves like skips validation2943 skips validation2944 when validate is supplied with a truthy value2945 behaves like performs validation2946 performs validation2947 behaves like performs validation2948 performs validation2949 when validate is not supplied2950 behaves like performs validation2951 performs validation2952 when the reverse_lock_order flag is set2953 explicitly locks the tables in target-source order2954 when creating foreign key for a group of columns2955 references the custom target columns when provided2956 when foreign key is already defined2957 does not create foreign key2958 #validate_foreign_key2959 when name is provided2960 does not infer the foreign key constraint name2961 when name is not provided2962 infers the foreign key constraint name2963 when the inferred foreign key constraint does not exist2964 raises an error2965 #concurrent_foreign_key_name2966 returns the name for a foreign key2967 when using multiple columns2968 returns the name of the foreign key2969 #foreign_key_exists?2970 compares by target table if no column given2971 without specifying a target table2972 behaves like foreign key checks2973 finds existing foreign keys by column2974 finds existing foreign keys by name2975 finds existing foreign_keys by name and column2976 finds existing foreign_keys by name, column and on_delete2977 finds existing foreign keys by target table only2978 compares by column name if given2979 compares by target column name if given2980 compares by foreign key name if given2981 compares by foreign key name and column if given2982 compares by foreign key name, column and on_delete if given2983 specifying a target table2984 behaves like foreign key checks2985 finds existing foreign keys by column2986 finds existing foreign keys by name2987 finds existing foreign_keys by name and column2988 finds existing foreign_keys by name, column and on_delete2989 finds existing foreign keys by target table only2990 compares by column name if given2991 compares by target column name if given2992 compares by foreign key name if given2993 compares by foreign key name and column if given2994 compares by foreign key name, column and on_delete if given2995 with foreign key using multiple columns2996 finds existing foreign keys by columns2997 finds existing foreign keys by name2998 finds existing foreign_keys by name and column2999 finds existing foreign_keys by name, column and on_delete3000 finds existing foreign keys by target table only3001 compares by column name if given3002 compares by target column name if given3003 compares by foreign key name if given3004 compares by foreign key name and column if given3005 compares by foreign key name, column and on_delete if given3006 #true_value3007 returns the appropriate value3008 #false_value3009 returns the appropriate value3010 #update_column_in_batches3011 when running outside of a transaction3012 updates all the rows in a table3013 updates boolean values correctly3014 when a block is supplied3015 yields an Arel table and query object to the supplied block3016 when the value is Arel.sql (Arel::Nodes::SqlLiteral)3017 updates the value as a SQL expression3018 when the table is write-locked3019 disables the write-lock trigger function3020 raises an error if it does not disable the trigger function3021 when running inside the transaction3022 raises RuntimeError3023 #add_column_with_default3024 delegates to #add_column3025 #rename_column_concurrently3026 in a transaction3027 raises RuntimeError3028 outside a transaction3029 when the column to rename exists3030 renames a column concurrently3031 passes the batch_column_name3032 passes the type_cast_function3033 raises an error with invalid batch_column_name3034 with existing records and type casting3035 copies the value to the new column using the type_cast_function3036 when default is false3037 copies the default to the new column3038 when the table in the other database is write-locked3039 does not raise an error when renaming the column3040 when the column to be renamed does not exist3041 raises an error with appropriate message3042 #undo_rename_column_concurrently3043 reverses the operations of rename_column_concurrently3044 #cleanup_concurrent_column_rename3045 cleans up the renaming procedure3046 #undo_cleanup_concurrent_column_rename3047 in a transaction3048 raises RuntimeError3049 outside a transaction3050 reverses the operations of cleanup_concurrent_column_rename3051 passes the batch_column_name3052 raises an error with invalid batch_column_name3053 when default is false3054 copies the default to the old column3055 #change_column_type_concurrently3056 changes the column type3057 passed the batch column name3058 with type cast3059 changes the column type with casting the value to the new type3060 #undo_change_column_type_concurrently3061 reverses the operations of change_column_type_concurrently3062 #cleanup_concurrent_column_type_change3063 cleans up the type changing procedure3064 #undo_cleanup_concurrent_column_type_change3065 in a transaction3066 raises RuntimeError3067 outside a transaction3068 reverses the operations of cleanup_concurrent_column_type_change3069 passes the type_cast_function, batch_column_name and limit3070 raises an error with invalid batch_column_name3071 #install_rename_triggers3072 installs the triggers3073 #remove_rename_triggers3074 removes the function and trigger3075 #rename_trigger_name3076 returns a String3077 #indexes_for3078 returns the indexes for a column3079 #foreign_keys_for3080 returns the foreign keys for a column3081 #copy_indexes3082 using a regular index using a single column3083 copies the index3084 using a regular index with multiple columns3085 copies the index3086 using an index with a WHERE clause3087 copies the index3088 using an index with a USING clause3089 copies the index3090 using an index with custom operator classes3091 copies the index3092 using an index with multiple columns and custom operator classes3093 copies the index3094 using an index with multiple columns and a custom operator class on the non affected column3095 copies the index3096 using an index of which the name does not contain the source column3097 raises RuntimeError3098 #copy_foreign_keys3099 copies foreign keys from one column to another3100 #column_for3101 returns a column object for an existing column3102 raises an error when a column does not exist3103 #replace_sql3104 builds the sql with correct functions3105 results3106 replaces the correct part of the string3107 sidekiq migration helpers3108 #sidekiq_remove_jobs3109 removes all related job instances from the job class's queue3110 when job instances are in the scheduled set3111 removes all related job instances from the scheduled set3112 when job instances are in the retry set3113 removes all related job instances from the retry set3114 #sidekiq_queue_length3115 when queue is empty3116 returns zero3117 when queue contains jobs3118 returns correct size of the queue3119 #sidekiq_queue_migrate3120 migrates jobs from one sidekiq queue to another3121 #check_trigger_permissions!3122 does nothing when the user has the correct permissions3123 raises RuntimeError when the user does not have the correct permissions3124 #convert_to_bigint_column3125 returns the name of the temporary column used to convert to bigint3126 #convert_to_type_column3127 returns the name of the temporary column used to convert to bigint3128 returns the name of the temporary column used to convert to uuid3129 #create_temporary_columns_and_triggers3130 when no mappings are provided3131 raises an error3132 when any of the mappings does not have the required keys3133 raises an error3134 when the target table does not exist3135 raises an error3136 when the column to migrate does not exist3137 raises an error3138 when old_bigint_column_naming is true3139 calls convert_to_bigint_column3140 when old_bigint_column_naming is false3141 calls convert_to_type_column3142 #initialize_conversion_of_integer_to_bigint3143 when the target table does not exist3144 raises an error3145 when the primary key does not exist3146 raises an error3147 when the column to migrate does not exist3148 raises an error3149 when the column to convert is the primary key3150 creates a not-null bigint column and installs triggers3151 when the column to convert is not the primary key, but non-nullable3152 creates a not-null bigint column and installs triggers3153 when the column to convert is not the primary key, but nullable3154 creates a nullable bigint column and installs triggers3155 when multiple columns are given3156 creates the correct columns and installs the trigger3157 #restore_conversion_of_integer_to_bigint3158 when the target table does not exist3159 raises an error3160 when the column to migrate does not exist3161 raises an error3162 when a single column is given3163 creates the correct columns and installs the trigger3164 when multiple columns are given3165 creates the correct columns and installs the trigger3166 #revert_initialize_conversion_of_integer_to_bigint3167 when single column is given3168 removes column, trigger, and function3169 when multiple columns are given3170 removes column, trigger, and function3171 #backfill_conversion_of_integer_to_bigint3172 when the target table does not exist3173 raises an error3174 when the primary key does not exist3175 raises an error3176 when the column to convert does not exist3177 raises an error3178 when the temporary column does not exist3179 raises an error3180 when the conversion is properly initialized3181 when a single column is being converted3182 creates the batched migration tracking record3183 when multiple columns are being converted3184 creates the batched migration tracking record3185 #revert_backfill_conversion_of_integer_to_bigint3186 when a single column is being converted3187 deletes the batched migration tracking record3188 when a multiple columns are being converted3189 deletes the batched migration tracking record3190 when primary key column has custom name3191 deletes the batched migration tracking record3192 #index_exists_by_name?3193 returns true if an index exists3194 returns false if the index does not exist3195 when an index with a function exists3196 returns true if an index exists3197 when an index exists for a table with the same name in another schema3198 returns false if the index does not exist in the current schema3199 #create_or_update_plan_limit3200 properly escapes names3201 when plan does not exist3202 does not create any plan limits3203 when plan does exist3204 when limit does not exist3205 inserts a new plan limits3206 when limit does exist3207 updates an existing plan limits3208 #backfill_iids3209 generates iids properly for models created after the migration3210 generates iids properly for models created after the migration when iids are backfilled3211 generates iids properly for models created after the migration across multiple projects3212 when the first model is created for a project after the migration3213 generates an iid3214 when a row already has an iid set in the database3215 backfills iids3216 backfills for multiple projects3217 #create_extension3218 executes CREATE EXTENSION statement3219 without proper permissions3220 raises an exception and prints an error message3221 #drop_extension3222 executes CREATE EXTENSION statement3223 without proper permissions3224 raises an exception and prints an error message3225 #add_primary_key_using_index3226 executes the statement to add the primary key3227 when changing the primary key of a given table3228 #swap_primary_key3229 executes statements to swap primary key3230 when new index does not exist3231 raises ActiveRecord::StatementInvalid3232 #unswap_primary_key3233 executes statements to unswap primary key3234 #drop_sequence3235 executes the statement to drop the sequence3236 #add_sequence3237 executes the statement to add the sequence3238 #partition?3239 when a partition table exist3240 when the view postgres_partitions exists3241 calls the view3242 when the view postgres_partitions does not exist3243 does not call the view3244 when a partition table does not exist3245 is expected to be falsey3246Gitlab::GitAccessSnippet3247 when actor is a DeployKey3248 does not allow push and pull access3249 when snippet repository is read-only3250 does not allow push and allows pull access3251 #check_snippet_accessibility!3252 when the snippet exists3253 allows access3254 when the snippet is nil3255 blocks access with "not found"3256 when the snippet does not have a repository3257 blocks access with "not found"3258 terms are enforced3259 blocks access when the user did not accept terms3260 allows access when the user accepted the terms3261 behaves like actor is migration bot3262 when user is the migration bot3263 can perform git operations3264 project snippet accessibility3265 when project is public3266 behaves like checks accessibility3267 anonymous3268 respects accessibility3269 non_member3270 respects accessibility3271 guest3272 respects accessibility3273 reporter3274 respects accessibility3275 maintainer3276 respects accessibility3277 admin3278 respects accessibility3279 author3280 respects accessibility3281 behaves like actor is migration bot3282 when user is the migration bot3283 can perform git operations3284 when project is public but snippet feature is private3285 behaves like checks accessibility3286 anonymous3287 respects accessibility3288 non_member3289 respects accessibility3290 guest3291 respects accessibility3292 reporter3293 respects accessibility3294 maintainer3295 respects accessibility3296 admin3297 respects accessibility3298 author3299 respects accessibility3300 behaves like actor is migration bot3301 when user is the migration bot3302 can perform git operations3303 when project is not accessible3304 anonymous3305 respects accessibility3306 non_member3307 respects accessibility3308 behaves like actor is migration bot3309 when user is the migration bot3310 can perform git operations3311 when project is archived3312 anonymous3313 cannot perform git operations3314 non_member3315 cannot perform git operations3316 guest3317 cannot perform git pushes3318 reporter3319 cannot perform git pushes3320 maintainer3321 cannot perform git pushes3322 author3323 cannot perform git pushes3324 admin3325 when admin mode is enabled3326 cannot perform git pushes3327 when admin mode is disabled3328 cannot perform git operations3329 behaves like actor is migration bot3330 when user is the migration bot3331 can perform git operations3332 when snippet feature is disabled3333 anonymous3334 cannot perform git operations3335 non_member3336 cannot perform git operations3337 author3338 cannot perform git operations3339 admin3340 cannot perform git operations3341 behaves like actor is migration bot3342 when user is the migration bot3343 can perform git operations3344 personal snippet accessibility3345 snippet_level: :public, membership: :admin, admin_mode: true, _expected_count: 13346 respects accessibility3347 behaves like actor is migration bot3348 when user is the migration bot3349 can perform git operations3350 snippet_level: :public, membership: :admin, admin_mode: false, _expected_count: 13351 respects accessibility3352 behaves like actor is migration bot3353 when user is the migration bot3354 can perform git operations3355 snippet_level: :public, membership: :author, admin_mode: nil, _expected_count: 13356 respects accessibility3357 behaves like actor is migration bot3358 when user is the migration bot3359 can perform git operations3360 snippet_level: :public, membership: :non_member, admin_mode: nil, _expected_count: 13361 respects accessibility3362 behaves like actor is migration bot3363 when user is the migration bot3364 can perform git operations3365 snippet_level: :public, membership: :anonymous, admin_mode: nil, _expected_count: 13366 respects accessibility3367 behaves like actor is migration bot3368 when user is the migration bot3369 can perform git operations3370 snippet_level: :internal, membership: :admin, admin_mode: true, _expected_count: 13371 respects accessibility3372 behaves like actor is migration bot3373 when user is the migration bot3374 can perform git operations3375 snippet_level: :internal, membership: :admin, admin_mode: false, _expected_count: 13376 respects accessibility3377 behaves like actor is migration bot3378 when user is the migration bot3379 can perform git operations3380 snippet_level: :internal, membership: :author, admin_mode: nil, _expected_count: 13381 respects accessibility3382 behaves like actor is migration bot3383 when user is the migration bot3384 can perform git operations3385 snippet_level: :internal, membership: :non_member, admin_mode: nil, _expected_count: 13386 respects accessibility3387 behaves like actor is migration bot3388 when user is the migration bot3389 can perform git operations3390 snippet_level: :internal, membership: :anonymous, admin_mode: nil, _expected_count: 03391 respects accessibility3392 behaves like actor is migration bot3393 when user is the migration bot3394 can perform git operations3395 snippet_level: :private, membership: :admin, admin_mode: true, _expected_count: 13396 respects accessibility3397 behaves like actor is migration bot3398 when user is the migration bot3399 can perform git operations3400 snippet_level: :private, membership: :admin, admin_mode: false, _expected_count: 03401 respects accessibility3402 behaves like actor is migration bot3403 when user is the migration bot3404 can perform git operations3405 snippet_level: :private, membership: :author, admin_mode: nil, _expected_count: 13406 respects accessibility3407 behaves like actor is migration bot3408 when user is the migration bot3409 can perform git operations3410 snippet_level: :private, membership: :non_member, admin_mode: nil, _expected_count: 03411 respects accessibility3412 behaves like actor is migration bot3413 when user is the migration bot3414 can perform git operations3415 snippet_level: :private, membership: :anonymous, admin_mode: nil, _expected_count: 03416 respects accessibility3417 behaves like actor is migration bot3418 when user is the migration bot3419 can perform git operations3420 when changes are specific3421 behaves like snippet checks3422 does not raise error if SnippetCheck does not raise error3423 raises error if SnippetCheck raises error3424 sets the file count limit from Snippet class3425 when user is migration bot3426 behaves like snippet checks3427 does not raise error if SnippetCheck does not raise error3428 raises error if SnippetCheck raises error3429 sets the file count limit from Snippet class3430 repository size restrictions3431 when GIT_OBJECT_DIRECTORY_RELATIVE env var is set3432 behaves like a push to repository already over the limit3433 errs3434 behaves like migration bot does not err3435 does not err3436 behaves like a push to repository below the limit3437 does not err3438 behaves like migration bot does not err3439 does not err3440 behaves like a push to repository to make it over the limit3441 errs3442 behaves like migration bot does not err3443 does not err3444 a change with GIT_OBJECT_DIRECTORY_RELATIVE env var unset3445 behaves like a push to repository already over the limit3446 errs3447 behaves like migration bot does not err3448 does not err3449 behaves like a push to repository below the limit3450 does not err3451 behaves like migration bot does not err3452 does not err3453 behaves like a push to repository to make it over the limit3454 errs3455 behaves like migration bot does not err3456 does not err3457NotesFinder3458 #execute3459 finds notes on merge requests3460 finds notes on snippets3461 excludes notes on commits the author can't download3462 succeeds when no notes found3463 when notes filter is present3464 returns only user notes when using only_comments filter3465 returns only system notes when using only_activity filters3466 gets all notes3467 on restricted projects3468 publicly excludes notes on merge requests3469 publicly excludes notes on issues3470 publicly excludes notes on snippets3471 for target type3472 finds only notes for the selected type3473 for target3474 finds all notes3475 finds notes on merge requests3476 finds notes on snippets3477 finds notes on personal snippets3478 raises an exception for an invalid target_type3479 filters out old notes3480 confidential issue notes3481 returns notes if user can see the issue3482 raises an error if user can not see the issue3483 raises an error for project members with guest role3484 for explicit target3485 returns the expected notes3486 returns the expected notes when last_fetched_at is given3487 fails when nil is provided3488 sorting3489 allows sorting3490 defaults to sort by .fresh3491 .search3492 returns notes with matching content3493 returns notes with matching content regardless of the casing3494 returns commit notes user can access3495 confidential issues3496 returns notes with matching content if user can see the issue3497 does not return notes with matching content if user can not see the issue3498 does not return notes with matching content for project members with guest role3499 does not return notes with matching content for unauthenticated users3500 inlines SQL filters on subqueries for performance3501 project_id check3502 search filter3503 #target3504 for a issue target3505 returns the issue3506 for a merge request target3507 returns the merge_request3508 for a snippet target3509 returns the snippet3510 for a commit target3511 returns the commit3512 target_iid3513 finds issues by iid3514 finds merge requests by iid3515 returns nil if both target_id and target_iid are not given3516 prioritizes target_id over target_iid3517Ci::RetryJobService3518 #clone!3519 raises an error when an unexpected class is passed3520 when the job to be cloned is a bridge3521 behaves like clones the job3522 when the user has ability to execute job3523 marks the old job as retried3524 when there is a failed job ToDo for the MR3525 resolves the ToDo for the failed job3526 when the job has needs3527 bulk inserts all the needs3528 when the user does not have permission to execute the job3529 raises an error3530 when given variables3531 does not give variables to the new bridge3532 when the job to be cloned is a build3533 behaves like clones the job3534 when the user has ability to execute job3535 marks the old job as retried3536 when there is a failed job ToDo for the MR3537 resolves the ToDo for the failed job3538 when the job has needs3539 bulk inserts all the needs3540 when the user does not have permission to execute the job3541 raises an error3542 when a build with a deployment is retried3543 creates a new deployment3544 does not create a new environment3545 when a build with a dynamic environment is retried3546 creates a new deployment3547 does not create a new environment3548 when given variables3549 when the build is actionable3550 gives variables to the new build3551 when the build is not actionable3552 does not give variables to the new build3553 when enqueue_if_actionable is provided3554 enqueue_if_actionable: true, trait: nil, enqueue_immediately: false3555 behaves like checks enqueue_immediately?3556 returns enqueue_immediately3557 when feature flag is disabled3558 behaves like checks enqueue_immediately?3559 returns enqueue_immediately3560 enqueue_if_actionable: true, trait: :manual, enqueue_immediately: true3561 behaves like checks enqueue_immediately?3562 returns enqueue_immediately3563 when feature flag is disabled3564 behaves like checks enqueue_immediately?3565 returns enqueue_immediately3566 enqueue_if_actionable: true, trait: :expired_scheduled, enqueue_immediately: true3567 behaves like checks enqueue_immediately?3568 returns enqueue_immediately3569 when feature flag is disabled3570 behaves like checks enqueue_immediately?3571 returns enqueue_immediately3572 enqueue_if_actionable: false, trait: nil, enqueue_immediately: false3573 behaves like checks enqueue_immediately?3574 returns enqueue_immediately3575 when feature flag is disabled3576 behaves like checks enqueue_immediately?3577 returns enqueue_immediately3578 enqueue_if_actionable: false, trait: :manual, enqueue_immediately: false3579 behaves like checks enqueue_immediately?3580 returns enqueue_immediately3581 when feature flag is disabled3582 behaves like checks enqueue_immediately?3583 returns enqueue_immediately3584 enqueue_if_actionable: false, trait: :expired_scheduled, enqueue_immediately: false3585 behaves like checks enqueue_immediately?3586 returns enqueue_immediately3587 when feature flag is disabled3588 behaves like checks enqueue_immediately?3589 returns enqueue_immediately3590 #execute3591 when the job to be retried is a bridge3592 behaves like retries the job3593 enqueues the new job3594 behaves like clones the job3595 when the user has ability to execute job3596 marks the old job as retried3597 when there is a failed job ToDo for the MR3598 resolves the ToDo for the failed job3599 when the job has needs3600 bulk inserts all the needs3601 when the user does not have permission to execute the job3602 raises an error3603 when there are subsequent processables that are skipped3604 resumes pipeline processing in the subsequent stage3605 updates ownership for subsequent builds3606 updates ownership for subsequent bridges3607 when the pipeline has other jobs3608 when job has a nil scheduling_type3609 populates scheduling_type of processables3610 when job has scheduling_type3611 does not call populate_scheduling_type!3612 when the pipeline is a child pipeline and the bridge uses strategy:depend3613 marks the source bridge as pending3614 when given variables3615 does not give variables to the new bridge3616 when the job to be retried is a build3617 behaves like retries the job3618 enqueues the new job3619 behaves like clones the job3620 when the user has ability to execute job3621 marks the old job as retried3622 when there is a failed job ToDo for the MR3623 resolves the ToDo for the failed job3624 when the job has needs3625 bulk inserts all the needs3626 when the user does not have permission to execute the job3627 raises an error3628 when there are subsequent processables that are skipped3629 resumes pipeline processing in the subsequent stage3630 updates ownership for subsequent builds3631 updates ownership for subsequent bridges3632 when the pipeline has other jobs3633 when job has a nil scheduling_type3634 populates scheduling_type of processables3635 when job has scheduling_type3636 does not call populate_scheduling_type!3637 when the pipeline is a child pipeline and the bridge uses strategy:depend3638 marks the source bridge as pending3639 when there are subsequent jobs that are skipped3640 does not cause an N+1 when updating the job ownership3641 when given variables3642 when the build is actionable3643 gives variables to the new build3644 when the build is not actionable3645 does not give variables to the new build3646 when job being retried has jobs in previous stages3647 previous_stage_job_status: :created, after_status: "created"3648 updates the new job status to after_status3649 when feature flag is disabled3650 enqueues the new job3651 previous_stage_job_status: :pending, after_status: "created"3652 updates the new job status to after_status3653 when feature flag is disabled3654 enqueues the new job3655 previous_stage_job_status: :running, after_status: "created"3656 updates the new job status to after_status3657 when feature flag is disabled3658 enqueues the new job3659 previous_stage_job_status: :manual, after_status: "created"3660 updates the new job status to after_status3661 when feature flag is disabled3662 enqueues the new job3663 previous_stage_job_status: :scheduled, after_status: "created"3664 updates the new job status to after_status3665 when feature flag is disabled3666 enqueues the new job3667 previous_stage_job_status: :success, after_status: "pending"3668 updates the new job status to after_status3669 when feature flag is disabled3670 enqueues the new job3671 previous_stage_job_status: :failed, after_status: "skipped"3672 updates the new job status to after_status3673 when feature flag is disabled3674 enqueues the new job3675 previous_stage_job_status: :skipped, after_status: "pending"3676 updates the new job status to after_status3677 when feature flag is disabled3678 enqueues the new job3679 when job being retried has DAG dependencies3680 dag_dependency_status: :created, after_status: "created"3681 updates the new job status to after_status3682 when feature flag is disabled3683 enqueues the new job3684 dag_dependency_status: :pending, after_status: "created"3685 updates the new job status to after_status3686 when feature flag is disabled3687 enqueues the new job3688 dag_dependency_status: :running, after_status: "created"3689 updates the new job status to after_status3690 when feature flag is disabled3691 enqueues the new job3692 dag_dependency_status: :manual, after_status: "created"3693 updates the new job status to after_status3694 when feature flag is disabled3695 enqueues the new job3696 dag_dependency_status: :scheduled, after_status: "created"3697 updates the new job status to after_status3698 when feature flag is disabled3699 enqueues the new job3700 dag_dependency_status: :success, after_status: "pending"3701 updates the new job status to after_status3702 when feature flag is disabled3703 enqueues the new job3704 dag_dependency_status: :failed, after_status: "skipped"3705 updates the new job status to after_status3706 when feature flag is disabled3707 enqueues the new job3708 dag_dependency_status: :skipped, after_status: "skipped"3709 updates the new job status to after_status3710 when feature flag is disabled3711 enqueues the new job3712 when there are other manual/scheduled jobs3713 trait: nil, enqueue_immediately: false3714 retries the given job but not the other manual/scheduled jobs3715 behaves like checks enqueue_immediately?3716 returns enqueue_immediately3717 when feature flag is disabled3718 enqueues the new job3719 behaves like checks enqueue_immediately?3720 returns enqueue_immediately3721 trait: :manual, enqueue_immediately: true3722 retries the given job but not the other manual/scheduled jobs3723 behaves like checks enqueue_immediately?3724 returns enqueue_immediately3725 when feature flag is disabled3726 enqueues the new job3727 behaves like checks enqueue_immediately?3728 returns enqueue_immediately3729 trait: :expired_scheduled, enqueue_immediately: true3730 retries the given job but not the other manual/scheduled jobs3731 behaves like checks enqueue_immediately?3732 returns enqueue_immediately3733 when feature flag is disabled3734 enqueues the new job3735 behaves like checks enqueue_immediately?3736 returns enqueue_immediately3737RepositoryForkWorker3738 modules3739 includes ProjectImportOptions3740 #perform3741 only project ID passed3742 behaves like RepositoryForkWorker performing3743 creates a new repository from a fork3744 protects the default branch3745 flushes various caches3746 handles bad fork3747 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects3748 handles LFS objects link failure3749 when a worker was reset without cleanup3750 creates a new repository from a fork3751 project ID, storage and repo paths passed3752 behaves like RepositoryForkWorker performing3753 creates a new repository from a fork3754 protects the default branch3755 flushes various caches3756 handles bad fork3757 calls Projects::LfsPointers::LfsLinkService#execute with OIDs of source project LFS objects3758 handles LFS objects link failure3759 when a worker was reset without cleanup3760 creates a new repository from a fork3761MergeRequests::CleanupRefsService3762 .schedule3763 creates a merge request cleanup schedule3764 #execute3765 when merge request is closed3766 when closed 14 days ago3767 behaves like service that cleans up merge request refs3768 creates keep around ref and deletes merge request refs3769 when merge request has no head ref3770 does not fail3771 when merge request has merge ref3772 caches merge ref sha and deletes merge ref3773 when merge ref sha cannot be cached3774 behaves like service that does not clean up merge request refs3775 does not delete merge request refs3776 when keep around ref cannot be created3777 behaves like service that does not clean up merge request refs3778 does not delete merge request refs3779 when a git error is raised3780 Gitlab::Git::Repository::GitError3781 behaves like service that does not clean up merge request refs3782 does not delete merge request refs3783 Gitlab::Git::CommandError3784 behaves like service that does not clean up merge request refs3785 does not delete merge request refs3786 when cleanup schedule fails to update3787 creates keep around ref and deletes merge request refs3788 when merge request is not scheduled to be cleaned up yet3789 behaves like service that does not clean up merge request refs3790 does not delete merge request refs3791 when repository no longer exists3792 does not fail and still mark schedule as complete3793 when closed later than 14 days ago3794 behaves like service that does not clean up merge request refs3795 does not delete merge request refs3796 when merge request is merged3797 when merged 14 days ago3798 behaves like service that cleans up merge request refs3799 creates keep around ref and deletes merge request refs3800 when merge request has no head ref3801 does not fail3802 when merge request has merge ref3803 caches merge ref sha and deletes merge ref3804 when merge ref sha cannot be cached3805 behaves like service that does not clean up merge request refs3806 does not delete merge request refs3807 when keep around ref cannot be created3808 behaves like service that does not clean up merge request refs3809 does not delete merge request refs3810 when a git error is raised3811 Gitlab::Git::Repository::GitError3812 behaves like service that does not clean up merge request refs3813 does not delete merge request refs3814 Gitlab::Git::CommandError3815 behaves like service that does not clean up merge request refs3816 does not delete merge request refs3817 when cleanup schedule fails to update3818 creates keep around ref and deletes merge request refs3819 when merge request is not scheduled to be cleaned up yet3820 behaves like service that does not clean up merge request refs3821 does not delete merge request refs3822 when repository no longer exists3823 does not fail and still mark schedule as complete3824 when merged later than 14 days ago3825 behaves like service that does not clean up merge request refs3826 does not delete merge request refs3827 when merge request is not closed nor merged3828 behaves like service that does not clean up merge request refs3829 does not delete merge request refs3830CommitPolicy3831 #rules3832 when project is public3833 when the user is not a project member3834 behaves like can read commit and create a note3835 can read commit3836 can create a note3837 when repository access level is private3838 when the user is not a project member3839 behaves like cannot read commit nor create a note3840 cannot read commit3841 cannot create a note3842 when the user is a direct project member3843 and the user is a developer3844 behaves like can read commit and create a note3845 can read commit3846 can create a note3847 when the user is an inherited member from the group3848 and the user is a guest3849 behaves like can read commit and create a note3850 can read commit3851 can create a note3852 and the user is a reporter3853 behaves like can read commit and create a note3854 can read commit3855 can create a note3856 and the user is a developer3857 behaves like can read commit and create a note3858 can read commit3859 can create a note3860 when project is private3861 when the user is not a project member3862 behaves like cannot read commit nor create a note3863 cannot read commit3864 cannot create a note3865 when the user is a direct project member3866 and the user is a developer3867 behaves like can read commit and create a note3868 can read commit3869 can create a note3870 and the user is a guest3871 cannot download code3872 behaves like cannot read commit nor create a note3873 cannot read commit3874 cannot create a note3875 when the user is an inherited member from the group3876 and the user is a guest3877 behaves like cannot read commit nor create a note3878 cannot read commit3879 cannot create a note3880 and the user is a reporter3881 behaves like can read commit and create a note3882 can read commit3883 can create a note3884 and the user is a developer3885 behaves like can read commit and create a note3886 can read commit3887 can create a note3888Gitlab::SSHPublicKey3889 .technology(name)3890 returns nil for an unrecognised name3891 name: :rsa3892 is expected to eq :rsa3893 is expected to eq :rsa3894 name: :dsa3895 is expected to eq :dsa3896 is expected to eq :dsa3897 name: :ecdsa3898 is expected to eq :ecdsa3899 is expected to eq :ecdsa3900 name: :ed255193901 is expected to eq :ed255193902 is expected to eq :ed255193903 name: :ecdsa_sk3904 is expected to eq :ecdsa_sk3905 is expected to eq :ecdsa_sk3906 name: :ed25519_sk3907 is expected to eq :ed25519_sk3908 is expected to eq :ed25519_sk3909 FIPS mode3910 name: :rsa3911 is expected to eq :rsa3912 is expected to eq :rsa3913 name: :ecdsa3914 is expected to eq :ecdsa3915 is expected to eq :ecdsa3916 name: :ed255193917 is expected to eq :ed255193918 is expected to eq :ed255193919 name: :ecdsa_sk3920 is expected to eq :ecdsa_sk3921 is expected to eq :ecdsa_sk3922 name: :ed25519_sk3923 is expected to eq :ed25519_sk3924 is expected to eq :ed25519_sk3925 .supported_types3926 returns array with the names of supported technologies3927 FIPS mode3928 returns array with the names of supported technologies3929 .supported_sizes(name)3930 name: :rsa, sizes: [1024, 2048, 3072, 4096]3931 is expected to eq [1024, 2048, 3072, 4096]3932 is expected to eq [1024, 2048, 3072, 4096]3933 name: :dsa, sizes: [1024, 2048, 3072]3934 is expected to eq [1024, 2048, 3072]3935 is expected to eq [1024, 2048, 3072]3936 name: :ecdsa, sizes: [256, 384, 521]3937 is expected to eq [256, 384, 521]3938 is expected to eq [256, 384, 521]3939 name: :ed25519, sizes: [256]3940 is expected to eq [256]3941 is expected to eq [256]3942 name: :ecdsa_sk, sizes: [256]3943 is expected to eq [256]3944 is expected to eq [256]3945 name: :ed25519_sk, sizes: [256]3946 is expected to eq [256]3947 is expected to eq [256]3948 FIPS mode3949 name: :rsa, sizes: [3072, 4096]3950 is expected to eq [3072, 4096]3951 is expected to eq [3072, 4096]3952 name: :dsa, sizes: []3953 is expected to eq []3954 is expected to eq []3955 name: :ecdsa, sizes: [256, 384, 521]3956 is expected to eq [256, 384, 521]3957 is expected to eq [256, 384, 521]3958 name: :ed25519, sizes: [256]3959 is expected to eq [256]3960 is expected to eq [256]3961 name: :ecdsa_sk, sizes: [256]3962 is expected to eq [256]3963 is expected to eq [256]3964 name: :ed25519_sk, sizes: [256]3965 is expected to eq [256]3966 is expected to eq [256]3967 .supported_algorithms3968 returns all supported algorithms3969 FIPS mode3970 returns all supported algorithms3971 .supported_algorithms_for_name3972 name: :rsa, algorithms: ["ssh-rsa"]3973 returns all supported algorithms for rsa3974 name: :dsa, algorithms: ["ssh-dss"]3975 returns all supported algorithms for dsa3976 name: :ecdsa, algorithms: ["ecdsa-sha2-nistp256", "ecdsa-sha2-nistp384", "ecdsa-sha2-nistp521"]3977 returns all supported algorithms for ecdsa3978 name: :ed25519, algorithms: ["ssh-ed25519"]3979 returns all supported algorithms for ed255193980 name: :ecdsa_sk, algorithms: ["sk-ecdsa-sha2-nistp256@openssh.com"]3981 returns all supported algorithms for ecdsa_sk3982 name: :ed25519_sk, algorithms: ["sk-ssh-ed25519@openssh.com"]3983 returns all supported algorithms for ed25519_sk3984 FIPS mode3985 name: :rsa, algorithms: ["ssh-rsa"]3986 returns all supported algorithms for rsa3987 name: :dsa, algorithms: ["ssh-dss"]3988 returns all supported algorithms for dsa3989 name: :ecdsa, algorithms: ["ecdsa-sha2-nistp256", "ecdsa-sha2-nistp384", "ecdsa-sha2-nistp521"]3990 returns all supported algorithms for ecdsa3991 name: :ed25519, algorithms: ["ssh-ed25519"]3992 returns all supported algorithms for ed255193993 name: :ecdsa_sk, algorithms: ["sk-ecdsa-sha2-nistp256@openssh.com"]3994 returns all supported algorithms for ecdsa_sk3995 name: :ed25519_sk, algorithms: ["sk-ssh-ed25519@openssh.com"]3996 returns all supported algorithms for ed25519_sk3997 .sanitize(key_content)3998 when key has blank space characters3999 removes the extra blank space characters4000 when key doesn't have blank space characters4001 doesn't modify the content4002 when key is invalid4003 returns the original content4004 #valid?4005 with a valid SSH key4006 factory: :rsa_key_20484007 is expected to be valid4008 when key begins with options4009 is expected to be valid4010 when key is in known_hosts format4011 when key begins with 'example.com'4012 is expected to be valid4013 when key begins with '@revoked other.example.com'4014 is expected to be valid4015 factory: :rsa_key_40964016 is expected to be valid4017 when key begins with options4018 is expected to be valid4019 when key is in known_hosts format4020 when key begins with 'example.com'4021 is expected to be valid4022 when key begins with '@revoked other.example.com'4023 is expected to be valid4024 factory: :rsa_key_51204025 is expected to be valid4026 when key begins with options4027 is expected to be valid4028 when key is in known_hosts format4029 when key begins with 'example.com'4030 is expected to be valid4031 when key begins with '@revoked other.example.com'4032 is expected to be valid4033 factory: :rsa_key_81924034 is expected to be valid4035 when key begins with options4036 is expected to be valid4037 when key is in known_hosts format4038 when key begins with 'example.com'4039 is expected to be valid4040 when key begins with '@revoked other.example.com'4041 is expected to be valid4042 factory: :dsa_key_20484043 is expected to be valid4044 when key begins with options4045 is expected to be valid4046 when key is in known_hosts format4047 when key begins with 'example.com'4048 is expected to be valid4049 when key begins with '@revoked other.example.com'4050 is expected to be valid4051 factory: :ecdsa_key_2564052 is expected to be valid4053 when key begins with options4054 is expected to be valid4055 when key is in known_hosts format4056 when key begins with 'example.com'4057 is expected to be valid4058 when key begins with '@revoked other.example.com'4059 is expected to be valid4060 factory: :ed25519_key_2564061 is expected to be valid4062 when key begins with options4063 is expected to be valid4064 when key is in known_hosts format4065 when key begins with 'example.com'4066 is expected to be valid4067 when key begins with '@revoked other.example.com'4068 is expected to be valid4069 factory: :ecdsa_sk_key_2564070 is expected to be valid4071 when key begins with options4072 is expected to be valid4073 when key is in known_hosts format4074 when key begins with 'example.com'4075 is expected to be valid4076 when key begins with '@revoked other.example.com'4077 is expected to be valid4078 factory: :ed25519_sk_key_2564079 is expected to be valid4080 when key begins with options4081 is expected to be valid4082 when key is in known_hosts format4083 when key begins with 'example.com'4084 is expected to be valid4085 when key begins with '@revoked other.example.com'4086 is expected to be valid4087 with an invalid SSH key4088 is expected not to be valid4089 when an unsupported SSH key algorithm4090 is expected not to be valid4091 #type4092 factory: :rsa_key_2048, type: :rsa4093 is expected to eq :rsa4094 factory: :dsa_key_2048, type: :dsa4095 is expected to eq :dsa4096 factory: :ecdsa_key_256, type: :ecdsa4097 is expected to eq :ecdsa4098 factory: :ed25519_key_256, type: :ed255194099 is expected to eq :ed255194100 factory: :ecdsa_sk_key_256, type: :ecdsa_sk4101 is expected to eq :ecdsa_sk4102 factory: :ed25519_sk_key_256, type: :ed25519_sk4103 is expected to eq :ed25519_sk4104 with an invalid SSH key4105 is expected to be nil4106 when the key is represented by a class that is not in the list of supported technologies4107 raises error4108 when the key is represented by a subclass of the class that is in the list of supported technologies4109 raises error4110 #bits4111 factory: :rsa_key_2048, bits: 20484112 is expected to eq 20484113 factory: :rsa_key_4096, bits: 40964114 is expected to eq 40964115 factory: :rsa_key_5120, bits: 51204116 is expected to eq 51204117 factory: :rsa_key_8192, bits: 81924118 is expected to eq 81924119 factory: :dsa_key_2048, bits: 20484120 is expected to eq 20484121 factory: :ecdsa_key_256, bits: 2564122 is expected to eq 2564123 factory: :ed25519_key_256, bits: 2564124 is expected to eq 2564125 factory: :ecdsa_sk_key_256, bits: 2564126 is expected to eq 2564127 factory: :ed25519_sk_key_256, bits: 2564128 is expected to eq 2564129 with an invalid SSH key4130 is expected to be nil4131 when the key is represented by a class that is not in the list of supported technologies4132 raises error4133 when the key is represented by a subclass of the class that is in the list of supported technologies4134 raises error4135 #banned?4136 key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwRIdDlHaIqZXND/l1vFT7ue3rc/DvXh2yx5EFtuxGQRHVxGMazDhV4vj5ANGXDQwUYI0iZh6aOVrDy8I/y9/y+YDGCvsnqrDbuPDjW26s2bBXWgUPiC93T3TA6L2KOxhVcl7mljEOIYACRHPpJNYVGhinCxDUH9LxMrdNXgP5Ok= mateidu@localhost"4137 is expected to equal true4138 key: "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBnZQ+6nhlPX/JnX5i5hXpljJ89bSnnrsSs51hSPuoJGmoKowBddISK7s10AIpO0xAWGcr8PUr2FOjEBbDHqlRxoXF0Ocms9xv3ql9EYUQ5+U+M6BymWhNTFPOs6gFHUl8Bw3t6c+SRKBpfRFB0yzBj9d093gSdfTAFoz+yLo4vRw=="4139 is expected to equal true4140 key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvIhC5skTzxyHif/7iy3yhxuK6/OB13hjPqrskogkYFrcW8OK4VJT+5+Fx7wd4sQCnVn8rNqahw/x6sfcOMDI/Xvn4yKU4t8TnYf2MpUVr4ndz39L5Ds1n7Si1m2suUNxWbKv58I8+NMhlt2ITraSuTU0NGymWOc8+LNi+MHXdLk= SCCP Superuser"4141 is expected to equal true4142 key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key"4143 is expected to equal true4144 key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwRIdDlHaIqZXND/l1vFT7ue3rc/DvXh2yx5EFtuxGQRHVxGMazDhV4vj5ANGXDQwUYI0iZh6aOVrDy8I/y9/y+YDGCvsnqrDbuPDjW26s2bBXWgUPiC93T3TA6L2KOxhVcl7mljEOIYACRHPpJNYVGhinCxDUH9LxMrdNXgP5Ok= mateidu@localhost"4145 is expected to equal true4146 key: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAn8LoId2N5i28cNKuEWWea3yt0I/LdT/NROrF44WZewtxch+DIwteQhM1qL6EKUSqz3Q2geX1crpOsNnyh67xy5lNo086u/QewOCSRAUGrQCXqFQ4JU8ny/qugWALQHjbIaPHj/3zMK09r4cpTSeAU7CW5nQyTKGmh7v9CAfWfcs= adam@localhost.localdomain"4147 is expected to equal true4148 key: "ssh-dss AAAAB3NzaC1kc3MAAACBAJTDsX+8olPZeyr58g9XE0L8PKT5030NZBPlE7np4hBqx36HoWarWq1Csn8M57dWN9StKbs03k2ggY6sYJK5AW2EWar70um3pYjKQHiZq7mITmitsozFN/K7wu2e2iKRgquUwH5SuYoOJ29n7uhaILXiKZP4/H/dDudqPRSY6tJPAAAAFQDtuWH90mDbU2L/Ms2lfl/cja/wHwAAAIAMBwSHZt2ysOHCFe1WLUvdwVDHUqk3QHTskuuAnMlwMtSvCaUxSatdHahsMZ9VCHjoQUx6j+TcgRLDbMlRLnwUlb6wpniehLBFk+qakGcREqks5NxYzFTJXwROzP72jPvVgQyOZHWq81gCild/ljL7hmrduCqYwxDIz4o7U92UKQAAAIBmhSl9CVPgVMv1xO8DAHVhM1huIIK8mNFrzMJz+JXzBx81ms1kWSeQOC/nraaXFTBlqiQsvB8tzr4xZdbaI/QzVLKNAF5C8BJ4ScNlTIx1aZJwyMil8Nzb+0YAsw5Ja+bEZZvEVlAYnd10qRWrPeEY1txLMmX3wDa+JvJL7fmuBg=="4149 is expected to equal true4150 key: "ssh-dss AAAAB3NzaC1kc3MAAACBAMq5EcIFdfCjJakyQnP/BBp9oc6mpaZVguf0Znp5C40twiG1lASQJZlM1qOB/hkBWYeBCHUkcOLEnVXSZzB62L+W/LGKodqnsiQPRr57AA6jPc6mNBnejHai8cSdAl9n/0s2IQjdcrxM8CPq2uEyfm0J3AV6Lrbbxr5NgE5xxM+DAAAAFQCmFk/M7Rx2jexsJ9COpHkHwUjcNQAAAIAdg18oByp/tjjDKhWhmmv+HbVIROkRqSxBvuEZEmcWlg38mLIT1bydfpSou/V4rI5ctxwCfJ1rRr66pw6GwCrz4fXmyVlhrj7TrktyQ9+zRXhynF4wdNPWErhNHb8tGlSOFiOBcUTlouX3V/ka6Dkd6ZQrZLQFaH+gjfyTZZ82HQAAAIEArsJgp7RLPOsCeLqoia/eljseBFVDazO5Q0ysUotTw9wgXGGVWREwm8wNggFNb9eCiBAAUfVZVfhVAtFT0pBf/eIVLPXyaMw3prBt7LqeBrbagODc3WAAdMTPIdYYcOKgv+YvTXa51zG64v6pQOfS8WXgKCzDl44puXfYeDk5lVQ="4151 is expected to equal true4152 key: "ssh-dss AAAAB3NzaC1kc3MAAACBAKwKBw7D4OA1H/uD4htdh04TBIHdbSjeXUSnWJsce8C0tvoB01Yarjv9TFj+tfeDYVWtUK1DA1JkyqSuoAtDANJzF4I6Isyd0KPrW3dHFTcg6Xlz8d3KEaHokY93NOmB/xWEkhme8b7Q0U2iZie2pgWbTLXV0FA+lhskTtPHW3+VAAAAFQDRyayUlVZKXEweF3bUe03zt9e8VQAAAIAEPK1k3Y6ErAbIl96dnUCnZjuWQ7xXy062pf63QuRWI6LYSscm3f1pEknWUNFr/erQ02pkfi2eP9uHl1TI1ql+UmJX3g3frfssLNZwWXAW0m8PbY3HZSs+f5hevM3ua32pnKDmbQ2WpvKNyycKHi81hSI14xMcdblJolhN5iY8/wAAAIAjEe5+0m/TlBtVkqQbUit+s/g+eB+PFQ+raaQdL1uztW3etntXAPH1MjxsAC/vthWYSTYXORkDFMhrO5ssE2rfg9io0NDyTIZt+VRQMGdi++dH8ptU+ldl2ZejLFdTJFwFgcfXz+iQ1mx6h9TPX1crE1KoMAVOj3yKVfKpLB1EkA== root@lbslave"4153 is expected to equal true4154 key: "ssh-dss AAAAB3NzaC1kc3MAAACBAN3AITryJMQyOKZjAky+mQ/8pOHIlu4q8pzmR0qotKaLm2yye5a0PY2rOaQRAzi7EPheBXbqTb8a8TrHhGXI5P7GUHaJho5HhEnw+5TwAvP72L7LcPwxMxj/rLcR/jV+uLMsVeJVWjwJcUv83yzPXoVjK0hrIm+RLLeuTM+gTylHAAAAFQD5gBdXsXAiTz1atzMg3xDFF1zlowAAAIAlLy6TCMlOBM0IcPsvP/9bEjDj0M8YZazdqt4amO2IaNUPYt9/sIsLOQfxIj8myDK1TOp8NyRJep7V5aICG4f3Q+XktlmLzdWn3sjvbWuIAXe1opjG2T69YhxfHZr8Wn7P4tpCgyqM4uHmUKrfnBzQQ9vkUUWsZoUXM2Z7vUXVfQAAAIAU6eNlphQWDwx0KOBiiYhF9BM6kDbQlyw8333rAG3G4CcjI2G8eYGtpBNliaD185UjCEsjPiudhGil/j4Zt/+VY3aGOLoi8kqXBBc8ZAML9bbkXpyhQhMgwiywx3ciFmvSn2UAin8yurStYPQxtXauZN5PYbdwCHPS7ApIStdpMA== wood@endec1"4155 is expected to equal true4156 key: "ssh-dss AAAAB3NzaC1kc3MAAACBAISAE3CAX4hsxTw0dRc0gx8nQ41r3Vkj9OmG6LGeKWRmpy7C6vaExuupjxid76fd4aS56lCUEEoRlJ3zE93qoK9acI6EGqGQFLuDZ0fqMyRSX+ilf+1HDo/TRyuraggxp9Hj9LMpZVbpFATMm0+d9Xs7eLmaJjuMsowNlOf8NFdHAAAAFQCwdvqOAkR6QhuiAapQ/9iVuR0UAQAAAIBpLMo4dhSeWkChfv659WLPftxRrX/HR8YMD/jqa3R4PsVM2g6dQ1191nHugtdV7uaMeOqOJ/QRWeYM+UYwT0Zgx2LqvgVSjNDfdjk+ZRY8x3SmExFi62mKFoTGSOCXfcAfuanjaoF+sepnaiLUd+SoJShGYHoqR2QWiysTRqknlwAAAIBLEgYmr9XCSqjENFDVQPFELYKT7Zs9J87PjPS1AP0qF1OoRGZ5mefK6X/6VivPAUWmmmev/BuAs8M1HtfGeGGzMzDIiU/WZQ3bScLB1Ykrcjk7TOFD6xrnk/inYAp5l29hjidoAONcXoHmUAMYOKqn63Q2AsDpExVcmfj99/BlpQ=="4157 is expected to equal true4158 with a valid SSH key4159 is expected to equal false4160 with an invalid SSH key4161 is expected to equal false4162 #fingerprint4163 factory: :rsa_key_2048, fingerprint: "58:a8:9d:cd:1f:70:f8:5a:d9:e4:24:8e:da:89:e4:fc"4164 is expected to eq "58:a8:9d:cd:1f:70:f8:5a:d9:e4:24:8e:da:89:e4:fc"4165 factory: :rsa_key_4096, fingerprint: "df:73:db:29:3c:a5:32:cf:09:17:7e:8e:9d:de:d7:f7"4166 is expected to eq "df:73:db:29:3c:a5:32:cf:09:17:7e:8e:9d:de:d7:f7"4167 factory: :rsa_key_5120, fingerprint: "fe:fa:3a:4d:7d:51:ec:bf:c7:64:0c:96:d0:17:8a:d0"4168 is expected to eq "fe:fa:3a:4d:7d:51:ec:bf:c7:64:0c:96:d0:17:8a:d0"4169 factory: :rsa_key_8192, fingerprint: "fb:53:7f:e9:2f:f7:17:aa:c8:32:52:06:8e:05:e2:82"4170 is expected to eq "fb:53:7f:e9:2f:f7:17:aa:c8:32:52:06:8e:05:e2:82"4171 factory: :dsa_key_2048, fingerprint: "c8:85:1e:df:44:0f:20:00:3c:66:57:2b:21:10:5a:27"4172 is expected to eq "c8:85:1e:df:44:0f:20:00:3c:66:57:2b:21:10:5a:27"4173 factory: :ecdsa_key_256, fingerprint: "67:a3:a9:7d:b8:e1:15:d4:80:40:21:34:bb:ed:97:38"4174 is expected to eq "67:a3:a9:7d:b8:e1:15:d4:80:40:21:34:bb:ed:97:38"4175 factory: :ed25519_key_256, fingerprint: "e6:eb:45:8a:3c:59:35:5f:e9:5b:80:12:be:7e:22:73"4176 is expected to eq "e6:eb:45:8a:3c:59:35:5f:e9:5b:80:12:be:7e:22:73"4177 factory: :ecdsa_sk_key_256, fingerprint: "56:b9:bc:99:3d:2f:cf:63:6b:70:d8:f9:40:7e:09:4c"4178 is expected to eq "56:b9:bc:99:3d:2f:cf:63:6b:70:d8:f9:40:7e:09:4c"4179 factory: :ed25519_sk_key_256, fingerprint: "f9:a0:64:0b:4b:72:72:0e:62:92:d7:04:14:74:1c:c9"4180 is expected to eq "f9:a0:64:0b:4b:72:72:0e:62:92:d7:04:14:74:1c:c9"4181 with an invalid SSH key4182 is expected to be nil4183 #fingerprint_sha2564184 factory: :rsa_key_2048, fingerprint_sha256: "SHA256:GdtgO0eHbwLB+mK47zblkoXujkqKRZjgMQrHH6Kks3E"4185 is expected to eq "SHA256:GdtgO0eHbwLB+mK47zblkoXujkqKRZjgMQrHH6Kks3E"4186 factory: :rsa_key_4096, fingerprint_sha256: "SHA256:ByDU7hQ1JB95l6p53rHrffc4eXvEtqGUtQhS+Dhyy7g"4187 is expected to eq "SHA256:ByDU7hQ1JB95l6p53rHrffc4eXvEtqGUtQhS+Dhyy7g"4188 factory: :rsa_key_5120, fingerprint_sha256: "SHA256:PCCupLbFHScm4AbEufbGDvhBU27IM0MVAor715qKQK8"4189 is expected to eq "SHA256:PCCupLbFHScm4AbEufbGDvhBU27IM0MVAor715qKQK8"4190 factory: :rsa_key_8192, fingerprint_sha256: "SHA256:CtHFQAS+9Hb8z4vrv4gVQPsHjNN0WIZhWODaB1mQLs4"4191 is expected to eq "SHA256:CtHFQAS+9Hb8z4vrv4gVQPsHjNN0WIZhWODaB1mQLs4"4192 factory: :dsa_key_2048, fingerprint_sha256: "SHA256:+a3DQ7cU5GM+gaYOfmc0VWNnykHQSuth3VRcCpWuYNI"4193 is expected to eq "SHA256:+a3DQ7cU5GM+gaYOfmc0VWNnykHQSuth3VRcCpWuYNI"4194 factory: :ecdsa_key_256, fingerprint_sha256: "SHA256:C+I5k3D+IGeM6k5iBR1ZsphqTKV+7uvL/XZ5hcrTr7g"4195 is expected to eq "SHA256:C+I5k3D+IGeM6k5iBR1ZsphqTKV+7uvL/XZ5hcrTr7g"4196 factory: :ed25519_key_256, fingerprint_sha256: "SHA256:DCKAjzxWrdOTjaGKBBjtCW8qY5++GaiAJflrHPmp6W0"4197 is expected to eq "SHA256:DCKAjzxWrdOTjaGKBBjtCW8qY5++GaiAJflrHPmp6W0"4198 factory: :ecdsa_sk_key_256, fingerprint_sha256: "SHA256:N0sNKBgWKK8usPuPegtgzHQQA9vQ/dRhAEhwFDAnLA4"4199 is expected to eq "SHA256:N0sNKBgWKK8usPuPegtgzHQQA9vQ/dRhAEhwFDAnLA4"4200 factory: :ed25519_sk_key_256, fingerprint_sha256: "SHA256:U8IKRkIHed6vFMTflwweA3HhIf2DWgZ8EFTm9fgwOUk"4201 is expected to eq "SHA256:U8IKRkIHed6vFMTflwweA3HhIf2DWgZ8EFTm9fgwOUk"4202 with an invalid SSH key4203 is expected to be nil4204 #key_text4205 key_value: "this is not a key"4206 carries the unmodified key data4207 key_value: nil4208 carries the unmodified key data4209Gitlab::Ci::Build::Rules::Rule::Clause::Exists4210 #satisfied_by?4211 when context is Build::Context::Build4212 behaves like an exists rule with a context4213 behaves like a glob matching rule4214 exact top-level match4215 is expected to eq true4216 exact top-level no match4217 is expected to eq false4218 pattern top-level match4219 is expected to eq true4220 pattern top-level no match4221 is expected to eq false4222 exact nested match4223 is expected to eq true4224 exact nested no match4225 is expected to eq false4226 pattern nested match4227 is expected to eq true4228 pattern nested no match4229 is expected to eq false4230 ext top-level match4231 is expected to eq true4232 ext nested no match4233 is expected to eq false4234 ext slash no match4235 is expected to eq false4236 after pattern comparision limit is reached4237 is expected to be truthy4238 when context is Build::Context::Global4239 behaves like an exists rule with a context4240 behaves like a glob matching rule4241 exact top-level match4242 is expected to eq true4243 exact top-level no match4244 is expected to eq false4245 pattern top-level match4246 is expected to eq true4247 pattern top-level no match4248 is expected to eq false4249 exact nested match4250 is expected to eq true4251 exact nested no match4252 is expected to eq false4253 pattern nested match4254 is expected to eq true4255 pattern nested no match4256 is expected to eq false4257 ext top-level match4258 is expected to eq true4259 ext nested no match4260 is expected to eq false4261 ext slash no match4262 is expected to eq false4263 after pattern comparision limit is reached4264 is expected to be truthy4265 when context is Config::External::Context4266 behaves like an exists rule with a context4267 behaves like a glob matching rule4268 exact top-level match4269 is expected to eq true4270 exact top-level no match4271 is expected to eq false4272 pattern top-level match4273 is expected to eq true4274 pattern top-level no match4275 is expected to eq false4276 exact nested match4277 is expected to eq true4278 exact nested no match4279 is expected to eq false4280 pattern nested match4281 is expected to eq true4282 pattern nested no match4283 is expected to eq false4284 ext top-level match4285 is expected to eq true4286 ext nested no match4287 is expected to eq false4288 ext slash no match4289 is expected to eq false4290 after pattern comparision limit is reached4291 is expected to be truthy4292 when context has no project4293 is expected to eq false4294ProcessCommitWorker4295 #perform4296 does not process the commit when the project does not exist4297 does not process the commit when the user does not exist4298 is labeled as idempotent4299 performs multiple times sequentially without raising an exception4300 processes the commit message4301 updates the issue metrics4302 #process_commit_message4303 when pushing to the default branch4304 closes issues that should be closed per the commit message4305 creates cross references4306 when pushing to a non-default branch4307 does not close any issues4308 does not create cross references4309 when commit is a merge request merge commit to the default branch4310 does not close any issues from the commit message4311 still creates cross references4312 #close_issues4313 creates Issue::CloseWorker jobs4314 #update_issue_metrics4315 when commit has issue reference4316 when issue has no first_mentioned_in_commit_at set4317 updates issue metrics4318 when issue has first_mentioned_in_commit_at earlier than given committed_date4319 doesn't update issue metrics4320 when issue has first_mentioned_in_commit_at later than given committed_date4321 doesn't update issue metrics4322 when commit has no issue references4323 doesn't execute any queries with false conditions4324Gitlab::GithubImport::UserFinder4325 #author_id_for4326 with default author_key4327 returns the user ID for the author of an object4328 returns the ID of the project creator if no user ID could be found4329 returns the ID of the ghost user when the object has no user4330 returns the ID of the ghost user when the given object is nil4331 with a non-default author_key4332 when the author_key parameter is :actor4333 behaves like user ID finder4334 returns the user ID for an object4335 when the author_key parameter is :assignee4336 behaves like user ID finder4337 returns the user ID for an object4338 when the author_key parameter is :requested_reviewer4339 behaves like user ID finder4340 returns the user ID for an object4341 when the author_key parameter is :review_requester4342 behaves like user ID finder4343 returns the user ID for an object4344 #assignee_id_for4345 returns the user ID for the assignee of an issuable4346 returns nil if the issuable does not have an assignee4347 #user_id_for4348 returns the user ID for the given user4349 does not fail with empty input4350 #find4351 without a cache4352 finds a GitLab user for a GitHub user ID4353 finds a GitLab user for a GitHub Email address4354 with a cache4355 returns the cached user ID4356 does not query the database if the cache key exists but is empty4357 #find_from_cache4358 retrieves a GitLab user ID for a GitHub user ID4359 retrieves a GitLab user ID for a GitHub Email address4360 does not query the cache for an Email address when none is given4361 #find_id_from_database4362 returns the GitLab user ID for a GitHub user ID4363 returns the GitLab user ID for a GitHub Email address4364 #email_for_github_username4365 when an Email address is cached4366 reads the Email address from the cache4367 when an Email address is not cached4368 retrieves the Email address from the GitHub API4369 caches the Email address when an Email address is available4370 returns nil if the user does not exist4371 shortens the timeout for Email address in cache when an Email address is private/nil from GitHub4372 #cached_id_for_github_id4373 reads a user ID from the cache4374 reads a non existing cache key4375 #cached_id_for_github_email4376 reads a user ID from the cache4377 reads a non existing cache key4378 #id_for_github_id4379 queries and caches the user ID for a given GitHub ID4380 caches a nil value if no ID could be found4381 when importing from github enterprise4382 does not look up the user by external id4383 #id_for_github_email4384 queries and caches the user ID for a given Email address4385 caches a nil value if no ID could be found4386 #query_id_for_github_id4387 returns the ID of the user for the given GitHub user ID4388 returns nil when no user ID could be found4389 #query_id_for_github_email4390 returns the ID of the user for the given Email address4391 returns nil if no user ID could be found4392 #read_id_from_cache4393 reads an ID from the cache4394 reads a cache key with an empty value4395 reads a cache key that does not exist4396Packages::Policies::ProjectPolicy4397 deploy token access4398 when a deploy token with read_package_registry scope4399 is expected to be allowed :read_package4400 behaves like package access with repository disabled4401 is expected to be allowed :read_package4402 when a deploy token with write_package_registry scope4403 is expected to be allowed :read_package4404 behaves like package access with repository disabled4405 is expected to be allowed :read_package4406 read_package4407 project: private_project, package_registry_access_level: 0, current_user: anonymous, expect_to_be_allowed: false4408 is expected to be disallowed :read_package4409 project: private_project, package_registry_access_level: 0, current_user: non_member, expect_to_be_allowed: false4410 is expected to be disallowed :read_package4411 project: private_project, package_registry_access_level: 0, current_user: guest, expect_to_be_allowed: false4412 is expected to be disallowed :read_package4413 project: private_project, package_registry_access_level: 0, current_user: reporter, expect_to_be_allowed: false4414 is expected to be disallowed :read_package4415 project: private_project, package_registry_access_level: 0, current_user: developer, expect_to_be_allowed: false4416 is expected to be disallowed :read_package4417 project: private_project, package_registry_access_level: 0, current_user: maintainer, expect_to_be_allowed: false4418 is expected to be disallowed :read_package4419 project: private_project, package_registry_access_level: 0, current_user: owner, expect_to_be_allowed: false4420 is expected to be disallowed :read_package4421 project: private_project, package_registry_access_level: 0, current_user: admin, expect_to_be_allowed: false4422 is expected to be disallowed :read_package4423 project: private_project, package_registry_access_level: 10, current_user: anonymous, expect_to_be_allowed: false4424 is expected to be disallowed :read_package4425 project: private_project, package_registry_access_level: 10, current_user: non_member, expect_to_be_allowed: false4426 is expected to be disallowed :read_package4427 project: private_project, package_registry_access_level: 10, current_user: guest, expect_to_be_allowed: false4428 is expected to be disallowed :read_package4429 project: private_project, package_registry_access_level: 10, current_user: reporter, expect_to_be_allowed: true4430 is expected to be allowed :read_package4431 project: private_project, package_registry_access_level: 10, current_user: developer, expect_to_be_allowed: true4432 is expected to be allowed :read_package4433 project: private_project, package_registry_access_level: 10, current_user: maintainer, expect_to_be_allowed: true4434 is expected to be allowed :read_package4435 project: private_project, package_registry_access_level: 10, current_user: owner, expect_to_be_allowed: true4436 is expected to be allowed :read_package4437 project: private_project, package_registry_access_level: 10, current_user: admin, expect_to_be_allowed: true4438 is expected to be allowed :read_package4439 project: private_project, package_registry_access_level: 30, current_user: anonymous, expect_to_be_allowed: true4440 is expected to be allowed :read_package4441 project: private_project, package_registry_access_level: 30, current_user: non_member, expect_to_be_allowed: true4442 is expected to be allowed :read_package4443 project: private_project, package_registry_access_level: 30, current_user: guest, expect_to_be_allowed: true4444 is expected to be allowed :read_package4445 project: private_project, package_registry_access_level: 30, current_user: reporter, expect_to_be_allowed: true4446 is expected to be allowed :read_package4447 project: private_project, package_registry_access_level: 30, current_user: developer, expect_to_be_allowed: true4448 is expected to be allowed :read_package4449 project: private_project, package_registry_access_level: 30, current_user: maintainer, expect_to_be_allowed: true4450 is expected to be allowed :read_package4451 project: private_project, package_registry_access_level: 30, current_user: owner, expect_to_be_allowed: true4452 is expected to be allowed :read_package4453 project: private_project, package_registry_access_level: 30, current_user: admin, expect_to_be_allowed: true4454 is expected to be allowed :read_package4455 project: internal_project, package_registry_access_level: 0, current_user: anonymous, expect_to_be_allowed: false4456 is expected to be disallowed :read_package4457 project: internal_project, package_registry_access_level: 0, current_user: non_member, expect_to_be_allowed: false4458 is expected to be disallowed :read_package4459 project: internal_project, package_registry_access_level: 0, current_user: guest, expect_to_be_allowed: false4460 is expected to be disallowed :read_package4461 project: internal_project, package_registry_access_level: 0, current_user: reporter, expect_to_be_allowed: false4462 is expected to be disallowed :read_package4463 project: internal_project, package_registry_access_level: 0, current_user: developer, expect_to_be_allowed: false4464 is expected to be disallowed :read_package4465 project: internal_project, package_registry_access_level: 0, current_user: maintainer, expect_to_be_allowed: false4466 is expected to be disallowed :read_package4467 project: internal_project, package_registry_access_level: 0, current_user: owner, expect_to_be_allowed: false4468 is expected to be disallowed :read_package4469 project: internal_project, package_registry_access_level: 0, current_user: admin, expect_to_be_allowed: false4470 is expected to be disallowed :read_package4471 project: internal_project, package_registry_access_level: 20, current_user: anonymous, expect_to_be_allowed: false4472 is expected to be disallowed :read_package4473 project: internal_project, package_registry_access_level: 20, current_user: non_member, expect_to_be_allowed: true4474 is expected to be allowed :read_package4475 project: internal_project, package_registry_access_level: 20, current_user: guest, expect_to_be_allowed: true4476 is expected to be allowed :read_package4477 project: internal_project, package_registry_access_level: 20, current_user: reporter, expect_to_be_allowed: true4478 is expected to be allowed :read_package4479 project: internal_project, package_registry_access_level: 20, current_user: developer, expect_to_be_allowed: true4480 is expected to be allowed :read_package4481 project: internal_project, package_registry_access_level: 20, current_user: maintainer, expect_to_be_allowed: true4482 is expected to be allowed :read_package4483 project: internal_project, package_registry_access_level: 20, current_user: owner, expect_to_be_allowed: true4484 is expected to be allowed :read_package4485 project: internal_project, package_registry_access_level: 20, current_user: admin, expect_to_be_allowed: true4486 is expected to be allowed :read_package4487 project: internal_project, package_registry_access_level: 30, current_user: anonymous, expect_to_be_allowed: true4488 is expected to be allowed :read_package4489 project: internal_project, package_registry_access_level: 30, current_user: non_member, expect_to_be_allowed: true4490 is expected to be allowed :read_package4491 project: internal_project, package_registry_access_level: 30, current_user: guest, expect_to_be_allowed: true4492 is expected to be allowed :read_package4493 project: internal_project, package_registry_access_level: 30, current_user: reporter, expect_to_be_allowed: true4494 is expected to be allowed :read_package4495 project: internal_project, package_registry_access_level: 30, current_user: developer, expect_to_be_allowed: true4496 is expected to be allowed :read_package4497 project: internal_project, package_registry_access_level: 30, current_user: maintainer, expect_to_be_allowed: true4498 is expected to be allowed :read_package4499 project: internal_project, package_registry_access_level: 30, current_user: owner, expect_to_be_allowed: true4500 is expected to be allowed :read_package4501 project: internal_project, package_registry_access_level: 30, current_user: admin, expect_to_be_allowed: true4502 is expected to be allowed :read_package4503 project: public_project, package_registry_access_level: 0, current_user: anonymous, expect_to_be_allowed: false4504 is expected to be disallowed :read_package4505 project: public_project, package_registry_access_level: 0, current_user: non_member, expect_to_be_allowed: false4506 is expected to be disallowed :read_package4507 project: public_project, package_registry_access_level: 0, current_user: guest, expect_to_be_allowed: false4508 is expected to be disallowed :read_package4509 project: public_project, package_registry_access_level: 0, current_user: reporter, expect_to_be_allowed: false4510 is expected to be disallowed :read_package4511 project: public_project, package_registry_access_level: 0, current_user: developer, expect_to_be_allowed: false4512 is expected to be disallowed :read_package4513 project: public_project, package_registry_access_level: 0, current_user: maintainer, expect_to_be_allowed: false4514 is expected to be disallowed :read_package4515 project: public_project, package_registry_access_level: 0, current_user: owner, expect_to_be_allowed: false4516 is expected to be disallowed :read_package4517 project: public_project, package_registry_access_level: 0, current_user: admin, expect_to_be_allowed: false4518 is expected to be disallowed :read_package4519 project: public_project, package_registry_access_level: 30, current_user: anonymous, expect_to_be_allowed: true4520 is expected to be allowed :read_package4521 project: public_project, package_registry_access_level: 30, current_user: non_member, expect_to_be_allowed: true4522 is expected to be allowed :read_package4523 project: public_project, package_registry_access_level: 30, current_user: guest, expect_to_be_allowed: true4524 is expected to be allowed :read_package4525 project: public_project, package_registry_access_level: 30, current_user: reporter, expect_to_be_allowed: true4526 is expected to be allowed :read_package4527 project: public_project, package_registry_access_level: 30, current_user: developer, expect_to_be_allowed: true4528 is expected to be allowed :read_package4529 project: public_project, package_registry_access_level: 30, current_user: maintainer, expect_to_be_allowed: true4530 is expected to be allowed :read_package4531 project: public_project, package_registry_access_level: 30, current_user: owner, expect_to_be_allowed: true4532 is expected to be allowed :read_package4533 project: public_project, package_registry_access_level: 30, current_user: admin, expect_to_be_allowed: true4534 is expected to be allowed :read_package4535 with feature flag disabled4536 project: private_project, current_user: anonymous, expect_to_be_allowed: false4537 is expected to be disallowed :read_package4538 project: private_project, current_user: non_member, expect_to_be_allowed: false4539 is expected to be disallowed :read_package4540 project: private_project, current_user: guest, expect_to_be_allowed: false4541 is expected to be disallowed :read_package4542 project: internal_project, current_user: anonymous, expect_to_be_allowed: false4543 is expected to be disallowed :read_package4544 project: public_project, current_user: admin, expect_to_be_allowed: true4545 is expected to be allowed :read_package4546 project: public_project, current_user: owner, expect_to_be_allowed: true4547 is expected to be allowed :read_package4548 project: public_project, current_user: maintainer, expect_to_be_allowed: true4549 is expected to be allowed :read_package4550 project: public_project, current_user: developer, expect_to_be_allowed: true4551 is expected to be allowed :read_package4552 project: public_project, current_user: reporter, expect_to_be_allowed: true4553 is expected to be allowed :read_package4554 project: public_project, current_user: guest, expect_to_be_allowed: true4555 is expected to be allowed :read_package4556 project: public_project, current_user: non_member, expect_to_be_allowed: true4557 is expected to be allowed :read_package4558 project: public_project, current_user: anonymous, expect_to_be_allowed: true4559 is expected to be allowed :read_package4560 with admin4561 behaves like package access with repository disabled4562 is expected to be allowed :read_package4563ResourceLabelEvent4564 behaves like having unique enum values4565 has unique values in "action"4566 behaves like a resource event4567 importable4568 is expected to respond to #importing?4569 is expected to respond to #imported?4570 validations4571 is expected not to allow :user to be ‹nil›4572 when importing4573 is expected to allow :user to be ‹nil›4574 associations4575 is expected to belong to user required: false4576 .created_after4577 returns the expected events4578 returns no events if time is after last record time4579 behaves like a resource event for issues4580 associations4581 is expected to belong to issue required: false4582 .by_issue4583 returns the expected records for an issue with events4584 returns the expected records for an issue with no events4585 .by_issue_ids4586 returns the expected events4587 .by_created_at_earlier_or_equal_to4588 returns the expected events4589 returns the expected events4590 #issuable4591 returns the expected issuable4592 behaves like a resource event for merge requests4593 associations4594 is expected to belong to merge_request required: false4595 .by_merge_request4596 returns the expected records for an issue with events4597 returns the expected records for an issue with no events4598 #issuable4599 returns the expected issuable4600 associations4601 is expected to belong to label required: false4602 validations4603 is expected to be valid4604 Issuable validation4605 is invalid if issue_id and merge_request_id are missing4606 is invalid if issue_id and merge_request_id are set4607 is valid if only issue_id is set4608 is valid if only merge_request_id is set4609 callbacks4610 #expire_etag_cache4611 expires resource note etag cache on event save4612 expires resource note etag cache on event destroy4613 #outdated_markdown?4614 returns true if label is missing and reference is not empty4615 returns true if reference is not set yet4616 returns true if markdown is outdated4617 returns false if label and reference are set4618 .visible_to_user?4619 returns events with labels accessible by user4620 filters events with public project labels if issues and MRs are private4621 filters events with project labels not accessible by user4622 filters events with group labels not accessible by user4623 #discussion_id4624 generates different discussion ID for events created milliseconds apart4625LabelsHelper4626 #show_label_issuables_link?4627 with a project label4628 when asking for an issue link4629 behaves like a valid response to show_label_issuables_link?4630 when asking for a issues link4631 when issues are enabled for the project4632 is expected to equal true4633 when issues are disabled for the project4634 is expected to equal false4635 when asking for a merge requests link4636 behaves like a valid response to show_label_issuables_link?4637 when asking for a merge_requests link4638 when merge_requests are enabled for the project4639 is expected to equal true4640 when merge_requests are disabled for the project4641 is expected to equal false4642 with a group label4643 when asking for an issue link4644 behaves like a valid response to show_label_issuables_link?4645 when asking for a issues link4646 when issues are enabled for the project4647 is expected to equal true4648 when issues are disabled for the project4649 is expected to equal true4650 when asking for a merge requests link4651 behaves like a valid response to show_label_issuables_link?4652 when asking for a merge_requests link4653 when merge_requests are enabled for the project4654 is expected to equal true4655 when merge_requests are disabled for the project4656 is expected to equal true4657 link_to_label4658 without subject4659 uses the label's project4660 with a project as subject4661 links to project issues page4662 with a group as subject4663 links to group issues page4664 with a type argument4665 set to issue4666 links to correct page4667 set to issue4668 links to correct page4669 set to merge_request4670 links to correct page4671 set to merge_request4672 links to correct page4673 with a tooltip argument4674 set to false4675 does not include the has-tooltip class4676 with block4677 passes the block to link_to4678 without block4679 uses render_colored_label as the link content4680 render_label_text4681 html escapes the bg_color correctly4682 text_color_for_bg4683 uses light text on dark backgrounds4684 uses dark text on light backgrounds4685 supports RGB triplets4686 create_label_title4687 with a group as subject4688 returns "Create group label"4689 with a project as subject4690 returns "Create project label"4691 with no subject4692 returns "Create new label"4693 manage_labels_title4694 with a group as subject4695 returns "Manage group labels"4696 with a project as subject4697 returns "Manage project labels"4698 with no subject4699 returns "Manage labels"4700 view_labels_title4701 with a group as subject4702 returns "View group labels"4703 with a project as subject4704 returns "View project labels"4705 with no subject4706 returns "View labels"4707 labels_filter_path4708 links to the dashboard labels page4709 links to the group labels page4710 links to the project labels page4711 supports json format4712 presented_labels_sorted_by_title4713 sorts labels alphabetically4714 returns an array of label presenters4715 #label_status_tooltip4716 with a project label4717 is expected to eq "Subscribe at project level"4718 with a group label4719 is expected to eq "Subscribe at group level"4720 #label_tooltip_title4721 removes HTML4722 #show_labels_full_path?4723 within a project4724 returns truthy4725 within a subgroup4726 returns truthy4727 within a group4728 returns falsey4729 within the admin area4730 returns falsey4731 #wrap_label_html4732 does not include the color4733Gitlab::Database::WithLockRetries4734 #run4735 requires block4736 when DISABLE_LOCK_RETRIES is set4737 executes the passed block without retrying4738 when lock retry is enabled4739 lock_fiber4740 acquires lock successfully4741 after 3 iterations4742 behaves like retriable exclusive lock on `projects`4743 succeeds executing the given block4744 setting the idle transaction timeout4745 when there is no outer transaction: disable_ddl_transaction! is set in the migration4746 does not disable the idle transaction timeout4747 when there is outer transaction: disable_ddl_transaction! is not set in the migration4748 disables the idle transaction timeout so the code can sleep and retry4749 after the retries are exhausted4750 when there is no outer transaction: disable_ddl_transaction! is set in the migration4751 does not disable the lock_timeout4752 when there is outer transaction: disable_ddl_transaction! is not set in the migration4753 disables the lock_timeout4754 after the retries, without setting lock_timeout4755 behaves like retriable exclusive lock on `projects`4756 succeeds executing the given block4757 after the retries, when requested to raise an error4758 raises an error instead of waiting indefinitely for the lock4759 when statement timeout is reached4760 raises QueryCanceled error4761 restore local database variables4762 is expected not to change `connection.execute("SHOW lock_timeout").to_a`4763 is expected not to change `connection.execute("SHOW idle_in_transaction_session_timeout").to_a`4764 casting durations correctly4765 executes `SET LOCAL lock_timeout` using the configured timeout value in milliseconds4766 calls `sleep` after the first iteration fails, using the configured sleep time4767 Stop using subtransactions - allow_savepoints: false4768 prevents running inside already open transaction4769 does not raise the error if not inside open transaction4770DiffsEntity4771 as json4772 contains needed attributes4773 broken merge request4774 renders without errors4775 when a commit_id is passed4776 when the passed commit is not the first or last in the group4777 includes commit references for previous and next4778 when the passed commit is the first in the group4779 includes commit references for nil and previous commit4780 when the passed commit is the last in the group4781 includes commit references for the next and nil4782 diff_files4783 serializes diff files using DiffFileEntity4784 when merge_conflicts_in_diff is true4785 serializes diff files with conflicts4786Projects::GitDeduplicationService4787 #execute4788 when there is not already a lease4789 when the project does not have a pool repository4790 calls disconnect_git_alternates4791 when the project has a pool repository4792 links the repository to the object pool4793 does not link the repository to the object pool if they are not on the same storage4794 when the project is a source project4795 calls fetch4796 does not call fetch if git objects are not poolable4797 does not call fetch if pool and project are not on the same storage4798 when visibility level of the project4799 is private4800 does not call fetch4801 is public4802 calls fetch4803 is internal4804 calls fetch4805 when the repository access level4806 is private4807 does not call fetch4808 is greater than private4809 calls fetch4810 when a lease is already out4811 fails when a lease is already out4812Jira::Requests::Projects::ListService4813 #execute4814 without jira_integration4815 returns an error response4816 when jira_integration is nil4817 returns an error response4818 with jira_integration4819 when validations and params are ok4820 behaves like a service that handles Jira API errors4821 allows unknown exception classes to bubble4822 logs the error4823 exception_class: Errno::ECONNRESET, exception_message: "", expected_message: "A connection error occurred"4824 handles the error4825 exception_class: Errno::ECONNREFUSED, exception_message: "", expected_message: "A connection error occurred"4826 handles the error4827 exception_class: Errno::ETIMEDOUT, exception_message: "", expected_message: "A timeout error occurred"4828 handles the error4829 exception_class: Timeout::Error, exception_message: "", expected_message: "A timeout error occurred"4830 handles the error4831 exception_class: URI::InvalidURIError, exception_message: "", expected_message: "The Jira API URL"4832 handles the error4833 exception_class: SocketError, exception_message: "", expected_message: "The Jira API URL"4834 handles the error4835 exception_class: OpenSSL::SSL::SSLError, exception_message: "foo", expected_message: "An SSL error occurred while connecting to Jira: foo"4836 handles the error4837 exception_class: JIRA::HTTPError, exception_message: "Unauthorized", expected_message: "The credentials for accessing Jira are not valid"4838 handles the error4839 exception_class: JIRA::HTTPError, exception_message: "Forbidden", expected_message: "The credentials for accessing Jira are not allowed"4840 handles the error4841 exception_class: JIRA::HTTPError, exception_message: "Bad Request", expected_message: "An error occurred while requesting data from Jira"4842 handles the error4843 exception_class: JIRA::HTTPError, exception_message: "Foo", expected_message: "An error occurred while requesting data from Jira."4844 handles the error4845 exception_class: JIRA::HTTPError, exception_message: "{\"errorMessages\":[\"foo\",\"bar\"]}", expected_message: "An error occurred while requesting data from Jira: foo and bar"4846 handles the error4847 exception_class: JIRA::HTTPError, exception_message: "{\"errorMessages\":[\"\"]}", expected_message: "An error occurred while requesting data from Jira."4848 handles the error4849 when the JSON in JIRA::HTTPError is unsafe4850 when JSON is malformed4851 returns the default error message4852 when JSON contains tags4853 sanitizes it4854 when jira runs on a subpath4855 takes the subpath into account4856 when the request does not return any values4857 returns a paylod with no projects returned4858 when the request returns values4859 returns a paylod with Jira projects4860 when filtering projects by name4861 returns a paylod with Jira procjets4862Gitlab::HashedStorage::Migrator4863 #bulk_schedule_migration4864 schedules job to HashedStorage::MigratorWorker4865 #bulk_schedule_rollback4866 schedules job to HashedStorage::RollbackerWorker4867 #bulk_migrate4868 enqueue jobs to HashedStorage::ProjectMigrateWorker4869 rescues and log exceptions4870 delegates each project in specified range to #migrate4871 has all projects migrated and set as writable4872 #bulk_rollback4873 enqueue jobs to HashedStorage::ProjectRollbackWorker4874 rescues and log exceptions4875 delegates each project in specified range to #rollback4876 has all projects rolledback and set as writable4877 #migrate4878 enqueues project migration job4879 rescues and log exceptions4880 migrates project storage4881 has migrated project set as writable4882 when project is already on hashed storage4883 doesnt enqueue any migration job4884 returns false4885 #rollback4886 enqueues project rollback job4887 rescues and log exceptions4888 rolls-back project storage4889 has rolled-back project set as writable4890 when project is already on legacy storage4891 doesnt enqueue any rollback job4892 returns false4893 migration_pending?4894 returns true when there are MigratorWorker jobs scheduled4895 returns true when there are ProjectMigrateWorker jobs scheduled4896 returns false when queues are empty4897 rollback_pending?4898 returns true when there are RollbackerWorker jobs scheduled4899 returns true when there are jobs scheduled4900 returns false when queues are empty4901 abort_rollback!4902 removes any rollback related scheduled job4903Gitlab::UrlSanitizer4904 .sanitize4905 input: "http://user:pass@test.com/root/repoC.git/", output: "http://*****:*****@test.com/root/repoC.git/"4906 is expected to include "repository 'http://*****:*****@test.com/root/repoC.git/' not found"4907 input: "https://user:pass@test.com/root/repoA.git/", output: "https://*****:*****@test.com/root/repoA.git/"4908 is expected to include "repository 'https://*****:*****@test.com/root/repoA.git/' not found"4909 input: "ssh://user@host.test/path/to/repo.git", output: "ssh://*****@host.test/path/to/repo.git"4910 is expected to include "repository 'ssh://*****@host.test/path/to/repo.git' not found"4911 input: "git://user:pass@host.test/path/to/repo.git", output: "git://*****:*****@host.test/path/to/repo.git"4912 is expected to include "repository 'git://*****:*****@host.test/path/to/repo.git' not found"4913 input: "git://host.test/path/to/repo.git", output: "git://host.test/path/to/repo.git"4914 is expected to include "repository 'git://host.test/path/to/repo.git' not found"4915 input: "user@server:project.git", output: "user@server:project.git"4916 is expected to include "repository 'user@server:project.git' not found"4917 input: "user:pass@server:project.git", output: "user:pass@server:project.git"4918 is expected to include "repository 'user:pass@server:project.git' not found"4919 input: "ssh://", output: ""4920 is expected to include "repository '' not found"4921 .valid?4922 value: false, url: nil4923 is expected to eq false4924 value: false, url: ""4925 is expected to eq false4926 value: false, url: "123://invalid:url"4927 is expected to eq false4928 value: false, url: "valid@project:url.git"4929 is expected to eq false4930 value: false, url: "valid:pass@project:url.git"4931 is expected to eq false4932 value: false, url: ["test", "array"]4933 is expected to eq false4934 value: true, url: "ssh://example.com"4935 is expected to eq true4936 value: true, url: "ssh://:@example.com"4937 is expected to eq true4938 value: true, url: "ssh://foo@example.com"4939 is expected to eq true4940 value: true, url: "ssh://foo:bar@example.com"4941 is expected to eq true4942 value: true, url: "ssh://foo:bar@example.com/group/group/project.git"4943 is expected to eq true4944 value: true, url: "git://example.com/group/group/project.git"4945 is expected to eq true4946 value: true, url: "git://foo:bar@example.com/group/group/project.git"4947 is expected to eq true4948 value: true, url: "http://foo:bar@example.com/group/group/project.git"4949 is expected to eq true4950 value: true, url: "https://foo:bar@example.com/group/group/project.git"4951 is expected to eq true4952 .valid_web?4953 value: false, url: nil4954 is expected to eq false4955 value: false, url: ""4956 is expected to eq false4957 value: false, url: "123://invalid:url"4958 is expected to eq false4959 value: false, url: "valid@project:url.git"4960 is expected to eq false4961 value: false, url: "valid:pass@project:url.git"4962 is expected to eq false4963 value: false, url: ["test", "array"]4964 is expected to eq false4965 value: false, url: "ssh://example.com"4966 is expected to eq false4967 value: false, url: "ssh://:@example.com"4968 is expected to eq false4969 value: false, url: "ssh://foo@example.com"4970 is expected to eq false4971 value: false, url: "ssh://foo:bar@example.com"4972 is expected to eq false4973 value: false, url: "ssh://foo:bar@example.com/group/group/project.git"4974 is expected to eq false4975 value: false, url: "git://example.com/group/group/project.git"4976 is expected to eq false4977 value: false, url: "git://foo:bar@example.com/group/group/project.git"4978 is expected to eq false4979 value: true, url: "http://foo:bar@example.com/group/group/project.git"4980 is expected to eq true4981 value: true, url: "https://foo:bar@example.com/group/group/project.git"4982 is expected to eq true4983 #sanitized_url4984 credentials in hash4985 username: "foo", password: "bar"4986 is expected to eq "http://example.com"4987 username: "foo", password: ""4988 is expected to eq "http://example.com"4989 username: "foo", password: nil4990 is expected to eq "http://example.com"4991 username: "", password: "bar"4992 is expected to eq "http://example.com"4993 username: "", password: ""4994 is expected to eq "http://example.com"4995 username: "", password: nil4996 is expected to eq "http://example.com"4997 username: nil, password: "bar"4998 is expected to eq "http://example.com"4999 username: nil, password: ""5000 is expected to eq "http://example.com"5001 username: nil, password: nil5002 is expected to eq "http://example.com"5003 credentials in URL5004 userinfo: "foo:bar@"5005 is expected to eq "http://example.com"5006 userinfo: "foo@"5007 is expected to eq "http://example.com"5008 userinfo: ":bar@"5009 is expected to eq "http://example.com"5010 userinfo: ":@"5011 is expected to eq "http://example.com"5012 userinfo: "@"5013 is expected to eq "http://example.com"5014 userinfo: nil5015 is expected to eq "http://example.com"5016 #credentials5017 credentials in hash5018 overrides URL-provided credentials5019 credentials in URL5020 url: "http://foo:bar@example.com", credentials: {:user=>"foo", :password=>"bar"}5021 is expected to eq {:password=>"bar", :user=>"foo"}5022 url: "http://foo:bar:baz@example.com", credentials: {:user=>"foo", :password=>"bar:baz"}5023 is expected to eq {:password=>"bar:baz", :user=>"foo"}5024 url: "http://:bar@example.com", credentials: {:user=>nil, :password=>"bar"}5025 is expected to eq {:password=>"bar", :user=>nil}5026 url: "http://foo:@example.com", credentials: {:user=>"foo", :password=>nil}5027 is expected to eq {:password=>nil, :user=>"foo"}5028 url: "http://foo@example.com", credentials: {:user=>"foo", :password=>nil}5029 is expected to eq {:password=>nil, :user=>"foo"}5030 url: "http://:@example.com", credentials: {:user=>nil, :password=>nil}5031 is expected to eq {:password=>nil, :user=>nil}5032 url: "http://@example.com", credentials: {:user=>nil, :password=>nil}5033 is expected to eq {:password=>nil, :user=>nil}5034 url: "http://example.com", credentials: {:user=>nil, :password=>nil}5035 is expected to eq {:password=>nil, :user=>nil}5036 url: nil, credentials: {:user=>nil, :password=>nil}5037 is expected to eq {:password=>nil, :user=>nil}5038 url: "", credentials: {:user=>nil, :password=>nil}5039 is expected to eq {:password=>nil, :user=>nil}5040 url: "no", credentials: {:user=>nil, :password=>nil}5041 is expected to eq {:password=>nil, :user=>nil}5042 with mixed credentials5043 url: "http://a@example.com", credentials: {:password=>"d"}, result: {:user=>"a", :password=>"d"}5044 is expected to eq {:password=>"d", :user=>"a"}5045 url: "http://a:b@example.com", credentials: {:password=>"d"}, result: {:user=>"a", :password=>"d"}5046 is expected to eq {:password=>"d", :user=>"a"}5047 url: "http://:b@example.com", credentials: {:password=>"d"}, result: {:user=>nil, :password=>"d"}5048 is expected to eq {:password=>"d", :user=>nil}5049 url: "http://a@example.com", credentials: {:user=>"c"}, result: {:user=>"c", :password=>nil}5050 is expected to eq {:password=>nil, :user=>"c"}5051 url: "http://a:b@example.com", credentials: {:user=>"c"}, result: {:user=>"c", :password=>"b"}5052 is expected to eq {:password=>"b", :user=>"c"}5053 url: "http://a:b@example.com", credentials: {:user=>""}, result: {:user=>"a", :password=>"b"}5054 is expected to eq {:password=>"b", :user=>"a"}5055 #user5056 credentials in hash5057 overrides URL-provided user5058 credentials in URL5059 url: "http://foo:bar@example.com", user: "foo"5060 is expected to eq "foo"5061 url: "http://foo:bar:baz@example.com", user: "foo"5062 is expected to eq "foo"5063 url: "http://:bar@example.com", user: nil5064 is expected to eq nil5065 url: "http://foo:@example.com", user: "foo"5066 is expected to eq "foo"5067 url: "http://foo@example.com", user: "foo"5068 is expected to eq "foo"5069 url: "http://:@example.com", user: nil5070 is expected to eq nil5071 url: "http://@example.com", user: nil5072 is expected to eq nil5073 url: "http://example.com", user: nil5074 is expected to eq nil5075 url: nil, user: nil5076 is expected to eq nil5077 url: "", user: nil5078 is expected to eq nil5079 url: "no", user: nil5080 is expected to eq nil5081 #full_url5082 credentials in hash5083 credentials: {:user=>"foo", :password=>"bar"}, userinfo: "foo:bar@"5084 is expected to eq "http://foo:bar@example.com"5085 credentials: {:user=>"foo", :password=>""}, userinfo: "foo@"5086 is expected to eq "http://foo@example.com"5087 credentials: {:user=>"foo", :password=>nil}, userinfo: "foo@"5088 is expected to eq "http://foo@example.com"5089 credentials: {:user=>"", :password=>"bar"}, userinfo: ":bar@"5090 is expected to eq "http://:bar@example.com"5091 credentials: {:user=>"", :password=>""}, userinfo: nil5092 is expected to eq "http://example.com"5093 credentials: {:user=>"", :password=>nil}, userinfo: nil5094 is expected to eq "http://example.com"5095 credentials: {:user=>nil, :password=>"bar"}, userinfo: ":bar@"5096 is expected to eq "http://:bar@example.com"5097 credentials: {:user=>nil, :password=>""}, userinfo: nil5098 is expected to eq "http://example.com"5099 credentials: {:user=>nil, :password=>nil}, userinfo: nil5100 is expected to eq "http://example.com"5101 credentials in URL5102 input: nil, output: ""5103 is expected to eq ""5104 input: "", output: :same5105 is expected to eq ""5106 input: "git@example.com", output: :same5107 is expected to eq "git@example.com"5108 input: "http://example.com", output: :same5109 is expected to eq "http://example.com"5110 input: "http://foo@example.com", output: :same5111 is expected to eq "http://foo@example.com"5112 input: "http://foo:@example.com", output: "http://foo@example.com"5113 is expected to eq "http://foo@example.com"5114 input: "http://:bar@example.com", output: :same5115 is expected to eq "http://:bar@example.com"5116 input: "http://foo:bar@example.com", output: :same5117 is expected to eq "http://foo:bar@example.com"5118 input: "http://foo:g p@example.com", output: "http://foo:g%20p@example.com"5119 is expected to eq "http://foo:g%20p@example.com"5120 input: "http://foo:s/h@example.com", output: "http://foo:s%2Fh@example.com"5121 is expected to eq "http://foo:s%2Fh@example.com"5122 input: "http://t u:a#b@example.com", output: "http://t%20u:a%23b@example.com"5123 is expected to eq "http://t%20u:a%23b@example.com"5124 input: "http://t+u:a#b@example.com", output: "http://t%2Bu:a%23b@example.com"5125 is expected to eq "http://t%2Bu:a%23b@example.com"5126 when credentials contains special chars5127 parses the URL without errors5128Gitlab::Prometheus::Queries::AdditionalMetricsEnvironmentQuery5129 queries using specific time5130 metrics query context5131 project has Kubernetes service5132 when user configured kubernetes from CI/CD > Clusters5133 query context contains kube_namespace5134 behaves like query context containing environment slug and filter5135 contains ci_environment_slug5136 contains environment filter5137 project without Kubernetes service5138 query context contains empty kube_namespace5139 behaves like query context containing environment slug and filter5140 contains ci_environment_slug5141 contains environment filter5142 with one group where two metrics is found5143 some queries return results5144 return group data only for queries with results5145 with two groups with one metric each5146 both queries return results5147 return group data both queries5148 one query returns result5149 return group data only for query with results5150 when start and end time parameters are provided5151 as unix timestamps5152 queries using the provided times5153 as Date/Time objects5154 queries using the provided times converted to unix5155ImportExportUpload5156 import5157 behaves like stores the Import/Export file5158 stores the import file5159 export5160 behaves like stores the Import/Export file5161 stores the import file5162 scopes5163 .with_export_file5164 returns uploads with export file5165 .updated_before5166 returns uploads for a specified date5167 ActiveRecord callbacks5168 export file is stored in after_commit callback5169 import file is stored in after_save callback5170 export file5171 #export_file_exists? returns false5172 #export_archive_exists? returns false5173 with export5174 #export_file_exists? returns true5175 #export_archive_exists? returns false5176 when object file does not exist5177 #export_file_exists? returns true5178 #export_archive_exists? returns false5179 when checking object existence raises a error5180 #export_file_exists? returns true5181 #export_archive_exists? returns false5182Gitlab::Database::TablesTruncate5183 # order random5184 when truncating gitlab_ci tables on the main database5185 behaves like truncating legacy tables on a database5186 when the truncated tables are not locked for writes5187 raises an error that the tables are not locked for writes5188 when the truncated tables are locked for writes5189 truncates the legacy tables5190 does not affect the other tables5191 logs the sql statements to the logger5192 when running in dry_run mode5193 does not truncate the legacy tables if running in dry run mode5194 when passing until_table parameter5195 with a table that exists5196 only truncates until the table specified5197 with a table that does not exist5198 raises an error if the specified table does not exist5199 with geo configured5200 does not truncate gitlab_geo tables5201 when running with multiple shared databases5202 raises an error when truncating the main database that it is a single database setup5203 raises an error when truncating the ci database that it is a single database setup5204 when truncating gitlab_main tables on the ci database5205 behaves like truncating legacy tables on a database5206 when the truncated tables are not locked for writes5207 raises an error that the tables are not locked for writes5208 when the truncated tables are locked for writes5209 truncates the legacy tables5210 does not affect the other tables5211 logs the sql statements to the logger5212 when running in dry_run mode5213 does not truncate the legacy tables if running in dry run mode5214 when passing until_table parameter5215 with a table that exists5216 only truncates until the table specified5217 with a table that does not exist5218 raises an error if the specified table does not exist5219 with geo configured5220 does not truncate gitlab_geo tables5221 when running in a single database mode5222 raises an error when truncating the main database that it is a single database setup (PENDING: Skipping because multiple databases are set up)5223 raises an error when truncating the ci database that it is a single database setup (PENDING: Skipping because multiple databases are set up)5224AlertManagement::Alerts::UpdateService5225 #execute5226 when the current_user is nil5227 behaves like error response5228 has an informative message5229 behaves like does not add a todo5230 is expected not to change `Todo.count`5231 behaves like does not add a system note5232 is expected not to change `Note.count`5233 when current_user does not have permission to update alerts5234 behaves like error response5235 has an informative message5236 behaves like does not add a todo5237 is expected not to change `Todo.count`5238 behaves like does not add a system note5239 is expected not to change `Note.count`5240 when no parameters are included5241 behaves like error response5242 has an informative message5243 behaves like does not add a todo5244 is expected not to change `Todo.count`5245 behaves like does not add a system note5246 is expected not to change `Note.count`5247 when an error occurs during update5248 behaves like error response5249 has an informative message5250 behaves like does not add a todo5251 is expected not to change `Todo.count`5252 behaves like does not add a system note5253 is expected not to change `Note.count`5254 when a model attribute is included without assignees5255 behaves like title update5256 updates the attribute5257 behaves like does not add a todo5258 is expected not to change `Todo.count`5259 behaves like does not add a system note5260 is expected not to change `Note.count`5261 when alert is resolved and another existing unresolved alert5262 behaves like title update5263 updates the attribute5264 behaves like does not add a todo5265 is expected not to change `Todo.count`5266 behaves like does not add a system note5267 is expected not to change `Note.count`5268 when assignees are included5269 when the assignee is the current user5270 behaves like successful assignment5271 is expected to be success5272 behaves like adds a system note5273 is expected to change `alert.reload.notes.count` by 15274 behaves like adds a todo5275 is expected to eq #<User id:1086 @user598>5276 when the assignee has read permissions5277 behaves like successful assignment5278 is expected to be success5279 behaves like adds a system note5280 is expected to change `alert.reload.notes.count` by 15281 behaves like adds a todo5282 is expected to eq #<User id:1086 @user598>5283 when the assignee does not have read permissions5284 behaves like error response5285 has an informative message5286 behaves like does not add a todo5287 is expected not to change `Todo.count`5288 behaves like does not add a system note5289 is expected not to change `Note.count`5290 when user is already assigned5291 behaves like does not add a system note5292 is expected not to change `Note.count`5293 behaves like does not add a todo5294 is expected not to change `Todo.count`5295 with multiple users included5296 behaves like successful assignment5297 is expected to be success5298 behaves like adds a system note5299 is expected to change `alert.reload.notes.count` by 15300 behaves like adds a todo5301 is expected to eq #<User id:1086 @user598>5302 when a status is included5303 successfully changes the status5304 behaves like adds a system note5305 is expected to change `alert.reload.notes.count` by 15306 with unknown status5307 behaves like error response5308 has an informative message5309 behaves like does not add a todo5310 is expected not to change `Todo.count`5311 behaves like does not add a system note5312 is expected not to change `Note.count`5313 with resolving status5314 changes the status5315 resolves the current user's related todos5316 with existing unresolved alert5317 with fingerprints5318 does not query for existing alerts5319 when status was resolved5320 has an informative message5321 behaves like does not add a todo5322 is expected not to change `Todo.count`5323 behaves like does not add a system note5324 is expected not to change `Note.count`5325 without fingerprints5326 successfully changes the status5327 behaves like adds a system note5328 is expected to change `alert.reload.notes.count` by 15329 two existing closed alerts5330 successfully changes the status5331 behaves like adds a system note5332 is expected to change `alert.reload.notes.count` by 15333AvatarsHelper5334 #project_icon, #group_icon, #topic_icon5335 when providing a project5336 behaves like resource with a default avatar5337 returns a default avatar div5338 behaves like resource with a custom avatar5339 returns a custom avatar image5340 when Gitaly is unavailable5341 handles Gitaly exception gracefully5342 behaves like resource with a default avatar5343 returns a default avatar div5344 when Gitaly request is taking too long5345 handles Gitaly exception gracefully5346 behaves like resource with a default avatar5347 returns a default avatar div5348 when providing a group5349 behaves like resource with a default avatar5350 returns a default avatar div5351 behaves like resource with a custom avatar5352 returns a custom avatar image5353 when providing a topic5354 behaves like resource with a default avatar5355 returns a default avatar div5356 behaves like resource with a custom avatar5357 returns a custom avatar image5358 #avatar_icon_for5359 prefers the user to retrieve the avatar_url5360 falls back to email lookup if no user given5361 #avatar_icon_for_email5362 caches the request5363 behaves like returns avatar for email5364 using an email5365 when there is a matching user5366 returns a relative URL for the avatar5367 when no user exists for the email5368 calls gravatar_icon5369 without an email passed5370 calls gravatar_icon5371 #avatar_icon_for_user5372 with a user object passed5373 returns a relative URL for the avatar5374 when the user is blocked5375 behaves like blocked or unconfirmed user with avatar5376 when the viewer is not an admin5377 returns the default avatar5378 when the viewer is an admin5379 returns the default avatar when the user is not passed5380 returns the user avatar when the user is passed5381 when the user is unconfirmed5382 behaves like blocked or unconfirmed user with avatar5383 when the viewer is not an admin5384 returns the default avatar5385 when the viewer is an admin5386 returns the default avatar when the user is not passed5387 returns the user avatar when the user is passed5388 without a user object passed5389 calls gravatar_icon5390 #gravatar_icon5391 with Gravatar disabled5392 returns a generic avatar5393 with Gravatar enabled5394 with FIPS not enabled5395 returns a generic avatar when email is blank5396 returns a valid Gravatar URL5397 uses HTTPs when configured5398 returns custom gravatar path when gravatar_url is set5399 accepts a custom size argument5400 defaults size to 40@2x when given an invalid size5401 accepts a scaling factor5402 ignores case and surrounding whitespace5403 with FIPS enabled5404 returns a generic avatar5405 #user_avatar5406 links to the user's profile5407 has the user's name as title5408 contains the user's avatar image5409 #user_avatar_without_link5410 displays user avatar5411 with css_class parameter5412 uses provided css_class5413 with size parameter5414 uses provided size5415 with url parameter5416 uses provided url5417 with lazy parameter5418 adds `lazy` class to class list, sets `data-src` with avatar URL and `src` with placeholder image5419 with has_tooltip parameter5420 with has_tooltip set to true5421 adds has-tooltip5422 with has_tooltip set to false5423 does not add has-tooltip or data container5424 with user_name parameter5425 uses user_name and user_email parameter if user is not present5426 with user parameter5427 prefers user parameter5428 with only_path parameter set to false5429 with user parameter5430 will return avatar with a full path5431 with user_name and user_email5432 will return avatar with a full path5433 with unregistered email address5434 will return default alt text for avatar5435 #avatar_without_link5436 with users5437 displays user avatar5438 with groups5439 displays group avatar5440API::Helpers::Packages::DependencyProxyHelpers5441 #redirect_registry_request5442 with maven packages5443 application_setting: true, group_setting: nil, forward_to_registry: true, example_name: "executing redirect"5444 behaves like executing redirect5445 redirects to package registry5446 application_setting: true, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5447 behaves like executing fallback5448 redirects to package registry5449 application_setting: false, group_setting: nil, forward_to_registry: true, example_name: "executing fallback"5450 behaves like executing fallback5451 redirects to package registry5452 application_setting: false, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5453 behaves like executing fallback5454 redirects to package registry5455 application_setting: true, group_setting: false, forward_to_registry: true, example_name: "executing fallback"5456 behaves like executing fallback5457 redirects to package registry5458 application_setting: true, group_setting: false, forward_to_registry: false, example_name: "executing fallback"5459 behaves like executing fallback5460 redirects to package registry5461 application_setting: false, group_setting: true, forward_to_registry: true, example_name: "executing redirect"5462 behaves like executing redirect5463 redirects to package registry5464 application_setting: false, group_setting: true, forward_to_registry: false, example_name: "executing fallback"5465 behaves like executing fallback5466 redirects to package registry5467 when no target is present5468 behaves like executing redirect5469 redirects to package registry5470 when maven_central_request_forwarding is disabled5471 application_setting: true, forward_to_registry: true5472 behaves like executing fallback5473 redirects to package registry5474 application_setting: true, forward_to_registry: false5475 behaves like executing fallback5476 redirects to package registry5477 application_setting: false, forward_to_registry: true5478 behaves like executing fallback5479 redirects to package registry5480 application_setting: false, forward_to_registry: false5481 behaves like executing fallback5482 redirects to package registry5483 with npm packages5484 application_setting: true, group_setting: nil, forward_to_registry: true, example_name: "executing redirect"5485 behaves like executing redirect5486 redirects to package registry5487 application_setting: true, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5488 behaves like executing fallback5489 redirects to package registry5490 application_setting: false, group_setting: nil, forward_to_registry: true, example_name: "executing fallback"5491 behaves like executing fallback5492 redirects to package registry5493 application_setting: false, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5494 behaves like executing fallback5495 redirects to package registry5496 application_setting: true, group_setting: false, forward_to_registry: true, example_name: "executing fallback"5497 behaves like executing fallback5498 redirects to package registry5499 application_setting: true, group_setting: false, forward_to_registry: false, example_name: "executing fallback"5500 behaves like executing fallback5501 redirects to package registry5502 application_setting: false, group_setting: true, forward_to_registry: true, example_name: "executing redirect"5503 behaves like executing redirect5504 redirects to package registry5505 application_setting: false, group_setting: true, forward_to_registry: false, example_name: "executing fallback"5506 behaves like executing fallback5507 redirects to package registry5508 when no target is present5509 behaves like executing redirect5510 redirects to package registry5511 when maven_central_request_forwarding is disabled5512 application_setting: true, forward_to_registry: true5513 behaves like executing fallback5514 redirects to package registry5515 application_setting: true, forward_to_registry: false5516 behaves like executing fallback5517 redirects to package registry5518 application_setting: false, forward_to_registry: true5519 behaves like executing fallback5520 redirects to package registry5521 application_setting: false, forward_to_registry: false5522 behaves like executing fallback5523 redirects to package registry5524 with pypi packages5525 application_setting: true, group_setting: nil, forward_to_registry: true, example_name: "executing redirect"5526 behaves like executing redirect5527 redirects to package registry5528 application_setting: true, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5529 behaves like executing fallback5530 redirects to package registry5531 application_setting: false, group_setting: nil, forward_to_registry: true, example_name: "executing fallback"5532 behaves like executing fallback5533 redirects to package registry5534 application_setting: false, group_setting: nil, forward_to_registry: false, example_name: "executing fallback"5535 behaves like executing fallback5536 redirects to package registry5537 application_setting: true, group_setting: false, forward_to_registry: true, example_name: "executing fallback"5538 behaves like executing fallback5539 redirects to package registry5540 application_setting: true, group_setting: false, forward_to_registry: false, example_name: "executing fallback"5541 behaves like executing fallback5542 redirects to package registry5543 application_setting: false, group_setting: true, forward_to_registry: true, example_name: "executing redirect"5544 behaves like executing redirect5545 redirects to package registry5546 application_setting: false, group_setting: true, forward_to_registry: false, example_name: "executing fallback"5547 behaves like executing fallback5548 redirects to package registry5549 when no target is present5550 behaves like executing redirect5551 redirects to package registry5552 when maven_central_request_forwarding is disabled5553 application_setting: true, forward_to_registry: true5554 behaves like executing fallback5555 redirects to package registry5556 application_setting: true, forward_to_registry: false5557 behaves like executing fallback5558 redirects to package registry5559 application_setting: false, forward_to_registry: true5560 behaves like executing fallback5561 redirects to package registry5562 application_setting: false, forward_to_registry: false5563 behaves like executing fallback5564 redirects to package registry5565 with non-forwardable package type5566 conan5567 raises an error5568 nuget5569 raises an error5570 composer5571 raises an error5572 generic5573 raises an error5574 golang5575 raises an error5576 debian5577 raises an error5578 rubygems5579 raises an error5580 helm5581 raises an error5582 terraform_module5583 raises an error5584 rpm5585 raises an error5586 #registry_url5587 package_type: :maven, expected_result: "https://repo.maven.apache.org/maven2/test/123", params: {:path=>"test", :file_name=>"123", :project=>nil}5588 is expected to eq "https://repo.maven.apache.org/maven2/test/123"5589 package_type: :npm, expected_result: "https://registry.npmjs.org/test", params: {:package_name=>"test"}5590 is expected to eq "https://registry.npmjs.org/test"5591 package_type: :pypi, expected_result: "https://pypi.org/simple/test/", params: {:package_name=>"test"}5592 is expected to eq "https://pypi.org/simple/test/"5593 with non-forwardable package type conan5594 raises an error5595 with non-forwardable package type nuget5596 raises an error5597 with non-forwardable package type composer5598 raises an error5599 with non-forwardable package type generic5600 raises an error5601 with non-forwardable package type golang5602 raises an error5603 with non-forwardable package type debian5604 raises an error5605 with non-forwardable package type rubygems5606 raises an error5607 with non-forwardable package type helm5608 raises an error5609 with non-forwardable package type terraform_module5610 raises an error5611 with non-forwardable package type rpm5612 raises an error5613Clusters::CreateService5614 when provider is gcp5615 when project has no clusters5616 when correct params5617 creates a cluster object and performs a worker5618 when invalid params5619 returns an error5620 when project has a cluster5621 creates another cluster5622 when another cluster exists5623 when correct params5624 creates a cluster object and performs a worker5625 when invalid params5626 returns an error5627 when params includes :management_project_id5628 management_project is non-existent5629 does not persist the cluster and adds errors5630 project cluster5631 when user is authorized to adminster manangement_project5632 persists the cluster5633 when user is not authorized to adminster manangement_project5634 does not persist the cluster and adds errors5635 when manangement_project is outside of the namespace scope5636 does not persist the cluster5637 group cluster5638 when user is authorized to adminster manangement_project5639 persists the cluster5640 when user is not authorized to adminster manangement_project5641 does not persist the cluster and adds errors5642 when manangement_project is outside of the namespace scope5643 does not persist the cluster5644 instance cluster5645 when user is authorized to adminster manangement_project5646 persists the cluster5647 when user is not authorized to adminster manangement_project5648 does not persist the cluster and adds errors5649Gitlab::Database::BackgroundMigration::BatchedJob5650 is expected to be a kind of Gitlab::Database::SharedModel(abstract)5651 is expected to contain exactly ActiveRecord::StatementTimeout, ActiveRecord::ConnectionTimeoutError, ActiveRecord::AdapterTimeout, and ActiveRecord::LockWaitTimeout5652 associations5653 is expected to belong to batched_migration required: false5654 is expected to have many batched_job_transition_logs5655 state machine5656 is expected to eql :pending, :running, :failed, and :succeeded5657 when a job is running5658 logs the transition5659 when a job succeed5660 logs the transition5661 updates the finished_at5662 creates a new transition log5663 when a job fails the number of max times5664 when job can be split5665 splits the job into two retriable jobs5666 when the job cannot be split5667 does not split the job5668 keeps the same job attributes5669 logs the error5670 when a job fails5671 logs the transition5672 tracks the exception5673 updates the finished_at5674 creates a new transition log5675 scopes5676 .except_succeeded5677 returns not succeeded jobs5678 .active5679 returns active jobs5680 .stuck5681 returns stuck jobs5682 .retriable5683 returns retriable jobs5684 .created_since5685 returns jobs since a given time5686 .blocked_by_max_attempts5687 returns blocked jobs5688 delegated batched_migration attributes5689 #migration_job_class5690 returns the migration job_class5691 #migration_table_name5692 returns the migration table_name5693 #migration_column_name5694 returns the migration column_name5695 #migration_job_arguments5696 returns the migration job_arguments5697 #migration_job_class_name5698 returns the migration job_class_name5699 #can_split?5700 when the number of attempts is greater than the limit and the batch_size is greater than the sub_batch_size5701 when is a timeout exception5702 is expected to be truthy5703 when is a QueryCanceled exception5704 is expected to be truthy5705 when split_background_migration_on_query_canceled feature flag is disabled5706 is expected to be falsey5707 when is not a timeout exception5708 is expected to be falsey5709 when the number of attempts is lower than the limit and the batch_size is greater than the sub_batch_size5710 when is a timeout exception5711 is expected to be falsey5712 when is not a timeout exception5713 is expected to be falsey5714 when the batch_size is lower than the sub_batch_size5715 is expected to be falsey5716 when the batch_size is 15717 is expected to be falsey5718 #time_efficiency5719 when job has not yet succeeded5720 returns nil5721 when finished_at is not set5722 returns nil5723 when started_at is not set5724 returns nil5725 when job has finished5726 returns ratio of duration to interval, here: 0.55727 returns ratio of duration to interval, here: 15728 #split_and_retry!5729 when job can be split5730 sets the correct attributes5731 splits the jobs into retriable jobs5732 when job is not failed5733 raises an exception5734 when batch size is already 15735DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is5736deprecated without replacement. If the `throw` came from5737`Timeout.timeout(duration)`, pass an exception class as a second5738argument so it doesn't use `throw` to abort its block. This results5739in the transaction being committed, but in the next release of Rails5740it will rollback.5741 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:120)5742 keeps the same batch size5743DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is5744deprecated without replacement. If the `throw` came from5745`Timeout.timeout(duration)`, pass an exception class as a second5746argument so it doesn't use `throw` to abort its block. This results5747in the transaction being committed, but in the next release of Rails5748it will rollback.5749 (called from block in write_using_load_balancer at /builds/gitlab-org/gitlab/lib/gitlab/database/load_balancing/connection_proxy.rb:120)5750 resets the number of attempts5751 when computed midpoint is larger than the max value of the batch5752 lowers the batch size and resets the number of attempts5753Packages::PackageFileUploader5754 behaves like builds correct paths5755 #store_dir5756 behaves like matches the method pattern5757 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/\d+\/files\/\d+$/5758 #cache_dir5759 behaves like matches the method pattern5760 is expected to match /\/packages\/tmp\/cache/5761 #work_dir5762 behaves like matches the method pattern5763 is expected to match /\/packages\/tmp\/work/5764 #upload_path5765 behaves like matches the method pattern5766 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5767 #relative_path5768 is relative (PENDING: Path not set, skipping.)5769 .absolute_path5770 behaves like matches the method pattern5771 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5772 .base_dir5773 behaves like matches the method pattern5774 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5775 path traversal exploits5776 throws an exception5777 object store is remote5778 behaves like builds correct paths5779 #store_dir5780 behaves like matches the method pattern5781 is expected to match /^\h{2}\/\h{2}\/\h{64}\/packages\/\d+\/files\/\d+$/5782 #cache_dir5783 behaves like matches the method pattern5784 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5785 #work_dir5786 behaves like matches the method pattern5787 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5788 #upload_path5789 behaves like matches the method pattern5790 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5791 #relative_path5792 is relative (PENDING: Path not set, skipping.)5793 .absolute_path5794 behaves like matches the method pattern5795 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5796 .base_dir5797 behaves like matches the method pattern5798 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)5799 path traversal exploits5800 throws an exception5801 remote file5802 with object storage enabled5803 can store file remotely5804Gitlab::LegacyGithubImport::Importer5805 when importing a Gitea project5806 behaves like Gitlab::LegacyGithubImport::Importer#execute5807 calls import methods5808 behaves like Gitlab::LegacyGithubImport::Importer#execute an error occurs5809 returns true5810 does not raise an error5811 stores error messages5812 behaves like Gitlab::LegacyGithubImport unit-testing5813 #clean_up_restored_branches5814 when pull request stills open5815 does not remove branches5816 when pull request is closed5817 does remove branches5818 #client5819 instantiates a Client5820Notes::BuildService5821 #execute5822 when in_reply_to_discussion_id is specified5823 when a note with that original discussion ID exists5824 sets the note up to be in reply to that note5825 when discussion is resolved5826 resolves the note5827 when a note with that discussion ID exists5828 sets the note up to be in reply to that note5829 when no note with that discussion ID exists5830 sets an error5831 when user has no access to discussion5832 sets an error5833 personal snippet note5834 when a snippet is public5835 creates a reply note5836 when a snippet is private5837 creates a reply note when the author replies5838 sets an error when another user replies5839 when a snippet is internal5840 creates a reply note when the author replies5841 creates a reply note when a regular user replies5842 sets an error when an external user replies5843 when replying to individual note5844 sets the note up to be in reply to that note5845 when noteable does not support replies5846 builds another individual note5847 confidential comments5848 when creating a new confidential comment5849 reporter5850 behaves like user allowed to set comment as confidential5851 is expected to be truthy5852 issuable author5853 behaves like user not allowed to set comment as confidential5854 is expected to be falsey5855 issuable assignee5856 behaves like user not allowed to set comment as confidential5857 is expected to be falsey5858 admin5859 behaves like user allowed to set comment as confidential5860 is expected to be truthy5861 external5862 behaves like user not allowed to set comment as confidential5863 is expected to be falsey5864 guest5865 behaves like user not allowed to set comment as confidential5866 is expected to be falsey5867 when replying to a confidential comment5868 with reporter access5869 behaves like confidential set to `true`5870 `confidential` param is ignored to match the parent note confidentiality5871 with admin access5872 behaves like confidential set to `true`5873 `confidential` param is ignored to match the parent note confidentiality5874 with noteable author5875 behaves like returns `Discussion to reply to cannot be found` error5876 is expected to equal true5877 with noteable assignee5878 behaves like returns `Discussion to reply to cannot be found` error5879 is expected to equal true5880 with guest access5881 behaves like returns `Discussion to reply to cannot be found` error5882 is expected to equal true5883 with external user5884 behaves like returns `Discussion to reply to cannot be found` error5885 is expected to equal true5886 when replying to a public comment5887 `confidential` param is ignored and set to `false`5888 when noteable is not set5889 builds a note without saving it5890gitlab:packages:events namespace rake task5891 generate_unique5892 excludes guest events5893 includes `maven` scope5894 includes `npm` scope5895 includes `conan` scope5896 includes `nuget` scope5897 includes `pypi` scope5898 includes `composer` scope5899 includes `generic` scope5900 includes `golang` scope5901 includes `debian` scope5902 includes `rubygems` scope5903 includes `helm` scope5904 includes `terraform_module` scope5905 includes `rpm` scope5906 includes `container` scope5907 includes `tag` scope5908 includes `dependency_proxy` scope5909 excludes some event types5910 generate_counts5911 includes `maven` scope5912 includes `npm` scope5913 includes `conan` scope5914 includes `nuget` scope5915 includes `pypi` scope5916 includes `composer` scope5917 includes `generic` scope5918 includes `golang` scope5919 includes `debian` scope5920 includes `rubygems` scope5921 includes `helm` scope5922 includes `terraform_module` scope5923 includes `rpm` scope5924 includes `container` scope5925 includes `tag` scope5926 includes `dependency_proxy` scope5927 excludes some event types5928Gitlab::Search::RecentMergeRequests5929 behaves like search recent items5930 #log_view5931 adds the item to the recent items5932 removes an item when it exceeds the size items_limit5933 expires the items after expires_after5934 does not include results logged for another user5935 #search5936 matches partial text in the item title5937 returns results sorted by recently viewed5938 does not leak items you no longer have access to5939 limits results to 5 items5940Gitlab::GitalyClient5941 .query_time5942 increments query times5943 .long_timeout5944 default case5945 is expected to eq 6 hours5946 running in Puma5947 is expected to eq 555948 .filesystem_id_from_disk5949 catches errors5950 .filesystem_id5951 returns an empty string when the relevant storage status is not found in the response5952 when the relevant storage status is not found5953 .filesystem_disk_available5954 returns nil when the relevant storage status is not found in the response5955 .filesystem_disk_used5956 returns nil when the relevant storage status is not found in the response5957 when the relevant storage status is found5958 .filesystem_disk_available5959 returns disk available when the relevant storage status is found in the response5960 .filesystem_disk_used5961 returns disk used when the relevant storage status is found in the response5962 .stub_class5963 returns the gRPC health check stub5964 returns a Gitaly stub5965 .stub_address5966 returns the same result after being called multiple times5967 .stub_creds5968 returns :this_channel_is_insecure if unix5969 returns :this_channel_is_insecure if tcp5970 returns Credentials object if tls5971 .stub5972 when passed a UNIX socket address5973 passes the address as-is to GRPC5974 when passed a TLS address5975 strips tls:// prefix before passing it to GRPC::Core::Channel initializer5976 when passed a TCP address5977 strips tcp:// prefix before passing it to GRPC::Core::Channel initializer5978 .can_use_disk?5979 properly caches a false result5980 .connection_data5981 returns connection data5982 allow_n_plus_1_calls5983 when RequestStore is enabled5984 returns the result of the allow_n_plus_1_calls block5985 when RequestStore is not active5986 returns the result of the allow_n_plus_1_calls block5987 .request_kwargs5988 sets the gitaly-session-id in the metadata5989 when RequestStore is not enabled5990 sets a different gitaly-session-id per request5991 when RequestStore is enabled5992 sets the same gitaly-session-id on every outgoing request metadata5993 gitlab_git_env5994 when RequestStore is disabled5995 does not force-route to primary5996 when RequestStore is enabled without git_env5997 does not force-orute to primary5998 when RequestStore is enabled with empty git_env5999 disables force-routing to primary6000 when RequestStore is enabled with populated git_env6001 enables force-routing to primary6002 deadlines6003 includes the deadline information6004 limits the deadline do the request deadline if that is closer6005 does not limit calls in sidekiq6006 does not limit calls in sidekiq when allowed unlimited6007 includes only the deadline specified by the timeout when there was no deadline6008 enforce_gitaly_request_limits?6009 when RequestStore is enabled and the maximum number of calls is enforced by a feature flag6010 allows up the maximum number of allowed calls6011 allows the maximum number of calls to be exceeded if GITALY_DISABLE_REQUEST_LIMITS is set6012 allows the maximum number of calls to be exceeded within an allow_n_plus_1_calls block6013 when the maximum number of calls has been reached6014 fails on the next call6015 when the maximum number of calls has been reached within an allow_n_plus_1_calls block6016 allows up to the maximum number of calls outside of an allow_n_plus_1_calls block6017 does not allow the maximum number of calls to be exceeded outside of an allow_n_plus_1_calls block6018 when RequestStore is enabled and the maximum number of calls is not enforced by a feature flag6019 allows up the maximum number of allowed calls6020 allows the maximum number of calls to be exceeded if GITALY_DISABLE_REQUEST_LIMITS is set6021 allows the maximum number of calls to be exceeded within an allow_n_plus_1_calls block6022 when the maximum number of calls has been reached6023 fails on the next call6024 when the maximum number of calls has been reached within an allow_n_plus_1_calls block6025 allows up to the maximum number of calls outside of an allow_n_plus_1_calls block6026 does not allow the maximum number of calls to be exceeded outside of an allow_n_plus_1_calls block6027 in production and when RequestStore is enabled6028 when the maximum number of calls is enforced by a feature flag6029 does not allow the maximum number of calls to be exceeded6030 when the maximum number of calls is not enforced by a feature flag6031 allows the maximum number of calls to be exceeded6032 when RequestStore is not active6033 does not raise errors when the maximum number of allowed calls is exceeded6034 does not fail when the maximum number of calls is exceeded within an allow_n_plus_1_calls block6035 get_request_count6036 when RequestStore is enabled6037 when enforce_gitaly_request_limits is called outside of allow_n_plus_1_calls blocks6038 counts gitaly calls6039 when enforce_gitaly_request_limits is called inside and outside of allow_n_plus_1_calls blocks6040 counts gitaly calls6041 when reset_counts is called6042 resets counts6043 when RequestStore is not active6044 returns zero6045 timeouts6046 with default values6047 returns expected values6048 Peek Performance bar details6049 when the request store is active6050 records call details if a RPC is called6051 when no request store is active6052 records nothing6053 .decode_detailed_error6054 decodes a structured error6055 error: #<GRPC::BadStatus: 3:error message>, result: <Gitaly::InvalidRefFormatError: refs: []>6056 returns correct detailed error6057 error: #<GRPC::BadStatus: 3:error message>, result: nil6058 returns correct detailed error6059 error: #<StandardError: StandardError>, result: nil6060 returns correct detailed error6061Notes::CopyService6062 #initialize6063 validates that we cannot copy notes to the same Noteable6064 #execute6065 rewriting the note body6066 simple notes6067 rewrites existing notes in valid order6068 copies all the issue notes6069 does not change the note attributes6070 copies the award emojis6071 copies system_note_metadata for system note6072 returns success6073 copies rendered markdown from note_html6074 notes with mentions6075 saves user mentions with actual mentions for new issue6076 notes with reference6077 rewrites the references correctly6078 does not copy rendered markdown from note_html6079 notes with upload6080 rewrites note content correctly6081 does not copy rendered markdown from note_html6082 discussion notes6083 rewrites discussion correctly6084Ci::CreatePipelineService6085 # order random6086 assigns partition_id to pipeline6087 assigns partition_id to stages6088 assigns partition_id to processables6089 assigns partition_id to metadata6090 correctly assigns partition and environment6091 with parent child pipelines6092 assigns partition values to child pipelines6093 with pipeline variables6094 assigns partition_id to pipeline6095 assigns partition_id to variables6096Gitlab::Ci::Reports::TestSuiteSummary6097 #name6098 when test suite summary has several build report results6099 returns the suite name6100 #build_ids6101 when test suite summary has several build report results6102 returns the build ids6103 #total_time6104 when test suite summary has several build report results6105 returns the total time6106 #success_count6107 when test suite summary has several build report results6108 returns the total success6109 #failed_count6110 when test suite summary has several build report results6111 returns the total failed6112 #error_count6113 when test suite summary has several build report results6114 returns the total errored6115 #skipped_count6116 when test suite summary has several build report results6117 returns the total skipped6118 #total_count6119 when test suite summary has several build report results6120 returns the total count6121 #suite_error6122 when there are no build report results with suite errors6123 is expected to be nil6124 when there are build report results with suite errors6125 includes the first suite error from the collection of build report results6126 #to_h6127 when test suite summary has several build report results6128 returns the total as a hash6129Ci::TriggerEntity6130 #as_json6131 contains required fields6132 contains user fields6133 when current user can manage triggers6134 returns short_token as token6135 contains project_trigger_path6136 does not contain edit_project_trigger_path6137 returns has_token_exposed6138 when current user is the owner of the trigger6139 returns token as token6140 contains project_trigger_path6141 contains edit_project_trigger_path6142 returns has_token_exposed6143Ci::PersistentRef6144 cleans up persistent refs after pipeline finished6145 #exist?6146 when a persistent ref does not exist6147 is expected to eq false6148 when a persistent ref exists6149 is expected to eq true6150 #create6151 when a persistent ref does not exist6152 creates a persistent ref6153 when sha does not exist in the repository6154 fails to create a persistent ref6155 when a persistent ref already exists6156 overwrites a persistent ref6157 #delete6158 when a persistent ref exists6159 deletes the ref6160 when a persistent ref does not exist6161 does not raise an error6162Gitlab::Diff::Suggestion6163 #to_hash6164 when changing content surpasses the top limit6165 behaves like correct suggestion raw content6166 returns correct raw data6167 returns diff lines with correct line numbers6168 when changing content surpasses the amount of lines in the blob (bottom)6169 behaves like correct suggestion raw content6170 returns correct raw data6171 returns diff lines with correct line numbers6172 when lines are within blob lines boundary6173 behaves like correct suggestion raw content6174 returns correct raw data6175 returns diff lines with correct line numbers6176CiPlatformMetric6177 behaves like a BulkInsertSafe model6178 when calling class methods directly6179 raises an error when method is not bulk-insert safe6180 does not raise an error when method is bulk-insert safe6181 .bulk_insert!6182 when all items are valid6183 inserts them all6184 returns an empty array6185 when some items are invalid6186 does not insert any of them and raises an error6187 inserts them anyway when bypassing validations6188 validations6189 is expected to validate that :recorded_at cannot be empty/falsy6190 is expected to validate that :count cannot be empty/falsy6191 is expected to validate that :count looks like an integer greater than 06192 is expected to allow :platform_target to be ‹""›6193 is expected not to allow :platform_target to be ‹nil›6194 is expected to validate that the length of :platform_target is at most 2556195 .insert_auto_devops_platform_targets!6196 when there is already existing metrics data6197 does not erase any existing data6198 when there are multiple platform target variables6199 inserts platform target counts for that day6200 when there are invalid ci variable values for platform_target6201 ignores those values6202 when there are no platform target variables6203 does not generate any new platform metrics6204Gitlab::ImportExport::Base::RelationFactory6205 #create6206 when relation is invalid6207 returns without creating new relations6208 when the relation is predefined6209 returns without creating a new relation6210 when author relation6211 returns author hash unchanged6212 when #setup_models is not implemented6213 raises NotImplementedError6214 when #setup_models is implemented6215 creates imported object6216 when relation contains user references6217 maps the right author to the imported note6218 when relation contains token attributes6219 removes token attributes6220 when relation contains encrypted attributes6221 removes encrypted attributes6222 with duplicate assignees6223 when duplicate assignees are present6224 removes duplicate assignees6225 .relation_class6226 when relation name is pluralized6227 returns constantized class6228 when relation name is singularized6229 returns constantized class6230Clusters::AgentsFinder6231 #execute6232 is expected to contain exactly #<Clusters::Agent id: 1, created_at: "2022-11-04 14:35:18.110476674 +0000", updated_at: "2022-11-04 1...6674 +0000", project_id: 900, name: "agent-1", created_by_user_id: 1326, has_vulnerabilities: false>6233 user does not have permission6234 is expected to be empty6235 filtering by name6236 name does not match6237 is expected to be empty6238 name does match6239 is expected to contain exactly #<Clusters::Agent id: 7, created_at: "2022-11-04 14:35:21.468008561 +0000", updated_at: "2022-11-04 1...8561 +0000", project_id: 906, name: "agent-7", created_by_user_id: 1341, has_vulnerabilities: false>6240Banzai::Filter::GollumTagsFilter6241 validation6242 ensure that a :wiki key exists in context6243 linking internal images6244 creates img tag if image exists6245 does not creates img tag if image does not exist6246 linking external images6247 creates img tag for valid URL6248 does not creates img tag for invalid URL6249 linking external resources6250 the created link's text will be equal to the resource's text6251 the created link's text will be link-text6252 linking internal resources6253 the created link's text includes the resource's text and wiki base path6254 the created link's text will be link-text6255 inside back ticks will be exempt from linkification6256ProjectClusterablePresenter6257 #can_create_cluster?6258 when user can create6259 is expected to be truthy6260 when user cannot create6261 is expected to be falsey6262 #index_path6263 is expected to eq "/namespace689/project944/-/clusters"6264 #connect_path6265 is expected to eq "/namespace690/project945/-/clusters/connect"6266 #new_cluster_docs_path6267 is expected to eq "/namespace691/project946/-/clusters/new_cluster_docs"6268 #create_user_clusters_path6269 is expected to eq "/namespace692/project947/-/clusters/create_user"6270 #cluster_status_cluster_path6271 is expected to eq "/namespace693/project948/-/clusters/206/cluster_status"6272 #clear_cluster_cache_path6273 is expected to eq "/namespace694/project949/-/clusters/209/clear_cache"6274 #cluster_path6275 is expected to eq "/namespace695/project950/-/clusters/212"6276 #metrics_dashboard_path6277 is expected to eq "/namespace696/project951/-/clusters/215/metrics_dashboard"6278 #learn_more_link6279 is expected to include "user/project/clusters/index"6280Gitlab::Diff::FileCollection::Compare6281 behaves like diff statistics6282 when include_stats is true6283 Repository#diff_stats is called6284 Gitlab::Diff::File is initialized with diff stats6285 when should not request diff stats6286 Repository#diff_stats is not called6287 behaves like sortable diff files6288 #raw_diff_files6289 when sorted is false (default)6290 returns unsorted diff files6291 when sorted is true6292 returns sorted diff files6293 #cache_key6294 returns with head and base6295Resolvers::ContainerRepositoriesResolver6296 #resolve6297 with authorized user6298 when the object is a project6299 behaves like returning container repositories6300 is expected to contain exactly #<ContainerRepository id: 1, project_id: 935, name: "test_image_1", created_at: "2022-11-04 14:35:38....efault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>6301 with a named search6302 is expected to contain exactly #<ContainerRepository id: 2, project_id: 935, name: "Foobar", created_at: "2022-11-04 14:35:38.589717...efault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>6303 with a sort argument6304 created_desc6305 is expected to eq [#<ContainerRepository id: 4, project_id: 936, name: "foo", created_at: "2022-11-04 13:35:39.19615880...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6306 updated_asc6307 is expected to eq [#<ContainerRepository id: 4, project_id: 936, name: "foo", created_at: "2022-11-04 13:35:39.19615880...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6308 name_desc6309 is expected to eq [#<ContainerRepository id: 4, project_id: 936, name: "foo", created_at: "2022-11-04 13:35:39.19615880...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6310 created_asc6311 is expected to eq [#<ContainerRepository id: 3, project_id: 936, name: "bar", created_at: "2022-11-03 14:35:39.18967499...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6312 updated_desc6313 is expected to eq [#<ContainerRepository id: 3, project_id: 936, name: "bar", created_at: "2022-11-03 14:35:39.18967499...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6314 name_asc6315 is expected to eq [#<ContainerRepository id: 3, project_id: 936, name: "bar", created_at: "2022-11-03 14:35:39.18967499...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6316 when the object is a group6317 behaves like returning container repositories6318 is expected to contain exactly #<ContainerRepository id: 1, project_id: 935, name: "test_image_1", created_at: "2022-11-04 14:35:38....efault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>6319 with a named search6320 is expected to contain exactly #<ContainerRepository id: 5, project_id: 935, name: "Foobar", created_at: "2022-11-04 14:35:40.587299...efault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>6321 with a sort argument6322 created_desc6323 is expected to eq [#<ContainerRepository id: 7, project_id: 937, name: "foo", created_at: "2022-11-04 13:35:41.13617899...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6324 updated_asc6325 is expected to eq [#<ContainerRepository id: 7, project_id: 937, name: "foo", created_at: "2022-11-04 13:35:41.13617899...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6326 name_desc6327 is expected to eq [#<ContainerRepository id: 7, project_id: 937, name: "foo", created_at: "2022-11-04 13:35:41.13617899...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6328 created_asc6329 is expected to eq [#<ContainerRepository id: 6, project_id: 937, name: "bar", created_at: "2022-11-03 14:35:41.13002954...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6330 updated_desc6331 is expected to eq [#<ContainerRepository id: 6, project_id: 937, name: "bar", created_at: "2022-11-03 14:35:41.13002954...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6332 name_asc6333 is expected to eq [#<ContainerRepository id: 6, project_id: 937, name: "bar", created_at: "2022-11-03 14:35:41.13002954...fault", migration_aborted_in_state: nil, migration_plan: nil, last_cleanup_deleted_tags_count: nil>]6334 when the object is an invalid type6335 is expected to raise Exception with "invalid subject_type"6336 with unauthorized user6337 is expected to equal nil6338Gitlab::Kubernetes::Helm::Pod6339 #generate6340 helm_major_version: 2, expected_helm_version: "2.17.0", expected_command_env: [:TILLER_NAMESPACE]6341 with a command6342 generates a Kubeclient::Resource6343 generates the appropriate metadata6344 generates a container spec6345 generates the appropriate specifications for the container6346 includes a never restart policy6347 includes volumes for the container6348 includes a volume inside the specification6349 mounts configMap specification in the volume6350 has no serviceAccountName6351 with a service_account_name6352 uses the serviceAccountName provided6353 helm_major_version: 3, expected_helm_version: "3.2.4", expected_command_env: nil6354 with a command6355 generates a Kubeclient::Resource6356 generates the appropriate metadata6357 generates a container spec6358 generates the appropriate specifications for the container6359 includes a never restart policy6360 includes volumes for the container6361 includes a volume inside the specification6362 mounts configMap specification in the volume6363 has no serviceAccountName6364 with a service_account_name6365 uses the serviceAccountName provided6366Gitlab::Ci::Config::External::File::Project6367 #matching?6368 when a file and project is specified6369 returns true6370 with only file is specified6371 returns false6372 with only project is specified6373 returns false6374 with a missing local key6375 returns false6376 #valid?6377 when a valid path is used6378 is expected to be truthy6379 when user does not have permission to access file6380 returns false6381 when a valid path with custom ref is used6382 is expected to be truthy6383 when an empty file is used6384 returns false6385 when non-existing ref is used6386 returns false6387 when non-existing file is requested6388 returns false6389 when file is not a yaml file6390 returns false6391 when non-existing project is used with a masked variable6392 returns false with masked project name6393 when a project contained in an array is used with a masked variable6394 does not raise an error6395 #expand_context6396 inherits user, and target project and sha6397 #metadata6398 is expected to eq {:blob=>"http://localhost/namespace708/project963/-/blob/b83d6e391c22777fca1ed3012fce84f633d7fed0/fil...host/namespace708/project963/-/raw/b83d6e391c22777fca1ed3012fce84f633d7fed0/file.yml", :type=>:file}6399 when project name and ref include masked variables6400 is expected to eq {:blob=>nil, :context_project=>"namespace707/project962", :context_sha=>"12345", :extra=>{:project=>"...xxxxxxxxxxxxxx", :ref=>"xxxxxxxxxxxxxxxxxxxxxxxx"}, :location=>"/file.yml", :raw=>nil, :type=>:file}6401RepositoryCheck::BatchWorker6402 prefers projects that have never been checked6403 sorts projects by last_repository_check_at6404 excludes projects that were checked recently6405 excludes projects on another shard6406 does nothing when repository checks are disabled6407 does nothing when shard is unhealthy6408 skips projects created less than 24 hours ago6409 does not run if the exclusive lease is taken6410Gitlab::Ci::Badge::Pipeline::Metadata6411 behaves like badge metadata6412 #to_html6413 points to link6414 contains clickable image6415 #to_markdown6416 is expected to include "http://localhost/namespace725/project980/badges/feature/pipeline.svg"6417 is expected to include "http://localhost/namespace726/project981/-/commits/feature"6418 #to_asciidoc6419 is expected to include "http://localhost/namespace727/project982/badges/feature/pipeline.svg"6420 is expected to include "http://localhost/namespace728/project983/-/commits/feature"6421 is expected to include "image:"6422 is expected to include "link="6423 is expected to include "title="6424 #title6425 returns build status title6426 #image_url6427 returns valid url6428 #link_url6429 returns valid link6430Ci::CreatePipelineService6431 tags:6432 with valid config6433 creates a pipeline6434 with too many tags6435 creates a pipeline without builds6436 tags persistence6437 with multiple tags6438 when the tags do not exist6439 does not execute N+1 queries6440 when tags are already persisted6441 does not execute N+1 queries6442 with bridge jobs6443 is expected to be empty6444Gitlab::ImportExport::Project::ExportTask6445 when project is found6446/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil6447 performs project export successfully6448 behaves like rake task with disabled object_storage6449 disables direct & background upload only for service call6450 when project is not found6451 logs an error6452 returns false6453 when file path is invalid6454 logs an error6455 returns false6456 when after export strategy fails6457/builds/gitlab-org/gitlab/vendor/ruby/2.7.0/gems/carrierwave-1.3.2/lib/carrierwave/mounter.rb:113: warning: deprecated Object#=~ is called on TrueClass; it always returns nil6458 error is logged6459 when saving services fail6460 error is logged6461DesignManagement::NewVersionWorker6462 #perform6463 the id is wrong or out-of-date6464 does not create system notes6465 does not invoke GenerateImageVersionsService6466 logs the reason for this failure6467 the version id is valid6468 creates a system note6469 does not create a system note if skip_system_notes is true6470 invokes GenerateImageVersionsService6471 does not log anything6472 the version includes multiple types of action6473 creates two system notes6474 calls design_version_added6475Gitlab::I18n::TranslationEntry6476 #singular_translation6477 returns the normal `msgstr` for translations without plural6478 returns the first string for entries with plurals6479 #all_translations6480 returns all translations for singular translations6481 returns all translations when including plural translations6482 #plural_translations6483 returns all translations if there is only one plural6484 returns all translations except for the first one if there are multiple6485 #has_singular_translation?6486 has a singular when the translation is not pluralized6487 has a singular when plural and singular are separately defined6488 does not have a separate singular if the plural string only has one translation6489 #msgid_contains_newlines6490 is true when the msgid is an array6491 #plural_id_contains_newlines6492 is true when the msgid is an array6493 #translations_contain_newlines6494 is true when the msgid is an array6495 #contains_unescaped_chars6496 is true when the msgid is an array6497 is false when the `%` char is escaped6498 is false when using an unnamed variable6499 is false when using a named variable6500 is true when an unnamed variable is not closed6501 is true when the string starts with a `%`6502 #msgid_contains_unescaped_chars6503 is true when the msgid contains a `%`6504 #plural_id_contains_unescaped_chars6505 is true when the plural msgid contains a `%`6506 #translations_contain_unescaped_chars6507 is true when the translation contains a `%`6508 #msgid_contains_potential_html?6509 when there are no angle brackets in the msgid6510 returns false6511 when there are angle brackets in the msgid6512 returns true6513 #plural_id_contains_potential_html?6514 when there are no angle brackets in the plural_id6515 returns false6516 when there are angle brackets in the plural_id6517 returns true6518 #translations_contain_potential_html?6519 when there are no angle brackets in the translations6520 returns false6521 when there are angle brackets in the translations6522 returns true6523WikiHelper6524 #wiki_page_title6525 sets the title for the show action6526 sets the title for a custom action6527 sets the title for an unsaved page6528 #breadcrumb6529 when the page is at the root level6530 returns the capitalized page name6531 when the page is inside a directory6532 returns the capitalized name of each directory and of the page itself6533 #wiki_attachment_upload_url6534 returns the upload endpoint for project wikis6535 raises an exception for unsupported wiki containers6536 #wiki_sort_controls6537 initial call6538 renders with default values6539 sort by asc order6540 renders a link with opposite direction6541 sort by desc order6542 renders a link with opposite direction6543 #wiki_sort_title6544 returns a title corresponding to a key6545 defaults to Title if a key is unknown6546 #wiki_page_tracking_context6547 returns the tracking context6548 returns a nest level of zero for toplevel files6549 behaves like wiki endpoint helpers6550 returns the full endpoint url6551 when relative url is set6552 returns the full endpoint url with the relative path6553Metrics::Dashboard::PodDashboardService6554 #raw_dashboard6555 behaves like #raw_dashboard raises error if dashboard loading fails6556 when yaml is too large6557 raises error6558 when yaml loader returns error6559 raises error6560 when yaml is not a hash6561 returns nil6562 .valid_params?6563 is expected to be truthy6564 missing dashboard_path6565 is expected to be falsey6566 non-matching dashboard_path6567 is expected to be falsey6568 #get_dashboard6569 behaves like valid dashboard service response6570 behaves like valid dashboard service response for schema6571 returns a json representation of the dashboard6572 behaves like caches the unprocessed dashboard for subsequent calls6573 is expected to receive load_raw!(*(any args)) 1 time6574 behaves like refreshes cache when dashboard_version is changed6575 is expected to receive read(#<Pathname:/builds/gitlab-org/gitlab/config/prometheus/pod_metrics.yml>) 2 times6576 behaves like updates gitlab_metrics_dashboard_processing_time_ms metric6577 prometheus6578 behaves like dashboard_version contains SHA256 hash of dashboard file content6579 is expected to eq "3a91b32f91b2dd3d90275333c0ea3630b3f3f37c4296ede5b5eef59bf523d66b"6580 .all_dashboard_paths6581 returns the dashboard attributes6582Gitlab::Git::KeepAround6583 does not fail if we attempt to reference bad commit6584 stores a reference to the specified commit sha so it isn't garbage collected6585 does not fail if writting the ref fails6586 for multiple SHAs6587 skips non-existent SHAs6588 skips already-kept-around SHAs6589Groups::GroupLinks::DestroyService#execute6590 when authorizing by user6591 single link6592 destroys the link6593 with skip_group_share_unlink_auth_refresh feature flag disabled6594 revokes project authorization6595 with skip_group_share_unlink_auth_refresh feature flag enabled6596 maintains project authorization6597 multiple links6598 with skip_group_share_unlink_auth_refresh feature flag disabled6599 updates project authorization once per group6600 with skip_group_share_unlink_auth_refresh feature flag enabled6601 does not update project authorization once per group6602 when skipping authorization6603 with provided group and owner6604 destroys the link6605 without providing group or owner6606 destroys the link6607Puma6608{"timestamp":"2022-11-04T14:36:27.345Z","pid":18820,"message":"Puma starting in cluster mode..."}6609{"timestamp":"2022-11-04T14:36:27.345Z","pid":18820,"message":"* Puma version: 5.6.5 (ruby 2.7.6-p219) (\"Birdie's Version\")"}6610{"timestamp":"2022-11-04T14:36:27.345Z","pid":18820,"message":"* Min threads: 1"}6611{"timestamp":"2022-11-04T14:36:27.345Z","pid":18820,"message":"* Max threads: 4"}6612{"timestamp":"2022-11-04T14:36:27.345Z","pid":18820,"message":"* Environment: test"}6613{"timestamp":"2022-11-04T14:36:27.345Z","pid":18820,"message":"* Master PID: 18820"}6614{"timestamp":"2022-11-04T14:36:27.345Z","pid":18820,"message":"* Workers: 1"}6615{"timestamp":"2022-11-04T14:36:27.346Z","pid":18820,"message":"* Restarts: (✔) hot (✖) phased"}6616{"timestamp":"2022-11-04T14:36:27.346Z","pid":18820,"message":"* Preloading application"}6617{"timestamp":"2022-11-04T14:36:27.356Z","pid":18820,"message":"* Listening on unix:///builds/gitlab-org/gitlab/tmp/tests/puma.socket"}6618{"timestamp":"2022-11-04T14:36:27.357Z","pid":18820,"message":"Use Ctrl-C to stop"}6619{"timestamp":"2022-11-04T14:36:27.357Z","pid":18820,"message":"! WARNING: Detected running cluster mode with 1 worker."}6620{"timestamp":"2022-11-04T14:36:27.357Z","pid":18820,"message":"! Running Puma in cluster mode with a single worker is often a misconfiguration."}6621{"timestamp":"2022-11-04T14:36:27.357Z","pid":18820,"message":"! Consider running Puma in single-mode (workers = 0) in order to reduce memory overhead."}6622{"timestamp":"2022-11-04T14:36:27.357Z","pid":18820,"message":"! Set the `silence_single_worker_warning` option to silence this warning message."}6623{"timestamp":"2022-11-04T14:36:27.358Z","pid":18820,"message":"! Promoting existing objects to old generation..."}6624{"timestamp":"2022-11-04T14:36:27.364Z","pid":18820,"message":"! Compacting..."}6625{"timestamp":"2022-11-04T14:36:27.391Z","pid":18820,"message":"! Friendly fork preparation complete."}6626{"timestamp":"2022-11-04T14:36:27.393Z","pid":18820,"message":"- Worker 0 (PID: 18821) booted in 0.0s, phase: 0"}6627{"timestamp":"2022-11-04T14:36:28.426Z","pid":18820,"message":"- Worker 0 (PID: 18828) booted in 0.0s, phase: 0"}6628 has a worker that self-terminates on signal SIGQUIT6629{"timestamp":"2022-11-04T14:36:29.341Z","pid":18820,"message":"- Worker 0 (PID: 18835) booted in 0.0s, phase: 0"}6630 has a worker that self-terminates on signal SIGTERM6631{"timestamp":"2022-11-04T14:36:30.374Z","pid":18820,"message":"- Worker 0 (PID: 18842) booted in 0.0s, phase: 0"}6632 has a worker that self-terminates on signal SIGKILL6633{"timestamp":"2022-11-04T14:36:30.379Z","pid":18820,"message":"=== puma shutdown: 2022-11-04 14:36:30 +0000 ==="}6634{"timestamp":"2022-11-04T14:36:30.380Z","pid":18820,"message":"- Goodbye!"}6635{"timestamp":"2022-11-04T14:36:30.380Z","pid":18820,"message":"- Gracefully shutting down workers..."}6636TimeTracking::TimelogCategory6637 associations6638 is expected to belong to namespace required: false6639 validations6640 is expected to validate that :namespace cannot be empty/falsy6641 is expected to validate that :name cannot be empty/falsy6642 is expected to validate that :name is case-insensitively unique within the scope of :namespace_id6643 is expected to validate that the length of :name is at most 2556644 is expected to validate that the length of :description is at most 10246645 is expected to validate that the length of :color is at most 76646 validations when billable6647 is expected to validate that :billing_rate cannot be empty/falsy6648 is expected to validate that :billing_rate looks like a number greater than 06649 #name6650 strips name6651 #color6652 strips color6653 #find_by_name6654 finds the correct timelog category6655 returns empty if not found6656Users::UpdateTodoCountCacheService6657 #execute6658 updates the todos_counts for users6659 avoids N+1 queries6660 executes one query per batch of users6661 sets the correct cache expire time6662Ci::JobVariable6663 is expected to belong to job required: false6664 is expected to validate that :key is case-sensitively unique within the scope of :job_id6665 behaves like CI variable6666 is expected to includes the Ci::HasVariable module6667 strips whitespaces when assigning key6668 can convert to runner variable6669 variable type6670 defines variable types6671 defaults variable type to env_var6672 supports variable type file6673DeployKeysProjectPolicy6674 updating a deploy_keys_project6675 when a project maintainer6676 tries to update private deploy key attached to project6677 is expected to be disallowed :update_deploy_keys_project6678 tries to update public deploy key attached to project6679 is expected to be allowed :update_deploy_keys_project6680 when a non-maintainer project member6681 tries to update private deploy key attached to project6682 is expected to be disallowed :update_deploy_keys_project6683 tries to update public deploy key attached to project6684 is expected to be disallowed :update_deploy_keys_project6685 when a user is not a project member6686 tries to update public deploy key attached to project6687 is expected to be disallowed :update_deploy_keys_project6688MemberTask6689 Associations6690 is expected to belong to member required: false6691 is expected to belong to project required: false6692 Validations6693 is expected to validate that :member cannot be empty/falsy6694 is expected to validate that :project cannot be empty/falsy6695 is expected to validate that :tasks is either ‹0›, ‹1›, or ‹2›6696 unique tasks validation6697 expects the task values to be unique6698 project validations6699 when the member source is a group6700 expects the project to be part of the member's group projects6701 when the project is part of the member's group projects6702 is expected to be valid6703 when the member source is a project6704 expects the project to be the member's project6705 when the project is the member's project6706 is expected to be valid6707 .for_members6708 returns the member_tasks for multiple members6709 #tasks_to_be_done6710 returns an array of symbols for the corresponding integers6711 #tasks_to_be_done=6712 when passing valid values6713 when passing tasks as strings6714 sets an array of integers for the corresponding tasks6715 when passing a single task6716 sets an array of integers for the corresponding tasks6717 when passing a task twice6718 is set only once6719Mutations::CustomerRelations::Contacts::Create6720 is expected to require graphql authorizations :admin_crm_contact6721 #resolve6722 when the user does not have permission6723 raises an error6724 when the user has permission6725 creates contact with correct values6726 when crm_enabled is false6727 raises an error6728 when the params are invalid6729 returns the validation error6730 when attaching to an organization6731 when all ok6732 creates contact with correct values6733 when organization does not exist6734 returns the relevant error6735 when organzation belongs to a different group6736 returns the relevant error6737Ci::DailyBuildGroupReportResultsFinder6738 #execute6739 when params are provided6740 when current user is not allowed to read data6741 returns an empty collection6742 when current user is allowed to read data6743 returns matching coverages within the given date range6744 when ref_path is nil6745 returns coverages for the default branch6746 when limit is specified6747 returns limited number of matching coverages within the given date range6748 when provided dates are nil6749 returns all coverages from the last 90 days6750Environments::AutoStopWorker6751 stops the environment6752 executes the stop action6753 when user does not have a permission to play the stop action6754 raises an error6755 when the environment has already been stopped6756 does not execute the stop action6757 when there are no deployments and associted stop actions6758 stops the environment6759 when there are no corresponding environment record6760 ignores the invalid record6761Gitlab::Ci::Reports::Security::Scanner6762 #initialize6763 when all params are given6764 initializes an instance6765 when attribute external_id is missing6766 raises an error6767 when attribute name is missing6768 raises an error6769 #key6770 returns external_id6771 #to_hash6772 returns expected hash6773 when vendor is not defined6774 returns expected hash6775 #==6776 when external_id is equal6777 returns true6778 when external_id is different6779 returns false6780 #<=>6781 when the `external_id` of the scanners are different6782 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16783 is expected to eq -16784 scanner_1_attributes: {:external_id=>"gemnasium-maven", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16785 is expected to eq -16786 scanner_1_attributes: {:external_id=>"gemnasium-python", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: 16787 is expected to eq 16788 scanner_1_attributes: {:external_id=>"bandit", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16789 is expected to eq -16790 scanner_1_attributes: {:external_id=>"spotbugs", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16791 is expected to eq -16792 scanner_1_attributes: {:external_id=>"semgrep", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"unknown", :name=>"foo", :vendor=>"bar"}, expected_comparison_result: -16793 is expected to eq -16794 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>nil}, expected_comparison_result: 16795 is expected to eq 16796 when the `external_id` of the scanners are equal6797 when the `name` of the scanners are different6798 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"a", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"b", :vendor=>"bar"}, expected_comparison_result: -16799 is expected to eq -16800 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"d", :vendor=>"bar"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"c", :vendor=>"bar"}, expected_comparison_result: 16801 is expected to eq 16802 when the `name` of the scanners are equal6803 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 06804 is expected to eq 06805 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, expected_comparison_result: -16806 is expected to eq -16807 scanner_1_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"b"}, scanner_2_attributes: {:external_id=>"gemnasium", :name=>"foo", :vendor=>"a"}, expected_comparison_result: 16808 is expected to eq 16809Notes::DestroyService6810 #execute6811 deletes a note6812 updates the todo counts for users with todos for the note6813 tracks merge request usage data6814 comment removed event tracking6815 tracks issue comment removal usage data6816 behaves like issue_edit snowplow tracking6817 behaves like Snowplow event tracking6818 is not emitted if FF is disabled6819 is emitted6820 in a merge request6821 does not track issue comment removal usage data6822 noteable highlight cache clearing6823 clears noteable diff cache when it was unfolded for the note position6824 does not clear cache when note is not the first of the discussion6825Gitlab::QuickActions::CommandDefinition6826 #all_names6827 when the command has aliases6828 returns an array with the name and aliases6829 when the command doesn't have aliases6830 returns an array with the name6831 #noop?6832 when the command has an action block6833 returns false6834 when the command doesn't have an action block6835 returns true6836 #available?6837 when the command has a condition block6838 when the condition block returns true6839 returns true6840 when the condition block returns false6841 returns false6842 when the command doesn't have a condition block6843 returns true6844 when the command has types6845 when the command target type is allowed6846 returns true6847 when the command target type is not allowed6848 returns true6849 when the command has no types6850 any target type is allowed6851 #execute6852 when the command is a noop6853 doesn't execute the command6854 when the command is not a noop6855 when the command is not available6856 counts the command as executed6857 when the command is available6858 when the commnd has no arguments6859 when the command is provided an argument6860 executes the command6861 when the command is not provided an argument6862 executes the command6863 when the command has 1 required argument6864 when the command is provided an argument6865 executes the command6866 when the command is not provided an argument6867 doesn't execute the command6868 when the command has 1 optional argument6869 when the command is provided an argument6870 executes the command6871 when the command is not provided an argument6872 executes the command6873 when the command defines parse_params block6874 executes the command passing the parsed param6875 #execute_message6876 when the command is a noop6877 returns nil6878 when the command is not a noop6879 when the command is not available6880 returns an error message6881 when the command is available6882 when the execution_message is a static string6883 returns this static string6884 when the explanation is dynamic6885 invokes the proc6886 #explain6887 when the command is not available6888 returns nil6889 when the explanation is a static string6890 returns this static string6891 when warning is set6892 returns this static string6893 when the explanation is dynamic6894 invokes the proc6895Gitlab::RobotsTxt::Parser6896 #disallowed?6897 a simple robots.txt file6898 path: "/autocomplete/users", result: true6899 is expected to eq true6900 path: "/autocomplete/users/a.html", result: true6901 is expected to eq true6902 path: "/search", result: true6903 is expected to eq true6904 path: "/search.html", result: true6905 is expected to eq true6906 path: "/api", result: true6907 is expected to eq true6908 path: "/api/grapql", result: true6909 is expected to eq true6910 path: "/api/index.html", result: true6911 is expected to eq true6912 path: "/projects", result: false6913 is expected to eq false6914 path: "/users", result: false6915 is expected to eq false6916 path: "/help", result: false6917 is expected to eq false6918 path: "/test", result: true6919 is expected to eq true6920 path: "/testfoo", result: false6921 is expected to eq false6922 path: "/ex$mple", result: true6923 is expected to eq true6924 path: "/ex$mplefoo", result: false6925 is expected to eq false6926 robots.txt file with wildcard6927 path: "/search", result: true6928 is expected to eq true6929 path: "/namespace/project.git", result: true6930 is expected to eq true6931 path: "/project/archive/", result: true6932 is expected to eq true6933 path: "/project/archive/file.gz", result: true6934 is expected to eq true6935 path: "/project/repository/archive", result: true6936 is expected to eq true6937 path: "/project/repository/archive.gz", result: true6938 is expected to eq true6939 path: "/project/repository/archive/file.gz", result: true6940 is expected to eq true6941 path: "/projects", result: false6942 is expected to eq false6943 path: "/git", result: false6944 is expected to eq false6945 path: "/projects/git", result: false6946 is expected to eq false6947 path: "/project/repository/archive/foo", result: false6948 is expected to eq false6949WorkItems::Type6950 modules6951 is expected to includes the CacheMarkdownField module6952 associations6953 is expected to have many work_items6954 is expected to belong to namespace required: false6955 scopes6956 order_by_name_asc6957 is expected to match ["atype", "gtype", "Ztype"]6958 #destroy6959 does not delete type when there are related issues6960 when there are no work items of that type6961 deletes type but not unrelated issues6962 validation6963 is expected not to allow :icon_name to be ‹"ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"›6964 name uniqueness6965 is expected to validate that :name is case-insensitively unique within the scope of :namespace_id6966 .available_widgets6967 returns list of all possible widgets6968 #default?6969 when namespace is nil6970 is expected to be truthy6971 when namespace is present6972 is expected to be falsey6973 #name6974 strips name6975Resolvers::ProjectPackagesResolver6976 #resolve6977 behaves like group and projects packages resolver6978 without sort6979 returns the proper packages6980 with sorting and filtering6981 CREATED_DESC6982 is expected to eq [#<Packages::Package id: 22, project_id: 1032, created_at: "2022-11-04 13:37:04.007183193 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 1545, status: "default", last_downloaded_at: nil>]6983 NAME_DESC6984 is expected to eq [#<Packages::Package id: 22, project_id: 1032, created_at: "2022-11-04 13:37:04.007183193 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 1545, status: "default", last_downloaded_at: nil>]6985 VERSION_DESC6986 is expected to eq [#<Packages::Package id: 22, project_id: 1032, created_at: "2022-11-04 13:37:04.007183193 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 1545, status: "default", last_downloaded_at: nil>]6987 TYPE_ASC6988 is expected to eq [#<Packages::Package id: 22, project_id: 1032, created_at: "2022-11-04 13:37:04.007183193 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 1545, status: "default", last_downloaded_at: nil>]6989 CREATED_ASC6990 is expected to eq [#<Packages::Package id: 20, project_id: 1032, created_at: "2022-11-03 14:37:03.533973853 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 1545, status: "error", last_downloaded_at: nil>]6991 NAME_ASC6992 is expected to eq [#<Packages::Package id: 20, project_id: 1032, created_at: "2022-11-03 14:37:03.533973853 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 1545, status: "error", last_downloaded_at: nil>]6993 VERSION_ASC6994 is expected to eq [#<Packages::Package id: 20, project_id: 1032, created_at: "2022-11-03 14:37:03.533973853 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 1545, status: "error", last_downloaded_at: nil>]6995 TYPE_DESC6996 is expected to eq [#<Packages::Package id: 20, project_id: 1032, created_at: "2022-11-03 14:37:03.533973853 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 1545, status: "error", last_downloaded_at: nil>]6997 filter by package_name6998 is expected to eq [#<Packages::Package id: 20, project_id: 1032, created_at: "2022-11-03 14:37:03.533973853 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 1545, status: "default", last_downloaded_at: nil>]6999 filter by package_type7000 is expected to eq [#<Packages::Package id: 20, project_id: 1032, created_at: "2022-11-03 14:37:03.533973853 +0000", upd...sion: "1.0.0", package_type: "conan", creator_id: 1545, status: "default", last_downloaded_at: nil>]7001 filter by status7002 is expected to eq [#<Packages::Package id: 22, project_id: 1032, created_at: "2022-11-04 13:37:04.007183193 +0000", upd...ersion: "2.0.0", package_type: "maven", creator_id: 1545, status: "error", last_downloaded_at: nil>]7003 include_versionless7004 is expected to include #<Packages::Package id: 24, project_id: 1032, created_at: "2022-11-04 14:36:04.370887985 +0000", upda..., version: nil, package_type: "maven", creator_id: 1545, status: "default", last_downloaded_at: nil>7005Gitlab::SubscriptionPortal7006 .default_subscriptions_url7007 test: false, development: false, result: "https://customers.gitlab.com"7008 is expected to eq "https://customers.gitlab.com"7009 test: false, development: true, result: "https://customers.staging.gitlab.com"7010 is expected to eq "https://customers.staging.gitlab.com"7011 test: true, development: false, result: "https://customers.staging.gitlab.com"7012 is expected to eq "https://customers.staging.gitlab.com"7013 .subscriptions_url7014 when CUSTOMER_PORTAL_URL ENV is unset7015 is expected to eq "https://customers.staging.gitlab.com"7016 when CUSTOMER_PORTAL_URL ENV is set7017 is expected to eq "https://customers.example.com"7018 .subscriptions_comparison_url7019 is expected to match /\Ahttps:\/\/about\.gitlab\.((cn\/pricing\/saas)|(com\/pricing\/gitlab-com))\/feature-comparison\z/7020 class methods7021 method_name: :default_subscriptions_url, result: "https://customers.staging.gitlab.com"7022 is expected to eq "https://customers.staging.gitlab.com"7023 method_name: :payment_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_validation"7024 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_validation"7025 method_name: :payment_validation_form_id, result: "payment_method_validation"7026 is expected to eq "payment_method_validation"7027 method_name: :registration_validation_form_url, result: "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"7028 is expected to eq "https://customers.staging.gitlab.com/payment_forms/cc_registration_validation"7029 method_name: :registration_validation_form_id, result: "cc_registration_validation"7030 is expected to eq "cc_registration_validation"7031 method_name: :subscriptions_graphql_url, result: "https://customers.staging.gitlab.com/graphql"7032 is expected to eq "https://customers.staging.gitlab.com/graphql"7033 method_name: :subscriptions_more_minutes_url, result: "https://customers.staging.gitlab.com/buy_pipeline_minutes"7034 is expected to eq "https://customers.staging.gitlab.com/buy_pipeline_minutes"7035 method_name: :subscriptions_more_storage_url, result: "https://customers.staging.gitlab.com/buy_storage"7036 is expected to eq "https://customers.staging.gitlab.com/buy_storage"7037 method_name: :subscriptions_manage_url, result: "https://customers.staging.gitlab.com/subscriptions"7038 is expected to eq "https://customers.staging.gitlab.com/subscriptions"7039 method_name: :subscriptions_instance_review_url, result: "https://customers.staging.gitlab.com/instance_review"7040 is expected to eq "https://customers.staging.gitlab.com/instance_review"7041 method_name: :subscriptions_gitlab_plans_url, result: "https://customers.staging.gitlab.com/gitlab_plans"7042 is expected to eq "https://customers.staging.gitlab.com/gitlab_plans"7043 method_name: :edit_account_url, result: "https://customers.staging.gitlab.com/customers/edit"7044 is expected to eq "https://customers.staging.gitlab.com/customers/edit"7045 .add_extra_seats_url7046 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/extra_seats"7047 .upgrade_subscription_url7048 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/upgrade/5"7049 .renew_subscription_url7050 is expected to eq "https://customers.staging.gitlab.com/gitlab/namespaces/153/renew"7051 constants7052 constant_name: "REGISTRATION_VALIDATION_FORM_ID", result: "cc_registration_validation"7053 is expected to eq "cc_registration_validation"7054DeployKeysProject7055 Associations7056 is expected to belong to deploy_key required: false7057 is expected to belong to project required: false7058 Validation7059 is expected to validate that :project_id cannot be empty/falsy7060 is expected to validate that :deploy_key cannot be empty/falsy7061 Destroying7062 when the deploy key is only used by this project7063 when the deploy key is public7064 doesn't destroy the deploy key7065 when the deploy key is private7066 destroys the deploy key7067 when the deploy key is used by more than one project7068 doesn't destroy the deploy key7069Gitlab::Checks::PushFileCountCheck7070 #validate!7071 initial creation7072 allows creation7073 old: "single-file", new: "edit-file", valid: true, message: nil7074 verifies7075 old: "single-file", new: "multiple-files", valid: false, message: "The repository can contain at most 2 file(s)."7076 verifies7077 old: "single-file", new: "no-files", valid: false, message: "The repository must contain at least 1 file."7078 verifies7079 old: "edit-file", new: "rename-and-edit-file", valid: true, message: nil7080 verifies7081Banzai::Filter::WikiLinkFilter7082 doesn't rewrite absolute links7083 doesn't rewrite links to project uploads7084 when links are rewritable7085 stores original url in the data-canonical-src attribute7086 when links are not rewritable7087 does not store original url in the data-canonical-src attribute7088 when links point to the relative wiki path7089 does not rewrite links7090 does not rewrite links to old relative wiki path7091 when links point to the uploads folder7092 with an "a" html tag7093 rewrites links7094 with "img" html tag7095 inside an "a" html tag7096 rewrites links7097 outside an "a" html tag7098 rewrites links7099 with "video" html tag7100 rewrites links7101 with "audio" html tag7102 rewrites links7103 invalid links7104 doesn't rewrite invalid invalid_links like http://:80807105 doesn't rewrite invalid invalid_links like http://7106 doesn't rewrite invalid invalid_links like http://:8080/path7107Packages::Nuget::SyncMetadatumService7108 #execute7109 creates a nuget metadatum7110 behaves like saving metadatum attributes7111 saves nuget metadatum7112 with exisiting nuget metadatum7113 does not create a nuget metadatum7114 behaves like saving metadatum attributes7115 saves nuget metadatum7116 with empty metadata7117 destroys the nuget metadatum7118KeysFinder7119 key_type7120 when `key_type` is `ssh`7121 returns only SSH keys7122 when `key_type` is not specified7123 returns all types of keys7124 fingerprint7125 with invalid fingerprint7126 with invalid MD5 fingerprint7127 raises InvalidFingerprint7128 with invalid SHA fingerprint7129 raises InvalidFingerprint7130 with valid fingerprints7131 personal key with valid MD5 params7132 with an existent fingerprint7133 returns the key7134 with FIPS mode7135 raises InvalidFingerprint7136 deploy key with an existent fingerprint7137 returns the key7138 with FIPS mode7139 raises InvalidFingerprint7140 with a non-existent fingerprint7141 returns nil7142 with FIPS mode7143 raises InvalidFingerprint7144 personal key with valid SHA256 params7145 with an existent fingerprint7146 returns key7147 deploy key with an existent fingerprint7148 returns key7149 with a non-existent fingerprint7150 returns nil7151 user7152 without user7153 contains ssh_keys of all users in the system7154 with user7155 contains ssh_keys of only the specified users7156 sort order7157 sorts in last_used_at_desc order7158Gitlab::ImportExport::Base::ObjectBuilder7159 #build7160 when object exists7161 when where_clauses are implemented7162 finds existing object instead of creating one7163 when where_clauses are not implemented7164 raises NotImplementedError7165 when object does not exist7166 creates new object7167Security::CiConfiguration::SecretDetectionCreateService7168 #execute7169 user does not belong to project7170 returns an error status7171 does not track a snowplow event7172 user belongs to project7173 does track the snowplow event7174 raises exception if the user does not have permission to create a new branch7175 when exception is raised7176 when branch was created7177 tries to rm branch7178 when branch was not created7179 does not try to rm branch7180 with no parameters7181 returns the path to create a new merge request7182 when the project has a non-default ci config file7183 does track the snowplow event7184Resolvers::DesignManagement::Version::DesignsAtVersionResolver7185 .single7186 returns the single context resolver7187 #resolve7188 when the user cannot see designs7189 returns nothing7190 for the current version7191 returns all designs visible at that version7192 for a previous version with more objects7193 returns objects that were later deleted7194 for a previous version with fewer objects7195 does not return objects that were later created7196 filtering7197 by filename7198 resolves to just the relevant design7199 by id7200 resolves to just the relevant design, ignoring objects on other issues7201Packages::TerraformModule::CreatePackageService7202 #execute7203 valid package7204 behaves like creating a package7205 creates a package7206 package already exists elsewhere7207 is expected to eq 4037208 is expected to equal "Access Denied"7209 marked as pending_destruction7210 behaves like creating a package7211 creates a package7212 version already exists7213 is expected to eq 4037214 is expected to equal "Package version already exists."7215 marked as pending_destruction7216 behaves like creating a package7217 creates a package7218 with empty version7219 is expected to eq 4007220 is expected to eq "Version is empty."7221RuboCop::Formatter::GracefulFormatter7222 # order random7223 .grace_period?7224 with Details in config7225 is expected to eq true7226 with unknown value for Details in config7227 is expected to output /Cop\/Name: Unhandled value "unknown" for `Details` key./ to stderr7228 with empty config7229 is expected to eq false7230 without Details in config7231 is expected to eq false7232 without files to inspect7233 behaves like summary reporting7234 reports summary with 0 inspected, 0 offenses, 0 silenced7235 .adjusted_exit_status7236 active_offenses: 0, status: 0, adjusted_status: 07237 is expected to eq 07238 active_offenses: 0, status: 1, adjusted_status: 07239 is expected to eq 07240 active_offenses: 1, status: 1, adjusted_status: 17241 is expected to eq 17242 active_offenses: 0, status: 2, adjusted_status: 27243 is expected to eq 27244 active_offenses: 1, status: 2, adjusted_status: 27245 is expected to eq 27246 active_offenses: 1, status: 0, adjusted_status: 07247 is expected to eq 07248 with missing @total_offense_count7249 raises an error7250 .grace_period_key_value7251 is expected to eq "Details: grace period"7252 without offenses7253 behaves like summary reporting7254 reports summary with 2 inspected, 0 offenses, 0 silenced7255 with offenses7256 with active only7257 behaves like summary reporting7258 reports summary with 2 inspected, 2 offenses, 0 silenced7259 with silenced only7260 behaves like summary reporting7261 reports summary with 2 inspected, 0 offenses, 2 silenced7262 with active and silenced7263 behaves like summary reporting7264 reports summary with 2 inspected, 2 offenses, 3 silenced7265Gitlab::Ci::Config::Entry::Include::Rules::Rule7266 .new7267 when specifying an if: clause7268 is expected to be valid7269 when specifying an exists: clause7270 is expected to be valid7271 using a list of multiple expressions7272 behaves like an invalid config7273 is expected not to be valid7274 has errors7275 when specifying an invalid if: clause expression7276 behaves like an invalid config7277 is expected not to be valid7278 has errors7279 when specifying an if: clause expression with an invalid token7280 behaves like an invalid config7281 is expected not to be valid7282 has errors7283 when using invalid regex in an if: clause7284 behaves like an invalid config7285 is expected not to be valid7286 has errors7287 when using an if: clause with lookahead regex character "?"7288 behaves like an invalid config7289 is expected not to be valid7290 has errors7291 when specifying unknown policy7292 behaves like an invalid config7293 is expected not to be valid7294 has errors7295 when clause is empty7296 behaves like an invalid config7297 is expected not to be valid7298 has errors7299 when policy strategy does not match7300 behaves like an invalid config7301 is expected not to be valid7302 has errors7303 #value7304 when specifying an if: clause7305 returns the config7306 when specifying an exists: clause7307 returns the config7308Gitlab::Usage::Metrics::Aggregates::Aggregate7309 .calculate_count_for_aggregation7310 with valid configuration7311 number_of_days: 28, operator: "AND", datasource: "redis_hll", expected_method: :calculate_metrics_intersections7312 returns the number of unique events for aggregation7313 number_of_days: 7, operator: "AND", datasource: "redis_hll", expected_method: :calculate_metrics_intersections7314 returns the number of unique events for aggregation7315 number_of_days: 28, operator: "AND", datasource: "database", expected_method: :calculate_metrics_intersections7316 returns the number of unique events for aggregation7317 number_of_days: 7, operator: "AND", datasource: "database", expected_method: :calculate_metrics_intersections7318 returns the number of unique events for aggregation7319 number_of_days: 28, operator: "OR", datasource: "redis_hll", expected_method: :calculate_metrics_union7320 returns the number of unique events for aggregation7321 number_of_days: 7, operator: "OR", datasource: "redis_hll", expected_method: :calculate_metrics_union7322 returns the number of unique events for aggregation7323 number_of_days: 28, operator: "OR", datasource: "database", expected_method: :calculate_metrics_union7324 returns the number of unique events for aggregation7325 number_of_days: 7, operator: "OR", datasource: "database", expected_method: :calculate_metrics_union7326 returns the number of unique events for aggregation7327 with invalid configuration7328 time_frame: "28d", operator: "SUM", datasource: "redis_hll", expected_error: Gitlab::Usage::Metrics::Aggregates::UnknownAggregationOperator7329 with non prod environment7330 raises error7331 with prod environment7332 returns fallback value7333 time_frame: "7d", operator: "AND", datasource: "mongodb", expected_error: Gitlab::Usage::Metrics::Aggregates::UnknownAggregationSource7334 with non prod environment7335 raises error7336 with prod environment7337 returns fallback value7338 time_frame: "all", operator: "AND", datasource: "redis_hll", expected_error: Gitlab::Usage::Metrics::Aggregates::DisallowedAggregationTimeFrame7339 with non prod environment7340 raises error7341 with prod environment7342 returns fallback value7343 when union data is not available7344 time_frame: "28d", operator: "OR", datasource: "redis_hll"7345 with non prod environment7346 raises error7347 with prod environment7348 returns fallback value7349 time_frame: "7d", operator: "OR", datasource: "database"7350 with non prod environment7351 raises error7352 with prod environment7353 returns fallback value7354Banzai::Pipeline::IncidentManagement::TimelineEventPipeline7355 .filters7356 contains required filters7357 .to_html7358 when markdown contains font style transformations7359 is expected to eq "<p><strong>bold</strong> <em>italic</em> <code>code</code></p>"7360 when markdown contains banned HTML tags7361 filters out banned tags7362 when markdown contains links7363 is expected to eq "<p><a href=\"https://gitlab.com\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">GitLab</a></p>"7364 when markdown contains images7365 replaces image with a link to the image7366 when markdown contains emojis7367 renders emojis wrapped in <gl-emoji> tag7368 when markdown contains labels7369 replaces existing label to a link7370 when markdown contains table7371 is expected to eq "table headtable content"7372 when markdown contains a reference to an issue7373 contains a link to the issue7374 when markdown contains a reference to a merge request7375 contains a link to the merge request7376Gitlab::Ci::Pipeline::Expression::Lexeme::NotMatches7377 .build7378 with non-evaluable operands7379 creates a new instance of the token7380 with evaluable operands7381 creates a new instance of the token7382 .type7383 is an operator7384 .precedence7385 has a precedence7386 #evaluate7387 when left and right do not match7388 is expected to eq true7389 when left and right match7390 is expected to eq false7391 when left is nil7392 is expected to eq true7393 when right is nil7394 is expected to eq true7395 when left and right are nil7396 is expected to eq true7397 when left is an empty string7398 is expected to eq true7399 when left and right are empty strings7400 is expected to eq false7401 when left is a multiline string and matches right7402 is expected to eq false7403 when left is a multiline string and does not match right7404 is expected to eq true7405 when a matching pattern uses regex flags7406 is expected to eq false7407 when a non-matching pattern uses regex flags7408 is expected to eq true7409 when right value is a regexp string7410 when matching7411 is expected to eq false7412 when not matching7413 is expected to eq true7414Gitlab::QueryLimiting::Transaction7415 .current7416 returns nil when there is no transaction7417 returns the transaction when present7418 .run7419 runs a transaction and returns it and its return value7420 removes the transaction from the current thread upon completion7421 #act_upon_results7422 when the query threshold is not exceeded7423 does nothing7424 when the query threshold is exceeded7425 raises an error when this is enabled7426 #increment7427 increments the number of executed queries7428 does not increment the number of executed queries when query limiting is disabled7429 does not increment the number of executed queries when the query is known to be ignorable7430 #raise_error?7431 returns true in a test environment7432 returns false in a production environment7433 #threshold_exceeded?7434 returns false when the threshold is not exceeded7435 returns true when the threshold is exceeded7436 #error_message7437 returns the error message to display when the threshold is exceeded7438 includes a list of executed queries7439 indicates if the log is truncated7440 includes the action name in the error message when present7441ResourceMilestoneEventFinder7442 #execute7443 returns events with milestones accessible by user7444 filters events with public project milestones if issues and MRs are private7445 filters events with project milestones not accessible by user7446 filters events with group milestones not accessible by user7447 when multiple events share the same milestone7448 avoids N+1 queries7449Types::BoardListType7450 is expected to eq "BoardList"7451 has specific fields7452 issues field7453 has a correct extension7454 title7455 preloads the label association7456Clusters::Agents::DeleteService7457 #execute7458 without user permissions7459 fails to delete when the user has no permissions7460 with user permissions7461 deletes a cluster agent7462IssueEmailParticipant7463 Associations7464 is expected to belong to issue required: false7465 Validations7466 is expected to validate that :issue cannot be empty/falsy7467 is expected to validate that :email is unique within the scope of :issue_id7468 is invalid if the email is nil7469 behaves like an object with RFC3696 compliant email-formatted attributes7470 specifically its :email attribute7471 with a value of 'info@example.com'7472 is valid7473 with a value of 'info+test@example.com'7474 is valid7475 with a value of 'o'reilly@example.com'7476 is valid7477 with a value of 'foobar'7478 is invalid7479 with a value of 'test@test@example.com'7480 is invalid7481 with a value of 'test.test.@example.com'7482 is invalid7483 with a value of '.test.test@example.com'7484 is invalid7485 with a value of 'mailto:test@example.com'7486 is invalid7487 with a value of 'lol!'+=?><#$%^&*()@gmail.com'7488 is invalid7489Gitlab::Diff::FileCollection::Base7490 #overflow?7491 when it is not overflown7492 returns false7493 when it is overflown7494 returns true7495RuboCop::Formatter::TodoFormatter7496 # order random7497 with offenses detected7498 outputs its actions7499 creates YAML files7500 when cop previously not explicitly disabled7501 does not disable cop7502 when cop previously explicitly disabled in rubocop_todo/7503 keeps cop disabled7504 when cop previously explicitly disabled in rubocop_todo.yml7505 keeps cop disabled7506 with grace period7507 in rubocop_todo/7508 behaves like keeps grace period7509 keeps Details: grace period7510 in rubocop_todo.yml7511 behaves like keeps grace period7512 keeps Details: grace period7513 with invalid details value7514 ignores the details and warns7515 and previously disabled7516 raises an exception7517 with cop configuration in both .rubocop_todo/ and .rubocop_todo.yml7518 raises an error7519 without offenses detected7520 without existing TODOs7521 does not output anything7522 does not write any YAML files7523 with existing TODOs7524 when existing offenses only7525 does not output anything7526 does not write any YAML files7527 when in grace period7528 outputs its actions7529 creates YAML file with Details only7530 without files to inspect7531 does not output anything7532 does not write any YAML files7533Gitlab::UntrustedRegexp7534 #initialize7535 invalid regexp7536 is expected to raise RegexpError7537 #replace_all7538 replaces all instances of the match in a string7539 #replace7540 replaces the first instance of the match in a string7541 #===7542 returns true for a match7543 returns false for no match7544 can handle regular expressions in multiline mode7545 #match?7546 malicious regexp7547 takes under a second7548 matching regexp7549 returns an array of nil matches7550 non-matching regexp7551 returns an array of nil matches7552 #scan7553 malicious regexp7554 takes under a second7555 empty regexp7556 returns an array of nil matches7557 empty capture group regexp7558 returns an array of nil matches in an array7559 no capture group7560 returns the whole match7561 one capture group7562 returns the captured part7563 two capture groups7564 returns the captured parts7565 #match7566 when there are matches7567 returns a match object7568 when there are no matches7569 returns nil7570Banzai::Filter::InlineGrafanaMetricsFilter7571 behaves like a metrics embed filter7572 when the document has an external link7573 leaves regular non-metrics links unchanged7574 when the document contains an embeddable link7575 leaves the original link unchanged7576 appends a metrics charts placeholder7577 in a paragraph7578 appends a metrics charts placeholder after the enclosing paragraph7579 when grafana is not configured7580 leaves the markdown unchanged7581 when "panelId" parameter is missing7582 behaves like a metrics embed filter7583 when the document has an external link7584 leaves regular non-metrics links unchanged7585 when the document contains an embeddable link7586 leaves the original link unchanged7587 appends a metrics charts placeholder7588 in a paragraph7589 appends a metrics charts placeholder after the enclosing paragraph7590 when time window parameters are missing7591 sets the window to the last 8 hrs7592 when "to" parameter is missing7593 sets "to" to 8 hrs after "from"7594 when "from" parameter is missing7595 sets "from" to 8 hrs before "to"7596 when no parameters are provided7597 inserts a placeholder7598Gitlab::Database::AsyncIndexes::MigrationHelpers7599 #unprepare_async_index7600 destroys the record7601 when an explicit name is given7602 destroys the record7603 when the async index table does not exist7604 does not raise an error7605 #unprepare_async_index_by_name7606 destroys the record7607 when the async index table does not exist7608 does not raise an error7609 #prepare_async_index7610 creates the record for the async index7611 when an explicit name is given7612 creates the record with the given name7613 when the index already exists7614 does not create the record7615 when the record already exists7616 does attempt to create the record7617 updates definition if changed7618 does not update definition if not changed7619 when the async index table does not exist7620 does not raise an error7621 #prepare_async_index_removal7622 creates the record for the async index removal7623 when the index does not exist7624 does not create the record7625 when the record already exists7626 does attempt to create the record7627Gitlab::BackgroundTask7628 when stopped7629 is not running7630 #start7631 runs the given task on a background thread7632 returns self7633 when installing exit handler7634 stops a running background task7635 when task responds to start7636 calls start7637 when start returns true7638 runs the task7639 when start returns false7640 does not run the task7641 when synchronous is set to true7642 calls join on the thread7643 #stop7644 is a no-op7645 when running7646 #start7647 raises an error7648 #stop7649 stops running7650 when task responds to stop7651 calls stop7652 when task stop raises an error7653 stops gracefully7654 reports the error7655 when task run raises exception7656#<Thread:0x00007fd50712f618@test_background_task /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:58 run> terminated with exception (report_on_exception is true):7657/builds/gitlab-org/gitlab/spec/lib/gitlab/background_task_spec.rb:189:in `block (5 levels) in <top (required)>': task error (RuntimeError)7658 from /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:60:in `block (2 levels) in start'7659 stops gracefully7660#<Thread:0x00007fd506e235a0@test_background_task /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:58 run> terminated with exception (report_on_exception is true):7661/builds/gitlab-org/gitlab/spec/lib/gitlab/background_task_spec.rb:189:in `block (5 levels) in <top (required)>': task error (RuntimeError)7662 from /builds/gitlab-org/gitlab/lib/gitlab/background_task.rb:60:in `block (2 levels) in start'7663 reports the error7664DashboardHelper7665 #dashboard_nav_links7666 has all the expected links by default7667 does not contain cross project elements when the user cannot read cross project7668 #feature_entry7669 when implicitly enabled7670 behaves like a feature is enabled7671 is expected to include "<p aria-label=\"Demo: status on\">"7672 when explicitly enabled7673 without links7674 behaves like a feature is enabled7675 is expected to include "<p aria-label=\"Demo: status on\">"7676 behaves like a feature without link7677 is expected not to have visible link "Documentation"7678 with configure link7679 behaves like a feature with configuration7680 is expected to have visible link "Demo" with href "demo.link"7681 with configure and documentation links7682 behaves like a feature with configuration7683 is expected to have visible link "Demo" with href "demo.link"7684 behaves like a feature with documentation7685 is expected to have visible link "Documentation" with href "doc.link"7686 when disabled7687 behaves like a feature is disabled7688 is expected to include "<p aria-label=\"Demo: status off\">"7689 behaves like a feature without link7690 is expected not to have visible link "Documentation"7691 .has_start_trial?7692 is expected to eq false7693 #reviewer_mrs_dashboard_path7694 is expected to eq "/dashboard/merge_requests?reviewer_username=user822"7695LegacyDiffNote7696 #to_ability_name7697 is expected to eq "note"7698 callbacks7699 #set_diff7700 when not importing7701 updates st_diff7702 when importing7703 does not update st_diff7704 when st_diff is blank7705 updates st_diff7706Ci::PipelineArtifacts::CodeCoveragePresenter7707 #for_files7708 when code coverage has data7709 when filenames is empty7710 returns hash without coverage7711 when filenames do not match code coverage data7712 returns hash without coverage7713 when filenames matches code coverage data7714 when asking for one filename7715 returns coverage for the given filename7716 when asking for multiple filenames7717 returns coverage for a the given filenames7718Clusters::Aws::FetchCredentialsService7719 #execute7720 provision role is configured7721 provider is specified7722 is expected to eq #<Double (anonymous)>7723 provider is not specifed7724 is expected to eq #<Double (anonymous)>7725 region is not specifed7726 is expected to eq #<Double (anonymous)>7727 provision role is not configured7728 raises an error7729 with an instance profile attached to an IAM role7730 provider is specified7731 returns credentials7732 provider is not specifed7733 returns credentials7734Gitlab::Ci::Config::Entry::Needs7735 validations7736 when entry config value is correct7737 #valid?7738 is expected to be valid7739 when config value has wrong type7740 #valid?7741 is expected not to be valid7742 #errors7743 returns error about incorrect type7744 when wrong needs type is used7745 #valid?7746 is expected not to be valid7747 #errors7748 returns error about incorrect type7749 when wrong needs type is used7750 #valid?7751 is expected not to be valid7752 #errors7753 returns error about incorrect type7754 with too many cross pipeline dependencies7755 #valid?7756 is expected not to be valid7757 #errors7758 returns error about incorrect type7759 .compose!7760 when valid job entries composed7761 #value7762 returns key value7763 behaves like entry with descendant nodes7764 #descendants7765 creates valid descendant nodes7766 with complex job entries composed7767 #value7768 returns key value7769 behaves like entry with descendant nodes7770 #descendants7771 creates valid descendant nodes7772 with mixed job entries composed7773 #value7774 returns key value7775 behaves like entry with descendant nodes7776 #descendants7777 creates valid descendant nodes7778 with empty config7779 #value7780 returns empty value7781Gitlab::Identifier7782 #identify7783 without an identifier7784 returns nil7785 with a user identifier7786 identifies the user using a user ID7787 with an SSH key identifier7788 identifies the user using an SSH key ID7789 #identify_using_user7790 returns the User for an existing ID in the identifier7791 returns nil for a non existing user ID7792 caches the found users per ID7793 #identify_using_ssh_key7794 returns the User for an existing SSH key7795 returns nil for an invalid SSH key7796 caches the found users per key7797notify/changed_milestone_email.html.haml7798 milestone without start and due dates7799 renders without date range7800 milestone with start and due dates7801 renders with date range7802Metrics::Dashboard::PanelPreviewService7803 #execute7804 valid panel's yaml7805 returns success service response7806 returns processed panel7807 uses dashboard processor7808 invalid panel's yaml7809 returns error service response7810 returns error message7811 returns error service response7812 returns error message7813 returns error service response7814 returns error message7815 returns error service response7816 returns error message7817Gitlab::Template::Finders::GlobalTemplateFinder7818 .find7819 with a non-prefixed General template7820 finds the template with no prefix7821 does not find a prefixed template7822 does not permit path traversal requests7823 while listed as an exclusion7824 does not find the template without a prefix7825 does not find the template with a prefix7826 finds another prefixed template with the same name7827 with a prefixed template7828 finds the template with a prefix7829 does not find the template without a prefix (PENDING: Temporarily skipped with xit)7830 does not permit path traversal requests7831 with include_categories_for_file being present7832 finds the template with a prefix7833 does not find any template which is missing in include_categories_for_file7834 while listed as an exclusion7835 does not find the template with a prefix7836 does not find the template without a prefix (PENDING: Temporarily skipped with xit)7837 finds another non-prefixed template with the same name7838 while listed as an exclusion7839 excludes the template matched the pattern7840Gitlab::Daemon7841 .instance7842 provides instance of Daemon7843 subsequent invocations provide the same instance7844 creates at_exit hook when instance is created7845 .initialize_instance7846 provides instance of Daemon7847 when instance has already been created7848 and recreate flag is false7849 raises an error7850 and recreate flag is true7851 calls stop on existing instance and returns new instance7852 when Daemon is enabled7853 when Daemon is stopped7854 #start7855 starts the Daemon7856 @synchronous7857 when @synchronous is set to true7858 calls join on the thread7859 when @synchronous is not set to a truthy value7860 does not call join on the thread7861 #stop7862 doesn't shutdown stopped Daemon7863 #start_working7864 when start_working fails7865 does not start thread7866 when Daemon is running7867 #start7868 doesn't start running Daemon7869 #stop7870 shutdowns Daemon7871 when stop_working raises exception7872#<Thread:0x00007fd4ed5a9dc0 /builds/gitlab-org/gitlab/lib/gitlab/daemon.rb:56 run> terminated with exception (report_on_exception is true):7873Interrupt (Interrupt)7874 shutdowns Daemon7875 when Daemon is disabled7876 #start7877 doesn't start working7878 #stop7879 doesn't stop working7880Releases::CreateEvidenceWorker7881 creates a new Evidence record7882 creates a new Evidence record with pipeline7883Banzai::Filter::ColorFilter7884 inserts color chip for supported color format #1237885 inserts color chip for supported color format #12347886 inserts color chip for supported color format #1234567887 inserts color chip for supported color format #123456787888 inserts color chip for supported color format rgb(0,0,0)7889 inserts color chip for supported color format RGB(0, 0, 0)7890 inserts color chip for supported color format rgba(0,0,0,1)7891 inserts color chip for supported color format RGBA(0,0,0,0.7)7892 inserts color chip for supported color format hsl(270,30%,50%)7893 inserts color chip for supported color format HSLA(270, 30%, 50%, .7)7894 ignores valid color code without backticks(code tags)7895 ignores valid color code with prepended space7896 ignores valid color code with appended space7897 ignores valid color code surrounded by spaces7898 ignores invalid color code7899Gitlab::Ci::Build::Credentials::Registry::GitlabRegistry7900 contains valid DockerRegistry credentials7901 .valid?7902 when registry is enabled7903 is expected to be truthy7904 when registry is disabled7905 is expected to be falsey7906UsageStatistics7907 .distinct_count_by7908 two records created by the same issue7909 returns a count of 17910 when given no column to count7911 counts by :id and returns a count of 27912 one record created by each issue7913 returns a count of 27914 the count query times out7915 does not raise an error7916 returns -17917Lfs::PushService7918 does nothing if there are no LFS objects7919 #execute7920 uploads the object when upload is requested7921 does not upload the object when upload is not requested7922 verifies the upload if requested7923 skips verification if requested but upload fails7924 returns a failure when submitting a batch fails7925 returns a failure when submitting an upload fails7926 non-project-repository LFS objects7927 only tries to upload the project-repository LFS object7928SearchServicePresenter7929 #search_objects7930 objects do not respond to eager_load7931 users scope7932 does not eager load anything7933 #show_results_status?7934 with_count: true, show_snippets: true, show_sort_dropdown: true, result: true7935 is expected to eq true7936 with_count: false, show_snippets: true, show_sort_dropdown: false, result: true7937 is expected to eq true7938 with_count: false, show_snippets: false, show_sort_dropdown: true, result: true7939 is expected to eq true7940 with_count: false, show_snippets: false, show_sort_dropdown: false, result: false7941 is expected to eq false7942Every API endpoint7943 feature categories7944 has feature categories7945 recognizes the feature categories7946 has no routes with multiple paths7947 doesn't define or exclude categories on removed actions7948Mutations::Clusters::AgentTokens::Create7949 is expected to require graphql authorizations :create_cluster7950 #resolve7951 without token permissions7952 raises an error if the resource is not accessible to the user7953 with user permissions7954 creates a new token7955 returns token information7956Gitlab::Database::BackgroundMigration::BatchedJobTransitionLog7957 is expected to be a kind of Gitlab::Database::SharedModel(abstract)7958 associations7959 is expected to belong to batched_job required: false7960 validations7961 is expected to validate that :previous_status cannot be empty/falsy7962 is expected to validate that :next_status cannot be empty/falsy7963 is expected to validate that :batched_job cannot be empty/falsy7964 is expected to validate that the length of :exception_class is at most 1007965 is expected to validate that the length of :exception_message is at most 10007966 is expected to define :previous_status as an enum backed by an integer with values ‹[:pending, :running, :failed, :succeeded]›, prefix: true7967 is expected to define :next_status as an enum backed by an integer with values ‹[:pending, :running, :failed, :succeeded]›, prefix: true7968Ci::ArchiveTraceWorker7969 #perform7970 when job is found7971 executes service7972 has preloaded the arguments for archiving7973 when job is not found7974 does not execute service7975Clusters::Kubernetes7976 is expected to be const defined :GITLAB_SERVICE_ACCOUNT_NAME7977 is expected to be const defined :GITLAB_SERVICE_ACCOUNT_NAMESPACE7978 is expected to be const defined :GITLAB_ADMIN_TOKEN_NAME7979 is expected to be const defined :GITLAB_CLUSTER_ROLE_BINDING_NAME7980 is expected to be const defined :GITLAB_CLUSTER_ROLE_NAME7981 is expected to be const defined :PROJECT_CLUSTER_ROLE_NAME7982 is expected to be const defined :GITLAB_KNATIVE_SERVING_ROLE_NAME7983 is expected to be const defined :GITLAB_KNATIVE_SERVING_ROLE_BINDING_NAME7984 is expected to be const defined :GITLAB_CROSSPLANE_DATABASE_ROLE_NAME7985 is expected to be const defined :GITLAB_CROSSPLANE_DATABASE_ROLE_BINDING_NAME7986Gitlab::Database::Partitioning::SingleNumericListPartition7987 .from_sql7988 uses specified table name7989 uses specified partition name7990 parses the definition7991 #partition_name7992 is the explicit name if provided7993 defaults to the table name followed by the partition value7994 sorting7995 is incomparable if the tables do not match7996 sorts by the value when the tables match7997 sorts by numeric value rather than text value7998Users::UpdateHighestMemberRoleService7999 #execute8000 when user_highest_role already exists8001 when the current highest access level equals the already stored highest access level8002 does not update the highest access level8003 when the current highest access level does not equal the already stored highest access level8004 updates the highest access level8005 when user_highest_role does not exist8006 creates an user_highest_role object to store the highest access level8007Integrations::BaseIssueTracker8008 Validations8009 only one issue tracker per project8010 when integration is changed manually by user8011 executes the validation8012 when integration is changed internally8013 does not execute the validation8014 #activate_disabled_reason8015 when there is an existing issue tracker integration8016 is expected to eq {:trackers=>[#<Integrations::CustomIssueTracker id: 28, project_id: 1089, created_at: "2022-11-04 14:...C\xB3\xE4", encrypted_properties_iv: "\xA8\xF5\r\xCA\x99\x88\xF6\x1E\xA5k\x84\n", properties: nil>]}8017 when there is no existing issue tracker integration8018 is expected to equal nil8019Gitlab::JiraImport::Stage::ImportNotesWorker8020 modules8021 behaves like include import workers modules8022 is expected to includes the ApplicationWorker module8023 is expected to includes the Gitlab::JiraImport::QueueOptions module8024 is expected to includes the Gitlab::JiraImport::ImportWorker module8025 #perform8026 when import did not start8027 behaves like cannot do Jira import8028 does not advance to next stage8029 behaves like does not advance to next stage8030 does not advance to next stage8031 when import started8032 behaves like advance to next stage8033 advances to finish stage8034Ci::PipelineScheduleVariable8035 behaves like CI variable8036 is expected to includes the Ci::HasVariable module8037 strips whitespaces when assigning key8038 can convert to runner variable8039 variable type8040 defines variable types8041 defaults variable type to env_var8042 supports variable type file8043AlertManagement::HttpIntegrations::UpdateService8044 #execute8045 when the current_user is anonymous8046 behaves like error response8047 has an informative message8048 when current_user does not have permission to create integrations8049 behaves like error response8050 has an informative message8051 when an error occurs during update8052 behaves like error response8053 has an informative message8054 with name param8055 successfully updates the integration8056 with active param8057 successfully updates the integration8058 with regenerate_token flag8059 successfully updates the integration8060Gitlab::GithubImport::Importer::NoteAttachmentsImporter8061 # order random8062 #execute8063 when importing release attachments8064 behaves like updates record description8065 is expected to include "<img width=\"248\" alt=\"tag-image\" src=\"/uploads"8066 when importing issue attachments8067 behaves like updates record description8068 is expected to include "<img width=\"248\" alt=\"tag-image\" src=\"/uploads"8069 when importing merge request attachments8070 behaves like updates record description8071 is expected to include "<img width=\"248\" alt=\"tag-image\" src=\"/uploads"8072 when importing note attachments8073 updates note text with new attachment urls8074Users::GroupCallout8075 behaves like having unique enum values8076 has unique values in "feature_name"8077 relationships8078 is expected to belong to group required: false8079 validations8080 is expected to validate that :group cannot be empty/falsy8081 is expected to validate that :feature_name cannot be empty/falsy8082 is expected to validate that :feature_name is unique within the scope of :user_id and :group_id8083 #source_feature_name8084 provides string based off source and feature8085Ci::BuildPendingState8086 #crc328087 when checksum does not exist8088 returns nil8089 when checksum is in hexadecimal8090 returns decimal representation of the checksum8091AlertManagement::HttpIntegrations::DestroyService8092 #execute8093 successfully returns the integration8094 when the current_user is anonymous8095 behaves like error response8096 has an informative message8097 when current_user does not have permission to create integrations8098 behaves like error response8099 has an informative message8100 when an error occurs during removal8101 behaves like error response8102 has an informative message8103MergeRequests::CreateApprovalEventService8104 #execute8105 creates approve MR event8106RuboCop::Cop::CodeReuse::ServiceClass8107 # order random8108 flags the use of a Service class in a Presenter8109 does not flag the use of a Service class in a regular class8110 flags the use of a Service class in a Finder8111 flags the use of a Service class in a model8112 flags the use of a Service class in a Serializer8113RspecFlaky::FlakyExample8114 #initialize8115 when given an Example.to_h8116 behaves like a valid FlakyExample instance8117 returns valid attributes8118 #update!8119 when given an Example hash8120 behaves like an up-to-date FlakyExample instance8121 sets the first_flaky_at if none exists8122 maintains the first_flaky_at if exists8123 updates the last_flaky_at8124 updates the flaky_reports8125 updates the last_attempts_count8126 when run on the CI8127 updates the last_flaky_job8128 #to_h8129 when given an Example hash8130 behaves like a valid FlakyExample hash8131 returns a valid hash8132BulkImports::Groups::Graphql::GetProjectsQuery8133 has a valid query8134 with invalid variables8135 raises an error8136 #data_path8137 returns data path8138 #page_info_path8139 returns pagination information path8140ArrayMembersValidator8141 children: [#<#<Class:0x00007fd4ff5a9c00>:0x00007fd4ff5a8fa8>], is_valid: true8142 only accepts valid children nodes8143 children: [#<#<Class:0x00007fd4ff5a8da0>:0x00007fd4ff5a8d50>], is_valid: false8144 only accepts valid children nodes8145 children: [#<#<Class:0x00007fd4ff5a9c00>:0x00007fd4ff5a8c10>, #<#<Class:0x00007fd4ff5a8be8>:0x00007fd4ff5a8b98>], is_valid: false8146 only accepts valid children nodes8147 children: [], is_valid: false8148 only accepts valid children nodes8149 children: #<#<Class:0x00007fd4ff5a9c00>:0x00007fd4ff5a8940>, is_valid: false8150 only accepts valid children nodes8151 children: [#<#<Class:0x00007fd4ff5a87d8>:0x00007fd4ff5a8788>], is_valid: false8152 only accepts valid children nodes8153 validation message8154 with default object name8155 uses attribute name8156 with custom object name8157 uses that name8158Sidebars::Groups::Menus::MergeRequestsMenu8159 #render?8160 when user can read merge requests8161 returns true8162 when user cannot read merge requests8163 returns false8164 behaves like pill_count formatted results8165 returns all digits for count value under 10008166 returns truncated digits for count value over 10008167 returns truncated digits for count value over 100008168 returns truncated digits for count value over 1000008169Gitlab::Template::Finders::RepoTemplateFinder8170 #read8171 returns the content of the given path8172 raises an error if the path does not exist8173 #find8174 returns the full path of the found template8175 does not permit path traversal requests8176 #list_files_for8177 returns the full path of the found files8178Gitlab::AlertManagement::AlertStatusCounts8179 #execute8180 for an unauthorized user8181 returns zero for all statuses8182 for an authorized user8183 returns the correct counts for each status8184 when filtering params are included8185 returns the correct counts for each status8186 when search param is included8187 returns the correct countss8188RuboCop::Cop::Performance::ReadlinesEach8189 # order random8190 when reading all lines using IO.readlines.each8191 autocorrects `readlines.each` to `each_line`8192 behaves like class_read8193 and it is called as a class method on IO8194 flags it as an offense8195 when just using readlines without each8196 does not flag it as an offense8197 behaves like class_read8198 and it is called as a class method on File8199 flags it as an offense8200 when just using readlines without each8201 does not flag it as an offense8202 and it is called as an instance method on a return value8203 flags it as an offense8204 and it is called as an instance method on an assigned variable8205 flags it as an offense8206 and it is called as an instance method on a new object8207 flags it as an offense8208 when just using readlines without each8209 does not flag it as an offense8210Gitlab::UsageDataCounters::VSCodeExtensionActivityUniqueCounter8211 when tracking a vs code api request8212 behaves like a request from an extension8213 tracks when the user agent is matching8214 does not track when the user agent is not matching8215 does not track if user agent is not present8216 does not track if user is not present8217Gitlab::Ci::Status::Created8218 #text8219 is expected to eq "created"8220 #label8221 is expected to eq "created"8222 #icon8223 is expected to eq "status_created"8224 #favicon8225 is expected to eq "favicon_status_created"8226 #group8227 is expected to eq "created"8228 #details_path8229 is expected to be nil8230Projects::AllIssuesCountService8231 behaves like a counter caching service8232 #count8233 caches the count8234 #refresh_cache8235 refreshes the cache8236 #delete_cache8237 removes the cache8238 #uncached_count8239 does not cache the count8240 #count8241 returns the number of all issues8242DependencyProxy::ImageTtlGroupPolicyWorker8243 #perform8244 when there are images to expire8245 updates the old images to pending_destruction8246 counts logging8247 logs all the counts8248 with load balancing enabled8249 reads the counts from the replica8250Gitlab::Database::SimilarityScore8251 when passing empty values8252 when search is nil8253 orders by a constant 0 value8254 when rules are empty8255 orders by a constant 0 value8256 when similarity scoring based on the path8257 when searching for `git`8258 is expected to eq ["git", "gitlab", "gitaly"]8259 when searching for `gitlab`8260 is expected to eq ["gitlab", "gitlab-styles", "gitlab-danger"]8261 when searching for something unrelated8262 results have 0 similarity score8263 score multiplier8264 ranks `path` matches higher8265 annotation8266 annotates the generated SQL expression8267CarrierWave::Storage::Fog::File8268 AWS8269 #copy_to8270 copies the file8271 Azure8272 #copy_to8273 copies the file8274 #authenticated_url8275 has an authenticated URL8276 with custom expire_at8277 properly sets expires param8278 with content_disposition option8279 passes options8280Projects::PipelineHelper8281 #js_pipeline_tabs_data8282 returns pipeline tabs data8283BlobEntity8284 as json8285 contains needed attributes8286projects/runners/specific_runners.html.haml8287 render8288 when project runner registration is allowed8289 enables the Remove project button for a project8290 when project runner registration is not allowed8291 does not enable the Remove project button for a project8292Mutations::SavedReplies::Update8293 #resolve8294 when feature is disabled8295 raises Gitlab::Graphql::Errors::ResourceNotAvailable8296 when feature is enabled for current user8297 when service fails to update a new saved reply8298 is expected to be nil8299 is expected to contain exactly "Content can't be blank", "Name can't be blank", and "Name can contain only lowercase letters, digits, '_' and '-'. Must start with a letter, and cannot end with '-' or '_'"8300 when service successfully updates the saved reply8301 is expected to eq "save_reply_name"8302 is expected to eq "Save Reply Content"8303 is expected to be empty8304Gitlab::Config::Entry::Configurable8305 validations8306 when entry is a hash8307 correctly validates an instance8308 when entry is not a hash8309 invalidates the instance8310 configured entries8311 .nodes8312 has valid nodes8313 creates a node factory8314 returns a duplicated factory object8315 .reserved_node_names8316 returns all nodes with reserved: true8317BulkImports::Pipeline8318 pipeline attributes8319 getters8320 retrieves class attributes8321 when extractor and loader are defined within the pipeline8322 returns itself when retrieving extractor & loader8323 setters8324 sets class attributes8325 #instantiate8326 when options are present8327 instantiates new object with options8328 when options are missing8329 instantiates new object without options8330 #transformers8331 has instance transform method first to run8332Users::InProductMarketingEmailRecords8333 initializes records8334 #save!8335 bulk inserts added records8336 resets its records8337 #add8338 adds a Users::InProductMarketingEmail record to its records8339Gitlab::Config::Entry::Undefined8340 #leaf?8341 is leaf node8342 #valid?8343 is always valid8344 #errors8345 is does not contain errors8346 #value8347 returns nil8348 #relevant?8349 is not relevant8350 #specified?8351 is not defined8352 #type8353 returns nil8354Banzai::Filter::KrokiFilter8355 replaces nomnoml pre tag with img tag if kroki is enabled8356 replaces nomnoml pre tag with img tag if both kroki and plantuml are enabled8357 does not replace nomnoml pre tag with img tag if kroki is disabled8358 does not replace plantuml pre tag with img tag if both kroki and plantuml are enabled8359 adds hidden attribute when content size is large8360 allows the lang attribute on the code tag to support RST files processed by gitlab-markup gem8361ProjectBadge8362 associations8363 is expected to belong to project required: false8364 validations8365 is expected to validate that :project cannot be empty/falsy8366 methods8367 #rendered_link_url8368 behaves like rendered_links8369 uses the badge project information to populate the url placeholders8370 #rendered_image_url8371 behaves like rendered_links8372 uses the badge project information to populate the url placeholders8373Mutations::BaseMutation8374 argument nullability8375 when using a mutation with correct argument declarations8376 when argument is nullable and required8377 is expected to raise ArgumentError with message matching /must be provided: foo/8378 is expected not to raise Exception8379 is expected not to raise Exception8380 when argument is required and NOT nullable8381 is expected to raise ArgumentError with message matching /must be provided/8382 is expected to raise ArgumentError with message matching /must be provided/8383 is expected not to raise Exception8384Types::ContainerRepositoryTagsSortEnum8385 is expected to eq "ContainerRepositoryTagSort"8386 exposes all the existing issue sort values8387admin/application_settings/_package_registry8388 package file size limits8389 has fields for max package file sizes8390 does not display the plan name when there is only one plan8391 with multiple plans8392 displays the plan name when there is more than one plan8393Clusters::Agents::DeleteExpiredEventsWorker8394 #perform8395 calls the deletion service8396 agent no longer exists8397 completes without raising an error8398layouts/_published_experiments8399 renders out data for all non-excluded, published experiments8400RuboCop::Cop::API::GrapeArrayMissingCoerce8401 # order random8402 does not add an offense8403 adds an offense with an optional parameter8404 adds an offense with a required parameter8405 does not add an offense for unrelated classes8406Tooling::TestMapGenerator8407 #parse8408 with single yaml8409 parses crystalball data into test mapping8410 stores test files without example uid8411 displays a warning when report has no examples8412 with multiple yamls8413 parses crystalball data into test mapping8414 stores test files without example uid8415API::Helpers::LabelHelpers8416 create_service_params8417 when a project is given8418 returns the expected params8419 when a group is given8420 returns the expected params8421 when something else is given8422 raises a type error8423Packages::PackagePolicy8424 when the user is part of the project8425 allows read_package8426 when the user is not part of the project8427 disallows read_package for any Package8428gitlab:metrics_exporter:install8429 when no target directory is specified8430Please specify the directory where you want to install the exporter8431Usage: rake "gitlab:metrics_exporter:install[/installation/dir]"8432 aborts with an error message8433 when target directory is specified8434 installs the exporter with gmake8435 installs the exporter with make8436 when dependencies are missing8437Couldn't find a 'make' binary8438 aborts with an error message8439 when overriding version via environment variable8440 clones from repository with that version instead8441Gitlab::GithubImport::Settings8442 # order random8443 #disabled?8444 returns is disabled or not specific optional stage8445 #enabled?8446 returns is enabled or not specific optional stage8447 #write8448 puts optional steps flags into projects import_data8449 .stages_array8450 returns stages list as array8451Gitlab::Database::AsyncIndexes::IndexDestructor8452 #perform8453 creates the index while controlling lock timeout8454 removes the index preparation record from postgres_async_indexes8455 skips logic if not able to acquire exclusive lease8456 when the index does not exist8457 skips index destruction8458Gitlab::SidekiqMiddleware::ExtraDoneLogMetadata8459 #call8460 merges Application#logging_extras in to job8461 does not raise when the worker does not respond to #done_log_extra_metadata8462UploadChecksumWorker8463 #perform8464 without a valid record8465 rescues ActiveRecord::RecordNotFound8466 with a valid record8467 calls calculate_checksum!8468 calls save!8469Gitlab::UsageDataCounters::MergeRequestCounter8470 behaves like a redis usage counter8471 .count(create)8472 increments the Merge Request create counter by 18473 .read(create)8474 returns the total number of create events8475 behaves like a redis usage counter with totals8476 totals8477 can report all totals8478 unknown events8479 cannot increment8480 cannot read8481Marginalia spec8482 For rails web requests8483 generates a query that includes the component and value8484 when using CI database8485 generates a query that includes the component and value8486 for Sidekiq worker jobs8487 generates a query that includes the component and value8488 for ActionMailer delivery jobs8489 generates a query that includes the component and value8490Gitlab::GithubImport::Attachments::ImportMergeRequestWorker8491 # order random8492 #import8493 imports an merge request attachments8494Types::Clusters::AgentTokenType8495 is expected to eq "ClusterAgentToken"8496 is expected to require graphql authorizations :read_cluster8497 is expected to have graphql fields :cluster_agent, :created_at, :created_by_user, :description, :id, :last_used_at, :name, and :status8498Gitlab::Graphql::Tracers::ApplicationContextTracer8499 sets application context during execute_query and cleans up afterwards8500 sets caller_id when operation is not known8501Gitlab::ImportExport::AttributeCleaner8502 removes unwanted attributes from the hash8503 removes attributes not present in relation_class8504 removes excluded keys from the hash8505 does not remove excluded key if not listed8506Ci::TriggersHelper8507 .builds_trigger_url8508 with no ref8509 is expected to eq "http://localhost/api/v4/projects/1/trigger/pipeline"8510 with ref8511 is expected to eq "http://localhost/api/v4/projects/1/ref/master/trigger/pipeline"8512 .service_trigger_url8513 is expected to eq "http://localhost/api/v4/projects/1/services/param/trigger"8514Gitlab::GitlabImport::Importer8515 #execute8516 persists issues8517Types::DesignManagement::VersionType8518 is expected to require graphql authorizations :read_design8519 has the expected fields8520Types::Ci::PipelineMessageType8521 is expected to eq "PipelineMessage"8522 contains attributes related to a pipeline message8523Gitlab::Auth::Saml::OriginValidator8524 #store_origin8525 stores the SAML request ID8526 #gitlab_initiated?8527 returns false if InResponseTo is not present8528 returns false if InResponseTo does not match stored value8529 returns true if InResponseTo matches stored value8530Gitlab::Chat8531 .available?8532 returns true when the chatops feature is available8533 returns false when the chatops feature is not available8534Gitlab::Email::Hook::SmimeSignatureInterceptor8535 signs the email appropriately with SMIME8536BlobViewer::RouteMap8537 #validation_message8538 calls prepare! on the viewer8539 when the configuration is valid8540 returns nil8541 when the configuration is invalid8542 returns the error message8543Gitlab::GrapeLogging::Loggers::FilterParameters8544 # order random8545 .parameters8546 when the log_safety setting is provided8547 includes safe parameters, and filters unsafe ones8548 when the log_safety is not provided8549 behaves like the normal parameter filter8550Gitlab::NamespacedSessionStore8551 current session8552 stores data under the specified key8553 retrieves data from the given key8554 passed in session8555 retrieves data from the given key8556AnyFieldValidator8557 when validation is instantiated correctly8558 raises an error if no fields are defined8559 validates if only one field is present8560 when validation is missing the fields parameter8561 raises an error8562Types::AwardEmojis::AwardEmojiType8563 is expected to eq "AwardEmoji"8564 is expected to require graphql authorizations :read_emoji8565 is expected to have graphql fields :description, :unicode_version, :emoji, :name, :unicode, and :user8566Gitlab::OtherMarkup8567 XSS Checks8568 does not convert dangerous links into HTML8569Types::Packages::Conan::FileMetadatumType8570 includes conan file metadatum fields8571BulkImports::Groups::Transformers::SubgroupToEntityTransformer8572 #transform8573 transforms subgroups data in entity params8574Gitlab::Pagination::Keyset::InOperatorOptimization::Strategies::RecordLoaderStrategy8575 #initializer_columns8576 returns a NULL table row as the result column8577 #columns8578 uses the finder query to load the row in the result column8579SystemCheck::BaseCheck8580 helpers on instance level8581 responds to SystemCheck::Helpers methods8582 responds to Gitlab::TaskHelpers methods8583sawyer_patch8584 # order random8585 raises error when acessing a method that expects an argument8586 raises error when acessing Sawyer Resource dynamic methods8587Types::NamespaceType8588 is expected to eq "Namespace"8589 has the expected fields8590 is expected to require graphql authorizations :read_namespace8591Create security training providers in development8592 # order random8593 behaves like security training providers importer8594OK8595 upserts security training providers8596Gitlab::GitalyClient::BlobsStitcher8597 enumeration8598 combines segregated blob messages together8599Types::DeploymentType8600 # order random8601 is expected to eq "Deployment"8602 has the expected fields8603 is expected to require graphql authorizations :read_deployment8604Types::BranchProtections::MergeAccessLevelType8605 # order random8606 is expected to require graphql authorizations :read_protected_branch8607 is expected to have graphql fields :access_level and :access_level_description8608ExportHelper8609 #project_export_descriptions8610 includes design management8611Ci::ScheduleDeleteObjectsCronWorker8612 #perform8613 enqueues DeleteObjectsWorker jobs8614Types::Ci::PipelineMergeRequestEventTypeEnum8615 is expected to eq "PipelineMergeRequestEventType"8616 has specific values8617Gitlab::Ci::Config::Normalizer::Factory8618 #create8619 when no strategy applies8620 is expected to be empty8621Types::Ci::TestReportSummaryType8622 is expected to eq "TestReportSummary"8623 contains attributes related to a pipeline test report summary8624help/show8625 Markdown rendering8626 renders Markdown8627Types::PermissionTypes::User8628 returns user permissions8629Types::WorkItems::Widgets::StartAndDueDateType8630 exposes the expected fields8631TokenAuthenticatableStrategies::Digest8632 #token_fields8633 includes the digest field8634Types::Packages::Conan::MetadatumFileTypeEnum8635 uses all possible options from model8636Ci::DailyBuildGroupReportResultSerializer8637 #to_json8638 returns an array of group results8639Knapsack report was generated. Preview:8640{8641 "spec/models/merge_request_spec.rb": 298.59172848399976,8642 "spec/finders/group_members_finder_spec.rb": 118.82135567200021,8643 "spec/uploaders/design_management/design_v432x230_uploader_spec.rb": 73.51398069300012,8644 "spec/finders/groups_finder_spec.rb": 60.72822876700047,8645 "spec/models/clusters/applications/cilium_spec.rb": 31.968892799999594,8646 "spec/lib/gitlab/database/migration_helpers_spec.rb": 25.907154348000404,8647 "spec/lib/gitlab/git_access_snippet_spec.rb": 42.5962369530007,8648 "spec/finders/notes_finder_spec.rb": 37.87391417899926,8649 "spec/services/ci/retry_job_service_spec.rb": 34.39943947399934,8650 "spec/workers/repository_fork_worker_spec.rb": 28.707067993000237,8651 "spec/services/merge_requests/cleanup_refs_service_spec.rb": 27.987746959000106,8652 "spec/policies/commit_policy_spec.rb": 28.552678088999528,8653 "spec/lib/gitlab/ssh_public_key_spec.rb": 9.615525748999971,8654 "spec/lib/gitlab/ci/build/rules/rule/clause/exists_spec.rb": 21.5521031950002,8655 "spec/workers/process_commit_worker_spec.rb": 16.48157314800028,8656 "spec/lib/gitlab/github_import/user_finder_spec.rb": 19.833500724999794,8657 "spec/policies/packages/policies/project_policy_spec.rb": 7.533206388000508,8658 "spec/models/resource_label_event_spec.rb": 15.430993799000134,8659 "spec/helpers/labels_helper_spec.rb": 13.434565098999883,8660 "spec/lib/gitlab/database/with_lock_retries_spec.rb": 15.425962940000318,8661 "spec/serializers/diffs_entity_spec.rb": 10.285310259000653,8662 "spec/services/projects/git_deduplication_service_spec.rb": 11.002669242000593,8663 "spec/services/jira/requests/projects/list_service_spec.rb": 11.488674850999814,8664 "spec/lib/gitlab/hashed_storage/migrator_spec.rb": 14.942736724000497,8665 "spec/lib/gitlab/url_sanitizer_spec.rb": 3.592898282000533,8666 "spec/lib/gitlab/prometheus/queries/additional_metrics_environment_query_spec.rb": 10.672009208999953,8667 "spec/models/import_export_upload_spec.rb": 7.58357030299976,8668 "spec/lib/gitlab/database/tables_truncate_spec.rb": 10.025459185999352,8669 "spec/services/alert_management/alerts/update_service_spec.rb": 5.675950953999745,8670 "spec/helpers/avatars_helper_spec.rb": 7.1039023839994115,8671 "spec/lib/api/helpers/packages/dependency_proxy_helpers_spec.rb": 3.4753445250007644,8672 "spec/services/clusters/create_service_spec.rb": 10.44327621299999,8673 "spec/lib/gitlab/database/background_migration/batched_job_spec.rb": 3.631821187999776,8674 "spec/uploaders/packages/package_file_uploader_spec.rb": 7.4568297060004625,8675 "spec/lib/gitlab/legacy_github_import/importer_spec.rb": 8.460825351000494,8676 "spec/services/notes/build_service_spec.rb": 7.222032960999968,8677 "spec/tasks/gitlab/packages/events_rake_spec.rb": 3.327390920000653,8678 "spec/lib/gitlab/search/recent_merge_requests_spec.rb": 7.5941694419998385,8679 "spec/lib/gitlab/gitaly_client_spec.rb": 2.534985594000318,8680 "spec/services/notes/copy_service_spec.rb": 7.231819600000563,8681 "spec/services/ci/create_pipeline_service/partitioning_spec.rb": 6.5722915390006165,8682 "spec/lib/gitlab/ci/reports/test_suite_summary_spec.rb": 6.490851527999439,8683 "spec/serializers/ci/trigger_entity_spec.rb": 7.263459566000165,8684 "spec/models/ci/persistent_ref_spec.rb": 6.49450522799998,8685 "spec/lib/gitlab/diff/suggestion_spec.rb": 6.378966830000536,8686 "spec/models/ci_platform_metric_spec.rb": 4.590427596999689,8687 "spec/lib/gitlab/import_export/base/relation_factory_spec.rb": 5.503065811999477,8688 "spec/finders/clusters/agents_finder_spec.rb": 4.987085356000534,8689 "spec/lib/banzai/filter/gollum_tags_filter_spec.rb": 4.0144739679999475,8690 "spec/presenters/project_clusterable_presenter_spec.rb": 6.6437792520000585,8691 "spec/lib/gitlab/diff/file_collection/compare_spec.rb": 4.947917290000078,8692 "spec/graphql/resolvers/container_repositories_resolver_spec.rb": 4.985957795999639,8693 "spec/lib/gitlab/kubernetes/helm/pod_spec.rb": 3.45235843699993,8694 "spec/lib/gitlab/ci/config/external/file/project_spec.rb": 3.80857431000004,8695 "spec/workers/repository_check/batch_worker_spec.rb": 5.871523923000495,8696 "spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb": 4.889229827000236,8697 "spec/services/ci/create_pipeline_service/tags_spec.rb": 3.5741480440001396,8698 "spec/lib/gitlab/import_export/project/export_task_spec.rb": 3.117914911999833,8699 "spec/workers/design_management/new_version_worker_spec.rb": 3.963798802999918,8700 "spec/lib/gitlab/i18n/translation_entry_spec.rb": 1.3950083229992742,8701 "spec/helpers/wiki_helper_spec.rb": 3.683217013000103,8702 "spec/services/metrics/dashboard/pod_dashboard_service_spec.rb": 2.2443522940002367,8703 "spec/lib/gitlab/git/keep_around_spec.rb": 4.053371134000372,8704 "spec/services/groups/group_links/destroy_service_spec.rb": 3.0909110450002117,8705 "spec/rack_servers/puma_spec.rb": 4.527963012000328,8706 "spec/models/time_tracking/timelog_category_spec.rb": 2.0775385719998667,8707 "spec/services/users/update_todo_count_cache_service_spec.rb": 3.668783905000055,8708 "spec/models/ci/job_variable_spec.rb": 2.260627153000314,8709 "spec/policies/deploy_keys_project_policy_spec.rb": 3.7261555479999515,8710 "spec/models/members/member_task_spec.rb": 3.1856661049996546,8711 "spec/graphql/mutations/customer_relations/contacts/create_spec.rb": 2.5642280310003116,8712 "spec/finders/ci/daily_build_group_report_results_finder_spec.rb": 3.354324287000054,8713 "spec/workers/environments/auto_stop_worker_spec.rb": 3.611803260999295,8714 "spec/lib/gitlab/ci/reports/security/scanner_spec.rb": 0.8693036480008232,8715 "spec/services/notes/destroy_service_spec.rb": 2.4415847339996617,8716 "spec/lib/gitlab/quick_actions/command_definition_spec.rb": 1.137836110000535,8717 "spec/lib/gitlab/robots_txt/parser_spec.rb": 1.1895603450002454,8718 "spec/models/work_items/type_spec.rb": 2.297672179000074,8719 "spec/graphql/resolvers/project_packages_resolver_spec.rb": 2.798024095999608,8720 "spec/lib/gitlab/subscription_portal_spec.rb": 0.8939600849998897,8721 "spec/models/deploy_keys_project_spec.rb": 2.4683018000005177,8722 "spec/lib/gitlab/checks/push_file_count_check_spec.rb": 3.165150408000045,8723 "spec/lib/banzai/filter/wiki_link_filter_spec.rb": 1.4435050579995732,8724 "spec/services/packages/nuget/sync_metadatum_service_spec.rb": 1.8604792639998777,8725 "spec/finders/keys_finder_spec.rb": 2.2457145040007163,8726 "spec/lib/gitlab/import_export/base/object_builder_spec.rb": 2.623313794000751,8727 "spec/services/security/ci_configuration/secret_detection_create_service_spec.rb": 2.8896135470004083,8728 "spec/graphql/resolvers/design_management/version/designs_at_version_resolver_spec.rb": 1.997529620000023,8729 "spec/services/packages/terraform_module/create_package_service_spec.rb": 1.9020934700001817,8730 "spec/rubocop/formatter/graceful_formatter_spec.rb": 0.9027738350005166,8731 "spec/lib/gitlab/ci/config/entry/include/rules/rule_spec.rb": 0.7228957639999862,8732 "spec/lib/gitlab/usage/metrics/aggregates/aggregate_spec.rb": 0.8989036150005631,8733 "spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rb": 1.1200075119995745,8734 "spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb": 0.9578671790004591,8735 "spec/lib/gitlab/query_limiting/transaction_spec.rb": 0.5937189980004405,8736 "spec/finders/resource_milestone_event_finder_spec.rb": 1.975542422000217,8737 "spec/graphql/types/board_list_type_spec.rb": 2.61068156500005,8738 "spec/services/clusters/agents/delete_service_spec.rb": 1.671112264999465,8739 "spec/models/issue_email_participant_spec.rb": 1.4549523570003657,8740 "spec/lib/gitlab/diff/file_collection/base_spec.rb": 2.2595895929998733,8741 "spec/rubocop/formatter/todo_formatter_spec.rb": 1.082667916999526,8742 "spec/lib/gitlab/untrusted_regexp_spec.rb": 0.6527683109998179,8743 "spec/lib/banzai/filter/inline_grafana_metrics_filter_spec.rb": 1.116434173000016,8744 "spec/lib/gitlab/database/async_indexes/migration_helpers_spec.rb": 0.9511871400000018,8745 "spec/lib/gitlab/background_task_spec.rb": 1.1991078040000502,8746 "spec/helpers/dashboard_helper_spec.rb": 1.0911448250008107,8747 "spec/models/legacy_diff_note_spec.rb": 1.554249907000667,8748 "spec/presenters/ci/pipeline_artifacts/code_coverage_presenter_spec.rb": 1.985228071000165,8749 "spec/services/clusters/aws/fetch_credentials_service_spec.rb": 1.3891738940001233,8750 "spec/lib/gitlab/ci/config/entry/needs_spec.rb": 0.9575182700000369,8751 "spec/lib/gitlab/identifier_spec.rb": 1.260784097999931,8752 "spec/views/notify/changed_milestone_email.html.haml_spec.rb": 1.2293540009995922,8753 "spec/services/metrics/dashboard/panel_preview_service_spec.rb": 0.7469120309997379,8754 "spec/lib/gitlab/template/finders/global_template_finder_spec.rb": 0.7418075119994683,8755 "spec/lib/gitlab/daemon_spec.rb": 0.7884674069991888,8756 "spec/workers/releases/create_evidence_worker_spec.rb": 2.6598905809996722,8757 "spec/lib/banzai/filter/color_filter_spec.rb": 0.7719207489999462,8758 "spec/lib/gitlab/ci/build/credentials/registry/gitlab_registry_spec.rb": 1.8416907359996912,8759 "spec/models/concerns/usage_statistics_spec.rb": 0.910695964000297,8760 "spec/services/lfs/push_service_spec.rb": 1.044925389999662,8761 "spec/presenters/search_service_presenter_spec.rb": 0.8783938179994948,8762 "spec/lib/api/every_api_endpoint_spec.rb": 1.8295744480001304,8763 "spec/graphql/mutations/clusters/agent_tokens/create_spec.rb": 1.1672724379995998,8764 "spec/lib/gitlab/database/background_migration/batched_job_transition_log_spec.rb": 0.6259748140000738,8765 "spec/workers/ci/archive_trace_worker_spec.rb": 1.421751920999668,8766 "spec/services/clusters/kubernetes_spec.rb": 0.6958566669991342,8767 "spec/lib/gitlab/database/partitioning/single_numeric_list_partition_spec.rb": 0.5025503169999865,8768 "spec/services/users/update_highest_member_role_service_spec.rb": 1.149749588999839,8769 "spec/models/integrations/base_issue_tracker_spec.rb": 1.2347647500000676,8770 "spec/workers/gitlab/jira_import/stage/import_notes_worker_spec.rb": 1.1225486319999618,8771 "spec/models/ci/pipeline_schedule_variable_spec.rb": 0.5293690839998817,8772 "spec/services/alert_management/http_integrations/update_service_spec.rb": 1.3678769549997014,8773 "spec/lib/gitlab/github_import/importer/note_attachments_importer_spec.rb": 1.3445917779999945,8774 "spec/models/users/group_callout_spec.rb": 0.6118049260003318,8775 "spec/models/ci/build_pending_state_spec.rb": 0.9322775719992933,8776 "spec/services/alert_management/http_integrations/destroy_service_spec.rb": 0.831430463000288,8777 "spec/services/merge_requests/create_approval_event_service_spec.rb": 1.6554930560005232,8778 "spec/rubocop/cop/code_reuse/service_class_spec.rb": 0.39080369000021165,8779 "spec/tooling/rspec_flaky/flaky_example_spec.rb": 0.7542365910003355,8780 "spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb": 0.6289007539999147,8781 "spec/validators/array_members_validator_spec.rb": 0.543255493000288,8782 "spec/lib/sidebars/groups/menus/merge_requests_menu_spec.rb": 1.0808799960004762,8783 "spec/lib/gitlab/template/finders/repo_template_finders_spec.rb": 1.1142799230001401,8784 "spec/lib/gitlab/alert_management/alert_status_counts_spec.rb": 1.4325490089995583,8785 "spec/rubocop/cop/performance/readlines_each_spec.rb": 0.6739774600000601,8786 "spec/lib/gitlab/usage_data_counters/vscode_extension_activity_unique_counter_spec.rb": 0.35845502200027113,8787 "spec/lib/gitlab/ci/status/created_spec.rb": 0.288729339999918,8788 "spec/services/projects/all_issues_count_service_spec.rb": 1.0826778660002674,8789 "spec/workers/dependency_proxy/image_ttl_group_policy_worker_spec.rb": 0.636917793000066,8790 "spec/lib/gitlab/database/similarity_score_spec.rb": 0.35885132200019143,8791 "spec/initializers/carrierwave_patch_spec.rb": 0.7653201299999637,8792 "spec/helpers/projects/pipeline_helper_spec.rb": 1.1300462509998397,8793 "spec/serializers/blob_entity_spec.rb": 0.9319471420003538,8794 "spec/views/projects/runners/_specific_runners.html.haml_spec.rb": 0.6423207119996732,8795 "spec/graphql/mutations/saved_replies/update_spec.rb": 0.7238864649998504,8796 "spec/lib/gitlab/config/entry/configurable_spec.rb": 0.38334660999953485,8797 "spec/lib/bulk_imports/pipeline_spec.rb": 0.466335710999374,8798 "spec/services/users/in_product_marketing_email_records_spec.rb": 0.5190575659999013,8799 "spec/lib/gitlab/config/entry/undefined_spec.rb": 0.4736955910002507,8800 "spec/lib/banzai/filter/kroki_filter_spec.rb": 0.4168475960004798,8801 "spec/models/badges/project_badge_spec.rb": 0.6984038159998818,8802 "spec/graphql/mutations/base_mutation_spec.rb": 0.6195740550001574,8803 "spec/graphql/types/container_respository_tags_sort_enum_spec.rb": 0.2972044090001873,8804 "spec/views/admin/application_settings/_package_registry.html.haml_spec.rb": 0.7210172539998894,8805 "spec/workers/clusters/agents/delete_expired_events_worker_spec.rb": 0.7130578149999565,8806 "spec/views/layouts/_published_experiments.html.haml_spec.rb": 0.2969706590001806,8807 "spec/rubocop/cop/api/grape_array_missing_coerce_spec.rb": 0.34780527299972164,8808 "spec/tooling/lib/tooling/test_map_generator_spec.rb": 0.29056399000000965,8809 "spec/lib/api/helpers/label_helpers_spec.rb": 0.7060303749995,8810 "spec/policies/packages/package_policy_spec.rb": 0.683517669000139,8811 "spec/lib/tasks/gitlab/metrics_exporter_task_spec.rb": 0.5346816930004934,8812 "spec/lib/gitlab/github_import/settings_spec.rb": 0.9882694269999774,8813 "spec/lib/gitlab/database/async_indexes/index_destructor_spec.rb": 0.6011708659998476,8814 "spec/lib/gitlab/sidekiq_middleware/extra_done_log_metadata_spec.rb": 0.21279206800045358,8815 "spec/workers/upload_checksum_worker_spec.rb": 0.7170621549994394,8816 "spec/lib/gitlab/usage_data_counters/merge_request_counter_spec.rb": 0.3144057680001424,8817 "spec/lib/marginalia_spec.rb": 0.6559722820002207,8818 "spec/workers/gitlab/github_import/attachments/import_merge_request_worker_spec.rb": 0.6821179989992743,8819 "spec/graphql/types/clusters/agent_token_type_spec.rb": 0.4682330109999384,8820 "spec/lib/gitlab/graphql/tracers/application_context_tracer_spec.rb": 0.23838502400030848,8821 "spec/lib/gitlab/import_export/attribute_cleaner_spec.rb": 0.28900398000041605,8822 "spec/helpers/ci/triggers_helper_spec.rb": 0.29030104000048595,8823 "spec/lib/gitlab/gitlab_import/importer_spec.rb": 0.7742466480003714,8824 "spec/graphql/types/design_management/version_type_spec.rb": 0.2029432090002956,8825 "spec/graphql/types/ci/pipeline_message_type_spec.rb": 0.587725698000213,8826 "spec/lib/gitlab/auth/saml/origin_validator_spec.rb": 0.7918205870000747,8827 "spec/lib/gitlab/chat_spec.rb": 0.2371711249998043,8828 "spec/lib/gitlab/email/hook/smime_signature_interceptor_spec.rb": 1.6150623499997891,8829 "spec/models/blob_viewer/route_map_spec.rb": 0.47086495100029424,8830 "spec/lib/gitlab/grape_logging/loggers/filter_parameters_spec.rb": 0.3190038459997595,8831 "spec/lib/gitlab/namespaced_session_store_spec.rb": 0.328891565000049,8832 "spec/validators/any_field_validator_spec.rb": 0.30011796800044976,8833 "spec/graphql/types/award_emojis/award_emoji_type_spec.rb": 0.39304179800001293,8834 "spec/lib/gitlab/other_markup_spec.rb": 0.24344954499974847,8835 "spec/graphql/types/packages/conan/file_metadatum_type_spec.rb": 0.3510852529998374,8836 "spec/lib/bulk_imports/groups/transformers/subgroup_to_entity_transformer_spec.rb": 0.3318793949993051,8837 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb": 0.26025697299974127,8838 "spec/lib/system_check/base_check_spec.rb": 0.18446650999976555,8839 "spec/initializers/sawyer_patch_spec.rb": 0.31197010799951386,8840 "spec/graphql/types/namespace_type_spec.rb": 0.37228967000010016,8841 "spec/db/development/add_security_training_providers_spec.rb": 0.5724922099998366,8842 "spec/lib/gitlab/gitaly_client/blobs_stitcher_spec.rb": 0.23869342500074708,8843 "spec/graphql/types/deployment_type_spec.rb": 0.3731115709997539,8844 "spec/graphql/types/branch_protections/merge_access_level_type_spec.rb": 0.4288968840000962,8845 "spec/helpers/export_helper_spec.rb": 0.43439859400041314,8846 "spec/workers/ci/schedule_delete_objects_cron_worker_spec.rb": 0.3121271669997441,8847 "spec/graphql/types/ci/pipeline_merge_request_event_type_enum_spec.rb": 0.3204738570002519,8848 "spec/lib/gitlab/ci/config/normalizer/factory_spec.rb": 0.4326046750002206,8849 "spec/graphql/types/ci/test_report_summary_type_spec.rb": 0.3378358740001204,8850 "spec/views/help/show.html.haml_spec.rb": 0.5016672579995429,8851 "spec/graphql/types/permission_types/user_spec.rb": 0.25348170300003403,8852 "spec/graphql/types/work_items/widgets/start_and_due_date_type_spec.rb": 0.33577645500008657,8853 "spec/models/concerns/token_authenticatable_strategies/digest_spec.rb": 0.2431802240007528,8854 "spec/graphql/types/packages/conan/metadatum_file_type_enum_spec.rb": 0.4601843219998045,8855 "spec/serializers/ci/daily_build_group_report_result_serializer_spec.rb": 0.277247829999396348856}8857Knapsack global time execution for tests: 22m 33s8858Pending: (Failures listed here are expected and do not affect your suite's status)8859 1) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when creating an object does not raise an error if the internal id is blank8860 # No reason given8861 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:498862 2) MergeRequest modules behaves like AtomicInternalId .has_internal_id Validation when presence validation is not required when updating an object does not raise an error if the internal id is blank8863 # No reason given8864 # ./spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb:578865 3) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 8866 # No pattern provided, skipping.8867 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88868 4) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #work_dir behaves like matches the method pattern 8869 # No pattern provided, skipping.8870 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88871 5) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #relative_path is relative8872 # Path not set, skipping.8873 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408874 6) DesignManagement::DesignV432x230Uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8875 # No pattern provided, skipping.8876 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88877 7) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 8878 # No pattern provided, skipping.8879 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88880 8) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 8881 # No pattern provided, skipping.8882 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88883 9) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #relative_path is relative8884 # Path not set, skipping.8885 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408886 10) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 8887 # No pattern provided, skipping.8888 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88889 11) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 8890 # No pattern provided, skipping.8891 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88892 12) Gitlab::Database::TablesTruncate when running in a single database mode raises an error when truncating the main database that it is a single database setup8893 # Skipping because multiple databases are set up8894 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2618895 13) Gitlab::Database::TablesTruncate when running in a single database mode raises an error when truncating the ci database that it is a single database setup8896 # Skipping because multiple databases are set up8897 # ./spec/lib/gitlab/database/tables_truncate_spec.rb:2678898 14) Packages::PackageFileUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 8899 # No pattern provided, skipping.8900 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88901 15) Packages::PackageFileUploader behaves like builds correct paths #relative_path is relative8902 # Path not set, skipping.8903 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408904 16) Packages::PackageFileUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 8905 # No pattern provided, skipping.8906 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88907 17) Packages::PackageFileUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 8908 # No pattern provided, skipping.8909 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88910 18) Packages::PackageFileUploader object store is remote behaves like builds correct paths #cache_dir behaves like matches the method pattern 8911 # No pattern provided, skipping.8912 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88913 19) Packages::PackageFileUploader object store is remote behaves like builds correct paths #work_dir behaves like matches the method pattern 8914 # No pattern provided, skipping.8915 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88916 20) Packages::PackageFileUploader object store is remote behaves like builds correct paths #upload_path behaves like matches the method pattern 8917 # No pattern provided, skipping.8918 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88919 21) Packages::PackageFileUploader object store is remote behaves like builds correct paths #relative_path is relative8920 # Path not set, skipping.8921 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:408922 22) Packages::PackageFileUploader object store is remote behaves like builds correct paths .absolute_path behaves like matches the method pattern 8923 # No pattern provided, skipping.8924 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88925 23) Packages::PackageFileUploader object store is remote behaves like builds correct paths .base_dir behaves like matches the method pattern 8926 # No pattern provided, skipping.8927 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:88928 24) Gitlab::Template::Finders::GlobalTemplateFinder.find with a prefixed template does not find the template without a prefix8929 # Temporarily skipped with xit8930 # ./spec/lib/gitlab/template/finders/global_template_finder_spec.rb:828931 25) Gitlab::Template::Finders::GlobalTemplateFinder.find with a prefixed template while listed as an exclusion does not find the template without a prefix8932 # Temporarily skipped with xit8933 # ./spec/lib/gitlab/template/finders/global_template_finder_spec.rb:1098934Finished in 22 minutes 37 seconds (files took 40.64 seconds to load)89353619 examples, 0 failures, 25 pending8936Randomized with seed 644498937[TEST PROF INFO] Time spent in factories: 15:19.941 (67.5% of total time)8938RSpec exited with 0.8939No examples to retry, congrats!8941Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy8942Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy8944Uploading artifacts...8945coverage/: found 5 matching files and directories 8946crystalball/: found 2 matching files and directories 8947deprecations/: found 6 matching files and directories 8948knapsack/: found 3 matching files and directories 8949rspec/: found 9 matching files and directories 8950WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 8951log/*.log: found 19 matching files and directories 8952WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3275962838/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8953WARNING: Retrying... context=artifacts-uploader error=request redirected8954Uploading artifacts as "archive" to coordinator... 201 Created id=3275962838 responseStatus=201 Created token=b1PifbeB8955Uploading artifacts...8956rspec/junit_rspec.xml: found 1 matching files and directories 8957WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3275962838/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8958WARNING: Retrying... context=artifacts-uploader error=request redirected8959Uploading artifacts as "junit" to coordinator... 201 Created id=3275962838 responseStatus=201 Created token=b1PifbeB8961Job succeeded