rspec unit pg12 24/28
Passed Started
by
@stanhu

Stan Hu
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on blue-1.private.runners-manager.gitlab.com/gitlab.com/gitlab-org 1zzGUpzq3 feature flags: FF_USE_FASTZIP:true, FF_USE_IMPROVED_URL_MASKING:true6Using Docker executor with image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:c5abf812eff57d99cd4ae9b4d688261207b59905c5d0ca50c5e57f75669dbf10 for postgres:12 with digest postgres@sha256:a66060c3beab11e6f8eac5581c28df727539653a3c11e860847b14149e678d3e ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:83c577984741ab5b2e78640e0524852998d539ea3961e6d56680f336371f5c83 for redis:6.0-alpine with digest redis@sha256:459e91c5fe54134da1601ef85a4d9bc40c953862737fdfbe8f3c2b2a3eb6b20b ...13Waiting for services to be up and running (timeout 30 seconds)...14Authenticating with credentials from job payload (GitLab Registry)15Pulling docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:5c5404ecc69273636c3ef49645be715ef30ea99e51ad146a2efbeac2a1875f9c for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12@sha256:b032fe79dc0bf3ebfaeb610c82eacc500fbd0ec6e01889444011cf5a72b4135d ...18Running on runner-1zzgupzq-project-278964-concurrent-0 via runner-1zzgupzq-private-1668119743-dd752f1d...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: 134695, done. 25remote: Counting objects: 100% (134695/134695), done. 26remote: Compressing objects: 100% (87197/87197), done. 27remote: Total 134695 (delta 60835), reused 93449 (delta 42513), pack-reused 0 28Receiving objects: 100% (134695/134695), 116.52 MiB | 28.02 MiB/s, done.29Resolving deltas: 100% (60835/60835), done.31 * [new ref] refs/pipelines/691761438 -> refs/pipelines/69176143832 * [new branch] master -> origin/master33Checking out 0a62f4a6 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 (3307837569)...45Downloading artifacts from coordinator... ok id=3307837569 responseStatus=200 OK token=G-8dY9HM46Downloading artifacts for detect-tests (3307837577)...47Downloading artifacts from coordinator... ok id=3307837577 responseStatus=200 OK token=G-8dY9HM48Downloading artifacts for retrieve-tests-metadata (3307837579)...49Downloading artifacts from coordinator... ok id=3307837579 responseStatus=200 OK token=G-8dY9HM50Downloading artifacts for setup-test-env (3307837573)...51Downloading artifacts from coordinator... ok id=3307837573 responseStatus=200 OK token=G-8dY9HM53Using 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.sh688Using decomposed database config (config/database.yml.decomposed-postgresql)689$ setup_db_user_only690CREATE ROLE691GRANT692==> 'setup_db_user_only' succeeded in 1 seconds.693$ bundle exec rake db:drop db:create db:schema:load db:migrate694Dropped database 'gitlabhq_test'695Dropped database 'gitlabhq_test_ci'696Dropped database 'gitlabhq_geo_test'697Created database 'gitlabhq_test'698Created database 'gitlabhq_test_ci'699Created database 'gitlabhq_geo_test'700==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 40 seconds.701$ setup_db_praefect702SELECT pg_catalog.set_config('search_path', '', false);703CREATE DATABASE praefect_test ENCODING 'UTF8';704==> 'setup_db_praefect' succeeded in 0 seconds.705$ source ./scripts/rspec_helpers.sh706$ run_timed_command "gem install knapsack --no-document"707$ gem install knapsack --no-document708Successfully installed knapsack-4.0.07091 gem installed710==> 'gem install knapsack --no-document' succeeded in 1 seconds.711$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"825$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"826SKIP_FLAKY_TESTS_AUTOMATICALLY: true827RETRY_FAILED_TESTS_IN_NEW_PROCESS: true828KNAPSACK_GENERATE_REPORT: true829FLAKY_RSPEC_GENERATE_REPORT: true830KNAPSACK_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.rb831KNAPSACK_LOG_LEVEL: debug832KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_24_28_report.json833FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json834FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_24_28_report.json835NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_24_28_report.json836SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_24_28_report.txt837RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_24_28_report.txt838CRYSTALBALL: 839Knapsack node specs:840spec/services/merge_requests/build_service_spec.rb841spec/models/repository_spec.rb842spec/models/project_team_spec.rb843spec/services/projects/transfer_service_spec.rb844spec/tasks/gitlab/workhorse_rake_spec.rb845spec/models/ci/build_trace_chunk_spec.rb846spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb847spec/services/merge_requests/merge_to_ref_service_spec.rb848spec/services/ci/retry_job_service_spec.rb849spec/routing/project_routing_spec.rb850spec/models/ci/ref_spec.rb851spec/presenters/ci/build_runner_presenter_spec.rb852spec/lib/gitlab/bare_repository_import/importer_spec.rb853spec/lib/gitlab/background_migration/backfill_ci_queuing_tables_spec.rb854spec/models/merge_request_diff_commit_spec.rb855spec/lib/gitlab/utils/usage_data_spec.rb856spec/graphql/mutations/merge_requests/accept_spec.rb857spec/uploaders/external_diff_uploader_spec.rb858spec/lib/gitlab/background_migration/backfill_upvotes_count_on_issues_spec.rb859spec/lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy_spec.rb860spec/models/suggestion_spec.rb861spec/lib/banzai/filter/references/project_reference_filter_spec.rb862spec/models/discussion_spec.rb863spec/models/timelog_spec.rb864spec/helpers/users_helper_spec.rb865spec/workers/container_registry/migration/enqueuer_worker_spec.rb866spec/models/packages/debian/group_distribution_spec.rb867spec/models/diff_discussion_spec.rb868spec/lib/gitlab/background_migration/backfill_group_features_spec.rb869spec/lib/gitlab/ci/cron_parser_spec.rb870spec/lib/gitlab/background_migration/backfill_namespace_id_for_project_route_spec.rb871spec/finders/starred_projects_finder_spec.rb872spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb873spec/models/integrations/teamcity_spec.rb874spec/services/merge_requests/retarget_chain_service_spec.rb875spec/finders/merge_requests/oldest_per_commit_finder_spec.rb876spec/services/packages/conan/create_package_file_service_spec.rb877spec/lib/gitlab/background_migration/backfill_project_namespace_on_issues_spec.rb878spec/finders/context_commits_finder_spec.rb879spec/services/notes/copy_service_spec.rb880spec/helpers/colors_helper_spec.rb881spec/uploaders/ci/pipeline_artifact_uploader_spec.rb882spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb883spec/lib/gitlab/auth/current_user_mode_spec.rb884spec/services/projects/operations/update_service_spec.rb885spec/policies/personal_snippet_policy_spec.rb886spec/policies/design_management/design_policy_spec.rb887spec/services/ci/test_failure_history_service_spec.rb888spec/models/issue_link_spec.rb889spec/lib/gitlab/ci/reports/test_suite_comparer_spec.rb890spec/models/deploy_key_spec.rb891spec/models/badge_spec.rb892spec/services/security/ci_configuration/secret_detection_create_service_spec.rb893spec/serializers/ci/dag_job_entity_spec.rb894spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb895spec/lib/gitlab/gl_repository/repo_type_spec.rb896spec/config/object_store_settings_spec.rb897spec/lib/gitlab/import_export/group/tree_saver_spec.rb898spec/lib/gitlab/ci/status/build/waiting_for_approval_spec.rb899spec/lib/api/helpers/packages_helpers_spec.rb900spec/services/milestones/closed_issues_count_service_spec.rb901spec/models/state_note_spec.rb902spec/workers/namespaces/process_sync_events_worker_spec.rb903spec/helpers/boards_helper_spec.rb904spec/services/ci/create_pipeline_service/rate_limit_spec.rb905spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb906spec/finders/concerns/finder_with_group_hierarchy_spec.rb907spec/lib/gitlab/ci/project_config_spec.rb908spec/models/integrations/youtrack_spec.rb909spec/models/container_registry/event_spec.rb910spec/services/projects/hashed_storage/base_attachment_service_spec.rb911spec/lib/gitlab/ci/variables/builder/project_spec.rb912spec/services/work_items/widgets/hierarchy_service/update_service_spec.rb913spec/graphql/types/base_enum_spec.rb914spec/tasks/cache/clear/redis_spec.rb915spec/serializers/release_serializer_spec.rb916spec/lib/gitlab/file_hook_spec.rb917spec/lib/gitlab/database/count/exact_count_strategy_spec.rb918spec/workers/deployments/hooks_worker_spec.rb919spec/services/git/wiki_push_service/change_spec.rb920spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb921spec/graphql/resolvers/merge_requests_count_resolver_spec.rb922spec/tasks/gitlab/artifacts/check_rake_spec.rb923spec/workers/projects/process_sync_events_worker_spec.rb924spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb925spec/lib/error_tracking/sentry_client/repo_spec.rb926spec/graphql/mutations/container_repositories/destroy_tags_spec.rb927spec/models/loose_foreign_keys/deleted_record_spec.rb928spec/models/concerns/cacheable_attributes_spec.rb929spec/lib/gitlab/ci/config/external/rules_spec.rb930spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb931spec/lib/gitlab/issuable_metadata_spec.rb932spec/models/tree_spec.rb933spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb934spec/workers/run_pipeline_schedule_worker_spec.rb935spec/services/namespaces/statistics_refresher_service_spec.rb936spec/views/layouts/simple_registration.html.haml_spec.rb937spec/lib/gitlab/security/scan_configuration_spec.rb938spec/sidekiq_cluster/sidekiq_cluster_spec.rb939spec/graphql/graphql_triggers_spec.rb940spec/services/ci/create_pipeline_service/variables_spec.rb941spec/lib/banzai/pipeline_spec.rb942spec/lib/gitlab/private_commit_email_spec.rb943spec/models/clusters/agents/project_authorization_spec.rb944spec/policies/clusters/agents/activity_event_policy_spec.rb945spec/graphql/types/current_user_todos_type_spec.rb946spec/experiments/concerns/project_commit_count_spec.rb947spec/lib/gitlab/ci/pipeline/expression/lexeme/equals_spec.rb948spec/helpers/x509_helper_spec.rb949spec/services/packages/rubygems/process_gem_service_spec.rb950spec/services/projects/detect_repository_languages_service_spec.rb951spec/services/projects/lfs_pointers/lfs_link_service_spec.rb952spec/lib/sidebars/projects/panel_spec.rb953spec/policies/identity_provider_policy_spec.rb954spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb955spec/models/concerns/runners_token_prefixable_spec.rb956spec/graphql/mutations/issues/set_subscription_spec.rb957spec/lib/gitlab/background_migration/batching_strategies/remove_backfilled_job_artifacts_expire_at_batching_strategy_spec.rb958spec/presenters/packages/nuget/package_metadata_presenter_spec.rb959spec/helpers/notifications_helper_spec.rb960spec/services/ci/job_token_scope/remove_project_service_spec.rb961spec/graphql/mutations/clusters/agents/delete_spec.rb962spec/lib/gitlab/background_migration/backfill_project_namespace_details_spec.rb963spec/services/ci/ensure_stage_service_spec.rb964spec/workers/incident_management/add_severity_system_note_worker_spec.rb965spec/views/projects/tree/show.html.haml_spec.rb966spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb967spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb968spec/lib/gitlab/jwt_token_spec.rb969spec/lib/gitlab/gitaly_client/conflict_files_stitcher_spec.rb970spec/workers/stage_update_worker_spec.rb971spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb972spec/lib/api/entities/nuget/metadatum_spec.rb973spec/models/bulk_import_spec.rb974spec/finders/resource_milestone_event_finder_spec.rb975spec/lib/bitbucket/page_spec.rb976spec/models/design_user_mention_spec.rb977spec/lib/gitlab/dependency_linker/podfile_linker_spec.rb978spec/rubocop/cop/migration/migration_record_spec.rb979spec/lib/gitlab/push_options_spec.rb980spec/views/profiles/show.html.haml_spec.rb981spec/helpers/keyset_helper_spec.rb982spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb983spec/presenters/milestone_presenter_spec.rb984spec/workers/pages_domain_verification_worker_spec.rb985spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb986spec/models/concerns/stepable_spec.rb987spec/services/test_hooks/system_service_spec.rb988spec/models/concerns/nullify_if_blank_spec.rb989spec/views/admin/sessions/new.html.haml_spec.rb990spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb991spec/views/profiles/keys/_form.html.haml_spec.rb992spec/policies/clusters/agent_policy_spec.rb993spec/graphql/types/issue_sort_enum_spec.rb994spec/lib/gitlab/app_logger_spec.rb995spec/services/timelogs/delete_service_spec.rb996spec/services/dependency_proxy/head_manifest_service_spec.rb997spec/workers/import_issues_csv_worker_spec.rb998spec/lib/bulk_imports/projects/pipelines/auto_devops_pipeline_spec.rb999spec/presenters/ci/trigger_presenter_spec.rb1000spec/services/milestones/merge_requests_count_service_spec.rb1001spec/models/work_items/widgets/start_and_due_date_spec.rb1002spec/tooling/rspec_flaky/flaky_example_spec.rb1003spec/services/pages_domains/create_service_spec.rb1004spec/serializers/context_commits_diff_entity_spec.rb1005spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb1006spec/support_specs/matchers/event_store_spec.rb1007spec/views/projects/branches/index.html.haml_spec.rb1008spec/lib/gitlab/repository_size_error_message_spec.rb1009spec/lib/gitlab/graphql/present/field_extension_spec.rb1010spec/serializers/issue_serializer_spec.rb1011spec/models/snippet_input_action_collection_spec.rb1012spec/services/clusters/agents/create_activity_event_service_spec.rb1013spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb1014spec/services/pages_domains/delete_service_spec.rb1015spec/lib/gitlab/github_import/settings_spec.rb1016spec/graphql/types/milestone_type_spec.rb1017spec/workers/ci/build_prepare_worker_spec.rb1018spec/workers/delete_user_worker_spec.rb1019spec/workers/onboarding/progress_worker_spec.rb1020spec/lib/gitlab/buffered_io_spec.rb1021spec/views/errors/omniauth_error.html.haml_spec.rb1022spec/lib/gitlab/config/entry/boolean_spec.rb1023spec/models/concerns/safe_url_spec.rb1024spec/lib/gitlab/usage_data_counters/merge_request_widget_extension_counter_spec.rb1025spec/rubocop/cop/graphql/resolver_type_spec.rb1026spec/workers/issuable/label_links_destroy_worker_spec.rb1027spec/helpers/projects/cluster_agents_helper_spec.rb1028spec/policies/packages/package_policy_spec.rb1029spec/services/users/validate_manual_otp_service_spec.rb1030spec/graphql/types/container_expiration_policy_keep_enum_spec.rb1031spec/helpers/timeboxes_routing_helper_spec.rb1032spec/rubocop/qa_helpers_spec.rb1033spec/serializers/impersonation_access_token_serializer_spec.rb1034spec/lib/service_ping/permit_data_categories_spec.rb1035spec/lib/constraints/jira_encoded_url_constrainer_spec.rb1036spec/lib/gitlab/git/changed_path_spec.rb1037spec/lib/gitlab/graphql/negatable_arguments_spec.rb1038spec/services/projects/apple_target_platform_detector_service_spec.rb1039spec/graphql/types/projects/repository_language_type_spec.rb1040spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb1041spec/graphql/types/packages/package_details_type_spec.rb1042spec/graphql/types/repository/blob_type_spec.rb1043spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb1044spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb1045spec/rubocop/cop/scalability/idempotent_worker_spec.rb1046spec/lib/bitbucket/paginator_spec.rb1047spec/lib/bulk_imports/clients/graphql_spec.rb1048spec/graphql/types/work_items/widgets/assignees_type_spec.rb1049spec/rubocop/cop/rspec/web_mock_enable_spec.rb1050spec/lib/gitlab/dependency_linker/base_linker_spec.rb1051spec/rubocop/cop/gitlab/except_spec.rb1052spec/graphql/types/issuable_searchable_field_enum_spec.rb1053spec/sidekiq/cron/job_gem_dependency_spec.rb1054spec/lib/gitlab/other_markup_spec.rb1055spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb1056spec/serializers/integrations/project_serializer_spec.rb1057spec/models/concerns/token_authenticatable_strategies/digest_spec.rb1058Filter specs:1059Running specs:1060Running all node tests without filter1061spec/services/merge_requests/build_service_spec.rb1062spec/models/repository_spec.rb1063spec/models/project_team_spec.rb1064spec/services/projects/transfer_service_spec.rb1065spec/tasks/gitlab/workhorse_rake_spec.rb1066spec/models/ci/build_trace_chunk_spec.rb1067spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb1068spec/services/merge_requests/merge_to_ref_service_spec.rb1069spec/services/ci/retry_job_service_spec.rb1070spec/routing/project_routing_spec.rb1071spec/models/ci/ref_spec.rb1072spec/presenters/ci/build_runner_presenter_spec.rb1073spec/lib/gitlab/bare_repository_import/importer_spec.rb1074spec/lib/gitlab/background_migration/backfill_ci_queuing_tables_spec.rb1075spec/models/merge_request_diff_commit_spec.rb1076spec/lib/gitlab/utils/usage_data_spec.rb1077spec/graphql/mutations/merge_requests/accept_spec.rb1078spec/uploaders/external_diff_uploader_spec.rb1079spec/lib/gitlab/background_migration/backfill_upvotes_count_on_issues_spec.rb1080spec/lib/gitlab/background_migration/batching_strategies/backfill_project_namespace_per_group_batching_strategy_spec.rb1081spec/models/suggestion_spec.rb1082spec/lib/banzai/filter/references/project_reference_filter_spec.rb1083spec/models/discussion_spec.rb1084spec/models/timelog_spec.rb1085spec/helpers/users_helper_spec.rb1086spec/workers/container_registry/migration/enqueuer_worker_spec.rb1087spec/models/packages/debian/group_distribution_spec.rb1088spec/models/diff_discussion_spec.rb1089spec/lib/gitlab/background_migration/backfill_group_features_spec.rb1090spec/lib/gitlab/ci/cron_parser_spec.rb1091spec/lib/gitlab/background_migration/backfill_namespace_id_for_project_route_spec.rb1092spec/finders/starred_projects_finder_spec.rb1093spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb1094spec/models/integrations/teamcity_spec.rb1095spec/services/merge_requests/retarget_chain_service_spec.rb1096spec/finders/merge_requests/oldest_per_commit_finder_spec.rb1097spec/services/packages/conan/create_package_file_service_spec.rb1098spec/lib/gitlab/background_migration/backfill_project_namespace_on_issues_spec.rb1099spec/finders/context_commits_finder_spec.rb1100spec/services/notes/copy_service_spec.rb1101spec/helpers/colors_helper_spec.rb1102spec/uploaders/ci/pipeline_artifact_uploader_spec.rb1103spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb1104spec/lib/gitlab/auth/current_user_mode_spec.rb1105spec/services/projects/operations/update_service_spec.rb1106spec/policies/personal_snippet_policy_spec.rb1107spec/policies/design_management/design_policy_spec.rb1108spec/services/ci/test_failure_history_service_spec.rb1109spec/models/issue_link_spec.rb1110spec/lib/gitlab/ci/reports/test_suite_comparer_spec.rb1111spec/models/deploy_key_spec.rb1112spec/models/badge_spec.rb1113spec/services/security/ci_configuration/secret_detection_create_service_spec.rb1114spec/serializers/ci/dag_job_entity_spec.rb1115spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb1116spec/lib/gitlab/gl_repository/repo_type_spec.rb1117spec/config/object_store_settings_spec.rb1118spec/lib/gitlab/import_export/group/tree_saver_spec.rb1119spec/lib/gitlab/ci/status/build/waiting_for_approval_spec.rb1120spec/lib/api/helpers/packages_helpers_spec.rb1121spec/services/milestones/closed_issues_count_service_spec.rb1122spec/models/state_note_spec.rb1123spec/workers/namespaces/process_sync_events_worker_spec.rb1124spec/helpers/boards_helper_spec.rb1125spec/services/ci/create_pipeline_service/rate_limit_spec.rb1126spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb1127spec/finders/concerns/finder_with_group_hierarchy_spec.rb1128spec/lib/gitlab/ci/project_config_spec.rb1129spec/models/integrations/youtrack_spec.rb1130spec/models/container_registry/event_spec.rb1131spec/services/projects/hashed_storage/base_attachment_service_spec.rb1132spec/lib/gitlab/ci/variables/builder/project_spec.rb1133spec/services/work_items/widgets/hierarchy_service/update_service_spec.rb1134spec/graphql/types/base_enum_spec.rb1135spec/tasks/cache/clear/redis_spec.rb1136spec/serializers/release_serializer_spec.rb1137spec/lib/gitlab/file_hook_spec.rb1138spec/lib/gitlab/database/count/exact_count_strategy_spec.rb1139spec/workers/deployments/hooks_worker_spec.rb1140spec/services/git/wiki_push_service/change_spec.rb1141spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb1142spec/graphql/resolvers/merge_requests_count_resolver_spec.rb1143spec/tasks/gitlab/artifacts/check_rake_spec.rb1144spec/workers/projects/process_sync_events_worker_spec.rb1145spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb1146spec/lib/error_tracking/sentry_client/repo_spec.rb1147spec/graphql/mutations/container_repositories/destroy_tags_spec.rb1148spec/models/loose_foreign_keys/deleted_record_spec.rb1149spec/models/concerns/cacheable_attributes_spec.rb1150spec/lib/gitlab/ci/config/external/rules_spec.rb1151spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb1152spec/lib/gitlab/issuable_metadata_spec.rb1153spec/models/tree_spec.rb1154spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb1155spec/workers/run_pipeline_schedule_worker_spec.rbKnapsack report generator started!1156Run options: exclude {:quarantine=>true, :level=>"migration"}1157Test environment set up in 1.595697668 seconds1158MergeRequests::BuildService1159 #execute1160 calls the compare service with the correct arguments1161 does not assign force_remove_source_branch1162 with force_remove_source_branch parameter when the user is authorized1163 assigns force_remove_source_branch1164 with project setting remove_source_branch_after_merge false1165 assigns force_remove_source_branch1166 with project setting remove_source_branch_after_merge true1167 assigns force_remove_source_branch1168 with force_remove_source_branch parameter false1169 does not assign force_remove_source_branch1170 missing source branch1171 behaves like forbids the merge request from being created1172 returns that the merge request cannot be created1173 adds an error message to the merge request1174 when target branch is missing1175 when source branch1176 is not the repository default branch1177 creates compare object with target branch as default branch1178 behaves like allows the merge request to be created1179 is expected to eq true1180 the repository default branch1181 behaves like forbids the merge request from being created1182 returns that the merge request cannot be created1183 adds an error message to the merge request1184 when source project is different from the target project1185 creates compare object with target branch as default branch1186 behaves like allows the merge request to be created1187 is expected to eq true1188 same source and target branch1189 behaves like forbids the merge request from being created1190 returns that the merge request cannot be created1191 adds an error message to the merge request1192 no commits in the diff1193 adds a Draft prefix to the merge request title1194 behaves like allows the merge request to be created1195 is expected to eq true1196 one commit in the diff1197 uses the title of the commit as the title of the merge request1198 uses the description of the commit as the description of the merge request1199 behaves like allows the merge request to be created1200 is expected to eq true1201 behaves like with a Default.md template1202 the template description is preferred1203 merge request already has a description set1204 keeps the description from the initial params1205 commit has no description1206 uses the title of the commit as the title of the merge request1207 sets the description to nil1208 behaves like with a Default.md template1209 the template description is preferred1210 when the source branch matches an issue1211 factory: :jira_integration, source_branch: "FOO-123-fix-issue", closing_message: "Closes FOO-123"1212 uses the title of the commit as the title of the merge request1213 appends the closing description1214 a Default.md template is defined1215 appends the closing description to a Default.md template1216 factory: :jira_integration, source_branch: "fix-issue", closing_message: nil1217 uses the title of the commit as the title of the merge request1218 appends the closing description1219 a Default.md template is defined1220 appends the closing description to a Default.md template1221 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", closing_message: "Closes #123"1222 uses the title of the commit as the title of the merge request1223 appends the closing description1224 a Default.md template is defined1225 appends the closing description to a Default.md template1226 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", closing_message: nil1227 uses the title of the commit as the title of the merge request1228 appends the closing description1229 a Default.md template is defined1230 appends the closing description to a Default.md template1231 factory: nil, source_branch: "123-fix-issue", closing_message: "Closes #123"1232 uses the title of the commit as the title of the merge request1233 appends the closing description1234 a Default.md template is defined1235 appends the closing description to a Default.md template1236 factory: nil, source_branch: "fix-issue", closing_message: nil1237 uses the title of the commit as the title of the merge request1238 appends the closing description1239 a Default.md template is defined1240 appends the closing description to a Default.md template1241 when the source branch matches an internal issue1242 assigns the issue label and milestone1243 when milestone_id and label_ids are shared in the params1244 assigns milestone_id and label_ids instead of issue labels and milestone1245 when a milestone is from another project1246 sets milestone to nil1247 no multi-line commit messages in the diff1248 uses the title of the branch as the merge request title1249 does not add a description1250 behaves like allows the merge request to be created1251 is expected to eq true1252 behaves like with a Default.md template1253 the template description is preferred1254 merge request already has a description set1255 keeps the description from the initial params1256 a Default.md template is defined1257 keeps the description from the initial params1258 when the source branch matches an issue1259 factory: :jira_integration, source_branch: "FOO-123-fix-issue", title: "Resolve FOO-123 \"Fix issue\"", closing_message: "Closes FOO-123"1260 sets the correct title1261 sets the closing description1262 a Default.md template is defined1263 appends the closing description to a Default.md template1264 factory: :jira_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1265 sets the correct title1266 sets the closing description1267 a Default.md template is defined1268 appends the closing description to a Default.md template1269 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", title: "Resolve #123 \"Fix issue\"", closing_message: "Closes #123"1270 sets the correct title1271 sets the closing description1272 a Default.md template is defined1273 appends the closing description to a Default.md template1274 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1275 sets the correct title1276 sets the closing description1277 a Default.md template is defined1278 appends the closing description to a Default.md template1279 factory: nil, source_branch: "123-fix-issue", title: "Resolve \"A bug\"", closing_message: "Closes #123"1280 sets the correct title1281 sets the closing description1282 a Default.md template is defined1283 appends the closing description to a Default.md template1284 factory: nil, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1285 sets the correct title1286 sets the closing description1287 a Default.md template is defined1288 appends the closing description to a Default.md template1289 factory: nil, source_branch: "124-fix-issue", title: "124 fix issue", closing_message: nil1290 sets the correct title1291 sets the closing description1292 a Default.md template is defined1293 appends the closing description to a Default.md template1294 a multi-line commit message in the diff1295 uses the first line of the first multi-line commit message as the title1296 adds the remaining lines of the first multi-line commit message as the description1297 behaves like allows the merge request to be created1298 is expected to eq true1299 behaves like with a Default.md template1300 the template description is preferred1301 when the source branch matches an issue1302 factory: :jira_integration, source_branch: "FOO-123-fix-issue", title: "Resolve FOO-123 \"Fix issue\"", closing_message: "Closes FOO-123"1303 sets the correct title1304 sets the closing description1305 a Default.md template is defined1306 appends the closing description to a Default.md template1307 factory: :jira_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1308 sets the correct title1309 sets the closing description1310 a Default.md template is defined1311 appends the closing description to a Default.md template1312 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", title: "Resolve #123 \"Fix issue\"", closing_message: "Closes #123"1313 sets the correct title1314 sets the closing description1315 a Default.md template is defined1316 appends the closing description to a Default.md template1317 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1318 sets the correct title1319 sets the closing description1320 a Default.md template is defined1321 appends the closing description to a Default.md template1322 factory: nil, source_branch: "123-fix-issue", title: "Resolve \"A bug\"", closing_message: "Closes #123"1323 sets the correct title1324 sets the closing description1325 a Default.md template is defined1326 appends the closing description to a Default.md template1327 factory: nil, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1328 sets the correct title1329 sets the closing description1330 a Default.md template is defined1331 appends the closing description to a Default.md template1332 factory: nil, source_branch: "124-fix-issue", title: "124 fix issue", closing_message: nil1333 sets the correct title1334 sets the closing description1335 a Default.md template is defined1336 appends the closing description to a Default.md template1337 when the issue is not accessible to user1338 uses the first line of the first multi-line commit message as the title1339 adds the remaining lines of the first multi-line commit message as the description1340 when the issue is confidential1341 uses the first line of the first multi-line commit message as the title1342 adds the remaining lines of the first multi-line commit message as the description1343 source branch does not exist1344 behaves like forbids the merge request from being created1345 returns that the merge request cannot be created1346 adds an error message to the merge request1347 target branch does not exist1348 behaves like forbids the merge request from being created1349 returns that the merge request cannot be created1350 adds an error message to the merge request1351 both source and target branches do not exist1352 behaves like forbids the merge request from being created1353 returns that the merge request cannot be created1354 adds an error message to the merge request1355 upstream project has disabled merge requests1356 sets target project correctly1357 target_project is set and accessible by current_user1358 sets target project correctly1359 target_project is set but not accessible by current_user1360 sets target project correctly1361 target_project is set but repo is not accessible by current_user1362 sets target project correctly1363 source_project is set and accessible by current_user1364 sets source project correctly1365 source_project is set but not accessible by current_user1366 sets source project correctly1367 source_project is set but the user cannot create merge requests from the project1368 sets the source_project correctly1369 target_project is not in the fork network of source_project1370 adds an error to the merge request1371 target_project is in the fork network of source project but no longer accessible1372 sets the target_project correctly1373 when specifying target branch in the description1374 sets the attribute from the quick actions1375 when assigning labels1376 for members with less than developer access1377 is not allowed1378 for users allowed to assign labels1379 for labels in the project1380 is allowed for developers1381 for unrelated labels1382 only assigns related labels1383 #assign_description_from_repository_template1384 performs no action if the merge request description is not blank1385 when a Default template is not found1386 does not modify the merge request description1387 when a Default template is found1388 when its contents cannot be retrieved1389 does not modify the merge request description1390 when its contents can be retrieved1391 modifies the merge request description1392Repository1393 #branch_names_contains1394 is expected to include "master"1395 is expected not to include "feature"1396 is expected not to include "fix"1397 when limit is provided1398 is expected to contain exactly "'test'"1399 when storage is broken1400 raises a storage error1401 #tag_names_contains1402 is expected to include "v1.1.0"1403 is expected not to include "v1.0.0"1404 when limit is provided1405 is expected to contain exactly "v1.1.0"1406 #tags_sorted_by1407 name_desc1408 is expected to eq ["v1.1.0", "v1.0.0"]1409 name_asc1410 is expected to eq ["v1.0.0", "v1.1.0"]1411 with pagination1412 with limit1413 is expected to eq ["v1.0.0"]1414 with page token and limit1415 is expected to eq ["v1.1.0"]1416 with page token only1417 raises an ArgumentError1418 with negative limit1419 returns all tags1420 with unknown token1421 raises an ArgumentError1422 updated1423 desc1424 is expected to eq ["v0.0.0", "v1.1.0", "v1.0.0"]1425 asc1426 is expected to eq ["v1.0.0", "v1.1.0", "v0.0.0"]1427 annotated tag pointing to a blob1428 is expected to eq ["v1.0.0", "v1.1.0", "annotated-tag"]1429 semantic versioning sort1430 desc1431 is expected to eq ["v10.0.0", "v2.0.0", "v1.1.0", "v1.0.0"]1432 asc1433 is expected to eq ["v1.0.0", "v1.1.0", "v2.0.0", "v10.0.0"]1434 unknown option1435 is expected to eq ["v1.0.0", "v1.1.0"]1436 #ref_exists?1437 when ref exists1438 returns true1439 when ref does not exist1440 returns false1441 when ref format is incorrect1442 returns false1443 #search_branch_names1444 returns matching branch names1445 #list_last_commits_for_tree1446 returns the last commits for every entry in the current path1447 returns the last commits for every entry in the current path starting from the offset1448 returns a limited number of last commits for every entry in the current path starting from the offset1449 returns an empty hash when offset is out of bounds1450 with a commit with invalid UTF-8 path1451 does not raise an error1452 #last_commit_for_path1453 is expected to eq "c1acaa58bbcbc3eafe538cb8274ba387047b69f8"1454 when storage is broken1455 raises a storage error1456 with filename with pathspec characters1457 returns a commit SHA1458 #last_commit_id_for_path1459 returns last commit id for a given path1460 caches last commit id for a given path1461 when storage is broken1462 raises a storage error1463 with filename with pathspec characters1464 returns a commit SHA1465 #commits1466 when neither the all flag nor a ref are specified1467 returns every commit from default branch1468 when ref is passed1469 returns every commit from the specified ref1470 when all1471 returns every commit from the repository1472 with path1473 sets follow when it is a single path1474 does not set follow when it is multiple paths1475 without path1476 does not set follow1477 when 'author' is set1478 returns commits from that author1479 doesn't returns commits from an unknown author1480 when 'all' flag is set1481 returns every commit from the repository1482 when 'order' flag is set1483 passes order option to perform the query1484 #new_commits1485 when there are no new commits1486 returns an empty array1487 when new commits are found1488 returns the commits1489 #commits_by1490 finds each commit1491 returns only Commit instances1492 when some commits are not found1493 returns only found commits1494 when no oids are passed1495 does not call #batch_by_oid1496 #commits_between1497 delegates to Gitlab::Git::Commit#between, returning decorated commits1498 defaults to no limit1499 #find_commits_by_message1500 returns commits with messages containing a given string1501 is case insensitive1502 when storage is broken1503 raises a storage error1504 #list_commits_by1505 returns commits with messages containing a given string1506 is case insensitive1507 returns commits based in before filter1508 returns commits based in after filter1509 returns commits based in author filter1510 when storage is broken1511 raises a storage error1512 #blob_at1513 blank sha1514 is expected to be nil1515 regular blob1516 is expected to be an instance of Blob1517 readme blob not on HEAD1518 is expected to be an instance of Blob1519 #merged_to_root_ref?1520 merged branch without ff1521 is expected to be truthy1522 merged with ff1523 is expected to be truthy1524 not merged branch1525 is expected to be falsey1526 default branch1527 is expected to be falsey1528 non merged branch1529 is expected to be falsey1530 non existent branch1531 is expected to be nil1532 #root_ref_sha1533 is expected to eq "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"1534 #merged_branch_names1535 is expected to eq #<Set: {"definitely_merged"}>1536 is expected to be a kind of Set1537 cache expiry1538 is expired when the branches caches are expired1539 is expired when the repository caches are expired1540 cache is empty1541 is expected to eq #<Set: {"definitely_merged"}>1542 cache values1543 writes the values to redis1544 matches the supplied hash1545 cache is not empty1546 is expected to eq #<Set: {"definitely_merged"}>1547 doesn't fetch from the disk1548 cache is partially complete1549 is expected to eq #<Set: {"definitely_merged"}>1550 does fetch from the disk1551 requested branches array is empty1552 is expected to eq #<Set: {"definitely_merged"}>1553 #can_be_merged?1554 mergeable branches1555 is expected to be truthy1556 non-mergeable branches without conflict sides missing1557 is expected to be falsey1558 non-mergeable branches with conflict sides missing1559 is expected to be falsey1560 submodule changes that confuse rugged1561 is expected to be falsey1562 #commit1563 when ref exists1564 returns commit object1565 when ref does not exist1566 returns nil1567 when ref is not specified1568 is using a root ref1569 when ref is not valid1570 when preceding tree element exists1571 returns nil1572 when preceding tree element does not exist1573 returns nil1574 #create_dir1575 commits a change that creates a new directory1576 when committing to another project1577 creates a fork and commit to the forked project1578 when an author is specified1579 uses the given email/name to set the commit's author1580 #create_file1581 commits new file successfully1582 creates new file and dir when file_path has a forward slash1583 respects the autocrlf setting1584 when an author is specified1585 uses the given email/name to set the commit's author1586 #update_file1587 updates file successfully1588 updates filename successfully1589 when an author is specified1590 uses the given email/name to set the commit's author1591 #delete_file1592 removes file successfully1593 when an author is specified1594 uses the given email/name to set the commit's author1595 search_files_by_content1596 is expected to be a kind of Array1597 regex-escapes the query string1598 properly handles an unmatched parenthesis1599 properly handles when query is not present1600 properly handles query when repo is empty1601 when storage is broken1602 raises a storage error1603 result1604 is expected to be a kind of String1605 is expected to eq "master:CHANGELOG\u0000190\u0000 - Feature: Replace teams with group membership\n"1606 search_files_by_name1607 returns result1608 ignores leading slashes1609 properly handles when query is only slashes1610 properly handles when query is not present1611 properly handles query when repo is empty1612 when storage is broken1613 raises a storage error1614 #search_files_by_wildcard_path1615 when specifying a normal path1616 returns the path1617 when specifying a wildcard path1618 returns files matching the path in the root folder1619 when specifying a wildcard path for all1620 returns all matching files in all folders1621 when specifying a path to subfolders using two asterisks and a slash1622 returns all files matching the path1623 when specifying a wildcard path to subfolder with just two asterisks1624 returns all files in the matching path1625 when specifying a wildcard path to subfolder with one asterisk1626 returns all files in the matching path1627 when specifying a wildcard path for an unknown number of subfolder levels1628 returns all matched files in all subfolders1629 when specifying a wildcard path to one level of subfolders1630 returns all matched files in one subfolder1631 when sending regexp1632 ignores the regexp and returns an empty array1633 when sending another ref1634 returns an empty array1635 #fetch_as_mirror1636 fetches the URL without creating a remote1637 #fetch_ref1638 when storage is broken1639 raises a storage error1640 #get_raw_changes1641 with non-UTF8 bytes in paths1642 returns the changes1643 #create_ref1644 redirects the call to write_ref1645 #changelog1646 accepts changelog1647 accepts news instead of changelog1648 accepts history instead of changelog1649 accepts changes instead of changelog1650 is case-insensitive1651 #license_blob1652 handles when HEAD points to non-existent ref1653 looks in the root_ref only1654 detects license file with no recognizable open-source license content1655 detects 'LICENSE'1656 detects 'LICENCE'1657 detects 'LiCensE'1658 detects 'LICENSE.md'1659 detects 'LICENSE.foo'1660 detects 'COPYING'1661 detects 'COPYING.md'1662 #license_key1663 returns nil when no license is detected1664 returns nil when the repository does not exist1665 returns other when the content is not recognizable1666 returns nil when the commit SHA does not exist1667 returns nil when master does not exist1668 returns the license key1669 with feature flag license_from_gitaly=true1670 #license1671 returns nil when no license is detected1672 returns nil when the repository does not exist1673 returns other when the content is not recognizable1674 returns the license1675 with feature flag license_from_gitaly=false1676 #license1677 returns nil when no license is detected1678 returns nil when the repository does not exist1679 returns other when the content is not recognizable1680 returns the license1681 #gitlab_ci_yml1682 returns valid file1683 returns nil if not exists1684 returns nil for empty repository1685 #ambiguous_ref?1686 when ref is ambiguous1687 is true1688 when ref is not ambiguous1689 is false1690 #has_ambiguous_refs?1691 branch_names: nil, tag_names: nil, result: false1692 is expected to eq false1693 branch_names: [], tag_names: [], result: false1694 is expected to eq false1695 branch_names: ["a", "b"], tag_names: [], result: false1696 is expected to eq false1697 branch_names: [], tag_names: ["c", "d"], result: false1698 is expected to eq false1699 branch_names: ["a", "b"], tag_names: ["c", "d"], result: false1700 is expected to eq false1701 branch_names: ["a/b"], tag_names: ["c/d"], result: false1702 is expected to eq false1703 branch_names: ["a", "b"], tag_names: ["c", "d", "a/z"], result: true1704 is expected to eq true1705 branch_names: ["a", "b", "c/z"], tag_names: ["c", "d"], result: true1706 is expected to eq true1707 branch_names: ["a/b/z"], tag_names: ["a/b"], result: false1708 is expected to eq false1709 branch_names: ["a/b/z"], tag_names: ["a/b", "a"], result: true1710 is expected to eq true1711 branch_names: ["ab"], tag_names: ["abc/d", "a", "b"], result: false1712 is expected to eq false1713 #expand_ref1714 when ref is not tag or branch name1715 returns nil1716 when ref is tag name1717 returns the tag ref1718 when ref is branch name1719 returns the branch ref1720 #add_branch1721 calls Gitaly's OperationService1722 creates_the_branch1723 expires branches cache1724 with a non-existing target1725 returns false and doesn't create the branch1726 when expire_cache: false1727 does not expire branches cache1728 #exists?1729 returns true when a repository exists1730 returns false if no full path can be constructed1731 with broken storage1732 raises a storage error1733 behaves like asymmetric cached method1734 asymmetric caching1735 when it returns true1736 caches the output in RequestStore1737 caches the output in RepositoryCache1738 when it returns false1739 caches the output in RequestStore1740 does NOT cache the output in RepositoryCache1741 #has_visible_content?1742 delegates to raw_repository when true1743 delegates to raw_repository when false1744 behaves like asymmetric cached method1745 asymmetric caching1746 when it returns true1747 caches the output in RequestStore1748 caches the output in RepositoryCache1749 when it returns false1750 caches the output in RequestStore1751 does NOT cache the output in RepositoryCache1752 #branch_exists?1753 delegates to branch_names when the cache is empty1754 uses redis set caching when the cache is filled1755 #tag_exists?1756 delegates to tag_names when the cache is empty1757 uses redis set caching when the cache is filled1758 #branch_names1759 gets cached across Repository instances1760 #empty?1761 returns true for an empty repository1762 returns false for a non-empty repository1763 caches the output1764 #blobs_at1765 returns empty array for an empty repository1766 returns blob array for a non-empty repository1767 when Gitaly returns NoRepository1768 returns empty array1769 #root_ref1770 returns a branch name1771 caches the output1772 returns nil if the repository does not exist1773 behaves like asymmetric cached method1774 asymmetric caching1775 when it returns true1776 caches the output in RequestStore1777 caches the output in RepositoryCache1778 when it returns false1779 caches the output in RequestStore1780 does NOT cache the output in RepositoryCache1781 #expire_root_ref_cache1782 expires the root reference cache1783 #expire_branch_cache1784 expires the cache for all branches1785 expires the cache for all branches when the root branch is given1786 expires the cache for a specific branch1787 #expire_emptiness_caches1788 expires the caches for an empty repository1789 does not expire the cache for a non-empty repository1790 expires the memoized repository cache1791 skip_merges option1792 is expected not to include "e56497bb5f03a90a51293fc6d516788730953899"1793 #merge1794 merges the code and returns the commit id1795 sets the `in_progress_merge_commit_sha` flag for the given merge request1796 removes carriage returns from commit message1797 #merge_to_ref1798 writes merge of source SHA and first parent ref to MR merge_ref_path1799 #ff_merge1800 merges the code and return the commit id1801 sets the `in_progress_merge_commit_sha` flag for the given merge request1802 #rebase1803 executes the new Gitaly RPC1804 behaves like a method that can rebase successfully1805 returns the rebase commit sha1806 sets the `rebase_commit_sha` for the given merge request1807 rolling back the `rebase_commit_sha`1808 does not rollback when there are no errors1809 does rollback when a PreReceiveError is encountered in the second step1810 does rollback when a GitError is encountered in the second step1811 #revert1812 when there is a conflict1813 raises an error1814 when commit was already reverted1815 raises an error1816 when commit can be reverted1817 reverts the changes1818 reverting a merge commit1819 reverts the changes1820 #cherry_pick1821 when there is a conflict1822 raises an error1823 when commit was already cherry-picked1824 raises an error1825 when commit can be cherry-picked1826 cherry-picks the changes1827 cherry-picking a merge commit1828 cherry-picks the changes1829 #before_delete1830 when a repository does not exist1831 does not flush caches that depend on repository data1832 flushes the tags cache1833 flushes the branches cache1834 flushes the root ref cache1835 flushes the emptiness caches1836 flushes the exists cache1837 when a repository exists1838 flushes the tags cache1839 flushes the branches cache1840 flushes the root ref cache1841 flushes the emptiness caches1842 #before_change_head1843 flushes the branch cache1844 flushes the root ref cache1845 #after_change_head1846 flushes the method caches1847 calls after_repository_change_head on container1848 #expires_caches_for_tags1849 flushes the cache1850 #before_push_tag1851 logs an event1852 #after_push_commit1853 expires statistics caches1854 #after_create_branch1855 expires the branch caches1856 does not expire the branch caches when specified1857 #after_remove_branch1858 expires the branch caches1859 does not expire the branch caches when specified1860 #lookup1861 uses the lookup cache1862 returns the correct value1863 #after_create1864 calls expire_status_cache1865 logs an event1866 #expire_status_cache1867 flushes the exists cache1868 flushes the root ref cache1869 flushes the emptiness caches1870 #copy_gitattributes1871 returns true with a valid ref1872 returns false with an invalid ref1873 #before_remove_tag1874 flushes the tag cache1875 #branch_count1876 returns the number of branches1877 #tag_count1878 returns the number of tags1879 #expire_branches_cache1880 expires the cache1881 #expire_protected_branches_cache1882 expires the cache1883 when repository does not have a project1884 does not expire the cache1885 #expire_tags_cache1886 expires the cache1887 #add_tag1888 with a valid target1889 creates the tag1890 returns a Gitlab::Git::Tag object1891 with an invalid target1892 returns false1893 #rm_branch1894 removes a branch1895 when pre hooks failed1896 gets an error and does not delete the branch1897 #rm_tag1898 removes a tag1899 #find_tag1900 finds a tag with specified name by performing FindTag request1901 does not perform Gitaly call when tags are preloaded1902 returns nil when tag does not exists1903 #avatar1904 returns nil if repo does not exist1905 returns the first avatar file found in the repository1906 caches the output1907 #expire_exists_cache1908 expires the cache1909 expires the request store cache1910 #xcode_project?1911 when the root contains a *.xcodeproj directory1912 returns true1913 when the root contains a *.xcworkspace directory1914 returns true1915 when the root contains no Xcode config directory1916 returns false1917 #contribution_guide1918 returns and caches the output1919 #gitignore1920 returns and caches the output1921 #readme1922 with a non-existing repository1923 returns nil1924 with an existing repository1925 when no README exists1926 returns nil1927 #readme_path1928 with a non-existing repository1929 returns nil1930 with an existing repository1931 when no README exists1932 returns nil1933 when a README exists1934 returns the README1935 caches the response1936 #expire_statistics_caches1937 expires the caches1938 #expire_all_method_caches1939 expires the caches of all methods1940 all cache_method definitions are in the lists of method caches1941 #file_on_head1942 with a non-existing repository1943 returns nil1944 with a repository that has no blobs1945 returns nil1946 with an existing repository1947 returns a Gitlab::Git::Tree1948 #head_tree1949 with an existing repository1950 returns a Tree1951 with a non-existing repository1952 returns nil1953 behaves like #tree1954 using a non-existing repository1955 is expected to be nil1956 when path is defined1957 is expected to be nil1958 using an existing repository1959 is expected to be an instance of Tree1960 when different sha is set1961 is expected to be an instance of Tree1962 when recursive is true1963 is expected to be an instance of Tree1964 with pagination parameters1965 is expected to be an instance of Tree1966 #tree? with Rugged enabled1967 behaves like #tree1968 using a non-existing repository1969 is expected to be nil1970 when path is defined1971 is expected to be nil1972 using an existing repository1973 is expected to be an instance of Tree1974 when different sha is set1975 is expected to be an instance of Tree1976 when recursive is true1977 is expected to be an instance of Tree1978 with pagination parameters1979 is expected to be an instance of Tree1980 #size1981 with a non-existing repository1982 returns 01983 with an existing repository1984 returns the repository size as a Float1985 #local_branches1986 returns the local branches1987 #commit_count1988 with a non-existing repository1989 returns 01990 with an existing repository1991 returns the commit count1992 #commit_count_for_ref1993 with a non-existing repository1994 returns 01995 with empty repository1996 returns 01997 when searching for the root ref1998 returns the same count as #commit_count1999 #refresh_method_caches2000 refreshes the caches of the given types2001 #gitlab_ci_yml_for2002 when there is a .gitlab-ci.yml at the commit2003 returns the content2004 when there is no .gitlab-ci.yml at the commit2005 returns nil2006 #changelog_config2007 when there is a changelog_config_path at the commit2008 returns the content2009 when there is no changelog_config_path at the commit2010 returns nil2011 #route_map_for2012 when there is a .gitlab/route-map.yml at the commit2013 returns the content2014 when there is no .gitlab/route-map.yml at the commit2015 returns nil2016 #ancestor? with Gitaly enabled2017 behaves like #ancestor?2018 is an ancestor2019 is not an ancestor2020 returns false on nil-values2021 returns false for invalid commit IDs2022 caching2023 only calls out to Gitaly once2024 returns the value from the request store2025 returns the value from the redis cache2026 #ancestor? with Rugged enabled2027 calls out to the Rugged implementation2028 behaves like #ancestor?2029 is an ancestor2030 is not an ancestor2031 returns false on nil-values2032 returns false for invalid commit IDs2033 #archive_metadata2034 with hashed storage disabled2035 uses the project path to generate the filename2036 with hashed storage enabled2037 uses the project path to generate the filename2038 commit cache2039 caches based on SHA2040 caches nil values2041 #raw_repository2042 returns a Gitlab::Git::Repository representation of the repository2043 with a wiki repository2044 creates a Gitlab::Git::Repository with the proper attributes2045 #contributors2046 returns the array of Gitlab::Contributor for the repository2047 order_by email2048 asc2049 returns all the contributors ordered by email asc case insensitive2050 desc2051 returns all the contributors ordered by email desc case insensitive2052 order_by name2053 asc2054 returns all the contributors ordered by name asc case insensitive2055 desc2056 returns all the contributors ordered by name desc case insensitive2057 order_by commits2058 asc2059 returns all the contributors ordered by commits asc2060 desc2061 returns all the contributors ordered by commits desc2062 invalid ordering2063 returns the contributors unsorted2064 invalid sorting2065 returns the contributors unsorted2066 #merge_base2067 only makes one gitaly call2068 #create_if_not_exists2069 creates the repository if it did not exist2070 returns true2071 calls out to the repository client to create a repo2072 creates a repository with a default branch name2073 it does nothing if the repository already existed2074 does nothing if the repository already existed2075 returns nil2076 when the repository exists but the cache is not up to date2077 does not raise errors2078 returns nil2079 #create_from_bundle2080 calls out to the raw_repository to create a repo from bundle2081 calls after_create2082 when exception is raised2083 after_create is not executed2084 #blobs_metadata2085 returns blob metadata in batch for HEAD2086 returns blob metadata for a specified ref2087 performs a single gitaly call2088 #project2089 returns the project for a project snippet2090 returns nil for a personal snippet2091 returns the project for a project wiki2092 returns the container if it is a project2093 returns nil if the container is not a project2094 #submodule_links2095 returns an instance of Gitlab::SubmoduleLinks2096 #lfs_enabled?2097 for a project repository2098 returns true when LFS is enabled2099 returns false when LFS is disabled2100 for a project wiki repository2101 delegates to the project2102 for a project snippet repository2103 returns false when LFS is enabled2104 for a personal snippet repository2105 returns false when LFS is enabled2106 for a design repository2107 returns true when LFS is enabled2108 returns false when LFS is disabled2109 .pick_storage_shard2110 when expire is false2111 does not expire existing repository storage value2112 when expire is true2113 expires existing repository storage value2114 #change_head2115 when the branch exists2116 returns truthy2117 does not call container.after_change_head_branch_does_not_exist2118 calls repository hooks2119 copies the gitattributes2120 reloads the default branch2121 when the branch does not exist2122 returns falsey2123 calls container.after_change_head_branch_does_not_exist2124 does not call repository hooks2125 #remove_prohibited_branches2126 when prohibited branch exists2127 deletes prohibited branch2128 when branch name is 40-characters long but not hexadecimal2129 returns without removing the branch2130 when branch name is hexadecimal2131 when branch name is less than 40-characters long2132 returns without removing the branch2133 when branch name is more than 40-characters long2134 returns without removing the branch2135 when prohibited branch does not exist2136 returns without removing the branch2137 when raw repository does not exist2138 returns without removing the branch2139ProjectTeam2140 personal project2141 members collection2142 is expected to include #<User id:416 @user162>2143 is expected not to include #<User id:422 @user167>2144 is expected not to include #<User id:425 @user169>2145 is expected not to include #<User id:431 @user174>2146 access methods2147 is expected to be truthy2148 is expected to be falsey2149 is expected to be falsey2150 is expected to be falsey2151 is expected to be falsey2152 is expected to be truthy2153 is expected to be truthy2154 is expected to be falsey2155 is expected to be falsey2156 group project2157 members collection2158 is expected to include #<User id:474 @user207>2159 is expected to include #<User id:478 @user210>2160 is expected to include #<User id:485 @user216>2161 is expected not to include #<User id:489 @user219>2162 is expected not to include #<User id:496 @user225>2163 access methods2164 is expected to be truthy2165 is expected to be truthy2166 is expected to be truthy2167 is expected to be falsey2168 is expected to be falsey2169 is expected to be falsey2170 is expected to be truthy2171 is expected to be truthy2172 is expected to be falsey2173 is expected to be falsey2174 owner methods2175 personal project2176 is expected to contain exactly #<User id:550 @namespace367>2177 is expected to be truthy2178 group project2179 is expected to contain exactly #<User id:552 @user269> and #<User id:553 @user270>2180 is expected to be truthy2181 is expected to be truthy2182 #fetch_members2183 personal project2184 returns project members2185 returns project members of a specified level2186 returns invited members of a group2187 returns invited members of a group of a specified level2188 group project2189 returns project members2190 returns project members of a specified level2191 #find_member2192 personal project2193 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2194 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2195 is expected to be a kind of ProjectMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: i...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2196 is expected to be nil2197 is expected to be nil2198 group project2199 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2200 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2201 is expected to be a kind of GroupMember(id: integer, access_level: integer, source_id: integer, source_type: string, user_id: int...tate: integer, invite_email_success: boolean, member_namespace_id: integer, member_role_id: integer)2202 is expected to be nil2203 is expected to be nil2204 #members_in_project_and_ancestors2205 group project2206 filters out users who are not members of the project2207 #members_with_access_levels2208 with access_levels2209 filters members who have given access levels2210 without access_levels2211 returns empty array2212 #add_members2213 add the given users to the team2214 when `tasks_to_be_done` and `tasks_project_id` are passed2215 creates a member_task with the correct attributes2216 #add_member2217 add the given user to the team2218 #human_max_access2219 returns Maintainer role2220 returns Owner role2221 #contributor?2222 when user is a member of project2223 is expected to equal false2224 is expected to equal false2225 is expected to equal false2226 when user has at least one merge request merged into default_branch2227 is expected to equal true2228 is expected to equal false2229 #max_member_access2230 personal project2231 when project is not shared with group2232 is expected to eq 402233 is expected to eq 202234 is expected to eq 102235 is expected to eq 02236 is expected to eq 02237 when project is shared with group2238 is expected to eq 302239 is expected to eq 202240 is expected to eq 02241 is expected to eq 02242 but share_with_group_lock is true2243 is expected to eq 02244 is expected to eq 02245 group project2246 is expected to eq 402247 is expected to eq 202248 is expected to eq 102249 is expected to eq 02250 is expected to eq 02251 #purge_member_access_cache_for_user_id2252 removes cached max access for user from store2253 #member?2254 returns false for no user2255 returns true for personal projects of the user2256 returns true for projects of groups the user is a member of2257 returns true for projects for which the user is a member of2258 returns true for projects shared on a group the user is a member of2259 checks for the correct minimum level access2260 #contribution_check_for_user_ids2261 does not perform extra queries when asked for users who have already been found2262 only requests the extra users when uncached users are passed2263 returns correct contributors2264 #max_member_access_for_user_ids2265 with RequestStore enabled2266 returns correct roles for different users2267 does not perform extra queries when asked for users who have already been found2268 only requests the extra users when uncached users are passed2269 with RequestStore disabled2270 returns correct roles for different users2271Projects::TransferService2272 with npm packages2273 with a root namespace change2274 does not allow the transfer2275 without a root namespace change2276 does allow the transfer2277 namespace -> namespace2278 updates the namespace2279 EventStore2280 publishes a ProjectTransferedEvent2281 when project has an associated project namespace2282 keeps project namespace in sync with project2283 when project is transferred to a deeper nested group2284 keeps project namespace in sync with project2285 project in a group -> a personal namespace2286 executes the transfer to personal namespace successfully2287 the owner of the namespace does not have a direct membership in the project residing in the group2288 creates a project membership record for the owner of the namespace, with OWNER access level, after the transfer2289 the owner of the namespace has a direct membership in the project residing in the group2290 that membership has an access level of OWNER2291 retains the project membership record for the owner of the namespace, with OWNER access level, after the transfer2292 that membership has an access level that is not OWNER2293 updates the project membership record for the owner of the namespace, to OWNER access level, after the transfer2294 when transfer succeeds2295 sends notifications2296 invalidates the user's personal_project_count cache2297 executes system hooks2298 moves the disk path2299 updates project full path in gitaly2300 updates storage location2301 with a project integration2302 when it inherits from instance_integration2303 replaces inherited integrations2304 with a custom integration2305 does not update the integrations2306 when project has pending builds2307 updates pending builds for the project2308 when transfer fails2309 rolls back repo location2310 rolls back project full path in gitaly2311 doesn't send move notifications2312 doesn't run system hooks2313 does not update storage location2314 does not publish a ProjectTransferedEvent2315 when project has pending builds2316 does not update pending builds for the project2317 when project has an associated project namespace2318 keeps project namespace in sync with project2319 namespace -> no namespace2320 does not allow the project transfer2321 when project has an associated project namespace2322 keeps project namespace in sync with project2323 disallow transferring of project with tags2324 does not allow the project transfer2325 namespace -> not allowed namespace2326 does not allow the project transfer2327 namespace which contains orphan repository with same projects path name2328 does not allow the project transfer2329 target namespace containing the same project name2330 does not allow the project transfer2331 target namespace containing the same project path2332 does not allow the project transfer2333 target namespace matches current namespace2334 does not allow project transfer2335 when user does not own the project2336 does not allow project transfer to the target namespace2337 when user can create projects in the target namespace2338 but has only developer permissions in the target namespace2339 does not allow project transfer to the target namespace2340 visibility level2341 when namespace visibility level < project visibility level2342 is expected to eq 102343 when namespace visibility level > project visibility level2344 is expected to eq 02345 shared Runners group level configurations2346 project_shared_runners_enabled: true, shared_runners_setting: :disabled_and_unoverridable, expected_shared_runners_enabled: false2347 updates shared runners based on the parent group2348 project_shared_runners_enabled: false, shared_runners_setting: :disabled_and_unoverridable, expected_shared_runners_enabled: false2349 updates shared runners based on the parent group2350 project_shared_runners_enabled: true, shared_runners_setting: :disabled_with_override, expected_shared_runners_enabled: true2351 updates shared runners based on the parent group2352 project_shared_runners_enabled: false, shared_runners_setting: :disabled_with_override, expected_shared_runners_enabled: false2353 updates shared runners based on the parent group2354 project_shared_runners_enabled: true, shared_runners_setting: :shared_runners_enabled, expected_shared_runners_enabled: true2355 updates shared runners based on the parent group2356 project_shared_runners_enabled: false, shared_runners_setting: :shared_runners_enabled, expected_shared_runners_enabled: false2357 updates shared runners based on the parent group2358 missing group labels applied to issues or merge requests2359 delegates transfer to Labels::TransferService2360 missing group milestones applied to issues or merge requests2361 delegates transfer to Milestones::TransferService2362 when hashed storage in use2363 does not move the disk path2364 does not move the disk path when the transfer fails2365 refreshing project authorizations2366 calls AuthorizedProjectUpdate::ProjectRecalculateWorker to update project authorizations2367 calls AuthorizedProjectUpdate::UserRefreshFromReplicaWorker with a delay to update project authorizations2368 refreshes the permissions of the members of the old and new namespace2369 transferring a design repository2370 does not create a design repository2371 when the project has a design repository2372 with legacy storage2373 moves the repository2374 does not move the repository when an error occurs2375 with hashed storage2376 does not move the repository2377 does not move the repository when an error occurs2378 handling issue contacts2379 with the same root_ancestor2380 retains issue contacts2381 with a different root_ancestor2382 deletes issue contacts2383gitlab:workhorse namespace rake task2384 install2385 clones the origin and creates a gitlab-workhorse binary2386 no dir given2387 aborts and display a help message2388 when an underlying Git command fails2389 aborts and display a help message2390Ci::BuildTraceChunk2391 behaves like having unique enum values2392 has unique values in "data_store"2393 default attributes2394 is expected to eq "redis_trace_chunks"2395 is expected to eq "fog"2396 chunk creation2397 increments trace operation chunked metric2398 FastDestroyAll2399 Forbid #destroy and #destroy_all2400 does not delete database rows and associted external data2401 .fast_destroy_all2402 deletes database rows and associted external data2403 .use_fast_destroy2404 performs cascading delete with fast_destroy_all2405 CHUNK_SIZE2406 chunk size can not be changed without special care2407 .all_stores2408 returns a correctly ordered array2409 #data2410 data_store: :redis2411 is expected to eq "Sample data in redis"2412 data_store: :redis_trace_chunks2413 is expected to eq "Sample data in redis"2414 when data_store is database2415 is expected to eq "Sample data in database"2416 when data_store is fog2417 is expected to eq "Sample data in fog"2418 returns a new Fog store2419 #data_store2420 default value2421 is expected to eq "redis_trace_chunks"2422 #get_store_class2423 raises an error2424 data_store: :redis, expected_store: Ci::BuildTraceChunks::Redis2425 with store2426 returns an instance of the right class2427 data_store: :database, expected_store: Ci::BuildTraceChunks::Database2428 with store2429 returns an instance of the right class2430 data_store: :fog, expected_store: Ci::BuildTraceChunks::Fog2431 with store2432 returns an instance of the right class2433 data_store: :redis_trace_chunks, expected_store: Ci::BuildTraceChunks::RedisTraceChunks2434 with store2435 returns an instance of the right class2436 #append2437 data_store: :redis2438 when there are no data2439 has no data2440 does not read data when appending2441 behaves like Appending correctly2442 when offset is negative2443 is expected to raise Exception with "Offset is out of range"2444 when offset is bigger than data size2445 is expected to raise Exception with "Offset is out of range"2446 when new data overflows chunk size2447 is expected to raise Exception with "Chunk size overflow"2448 when offset is EOF2449 appends2450 when the other process is appending2451 raise an error2452 when new_data is nil2453 raises an error2454 when new_data is empty2455 does not append2456 does not execute UPDATE2457 when offset is middle of datasize2458 appends2459 behaves like Scheduling sidekiq worker to flush data to persist store2460 when new data fulfilled chunk size2461 schedules trace chunk flush worker2462 migrates data to object storage2463 when there are some data2464 has data2465 behaves like Appending correctly2466 when offset is negative2467 is expected to raise Exception with "Offset is out of range"2468 when offset is bigger than data size2469 is expected to raise Exception with "Offset is out of range"2470 when new data overflows chunk size2471 is expected to raise Exception with "Chunk size overflow"2472 when offset is EOF2473 appends2474 when the other process is appending2475 raise an error2476 when new_data is nil2477 raises an error2478 when new_data is empty2479 does not append2480 does not execute UPDATE2481 when offset is middle of datasize2482 appends2483 behaves like Scheduling sidekiq worker to flush data to persist store2484 when new data fulfilled chunk size2485 schedules trace chunk flush worker2486 migrates data to object storage2487 data_store: :redis_trace_chunks2488 when there are no data2489 has no data2490 does not read data when appending2491 behaves like Appending correctly2492 when offset is negative2493 is expected to raise Exception with "Offset is out of range"2494 when offset is bigger than data size2495 is expected to raise Exception with "Offset is out of range"2496 when new data overflows chunk size2497 is expected to raise Exception with "Chunk size overflow"2498 when offset is EOF2499 appends2500 when the other process is appending2501 raise an error2502 when new_data is nil2503 raises an error2504 when new_data is empty2505 does not append2506 does not execute UPDATE2507 when offset is middle of datasize2508 appends2509 behaves like Scheduling sidekiq worker to flush data to persist store2510 when new data fulfilled chunk size2511 schedules trace chunk flush worker2512 migrates data to object storage2513 when there are some data2514 has data2515 behaves like Appending correctly2516 when offset is negative2517 is expected to raise Exception with "Offset is out of range"2518 when offset is bigger than data size2519 is expected to raise Exception with "Offset is out of range"2520 when new data overflows chunk size2521 is expected to raise Exception with "Chunk size overflow"2522 when offset is EOF2523 appends2524 when the other process is appending2525 raise an error2526 when new_data is nil2527 raises an error2528 when new_data is empty2529 does not append2530 does not execute UPDATE2531 when offset is middle of datasize2532 appends2533 behaves like Scheduling sidekiq worker to flush data to persist store2534 when new data fulfilled chunk size2535 schedules trace chunk flush worker2536 migrates data to object storage2537 when data_store is database2538 when there are no data2539 has no data2540 behaves like Appending correctly2541 when offset is negative2542 is expected to raise Exception with "Offset is out of range"2543 when offset is bigger than data size2544 is expected to raise Exception with "Offset is out of range"2545 when new data overflows chunk size2546 is expected to raise Exception with "Chunk size overflow"2547 when offset is EOF2548 appends2549 when the other process is appending2550 raise an error2551 when new_data is nil2552 raises an error2553 when new_data is empty2554 does not append2555 does not execute UPDATE2556 when offset is middle of datasize2557 appends2558 behaves like Scheduling no sidekiq worker2559 when new data fulfilled chunk size2560 does not schedule trace chunk flush worker2561 does not migrate data to object storage2562 when there are some data2563 has data2564 behaves like Appending correctly2565 when offset is negative2566 is expected to raise Exception with "Offset is out of range"2567 when offset is bigger than data size2568 is expected to raise Exception with "Offset is out of range"2569 when new data overflows chunk size2570 is expected to raise Exception with "Chunk size overflow"2571 when offset is EOF2572 appends2573 when the other process is appending2574 raise an error2575 when new_data is nil2576 raises an error2577 when new_data is empty2578 does not append2579 does not execute UPDATE2580 when offset is middle of datasize2581 appends2582 behaves like Scheduling no sidekiq worker2583 when new data fulfilled chunk size2584 does not schedule trace chunk flush worker2585 does not migrate data to object storage2586 when data_store is fog2587 when there are no data2588 has no data2589 behaves like Appending correctly2590 when offset is negative2591 is expected to raise Exception with "Offset is out of range"2592 when offset is bigger than data size2593 is expected to raise Exception with "Offset is out of range"2594 when new data overflows chunk size2595 is expected to raise Exception with "Chunk size overflow"2596 when offset is EOF2597 appends2598 when the other process is appending2599 raise an error2600 when new_data is nil2601 raises an error2602 when new_data is empty2603 does not append2604 does not execute UPDATE2605 when offset is middle of datasize2606 appends2607 behaves like Scheduling no sidekiq worker2608 when new data fulfilled chunk size2609 does not schedule trace chunk flush worker2610 does not migrate data to object storage2611 when there are some data2612 has data2613 behaves like Appending correctly2614 when offset is negative2615 is expected to raise Exception with "Offset is out of range"2616 when offset is bigger than data size2617 is expected to raise Exception with "Offset is out of range"2618 when new data overflows chunk size2619 is expected to raise Exception with "Chunk size overflow"2620 when offset is EOF2621 appends2622 when the other process is appending2623 raise an error2624 when new_data is nil2625 raises an error2626 when new_data is empty2627 does not append2628 does not execute UPDATE2629 when offset is middle of datasize2630 appends2631 behaves like Scheduling no sidekiq worker2632 when new data fulfilled chunk size2633 does not schedule trace chunk flush worker2634 does not migrate data to object storage2635 append metrics2636 increments trace operation appended metric2637 #truncate2638 data_store: :redis2639 behaves like truncates2640 when offset is negative2641 is expected to raise Exception with "Offset is out of range"2642 when offset is bigger than data size2643 is expected to raise Exception with "Offset is out of range"2644 when offset is 102645 truncates2646 data_store: :redis_trace_chunks2647 behaves like truncates2648 when offset is negative2649 is expected to raise Exception with "Offset is out of range"2650 when offset is bigger than data size2651 is expected to raise Exception with "Offset is out of range"2652 when offset is 102653 truncates2654 when data_store is database2655 behaves like truncates2656 when offset is negative2657 is expected to raise Exception with "Offset is out of range"2658 when offset is bigger than data size2659 is expected to raise Exception with "Offset is out of range"2660 when offset is 102661 truncates2662 when data_store is fog2663 behaves like truncates2664 when offset is negative2665 is expected to raise Exception with "Offset is out of range"2666 when offset is bigger than data size2667 is expected to raise Exception with "Offset is out of range"2668 when offset is 102669 truncates2670 #size2671 data_store: :redis2672 when data exists2673 is expected to eq 202674 when data exists2675 is expected to eq 02676 data_store: :redis_trace_chunks2677 when data exists2678 is expected to eq 202679 when data exists2680 is expected to eq 02681 when data_store is database2682 when data exists2683 is expected to eq 232684 when data does not exist2685 is expected to eq 02686 when data_store is fog2687 when data exists2688 is expected to eq 182689 when data does not exist2690 is expected to eq 02691 #persist_data!2692 data_store: :redis, redis_class: Ci::BuildTraceChunks::Redis2693 when data exists2694 when data size reached CHUNK_SIZE2695 persists the data2696 calculates CRC32 checksum2697 when data size has not reached CHUNK_SIZE2698 does not persist the data and the orignal data is intact2699 when chunk is a final one2700 persists the data2701 when the chunk has been modifed by a different worker2702 reloads the chunk before migration2703 verifies the operation using optimistic locking2704 does not allow flushing unpersisted chunk2705 when the chunk is being locked by a different worker2706 increments stalled chunk trace metric2707 when data does not exist2708 does not persist2709 data_store: :redis_trace_chunks, redis_class: Ci::BuildTraceChunks::RedisTraceChunks2710 when data exists2711 when data size reached CHUNK_SIZE2712 persists the data2713 calculates CRC32 checksum2714 when data size has not reached CHUNK_SIZE2715 does not persist the data and the orignal data is intact2716 when chunk is a final one2717 persists the data2718 when the chunk has been modifed by a different worker2719 reloads the chunk before migration2720 verifies the operation using optimistic locking2721 does not allow flushing unpersisted chunk2722 when the chunk is being locked by a different worker2723 increments stalled chunk trace metric2724 when data does not exist2725 does not persist2726 when data_store is database2727 when data exists2728 when data size reached CHUNK_SIZE2729 persists the data2730 when data size has not reached CHUNK_SIZE2731 does not persist the data and the orignal data is intact2732 when chunk is a final one2733 persists the data2734 when data does not exist2735 does not persist2736 when data_store is fog2737 when data exists2738 when data size reached CHUNK_SIZE2739 does not change data store2740 when data size has not reached CHUNK_SIZE2741 does not raise error2742 final?2743 when build pending state exists2744 when chunks is not the last one2745 is not a final chunk2746 when chunks is the last one2747 is a final chunk2748 when build pending state does not exist2749 when chunks is not the last one2750 is not a final chunk2751 when chunks is the last one2752 is not a final chunk2753 deletes data in redis after a parent record destroyed2754 when traces are archived2755 behaves like deletes all build_trace_chunk and data in redis2756 deletes all build_trace_chunk and data in redis2757 when project is destroyed2758 behaves like deletes all build_trace_chunk and data in redis2759 deletes all build_trace_chunk and data in redis2760 comparable build trace chunks2761 #<=>2762 when chunks are associated with different builds2763 returns nil2764 when there are two chunks with different indexes2765 indicates the the first one is greater than then second2766 when there are two chunks with the same index within the same build2767 indicates the these are equal2768 #==2769 when chunks have the same index2770 indicates that the chunks are equal2771 when chunks have different indexes2772 indicates that the chunks are not equal2773 when chunks are associated with different builds2774 indicates that the chunks are not equal2775 #live?2776 data_store: :redis, value: true2777 is expected to eq true2778 data_store: :redis_trace_chunks, value: true2779 is expected to eq true2780 data_store: :database, value: false2781 is expected to eq false2782 data_store: :fog, value: false2783 is expected to eq false2784 #flushed?2785 data_store: :redis, value: false2786 is expected to eq false2787 data_store: :redis_trace_chunks, value: false2788 is expected to eq false2789 data_store: :database, value: true2790 is expected to eq true2791 data_store: :fog, value: true2792 is expected to eq true2793MergeRequests::MergeToRefService2794 #execute2795 returns an error when Gitlab::Git::CommandError is raised during merge2796 behaves like successfully merges to ref with merge method2797 writes commit to merge ref2798 cache_merge_to_ref_calls parameter2799 when true2800 caches the response2801 when false2802 does not cache the response2803 behaves like successfully evaluates pre-condition checks2804 returns an error when the failing to process the merge2805 does not send any mail2806 does not change the MR state2807 does not create notes2808 does not delete the source branch2809 commit history comparison with regular MergeService2810 when merge commit2811 behaves like MergeService for target ref2812 target_ref has the same state of target branch2813 when merge commit with squash2814 does not squash before merging2815 behaves like successfully merges to ref with merge method2816 writes commit to merge ref2817 cache_merge_to_ref_calls parameter2818 when true2819 caches the response2820 when false2821 does not cache the response2822 merge pre-condition checks2823 when semi-linear merge method2824 behaves like successfully merges to ref with merge method2825 writes commit to merge ref2826 cache_merge_to_ref_calls parameter2827 when true2828 caches the response2829 when false2830 does not cache the response2831 behaves like successfully evaluates pre-condition checks2832 returns an error when the failing to process the merge2833 does not send any mail2834 does not change the MR state2835 does not create notes2836 does not delete the source branch2837 when fast-forward merge method2838 behaves like successfully merges to ref with merge method2839 writes commit to merge ref2840 cache_merge_to_ref_calls parameter2841 when true2842 caches the response2843 when false2844 does not cache the response2845 behaves like successfully evaluates pre-condition checks2846 returns an error when the failing to process the merge2847 does not send any mail2848 does not change the MR state2849 does not create notes2850 does not delete the source branch2851 when MR is not mergeable to ref2852 returns error2853 does not close related todos2854 is expected not to be done2855 when source is missing2856 returns error2857 when target ref is passed as a parameter2858 behaves like successfully merges to ref with merge method2859 writes commit to merge ref2860 cache_merge_to_ref_calls parameter2861 when true2862 caches the response2863 when false2864 does not cache the response2865 cascading merge refs2866 when first merge happens2867 behaves like successfully merges to ref with merge method2868 writes commit to merge ref2869 cache_merge_to_ref_calls parameter2870 when true2871 caches the response2872 when false2873 does not cache the response2874 when second merge happens2875 behaves like successfully merges to ref with merge method2876 writes commit to merge ref2877 cache_merge_to_ref_calls parameter2878 when true2879 caches the response2880 when false2881 does not cache the response2882 allow conflicts to be merged in diff2883WARNING: You're overriding a previous stub implementation of `merge_to_ref`. Called from /builds/gitlab-org/gitlab/spec/services/merge_requests/merge_to_ref_service_spec.rb:290:in `block (4 levels) in <top (required)>'.. Called from /builds/gitlab-org/gitlab/spec/services/merge_requests/merge_to_ref_service_spec.rb:290:in `block (4 levels) in <top (required)>'.2884 calls merge_to_ref with allow_conflicts param2885Ci::RetryJobService2886 #clone!2887 raises an error when an unexpected class is passed2888 when the job to be cloned is a build2889 behaves like clones the job2890 when the user has ability to execute job2891 marks the old job as retried2892 when there is a failed job ToDo for the MR2893 resolves the ToDo for the failed job2894 when the job has needs2895 bulk inserts all the needs2896 when the user does not have permission to execute the job2897 raises an error2898 when a build with a deployment is retried2899 creates a new deployment2900 does not create a new environment2901 when a build with a dynamic environment is retried2902 creates a new deployment2903 does not create a new environment2904 when given variables2905 when the build is actionable2906 gives variables to the new build2907 when the build is not actionable2908 does not give variables to the new build2909 when enqueue_if_actionable is provided2910 enqueue_if_actionable: true, trait: nil, enqueue_immediately: false2911 behaves like checks enqueue_immediately?2912 returns enqueue_immediately2913 when feature flag is disabled2914 behaves like checks enqueue_immediately?2915 returns enqueue_immediately2916 enqueue_if_actionable: true, trait: :manual, enqueue_immediately: true2917 behaves like checks enqueue_immediately?2918 returns enqueue_immediately2919 when feature flag is disabled2920 behaves like checks enqueue_immediately?2921 returns enqueue_immediately2922 enqueue_if_actionable: true, trait: :expired_scheduled, enqueue_immediately: true2923 behaves like checks enqueue_immediately?2924 returns enqueue_immediately2925 when feature flag is disabled2926 behaves like checks enqueue_immediately?2927 returns enqueue_immediately2928 enqueue_if_actionable: false, trait: nil, enqueue_immediately: false2929 behaves like checks enqueue_immediately?2930 returns enqueue_immediately2931 when feature flag is disabled2932 behaves like checks enqueue_immediately?2933 returns enqueue_immediately2934 enqueue_if_actionable: false, trait: :manual, enqueue_immediately: false2935 behaves like checks enqueue_immediately?2936 returns enqueue_immediately2937 when feature flag is disabled2938 behaves like checks enqueue_immediately?2939 returns enqueue_immediately2940 enqueue_if_actionable: false, trait: :expired_scheduled, enqueue_immediately: false2941 behaves like checks enqueue_immediately?2942 returns enqueue_immediately2943 when feature flag is disabled2944 behaves like checks enqueue_immediately?2945 returns enqueue_immediately2946 #execute2947 when the job to be retried is a build2948 behaves like retries the job2949 enqueues the new job2950 behaves like clones the job2951 when the user has ability to execute job2952 marks the old job as retried2953 when there is a failed job ToDo for the MR2954 resolves the ToDo for the failed job2955 when the job has needs2956 bulk inserts all the needs2957 when the user does not have permission to execute the job2958 raises an error2959 when there are subsequent processables that are skipped2960 resumes pipeline processing in the subsequent stage2961 updates ownership for subsequent builds2962 updates ownership for subsequent bridges2963 when the pipeline has other jobs2964 when job has a nil scheduling_type2965 populates scheduling_type of processables2966 when job has scheduling_type2967 does not call populate_scheduling_type!2968 when the pipeline is a child pipeline and the bridge uses strategy:depend2969 marks the source bridge as pending2970 when there are subsequent jobs that are skipped2971 does not cause an N+1 when updating the job ownership2972 when given variables2973 when the build is actionable2974 gives variables to the new build2975 when the build is not actionable2976 does not give variables to the new build2977 when job being retried has jobs in previous stages2978 previous_stage_job_status: :created, after_status: "created"2979 updates the new job status to after_status2980 when feature flag is disabled2981 enqueues the new job2982 previous_stage_job_status: :pending, after_status: "created"2983 updates the new job status to after_status2984 when feature flag is disabled2985 enqueues the new job2986 previous_stage_job_status: :running, after_status: "created"2987 updates the new job status to after_status2988 when feature flag is disabled2989 enqueues the new job2990 previous_stage_job_status: :manual, after_status: "created"2991 updates the new job status to after_status2992 when feature flag is disabled2993 enqueues the new job2994 previous_stage_job_status: :scheduled, after_status: "created"2995 updates the new job status to after_status2996 when feature flag is disabled2997 enqueues the new job2998 previous_stage_job_status: :success, after_status: "pending"2999 updates the new job status to after_status3000 when feature flag is disabled3001 enqueues the new job3002 previous_stage_job_status: :failed, after_status: "skipped"3003 updates the new job status to after_status3004 when feature flag is disabled3005 enqueues the new job3006 previous_stage_job_status: :skipped, after_status: "pending"3007 updates the new job status to after_status3008 when feature flag is disabled3009 enqueues the new job3010 when job being retried has DAG dependencies3011 dag_dependency_status: :created, after_status: "created"3012 updates the new job status to after_status3013 when feature flag is disabled3014 enqueues the new job3015 dag_dependency_status: :pending, after_status: "created"3016 updates the new job status to after_status3017 when feature flag is disabled3018 enqueues the new job3019 dag_dependency_status: :running, after_status: "created"3020 updates the new job status to after_status3021 when feature flag is disabled3022 enqueues the new job3023 dag_dependency_status: :manual, after_status: "created"3024 updates the new job status to after_status3025 when feature flag is disabled3026 enqueues the new job3027 dag_dependency_status: :scheduled, after_status: "created"3028 updates the new job status to after_status3029 when feature flag is disabled3030 enqueues the new job3031 dag_dependency_status: :success, after_status: "pending"3032 updates the new job status to after_status3033 when feature flag is disabled3034 enqueues the new job3035 dag_dependency_status: :failed, after_status: "skipped"3036 updates the new job status to after_status3037 when feature flag is disabled3038 enqueues the new job3039 dag_dependency_status: :skipped, after_status: "skipped"3040 updates the new job status to after_status3041 when feature flag is disabled3042 enqueues the new job3043 when there are other manual/scheduled jobs3044 trait: nil, enqueue_immediately: false3045 retries the given job but not the other manual/scheduled jobs3046 behaves like checks enqueue_immediately?3047 returns enqueue_immediately3048 when feature flag is disabled3049 enqueues the new job3050 behaves like checks enqueue_immediately?3051 returns enqueue_immediately3052 trait: :manual, enqueue_immediately: true3053 retries the given job but not the other manual/scheduled jobs3054 behaves like checks enqueue_immediately?3055 returns enqueue_immediately3056 when feature flag is disabled3057 enqueues the new job3058 behaves like checks enqueue_immediately?3059 returns enqueue_immediately3060 trait: :expired_scheduled, enqueue_immediately: true3061 retries the given job but not the other manual/scheduled jobs3062 behaves like checks enqueue_immediately?3063 returns enqueue_immediately3064 when feature flag is disabled3065 enqueues the new job3066 behaves like checks enqueue_immediately?3067 returns enqueue_immediately3068project routing3069 ProjectsController routing3070 to #index3071 to #create3072 to #new3073 to #edit3074 to #update3075 to #destroy3076 to #preview_markdown3077 to #show3078 regular name3079 is expected to route {:get=>"/gitlab/gitlabhq"} to {:namespace_id=>"gitlab", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}3080 name with dot3081 is expected to route {:get=>"/gitlab/gitlabhq.keys"} to {:namespace_id=>"gitlab", :id=>"gitlabhq.keys", :controller=>"projects", :action=>"show"}3082 with nested group3083 is expected to route {:get=>"/gitlab/subgroup/gitlabhq"} to {:namespace_id=>"gitlab/subgroup", :id=>"gitlabhq", :controller=>"projects", :action=>"show"}3084 Projects::RedirectController routing3085 to #redirect_from_id3086 Projects::AutocompleteSourcesController routing3087 to #members3088 to #issues3089 to #merge_requests3090 to #labels3091 to #milestones3092 to #commands3093 to #snippets3094 Projects::WikisController routing3095 behaves like wiki routing3096 redirects the base path to the home page3097 behaves like resource routing3098 routes resource actions3099 behaves like redirecting a legacy path3100 redirects /gitlab/gitlabhq/wikis to /gitlab/gitlabhq/-/wikis3101 behaves like redirecting a legacy path3102 redirects /gitlab/gitlabhq/wikis/home/edit to /gitlab/gitlabhq/-/wikis/home/edit3103 Projects::RepositoriesController routing3104 to #archive format:zip3105 to #archive format:tar.bz23106 to #archive with "/" in route3107 Projects::BranchesController routing3108 to #branches3109 Projects::TagsController routing3110 to #tags3111 behaves like redirecting a legacy path3112 redirects /gitlab/gitlabhq/tags to /gitlab/gitlabhq/-/tags3113 Projects::DeployKeysController routing3114 behaves like resource routing3115 routes resource actions3116 Projects::ProtectedBranchesController routing3117 behaves like resource routing3118 routes resource actions3119 Projects::RefsController routing3120 to #switch3121 to #logs_tree3122 behaves like redirecting a legacy path3123 redirects /gitlab/gitlabhq/refs/switch to /gitlab/gitlabhq/-/refs/switch3124 behaves like redirecting a legacy path3125 redirects /gitlab/gitlabhq/refs/feature%2345/logs_tree to /gitlab/gitlabhq/-/refs/feature%2345/logs_tree3126 behaves like redirecting a legacy path3127 redirects /gitlab/gitlabhq/refs/stable/logs_tree/new%0A%0Aline.txt to /gitlab/gitlabhq/-/refs/stable/logs_tree/new%0A%0Aline.txt3128 behaves like redirecting a legacy path3129 redirects /gitlab/gitlabhq/refs/feature%2345/logs_tree/../../../../../@example.com/tree/a to /gitlab/gitlabhq/-/refs/feature#45/logs_tree/../../../../../-/example.com/tree/a3130 Projects::MergeRequestsController routing3131 to #commits3132 to #pipelines3133 to #merge3134 to #show3135 to #show from scoped route3136 behaves like resource routing3137 routes resource actions3138 behaves like redirecting a legacy path3139 redirects /gitlab/gitlabhq/merge_requests to /gitlab/gitlabhq/-/merge_requests3140 behaves like redirecting a legacy path3141 redirects /gitlab/gitlabhq/merge_requests/1/diffs to /gitlab/gitlabhq/-/merge_requests/1/diffs3142 Projects::MergeRequests::CreationsController routing3143 to #new3144 to #create3145 to #branch_from3146 to #branch_to3147 to #pipelines3148 to #diffs3149 behaves like redirecting a legacy path3150 redirects /gitlab/gitlabhq/merge_requests/new to /gitlab/gitlabhq/-/merge_requests/new3151 Projects::MergeRequests::DiffsController routing3152 to #show3153 Projects::MergeRequests::ConflictsController routing3154 to #show3155 SnippetsController routing3156 to #raw3157 to #index3158 to #new3159 to #edit3160 to #show3161 to #raw from unscope routing3162 behaves like redirecting a legacy path3163 redirects /gitlab/gitlabhq/snippets/1 to /gitlab/gitlabhq/-/snippets/13164 Projects::HooksController routing3165 to #test3166 behaves like resource routing3167 routes resource actions3168 behaves like redirecting a legacy path3169 redirects /gitlab/gitlabhq/hooks to /gitlab/gitlabhq/-/hooks3170 Projects::HookLogsController routing3171 to #retry3172 to #show3173 behaves like redirecting a legacy path3174 redirects /gitlab/gitlabhq/hooks/hook_logs/1 to /gitlab/gitlabhq/-/hooks/hook_logs/13175 Projects::CommitController routing3176 to #show3177 behaves like redirecting a legacy path3178 redirects /gitlab/gitlabhq/commit/4246fbd to /gitlab/gitlabhq/-/commit/4246fbd3179 Projects::CommitsController routing3180 to #show3181 behaves like resource routing3182 routes resource actions3183 behaves like redirecting a legacy path3184 redirects /gitlab/gitlabhq/commits/master to /gitlab/gitlabhq/-/commits/master3185 Projects::ProjectMembersController routing3186 behaves like resource routing3187 routes resource actions3188 Projects::MilestonesController routing3189 to #promote3190 behaves like resource routing3191 routes resource actions3192 Projects::LabelsController routing3193 to #index3194 Projects::IssuesController routing3195 to #bulk_update3196 behaves like resource routing3197 routes resource actions3198 behaves like redirecting a legacy path3199 redirects /gitlab/gitlabhq/issues to /gitlab/gitlabhq/-/issues3200 behaves like redirecting a legacy path3201 redirects /gitlab/gitlabhq/issues/1/edit to /gitlab/gitlabhq/-/issues/1/edit3202 Projects::NotesController routing3203 to #index3204 behaves like resource routing3205 routes resource actions3206 Projects::BlameController routing3207 to #show3208 Projects::BlobController routing3209 to #show3210 to #show from unscoped routing3211 Projects::TreeController routing3212 to #show3213 to #show from unscoped routing3214 Projects::FindFileController routing3215 to #show3216 to #list3217 behaves like redirecting a legacy path3218 redirects /gitlab/gitlabhq/find_file to /gitlab/gitlabhq/-/find_file3219 behaves like redirecting a legacy path3220 redirects /gitlab/gitlabhq/files/master to /gitlab/gitlabhq/-/files/master3221 Projects::BlobController routing3222 to #edit3223 to #preview3224 behaves like redirecting a legacy path3225 redirects /gitlab/gitlabhq/new/master to /gitlab/gitlabhq/-/new/master3226 behaves like redirecting a legacy path3227 redirects /gitlab/gitlabhq/edit/master/README to /gitlab/gitlabhq/-/edit/master/README3228 Projects::RawController routing3229 to #show3230 to #show from unscoped routing3231 Projects::CompareController routing3232 to #index3233 to #compare3234 to #show3235 behaves like redirecting a legacy path3236 redirects /gitlab/gitlabhq/compare to /gitlab/gitlabhq/-/compare3237 behaves like redirecting a legacy path3238 redirects /gitlab/gitlabhq/compare/master...stable to /gitlab/gitlabhq/-/compare/master...stable3239 Projects::NetworkController routing3240 to #show3241 Projects::GraphsController routing3242 to #show3243 Projects::ForksController routing3244 to #new3245 to #create3246 Projects::AvatarsController routing3247 to #destroy3248 Projects::PagesDomainsController routing3249 to #destroy with a valid domain name3250 to #show with a valid domain3251 behaves like resource routing3252 routes resource actions3253 Projects::ReleasesController routing3254 to #latest_permalink with a valid permalink path3255 to #show for the release with tag named permalink3256 Projects::Registry::TagsController routing3257 #destroy3258 correctly routes to a destroy action3259 takes registry tag name constrains into account3260 Projects::PipelinesController routing3261 to #index3262 to #show3263 behaves like redirecting a legacy path3264 redirects /gitlab/gitlabhq/pipelines to /gitlab/gitlabhq/-/pipelines3265 Projects::PipelineSchedulesController routing3266 to #index3267 behaves like redirecting a legacy path3268 redirects /gitlab/gitlabhq/pipeline_schedules to /gitlab/gitlabhq/-/pipeline_schedules3269 Projects::Settings::OperationsController routing3270 to #reset_alerting_token3271 Projects::Settings::RepositoryController routing3272 to #show3273 to repository#create_deploy_token3274 Projects::Settings::CiCdController routing3275 to #runner_setup_scripts3276 Projects::Settings::PackagesAndRegistriesController routing3277 to #show3278 to #cleanup_tags3279 Projects::Settings::IntegrationsController routing3280 to #index3281 to #edit3282 to #update3283 to #test3284 Projects::Settings::IntegrationHookLogsController3285 to #show3286 to #retry3287 Projects::TemplatesController routing3288 #show3289 routes when :template_type is `merge_request`3290 routes when :template_type is `issue`3291 routes to application#route_not_found when :template_type is unknown3292 Projects::DeployTokensController routing3293 routes to deploy_tokens#revoke3294 Projects::ServicePingController routing3295 routes to service_ping#web_ide_clientside_preview3296 routes to service_ping#web_ide_pipelines_count3297 Projects::EnvironmentsController routing3298 legacy routing3299 behaves like redirecting a legacy path3300 redirects /gitlab/gitlabhq/environments to /gitlab/gitlabhq/-/environments3301 Projects::ClustersController routing3302 legacy routing3303 behaves like redirecting a legacy path3304 redirects /gitlab/gitlabhq/clusters to /gitlab/gitlabhq/-/clusters3305 Projects::ErrorTrackingController routing3306 legacy routing3307 behaves like redirecting a legacy path3308 redirects /gitlab/gitlabhq/error_tracking to /gitlab/gitlabhq/-/error_tracking3309 Projects::Serverless routing3310 legacy routing3311 behaves like redirecting a legacy path3312 redirects /gitlab/gitlabhq/serverless to /gitlab/gitlabhq/-/serverless3313 Projects::DesignManagement::Designs::RawImagesController routing3314 to #show3315 Projects::DesignManagement::Designs::ResizedImageController routing3316 to #show3317 Projects::Snippets::BlobsController routing3318 to #raw3319 Projects::MetricsDashboardController routing3320 routes to #show with no dashboard_path and no page3321 routes to #show with only dashboard_path3322 routes to #show with only page3323 routes to #show with dashboard_path and page3324 routes to 404 with invalid page3325 routes to 404 without format for invalid page3326 routes to 404 with invalid dashboard_path3327 routes to 404 with invalid dashboard_path and valid page3328 routes to 404 with valid dashboard_path and invalid page3329 with a non-existent project3330 routes to 404 with get request3331 routes to 404 with delete request3332 routes to 404 with post request3333 routes to 404 with put request3334 with route to some action3335 routes to 404 with get request to3336 routes to 404 with delete request3337 routes to 404 with post request3338 routes to 404 with put request3339Ci::Ref3340 is expected to belong to project required: false3341 state machine transitions3342 unlock artifacts transition3343 pipline is locked3344 initial_state: :unknown, action: :succeed!, count: 13345 when transitioning states3346 calls unlock artifacts service3347 initial_state: :unknown, action: :do_fail!, count: 03348 when transitioning states3349 calls unlock artifacts service3350 initial_state: :success, action: :succeed!, count: 13351 when transitioning states3352 calls unlock artifacts service3353 initial_state: :success, action: :do_fail!, count: 03354 when transitioning states3355 calls unlock artifacts service3356 initial_state: :failed, action: :succeed!, count: 13357 when transitioning states3358 calls unlock artifacts service3359 initial_state: :failed, action: :do_fail!, count: 03360 when transitioning states3361 calls unlock artifacts service3362 initial_state: :fixed, action: :succeed!, count: 13363 when transitioning states3364 calls unlock artifacts service3365 initial_state: :fixed, action: :do_fail!, count: 03366 when transitioning states3367 calls unlock artifacts service3368 initial_state: :broken, action: :succeed!, count: 13369 when transitioning states3370 calls unlock artifacts service3371 initial_state: :broken, action: :do_fail!, count: 03372 when transitioning states3373 calls unlock artifacts service3374 initial_state: :still_failing, action: :succeed, count: 13375 when transitioning states3376 calls unlock artifacts service3377 initial_state: :still_failing, action: :do_fail, count: 03378 when transitioning states3379 calls unlock artifacts service3380 pipeline is unlocked3381 does not call unlock artifacts service3382 .ensure_for3383 when pipeline is a branch pipeline3384 behaves like ensures ci_ref3385 when ci_ref already exists3386 returns an existing ci_ref3387 when ci_ref does not exist yet3388 creates a new ci_ref3389 when pipeline is a tag pipeline3390 behaves like ensures ci_ref3391 when ci_ref already exists3392 returns an existing ci_ref3393 when ci_ref does not exist yet3394 creates a new ci_ref3395 when pipeline is a detached merge request pipeline3396 behaves like ensures ci_ref3397 when ci_ref already exists3398 returns an existing ci_ref3399 when ci_ref does not exist yet3400 creates a new ci_ref3401 #last_finished_pipeline_id3402 when there are no finished pipelines3403 returns nil3404 when there are finished pipelines3405 returns the pipeline id3406 when the pipeline a dangling pipeline3407 returns nil3408 #update_status_by!3409 when pipeline status is success or failed3410 pipeline_status: :success, current_ref_status: :unknown, expected_ref_status: :success3411 transitions the status via state machine3412 pipeline_status: :success, current_ref_status: :success, expected_ref_status: :success3413 transitions the status via state machine3414 pipeline_status: :success, current_ref_status: :failed, expected_ref_status: :fixed3415 transitions the status via state machine3416 pipeline_status: :success, current_ref_status: :fixed, expected_ref_status: :success3417 transitions the status via state machine3418 pipeline_status: :success, current_ref_status: :broken, expected_ref_status: :fixed3419 transitions the status via state machine3420 pipeline_status: :success, current_ref_status: :still_failing, expected_ref_status: :fixed3421 transitions the status via state machine3422 pipeline_status: :failed, current_ref_status: :unknown, expected_ref_status: :failed3423 transitions the status via state machine3424 pipeline_status: :failed, current_ref_status: :success, expected_ref_status: :broken3425 transitions the status via state machine3426 pipeline_status: :failed, current_ref_status: :failed, expected_ref_status: :still_failing3427 transitions the status via state machine3428 pipeline_status: :failed, current_ref_status: :fixed, expected_ref_status: :broken3429 transitions the status via state machine3430 pipeline_status: :failed, current_ref_status: :broken, expected_ref_status: :still_failing3431 transitions the status via state machine3432 pipeline_status: :failed, current_ref_status: :still_failing, expected_ref_status: :still_failing3433 transitions the status via state machine3434 when pipeline status is success3435 updates the status3436 when pipeline status is canceled3437 is expected to eq :unknown3438 when pipeline status is skipped3439 behaves like no-op3440 does nothing and returns nil3441 when pipeline status is not complete3442 behaves like no-op3443 does nothing and returns nil3444 when pipeline is not the latest pipeline3445 behaves like no-op3446 does nothing and returns nil3447 when pipeline does not belong to the ci_ref3448 behaves like no-op3449 does nothing and returns nil3450 loose foreign key on ci_refs.project_id3451 behaves like cleanup by a loose foreign key3452 cleans up (delete or nullify) the model3453Ci::BuildRunnerPresenter3454 #artifacts3455 when option contains archive-type artifacts3456 presents correct hash3457 when untracked is specified3458 presents correct hash3459 when untracked and paths are missing3460 does not present hash3461 when artifacts exclude is defined3462 includes the list of excluded paths3463 when artifacts exclude is not defined3464 does not include an empty list of excluded paths3465 with reports3466 archive3467 presents correct hash3468 metadata3469 presents correct hash3470 trace3471 presents correct hash3472 metrics_referee3473 presents correct hash3474 network_referee3475 presents correct hash3476 junit3477 presents correct hash3478 accessibility3479 presents correct hash3480 codequality3481 presents correct hash3482 sast3483 presents correct hash3484 secret_detection3485 presents correct hash3486 dependency_scanning3487 presents correct hash3488 container_scanning3489 presents correct hash3490 cluster_image_scanning3491 presents correct hash3492 dast3493 presents correct hash3494 license_scanning3495 presents correct hash3496 performance3497 presents correct hash3498 browser_performance3499 presents correct hash3500 load_performance3501 presents correct hash3502 metrics3503 presents correct hash3504 lsif3505 presents correct hash3506 dotenv3507 presents correct hash3508 cobertura3509 presents correct hash3510 terraform3511 presents correct hash3512 cluster_applications3513 presents correct hash3514 requirements3515 presents correct hash3516 coverage_fuzzing3517 presents correct hash3518 api_fuzzing3519 presents correct hash3520 cyclonedx3521 presents correct hash3522 when a specific coverage_report type is given3523 presents the coverage report hash with the coverage format3524 when a specific coverage_report type is given with another report type3525 presents both reports3526 when option has both archive and reports specification3527 presents correct hash3528 when archive specifies 'expire_in' keyword3529 inherits expire_in from archive3530 when option has no artifact keywords3531 does not present hash3532 #ref_type3533 returns the correct ref type3534 when tag is false3535 returns the correct ref type3536 #git_depth3537 defaults to git depth setting for the project3538 when GIT_DEPTH variable is specified3539 returns its value3540 #refspecs3541 returns the correct refspecs3542 when ref is tag3543 returns the correct refspecs3544 when GIT_DEPTH is zero3545 returns the correct refspecs3546 when pipeline is detached merge request pipeline3547 returns the correct refspecs3548 when GIT_DEPTH is zero3549 returns the correct refspecs3550 when pipeline is legacy detached merge request pipeline3551 returns the correct refspecs3552 when persistent pipeline ref exists3553 exposes the persistent pipeline ref3554 #runner_variables3555 returns an array3556 returns the expected variables3557 when there is a file variable to expand3558 returns variables with expanded3559 logs file_variable_is_referenced_in_another_variable3560 when there is a raw variable to expand3561 returns expanded variables without expanding raws3562 when the FF ci_raw_variables_in_yaml_config is disabled3563 returns expanded variables3564 #runner_variables subset3565 with references in pipeline variables3566 returns expanded and sorted variables3567Gitlab::BareRepositoryImport::Importer3568 with subgroups3569 behaves like importing a repository3570 .execute3571 creates a project for a repository in storage3572 skips wiki repos3573 without admin users3574 raises an error3575 #create_project_if_needed3576 starts an import for a project that did not exist3577 skips importing when the project already exists3578 creates a project with the correct path in the database3579 does not schedule an import3580 creates the Git repo on disk3581 hashed storage enabled3582 creates a project with the correct path in the database3583 without subgroups3584 behaves like importing a repository3585 .execute3586 creates a project for a repository in storage3587 skips wiki repos3588 without admin users3589 raises an error3590 #create_project_if_needed3591 starts an import for a project that did not exist3592 skips importing when the project already exists3593 creates a project with the correct path in the database3594 does not schedule an import3595 creates the Git repo on disk3596 hashed storage enabled3597 creates a project with the correct path in the database3598 without groups3599 starts an import for a project that did not exist3600 creates a project with the correct path in the database3601 creates the Git repo in disk3602 with a repository already on disk3603 moves an existing project to the correct path3604 with Wiki3605 creates the Wiki git repo in disk3606 behaves like importing a repository3607 .execute3608 creates a project for a repository in storage3609 skips wiki repos3610 without admin users3611 raises an error3612 #create_project_if_needed3613 starts an import for a project that did not exist3614 skips importing when the project already exists3615 creates a project with the correct path in the database3616 does not schedule an import3617 creates the Git repo on disk3618 hashed storage enabled3619 creates a project with the correct path in the database3620MergeRequestDiffCommit3621 behaves like a BulkInsertSafe model3622 when calling class methods directly3623 raises an error when method is not bulk-insert safe3624 does not raise an error when method is bulk-insert safe3625 .bulk_insert!3626 when all items are valid3627 inserts them all3628 returns an empty array3629 when some items are invalid3630 does not insert any of them and raises an error3631 inserts them anyway when bypassing validations3632 associations3633 is expected to belong to commit_author required: false3634 is expected to belong to committer required: false3635 #to_hash3636 returns the same results as Commit#to_hash, except for parent_ids3637 .create_bulk3638 inserts the commits into the database en masse3639 creates diff commit users3640 with dates larger than the DB limit3641 uses a sanitized date3642 .prepare_commits_for_bulk_insert3643 returns the commit hashes and unique user tuples3644Gitlab::Utils::UsageData3645 # order random3646 min/max3647 returns min from the model3648 returns max from the model3649 #redis_usage_data3650 records duration3651 with block given3652 returns the evaluated block when given3653 when method fails3654 behaves like failing hardening method3655 with should_raise_for_dev? false3656 returns the fallback3657 with should_raise_for_dev? true3658 raises an error3659 when Redis HLL raises any error3660 behaves like failing hardening method3661 with should_raise_for_dev? false3662 returns the fallback3663 with should_raise_for_dev? true3664 raises an error3665 with counter given3666 returns the totals when couter is given3667 when gets an error3668 behaves like failing hardening method3669 with should_raise_for_dev? false3670 returns the fallback3671 with should_raise_for_dev? true3672 raises an error3673 #distinct_count3674 returns the count when counting succeeds3675 records duration3676 when counting fails3677 behaves like failing hardening method3678 with should_raise_for_dev? false3679 returns the fallback3680 with should_raise_for_dev? true3681 raises an error3682 #count3683 returns the count when counting succeeds3684 records duration3685 when counting fails3686 behaves like failing hardening method3687 with should_raise_for_dev? false3688 returns the fallback3689 with should_raise_for_dev? true3690 raises an error3691 #estimate_batch_distinct_count3692 delegates counting to counter class instance3693 yield provided block with PostgresHll::Buckets3694 quasi integration test for different counting parameters3695 different counting parameters3696 counts with symbol passed in column argument3697 counts with string passed in column argument3698 counts with table.column passed in column argument3699 counts with Arel passed in column argument3700 counts over joined relations3701 counts with :column field with batch_size of 50K3702 counts with different number of batches and aggregates total result3703 counts with a start and finish3704 error handling3705 when counter raises WRONG_CONFIGURATION_ERROR3706 behaves like failing hardening method3707 with should_raise_for_dev? false3708 returns the fallback3709 with should_raise_for_dev? true3710 raises an error3711 when counting fails due to database error3712 behaves like failing hardening method3713 with should_raise_for_dev? false3714 returns the fallback3715 with should_raise_for_dev? true3716 raises an error3717 #sum3718 returns the count when counting succeeds3719 records duration3720 when counting fails3721 behaves like failing hardening method3722 with should_raise_for_dev? false3723 returns the fallback3724 with should_raise_for_dev? true3725 raises an error3726 .with_duration3727 yields passed block3728 #add_metric3729 computes the metric value for given metric3730 #histogram3731 checks bucket bounds to be not equal3732 checks bucket_size being non-zero3733 limits the amount of buckets without providing bucket_size argument3734 limits the amount of buckets when providing bucket_size argument3735 without data3736 aggregates properly within bounds3737 aggregates properly out of bounds3738 records duration3739 when query timeout3740 with should_raise_for_dev? false3741 logs canceled queries3742 returns fallback3743 with should_raise_for_dev? true3744 raises error3745 #add3746 adds given values3747 adds given values3748 records duration3749 returns the fallback value one of the arguments is negative3750 when adding fails3751 behaves like failing hardening method3752 with should_raise_for_dev? false3753 returns the fallback3754 with should_raise_for_dev? true3755 raises an error3756 #alt_usage_data3757 records duration3758 returns the evaluated block when give3759 returns the value when given3760 when method fails3761 behaves like failing hardening method3762 with should_raise_for_dev? false3763 returns the fallback3764 with should_raise_for_dev? true3765 raises an error3766 #measure_duration3767 returns block result and execution duration3768 #track_usage_event3769 tracks redis hll event3770 raise an error for unknown event3771 #with_finished_at3772 adds a timestamp to the hash yielded by the block3773 #with_prometheus_client3774 records duration3775 returns fallback with for an exception in yield block3776 when Prometheus server address is available from settings3777 behaves like try to query Prometheus with given address3778 Prometheus is ready3779 Prometheus is reachable through HTTPS3780 behaves like query data from Prometheus3781 yields a client instance and returns the block result3782 Prometheus is not reachable through HTTPS3783 Prometheus is reachable through HTTP3784 behaves like query data from Prometheus3785 yields a client instance and returns the block result3786 Prometheus is not reachable through HTTP3787 behaves like does not query data from Prometheus3788 returns {} by default3789 returns fallback if provided3790 Prometheus is not ready3791 behaves like does not query data from Prometheus3792 returns {} by default3793 returns fallback if provided3794 when Prometheus server address is available from Consul service discovery3795 behaves like try to query Prometheus with given address3796 Prometheus is ready3797 Prometheus is reachable through HTTPS3798 behaves like query data from Prometheus3799 yields a client instance and returns the block result3800 Prometheus is not reachable through HTTPS3801 Prometheus is reachable through HTTP3802 behaves like query data from Prometheus3803 yields a client instance and returns the block result3804 Prometheus is not reachable through HTTP3805 behaves like does not query data from Prometheus3806 returns {} by default3807 returns fallback if provided3808 Prometheus is not ready3809 behaves like does not query data from Prometheus3810 returns {} by default3811 returns fallback if provided3812 when Prometheus server address is not available3813 behaves like does not query data from Prometheus3814 returns {} by default3815 returns fallback if provided3816 #average3817 returns the average when operation succeeds3818 records duration3819 when operation fails3820 behaves like failing hardening method3821 with should_raise_for_dev? false3822 returns the fallback3823 with should_raise_for_dev? true3824 raises an error3825Mutations::MergeRequests::Accept3826 #resolve3827 merges the merge request3828 rejects the mutation if the SHA is a mismatch3829 respects the merge commit message3830 respects the squash flag3831 respects the squash_commit_message argument3832 respects the should_remove_source_branch argument when true3833 respects the should_remove_source_branch argument when false3834 rejects unmergeable MRs3835 rejects merges when we cannot validate the hooks3836 rejects merges when the merge service returns an error3837 rejects merges when the merge service raises merge error3838 can use the MERGE_WHEN_PIPELINE_SUCCEEDS strategy3839ExternalDiffUploader3840 behaves like builds correct paths3841 #store_dir3842 behaves like matches the method pattern3843 is expected to match /merge_request_diffs\/mr-\d+/3844 #cache_dir3845 behaves like matches the method pattern3846 is expected to match /\/external-diffs\/tmp\/cache/3847 #work_dir3848 behaves like matches the method pattern3849 is expected to match /\/external-diffs\/tmp\/work/3850 #upload_path3851 behaves like matches the method pattern3852 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3853 #relative_path3854 is relative (PENDING: Path not set, skipping.)3855 .absolute_path3856 behaves like matches the method pattern3857 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3858 .base_dir3859 behaves like matches the method pattern3860 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3861 path traversal exploits3862 throws an exception3863 object store is REMOTE3864 behaves like builds correct paths3865 #store_dir3866 behaves like matches the method pattern3867 is expected to match /merge_request_diffs\/mr-\d+/3868 #cache_dir3869 behaves like matches the method pattern3870 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3871 #work_dir3872 behaves like matches the method pattern3873 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3874 #upload_path3875 behaves like matches the method pattern3876 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3877 #relative_path3878 is relative (PENDING: Path not set, skipping.)3879 .absolute_path3880 behaves like matches the method pattern3881 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3882 .base_dir3883 behaves like matches the method pattern3884 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)3885 path traversal exploits3886 throws an exception3887 migration to object storage3888 with object storage disabled3889 is skipped3890 with object storage enabled3891 is scheduled to run after creation3892 remote file3893 with object storage enabled3894 can store file remotely3895Suggestion3896 associations3897 is expected to belong to note required: false3898 validations3899 is expected to validate that :note cannot be empty/falsy3900 when importing3901 is expected not to validate that :note cannot be empty/falsy3902 when suggestion is applied3903 is expected to validate that :commit_id cannot be empty/falsy3904 #diff_lines3905 returns parsed diff lines3906 #appliable?3907 when inapplicable_reason is nil3908 is expected to be truthy3909 when inapplicable_reason is not nil3910 is expected to be falsey3911 #inapplicable_reason3912 when suggestion is already applied3913 is expected to eq "Can't apply this suggestion."3914 when merge request was merged3915 is expected to eq "This merge request was merged. To apply this suggestion, edit this file directly."3916 when merge request is closed3917 is expected to eq "This merge request is closed. To apply this suggestion, edit this file directly."3918 when source branch is deleted3919 is expected to eq "Can't apply as the source branch was deleted."3920 when outdated3921 and content is outdated3922 behaves like outdated suggestion3923 and suggestion is for a single line3924 is expected to eq "Can't apply as this line was changed in a more recent version."3925 and suggestion is for multiple lines3926 is expected to eq "Can't apply as these lines were changed in a more recent version."3927 and note is outdated3928 behaves like outdated suggestion3929 and suggestion is for a single line3930 is expected to eq "Can't apply as this line was changed in a more recent version."3931 and suggestion is for multiple lines3932 is expected to eq "Can't apply as these lines were changed in a more recent version."3933 when suggestion has the same content3934 is expected to eq "This suggestion already matches its content."3935 when file is .ipynb3936 is expected to eq "This file was modified for readability, and can't accept suggestions. Edit it directly."3937 when applicable3938 is expected to be nil3939 #single_line?3940 when suggestion is for a single line3941 is expected to eq true3942 when suggestion is for multiple lines3943 is expected to eq false3944Banzai::Filter::References::ProjectReferenceFilter3945 ignores invalid projects3946 allows references with text after the > character3947 ignores valid references contained inside 'pre' element3948 ignores valid references contained inside 'code' element3949 ignores valid references contained inside 'a' element3950 ignores valid references contained inside 'style' element3951 includes default classes3952 behaves like user reference or project reference3953 supports an :only_path context3954 mentioning a resource3955 links to a resource3956 links to a resource with a period3957 links to a resource with an underscore3958 links to a resource with different case-sensitivity3959 behaves like a reference containing an element node3960 does not escape inner html3961 behaves like it contains a data- attribute3962 includes a data- attribute3963 referencing a resource in a link href3964 links to the resource3965 links with adjacent text3966 behaves like it contains a data- attribute3967 includes a data- attribute3968 when invalid reference strings are very long3969 behaves like fails fast3970 fails fast for long strings3971 behaves like fails fast3972 fails fast for long strings3973 in group context3974 supports mentioning a project3975 supports mentioning a project in a nested group3976 #projects_hash3977 returns a Hash containing all Projects3978 #projects3979 returns the projects mentioned in a document3980 checking N+13981 does not have N+1 per multiple project references3982Discussion3983 .lazy_find3984 batches requests3985 .build3986 returns a discussion of the right type3987 .build_collection3988 returns an array of discussions of the right type3989 authorization3990 delegates to the first note3991 #cache_key3992 returns the cache key3993 when discussion is resolved3994 returns the cache key with resolved at3995Timelog3996 is expected to belong to project required: false3997 is expected to belong to issue required: false3998 is expected to belong to merge_request required: false3999 is expected to be valid4000 is expected to validate that :time_spent cannot be empty/falsy4001 is expected to validate that :user cannot be empty/falsy4002 is expected to validate that the length of :summary is at most 2554003 is expected not to be nil4004 validation4005 is invalid if issue_id and merge_request_id are missing4006 is invalid if issue_id and merge_request_id are set4007 is valid if only issue_id is set4008 is valid if only merge_request_id is set4009 when importing4010 is valid if issue_id and merge_request_id are missing4011 scopes4012 .in_group4013 return timelogs created for group issues and merge requests4014 .for_user4015 return timelogs created by user4016 .in_project4017 returns timelogs created for project issues and merge requests4018 .at_or_after4019 returns timelogs at the time limit4020 returns timelogs after given time4021 .at_or_before4022 returns timelogs at the time limit4023 returns timelogs before given time4024 hooks4025 .set_project4026 populates project with issuable project4027UsersHelper4028 display_public_email?4029 is expected to equal true4030 when user public email is blank4031 is expected to equal false4032 #user_link4033 links to the user's profile4034 has the user's email as title4035 #profile_tabs4036 with public profile4037 includes all the expected tabs4038 with private profile4039 is empty4040 #user_internal_regex_data4041 user_default_external: false, user_default_internal_regex: nil, result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}4042 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}4043 user_default_external: false, user_default_internal_regex: "", result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}4044 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}4045 user_default_external: false, user_default_internal_regex: "mockRegexPattern", result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}4046 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}4047 user_default_external: true, user_default_internal_regex: nil, result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}4048 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}4049 user_default_external: true, user_default_internal_regex: "", result: {:user_internal_regex_pattern=>nil, :user_internal_regex_options=>nil}4050 is expected to eq {:user_internal_regex_options=>nil, :user_internal_regex_pattern=>nil}4051 user_default_external: true, user_default_internal_regex: "mockRegexPattern", result: {:user_internal_regex_pattern=>"mockRegexPattern", :user_internal_regex_options=>"i"}4052 is expected to eq {:user_internal_regex_options=>"i", :user_internal_regex_pattern=>"mockRegexPattern"}4053 #current_user_menu_items4054 includes all default items4055 includes the profile tab if the user can read themself4056 includes the settings tab if the user can update themself4057 when terms are enforced4058 hides the profile and the settings tab4059 #user_badges_in_admin_section4060 with a blocked user4061 returns the blocked badge4062 with a pending approval user4063 returns the pending approval badge4064 with a banned user4065 returns the banned badge4066 with an admin user4067 returns the admin badge4068 with a bot4069 returns the bot badge4070 with an external user4071 returns the external badge4072 with the current user4073 returns the "It's You" badge4074 with an external blocked admin4075 returns the blocked, admin and external badges4076 with a locked user4077 returns the "Locked" badge4078 get badges for normal user4079 returns no badges4080 #can_force_email_confirmation?4081 for a user that is already confirmed4082 is expected to eq false4083 for a user that is not confirmed4084 is expected to eq true4085 #work_information4086 when neither organization nor job_title are present4087 is expected to be nil4088 when user parameter is nil4089 is expected to be nil4090 without schema markup4091 when both job_title and organization are present4092 returns job title concatenated with organization4093 when only organization is present4094 returns organization4095 when only job_title is present4096 returns job title4097 with schema markup4098 when both job_title and organization are present4099 returns job title concatenated with organization4100 when only organization is present4101 returns organization4102 when only job_title is present4103 returns job title4104 #user_display_name4105 for a confirmed user4106 is expected to eq "Sidney Jones1403"4107 for an unconfirmed user4108 is expected to eq "Unconfirmed user"4109 when current user is an admin4110 is expected to eq "Sidney Jones1405"4111 when the current user is self4112 is expected to eq "Sidney Jones1407"4113 for a blocked user4114 is expected to eq "Blocked user"4115 #admin_users_data_attributes4116 users matches the serialized json4117 paths matches the schema4118 #confirm_user_data4119 sets `path` key correctly4120 sets `modal_attributes` key to valid json4121 when `user.unconfirmed_email` is set4122 sets `modal_attributes.messageHtml` correctly4123 when `user.unconfirmed_email` is not set4124 sets `modal_attributes.messageHtml` correctly4125 #user_email_help_text4126 when `user.unconfirmed_email` is not set4127 contains avatar detection text4128 when `user.unconfirmed_email` is set4129 contains resend confirmation e-mail text4130 #admin_user_actions_data_attributes4131 user matches the serialized json4132 paths matches the schema4133ContainerRegistry::Migration::EnqueuerWorker4134 #perform4135 migrations are disabled4136 behaves like no action4137 does not queue or change any repositories4138 with no repository qualifies4139 is labeled as idempotent4140 performs multiple times sequentially without raising an exception4141 behaves like no action4142 does not queue or change any repositories4143 when multiple aborted imports are available4144 with successful registry requests4145 retries the import for the aborted repository4146 when an error occurs4147 does abort that migration4148 when multiple qualified repositories are available4149 behaves like starting all the next imports4150 starts the pre-import for the next qualified repositories4151 when the new pre-import maxes out the capacity4152 starts the pre-import only for one qualified repository4153 max tag count is 04154 behaves like starting all the next imports4155 starts the pre-import for the next qualified repositories4156 when the deadline is hit4157 does not handle the second qualified repository4158 when a mix of aborted imports and qualified repositories are available4159 retries the aborted repository and start the migration on the qualified repository4160 above capacity4161 behaves like no action4162 does not queue or change any repositories4163 too soon before previous completed import step4164 state: :import_done, timestamp: :migration_import_done_at4165 behaves like no action4166 does not queue or change any repositories4167 state: :pre_import_done, timestamp: :migration_pre_import_done_at4168 behaves like no action4169 does not queue or change any repositories4170 state: :import_aborted, timestamp: :migration_aborted_at4171 behaves like no action4172 does not queue or change any repositories4173 state: :import_skipped, timestamp: :migration_skipped_at4174 behaves like no action4175 does not queue or change any repositories4176 when last completed repository has nil timestamps4177 continues to try the next import4178 over max tag count4179 skips the repository4180 when an error occurs4181 aborts the import4182 with the exclusive lease taken4183 does not perform4184 worker attributes4185 has deduplication set4186Packages::Debian::GroupDistribution4187 behaves like Debian Distribution4188 relationships4189 is expected to belong to group required: false4190 is expected to belong to creator class_name => User required: false4191 is expected to have one key class_name => Packages::Debian::GroupDistributionKey inverse_of => distribution4192 is expected to have many components class_name => Packages::Debian::GroupComponent inverse_of => distribution4193 is expected to have many architectures class_name => Packages::Debian::GroupArchitecture inverse_of => distribution4194 validations4195 #group4196 is expected to validate that :group cannot be empty/falsy4197 #creator4198 is expected not to validate that :creator cannot be empty/falsy4199 #codename4200 is expected to validate that :codename cannot be empty/falsy4201 is expected to allow :codename to be ‹"buster"›4202 is expected to allow :codename to be ‹"buster-updates"›4203 is expected to allow :codename to be ‹"Debian10.5"›4204 is expected not to allow :codename to be ‹"jessie/updates"›4205 is expected not to allow :codename to be ‹"hé"›4206 #suite4207 is expected to allow :suite to be ‹nil›4208 is expected to allow :suite to be ‹"testing"›4209 is expected not to allow :suite to be ‹"hé"›4210 #unique_debian_suite_and_codename4211 with_existing_suite: false, suite: nil, codename: :keep, errors: nil4212 debian_group_distribution4213 is expected to be valid4214 with_existing_suite: false, suite: "testing", codename: :keep, errors: nil4215 debian_group_distribution4216 is expected to be valid4217 with_existing_suite: false, suite: nil, codename: :codename, errors: ["Codename has already been taken"]4218 debian_group_distribution4219 is expected to eq ["Codename has already been taken"]4220 with_existing_suite: false, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]4221 debian_group_distribution4222 is expected to eq ["Suite has already been taken as Codename"]4223 with_existing_suite: false, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]4224 debian_group_distribution4225 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]4226 with_existing_suite: true, suite: nil, codename: :keep, errors: nil4227 debian_group_distribution4228 is expected to be valid4229 with_existing_suite: true, suite: "testing", codename: :keep, errors: nil4230 debian_group_distribution4231 is expected to be valid4232 with_existing_suite: true, suite: nil, codename: :codename, errors: ["Codename has already been taken"]4233 debian_group_distribution4234 is expected to eq ["Codename has already been taken"]4235 with_existing_suite: true, suite: :codename, codename: :keep, errors: ["Suite has already been taken as Codename"]4236 debian_group_distribution4237 is expected to eq ["Suite has already been taken as Codename"]4238 with_existing_suite: true, suite: :codename, codename: :codename, errors: ["Codename has already been taken", "Suite has already been taken as Codename"]4239 debian_group_distribution4240 is expected to eq ["Codename has already been taken", "Suite has already been taken as Codename"]4241 with_existing_suite: true, suite: nil, codename: :suite, errors: ["Codename has already been taken as Suite"]4242 debian_group_distribution4243 is expected to eq ["Codename has already been taken as Suite"]4244 with_existing_suite: true, suite: :suite, codename: :keep, errors: ["Suite has already been taken"]4245 debian_group_distribution4246 is expected to eq ["Suite has already been taken"]4247 with_existing_suite: true, suite: :suite, codename: :suite, errors: ["Suite has already been taken", "Codename has already been taken as Suite"]4248 debian_group_distribution4249 is expected to eq ["Suite has already been taken", "Codename has already been taken as Suite"]4250 #origin4251 is expected to allow :origin to be ‹nil›4252 is expected to allow :origin to be ‹"Debian"›4253 is expected not to allow :origin to be ‹"hé"›4254 #label4255 is expected to allow :label to be ‹nil›4256 is expected to allow :label to be ‹"Debian"›4257 is expected not to allow :label to be ‹"hé"›4258 #version4259 is expected to allow :version to be ‹nil›4260 is expected to allow :version to be ‹"10.6"›4261 is expected not to allow :version to be ‹"hé"›4262 #description4263 is expected to allow :description to be ‹nil›4264 is expected to allow :description to be ‹"Debian 10.6 Released 26 September 2020"›4265 is expected to allow :description to be ‹"Hé !"›4266 #valid_time_duration_seconds4267 is expected to allow :valid_time_duration_seconds to be ‹nil›4268 is expected to allow :valid_time_duration_seconds to be ‹86400›4269 is expected not to allow :valid_time_duration_seconds to be ‹43200›4270 #file4271 is expected not to validate that :file cannot be empty/falsy4272 #file_store4273 is expected to validate that :file_store cannot be empty/falsy4274 #file_signature4275 is expected not to validate that :file_signature is empty/falsy4276 #signed_file4277 is expected not to validate that :signed_file cannot be empty/falsy4278 #signed_file_store4279 is expected to validate that :signed_file_store cannot be empty/falsy4280 scopes4281 .with_container4282 does not return other distributions4283 .with_codename4284 does not return other distributions4285 .with_suite4286 does not return other distributions4287 .with_codename_or_suite4288 passing codename4289 does not return other distributions4290 passing suite4291 does not return other distributions4292 group distribution specifics4293 #packages4294 returns only public packages with same codename4295 #package_files4296 returns only files from public packages with same codename4297 with pending destruction package files4298 does not return them4299DiffDiscussion4300 #reply_attributes4301 includes position and original_position4302 #merge_request_version_params4303 when the discussion is active4304 returns an empty hash, which will end up showing the latest version4305 when the discussion is on an older merge request version4306 when commit_id is not present4307 returns the diff ID for the version to show4308 when commit_id is present4309 includes the commit_id in the result4310 when the discussion is on a comparison between merge request versions4311 when commit_id is not present4312 returns the diff ID and start sha of the versions to compare4313 when commit_id is present4314 includes the commit_id in the result4315 when the discussion does not have a merge request version4316 when commit_id is not present4317 returns empty hash4318 when commit_id is present4319 returns the commit_id4320 #cache_key4321 returns the cache key with the position sha4322 when first note of discussion has diff_note_position4323 includes sha of diff_note_positions position4324Gitlab::Ci::CronParser4325 #next_time_from4326 behaves like when cron and cron_timezone are valid4327 when specific time4328 returns exact time4329 behaves like returns time in the future4330 is expected to be > 2022-11-11 01:15:54 +00004331 when specific day of week4332 returns exact day of week4333 behaves like returns time in the future4334 is expected to be > 2022-11-11 01:15:54 +00004335 when slash used4336 returns specific time4337 behaves like returns time in the future4338 is expected to be > 2022-11-11 01:15:54 +00004339 when range used4340 returns specific time4341 behaves like returns time in the future4342 is expected to be > 2022-11-11 01:15:54 +00004343 when range and slash used4344 returns specific time4345 behaves like returns time in the future4346 is expected to be > 2022-11-11 01:15:55 +00004347 when cron_timezone is TZInfo format4348 when cron_timezone is US/Pacific4349 behaves like returns time in the future4350 is expected to be > 2022-11-11 01:15:55 +00004351 when PST (Pacific Standard Time)4352 converts time in server time zone4353 when PDT (Pacific Daylight Time)4354 converts time in server time zone4355 when cron_timezone is ActiveSupport::TimeZone format4356 when cron_timezone is Berlin4357 behaves like returns time in the future4358 is expected to be > 2022-11-11 01:15:55 +00004359 when CET (Central European Time)4360 converts time in server time zone4361 when CEST (Central European Summer Time)4362 converts time in server time zone4363 behaves like when cron_timezone is Eastern Time (US & Canada)4364 behaves like returns time in the future4365 is expected to be > 2022-11-11 01:15:55 +00004366 when EST (Eastern Standard Time)4367 converts time in server time zone4368 when EDT (Eastern Daylight Time)4369 converts time in server time zone4370 when time crosses a Daylight Savings boundary4371 generates day without TZInfo::AmbiguousTime error4372 behaves like when cron and cron_timezone are invalid4373 is expected to be nil4374 behaves like when cron syntax is quoted4375 is expected to be nil4376 behaves like when cron syntax is rufus-scheduler syntax4377 is expected to be nil4378 behaves like when cron is scheduled to a non existent day4379 is expected to be nil4380 #previous_time_from4381 behaves like when cron and cron_timezone are valid4382 when specific time4383 returns exact time4384 behaves like returns time in the past4385 is expected to be < 2022-11-11 01:15:55 +00004386 when specific day of week4387 returns exact day of week4388 behaves like returns time in the past4389 is expected to be < 2022-11-11 01:15:55 +00004390 when slash used4391 returns specific time4392 behaves like returns time in the past4393 is expected to be < 2022-11-11 01:15:55 +00004394 when range used4395 returns specific time4396 behaves like returns time in the past4397 is expected to be < 2022-11-11 01:15:55 +00004398 when range and slash used4399 returns specific time4400 behaves like returns time in the past4401 is expected to be < 2022-11-11 01:15:56 +00004402 when cron_timezone is TZInfo format4403 when cron_timezone is US/Pacific4404 behaves like returns time in the past4405 is expected to be < 2022-11-11 01:15:56 +00004406 when PST (Pacific Standard Time)4407 converts time in server time zone4408 when PDT (Pacific Daylight Time)4409 converts time in server time zone4410 when cron_timezone is ActiveSupport::TimeZone format4411 when cron_timezone is Berlin4412 behaves like returns time in the past4413 is expected to be < 2022-11-11 01:15:56 +00004414 when CET (Central European Time)4415 converts time in server time zone4416 when CEST (Central European Summer Time)4417 converts time in server time zone4418 behaves like when cron_timezone is Eastern Time (US & Canada)4419 behaves like returns time in the past4420 is expected to be < 2022-11-11 01:15:56 +00004421 when EST (Eastern Standard Time)4422 converts time in server time zone4423 when EDT (Eastern Daylight Time)4424 converts time in server time zone4425 when time crosses a Daylight Savings boundary4426 generates day without TZInfo::AmbiguousTime error4427 behaves like when cron and cron_timezone are invalid4428 is expected to be nil4429 behaves like when cron syntax is quoted4430 is expected to be nil4431 behaves like when cron syntax is rufus-scheduler syntax4432 is expected to be nil4433 behaves like when cron is scheduled to a non existent day4434 is expected to be nil4435 #cron_valid?4436 when cron is valid4437 is expected to eq true4438 when cron is invalid4439 is expected to eq false4440 when cron syntax is quoted4441 is expected to eq false4442 #cron_timezone_valid?4443 when cron is valid4444 is expected to eq true4445 when cron is invalid4446 is expected to eq false4447 when cron_timezone is ActiveSupport::TimeZone format4448 is expected to eq true4449 .parse_natural4450 when repeat cycle is day4451 generates daily cron expression4452 when repeat cycle is week4453 generates weekly cron expression4454 when repeat cycle is month4455 generates monthly cron expression4456 when an unsupported duration is specified4457 raises an exception4458 when repeat cycle is year4459 generates yearly cron expression4460 when the repeat cycle is not implemented4461 raises an exception4462StarredProjectsFinder4463 #execute4464 user has a public profile4465 as same user4466 is expected to contain exactly #<Project id:859 namespace848/project917>>, #<Project id:860 namespace849/project918>>, and #<Project id:861 namespace850/project919>>4467 as other user4468 is expected to contain exactly #<Project id:862 namespace851/project920>> and #<Project id:863 namespace852/project921>>4469 as no user4470 is expected to contain exactly #<Project id:865 namespace854/project923>> and #<Project id:866 namespace855/project924>>4471 user has a private profile4472 as same user4473 is expected to contain exactly #<Project id:868 namespace857/project926>>, #<Project id:869 namespace858/project927>>, and #<Project id:870 namespace859/project928>>4474 as other user4475 user does not have access to view the private profile4476 is expected to be empty4477 user has access to view the private profile4478 is expected to contain exactly #<Project id:874 namespace863/project932>>, #<Project id:875 namespace864/project933>>, and #<Project id:876 namespace865/project934>>4479 as no user4480 is expected to be empty4481Gitlab::Database::Migrations::TestBatchedBackgroundRunner4482 main database4483 running a real background migration4484 runs sampled jobs from the batched background migration4485 uses the correct connection to instrument the background migration4486 with jobs to run4487 samples jobs4488 with multiple jobs to run4489 runs all jobs created within the last 3 hours4490 choosing uniform batches to run4491 #uniform_fractions4492 generates evenly distributed sequences of fractions4493 ci database4494 running a real background migration4495 runs sampled jobs from the batched background migration4496 uses the correct connection to instrument the background migration4497 with jobs to run4498 samples jobs4499 with multiple jobs to run4500 runs all jobs created within the last 3 hours4501 choosing uniform batches to run4502 #uniform_fractions4503 generates evenly distributed sequences of fractions4504Integrations::Teamcity4505 behaves like Integrations::ResetSecretFields4506 #exposing_secrets_fields4507 returns an array of strings4508 #reset_secret_fields?4509 returns false if no exposing field has changed4510 returns true if any exposing field has changed4511 validation callback4512 when an exposing field has changed4513 clears all secret fields4514 when a secret field has been updated4515 does not clear this secret field4516 when a secret field has been updated with the same value4517 does not clear this secret field4518 when no exposing field has changed4519 does not clear any secret fields4520 accessors4521 is expected to respond to #enable_ssl_verification4522 is expected to respond to #enable_ssl_verification?4523 #initialize_properties4524 enables the setting by default4525 does not enable the setting if the record is already persisted4526 does not enable the setting if a custom value was set4527 #fields4528 inserts the checkbox field after the first URL field, or at the end4529 does not insert the field repeatedly4530 #enable_ssl_verification4531 returns true for a known hostname4532 returns true for new records4533 returns false for an unknown hostname4534 returns false for a HTTP URL4535 returns false for an invalid URL4536 returns the persisted value if present4537 Validations4538 when integration is active4539 is expected to validate that :build_type cannot be empty/falsy4540 is expected to validate that :teamcity_url cannot be empty/falsy4541 behaves like issue tracker integration URL attribute4542 is expected to allow :teamcity_url to be ‹"https://example.com"›4543 is expected not to allow :teamcity_url to be ‹"example.com"›4544 is expected not to allow :teamcity_url to be ‹"ftp://example.com"›4545 is expected not to allow :teamcity_url to be ‹"herp-and-derp"›4546 #username4547 does not validate the presence of username if password is nil4548 validates the presence of username if password is present4549 #password4550 does not validate the presence of password if username is nil4551 validates the presence of password if username is present4552 when integration is inactive4553 is expected not to validate that :build_type cannot be empty/falsy4554 is expected not to validate that :teamcity_url cannot be empty/falsy4555 is expected not to validate that :username cannot be empty/falsy4556 is expected not to validate that :password cannot be empty/falsy4557 #build_page4558 returns the contents of the reactive cache4559 #commit_status4560 returns the contents of the reactive cache4561 #calculate_reactive_cache4562 build_page4563 returns a specific URL when status is 5004564 returns a build URL when teamcity_url has no trailing slash4565 returns the teamcity_url when teamcity is unreachable4566 teamcity_url has trailing slash4567 returns a build URL4568 commit_status4569 sets commit status to :error when status is 5004570 sets commit status to "pending" when status is 4044571 sets commit status to "success" when build status contains SUCCESS4572 sets commit status to "failed" when build status contains FAILURE4573 sets commit status to "pending" when build status contains Pending4574 sets commit status to :error when build status is unknown4575 sets commit status to :error when teamcity is unreachable4576 #execute4577 returns nil when event is not supported4578 when push4579 handles push request correctly4580 returns nil when ref is blank4581 returns nil when there is no content4582 returns nil when a merge request is opened for the same ref4583 when merge_request4584 handles merge request correctly4585 returns nil when merge request is not opened4586 returns nil unless merge request is marked as unchecked4587MergeRequests::RetargetChainService4588 #execute4589 when there is another MR4590 in the same project4591 and current is merged4592 behaves like retargets merge request4593 another merge request is retargeted4594 and current is closed4595 behaves like does not retarget merge request4596 another merge request is unchanged4597 and another is closed4598 behaves like does not retarget merge request4599 another merge request is unchanged4600 and another is merged4601 behaves like does not retarget merge request4602 another merge request is unchanged4603 in forked project4604 when user has access to source project4605 behaves like retargets merge request4606 another merge request is retargeted4607 when user does not have access to source project4608 behaves like does not retarget merge request4609 another merge request is unchanged4610 and current and another MR is from a fork4611 behaves like does not retarget merge request4612 another merge request is unchanged4613 when many merge requests are to be retargeted4614 retargets only 4 of them4615MergeRequests::OldestPerCommitFinder4616 #execute4617 returns a Hash mapping commit SHAs to their oldest merge requests4618 skips merge requests that are not merged4619 includes the merge request for a merge commit4620 includes a merge request that was squashed into the target branch4621 includes a merge request for both a squash and merge commit4622 includes the oldest merge request when a merge commit is present in a newer merge request4623Packages::Conan::CreatePackageFileService4624 #execute4625 with temp file4626 behaves like a valid package_file4627 creates a new package file4628 behaves like assigns build to package file4629 with build info4630 assigns the pipeline to the package4631 creates a new PackageFileBuildInfo record4632 behaves like a valid recipe_file4633 creates a new recipe file4634 behaves like assigns build to package file4635 with build info4636 assigns the pipeline to the package4637 creates a new PackageFileBuildInfo record4638 with remote file4639 behaves like a valid package_file4640 creates a new package file4641 behaves like assigns build to package file4642 with build info4643 assigns the pipeline to the package4644 creates a new PackageFileBuildInfo record4645 behaves like a valid recipe_file4646 creates a new recipe file4647 behaves like assigns build to package file4648 with build info4649 assigns the pipeline to the package4650 creates a new PackageFileBuildInfo record4651 file is missing4652 raises an error4653ContextCommitsFinder4654 #execute4655 filters commits by valid sha/commit message4656 returns nothing when searched by invalid sha/commit message4657 returns commits based in author filter4658 returns commits based in before filter4659 returns commits based in after filter4660Notes::CopyService4661 #initialize4662 validates that we cannot copy notes to the same Noteable4663 #execute4664 rewriting the note body4665 simple notes4666 rewrites existing notes in valid order4667 copies all the issue notes4668 does not change the note attributes4669 copies the award emojis4670 copies system_note_metadata for system note4671 returns success4672 copies rendered markdown from note_html4673 notes with mentions4674 saves user mentions with actual mentions for new issue4675 notes with reference4676 rewrites the references correctly4677 does not copy rendered markdown from note_html4678 notes with upload4679 rewrites note content correctly4680 does not copy rendered markdown from note_html4681 discussion notes4682 rewrites discussion correctly4683ColorsHelper4684 #hex_color_to_rgb_array4685 valid hex color4686 hex_color: "#000000", rgb_array: [0, 0, 0]4687 returns correct RGB array4688 hex_color: "#aaaaaa", rgb_array: [170, 170, 170]4689 returns correct RGB array4690 hex_color: "#cCcCcC", rgb_array: [204, 204, 204]4691 returns correct RGB array4692 hex_color: "#FFFFFF", rgb_array: [255, 255, 255]4693 returns correct RGB array4694 hex_color: "#000abc", rgb_array: [0, 10, 188]4695 returns correct RGB array4696 hex_color: "#123456", rgb_array: [18, 52, 86]4697 returns correct RGB array4698 hex_color: "#a1b2c3", rgb_array: [161, 178, 195]4699 returns correct RGB array4700 hex_color: "#000", rgb_array: [0, 0, 0]4701 returns correct RGB array4702 hex_color: "#abc", rgb_array: [170, 187, 204]4703 returns correct RGB array4704 hex_color: "#321", rgb_array: [51, 34, 17]4705 returns correct RGB array4706 hex_color: "#7E2", rgb_array: [119, 238, 34]4707 returns correct RGB array4708 hex_color: "#fFf", rgb_array: [255, 255, 255]4709 returns correct RGB array4710 invalid hex color4711 hex_color: ""4712 raise ArgumentError4713 hex_color: "0"4714 raise ArgumentError4715 hex_color: "#00"4716 raise ArgumentError4717 hex_color: "#ffff"4718 raise ArgumentError4719 hex_color: "#1234567"4720 raise ArgumentError4721 hex_color: "invalid"4722 raise ArgumentError4723 hex_color: []4724/builds/gitlab-org/gitlab/app/helpers/colors_helper.rb:7: warning: deprecated Object#=~ is called on Array; it always returns nil4725 raise ArgumentError4726 hex_color: 14727/builds/gitlab-org/gitlab/app/helpers/colors_helper.rb:7: warning: deprecated Object#=~ is called on Integer; it always returns nil4728 raise ArgumentError4729 hex_color: nil4730 raise ArgumentError4731 #rgb_array_to_hex_color4732 valid RGB array4733 rgb_array: [0, 0, 0], hex_color: "#000000"4734 returns correct hex color4735 rgb_array: [0, 0, 255], hex_color: "#0000ff"4736 returns correct hex color4737 rgb_array: [0, 255, 0], hex_color: "#00ff00"4738 returns correct hex color4739 rgb_array: [255, 0, 0], hex_color: "#ff0000"4740 returns correct hex color4741 rgb_array: [12, 34, 56], hex_color: "#0c2238"4742 returns correct hex color4743 rgb_array: [222, 111, 88], hex_color: "#de6f58"4744 returns correct hex color4745 rgb_array: [255, 255, 255], hex_color: "#ffffff"4746 returns correct hex color4747 invalid RGB array4748 rgb_array: ""4749 raise ArgumentError4750 rgb_array: "#000000"4751 raise ArgumentError4752 rgb_array: 04753 raise ArgumentError4754 rgb_array: nil4755 raise ArgumentError4756 rgb_array: []4757 raise ArgumentError4758 rgb_array: [0]4759 raise ArgumentError4760 rgb_array: [0, 0]4761 raise ArgumentError4762 rgb_array: [0, 0, 0, 0]4763 raise ArgumentError4764 rgb_array: [-1, 0, 0]4765 raise ArgumentError4766 rgb_array: [0, -1, 0]4767 raise ArgumentError4768 rgb_array: [0, 0, -1]4769 raise ArgumentError4770 rgb_array: [256, 0, 0]4771 raise ArgumentError4772 rgb_array: [0, 256, 0]4773 raise ArgumentError4774 rgb_array: [0, 0, 256]4775 raise ArgumentError4776Ci::PipelineArtifactUploader4777 behaves like builds correct paths4778 #store_dir4779 behaves like matches the method pattern4780 is expected to match /\h{2}\/\h{2}\/\h{64}\/pipelines\/\d+\/artifacts\/\d+/4781 #cache_dir4782 behaves like matches the method pattern4783 is expected to match /artifacts\/tmp\/cache/4784 #work_dir4785 behaves like matches the method pattern4786 is expected to match /artifacts\/tmp\/work/4787 #upload_path4788 behaves like matches the method pattern4789 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4790 #relative_path4791 is relative (PENDING: Path not set, skipping.)4792 .absolute_path4793 behaves like matches the method pattern4794 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4795 .base_dir4796 behaves like matches the method pattern4797 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4798 path traversal exploits4799 throws an exception4800 when object store is REMOTE4801 behaves like builds correct paths4802 #store_dir4803 behaves like matches the method pattern4804 is expected to match /\h{2}\/\h{2}\/\h{64}\/pipelines\/\d+\/artifacts\/\d+/4805 #cache_dir4806 behaves like matches the method pattern4807 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4808 #work_dir4809 behaves like matches the method pattern4810 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4811 #upload_path4812 behaves like matches the method pattern4813 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4814 #relative_path4815 is relative (PENDING: Path not set, skipping.)4816 .absolute_path4817 behaves like matches the method pattern4818 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4819 .base_dir4820 behaves like matches the method pattern4821 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)4822 path traversal exploits4823 throws an exception4824 when file is stored in valid local_path4825 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/artifacts\/\h{2}\/\h{2}\/\h{64}\/pipelines\/172\/artifacts\/17\/code_coverage.json/4826Gitlab::GithubImport::Importer::PullRequestsImporter4827 #parallel?4828 returns true when running in parallel mode4829 returns false when running in sequential mode4830 #execute4831 when running in parallel mode4832 imports pull requests in parallel4833 when running in sequential mode4834 imports pull requests in sequence4835 #sequential_import4836 imports each pull request in sequence4837 #parallel_import4838 imports each note in parallel4839 #each_object_to_import4840 yields every pull request to the supplied block4841 updates the repository if a pull request was updated after the last clone4842 #update_repository4843 updates the repository4844 #update_repository?4845 when the pull request was updated after the last update4846 returns true when the head SHA is not present4847 returns true when the base SHA is not present4848 returns false if both the head and base SHAs are present4849 when the pull request was updated before the last update4850 returns false4851 #commit_exists?4852 returns true when a commit exists4853 returns false when a commit does not exist4854 #id_for_already_imported_cache4855 returns the PR number of the given PR4856Gitlab::Auth::CurrentUserMode4857 when session is available4858 #admin_mode?4859 when the user is a regular user4860 behaves like admin mode cannot be enabled4861 is false by default4862 cannot be enabled with a valid password4863 cannot be enabled with an invalid password4864 cannot be enabled with empty params4865 disable has no effect4866 skipping password validation4867 cannot be enabled with a valid password4868 cannot be enabled with an invalid password4869 bypassing session4870 behaves like admin mode cannot be enabled4871 is false by default4872 cannot be enabled with a valid password4873 cannot be enabled with an invalid password4874 cannot be enabled with empty params4875 disable has no effect4876 skipping password validation4877 cannot be enabled with a valid password4878 cannot be enabled with an invalid password4879 when the user is an admin4880 when admin mode not requested4881 is false by default4882 raises exception if we try to enable it4883 when admin mode requested first4884 is false by default4885 cannot be enabled with an invalid password4886 can be enabled with a valid password4887 can be disabled4888 will expire in the future4889 skipping password validation4890 can be enabled with a valid password4891 can be enabled with an invalid password4892 with two independent sessions4893 cannot be enabled in one and seen in the other4894 bypassing session4895 is active by default4896 enable has no effect4897 disable has no effect4898 #enable_admin_mode!4899 creates a timestamp in the session4900 #disable_admin_mode!4901 sets the session timestamp to nil4902 .with_current_request_admin_mode4903 with a regular user4904 user is not available inside nor outside the yielded block4905 with an admin user4906 admin mode is disabled4907 user is not available inside nor outside the yielded block4908 admin mode is enabled4909 user is available only inside the yielded block4910 when no session available4911 .bypass_session!4912 when providing a block4913 with a regular user4914 admin mode is false4915 with an admin user4916 admin mode is true4917 when not providing a block4918 with a regular user4919 admin mode is false4920 with an admin user4921 admin mode is true4922Projects::Operations::UpdateService4923 #execute4924 alerting setting4925 with valid params4926 when regenerate_token is not set4927 with an existing setting4928 ignores provided token4929 without an existing setting4930 behaves like setting creation4931 creates a setting4932 when regenerate_token is set4933 with an existing setting4934 regenerates token4935 without an existing setting4936 behaves like setting creation4937 creates a setting4938 with insufficient permissions4939 behaves like no operation4940 does nothing4941 with empty params4942 behaves like no operation4943 does nothing4944 metrics dashboard setting4945 without existing metrics dashboard setting4946 creates a setting4947 with existing metrics dashboard setting4948 updates the settings4949 with blank external_dashboard_url4950 updates dashboard_timezone4951 error tracking4952 with existing error tracking setting4953 updates the settings4954 disable error tracking4955 can set api_url to nil4956 without an existing error tracking setting4957 creates a setting4958 partial_update4959 with setting4960 service succeeds4961 updates attributes4962 only updates enabled attribute4963 with integrated attribute4964 updates integrated attribute4965 only updates enabled and integrated attributes4966 without setting4967 creates setting with default values4968 with masked param token4969 does not update token4970 with invalid parameters4971 does nothing4972 with inappropriate params4973 ignores params4974 grafana integration4975 without existing grafana integration4976 creates an integration4977 with an existing grafana integration4978 updates the settings4979 with all grafana attributes blank in params4980 destroys the metrics_setting entry in DB4981 prometheus integration4982 prometheus params were passed into service4983WARNING: You're overriding a previous stub implementation of `new`. Called from /builds/gitlab-org/gitlab/spec/services/projects/operations/update_service_spec.rb:441:in `block (5 levels) in <top (required)>'.. Called from /builds/gitlab-org/gitlab/spec/services/projects/operations/update_service_spec.rb:441:in `block (5 levels) in <top (required)>'.4984 uses Project#find_or_initialize_integration to include instance defined defaults and pass them to Projects::UpdateService4985 when prometheus params are not passed into service4986 does not pass any prometheus params into Projects::UpdateService4987PersonalSnippetPolicy4988 public snippet4989 no user4990 is expected to be disallowed :update_snippet and :admin_snippet4991 regular user4992 is expected to be disallowed :update_snippet and :admin_snippet4993 author4994 is expected to be allowed :update_snippet and :admin_snippet4995 behaves like admin access with admin mode4996 admin user4997 is expected to be allowed :update_snippet and :admin_snippet4998 internal snippet4999 no user5000 is expected to be disallowed :update_snippet and :admin_snippet5001 regular user5002 is expected to be disallowed :update_snippet and :admin_snippet5003 external user5004 is expected to be disallowed :update_snippet and :admin_snippet5005 snippet author5006 is expected to be allowed :update_snippet and :admin_snippet5007 behaves like admin access with admin mode5008 admin user5009 is expected to be allowed :update_snippet and :admin_snippet5010 private snippet5011 no user5012 is expected to be disallowed :update_snippet and :admin_snippet5013 regular user5014 is expected to be disallowed :update_snippet and :admin_snippet5015 external user5016 is expected to be disallowed :update_snippet and :admin_snippet5017 snippet author5018 is expected to be allowed :update_snippet and :admin_snippet5019 behaves like admin access with admin mode5020 admin user5021 is expected to be allowed :update_snippet and :admin_snippet5022DesignManagement::DesignPolicy5023 when DesignManagement is not enabled5024 behaves like design abilities not available5025 for owners5026 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design5027 for admins5028 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design5029 for maintainers5030 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design5031 for developers5032 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design5033 for reporters5034 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design5035 for guests5036 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design5037 for anonymous users5038 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design5039 when the feature is available5040 behaves like design abilities available for members5041 for owners5042 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design5043 for admins5044 when admin mode enabled5045 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design5046 when admin mode disabled5047 behaves like read-only design abilities5048 is expected to be allowed :read_design5049 is expected to be disallowed :create_design, :destroy_design, and :move_design5050 for maintainers5051 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design5052 for developers5053 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design5054 for reporters5055 behaves like read-only design abilities5056 is expected to be allowed :read_design5057 is expected to be disallowed :create_design, :destroy_design, and :move_design5058 for guests in private projects5059 behaves like read-only design abilities5060 is expected to be allowed :read_design5061 is expected to be disallowed :create_design, :destroy_design, and :move_design5062 for anonymous users in public projects5063 behaves like read-only design abilities5064 is expected to be allowed :read_design5065 is expected to be disallowed :create_design, :destroy_design, and :move_design5066 when the issue is confidential5067 behaves like design abilities available for members5068 for owners5069 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design5070 for admins5071 when admin mode enabled5072 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design5073 when admin mode disabled5074 behaves like read-only design abilities5075 is expected to be allowed :read_design5076 is expected to be disallowed :create_design, :destroy_design, and :move_design5077 for maintainers5078 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design5079 for developers5080 is expected to be allowed :read_design, :create_design, :destroy_design, and :move_design5081 for reporters5082 behaves like read-only design abilities5083 is expected to be allowed :read_design5084 is expected to be disallowed :create_design, :destroy_design, and :move_design5085 for guests5086 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design5087 for anonymous users5088 is expected to be disallowed :read_design, :create_design, :destroy_design, and :move_design5089 when the project is archived5090 behaves like read-only design abilities5091 is expected to be allowed :read_design5092 is expected to be disallowed :create_design, :destroy_design, and :move_design5093Ci::TestFailureHistoryService5094 #execute5095 when pipeline has failed builds with test reports5096 creates unit test failures records5097 when pipeline is not for the default branch5098 does not persist data5099 when test failure data have already been persisted with the same exact attributes5100 does not fail but does not persist new data5101 when number of failed unit tests exceed the limit5102 does not persist data5103 when number of failed unit tests across multiple builds exceed the limit5104 does not persist data5105 when test failure data have duplicates within the same payload (happens when the JUnit report has duplicate unit test names but have different failures)5106 does not fail but does not persist duplicate data5107 when pipeline has no failed builds with test reports5108 does not persist data5109 #should_track_failures?5110 when feature flag is enabled and pipeline ref is the default branch5111 is expected to eq true5112 when pipeline is not equal to the project default branch5113 is expected to eq false5114 when total number of builds with failed tests exceeds the max number of trackable failures5115 is expected to eq false5116 #async5117 when service should track failures5118 enqueues the worker when #perform_if_needed is called5119 when service should not track failures5120 does not enqueue the worker when #perform_if_needed is called5121IssueLink5122 behaves like issuable link5123 Associations5124 is expected to belong to source class_name => Issue required: false5125 is expected to belong to target class_name => Issue required: false5126 Validation5127 is expected to validate that :source cannot be empty/falsy5128 is expected to validate that :target cannot be empty/falsy5129 is expected to validate that :source is case-sensitively unique within the scope of :target_id, producing a custom validation error on failure5130 is not valid if an opposite link already exists5131 when it relates to itself5132 when target is nil5133 does not invalidate object with self relation error5134 when source and target are present5135 invalidates object5136 scopes5137 .for_source_or_target5138 returns only links where id is either source or target id5139 .link_type5140 is expected to define :link_type as an enum backed by an integer with values ‹{relates_to: 0, blocks: 1}›5141 provides the "related" as default link_type5142 .issuable_type5143 is expected to eq :issue5144 Scopes5145 .for_source_issue5146 includes linked issues for source issue5147 .for_target_issue5148 includes linked issues for target issue5149Gitlab::Ci::Reports::TestSuiteComparer5150 #new_failures5151 when head suite has a newly failed test case which does not exist in base5152 returns the failed test case5153 when head suite still has a failed test case which failed in base5154 does not return the failed test case5155 when head suite has a success test case which failed in base5156 does not return the failed test case5157 #existing_failures5158 when head suite has a newly failed test case which does not exist in base5159 returns the failed test case5160 when head suite still has a failed test case which failed in base5161 does not return the failed test case5162 when head suite has a success test case which failed in base5163 does not return the failed test case5164 #resolved_failures5165 when head suite has a newly failed test case which does not exist in base5166 returns the failed test case5167 returns the correct resolved count5168 when head suite still has a failed test case which failed in base5169 does not return the failed test case5170 returns the correct resolved count5171 when head suite has a success test case which failed in base5172 does not return the resolved test case5173 returns the correct resolved count5174 #new_errors5175 when head suite has a new error test case which does not exist in base5176 returns the error test case5177 when head suite still has an error test case which errored in base5178 does not return the error test case5179 when head suite has a success test case which errored in base5180 does not return the error test case5181 #existing_errors5182 when head suite has a new error test case which does not exist in base5183 does not return the error test case5184 when head suite still has an error test case which errored in base5185 returns the error test case5186 when head suite has a success test case which errored in base5187 does not return the error test case5188 #resolved_errors5189 when head suite has a new error test case which does not exist in base5190 does not return the error test case5191 returns the correct resolved count5192 when head suite still has an error test case which errored in base5193 does not return the error test case5194 returns the correct resolved count5195 when head suite has a success test case which errored in base5196 returns the resolved test case5197 returns the correct resolved count5198 #total_count5199 returns the total test counts in head suite5200 #failed_count5201 when there are a new failure and an existing failure5202 returns the correct count5203 when there is a new failure5204 returns the correct count5205 when there is an existing failure5206 returns the correct count5207 #total_status5208 when all test cases in head suite are success5209 returns the total status in head suite5210 when there is a failed test case in head suite5211 returns the total status in head suite as failed5212 when there is an error test case in head suite5213 returns the total status in head suite as failed5214 #limited_tests5215 limits amount of tests returned5216 prefers new over existing and resolved5217 returns 2 of each new category, and 1 of each resolved and existing5218 does not affect the overall count5219 prefers existing over resolved5220 returns 2 of each existing category, and 1 of each resolved5221 does not affect the overall count5222 limits amount of resolved5223 returns 2 of each resolved category5224 does not affect the overall count5225DeployKey5226 Associations5227 is expected to have many deploy_keys_projects5228 is expected to have many deploy_keys_projects_with_write_access class_name => DeployKeysProject5229 is expected to have many projects_with_write_access class_name => Project through deploy_keys_projects_with_write_access source => project5230 is expected to have many projects5231 is expected to have many protected_branch_push_access_levels5232 notification5233 does not send a notification5234 #user5235 when user is set5236 returns the user5237 when user is not set5238 returns the ghost user5239 .with_write_access_for_project5240 when no project is passed in5241 is expected to be empty5242 when a project is passed in5243 only returns deploy keys with write access5244 returns deploy keys only for this project5245 and a specific deploy key is passed in5246 and this deploy key is not linked to the project5247 is expected to be empty5248 and this deploy key has not write access to the project5249 is expected to be empty5250 and this deploy key has write access to the project5251 is expected to contain exactly #<DeployKey id: 11, user_id: nil, created_at: "2022-11-11 01:18:24.140744718 +0000", updated_at: "202...xpires_at: nil, expiry_notification_delivered_at: nil, before_expiry_notification_delivered_at: nil>5252 PolicyActor methods5253 responds to all PolicyActor methods5254 #can?5255 is expected to equal true5256 when a read deploy key is enabled in the project5257 is expected to equal false5258 is expected to equal true5259 is expected to equal false5260 when a write deploy key is enabled in the project5261 is expected to equal false5262 is expected to equal true5263 is expected to equal true5264 when the deploy key is not enabled in the project5265 is expected to equal false5266 is expected to equal false5267 is expected to equal false5268 #audit_details5269 equals to the key's title5270Badge5271 validations5272 link_url format5273 behaves like placeholder url5274 allows url with http protocol5275 allows url with https protocol5276 cannot be empty5277 cannot be nil5278 accept badges placeholders5279 sanitize url5280 image_url format5281 behaves like placeholder url5282 allows url with http protocol5283 allows url with https protocol5284 cannot be empty5285 cannot be nil5286 accept badges placeholders5287 sanitize url5288 methods5289 #rendered_link_url5290 behaves like rendered_links5291 uses the project information to populate the url placeholders5292 returns the url if the project used is nil5293 #rendered_image_url5294 behaves like rendered_links5295 uses the project information to populate the url placeholders5296 returns the url if the project used is nil5297 when asset proxy is enabled5298 returns a proxied URL5299Security::CiConfiguration::SecretDetectionCreateService5300 #execute5301 user does not belong to project5302 returns an error status5303 does not track a snowplow event5304 user belongs to project5305 does track the snowplow event5306 raises exception if the user does not have permission to create a new branch5307 when exception is raised5308 when branch was created5309 tries to rm branch5310 when branch was not created5311 does not try to rm branch5312 with no parameters5313 returns the path to create a new merge request5314 when the project has a non-default ci config file5315 does track the snowplow event5316Ci::DagJobEntity5317 #as_json5318 contains the name5319 behaves like matches schema5320 matches schema5321 when job is stage scheduled5322 contains the name scheduling_type5323 does not expose needs5324 behaves like matches schema5325 matches schema5326 when job is dag scheduled5327 contains the name scheduling_type5328 behaves like matches schema5329 matches schema5330 when job has needs5331 exposes the array of needs5332 behaves like matches schema5333 matches schema5334 when job has empty needs5335 exposes an empty array of needs5336 behaves like matches schema5337 matches schema5338Gitlab::Ci::Pipeline::Chain::Seed5339 #perform!5340 allocates next IID5341 ensures ci_ref5342 sets the seeds in the command object5343 when no ref policy is specified5344 correctly fabricates stages and builds5345 when refs policy is specified5346 returns pipeline seed with jobs only assigned to master5347 when source policy is specified5348 returns pipeline seed with jobs only assigned to schedules5349 when kubernetes policy is specified5350 when kubernetes is active5351 when user configured kubernetes from CI/CD > Clusters5352 returns seeds for kubernetes dependent job5353 when kubernetes is not active5354 does not return seeds for kubernetes dependent job5355 when variables policy is specified5356 returns stage seeds only when variables expression is truthy5357 when there is seeds_block5358 does not execute the block5359 #root_variables5360 sends root variable with overridden by rules5361 #rule_variables5362 correctly parses rule variables5363 N+1 queries5364 avoids N+1 queries when calculating variables of jobs5365Gitlab::GlRepository::RepoType5366 #<Gitlab::GlRepository::RepoType:0x00007f34e6b142d0>5367 knows its type5368 checks if repository path is valid5369 behaves like a repo type5370 #identifier_for_container5371 is expected to eq "project-1014"5372 #path_suffix5373 is expected to eq ""5374 #repository_for5375 finds the repository for the repo type5376 returns nil when container is nil5377 #<Gitlab::GlRepository::RepoType:0x00007f34edf94ab0>5378 knows its type5379 checks if repository path is valid5380 behaves like a repo type5381 #identifier_for_container5382 is expected to eq "wiki-1014"5383 #path_suffix5384 is expected to eq ".wiki"5385 #repository_for5386 finds the repository for the repo type5387 returns nil when container is nil5388 #<Gitlab::GlRepository::RepoType:0x00007f34edd80e68>5389 when PersonalSnippet5390 knows its type5391 checks if repository path is valid5392 behaves like a repo type5393 #identifier_for_container5394 is expected to eq "snippet-20"5395 #path_suffix5396 is expected to eq ""5397 #repository_for5398 finds the repository for the repo type5399 returns nil when container is nil5400 when ProjectSnippet5401 knows its type5402 checks if repository path is valid5403 behaves like a repo type5404 #identifier_for_container5405 is expected to eq "snippet-21"5406 #path_suffix5407 is expected to eq ""5408 #repository_for5409 finds the repository for the repo type5410 returns nil when container is nil5411 #<Gitlab::GlRepository::RepoType:0x00007f34edd6e740>5412 uses the design access checker5413 knows its type5414 checks if repository path is valid5415 behaves like a repo type5416 #identifier_for_container5417 is expected to eq "design-1014"5418 #path_suffix5419 is expected to eq ".design"5420 #repository_for5421 finds the repository for the repo type5422 returns nil when container is nil5423ObjectStoreSettings5424 #parse!5425 with valid config5426 sets correct default values5427 supports bucket prefixes5428 raises an error when a bucket is missing5429[WARNING] Object storage for pages must have a bucket specified5430 does not raise error if pages bucket is missing5431 with Google CDN enabled5432 populates artifacts CDN config5433 GitLab Pages5434 allows pages to define its own connection5435 behaves like consolidated settings for objects accelerated by Workhorse5436 consolidates active object storage settings5437 when object storage is disabled for artifacts with no bucket5438 does not enable consolidated settings for artifacts5439 behaves like consolidated settings for objects accelerated by Workhorse5440 consolidates active object storage settings5441 with legacy config5442 does not alter config if legacy settings are specified5443 .legacy_parse5444 sets correct default values5445 respects original values5446 supports bucket prefixes5447 .split_bucket_prefix5448 valid inputs5449 input: nil, bucket: nil, prefix: nil5450 is expected to eq [nil, nil]5451 input: "", bucket: nil, prefix: nil5452 is expected to eq [nil, nil]5453 input: "bucket", bucket: "bucket", prefix: nil5454 is expected to eq ["bucket", nil]5455 input: "bucket/prefix", bucket: "bucket", prefix: "prefix"5456 is expected to eq ["bucket", "prefix"]5457 input: "bucket/pre/fix", bucket: "bucket", prefix: "pre/fix"5458 is expected to eq ["bucket", "pre/fix"]5459 invalid inputs5460 input: "bucket/"5461 is expected to raise /invalid bucket/5462 input: "bucket/."5463 is expected to raise /invalid bucket/5464 input: "bucket/.."5465 is expected to raise /invalid bucket/5466 input: "bucket/prefix/"5467 is expected to raise /invalid bucket/5468 input: "bucket/prefix/."5469 is expected to raise /invalid bucket/5470 input: "bucket/prefix/.."5471 is expected to raise /invalid bucket/5472 input: "/bucket/prefix"5473 is expected to raise /invalid bucket/5474 input: "./bucket/prefix"5475 is expected to raise /invalid bucket/5476 input: "../bucket/prefix"5477 is expected to raise /invalid bucket/5478 input: "bucket//prefix"5479 is expected to raise /invalid bucket/5480 input: "bucket/./prefix"5481 is expected to raise /invalid bucket/5482 input: "bucket/../prefix"5483 is expected to raise /invalid bucket/5484Gitlab::ImportExport::Group::TreeSaver5485 saves the group tree into a json object5486 saves the group successfully5487 fails to export a group5488 exported files5489 has one group per line5490 has a file per group5491 has a file for each group association5492 group attributes file5493 has a file for each group with its attributes5494 does not contain excluded attribute5495 does not contain excluded attribute5496 does not contain excluded attribute5497 does not contain excluded attribute5498 does not contain excluded attribute5499 does not contain excluded attribute5500Gitlab::Ci::Status::Build::WaitingForApproval5501 .matches?5502 when build is waiting for approval5503 is a correct match5504 when build is not waiting for approval5505 does not match5506 #illustration5507 is expected to include :image and :size5508 is expected to eq "Waiting for approval"5509 is expected to include "This job deploys to the protected environment \"production\""5510 #has_action?5511 is expected to be truthy5512 #action_icon5513 is expected to be nil5514 #action_title5515 is expected to be nil5516 #action_button_title5517 is expected to eq "Go to environments page to approve or reject"5518 #action_path5519 is expected to include "environments"5520 #action_method5521 is expected to eq :get5522API::Helpers::PackagesHelpers5523 authorize_packages_access!5524 authorizes packages access5525 authorize_read_package!5526 subject: project, expected_class: Packages::Policies::Project5527 calls authorize! with correct subject5528 subject: group, expected_class: Packages::Policies::Group5529 calls authorize! with correct subject5530 subject: package, expected_class: Packages::Package(id: integer, project_id: integer, created_at: datetime_with_timezone, updated_at: datetime_with_timezone, name: string, version: string, package_type: integer, creator_id: integer, status: integer, last_downloaded_at: datetime_with_timezone)5531 calls authorize! with correct subject5532 authorize_create_package!5533 calls authorize!5534 authorize_destroy_package!5535 calls authorize!5536 require_packages_enabled!5537 with packages enabled5538 doesn't call not_found!5539 with package disabled5540 calls not_found!5541 #authorize_workhorse!5542 authorizes workhorse5543 without length5544 authorizes workhorse5545 #authorize_upload!5546 authorizes the upload5547 #user_project5548 calls find_project! on default action5549 calls find_project! on read_project action5550 calls user_project_with_read_package on read_package action5551 throws ArgumentError on unexpected action5552 #user_project_with_read_package5553 with non-existing project5554 with current user5555 returns Not Found5556 without current user5557 returns Unauthorized5558 with existing project5559 with current user5560 as developer member5561 returns project5562 as guest member5563 returns Forbidden5564 without current user5565 returns Unauthorized5566 if no authorized project scope5567 returns Forbidden5568Milestones::ClosedIssuesCountService5569 counts closed issues including confidential5570 behaves like a counter caching service5571 #count5572 caches the count5573 #refresh_cache5574 refreshes the cache5575 #delete_cache5576 removes the cache5577 #uncached_count5578 does not cache the count5579StateNote5580 .from_event5581 with event state opened5582 contains the expected values5583 behaves like a synthetic note5584 behaves like a system note5585 has the correct attributes5586 #discussion_id5587 returns the expected discussion id5588 with event state closed5589 contains the expected values5590 behaves like a synthetic note5591 behaves like a system note5592 has the correct attributes5593 #discussion_id5594 returns the expected discussion id5595 with event state merged5596 contains the expected values5597 behaves like a synthetic note5598 behaves like a system note5599 has the correct attributes5600 #discussion_id5601 returns the expected discussion id5602 with event state locked5603 contains the expected values5604 behaves like a synthetic note5605 behaves like a system note5606 has the correct attributes5607 #discussion_id5608 returns the expected discussion id5609 with event state reopened5610 contains the expected values5611 behaves like a synthetic note5612 behaves like a system note5613 has the correct attributes5614 #discussion_id5615 returns the expected discussion id5616 with a mentionable source5617 with a commit5618 contains the expected values5619 with a merge request5620 contains the expected values5621 when closed by error tracking5622 contains the expected values5623 when closed by promotheus alert5624 contains the expected values5625Namespaces::ProcessSyncEventsWorker5626 is labeled as idempotent5627 performs multiple times sequentially without raising an exception5628 deduplication5629 has the `until_executed` deduplicate strategy5630 has an option to reschedule once if deduplicated5631 expect the job to enqueue itself again if there was more items to be processed5632 #perform5633 consumes all sync events5634 syncs namespace hierarchy traversal ids5635 logs the service result5636BoardsHelper5637 #build_issue_link_base5638 project board5639 returns correct path for project board5640 group board5641 returns correct path for base group5642 returns correct path for subgroup5643 #board_base_url5644 when group board5645 generates the correct url5646 when project board5647 generates the correct url5648 #current_board_namespace5649 when group board5650 returns the correct namespace5651 project under group5652 when project board5653 returns the correct namespace5654 project under user namespace5655 when project board5656 returns the correct namespace5657 #board_data5658 project_board5659 returns board type as parent5660 returns can_update for user permissions on the board5661 returns required label endpoints5662 returns the group id of a project5663 can_admin_list5664 returns can_admin_list as false by default5665 returns can_admin_list as true when user can admin the board lists5666 can_admin_board5667 returns can_admin_board as false by default5668 returns can_admin_board as true when user can admin the board5669 group board5670 returns correct path for base group5671 returns required label endpoints5672 returns the group id5673 can_admin_list5674 returns can_admin_list as false by default5675 returns can_admin_list as true when user can admin the board lists5676Ci::CreatePipelineService5677 rate limiting5678 when user is under the limit5679 allows pipeline creation5680 when user is over the limit5681 blocks pipeline creation5682 with different users5683 allows other members to create pipelines5684 with different commits5685 allows user to create pipeline5686 with different projects5687 allows user to create pipeline5688Gitlab::JiraImport::StuckJiraImportJobsWorker5689 with scheduled Jira import5690 behaves like stuck import job detection5691 when the job has completed5692 when the import status was already updated5693 does not mark the import as failed5694 when the import status was not updated5695 marks the import as failed5696 when the job is still in Sidekiq5697 does not mark the import as failed5698 with started jira import5699 behaves like stuck import job detection5700 when the job has completed5701 when the import status was already updated5702 does not mark the import as failed5703 when the import status was not updated5704 marks the import as failed5705 when the job is still in Sidekiq5706 does not mark the import as failed5707 with failed jira import5708 detects no stuck jobs5709FinderWithGroupHierarchy5710 when specifying group5711 returns only the group by default5712 when specifying group_id5713 returns only the group by default5714 when including items from group ancestors5715 returns group and its ancestors5716 ignores groups which user can not read5717 returns them all when skip_authorization is true5718 when including items from group descendants5719 returns items from group and its descendants5720 ignores items from groups which user can not read5721 returns them all when skip_authorization is true5722Gitlab::Ci::ProjectConfig5723 # order random5724 when config is defined in a separate repository5725 returns root config including the path to another repository5726 when path specifies a refname5727 returns root config including the path and refname to another repository5728 when config is defined in the default .gitlab-ci.yml5729 returns root config including the canonical CI config file5730 when bridge job is passed in as parameter5731 returns the content already available in command5732 when config is defined remotely5733 returns root config including the remote config5734 when config is defined in a custom path in the repository5735 returns root config including the local custom file5736 when config is not defined anywhere5737 returns nil5738 when config is the Auto-Devops template5739 returns root config including the auto-devops template5740 when config is passed as a parameter5741 returns the parameter content5742Integrations::Youtrack5743 Validations5744 when integration is active5745 is expected to validate that :project_url cannot be empty/falsy5746 is expected to validate that :issues_url cannot be empty/falsy5747 behaves like issue tracker integration URL attribute5748 is expected to allow :project_url to be ‹"https://example.com"›5749 is expected not to allow :project_url to be ‹"example.com"›5750 is expected not to allow :project_url to be ‹"ftp://example.com"›5751 is expected not to allow :project_url to be ‹"herp-and-derp"›5752 behaves like issue tracker integration URL attribute5753 is expected to allow :issues_url to be ‹"https://example.com"›5754 is expected not to allow :issues_url to be ‹"example.com"›5755 is expected not to allow :issues_url to be ‹"ftp://example.com"›5756 is expected not to allow :issues_url to be ‹"herp-and-derp"›5757 when integration is inactive5758 is expected not to validate that :project_url cannot be empty/falsy5759 is expected not to validate that :issues_url cannot be empty/falsy5760 .reference_pattern5761 does allow project prefix on the reference5762 allows lowercase project key on the reference5763 behaves like allows project key on reference pattern5764 allows underscores in the project name5765 allows numbers in the project name5766 requires the project name to begin with A-Z5767 does not allow issue number to finish with a letter5768 #fields5769 only returns the project_url and issues_url fields5770ContainerRegistry::Event5771 #supported?5772 action: "delete", supported: true5773 is expected to eq true5774 action: "push", supported: true5775 is expected to eq true5776 action: "mount", supported: false5777 is expected to eq false5778 action: "pull", supported: false5779 is expected to eq false5780 #handle!5781 behaves like event with project statistics update5782 enqueues a project statistics update5783 clears the cache for the namespace container repositories size5784 with no target tag5785 behaves like event without project statistics update5786 does not queue a project statistics update5787 with a target digest5788 behaves like event without project statistics update5789 does not queue a project statistics update5790 with a delete action5791 without a target digest5792 behaves like event without project statistics update5793 does not queue a project statistics update5794 with a target digest5795 behaves like event with project statistics update5796 enqueues a project statistics update5797 clears the cache for the namespace container repositories size5798 with an unsupported action5799 behaves like event without project statistics update5800 does not queue a project statistics update5801 with an invalid project repository path5802 behaves like event without project statistics update5803 does not queue a project statistics update5804 with no project repository path5805 behaves like event without project statistics update5806 does not queue a project statistics update5807 #track!5808 with a respository target5809 repository_path: "group/test/container", action: "push", tracking_action: "push_repository"5810 creates a tracking event5811 repository_path: "group/test/container", action: "delete", tracking_action: "delete_repository"5812 creates a tracking event5813 repository_path: "foo/bar", action: "push", tracking_action: "create_repository"5814 creates a tracking event5815 repository_path: "foo/bar", action: "delete", tracking_action: "delete_repository"5816 creates a tracking event5817 with a tag target5818 repository_path: "group/test/container", action: "push", tracking_action: "push_tag"5819 creates a tracking event5820 repository_path: "group/test/container", action: "delete", tracking_action: "delete_tag"5821 creates a tracking event5822 repository_path: "foo/bar", action: "push", tracking_action: "push_tag"5823 creates a tracking event5824 repository_path: "foo/bar", action: "delete", tracking_action: "delete_tag"5825 creates a tracking event5826Projects::HashedStorage::BaseAttachmentService5827 #old_disk_path5828 is expected to respond to #old_disk_path5829 #new_disk_path5830 is expected to respond to #new_disk_path5831 #skipped?5832 is expected to respond to #skipped?5833 #target_path_discardable?5834 returns false5835 #discard_path!5836 renames target path adding a timestamp at the end5837 #move_folder!5838 when old_path is not a directory5839 adds information to the logger and returns true5840Gitlab::Ci::Variables::Builder::Project5841 #secret_variables5842 when the ref is protected5843 contains all the variables5844 when the ref is not protected5845 contains only the unprotected variables5846 when environment name is specified5847 when environment scope is exactly matched5848 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f349fd2c5a0 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>5849 when environment scope is matched by wildcard5850 is expected to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f349fb1fa28 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>5851 when environment scope does not match5852 is expected not to contain exactly #<Gitlab::Ci::Variables::Collection::Item:0x00007f349d6f9590 @variable={:key=>"VARIABLE_1", :value=>"secret", :public=>false, :file=>false, :masked=>false, :raw=>false}>5853 when environment scope has _5854 does not treat it as wildcard5855 when environment name contains underscore5856 matches literally for _5857 when environment scope has %5858 does not treat it as wildcard5859 when environment name contains a percent5860 matches literally for _5861 when variables with the same name have different environment scopes5862 puts variables matching environment scope more in the end5863WorkItems::Widgets::HierarchyService::UpdateService5864 #update5865 when parent and children params are present5866 behaves like raises a WidgetError5867 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "A Work Item can be a parent or a child, but not both."5868 when invalid params are present5869 behaves like raises a WidgetError5870 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "One or more arguments are invalid: other_parent."5871 when updating children5872 when user has insufficient permissions to link work items5873 behaves like raises a WidgetError5874 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "No matching task found. Make sure that you are adding a valid task ID."5875 when user has sufficient permissions to link work item5876 with valid params5877 correctly sets work item parent5878 when child is already assigned5879 behaves like raises a WidgetError5880 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "Task(s) already assigned"5881 when child type is invalid5882 behaves like raises a WidgetError5883 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "#7 cannot be added: only Task can be assigned as a child in hierarchy."5884 when updating parent5885 when user has insufficient permissions to link work items5886 behaves like raises a WidgetError5887 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "No matching task found. Make sure that you are adding a valid task ID."5888 when user has sufficient permissions to link work item5889 correctly sets new parent5890 when parent is nil5891 removes the work item parent if present5892 returns success status if parent not present5893 when type is invalid5894 behaves like raises a WidgetError5895 is expected to raise WorkItems::Widgets::BaseService::WidgetError with "#4 cannot be added: only Issue and Incident can be parent of Task."5896Types::BaseEnum5897 adds a formatted `deprecated_reason` to the subject5898 appends to the description if given5899 does not append to the description if it is absent5900 adds information about the replacement if provided5901 supports named reasons: renamed5902 supports named reasons: alpha5903 supports :alpha5904 does not allow :alpha and :deprecated together5905 .from_rails_enum5906 contructs the correct values5907 .declarative_enum5908 #graphql_name5909 when the use_name is `true`5910 changes the graphql_name5911 when the use_name is `false`5912 does not change the graphql_name5913 #description5914 when the use_description is `true`5915 changes the description5916 when the use_description is `false`5917 does not change the description5918 #values5919 sets the values defined by the declarative enum5920 .enum5921 adds all enum values to #enum5922 is a HashWithIndefferentAccess5923 validations5924 raises an informative error if `deprecation_reason` is used5925 raises an error if a required property is missing5926 raises an error if milestone is not a String5927 visible?5928 defaults to true5929 when subject is deprecated5930 defaults to true5931 returns false if `remove_deprecated` is true in context5932clearing redis cache5933 clearing pipeline status cache5934 clears pipeline status cache5935 behaves like clears the cache5936 is expected to change `redis_keys.size` by -15937 clearing set caches5938 repository set5939 behaves like clears the cache5940 is expected to change `redis_keys.size` by -15941 reactive cache set5942 behaves like clears the cache5943 is expected to change `redis_keys.size` by -15944ReleaseSerializer5945 #represent5946 when a single object is being serialized5947 serializes the label object5948 does not expose git-sha as sensitive information5949 when multiple objects are being serialized5950 serializes the array of releases5951Gitlab::FileHook5952 with file_hooks present5953 .any?5954 returns true5955 .files?5956 returns a list of file_hooks5957 without any file_hooks5958 .any?5959 returns false5960 .files5961 returns an empty list5962 .execute5963 successful execution5964 is expected to equal true5965 is expected to be empty5966 ensures file_hook received data via stdin5967 non-executable5968 is expected to equal false5969 is expected to include "Permission denied"5970 non-zero exit5971 is expected to equal false5972 is expected to be empty5973Gitlab::Database::Count::ExactCountStrategy5974 #count5975 counts all models5976 returns default value if count times out5977Deployments::HooksWorker5978 #perform5979 logs deployment and project IDs as metadata5980 executes project services for deployment_hooks5981 does not execute an inactive service5982 does not execute if a deployment does not exist5983 execute webhooks5984 behaves like worker with data consistency5985 .get_data_consistency_feature_flag_enabled?5986 returns true5987 .get_data_consistency5988 returns correct data consistency5989Git::WikiPushService::Change5990 #page5991 the page does not exist5992 the operation is added5993 is expected to have attributes {:page => (be nil)}5994 the operation is deleted5995 is expected to have attributes {:page => (be nil)}5996 the operation is renamed5997 is expected to have attributes {:page => (be nil)}5998 the operation is modified5999 is expected to have attributes {:page => (be nil)}6000 the page can be found6001 is expected to have attributes {:page => #<Double "WikiPage">}6002 is expected to have attributes {:page => #<Double "WikiPage">}6003 is expected to have attributes {:page => #<Double "WikiPage">}6004 the page has been deleted6005 is expected to have attributes {:page => #<Double "WikiPage">}6006 #last_known_slug6007 the page has been created6008 is expected to have attributes {:last_known_slug => "Page_10"}6009 the operation is renamed6010 is expected to have attributes {:last_known_slug => "Page_12"}6011 the operation is modified6012 is expected to have attributes {:last_known_slug => "Page_13"}6013 the operation is deleted6014 is expected to have attributes {:last_known_slug => "Page_14"}6015 #event_action6016 the page is deleted6017 is expected to have attributes {:event_action => :destroyed}6018 the page is added6019 is expected to have attributes {:event_action => :created}6020 the page is renamed6021 is expected to have attributes {:event_action => :updated}6022 the page is modified6023 is expected to have attributes {:event_action => :updated}6024Gitlab::Ci::Reports::AccessibilityReportsComparer6025 #status6026 when head report has an error6027 returns status failed6028 when head reports does not have errors6029 returns status success6030 #errors_count6031 when head report has an error6032 returns the number of new errors6033 when head reports does not have an error6034 returns the number new errors6035 #resolved_count6036 when base reports has an error and head has a different error6037 returns the resolved count6038 when base reports has errors head has no errors6039 returns the resolved count6040 when base reports has errors and head has the same error6041 returns zero6042 when base reports does not have errors and head has errors6043 returns the number of resolved errors6044 #total_count6045 when base reports has an error6046 returns zero6047 when head report has an error6048 returns the total count6049 when base report has errors and head report has errors6050 returns the total count6051 when base report has errors and head report has the same error6052 returns the total count6053 #existing_errors6054 when base report has errors and head has a different error6055 returns an empty array6056 when base report does not have errors and head has errors6057 returns an empty array6058 when base report has errors and head report has the same error6059 returns the existing error6060 #new_errors6061 when base reports has errors and head has more errors6062 returns new errors between base and head reports6063 when base reports has an error and head has no errors6064 returns an empty array6065 when base reports does not have errors and head has errors6066 returns the new error6067 #resolved_errors6068 when base report has errors and head has more errors6069 returns an empty array6070 when base reports has errors and head has a different error6071 returns the resolved errors6072 when base reports does not have errors and head has errors6073 returns an empty array6074Resolvers::MergeRequestsCountResolver6075 #resolve6076 is expected to have nullable GraphQL type Int6077 when user can only view an issue's closing merge requests that are public6078 returns the count of the merge requests closing the issue6079 when user can view an issue's closing merge requests that are both public and private6080 returns the count of the merge requests closing the issue6081gitlab:artifacts rake tasks6082 check6083 outputs the integrity check for each batch6084 errors out about missing files on the file system6085 errors out about invalid checksum6086 errors out about missing checksum6087Projects::ProcessSyncEventsWorker6088 is labeled as idempotent6089 performs multiple times sequentially without raising an exception6090 has the `until_executed` deduplicate strategy6091 has an option to reschedule once if deduplicated6092 #perform6093 consumes all sync events6094 syncs project namespace id6095 logs the service result6096Gitlab::Ci::Pipeline::Expression::Lexeme::Matches6097 .build6098 with non-evaluable operands6099 creates a new instance of the token6100 with evaluable operands6101 creates a new instance of the token6102 .type6103 is an operator6104 .precedence6105 has a precedence6106 #evaluate6107 when left and right do not match6108 is expected to eq false6109 when left and right match6110 is expected to eq true6111 when left is nil6112 is expected to eq false6113 when right is nil6114 is expected to eq false6115 when left and right are nil6116 is expected to eq false6117 when left is an empty string6118 is expected to eq false6119 when left and right are empty strings6120 is expected to eq true6121 when left is a multiline string and matches right6122 is expected to eq true6123 when left is a multiline string and does not match right6124 is expected to eq false6125 when a matching pattern uses regex flags6126 is expected to eq true6127 when a non-matching pattern uses regex flags6128 is expected to eq false6129 when right value is a regexp string6130 when matching6131 is expected to eq true6132 when not matching6133 is expected to eq false6134ErrorTracking::SentryClient::Repo6135 #repos6136 is expected to all be a kind of Gitlab::ErrorTracking::Repo6137 is expected to eq 16138 behaves like calls sentry api6139 calls sentry api6140 behaves like Sentry API response size limit6141 when guarded by feature flag6142 with feature flag enabled6143 raises an exception when response is too large6144 with feature flag disabled6145 does not check the limit and thus not raise6146 with redirects6147 behaves like no Sentry redirects6148 does not follow redirects6149 when exception is raised6150 behaves like maps Sentry exceptions6151 HTTParty::Error6152 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"6153 Net::OpenTimeout6154 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"6155 SocketError6156 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"6157 OpenSSL::SSL::SSLError6158 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"6159 Errno::ECONNREFUSED6160 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"6161 StandardError6162 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"6163Mutations::ContainerRepositories::DestroyTags6164 is expected to require graphql authorizations :destroy_container_image6165 #resolve6166 with valid id6167 user_role: :maintainer, shared_examples_name: "destroying container repository tags"6168 behaves like destroying container repository tags6169 destroys the container repository tags6170 creates a package event6171 user_role: :developer, shared_examples_name: "destroying container repository tags"6172 behaves like destroying container repository tags6173 destroys the container repository tags6174 creates a package event6175 user_role: :reporter, shared_examples_name: "denying access to container respository"6176 behaves like denying access to container respository6177 raises an error6178 user_role: :guest, shared_examples_name: "denying access to container respository"6179 behaves like denying access to container respository6180 raises an error6181 user_role: :anonymous, shared_examples_name: "denying access to container respository"6182 behaves like denying access to container respository6183 raises an error6184 with non-existing id6185 behaves like denying access to container respository6186 raises an error6187 with service error6188 is expected to eq {:deleted_tag_names=>[], :errors=>["could not delete tags"]}6189 does not create a package event6190LooseForeignKeys::DeletedRecord6191 class methods6192 .load_batch_for_table6193 loads records and orders them by creation date6194 supports configurable batch size6195 .mark_records_processed6196 updates all records6197 .reschedule6198 reschedules all records6199 .increment_attempts6200 increaments the cleanup_attempts column6201 sliding_list partitioning6202 next_partition_if callback6203 when the partition is empty6204 is expected to eq false6205 when the partition has records6206 is expected to eq false6207 when the first record of the partition is older than PARTITION_DURATION6208 is expected to eq true6209 detach_partition_if callback6210 when the partition contains unprocessed records6211 is expected to eq false6212 when the partition contains only processed records6213 is expected to eq true6214 the behavior of the strategy6215 moves records to new partitions as time passes6216CacheableAttributes6217 .expire6218 wipes the cache6219 .current_without_cache6220 defaults to last6221 can be overridden6222 .cache_key6223 excludes cache attributes6224 .defaults6225 defaults to {}6226 with defaults defined6227 can be overridden6228 .build_from_defaults6229 without any attributes given6230 intializes a new object with the defaults6231 with attributes given6232 intializes a new object with the given attributes merged into the defaults6233 edge cases on concrete implementations6234 .build_from_defaults6235 without any attributes given6236 intializes all attributes even if they are nil6237 .current6238 uses RequestStore in addition to process memory cache6239 redis unavailable6240 in production environment6241 returns an uncached record and logs a warning6242 in other environments6243 returns an uncached record and logs a warning6244 when a record is not yet present6245 does not cache nil object6246 caches non-nil object6247 edge cases6248 caching behavior6249 retrieves upload fields properly6250 retrieves markdown fields properly6251 .cached6252 when cache is cold6253 returns nil6254 when cached is warm6255 retrieves the record from cache6256 #cache!6257 caches the attributes6258 edge cases6259 caches the attributes6260Gitlab::Ci::Config::External::Rules6261 #evaluate6262 when there is no rule6263 is expected to eq true6264 when there is a rule with if6265 when the rule matches6266 is expected to eq true6267 when the rule does not match6268 is expected to eq false6269 when there is a rule with exists6270 when the file does not exist6271 is expected to eq false6272 when the file exists6273 is expected to eq true6274 when there is a rule with if and when6275 raises an error6276 when there is a rule with changes6277 raises an error6278Gitlab::MergeRequests::Mergeability::CheckResult6279 .default_payload6280 returns the expected defaults6281 .success6282 creates a success result6283 uses the default payload6284 when given a payload6285 uses the payload passed6286 .failed6287 creates a failure result6288 uses the default payload6289 when given a payload6290 uses the payload passed6291 .from_hash6292 returns the expected status and payload6293 #to_hash6294 returns the expected hash6295 #failed?6296 when it has failed6297 returns true6298 when it has succeeded6299 returns false6300 #success?6301 when it has failed6302 returns false6303 when it has succeeded6304 returns true6305Gitlab::IssuableMetadata6306 returns an empty Hash if an empty collection is provided6307 raises an error when given a collection with no limit6308 issues6309 aggregates stats on issues6310 merge requests6311 aggregates stats on merge requests6312Tree6313 #readme6314 returns nil when repository does not contains a README file6315 returns nil when repository does not contains a previewable README file6316 returns README when repository contains a previewable README file6317 returns first previewable README when repository contains more than one6318 returns first plain text README when repository contains more than one6319 prioritizes previewable README file over one in plain text6320 #cursor6321 is expected to be an instance of Gitaly::PaginationCursor6322Gitlab::GithubImport::Importer::PullRequestsMergedByImporter6323 is expected to includes the Gitlab::GithubImport::ParallelScheduling module6324 #representation_class6325 is expected to eq Gitlab::GithubImport::Representation::PullRequest6326 #importer_class6327 is expected to eq Gitlab::GithubImport::Importer::PullRequestMergedByImporter6328 #collection_method6329 is expected to eq :pull_requests_merged_by6330 #id_for_already_imported_cache6331 is expected to eq 16332 #each_object_to_import6333 fetches the merged pull requests data6334 skips cached merge requests6335RunPipelineScheduleWorker6336 #perform6337 when a schedule not found6338 does not call the Service6339 when a schedule project is missing6340 does not call the Service6341 when a user not found6342 does not call the Service6343 #run_pipeline_schedule6344 when refactored_create_pipeline_execution_method feature flag is disabled6345 when everything is ok6346 calls the Service6347 when pipeline cannot be created6348 logs a pipeline error6349 when refactored_create_pipeline_execution_method feature flag is enabled6350 when pipeline is persisted6351 returns the service response6352 does not log errors6353 when pipeline was not persisted6354 logs a pipeline creation error6355 when database statement timeout happens6356 increments Prometheus counter6357 logging a pipeline error6358Namespaces::StatisticsRefresherService#execute6359 without a root storage statistics relation6360 creates one6361 recalculate the namespace statistics6362 when given a subgroup6363 does not create statistics for the subgroup6364 with a root storage statistics relation6365 does not create one6366 recalculate the namespace statistics6367 when given a subgroup6368 recalculates the root namespace's statistics6369 when something goes wrong6370 raises RefreshError6371layouts/simple_registration6372 behaves like a layout which reflects the application theme setting6373 as a themed layout6374 when no theme is explicitly selected6375 renders with the default theme6376 when user is authenticated & has selected a specific theme6377 chosen_theme: #<struct Gitlab::Themes::Theme id=1, name="Indigo", css_class="ui-indigo", css_filename="theme_indigo", primary_color="#292961">6378 renders with the Indigo theme6379 chosen_theme: #<struct Gitlab::Themes::Theme id=6, name="Light Indigo", css_class="ui-light-indigo", css_filename="theme_light_indigo", primary_color="#4b4ba3">6380 renders with the Light Indigo theme6381 chosen_theme: #<struct Gitlab::Themes::Theme id=4, name="Blue", css_class="ui-blue", css_filename="theme_blue", primary_color="#1a3652">6382 renders with the Blue theme6383 chosen_theme: #<struct Gitlab::Themes::Theme id=7, name="Light Blue", css_class="ui-light-blue", css_filename="theme_light_blue", primary_color="#2261a1">6384 renders with the Light Blue theme6385 chosen_theme: #<struct Gitlab::Themes::Theme id=5, name="Green", css_class="ui-green", css_filename="theme_green", primary_color="#0d4524">6386 renders with the Green theme6387 chosen_theme: #<struct Gitlab::Themes::Theme id=8, name="Light Green", css_class="ui-light-green", css_filename="theme_light_green", primary_color="#156b39">6388 renders with the Light Green theme6389 chosen_theme: #<struct Gitlab::Themes::Theme id=9, name="Red", css_class="ui-red", css_filename="theme_red", primary_color="#691a16">6390 renders with the Red theme6391 chosen_theme: #<struct Gitlab::Themes::Theme id=10, name="Light Red", css_class="ui-light-red", css_filename="theme_light_red", primary_color="#a62e21">6392 renders with the Light Red theme6393 chosen_theme: #<struct Gitlab::Themes::Theme id=2, name="Gray", css_class="ui-gray", css_filename="theme_gray", primary_color="#303030">6394 renders with the Gray theme6395 chosen_theme: #<struct Gitlab::Themes::Theme id=3, name="Light Gray", css_class="ui-light-gray", css_filename="theme_light_gray", primary_color="#666">6396 renders with the Light Gray theme6397 chosen_theme: #<struct Gitlab::Themes::Theme id=11, name="Dark Mode (alpha)", css_class="gl-dark", css_filename=nil, primary_color="#303030">6398 renders with the Dark Mode (alpha) theme6399Gitlab::Security::ScanConfiguration6400 #available?6401 with a core scanner6402 type: :sast6403 is expected to be truthy6404 type: :sast_iac6405 is expected to be truthy6406 type: :secret_detection6407 is expected to be truthy6408 type: :container_scanning6409 is expected to be truthy6410 with custom scanner6411 is expected to be falsey6412 #configured?6413 is expected to be falsey6414 #configuration_path6415 is expected to be nil6416 #meta_info_path6417 is expected to be nil6418 #can_enable_by_merge_request?6419 with a core scanner6420 type: :sast6421 is expected to be truthy6422 type: :sast_iac6423 is expected to be truthy6424 type: :secret_detection6425 is expected to be truthy6426 with a custom scanner6427 is expected to be falsey6428Gitlab::SidekiqCluster6429 .start6430 starts Sidekiq with the given queues, environment and options6431 starts Sidekiq with the given queues and sensible default options6432 .start_sidekiq6433 starts a Sidekiq process6434 handles duplicate queue names6435 runs the sidekiq process in a new process group6436 .count_by_queue6437 tallies the queue counts6438 .concurrency6439 queue_count: 2, min: 0, max: 0, expected: 36440 is expected to eq 36441 queue_count: 2, min: 0, max: 9, expected: 36442 is expected to eq 36443 queue_count: 2, min: 1, max: 4, expected: 36444 is expected to eq 36445 queue_count: 2, min: 4, max: 5, expected: 46446 is expected to eq 46447 queue_count: 5, min: 2, max: 3, expected: 36448 is expected to eq 36449 queue_count: 2, min: 1, max: 1, expected: 16450 is expected to eq 16451 queue_count: 0, min: 3, max: 3, expected: 36452 is expected to eq 36453 queue_count: 1, min: 4, max: 3, expected: 36454 is expected to eq 36455GraphqlTriggers6456 .issuable_assignees_updated6457 triggers the issuableAssigneesUpdated subscription6458 .issuable_title_updated6459 triggers the issuableTitleUpdated subscription6460 .issuable_description_updated6461 triggers the issuableDescriptionUpdated subscription6462 .issuable_labels_updated6463 triggers the issuableLabelsUpdated subscription6464 .issuable_dates_updated6465 triggers the issuableDatesUpdated subscription6466 .issuable_milestone_updated6467 triggers the issuableMilestoneUpdated subscription6468 .merge_request_reviewers_updated6469 triggers the mergeRequestReviewersUpdated subscription6470 .merge_request_merge_status_updated6471 triggers the mergeRequestMergeStatusUpdated subscription6472Ci::CreatePipelineService6473 # order random6474 when using variables6475 when variables have expand: true/false6476 creates the pipeline with a job that has variable expanded according to "expand"6477 when the FF ci_raw_variables_in_yaml_config is disabled6478 creates the pipeline with a job that has all variables expanded6479 when trigger variables have expand: true/false6480 creates the pipeline with a trigger job that has downstream_variables expanded according to "expand"6481 when the FF ci_raw_variables_in_yaml_config is disabled6482 creates the pipeline with a job that has all variables expanded6483Banzai::Pipeline6484 .[]6485 for nil6486 is expected to eq Banzai::Pipeline::FullPipeline6487 for symbols6488 when known6489 is expected to eq Banzai::Pipeline::FullPipeline6490 when unknown6491 behaves like error6492 is expected to raise NameError with "uninitialized constant Banzai::Pipeline::UnknownPipeline"6493 for classes6494 subclassing Banzai::Pipeline::BasePipeline6495 is expected to eq #<Class:0x00007f349621f6c0>6496 subclassing other types6497 behaves like error6498 is expected to raise ArgumentError with "unsupported pipeline name Foo (Class)"6499 for other types6500 behaves like error6501 is expected to raise ArgumentError with "unsupported pipeline name \"label\" (String)"6502Gitlab::PrivateCommitEmail6503 .regex6504 is expected to match "1-foo@users.noreply.localhost"6505 is expected not to match "1-foo@users.noreply.localhost.foo"6506 is expected not to match "1-foo@users.noreply.gitlab.com"6507 is expected not to match "foo-1@users.noreply.gitlab.com"6508 is expected not to match "foobar@gitlab.com"6509 .user_id_for_email6510 parses user id from email6511 returns nil on invalid commit email6512 .user_ids_for_email6513 returns deduplicated user IDs for each valid email6514 returns an empty array with no valid emails6515 .for_user6516 returns email in the format id-username@hostname6517Clusters::Agents::ProjectAuthorization6518 is expected to belong to agent class_name => Clusters::Agent required: true6519 is expected to belong to project class_name => Project required: true6520 is expected to validate jsonb schema "config"6521 #config_project6522 is expected to eq #<Project id:1109 namespace1088/project1168>>6523Clusters::Agents::ActivityEventPolicy6524 rules6525 reporter6526 is expected to be disallowed :admin_cluster6527 is expected to be disallowed :read_cluster6528 developer6529 is expected to be disallowed :admin_cluster6530 is expected to be allowed :read_cluster6531 maintainer6532 is expected to be allowed :admin_cluster6533 is expected to be allowed :read_cluster6534Types::CurrentUserTodos6535 is expected to eq "CurrentUserTodos"6536 is expected to have graphql fields :current_user_todos6537 .current_user_todos6538 batches todo lookups, linear in the number of target types/state arguments6539 returns correct data6540 returns correct data, when state arguments are supplied6541ProjectCommitCount6542 #commit_count_for6543 handles exceptions by logging them with exception_details and returns the default_count6544 when a root_ref exists6545 returns commit count from GitlayClient6546 when a root_ref does not exist6547 returns the default_count6548Gitlab::Ci::Pipeline::Expression::Lexeme::Equals6549 .build6550 with non-evaluable operands6551 creates a new instance of the token6552 with evaluable operands6553 creates a new instance of the token6554 .type6555 is an operator6556 .precedence6557 has a precedence6558 #evaluate6559 when left and right are equal6560 left_value: "string", right_value: "string"6561 is expected to eq true6562 when left and right are not equal6563 left_value: "one string", right_value: "two string"6564 is expected to eq false6565 left_value: "two string", right_value: "one string"6566 is expected to eq false6567X509Helper6568 #x509_subject6569 with uppercase DN6570 returns the attributes on any case search6571 with lowercase DN6572 returns the attributes on any case search6573 with comma within DN6574 returns the attributes on any case search6575 with mal formed DN6576 returns nil on any case search6577 #x509_signature?6578 detects a x509 signed commit6579Packages::Rubygems::ProcessGemService6580 #execute6581 no gem file6582 returns an error6583 success6584 returns successfully6585 updates the package name and version6586 updates the package file name6587 when the package already exists6588 assigns the package_file to the existing package and deletes the temporary package6589 when the package already exists marked as pending_destruction6590 reuses the processing package6591 sub-service failure6592 returns an error6593 bad gem file6594 returns an error6595 without obtaining an exclusive lease6596 does not perform the services6597Projects::DetectRepositoryLanguagesService6598 #execute6599 without previous detection6600 inserts new programming languages in the database6601 inserts the repository langauges6602 updates detected_repository_languages flag6603 with a previous detection6604 updates the repository languages6605 doesn't touch detected_repository_languages flag6606 when no repository exists6607 has no languages6608Projects::LfsPointers::LfsLinkService6609 #execute6610 raises an error when trying to link too many objects at once6611 links existing lfs objects to the project6612 returns linked oids6613 links in batches6614 only queries for the batch that will be processed6615 only queries 3 times6616Sidebars::Projects::Panel6617 has a scope menu6618 Confluence menu item6619 when integration is present and active6620 confluence only6621 contains Confluence menu item6622 does not contain Wiki menu item6623 shimo only6624 contains Shimo menu item6625 confluence & shimo6626 contains Confluence menu item, not Shimo6627 when integration is not present6628 does not contain Confluence menu item6629 contains Wiki menu item6630IdentityProviderPolicy6631 #rules6632 is expected to be allowed :link6633 is expected to be allowed :unlink6634 when user is anonymous6635 is expected not to be allowed :link6636 is expected not to be allowed :unlink6637 when provider is saml6638 is expected to be allowed :link6639 is expected not to be allowed :unlink6640 when provider is cas36641 is expected to be allowed :link6642 is expected not to be allowed :unlink6643Gitlab::UsageDataCounters::WorkItemActivityUniqueCounter6644 .track_work_item_created_action6645 behaves like work item unique counter6646 when track_work_items_activity FF is enabled6647 tracks a unique event only once6648 when author is nil6649 behaves like counter that does not track the event6650 does not track the event6651 when track_work_items_activity FF is disabled6652 behaves like counter that does not track the event6653 does not track the event6654 .track_work_item_title_changed_action6655 behaves like work item unique counter6656 when track_work_items_activity FF is enabled6657 tracks a unique event only once6658 when author is nil6659 behaves like counter that does not track the event6660 does not track the event6661 when track_work_items_activity FF is disabled6662 behaves like counter that does not track the event6663 does not track the event6664 .track_work_item_date_changed_action6665 behaves like work item unique counter6666 when track_work_items_activity FF is enabled6667 tracks a unique event only once6668 when author is nil6669 behaves like counter that does not track the event6670 does not track the event6671 when track_work_items_activity FF is disabled6672 behaves like counter that does not track the event6673 does not track the event6674 .track_work_item_labels_changed_action6675 behaves like work item unique counter6676 when track_work_items_activity FF is enabled6677 tracks a unique event only once6678 when author is nil6679 behaves like counter that does not track the event6680 does not track the event6681 when track_work_items_activity FF is disabled6682 behaves like counter that does not track the event6683 does not track the event6684 .track_work_item_milestone_changed_action6685 behaves like work item unique counter6686 when track_work_items_activity FF is enabled6687 tracks a unique event only once6688 when author is nil6689 behaves like counter that does not track the event6690 does not track the event6691 when track_work_items_activity FF is disabled6692 behaves like counter that does not track the event6693 does not track the event6694RunnersTokenPrefixable6695 runners token prefix6696 has the correct value6697Mutations::Issues::SetSubscription6698 is expected to require graphql authorizations :update_subscription6699 when user does not have access to the project6700 behaves like a subscribeable not accessible graphql resource6701 raises an error if the resource is not accessible to the user6702 when user is developer member of the project6703 behaves like a subscribeable graphql resource6704 subscribes to the resource6705 when passing subscribe as false6706 unsubscribes from the discussion6707 when the project is public6708 behaves like a subscribeable graphql resource6709 subscribes to the resource6710 when passing subscribe as false6711 unsubscribes from the discussion6712 when the project is public but the issue is confidential6713 behaves like a subscribeable not accessible graphql resource6714 raises an error if the resource is not accessible to the user6715Packages::Nuget::PackageMetadataPresenter6716 #json_url6717 is expected to end with "/api/v4/projects/1134/packages/nuget/metadata/NugetPackage1/1.0.1.json"6718 #archive_url6719 is expected to end with "/api/v4/projects/1134/packages/nuget/download/NugetPackage1/1.0.1/NugetPackage1.1.0.1.nupkg"6720 with package files pending destruction6721 is expected not to include "pending_destruction.nupkg"6722 #catalog_entry6723 returns an entry structure6724NotificationsHelper6725 notification_icon6726 is expected to match "data-testid=\"notifications-off-icon\""6727 is expected to match "data-testid=\"notifications-off-icon\""6728 is expected to match "data-testid=\"notifications-icon\""6729 is expected to match "data-testid=\"at-icon\""6730 is expected to match "data-testid=\"earth-icon"6731 is expected to match "data-testid=\"eye-icon\""6732 is expected to equal ""6733 notification_title6734 is expected to match "Watch"6735 is expected to match "On mention"6736 is expected to match "Global"6737 #notification_icon_level6738 is expected to eq "owner_disabled"6739 is expected to eq "watch"6740 is expected to eq "participating"6741Ci::JobTokenScope::RemoveProjectService6742 #execute6743 behaves like editable job token scope6744 when user does not have permissions to edit the job token scope6745 behaves like returns error6746 returns an error response6747 when user has permissions to edit the job token scope6748 when target project is not provided6749 behaves like returns error6750 returns an error response6751 when target project is provided6752 when user does not have permissions to read the target project6753 behaves like returns error6754 returns an error response6755 when user has permissions on source and target project6756 behaves like removes project6757 removes the project from the scope6758 when token scope is disabled6759 behaves like removes project6760 removes the project from the scope6761 when target project is same as the source project6762 behaves like returns error6763 returns an error response6764Mutations::Clusters::Agents::Delete6765 is expected to require graphql authorizations :admin_cluster6766 #resolve6767 without user permissions6768 fails to delete the cluster agent6769 with user permissions6770 deletes a cluster agent6771Ci::EnsureStageService#execute6772 when build has a stage assigned6773 does not create a new stage6774 when build does not have a stage assigned6775 creates a new stage6776 when build is invalid6777 does not create a new stage6778 when new stage can not be created because of an exception6779 retries up to two times6780IncidentManagement::AddSeveritySystemNoteWorker6781 #perform6782 when incident and user exist6783 creates a system note6784 creates a timeline event6785 when incident does not exist6786 behaves like does not add anything6787 does not change incident notes count6788 does not create a timeline event6789 when incident_id is nil6790 behaves like does not add anything6791 does not change incident notes count6792 does not create a timeline event6793 when issue is not an incident6794 behaves like does not add anything6795 does not change incident notes count6796 does not create a timeline event6797 when user does not exist6798 behaves like does not add anything6799 does not change incident notes count6800 does not create a timeline event6801 when user_id is nil6802 behaves like does not add anything6803 does not change incident notes count6804 does not create a timeline event6805projects/tree/show6806 for branch names ending on .json6807 displays correctly6808Gitlab::Middleware::RackMultipartTempfileFactory6809 for a multipart request6810 immediately unlinks the temporary file6811 processes the request as normal6812 for a regular request6813 does nothing6814Gitlab::QuickActions::TimelineTextAndDateTimeSeparator6815 # order random6816 execute6817 with invalid parameters in arg line6818 with empty arg line6819 behaves like arg line with invalid parameters6820 returns nil6821 with invalid date6822 behaves like arg line with invalid parameters6823 returns nil6824 behaves like arg line with invalid parameters6825 returns nil6826 behaves like arg line with invalid parameters6827 returns nil6828 with invalid time6829 behaves like arg line with invalid parameters6830 returns nil6831 when date is invalid in arg line6832 return current date6833 with valid parameters6834 when only timeline text present in arg line6835 behaves like arg line with valid parameters6836 returns text and date time array6837 when only timeline text and time present in arg line6838 behaves like arg line with valid parameters6839 returns text and date time array6840 when timeline text and date is present in arg line6841 behaves like arg line with valid parameters6842 returns text and date time array6843Gitlab::JWTToken6844 behaves like a gitlab jwt token6845 #secret6846 is expected to eq "ce5f6d4d1f7c46303069a7bdf6f91cd909d090fc91b736c872172d30a33f57ed"6847 #decode6848 with a custom payload6849 returns the correct token6850 returns nil and logs the exception after expiration6851Gitlab::GitalyClient::ConflictFilesStitcher6852 enumeration6853 combines segregated ConflictFile messages together6854StageUpdateWorker6855 #perform6856 when stage exists6857 updates stage status6858 behaves like an idempotent worker6859 is labeled as idempotent6860 performs multiple times sequentially without raising an exception6861 results in the stage getting the skipped status6862 when stage does not exist6863 does not raise exception6864Gitlab::Ci::Config::Entry::Trigger::Forward6865 when entry config is correct6866 returns set values6867 is expected to be valid6868 when entry config value is empty6869 returns empty6870 is expected to be valid6871 when entry value is not correct6872 invalid attribute6873 is expected not to be valid6874 reports error6875 non-boolean value6876 is expected not to be valid6877 reports error6878API::Entities::Nuget::Metadatum6879 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :licenseUrl=>"http://sandbox.com/license", :projectUrl=>"http://sandbox.com/project"}6880 metadatum without project_url6881 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :licenseUrl=>"http://sandbox.com/license"}6882 metadatum without license_url6883 is expected to eq {:iconUrl=>"http://sandbox.com/icon", :projectUrl=>"http://sandbox.com/project"}6884 metadatum without icon_url6885 is expected to eq {:licenseUrl=>"http://sandbox.com/license", :projectUrl=>"http://sandbox.com/project"}6886BulkImport6887 associations6888 is expected to belong to user required: true6889 is expected to have one configuration6890 is expected to have many entities6891 validations6892 is expected to validate that :source_type cannot be empty/falsy6893 is expected to validate that :status cannot be empty/falsy6894 is expected to define :source_type as an enum backed by an integer with values ‹[:gitlab]›6895 .stale scope6896 is expected to contain exactly #<BulkImport id: 5, user_id: 1745, source_type: "gitlab", status: 0, created_at: "2022-11-08 01:22:01.426059062 +0000", updated_at: "2022-11-11 01:22:01.511268243 +0000", source_version: "14.4.0"> and #<BulkImport id: 6, user_id: 1746, source_type: "gitlab", status: 1, created_at: "2022-11-08 01:22:01.515564803 +0000", updated_at: "2022-11-11 01:22:01.607121653 +0000", source_version: "14.4.0">6897 .all_human_statuses6898 returns all human readable entity statuses6899 .min_gl_version_for_project6900 is expected to be a kind of Gitlab::VersionInfo6901 is expected to eq "14.4.0"6902 #source_version_info6903 returns source_version as Gitlab::VersionInfo6904ResourceMilestoneEventFinder6905 #execute6906 returns events with milestones accessible by user6907 filters events with public project milestones if issues and MRs are private6908 filters events with project milestones not accessible by user6909 filters events with group milestones not accessible by user6910 when multiple events share the same milestone6911 avoids N+1 queries6912Bitbucket::Page6913 #items6914 returns collection of needed objects6915 #attrs6916 returns attributes6917 #next?6918 returns true6919 returns false6920 #next6921 returns next attribute6922DesignUserMention6923 associations6924 is expected to belong to design required: false6925 is expected to belong to note required: false6926 behaves like has user mentions6927 #has_mentions?6928 when no mentions6929 returns false6930 when mentioned_users_ids not null6931 returns true6932 when mentioned projects6933 returns true6934 when mentioned groups6935 returns true6936Gitlab::DependencyLinker::PodfileLinker6937 .support?6938 supports Podfile6939 does not support other files6940 #link6941 links sources6942 links packages6943 links external packages6944 links Git repos6945RuboCop::Cop::Migration::MigrationRecord6946 # order random6947 in migration6948 in an old migration6949 behaves like a disabled cop6950 does not register any offenses6951 that is recent6952 adds an offense if inheriting from ActiveRecord::Base6953 adds an offense if inheriting from ::ActiveRecord::Base6954 in migration6955 in an old migration6956 behaves like a disabled cop6957 does not register any offenses6958 that is recent6959 adds an offense if inheriting from ApplicationRecord6960 adds an offense if inheriting from ::ApplicationRecord6961 outside of a migration6962 behaves like a disabled cop6963 does not register any offenses6964 outside of a migration6965 behaves like a disabled cop6966 does not register any offenses6967Gitlab::PushOptions6968 can parse multiple push options6969 stores options internally as a HashWithIndifferentAccess6970 selects the last option when options contain duplicate namespace and key pairs6971 defaults values to true6972 expands aliases6973 forgives broken push options6974 namespace and key validation6975 ignores unrecognised namespaces6976 ignores unrecognised keys6977 ignores blank keys6978 parses recognised namespace and key pairs6979 #get6980 can emulate Hash#dig6981 #as_json6982 returns all options6983profiles/show6984 when the profile page is opened6985 displays the correct elements6986KeysetHelper6987 with admin mode6988 when no users are present6989 does not render pagination links6990 when one user is present6991 does not render pagination links6992 when more users are present6993 when on the first page6994 renders the next and last links6995 when at the last page6996 renders the prev and first links6997 when at the second page6998 renders all links6999Packages::Pypi::SimplePackageVersionsPresenter7000 #body7001 for project7002 behaves like pypi package presenter7003 version: ">=2.7", expected_version: ">=2.7", with_package1: true7004 is expected to include "<a href=\"http://localhost/api/v4/projects/1156/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...c0ebf6cc735a18ee5066ac1381bb590\" data-requires-python=\">=2.7\">sample-project-1.0.0.tar.gz</a>"7005 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>", with_package1: true7006 is expected to include "<a href=\"http://localhost/api/v4/projects/1156/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...requires-python=\""><script>alert(1)</script>\">sample-project-1.0.0.tar.gz</a>"7007 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0", with_package1: false7008 is expected to include "<a href=\"http://localhost/api/v4/projects/1156/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...c735a18ee5066ac1381bb590\" data-requires-python=\">=2.7, !=3.0\">sample-project-2.0.0.tar.gz</a>"7009 for group7010 behaves like pypi package presenter7011 version: ">=2.7", expected_version: ">=2.7", with_package1: true7012 is expected to include "<a href=\"http://localhost/api/v4/groups/3108/-/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...c0ebf6cc735a18ee5066ac1381bb590\" data-requires-python=\">=2.7\">sample-project-1.0.0.tar.gz</a>"7013 version: "\"><script>alert(1)</script>", expected_version: ""><script>alert(1)</script>", with_package1: true7014 is expected to include "<a href=\"http://localhost/api/v4/groups/3108/-/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...requires-python=\""><script>alert(1)</script>\">sample-project-1.0.0.tar.gz</a>"7015 version: ">=2.7, !=3.0", expected_version: ">=2.7, !=3.0", with_package1: false7016 is expected to include "<a href=\"http://localhost/api/v4/groups/3108/-/packages/pypi/files/440e5e148a25331bbd7991575f7d5493...c735a18ee5066ac1381bb590\" data-requires-python=\">=2.7, !=3.0\">sample-project-2.0.0.tar.gz</a>"7017 with package files pending destruction7018 is expected not to include "package_file_pending_destruction"7019MilestonePresenter7020 #milestone_path7021 returns correct path7022PagesDomainVerificationWorker7023 #perform7024 does nothing if the database is read-only7025 does nothing for a non-existent domain7026 delegates to VerifyPagesDomainService7027InProductGuidanceEnvironmentsWebideExperiment7028 excludes projects with environments7029 does not exlude projects without environments7030Stepable7031 stops after the first non success status7032 when all methods return success7033 calls all methods in order7034 merges variables returned by all steps7035 can modify results of previous steps7036 with multiple stepable classes7037 does not leak steps7038TestHooks::SystemService7039 #execute7040 hook with not implemented test7041 returns error message7042 push_events7043 executes hook7044 tag_push_events7045 executes hook7046 repository_update_events7047 executes hook7048 merge_requests_events7049 returns error message if the user does not have any repository with a merge request7050 executes hook7051NullifyIfBlank7052 attribute exists7053 attribute is blank7054 is expected to be nil7055 attribute is nil7056 is expected to be nil7057 attribute is not blank7058 is expected to eq "name"7059 attribute does not exist7060 is expected to raise ActiveModel::UnknownAttributeError7061admin/sessions/new.html.haml7062 internal admin user7063 shows enter password form7064 warns authentication not possible if password not set7065 omniauth authentication enabled7066 shows omniauth form7067 ldap authentication7068 is shown when enabled7069 is not shown when LDAP sign in is disabled7070Ci::ResourceGroups::AssignResourceFromResourceGroupWorker7071 has the `until_executed` deduplicate strategy7072 has an option to reschedule once if deduplicated7073 #perform7074 is labeled as idempotent7075 performs multiple times sequentially without raising an exception7076 when resource group exists7077 executes AssignResourceFromResourceGroupService7078 when build does not exist7079 does not execute AssignResourceFromResourceGroupService7080profiles/keys/_form.html.haml7081 when the form partial is used7082 renders the form with the correct action7083 has the key field7084 has the title field7085 has the expires at field7086 has the validation warning7087 has the submit button7088Clusters::AgentPolicy7089 rules7090 when developer7091 is expected to be disallowed :admin_cluster7092 when maintainer7093 is expected to be allowed :admin_cluster7094Types::IssueSortEnum7095 is expected to eq "IssueSort"7096 exposes all the existing issue sort values7097 behaves like common sort values7098 exposes all the existing common sort values7099Gitlab::AppLogger7100 builds two Logger instances7101 logs info to AppLogger and AppJsonLogger7102 logs info to only the AppJsonLogger when unstructured logs are disabled7103Timelogs::DeleteService7104 #execute7105 when the timelog exists7106 removes the timelog7107 returns the removed timelog7108 when the timelog does not exist7109 returns an error7110 when the user does not have permission7111 returns an error7112 when the timelog deletion fails7113 returns an error7114DependencyProxy::HeadManifestService7115 remote request is successful7116 is expected to eq :success7117 is expected to eq "12345"7118 remote request is not found7119 is expected to eq :error7120 is expected to eq 4047121 is expected to eq "Not found"7122 net timeout exception7123 is expected to eq :error7124 is expected to eq 5997125 is expected to eq "execution expired"7126ImportIssuesCsvWorker7127 #perform7128 calls #execute on Issues::ImportCsvService and destroys upload7129 behaves like an idempotent worker7130 is labeled as idempotent7131 performs multiple times sequentially without raising an exception7132BulkImports::Projects::Pipelines::AutoDevopsPipeline7133 #run7134 imports auto devops options into destination project7135Ci::TriggerPresenter7136 when user is not a trigger owner7137 #token7138 exposes only short token7139 #has_token_exposed?7140 does not have token exposed7141 when user is a trigger owner and builds admin7142 #token7143 exposes full token7144 #has_token_exposed?7145 has token exposed7146Milestones::MergeRequestsCountService7147 counts all merge requests7148 behaves like a counter caching service7149 #count7150 caches the count7151 #refresh_cache7152 refreshes the cache7153 #delete_cache7154 removes the cache7155 #uncached_count7156 does not cache the count7157WorkItems::Widgets::StartAndDueDate7158 .type7159 is expected to eq :start_and_due_date7160 #type7161 is expected to eq :start_and_due_date7162 #start_date7163 is expected to eq Fri, 11 Nov 20227164 #due_date7165 is expected to eq Fri, 18 Nov 20227166RspecFlaky::FlakyExample7167 #initialize7168 when given an Example.to_h7169 behaves like a valid FlakyExample instance7170 returns valid attributes7171 #update!7172 when given an Example hash7173 behaves like an up-to-date FlakyExample instance7174 sets the first_flaky_at if none exists7175 maintains the first_flaky_at if exists7176 updates the last_flaky_at7177 updates the flaky_reports7178 updates the last_attempts_count7179 when run on the CI7180 updates the last_flaky_job7181 #to_h7182 when given an Example hash7183 behaves like a valid FlakyExample hash7184 returns a valid hash7185PagesDomains::CreateService7186 # order random7187 when the user does not have the required permissions7188 does not create a pages domain and does not publish a PagesDomainCreatedEvent7189 when the user has the required permissions7190 when it saves the domain successfully7191 creates the domain and publishes a PagesDomainCreatedEvent7192 when it fails to save the domain7193 does not create a pages domain and does not publish a PagesDomainCreatedEvent7194ContextCommitsDiffEntity7195 as json7196 exposes commits_count7197 exposes showing_context_commits_diff7198 exposes diffs_path7199Gitlab::DependencyLinker::GemfileLinker7200 .support?7201 supports Gemfile7202 supports gems.rb7203 does not support other files7204 #link7205 links sources7206 links dependencies7207 links to external dependencies7208 links GitHub repos7209 links Git repos7210event store matchers7211 # order random7212 not_publish_event7213 requires a block matcher7214 does not permit .with7215 validates the event type7216 publish_event7217 requires a block matcher7218 validates the event type7219 validates the event data7220projects/branches/index.html.haml7221 renders list of active and stale branches7222 when Gitaly is unavailable7223 renders an error7224Gitlab::RepositorySizeErrorMessage7225 error messages7226 #commit_error7227 returns the correct message7228 #merge_error7229 returns the correct message7230 #push_error7231 with exceeded_limit value7232 returns the correct message7233 without exceeded_limit value7234 returns the correct message7235 #new_changes_error7236 when additional repo storage is available7237 returns the correct message7238 when no additional repo storage is available7239 returns the correct message7240Gitlab::Graphql::Present::FieldExtension7241 when the object does not declare a presenter7242 does not affect normal resolution7243 when the field is declared on an interface, and implemented by a presenter7244 resolves the interface field using the implementation from the presenter7245 when the implementation is inherited7246 resolves the interface field using the implementation from the presenter7247 interactions with inheritance7248 can resolve value, foo and bar7249 when the object declares a presenter7250 when the presenter overrides the original method7251 behaves like calling the presenter method7252 calls the presenter method7253 when the presenter provides a new method7254 when we select the original field7255 is unaffected7256 when we select the new field7257 behaves like calling the presenter method7258 calls the presenter method7259IssueSerializer7260 non-sidebar issue serialization7261 matches issue json schema7262 sidebar issue serialization7263 matches issue_sidebar json schema7264 sidebar extras issue serialization7265 matches issue_sidebar_extras json schema7266 board issue serialization7267 matches board issue json schema7268SnippetInputActionCollection7269 is expected to delegate #empty? to the #actions object7270 is expected to delegate #any? to the #actions object7271 is expected to delegate #[] to the #actions object7272 #to_commit_actions7273 translates all actions to commit actions7274 #valid?7275 returns true7276 when any of the actions is invalid7277 returns false7278 when allowed_actions param is passed7279 builds SnippetInputAction with that param7280Clusters::Agents::CreateActivityEventService7281 #execute7282 creates an activity event record7283 schedules the cleanup worker7284MergeRequests::Mergeability::CheckBrokenStatusService7285 #execute7286 when the merge request is broken7287 returns a check result with status failed7288 when the merge request is not broken7289 returns a check result with status success7290 #skip?7291 returns false7292 #cacheable?7293 returns false7294PagesDomains::DeleteService7295 # order random7296 when the user has the required permissions7297 when it updates the domain successfully7298 deletes the domain and publishes a PagesDomainDeletedEvent7299 when the user does not have the required permissions7300 does not delete the pages domain and does not publish a PagesDomainDeletedEvent7301Gitlab::GithubImport::Settings7302 # order random7303 #disabled?7304 returns is disabled or not specific optional stage7305 .stages_array7306 returns stages list as array7307 #enabled?7308 returns is enabled or not specific optional stage7309 #write7310 puts optional steps flags into projects import_data7311Types::MilestoneType7312 is expected to eq "Milestone"7313 is expected to require graphql authorizations :read_milestone7314 has the expected fields7315 stats field7316 is expected to have graphql type Types::MilestoneStatsType7317Ci::BuildPrepareWorker7318 build exists7319 calls the prepare build service7320 build does not exist7321 does not attempt to prepare the build7322DeleteUserWorker7323 calls the DeleteUserWorker with the params it was given7324 uses symbolized keys7325Onboarding::ProgressWorker#perform7326 # order random7327 behaves like does not record an onboarding progress action7328 is expected not to receive new(*(any args)) 0 times7329 behaves like records an onboarding progress action7330 is expected to receive execute({:action=>:git_pull}) 1 time7331 is labeled as idempotent7332 performs multiple times sequentially without raising an exception7333 behaves like does not record an onboarding progress action7334 is expected not to receive new(*(any args)) 0 times7335Gitlab::BufferedIo7336 #readuntil7337 does not raise a timeout error7338 when the response contains infinitely long headers7339 raises a timeout error7340 when not passing start_time7341 raises a timeout error7342errors/omniauth_error7343 renders template7344Gitlab::Config::Entry::Boolean7345 validations7346 when entry config value is valid7347 #value7348 returns key value7349 #valid?7350 is valid7351 when entry value is not valid7352 #errors7353 saves errors7354SafeUrl7355 #safe_url7356 is expected to eq "http://example.com"7357 when URL contains credentials7358 masks username and password7359 when username is allowed7360 masks the password, but not the username7361 when URL is empty7362 is expected to be nil7363 when URI raises an error7364 is expected to be nil7365Gitlab::UsageDataCounters::MergeRequestWidgetExtensionCounter7366 behaves like a redis usage counter7367 .count(test_summary_count_expand)7368 increments the Widget Extension test_summary_count_expand counter by 17369 .read(test_summary_count_expand)7370 returns the total number of test_summary_count_expand events7371 behaves like a redis usage counter with totals7372 totals7373 can report all totals7374 unknown events7375 cannot increment7376 cannot read7377RuboCop::Cop::Graphql::ResolverType7378 # order random7379 does not add an offense unless the class is named using the Resolver convention7380 ignores type calls on other objects7381 adds an offense when there is no type annotation7382 does not add an offense for resolvers that have a type call7383Issuable::LabelLinksDestroyWorker7384 is labeled as idempotent7385 performs multiple times sequentially without raising an exception7386 calls the Issuable::DestroyLabelLinksService7387Projects::ClusterAgentsHelper7388 #js_cluster_agent_details_data7389 is expected to match {:agent_name=>"agent-name", :project_path=>"namespace1167/project1246", :activity_empty_state_image=>#<RSpec::Mocks::ArgumentMatchers::KindOf:0x00007f349a559508 @klass=String>, :empty_state_svg_path=>#<RSpec::Mocks::ArgumentMatchers::KindOf:0x00007f349a5594e0 @klass=String>, :can_admin_vulnerability=>"true", :kas_address=>"wss://kas.example.com", :kas_version=>#<Gitlab::VersionInfo:0x00007f349a5593a0 @major=15, @minor=6, @patch=0, @suffix_s="-rc2", @suffix=["pre", "rc", 2]>, :can_admin_cluster=>"false"}7390 user has admin cluster permissions7391 displays that the user can admin cluster7392Packages::PackagePolicy7393 when the user is part of the project7394 allows read_package7395 when the user is not part of the project7396 disallows read_package for any Package7397Users::ValidateManualOtpService7398 Devise7399 calls Devise strategy7400 FortiAuthenticator7401 calls ManualOtp strategy7402 FortiTokenCloud7403 calls FortiTokenCloud strategy7404 unexpected error7405 returns error7406Types::ContainerExpirationPolicyKeepEnum7407 behaves like exposing container expiration policy option7408 exposes all options7409 uses all possible options from model7410TimeboxesRoutingHelper7411 #milestone_path7412 for a group milestone7413 links to the group milestone page7414 for a project milestone7415 links to the project milestone page7416 #milestone_url7417 for a group milestone7418 links to the group milestone page7419 for a project milestone7420 links to the project milestone page7421RuboCop::QAHelpers7422 # order random7423 #in_qa_file?7424 returns true for a node in the qa/ directory7425 returns false for a node outside the qa/ directory7426ImpersonationAccessTokenSerializer7427 # order random7428 #represent7429 can render a single token7430 can render a collection of tokens7431ServicePing::PermitDataCategories7432 #execute7433 when usage ping setting is set to true7434 returns all categories7435 when usage ping setting is set to false7436 returns all categories7437Constraints::JiraEncodedUrlConstrainer7438 #matches?7439 when there is no /-/jira prefix and no encoded slash7440 is expected to eq false7441 when tree path contains encoded slash7442 is expected to eq false7443 when path has /-/jira prefix7444 is expected to eq true7445 when project_id has encoded slash7446 is expected to eq true7447Gitlab::Git::ChangedPath7448 #new_file?7449 when it is a new file7450 returns true7451 when it is not a new file7452 returns false7453Gitlab::Graphql::NegatableArguments7454 #negated7455 defines :not argument7456 defines any arguments passed as block7457 defines all arguments passed as block even if called multiple times (PENDING: Temporarily skipped with xit)7458 allows to specify custom argument name7459Projects::AppleTargetPlatformDetectorService7460 when project is not an xcode project7461 returns an empty array7462 when project is an xcode project7463 when setting string is found7464 sdk: "iphoneos", filename: "project.pbxproj", result: [:ios]7465 returns an array of unique detected targets7466 sdk: "iphoneos", filename: "*.xcconfig", result: [:ios]7467 returns an array of unique detected targets7468 when setting string is not found7469 returns an empty array7470Types::Projects::RepositoryLanguageType7471 # order random7472 is expected to eq "RepositoryLanguage"7473 is expected to have graphql fields :name, :share, and :color7474Gitlab::Tracking::Helpers::WeakPasswordErrorEvent7475 # order random7476 when user does not have a weak password error7477 does not track the event7478 when user does not have any errors7479 does not track the event7480 when user has a weak password error7481 tracks the event7482Types::Packages::PackageDetailsType7483 is expected to eq "Represents a package details in the Package Registry"7484 is expected to require graphql authorizations :read_package7485 includes all the package fields7486Types::Repository::BlobType7487 is expected to eq "RepositoryBlob"7488 is expected to have graphql fields :id, :oid, :name, :path, :web_path, :lfs_oid, :mode, :size, :raw_size, :raw_blob, :raw_text_blob, :file_type, :edit_blob_path, :stored_externally, :external_storage, :raw_path, :replace_path, :pipeline_editor_path, :gitpod_blob_url, :find_file_path, :blame_path, :history_path, :permalink_path, :environment_formatted_external_url, :environment_external_url_for_route_map, :code_navigation_path, :project_blob_path_root, :simple_viewer, :rich_viewer, :plain_data, :can_modify_blob, :can_current_user_push_to_branch, :archived, :ide_edit_path, :external_storage_url, :fork_and_edit_path, :ide_fork_and_edit_path, :fork_and_view_path, and :language7489Gitlab::Pagination::Keyset::InOperatorOptimization::Strategies::RecordLoaderStrategy7490 #initializer_columns7491 returns a NULL table row as the result column7492 #columns7493 uses the finder query to load the row in the result column7494Types::WorkItems::Widgets::HierarchyType7495 exposes the expected fields7496RuboCop::Cop::Scalability::IdempotentWorker7497 # order random7498 adds an offense when not defining idempotent method7499 adds an offense when not defining idempotent method7500Bitbucket::Paginator7501 items7502 return items and raises StopIteration in the end7503BulkImports::Clients::Graphql7504 #execute7505 when source instance is compatible7506 marks source instance as compatible7507 when source instance is incompatible7508 raises an error7509Types::WorkItems::Widgets::AssigneesType7510 exposes the expected fields7511RuboCop::Cop::RSpec::WebMockEnable7512 # order random7513 when calling WebMock.disable_net_connect!7514 registers an offence and autocorrects it7515Gitlab::DependencyLinker::BaseLinker7516 #link7517 only converts valid links7518RuboCop::Cop::Gitlab::Except7519 # order random7520 flags the use of Gitlab::SQL::Except.new7521Types::IssuableSearchableFieldEnum7522 is expected to eq "IssuableSearchableField"7523 exposes all the issuable searchable fields7524Sidekiq::Cron::Job7525 cron jobs7526 when Fugit depends on ZoTime or EoTime7527 does not get any errors7528Gitlab::OtherMarkup7529 XSS Checks7530 does not convert dangerous links into HTML7531Gitlab::Kubernetes::ClusterRoleBinding7532 #generate7533 builds a Kubeclient Resource7534Integrations::ProjectSerializer7535 represents Integrations::ProjectEntity entities7536TokenAuthenticatableStrategies::Digest7537 #token_fields7538 includes the digest field7539Knapsack report was generated. Preview:7540{7541 "spec/services/merge_requests/build_service_spec.rb": 221.0896968369998,7542 "spec/models/repository_spec.rb": 159.278014902,7543 "spec/models/project_team_spec.rb": 160.99217130100078,7544 "spec/services/projects/transfer_service_spec.rb": 100.68248283600042,7545 "spec/tasks/gitlab/workhorse_rake_spec.rb": 91.70723858599922,7546 "spec/models/ci/build_trace_chunk_spec.rb": 37.02307766599915,7547 "spec/services/merge_requests/merge_to_ref_service_spec.rb": 54.38916568899913,7548 "spec/services/ci/retry_job_service_spec.rb": 35.0643081649996,7549 "spec/routing/project_routing_spec.rb": 16.60028512200006,7550 "spec/models/ci/ref_spec.rb": 39.65153357800045,7551 "spec/presenters/ci/build_runner_presenter_spec.rb": 37.98293365800055,7552 "spec/lib/gitlab/bare_repository_import/importer_spec.rb": 29.224187218000225,7553 "spec/models/merge_request_diff_commit_spec.rb": 28.489085512999736,7554 "spec/lib/gitlab/utils/usage_data_spec.rb": 9.351743950999662,7555 "spec/graphql/mutations/merge_requests/accept_spec.rb": 23.75696317100119,7556 "spec/uploaders/external_diff_uploader_spec.rb": 26.204482184999506,7557 "spec/models/suggestion_spec.rb": 19.552464688998953,7558 "spec/lib/banzai/filter/references/project_reference_filter_spec.rb": 18.208547174999694,7559 "spec/models/discussion_spec.rb": 21.967485336999744,7560 "spec/models/timelog_spec.rb": 16.142779129999326,7561 "spec/helpers/users_helper_spec.rb": 13.330817517000469,7562 "spec/workers/container_registry/migration/enqueuer_worker_spec.rb": 15.96093233099964,7563 "spec/models/packages/debian/group_distribution_spec.rb": 5.393213792000097,7564 "spec/models/diff_discussion_spec.rb": 18.935766366999815,7565 "spec/lib/gitlab/ci/cron_parser_spec.rb": 2.9068363629994565,7566 "spec/finders/starred_projects_finder_spec.rb": 14.248820326998612,7567 "spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb": 11.79284439500043,7568 "spec/models/integrations/teamcity_spec.rb": 5.618140177000896,7569 "spec/services/merge_requests/retarget_chain_service_spec.rb": 13.455058783998538,7570 "spec/finders/merge_requests/oldest_per_commit_finder_spec.rb": 13.889291256000433,7571 "spec/services/packages/conan/create_package_file_service_spec.rb": 8.089143597999282,7572 "spec/finders/context_commits_finder_spec.rb": 12.405853538000883,7573 "spec/services/notes/copy_service_spec.rb": 9.293996866999805,7574 "spec/helpers/colors_helper_spec.rb": 2.0762479639997764,7575 "spec/uploaders/ci/pipeline_artifact_uploader_spec.rb": 9.014812597000855,7576 "spec/lib/gitlab/github_import/importer/pull_requests_importer_spec.rb": 9.298343266998927,7577 "spec/lib/gitlab/auth/current_user_mode_spec.rb": 1.649872410000171,7578 "spec/services/projects/operations/update_service_spec.rb": 6.611272019999888,7579 "spec/policies/personal_snippet_policy_spec.rb": 6.240168680000352,7580 "spec/policies/design_management/design_policy_spec.rb": 5.246662188999835,7581 "spec/services/ci/test_failure_history_service_spec.rb": 8.065783410998847,7582 "spec/models/issue_link_spec.rb": 6.283311143999526,7583 "spec/lib/gitlab/ci/reports/test_suite_comparer_spec.rb": 1.4110560360004456,7584 "spec/models/deploy_key_spec.rb": 3.3927959100001317,7585 "spec/models/badge_spec.rb": 4.715026035999472,7586 "spec/services/security/ci_configuration/secret_detection_create_service_spec.rb": 3.617644646001281,7587 "spec/serializers/ci/dag_job_entity_spec.rb": 5.98011884799962,7588 "spec/lib/gitlab/ci/pipeline/chain/seed_spec.rb": 4.853754170999309,7589 "spec/lib/gitlab/gl_repository/repo_type_spec.rb": 1.956742057000156,7590 "spec/config/object_store_settings_spec.rb": 1.4822523880011431,7591 "spec/lib/gitlab/import_export/group/tree_saver_spec.rb": 6.839892953999879,7592 "spec/lib/gitlab/ci/status/build/waiting_for_approval_spec.rb": 5.318487140000798,7593 "spec/lib/api/helpers/packages_helpers_spec.rb": 2.422858036001344,7594 "spec/services/milestones/closed_issues_count_service_spec.rb": 4.570898711001064,7595 "spec/models/state_note_spec.rb": 2.3846474000001763,7596 "spec/workers/namespaces/process_sync_events_worker_spec.rb": 4.268847704999644,7597 "spec/helpers/boards_helper_spec.rb": 2.591564318001474,7598 "spec/services/ci/create_pipeline_service/rate_limit_spec.rb": 6.2724225760011905,7599 "spec/workers/gitlab/jira_import/stuck_jira_import_jobs_worker_spec.rb": 3.6911594280009012,7600 "spec/finders/concerns/finder_with_group_hierarchy_spec.rb": 3.850965970001198,7601 "spec/lib/gitlab/ci/project_config_spec.rb": 5.458213455000077,7602 "spec/models/integrations/youtrack_spec.rb": 1.3761251200012339,7603 "spec/models/container_registry/event_spec.rb": 1.6896377260000008,7604 "spec/services/projects/hashed_storage/base_attachment_service_spec.rb": 5.895422686999154,7605 "spec/lib/gitlab/ci/variables/builder/project_spec.rb": 1.9824555739996867,7606 "spec/services/work_items/widgets/hierarchy_service/update_service_spec.rb": 3.3677651330017397,7607 "spec/graphql/types/base_enum_spec.rb": 1.2904430889993819,7608 "spec/tasks/cache/clear/redis_spec.rb": 5.005873973999769,7609 "spec/serializers/release_serializer_spec.rb": 4.6006017590007104,7610 "spec/lib/gitlab/file_hook_spec.rb": 4.942978541999764,7611 "spec/lib/gitlab/database/count/exact_count_strategy_spec.rb": 2.8393824209997547,7612 "spec/workers/deployments/hooks_worker_spec.rb": 5.790288627998962,7613 "spec/services/git/wiki_push_service/change_spec.rb": 0.9592342260002624,7614 "spec/lib/gitlab/ci/reports/accessibility_reports_comparer_spec.rb": 1.4827079379992938,7615 "spec/graphql/resolvers/merge_requests_count_resolver_spec.rb": 4.0553233880000334,7616 "spec/tasks/gitlab/artifacts/check_rake_spec.rb": 4.45862259400019,7617 "spec/workers/projects/process_sync_events_worker_spec.rb": 4.909954854998432,7618 "spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb": 0.7442020090002188,7619 "spec/lib/error_tracking/sentry_client/repo_spec.rb": 1.1170197390001704,7620 "spec/graphql/mutations/container_repositories/destroy_tags_spec.rb": 3.010200872000496,7621 "spec/models/loose_foreign_keys/deleted_record_spec.rb": 1.3711976600006892,7622 "spec/models/concerns/cacheable_attributes_spec.rb": 1.6779890380003053,7623 "spec/lib/gitlab/ci/config/external/rules_spec.rb": 2.544581702000869,7624 "spec/lib/gitlab/merge_requests/mergeability/check_result_spec.rb": 0.7401802290005435,7625 "spec/lib/gitlab/issuable_metadata_spec.rb": 6.599020229999951,7626 "spec/models/tree_spec.rb": 1.7146547729989834,7627 "spec/lib/gitlab/github_import/importer/pull_requests_merged_by_importer_spec.rb": 1.4230134350000299,7628 "spec/workers/run_pipeline_schedule_worker_spec.rb": 1.2784692409986746,7629 "spec/services/namespaces/statistics_refresher_service_spec.rb": 1.9631938059992535,7630 "spec/views/layouts/simple_registration.html.haml_spec.rb": 2.572710788999757,7631 "spec/lib/gitlab/security/scan_configuration_spec.rb": 1.405611146999945,7632 "spec/sidekiq_cluster/sidekiq_cluster_spec.rb": 1.2012291490009375,7633 "spec/graphql/graphql_triggers_spec.rb": 2.342385223999372,7634 "spec/services/ci/create_pipeline_service/variables_spec.rb": 2.705350484999144,7635 "spec/lib/banzai/pipeline_spec.rb": 0.8152292409995425,7636 "spec/lib/gitlab/private_commit_email_spec.rb": 0.8439610780005751,7637 "spec/models/clusters/agents/project_authorization_spec.rb": 1.6440488810003444,7638 "spec/policies/clusters/agents/activity_event_policy_spec.rb": 3.125310059000185,7639 "spec/graphql/types/current_user_todos_type_spec.rb": 2.9688395070006663,7640 "spec/experiments/concerns/project_commit_count_spec.rb": 2.80747691400029,7641 "spec/lib/gitlab/ci/pipeline/expression/lexeme/equals_spec.rb": 0.6688083070002904,7642 "spec/helpers/x509_helper_spec.rb": 3.6266039839993027,7643 "spec/services/packages/rubygems/process_gem_service_spec.rb": 1.6934688149995054,7644 "spec/services/projects/detect_repository_languages_service_spec.rb": 2.462648110000373,7645 "spec/services/projects/lfs_pointers/lfs_link_service_spec.rb": 4.318270490000941,7646 "spec/lib/sidebars/projects/panel_spec.rb": 3.330657456001063,7647 "spec/policies/identity_provider_policy_spec.rb": 0.8091420620003191,7648 "spec/lib/gitlab/usage_data_counters/work_item_activity_unique_counter_spec.rb": 1.599437824999768,7649 "spec/models/concerns/runners_token_prefixable_spec.rb": 0.29017706800004817,7650 "spec/graphql/mutations/issues/set_subscription_spec.rb": 2.3823150400003215,7651 "spec/presenters/packages/nuget/package_metadata_presenter_spec.rb": 1.617904394001016,7652 "spec/helpers/notifications_helper_spec.rb": 2.2580303129998356,7653 "spec/services/ci/job_token_scope/remove_project_service_spec.rb": 2.4663455489990156,7654 "spec/graphql/mutations/clusters/agents/delete_spec.rb": 2.383895405999283,7655 "spec/services/ci/ensure_stage_service_spec.rb": 3.003349500000695,7656 "spec/workers/incident_management/add_severity_system_note_worker_spec.rb": 1.866108604001056,7657 "spec/views/projects/tree/show.html.haml_spec.rb": 1.9222167700008868,7658 "spec/lib/gitlab/middleware/rack_multipart_tempfile_factory_spec.rb": 0.40767082499951357,7659 "spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb": 1.4803715969992481,7660 "spec/lib/gitlab/jwt_token_spec.rb": 0.7558426079995115,7661 "spec/lib/gitlab/gitaly_client/conflict_files_stitcher_spec.rb": 1.4676427409995085,7662 "spec/workers/stage_update_worker_spec.rb": 1.9735939939982927,7663 "spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb": 0.7198027609993005,7664 "spec/lib/api/entities/nuget/metadatum_spec.rb": 0.6030900339992513,7665 "spec/models/bulk_import_spec.rb": 1.3055199179998453,7666 "spec/finders/resource_milestone_event_finder_spec.rb": 2.688000637001096,7667 "spec/lib/bitbucket/page_spec.rb": 0.43578619199979585,7668 "spec/models/design_user_mention_spec.rb": 0.5632206790014607,7669 "spec/lib/gitlab/dependency_linker/podfile_linker_spec.rb": 0.7884780140011571,7670 "spec/rubocop/cop/migration/migration_record_spec.rb": 1.1536980540004151,7671 "spec/lib/gitlab/push_options_spec.rb": 1.2145170969997707,7672 "spec/views/profiles/show.html.haml_spec.rb": 1.3392302940010268,7673 "spec/helpers/keyset_helper_spec.rb": 2.116358929000853,7674 "spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb": 1.6200085039999976,7675 "spec/presenters/milestone_presenter_spec.rb": 0.9116843510000763,7676 "spec/workers/pages_domain_verification_worker_spec.rb": 0.6390579800008709,7677 "spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb": 2.0499976560004143,7678 "spec/models/concerns/stepable_spec.rb": 0.36214444100005494,7679 "spec/services/test_hooks/system_service_spec.rb": 2.1552376950003236,7680 "spec/models/concerns/nullify_if_blank_spec.rb": 0.5499386999999842,7681 "spec/views/admin/sessions/new.html.haml_spec.rb": 1.3651112910010852,7682 "spec/workers/ci/resource_groups/assign_resource_from_resource_group_worker_spec.rb": 1.4098056869988795,7683 "spec/views/profiles/keys/_form.html.haml_spec.rb": 0.6723591169993597,7684 "spec/policies/clusters/agent_policy_spec.rb": 2.0678467440011445,7685 "spec/graphql/types/issue_sort_enum_spec.rb": 0.34775009199984197,7686 "spec/lib/gitlab/app_logger_spec.rb": 0.7794797450005717,7687 "spec/services/timelogs/delete_service_spec.rb": 1.419320326000161,7688 "spec/services/dependency_proxy/head_manifest_service_spec.rb": 1.2503625139997894,7689 "spec/workers/import_issues_csv_worker_spec.rb": 1.8978621930000372,7690 "spec/lib/bulk_imports/projects/pipelines/auto_devops_pipeline_spec.rb": 1.146534804998737,7691 "spec/presenters/ci/trigger_presenter_spec.rb": 1.7583370190004644,7692 "spec/services/milestones/merge_requests_count_service_spec.rb": 1.523765153999193,7693 "spec/models/work_items/widgets/start_and_due_date_spec.rb": 1.0497627749991807,7694 "spec/tooling/rspec_flaky/flaky_example_spec.rb": 1.0262210479995701,7695 "spec/services/pages_domains/create_service_spec.rb": 1.3847766290000436,7696 "spec/serializers/context_commits_diff_entity_spec.rb": 1.7002838349999365,7697 "spec/lib/gitlab/dependency_linker/gemfile_linker_spec.rb": 1.0920752410002024,7698 "spec/support_specs/matchers/event_store_spec.rb": 0.4066691450007056,7699 "spec/views/projects/branches/index.html.haml_spec.rb": 1.5911739569983183,7700 "spec/lib/gitlab/repository_size_error_message_spec.rb": 0.7004106139993382,7701 "spec/lib/gitlab/graphql/present/field_extension_spec.rb": 0.7135201519995462,7702 "spec/serializers/issue_serializer_spec.rb": 1.0936231800005771,7703 "spec/models/snippet_input_action_collection_spec.rb": 1.1446969349999563,7704 "spec/services/clusters/agents/create_activity_event_service_spec.rb": 0.9075223809995805,7705 "spec/services/merge_requests/mergeability/check_broken_status_service_spec.rb": 0.6085832440003287,7706 "spec/services/pages_domains/delete_service_spec.rb": 1.0583815249992767,7707 "spec/lib/gitlab/github_import/settings_spec.rb": 1.1484223150000616,7708 "spec/graphql/types/milestone_type_spec.rb": 0.3799070989989559,7709 "spec/workers/ci/build_prepare_worker_spec.rb": 1.2472059840001748,7710 "spec/workers/delete_user_worker_spec.rb": 0.8097386919998826,7711 "spec/workers/onboarding/progress_worker_spec.rb": 1.2281499660002737,7712 "spec/lib/gitlab/buffered_io_spec.rb": 0.8234579510008189,7713 "spec/views/errors/omniauth_error.html.haml_spec.rb": 0.4346046919999935,7714 "spec/lib/gitlab/config/entry/boolean_spec.rb": 0.4079375860001164,7715 "spec/models/concerns/safe_url_spec.rb": 0.6324897909998981,7716 "spec/lib/gitlab/usage_data_counters/merge_request_widget_extension_counter_spec.rb": 0.4371348320000834,7717 "spec/rubocop/cop/graphql/resolver_type_spec.rb": 0.5530700399995112,7718 "spec/workers/issuable/label_links_destroy_worker_spec.rb": 0.6941762139995262,7719 "spec/helpers/projects/cluster_agents_helper_spec.rb": 0.7814535750003415,7720 "spec/policies/packages/package_policy_spec.rb": 0.9727860740003962,7721 "spec/services/users/validate_manual_otp_service_spec.rb": 0.6416663809995953,7722 "spec/graphql/types/container_expiration_policy_keep_enum_spec.rb": 0.284241948998897,7723 "spec/helpers/timeboxes_routing_helper_spec.rb": 0.4350042729984125,7724 "spec/rubocop/qa_helpers_spec.rb": 0.3229010440009006,7725 "spec/serializers/impersonation_access_token_serializer_spec.rb": 1.022585448999962,7726 "spec/lib/service_ping/permit_data_categories_spec.rb": 0.8197691999994277,7727 "spec/lib/constraints/jira_encoded_url_constrainer_spec.rb": 0.3408787329990446,7728 "spec/lib/gitlab/git/changed_path_spec.rb": 0.583442326000295,7729 "spec/lib/gitlab/graphql/negatable_arguments_spec.rb": 1.2119277679994411,7730 "spec/services/projects/apple_target_platform_detector_service_spec.rb": 0.6813078360009968,7731 "spec/graphql/types/projects/repository_language_type_spec.rb": 0.3814991880008165,7732 "spec/lib/gitlab/tracking/helpers/weak_password_error_event_spec.rb": 0.7610106459997041,7733 "spec/graphql/types/packages/package_details_type_spec.rb": 0.43591947200002323,7734 "spec/graphql/types/repository/blob_type_spec.rb": 0.30321435699988797,7735 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/strategies/record_loader_strategy_spec.rb": 0.48146494800130313,7736 "spec/graphql/types/work_items/widgets/hierarchy_type_spec.rb": 0.3926361480007472,7737 "spec/rubocop/cop/scalability/idempotent_worker_spec.rb": 0.24211722299878602,7738 "spec/lib/bitbucket/paginator_spec.rb": 0.22180020600171702,7739 "spec/lib/bulk_imports/clients/graphql_spec.rb": 0.7991472530011379,7740 "spec/graphql/types/work_items/widgets/assignees_type_spec.rb": 0.5761533269997017,7741 "spec/rubocop/cop/rspec/web_mock_enable_spec.rb": 0.2537118319996807,7742 "spec/lib/gitlab/dependency_linker/base_linker_spec.rb": 0.4932366670000192,7743 "spec/rubocop/cop/gitlab/except_spec.rb": 0.29141819899996335,7744 "spec/graphql/types/issuable_searchable_field_enum_spec.rb": 0.365832749999754,7745 "spec/sidekiq/cron/job_gem_dependency_spec.rb": 0.33788579300016863,7746 "spec/lib/gitlab/other_markup_spec.rb": 0.45847205000063695,7747 "spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb": 0.5323560719989473,7748 "spec/serializers/integrations/project_serializer_spec.rb": 0.6348713299994415,7749 "spec/models/concerns/token_authenticatable_strategies/digest_spec.rb": 0.52246247199946087750}7751Knapsack global time execution for tests: 27m 23s7752Pending: (Failures listed here are expected and do not affect your suite's status)7753 1) ExternalDiffUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 7754 # No pattern provided, skipping.7755 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87756 2) ExternalDiffUploader behaves like builds correct paths #relative_path is relative7757 # Path not set, skipping.7758 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407759 3) ExternalDiffUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 7760 # No pattern provided, skipping.7761 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87762 4) ExternalDiffUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 7763 # No pattern provided, skipping.7764 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87765 5) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7766 # No pattern provided, skipping.7767 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87768 6) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7769 # No pattern provided, skipping.7770 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87771 7) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 7772 # No pattern provided, skipping.7773 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87774 8) ExternalDiffUploader object store is REMOTE behaves like builds correct paths #relative_path is relative7775 # Path not set, skipping.7776 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407777 9) ExternalDiffUploader object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 7778 # No pattern provided, skipping.7779 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87780 10) ExternalDiffUploader object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 7781 # No pattern provided, skipping.7782 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87783 11) Ci::PipelineArtifactUploader behaves like builds correct paths #upload_path behaves like matches the method pattern 7784 # No pattern provided, skipping.7785 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87786 12) Ci::PipelineArtifactUploader behaves like builds correct paths #relative_path is relative7787 # Path not set, skipping.7788 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407789 13) Ci::PipelineArtifactUploader behaves like builds correct paths .absolute_path behaves like matches the method pattern 7790 # No pattern provided, skipping.7791 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87792 14) Ci::PipelineArtifactUploader behaves like builds correct paths .base_dir behaves like matches the method pattern 7793 # No pattern provided, skipping.7794 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87795 15) Ci::PipelineArtifactUploader when object store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7796 # No pattern provided, skipping.7797 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87798 16) Ci::PipelineArtifactUploader when object store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7799 # No pattern provided, skipping.7800 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87801 17) Ci::PipelineArtifactUploader when object store is REMOTE behaves like builds correct paths #upload_path behaves like matches the method pattern 7802 # No pattern provided, skipping.7803 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87804 18) Ci::PipelineArtifactUploader when object store is REMOTE behaves like builds correct paths #relative_path is relative7805 # Path not set, skipping.7806 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407807 19) Ci::PipelineArtifactUploader when object store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 7808 # No pattern provided, skipping.7809 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87810 20) Ci::PipelineArtifactUploader when object store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 7811 # No pattern provided, skipping.7812 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87813 21) Gitlab::Graphql::NegatableArguments#negated defines all arguments passed as block even if called multiple times7814 # Temporarily skipped with xit7815 # ./spec/lib/gitlab/graphql/negatable_arguments_spec.rb:307816Finished in 27 minutes 28 seconds (files took 49.11 seconds to load)78173149 examples, 0 failures, 21 pending7818Randomized with seed 554707819[TEST PROF INFO] Time spent in factories: 16:28.559 (59.71% of total time)7820RSpec exited with 0.7821No examples to retry, congrats!7823Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7824Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7826Uploading artifacts...7827coverage/: found 5 matching files and directories 7828crystalball/: found 2 matching files and directories 7829WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory 7830knapsack/: found 3 matching files and directories 7831rspec/: found 9 matching files and directories 7832WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 7833log/*.log: found 17 matching files and directories 7834WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3307837757/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7835WARNING: Retrying... context=artifacts-uploader error=request redirected7836Uploading artifacts as "archive" to coordinator... 201 Created id=3307837757 responseStatus=201 Created token=G-8dY9HM7837Uploading artifacts...7838rspec/junit_rspec.xml: found 1 matching files and directories 7839WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3307837757/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7840WARNING: Retrying... context=artifacts-uploader error=request redirected7841Uploading artifacts as "junit" to coordinator... 201 Created id=3307837757 responseStatus=201 Created token=G-8dY9HM7843Job succeeded