rspec unit pg12 24/28
Passed Started
by
@gitlab-bot

🤖 GitLab Bot 🤖
1Running with gitlab-runner 15.6.0~beta.186.ga889181a (a889181a)2 on blue-4.private.runners-manager.gitlab.com/gitlab.com/gitlab-org tDjA3Sp33 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-106-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:12 ...8Pulling docker image postgres:12 ...9Using docker image sha256:31c3beb3b8968af162019219a074f3d4c1a5b1ab319ec86668229ad0a7ed0e4f for postgres:12 with digest postgres@sha256:63a045745aec8457cb208e929118b557e95e1b1327e2ad29f14174054be5d56e ...10Starting service redis:6.0-alpine ...11Pulling docker image redis:6.0-alpine ...12Using docker image sha256:f30aed8202b4ddc9ed0c833f7bd2b90470dc3a438a51b6567e9955adfe224051 for redis:6.0-alpine with digest redis@sha256:fcf49f0ab799e3b7217aab710606e888b190bbf3c3a81b5c912dd8ef351d1f69 ...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-106-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:9f9846a4ac0697e6010265e736ea0ed08cd0506c4323c4e2a29d17e1b28665ce 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-106-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:9229dfe0f4ee76cecfd8411f6668b0b2a5fd730d1d3688013b3a721189fcccb5 ...18Running on runner-tdja3sp3-project-278964-concurrent-0 via runner-tdja3sp3-private-1670493972-3313c2b8...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: 163372, done. 25remote: Counting objects: 100% (163372/163372), done. 26remote: Compressing objects: 100% (94785/94785), done. 27remote: Total 163372 (delta 84810), reused 119124 (delta 63094), pack-reused 0 28Receiving objects: 100% (163372/163372), 121.93 MiB | 34.03 MiB/s, done.29Resolving deltas: 100% (84810/84810), done.31 * [new ref] refs/pipelines/716916172 -> refs/pipelines/71691617232Checking out 8f189ac6 as refs/merge-requests/106378/merge...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-2.7-16...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-2.7-16 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-2.7-16...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 41Successfully extracted cache43Downloading artifacts for compile-test-assets (3443740837)...44Downloading artifacts from coordinator... ok id=3443740837 responseStatus=200 OK token=kN3pLpbM45Downloading artifacts for detect-tests (3443740849)...46Downloading artifacts from coordinator... ok id=3443740849 responseStatus=200 OK token=kN3pLpbM47Downloading artifacts for retrieve-tests-metadata (3443740854)...48Downloading artifacts from coordinator... ok id=3443740854 responseStatus=200 OK token=kN3pLpbM49Downloading artifacts for setup-test-env (3443740841)...50Downloading artifacts from coordinator... ok id=3443740841 responseStatus=200 OK token=kN3pLpbM52Using docker image sha256:9f9846a4ac0697e6010265e736ea0ed08cd0506c4323c4e2a29d17e1b28665ce 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-106-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:9229dfe0f4ee76cecfd8411f6668b0b2a5fd730d1d3688013b3a721189fcccb5 ...53$ echo $FOSS_ONLY54$ [ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb55$ export GOPATH=$CI_PROJECT_DIR/.go56$ mkdir -p $GOPATH57$ source scripts/utils.sh58$ source scripts/prepare_build.sh687Using decomposed database config (config/database.yml.decomposed-postgresql)688$ setup_db_user_only689CREATE ROLE690GRANT691==> 'setup_db_user_only' succeeded in 0 seconds.692$ bundle exec rake db:drop db:create db:schema:load db:migrate693Dropped database 'gitlabhq_test'694Dropped database 'gitlabhq_test_ci'695Dropped database 'gitlabhq_geo_test'696Created database 'gitlabhq_test'697Created database 'gitlabhq_test_ci'698Created database 'gitlabhq_geo_test'699==> 'bundle exec rake db:drop db:create db:schema:load db:migrate' succeeded in 31 seconds.700$ setup_db_praefect701SELECT pg_catalog.set_config('search_path', '', false);702CREATE DATABASE praefect_test ENCODING 'UTF8';703==> 'setup_db_praefect' succeeded in 0 seconds.704$ source ./scripts/rspec_helpers.sh705$ run_timed_command "gem install knapsack --no-document"706$ gem install knapsack --no-document707Successfully installed knapsack-4.0.07081 gem installed709==> 'gem install knapsack --no-document' succeeded in 0 seconds.710$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"820$ rspec_paralellized_job "--tag ~quarantine --tag ~level:migration"821SKIP_FLAKY_TESTS_AUTOMATICALLY: true822RETRY_FAILED_TESTS_IN_NEW_PROCESS: true823KNAPSACK_GENERATE_REPORT: true824FLAKY_RSPEC_GENERATE_REPORT: true825KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling,components}{,/**/}*_spec.rb826KNAPSACK_LOG_LEVEL: debug827KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg12_24_28_report.json828FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json829FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg12_24_28_report.json830NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg12_24_28_report.json831SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg12_24_28_report.txt832RETRIED_TESTS_REPORT_PATH: rspec/flaky/retried_tests_rspec_unit_pg12_24_28_report.txt833CRYSTALBALL: 834Knapsack node specs:835spec/services/merge_requests/build_service_spec.rb836spec/models/note_spec.rb837spec/finders/group_members_finder_spec.rb838spec/uploaders/design_management/design_v432x230_uploader_spec.rb839spec/finders/groups_finder_spec.rb840spec/lib/gitlab/background_migration/fix_vulnerability_occurrences_with_hashes_as_raw_metadata_spec.rb841spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb842spec/models/ci/stage_spec.rb843spec/tasks/gitlab/seed/group_seed_rake_spec.rb844spec/serializers/group_child_entity_spec.rb845spec/services/alert_management/process_prometheus_alert_service_spec.rb846spec/services/users/destroy_service_spec.rb847spec/presenters/packages/npm/package_presenter_spec.rb848spec/policies/issuable_policy_spec.rb849spec/finders/personal_access_tokens_finder_spec.rb850spec/models/ci/build_dependencies_spec.rb851spec/services/merge_requests/approval_service_spec.rb852spec/services/packages/maven/find_or_create_package_service_spec.rb853spec/policies/project_snippet_policy_spec.rb854spec/lib/gitlab/git_access_wiki_spec.rb855spec/services/todos/destroy/group_private_service_spec.rb856spec/models/snippet_repository_spec.rb857spec/models/compare_spec.rb858spec/lib/gitlab/import_export/project/sample/relation_tree_restorer_spec.rb859spec/finders/serverless_domain_finder_spec.rb860spec/models/integrations/discord_spec.rb861spec/services/projects/hashed_storage/migrate_repository_service_spec.rb862spec/serializers/pipeline_details_entity_spec.rb863spec/lib/gitlab/ci/templates/npm_spec.rb864spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb865spec/lib/gitlab/background_migration/batching_strategies/loose_index_scan_batching_strategy_spec.rb866spec/models/ci/resource_group_spec.rb867spec/services/ci/job_artifacts/update_unknown_locked_status_service_spec.rb868spec/lib/gitlab/json_spec.rb869spec/graphql/mutations/merge_requests/set_draft_spec.rb870spec/finders/clusters/kubernetes_namespace_finder_spec.rb871spec/workers/packages/nuget/extraction_worker_spec.rb872spec/lib/gitlab/template/merge_request_template_spec.rb873spec/lib/gitlab/github_import/representation/issue_event_spec.rb874spec/tasks/gettext_rake_spec.rb875spec/lib/gitlab/redis/duplicate_jobs_spec.rb876spec/graphql/mutations/issues/create_spec.rb877spec/services/files/delete_service_spec.rb878spec/lib/gitlab/template/issue_template_spec.rb879spec/helpers/clusters_helper_spec.rb880spec/lib/banzai/reference_parser/issue_parser_spec.rb881spec/graphql/types/base_field_spec.rb882spec/graphql/mutations/releases/delete_spec.rb883spec/models/grafana_integration_spec.rb884spec/lib/gitlab/gl_repository/repo_type_spec.rb885spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb886spec/helpers/ci/pipelines_helper_spec.rb887spec/services/projects/deploy_tokens/create_service_spec.rb888spec/lib/gitlab/memory/reporter_spec.rb889spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb890spec/initializers/rest-client-hostname_override_spec.rb891spec/models/work_items/type_spec.rb892spec/lib/banzai/filter/upload_link_filter_spec.rb893spec/workers/tasks_to_be_done/create_worker_spec.rb894spec/lib/gitlab/ci/ansi2json_spec.rb895spec/graphql/types/todo_type_spec.rb896spec/models/snippet_input_action_spec.rb897spec/serializers/web_ide_terminal_entity_spec.rb898spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb899spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb900spec/helpers/ci/builds_helper_spec.rb901spec/services/deployments/update_service_spec.rb902spec/workers/merge_request_mergeability_check_worker_spec.rb903spec/lib/gitaly/server_spec.rb904spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb905spec/lib/gitlab/web_hooks/rate_limiter_spec.rb906spec/lib/gitlab/ci/config/entry/include_spec.rb907spec/lib/gitlab/ci/status/stage/play_manual_spec.rb908spec/lib/gitlab/auth/user_access_denied_reason_spec.rb909spec/lib/gitlab/ci/secure_files/mobile_provision_spec.rb910spec/lib/gitlab/git/compare_spec.rb911spec/graphql/resolvers/project_merge_requests_resolver_spec.rb912spec/presenters/commit_presenter_spec.rb913spec/tasks/gitlab/praefect_rake_spec.rb914spec/lib/gitlab/etag_caching/middleware_spec.rb915spec/tooling/lib/tooling/find_codeowners_spec.rb916spec/uploaders/gitlab_uploader_spec.rb917spec/workers/external_service_reactive_caching_worker_spec.rb918spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb919spec/models/concerns/sensitive_serializable_hash_spec.rb920spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb921spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb922spec/lib/gitlab/kubernetes/helm/v3/delete_command_spec.rb923spec/rubocop/formatter/graceful_formatter_spec.rb924spec/lib/gitlab/repository_cache/preloader_spec.rb925spec/tasks/gitlab/uploads/check_rake_spec.rb926spec/lib/gitlab/phabricator_import/conduit/response_spec.rb927spec/helpers/time_zone_helper_spec.rb928spec/models/concerns/loose_index_scan_spec.rb929spec/models/bulk_imports/export_spec.rb930spec/lib/gitlab/job_waiter_spec.rb931spec/lib/gitlab/jira_import/base_importer_spec.rb932spec/workers/gitlab/jira_import/stage/start_import_worker_spec.rb933spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb934spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb935spec/initializers/net_http_patch_spec.rb936spec/graphql/mutations/todos/mark_done_spec.rb937spec/helpers/version_check_helper_spec.rb938spec/services/packages/create_dependency_service_spec.rb939spec/rubocop/cop/avoid_return_from_blocks_spec.rb940spec/services/snippets/update_repository_storage_service_spec.rb941spec/services/import/gitlab_projects/create_project_service_spec.rb942spec/models/merge_request/diff_commit_user_spec.rb943spec/models/integrations/chat_message/push_message_spec.rb944spec/lib/gitlab/import_export/base/object_builder_spec.rb945spec/lib/error_tracking/sentry_client/api_urls_spec.rb946spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric_spec.rb947spec/components/pajamas/checkbox_component_spec.rb948spec/services/ci/create_pipeline_service/scripts_spec.rb949spec/finders/autocomplete/project_finder_spec.rb950spec/services/snippets/count_service_spec.rb951spec/lib/gitlab/ci/reports/security/aggregated_report_spec.rb952spec/initializers/doorkeeper_spec.rb953spec/lib/gitlab/database/query_analyzers/query_recorder_spec.rb954spec/graphql/resolvers/ci/runner_projects_resolver_spec.rb955spec/lib/api/validations/validators/file_path_spec.rb956spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb957spec/lib/bulk_imports/pipeline_spec.rb958spec/models/packages/composer/metadatum_spec.rb959spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb960spec/lib/gitlab/database/load_balancing/setup_spec.rb961spec/services/milestones/create_service_spec.rb962spec/workers/merge_requests/execute_approval_hooks_worker_spec.rb963spec/serializers/context_commits_diff_entity_spec.rb964spec/helpers/keyset_helper_spec.rb965spec/lib/system_check/base_check_spec.rb966spec/workers/hashed_storage/project_rollback_worker_spec.rb967spec/models/alert_management/metric_image_spec.rb968spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb969spec/services/incident_management/timeline_event_tags/create_service_spec.rb970spec/models/concerns/optionally_search_spec.rb971spec/services/users/block_service_spec.rb972spec/services/base_count_service_spec.rb973spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb974spec/lib/gitlab/middleware/multipart/handler_spec.rb975spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb976spec/lib/gitlab/unicode_spec.rb977spec/models/work_items/widgets/start_and_due_date_spec.rb978spec/lib/gitlab/auth/result_spec.rb979spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb980spec/models/users/calloutable_spec.rb981spec/lib/api/validations/validators/absence_spec.rb982spec/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml_spec.rb983spec/rubocop/cop/gitlab/avoid_feature_get_spec.rb984spec/validators/import/gitlab_projects/remote_file_validator_spec.rb985spec/lib/gitlab/ci/config/entry/stage_spec.rb986spec/lib/banzai/renderer_spec.rb987spec/workers/ci/pipeline_artifacts/expire_artifacts_worker_spec.rb988spec/lib/error_tracking/sentry_client/repo_spec.rb989spec/serializers/merge_request_sidebar_basic_entity_spec.rb990spec/lib/gitlab/import_export/duration_measuring_spec.rb991spec/workers/gitlab/jira_import/stage/import_attachments_worker_spec.rb992spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb993spec/workers/issue_due_scheduler_worker_spec.rb994spec/services/base_container_service_spec.rb995spec/finders/packages/generic/package_finder_spec.rb996spec/graphql/mutations/custom_emoji/destroy_spec.rb997spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb998spec/serializers/analytics/cycle_analytics/stage_entity_spec.rb999spec/lib/gitlab/utils/batch_loader_spec.rb1000spec/serializers/import/manifest_provider_repo_entity_spec.rb1001spec/models/concerns/taggable_queries_spec.rb1002spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb1003spec/lib/gitlab/git/wiki_page_version_spec.rb1004spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb1005spec/lib/gitlab/manifest_import/metadata_spec.rb1006spec/helpers/numbers_helper_spec.rb1007spec/lib/gitlab/auth/crowd/authentication_spec.rb1008spec/lib/gitlab/alert_management/payload_spec.rb1009spec/workers/ci_platform_metrics_update_cron_worker_spec.rb1010spec/lib/gitlab/word_diff/segments/newline_spec.rb1011spec/serializers/group_link/group_group_link_entity_spec.rb1012spec/lib/gitlab/favicon_spec.rb1013spec/lib/gitlab/import_export/log_util_spec.rb1014spec/support_specs/helpers/stub_method_calls_spec.rb1015spec/models/ml/experiment_metadata_spec.rb1016spec/models/pages/virtual_domain_spec.rb1017spec/lib/gitlab/sidekiq_versioning/middleware_spec.rb1018spec/workers/onboarding/user_added_worker_spec.rb1019spec/lib/gitlab/usage_data_counters/service_usage_data_counter_spec.rb1020spec/helpers/git_helper_spec.rb1021spec/services/work_items/widgets/start_and_due_date_service/update_service_spec.rb1022spec/services/analytics/cycle_analytics/stages/list_service_spec.rb1023spec/lib/gitlab/pages/settings_spec.rb1024spec/graphql/types/merge_requests/reviewer_type_spec.rb1025spec/serializers/build_trace_entity_spec.rb1026spec/workers/namespaces/prune_aggregation_schedules_worker_spec.rb1027spec/initializers/memory_watchdog_spec.rb1028spec/graphql/types/invitation_interface_spec.rb1029spec/lib/backup/database_backup_error_spec.rb1030spec/graphql/types/customer_relations/contact_sort_enum_spec.rb1031spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb1032spec/lib/gitlab/github_import/logger_spec.rb1033spec/graphql/types/merge_request_sort_enum_spec.rb1034spec/lib/bitbucket/connection_spec.rb1035spec/lib/product_analytics/event_params_spec.rb1036spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb1037spec/rubocop/cop/ban_catch_throw_spec.rb1038spec/views/shared/groups/_dropdown.html.haml_spec.rb1039spec/initializers/cookies_serializer_spec.rb1040spec/graphql/types/ci/project_variable_connection_type_spec.rb1041spec/lib/gitlab/language_data_spec.rb1042spec/lib/gitlab/usage/metrics/aggregates/sources/redis_hll_spec.rb1043spec/graphql/types/design_management/design_version_event_enum_spec.rb1044spec/graphql/types/query_complexity_type_spec.rb1045spec/lib/gitlab/rugged_instrumentation_spec.rb1046spec/lib/gitlab/hashed_path_spec.rb1047spec/lib/gitlab/diff/suggestion_diff_spec.rb1048spec/graphql/types/packages/package_file_type_spec.rb1049spec/graphql/types/packages/composer/metadatum_type_spec.rb1050spec/initializers/rack_VULNDB-255039_patch_spec.rb1051spec/lib/gitlab/patch/draw_route_spec.rb1052spec/serializers/project_mirror_serializer_spec.rb1053spec/lib/gitlab/net_http_adapter_spec.rb1054spec/serializers/evidences/evidence_serializer_spec.rb1055spec/services/gravatar_service_spec.rb1056Filter specs:1057Running specs:1058Running all node tests without filter1059spec/services/merge_requests/build_service_spec.rb1060spec/models/note_spec.rb1061spec/finders/group_members_finder_spec.rb1062spec/uploaders/design_management/design_v432x230_uploader_spec.rb1063spec/finders/groups_finder_spec.rb1064spec/lib/gitlab/background_migration/fix_vulnerability_occurrences_with_hashes_as_raw_metadata_spec.rb1065spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb1066spec/models/ci/stage_spec.rb1067spec/tasks/gitlab/seed/group_seed_rake_spec.rb1068spec/serializers/group_child_entity_spec.rb1069spec/services/alert_management/process_prometheus_alert_service_spec.rb1070spec/services/users/destroy_service_spec.rb1071spec/presenters/packages/npm/package_presenter_spec.rb1072spec/policies/issuable_policy_spec.rb1073spec/finders/personal_access_tokens_finder_spec.rb1074spec/models/ci/build_dependencies_spec.rb1075spec/services/merge_requests/approval_service_spec.rb1076spec/services/packages/maven/find_or_create_package_service_spec.rb1077spec/policies/project_snippet_policy_spec.rb1078spec/lib/gitlab/git_access_wiki_spec.rb1079spec/services/todos/destroy/group_private_service_spec.rb1080spec/models/snippet_repository_spec.rb1081spec/models/compare_spec.rb1082spec/lib/gitlab/import_export/project/sample/relation_tree_restorer_spec.rb1083spec/finders/serverless_domain_finder_spec.rb1084spec/models/integrations/discord_spec.rb1085spec/services/projects/hashed_storage/migrate_repository_service_spec.rb1086spec/serializers/pipeline_details_entity_spec.rb1087spec/lib/gitlab/ci/templates/npm_spec.rb1088spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb1089spec/lib/gitlab/background_migration/batching_strategies/loose_index_scan_batching_strategy_spec.rb1090spec/models/ci/resource_group_spec.rb1091spec/services/ci/job_artifacts/update_unknown_locked_status_service_spec.rb1092spec/lib/gitlab/json_spec.rb1093spec/graphql/mutations/merge_requests/set_draft_spec.rb1094spec/finders/clusters/kubernetes_namespace_finder_spec.rb1095spec/workers/packages/nuget/extraction_worker_spec.rb1096spec/lib/gitlab/template/merge_request_template_spec.rb1097spec/lib/gitlab/github_import/representation/issue_event_spec.rb1098spec/tasks/gettext_rake_spec.rb1099spec/lib/gitlab/redis/duplicate_jobs_spec.rb1100spec/graphql/mutations/issues/create_spec.rb1101spec/services/files/delete_service_spec.rb1102spec/lib/gitlab/template/issue_template_spec.rb1103spec/helpers/clusters_helper_spec.rb1104spec/lib/banzai/reference_parser/issue_parser_spec.rb1105spec/graphql/types/base_field_spec.rb1106spec/graphql/mutations/releases/delete_spec.rb1107spec/models/grafana_integration_spec.rb1108spec/lib/gitlab/gl_repository/repo_type_spec.rb1109spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb1110spec/helpers/ci/pipelines_helper_spec.rb1111spec/services/projects/deploy_tokens/create_service_spec.rb1112spec/lib/gitlab/memory/reporter_spec.rb1113spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb1114spec/initializers/rest-client-hostname_override_spec.rb1115spec/models/work_items/type_spec.rb1116spec/lib/banzai/filter/upload_link_filter_spec.rb1117spec/workers/tasks_to_be_done/create_worker_spec.rb1118spec/lib/gitlab/ci/ansi2json_spec.rb1119spec/graphql/types/todo_type_spec.rb1120spec/models/snippet_input_action_spec.rb1121spec/serializers/web_ide_terminal_entity_spec.rb1122spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb1123spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb1124spec/helpers/ci/builds_helper_spec.rb1125spec/services/deployments/update_service_spec.rb1126spec/workers/merge_request_mergeability_check_worker_spec.rb1127spec/lib/gitaly/server_spec.rb1128spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb1129spec/lib/gitlab/web_hooks/rate_limiter_spec.rb1130spec/lib/gitlab/ci/config/entry/include_spec.rb1131spec/lib/gitlab/ci/status/stage/play_manual_spec.rb1132spec/lib/gitlab/auth/user_access_denied_reason_spec.rb1133spec/lib/gitlab/ci/secure_files/mobile_provision_spec.rb1134spec/lib/gitlab/git/compare_spec.rb1135spec/graphql/resolvers/project_merge_requests_resolver_spec.rb1136spec/presenters/commit_presenter_spec.rb1137spec/tasks/gitlab/praefect_rake_spec.rb1138spec/lib/gitlab/etag_caching/middleware_spec.rb1139spec/tooling/lib/tooling/find_codeowners_spec.rb1140spec/uploaders/gitlab_uploader_spec.rb1141spec/workers/external_service_reactive_caching_worker_spec.rb1142spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb1143spec/models/concerns/sensitive_serializable_hash_spec.rb1144spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb1145spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb1146spec/lib/gitlab/kubernetes/helm/v3/delete_command_spec.rb1147spec/rubocop/formatter/graceful_formatter_spec.rb1148spec/lib/gitlab/repository_cache/preloader_spec.rb1149spec/tasks/gitlab/uploads/check_rake_spec.rb1150spec/lib/gitlab/phabricator_import/conduit/response_spec.rbKnapsack report generator started!1151Run options: exclude {:quarantine=>true, :level=>"migration"}1152==> Starting Gitaly set up...1153==> Starting GitLab Elasticsearch Indexer set up...1154[TEST PROF INFO] Time spent in factories: 00:10.233 (24.27% of total time)1155[TEST PROF INFO] Time spent in factories: 00:10.233 (24.23% of total time)1156Test environment set up in 0.77191307 seconds1157MergeRequests::BuildService1158 #execute1159 calls the compare service with the correct arguments1160 does not assign force_remove_source_branch1161 with force_remove_source_branch parameter when the user is authorized1162 assigns force_remove_source_branch1163 with project setting remove_source_branch_after_merge false1164 assigns force_remove_source_branch1165 with project setting remove_source_branch_after_merge true1166 assigns force_remove_source_branch1167 with force_remove_source_branch parameter false1168 does not assign force_remove_source_branch1169 missing source branch1170 behaves like forbids the merge request from being created1171 returns that the merge request cannot be created1172 adds an error message to the merge request1173 when target branch is missing1174 when source branch1175 is not the repository default branch1176 creates compare object with target branch as default branch1177 behaves like allows the merge request to be created1178 is expected to eq true1179 the repository default branch1180 behaves like forbids the merge request from being created1181 returns that the merge request cannot be created1182 adds an error message to the merge request1183 when source project is different from the target project1184 creates compare object with target branch as default branch1185 behaves like allows the merge request to be created1186 is expected to eq true1187 same source and target branch1188 behaves like forbids the merge request from being created1189 returns that the merge request cannot be created1190 adds an error message to the merge request1191 no commits in the diff1192 adds a Draft prefix to the merge request title1193 behaves like allows the merge request to be created1194 is expected to eq true1195 one commit in the diff1196 uses the title of the commit as the title of the merge request1197 uses the description of the commit as the description of the merge request1198 behaves like allows the merge request to be created1199 is expected to eq true1200 behaves like with a Default.md template1201 the template description is preferred1202 merge request already has a description set1203 keeps the description from the initial params1204 commit has no description1205 uses the title of the commit as the title of the merge request1206 sets the description to nil1207 behaves like with a Default.md template1208 the template description is preferred1209 when the source branch matches an issue1210 factory: :jira_integration, source_branch: "FOO-123-fix-issue", closing_message: "Closes FOO-123"1211 uses the title of the commit as the title of the merge request1212 appends the closing description1213 a Default.md template is defined1214 appends the closing description to a Default.md template1215 factory: :jira_integration, source_branch: "fix-issue", closing_message: nil1216 uses the title of the commit as the title of the merge request1217 appends the closing description1218 a Default.md template is defined1219 appends the closing description to a Default.md template1220 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", closing_message: "Closes #123"1221 uses the title of the commit as the title of the merge request1222 appends the closing description1223 a Default.md template is defined1224 appends the closing description to a Default.md template1225 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", closing_message: nil1226 uses the title of the commit as the title of the merge request1227 appends the closing description1228 a Default.md template is defined1229 appends the closing description to a Default.md template1230 factory: nil, source_branch: "123-fix-issue", closing_message: "Closes #123"1231 uses the title of the commit as the title of the merge request1232 appends the closing description1233 a Default.md template is defined1234 appends the closing description to a Default.md template1235 factory: nil, source_branch: "fix-issue", closing_message: nil1236 uses the title of the commit as the title of the merge request1237 appends the closing description1238 a Default.md template is defined1239 appends the closing description to a Default.md template1240 when the source branch matches an internal issue1241 assigns the issue label and milestone1242 when milestone_id and label_ids are shared in the params1243 assigns milestone_id and label_ids instead of issue labels and milestone1244 when a milestone is from another project1245 sets milestone to nil1246 no multi-line commit messages in the diff1247 uses the title of the branch as the merge request title1248 does not add a description1249 behaves like allows the merge request to be created1250 is expected to eq true1251 behaves like with a Default.md template1252 the template description is preferred1253 merge request already has a description set1254 keeps the description from the initial params1255 a Default.md template is defined1256 keeps the description from the initial params1257 when the source branch matches an issue1258 factory: :jira_integration, source_branch: "FOO-123-fix-issue", title: "Resolve FOO-123 \"Fix issue\"", closing_message: "Closes FOO-123"1259 sets the correct title1260 sets the closing description1261 a Default.md template is defined1262 appends the closing description to a Default.md template1263 factory: :jira_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1264 sets the correct title1265 sets the closing description1266 a Default.md template is defined1267 appends the closing description to a Default.md template1268 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", title: "Resolve #123 \"Fix issue\"", closing_message: "Closes #123"1269 sets the correct title1270 sets the closing description1271 a Default.md template is defined1272 appends the closing description to a Default.md template1273 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1274 sets the correct title1275 sets the closing description1276 a Default.md template is defined1277 appends the closing description to a Default.md template1278 factory: nil, source_branch: "123-fix-issue", title: "Resolve \"A bug\"", closing_message: "Closes #123"1279 sets the correct title1280 sets the closing description1281 a Default.md template is defined1282 appends the closing description to a Default.md template1283 factory: nil, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1284 sets the correct title1285 sets the closing description1286 a Default.md template is defined1287 appends the closing description to a Default.md template1288 factory: nil, source_branch: "124-fix-issue", title: "124 fix issue", closing_message: nil1289 sets the correct title1290 sets the closing description1291 a Default.md template is defined1292 appends the closing description to a Default.md template1293 a multi-line commit message in the diff1294 uses the first line of the first multi-line commit message as the title1295 adds the remaining lines of the first multi-line commit message as the description1296 behaves like allows the merge request to be created1297 is expected to eq true1298 behaves like with a Default.md template1299 the template description is preferred1300 when the source branch matches an issue1301 factory: :jira_integration, source_branch: "FOO-123-fix-issue", title: "Resolve FOO-123 \"Fix issue\"", closing_message: "Closes FOO-123"1302 sets the correct title1303 sets the closing description1304 a Default.md template is defined1305 appends the closing description to a Default.md template1306 factory: :jira_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1307 sets the correct title1308 sets the closing description1309 a Default.md template is defined1310 appends the closing description to a Default.md template1311 factory: :custom_issue_tracker_integration, source_branch: "123-fix-issue", title: "Resolve #123 \"Fix issue\"", closing_message: "Closes #123"1312 sets the correct title1313 sets the closing description1314 a Default.md template is defined1315 appends the closing description to a Default.md template1316 factory: :custom_issue_tracker_integration, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1317 sets the correct title1318 sets the closing description1319 a Default.md template is defined1320 appends the closing description to a Default.md template1321 factory: nil, source_branch: "123-fix-issue", title: "Resolve \"A bug\"", closing_message: "Closes #123"1322 sets the correct title1323 sets the closing description1324 a Default.md template is defined1325 appends the closing description to a Default.md template1326 factory: nil, source_branch: "fix-issue", title: "Fix issue", closing_message: nil1327 sets the correct title1328 sets the closing description1329 a Default.md template is defined1330 appends the closing description to a Default.md template1331 factory: nil, source_branch: "124-fix-issue", title: "124 fix issue", closing_message: nil1332 sets the correct title1333 sets the closing description1334 a Default.md template is defined1335 appends the closing description to a Default.md template1336 when the issue is not accessible to user1337 uses the first line of the first multi-line commit message as the title1338 adds the remaining lines of the first multi-line commit message as the description1339 when the issue is confidential1340 uses the first line of the first multi-line commit message as the title1341 adds the remaining lines of the first multi-line commit message as the description1342 source branch does not exist1343 behaves like forbids the merge request from being created1344 returns that the merge request cannot be created1345 adds an error message to the merge request1346 target branch does not exist1347 behaves like forbids the merge request from being created1348 returns that the merge request cannot be created1349 adds an error message to the merge request1350 both source and target branches do not exist1351 behaves like forbids the merge request from being created1352 returns that the merge request cannot be created1353 adds an error message to the merge request1354 upstream project has disabled merge requests1355 sets target project correctly1356 target_project is set and accessible by current_user1357 sets target project correctly1358 target_project is set but not accessible by current_user1359 sets target project correctly1360 target_project is set but repo is not accessible by current_user1361 sets target project correctly1362 source_project is set and accessible by current_user1363 sets source project correctly1364 source_project is set but not accessible by current_user1365 sets source project correctly1366 source_project is set but the user cannot create merge requests from the project1367 sets the source_project correctly1368 target_project is not in the fork network of source_project1369 adds an error to the merge request1370 target_project is in the fork network of source project but no longer accessible1371 sets the target_project correctly1372 when specifying target branch in the description1373 sets the attribute from the quick actions1374 when assigning labels1375 for members with less than developer access1376 is not allowed1377 for users allowed to assign labels1378 for labels in the project1379 is allowed for developers1380 for unrelated labels1381 only assigns related labels1382 #assign_description_from_repository_template1383 performs no action if the merge request description is not blank1384 when a Default template is not found1385 does not modify the merge request description1386 when a Default template is found1387 when its contents cannot be retrieved1388 does not modify the merge request description1389 when its contents can be retrieved1390 modifies the merge request description1391 #replace_variables_in_description1392 when the merge request description is blank1393 does not update the description1394 when the merge request description contains template variables1395 when there are multiple commits in the diff1396 replaces the variables in the description1397 when there are no commits in the diff1398 replaces the variables in the description1399Note1400 associations1401 is expected to belong to project required: false1402 is expected to belong to noteable required: false1403 is expected to belong to author class_name => User required: false1404 is expected to have many todos1405 is expected to belong to review required: false inverse_of => notes1406 modules1407 is expected to includes the Participable module1408 is expected to includes the Mentionable module1409 is expected to includes the Awardable module1410 is expected to includes the Sortable module1411 default values1412 is expected not to be system1413 validation1414 is expected to validate that the length of :note is at most 10000001415 is expected to validate that :note cannot be empty/falsy1416 is expected to validate that :project cannot be empty/falsy1417 when note is on commit1418 is expected to validate that :commit_id cannot be empty/falsy1419 is expected not to validate that :noteable_id cannot be empty/falsy1420 when note is not on commit1421 is expected not to validate that :commit_id cannot be empty/falsy1422 is expected to validate that :noteable_id cannot be empty/falsy1423 when noteable and note project differ1424 is expected to be invalid1425 when noteable and note project are the same1426 is expected to be valid1427 when project is missing for a project related note1428 is expected to be invalid1429 when noteable is a personal snippet1430 is valid without project1431 max notes limit1432 when creating a system note1433 is expected to be valid1434 when creating a user note1435 is expected not to be valid1436 when updating an existing note on a noteable that already exceeds the limit1437 is expected to be valid1438 created_at in the past1439 when creating a note not too much in the past1440 is expected to be valid1441 when creating a note too much in the past1442 is expected not to be valid1443 confidentiality1444 for existing public note1445 is not possible to change the note to confidential1446 is possible to change confidentiality from nil to false1447 for existing confidential note1448 is not possible to change the note to public1449 for a new note1450 allows to create a confidential note for an issue1451 when noteable is not allowed to have confidential notes1452 can not be set confidential1453 when note type is not allowed to be confidential1454 can not be set confidential1455 when the note is a discussion note1456 is expected to be valid1457 when replying to a note1458 when the note is reply to a confidential note1459 is expected to be valid1460 when the note is reply to a public note1461 can not be set confidential1462 when reply note is public but discussion is confidential1463 can not be set confidential1464 callbacks1465 #keep_around_commit1466 calls #keep_around_commit normally1467 skips #keep_around_commit if 'skip_keep_around_commits' is true1468 skips #keep_around_commit if 'importing' is true1469 #notify_after_create1470 calls #after_note_created on the noteable1471 #notify_after_destroy1472 calls #after_note_destroyed on the noteable1473 does not error if noteable is nil1474 sets internal flag1475 when confidential is `true`1476 is expected to equal true1477 when confidential is `false`1478 is expected to equal false1479 when confidential is `nil`1480 is expected to equal false1481 Commit notes1482 is accessible through #noteable1483 saves a valid note1484 is recognized by #for_commit?1485 keeps the commit around1486 does not generate N+1 queries for participants1487 authorization1488 read1489 is expected to be falsey1490 is expected to be truthy1491 is expected to be falsey1492 write1493 is expected to be falsey1494 is expected to be truthy1495 is expected to be falsey1496 admin1497 is expected to be falsey1498 is expected to be truthy1499 is expected to be falsey1500 behaves like an editable mentionable1501 creates new cross-reference notes when the mentionable text is edited1502 behaves like a mentionable1503 generates a descriptive back-reference1504 extracts references from its reference property1505 creates cross-reference notes1506 when there are cached markdown fields1507 sends in cached markdown fields when appropriate1508 when there are cached markdown fields1509 refreshes markdown cache if necessary1510 when the markdown cache is stale1511 persists the refreshed cache so that it does not have to be refreshed every time1512 #all_references1513 reads the rendered note body from the cache1514 editable?1515 returns true1516 returns false1517 noteable_author?1518 when note is on commit1519 if user is the noteable author1520 returns true1521 if user is not the noteable author1522 returns false1523 when note is on issue1524 if user is the noteable author1525 returns true1526 if user is not the noteable author1527 returns false1528 last_edited_at1529 with last_edited_at1530 returns last_edited_at1531 without last_edited_at1532 returns updated_at1533 edited?1534 with updated_by1535 returns true1536 without updated_by1537 returns false1538 #confidential?1539 when note is not confidential1540 is false when a noteable is not confidential1541 is false when noteable can't be confidential1542 when include_noteable is set to true1543 is true when a noteable is confidential1544 when include_noteable is not set to true1545 is false when a noteable is confidential1546 when note is confidential1547 is true even when a noteable is not confidential1548 #system_note_visible_for?1549 when project is public1550 behaves like users with note access1551 returns true1552 when group is private1553 returns visible but not readable for non-member user1554 returns visible but not readable for a nil user1555 behaves like users with note access1556 returns true1557 #system_note_viewable_by?(user)1558 when system_note_metadata is not present1559 returns true1560 system_note_metadata isn't of type 'branch' or 'contact'1561 returns true1562 system_note_metadata is of type 'branch'1563 user doesn't have :download_code ability1564 returns false1565 user has the :download_code ability1566 returns true1567 system_note_metadata is of type 'contact'1568 user doesn't have :read_crm_contact ability1569 returns false1570 user has the :read_crm_contact ability1571 returns true1572 system_note_visible_for?1573 when there is one reference in note1574 behaves like checks references1575 returns false1576 returns true1577 returns true if user visible reference count set1578 returns false if user visible reference count set but does not match total reference count1579 returns false if ref count is 01580 when there is a reference to a label1581 behaves like checks references1582 returns false1583 returns true1584 returns true if user visible reference count set1585 returns false if user visible reference count set but does not match total reference count1586 returns false if ref count is 01587 when there are two references in note1588 behaves like checks references1589 returns false1590 returns true1591 returns true if user visible reference count set1592 returns false if user visible reference count set but does not match total reference count1593 returns false if ref count is 01594 when there is a private issue and user reference1595 behaves like checks references1596 returns false1597 returns true1598 returns true if user visible reference count set1599 returns false if user visible reference count set but does not match total reference count1600 returns false if ref count is 01601 when there is a publicly visible user reference1602 returns true for other users1603 returns true for anonymous users1604 #system_note_with_references?1605 falsey for user-generated notes1606 when the note might contain cross references1607 delegates to the cross-reference regex1608 delegates to the cross-reference regex1609 delegates to the cross-reference regex1610 delegates to the cross-reference regex1611 delegates to the cross-reference regex1612 delegates to the cross-reference regex1613 delegates to the cross-reference regex1614 delegates to the cross-reference regex1615 delegates to the cross-reference regex1616 delegates to the cross-reference regex1617 delegates to the cross-reference regex1618 delegates to the cross-reference regex1619 delegates to the cross-reference regex1620 delegates to the cross-reference regex1621 delegates to the cross-reference regex1622 delegates to the cross-reference regex1623 delegates to the cross-reference regex1624 delegates to the cross-reference regex1625 delegates to the cross-reference regex1626 delegates to the cross-reference regex1627 when the note cannot contain cross references1628 scan for a `mentioned in` prefix1629 when system note metadata is not present1630 delegates to the system note service1631 with a system note1632 with :label action1633 is expected to be falsy1634 behaves like system_note_metadata includes note action1635 delegates to the cross-reference regex1636 with cross reference label note1637 is expected to be truthy1638 with :milestone action1639 is expected to be falsy1640 behaves like system_note_metadata includes note action1641 delegates to the cross-reference regex1642 with cross reference milestone note1643 is expected to be truthy1644 clear_blank_line_code!1645 clears a blank line code before validation1646 #participants1647 includes the note author1648 #start_of_discussion?1649 returns true when note is the start of a discussion1650 returns false when note is a reply1651 .find_discussion1652 returns a discussion with multiple notes1653 .grouped_diff_discussions1654 active diff discussions1655 includes active discussions1656 doesn't include outdated discussions1657 groups the discussions by line code1658 with image discussions1659 groups image discussions by file identifier1660 groups text discussions by line code1661 diff discussions for older diff refs1662 for diff refs a discussion was created at1663 includes discussions that were created then1664 groups the discussions by original line code1665 for diff refs a discussion was last active at1666 includes discussions that were last active1667 groups the discussions by line code1668 .simple_sorts1669 does not contain name sorts1670 .cherry_picked_merge_requests1671 returns merge requests that match the given merge commit1672 #for_project_snippet?1673 returns true for a project snippet note1674 returns false for a personal snippet note1675 #for_personal_snippet?1676 returns false for a project snippet note1677 returns true for a personal snippet note1678 #for_design1679 is true when the noteable is a design1680 #to_ability_name1681 returns note1682 #noteable_ability_name1683 returns snippet for a project snippet note1684 returns snippet for a personal snippet note1685 returns merge_request for an MR note1686 returns issue for an issue note1687 returns commit for a commit note1688 returns alert_management_alert for an alert note1689 #cache_markdown_field1690 note for a project snippet1691 skips project check1692 note for a personal snippet1693 does not skip project check1694 #can_be_discussion_note?1695 for a note on a merge request1696 returns true1697 for a note on an issue1698 returns true1699 for a note on a commit1700 returns true1701 for a note on a snippet1702 returns true1703 for a diff note on merge request1704 returns false1705 for a diff note on commit1706 returns false1707 for a discussion note1708 returns false1709 #discussion_class1710 when the note is displayed out of context1711 returns OutOfContextDiscussion1712 when the note is displayed in the original context1713 returns IndividualNoteDiscussion1714 #discussion_id1715 when it is newly created1716 has a discussion id1717 when it didn't store a discussion id before1718 has a discussion id1719 when the note is displayed out of context1720 overrides the discussion id1721 #to_discussion1722 returns a discussion with just this note1723 #discussion1724 when the note is part of a discussion1725 returns the discussion this note is in1726 when the note is not part of a discussion1727 returns a discussion with just this note1728 #part_of_discussion?1729 for a regular note1730 returns false1731 for a diff note1732 returns true1733 for a discussion note1734 returns true1735 #in_reply_to?1736 for a note1737 when part of a discussion1738 checks if the note is in reply to the other discussion1739 when not part of a discussion1740 checks if the note is in reply to the other noteable1741 for a discussion1742 when part of the same discussion1743 returns true1744 when not part of the same discussion1745 returns false1746 for a noteable1747 when a comment on the same noteable1748 returns true1749 when not a comment on the same noteable1750 returns false1751 #references1752 when part of a discussion1753 references all earlier notes in the discussion1754 when not part of a discussion1755 returns the noteable1756 expiring ETag cache1757 expires cache for note's issue when note is saved1758 expires cache for note's issue when note is destroyed1759 when issuable etag caching is disabled1760 does not store cache key1761 for merge requests1762 when adding a note to the MR1763 expires the MR note etag cache1764 when adding a note to a commit on the MR1765 expires the MR note etag cache1766 #with_notes_filter1767 when notes filter is nil1768 is expected to include #<Note id: 190, note: [FILTERED], noteable_type: "Issue", author_id: 585, created_at: "2022-12-08 10:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 191, note: [FILTERED], noteable_type: "Issue", author_id: 586, created_at: "2022-12-08 10:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1769 when notes filter is set to all notes1770 is expected to include #<Note id: 192, note: [FILTERED], noteable_type: "Issue", author_id: 587, created_at: "2022-12-08 10:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false> and #<Note id: 193, note: [FILTERED], noteable_type: "Issue", author_id: 588, created_at: "2022-12-08 10:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1771 when notes filter is set to only comments1772 is expected to include #<Note id: 194, note: [FILTERED], noteable_type: "Issue", author_id: 589, created_at: "2022-12-08 10:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1773 is expected not to include #<Note id: 197, note: [FILTERED], noteable_type: "Issue", author_id: 592, created_at: "2022-12-08 10:...nil, resolved_by_push: nil, review_id: nil, confidential: nil, last_edited_at: nil, internal: false>1774 #parent1775 returns project for project notes1776 returns nil for personal snippet note1777 scopes1778 .for_note_or_capitalized_note1779 returns the expected matching note1780 returns the expected capitalized note1781 does not support pattern matching1782 .like_note_or_capitalized_note1783 returns the expected matching note1784 returns the expected capitalized note1785 supports pattern matching1786 .with_suggestions1787 returns the correct note1788 banzai_render_context1789 when noteable is a merge request1790 sets the label_url_method in the context1791 when noteable is an issue1792 sets the label_url_method in the context1793 when noteable is a personal snippet1794 sets the parent user in the context1795 #parent_user1796 returns the author of a personal snippet1797 returns nil for project snippet1798 returns nil when noteable is not a snippet1799 #skip_notification?1800 when there is no review1801 is expected to be falsey1802 when the review exists1803 is expected to be truthy1804 #attachment1805 is cleaned up correctly when project is destroyed1806 #post_processed_cache_key1807 returns cache key and author cache key by default1808 when note has no author1809 returns cache key only1810 when note has redacted_note_html1811 returns cache key with redacted_note_html sha1812 #commands_changes1813 only returns allowed keys1814 #bump_updated_at1815 sets updated_at to the current timestamp1816 with legacy edited note1817 copies updated_at to last_edited_at before bumping the timestamp1818 #note1819 behaves like note that replaces task for checklist item in body text1820 when note is not a system note1821 is expected to eq "marked the task **task 1** as completed"1822 when note is a system note1823 when note noteable_type is not Issue1824 is expected to eq "marked the task **task 1** as completed"1825 when note noteable_type is Issue1826 is expected to eq "marked the checklist item **task 1** as completed"1827 context when note and cache are null (happens in bulk insert)1828 is expected to be in [nil, ""]1829 behaves like note that replaces task for checklist item in body text1830 when note is not a system note1831 is expected to eq "marked the task **task 1** as incomplete"1832 when note is a system note1833 when note noteable_type is not Issue1834 is expected to eq "marked the task **task 1** as incomplete"1835 when note noteable_type is Issue1836 is expected to eq "marked the checklist item **task 1** as incomplete"1837 context when note and cache are null (happens in bulk insert)1838 is expected to be in [nil, ""]1839 #note_html1840 behaves like note that replaces task for checklist item in body text1841 when note is not a system note1842 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"1843 when note is a system note1844 when note noteable_type is not Issue1845 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as completed</p>"1846 when note noteable_type is Issue1847 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as completed</p>"1848 context when note and cache are null (happens in bulk insert)1849 is expected to be in [nil, ""]1850 behaves like note that replaces task for checklist item in body text1851 when note is not a system note1852 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"1853 when note is a system note1854 when note noteable_type is not Issue1855 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the task <strong>task 1</strong> as incomplete</p>"1856 when note noteable_type is Issue1857 is expected to eq "<p data-sourcepos=\"1:1-1:48\" dir=\"auto\">marked the checklist item <strong>task 1</strong> as incomplete</p>"1858 context when note and cache are null (happens in bulk insert)1859 is expected to be in [nil, ""]1860 #issuable_ability_name1861 when not confidential note1862 is expected to eq :read_note1863 when confidential note1864 is expected to eq :read_internal_note1865GroupMembersFinder#execute1866 relations1867 raises an error if a non-supported relation type is used1868 subject_relations: [], subject_group: :group, expected_members: []1869 returns correct members1870 subject_relations: [:direct, :inherited], subject_group: :group, expected_members: [:user1_group, :user2_group, :user3_group, :user4_group]1871 returns correct members1872 subject_relations: [:direct], subject_group: :group, expected_members: [:user1_group, :user2_group, :user3_group, :user4_group]1873 returns correct members1874 subject_relations: [:inherited], subject_group: :group, expected_members: []1875 returns correct members1876 subject_relations: [:descendants], subject_group: :group, expected_members: [:user1_sub_sub_group, :user2_sub_group, :user3_sub_group, :user4_sub_group]1877 returns correct members1878 subject_relations: [:shared_from_groups], subject_group: :group, expected_members: [:user1_public_shared_group, :user2_public_shared_group, :user3_public_shared_group, :user4_public_shared_group]1879 returns correct members1880 subject_relations: [:direct, :inherited, :descendants, :shared_from_groups], subject_group: :group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_public_shared_group]1881 returns correct members1882 subject_relations: [], subject_group: :sub_group, expected_members: []1883 returns correct members1884 subject_relations: [:direct, :inherited], subject_group: :sub_group, expected_members: [:user1_sub_group, :user2_group, :user3_sub_group, :user4_group]1885 returns correct members1886 subject_relations: [:direct], subject_group: :sub_group, expected_members: [:user1_sub_group, :user2_sub_group, :user3_sub_group, :user4_sub_group]1887 returns correct members1888 subject_relations: [:inherited], subject_group: :sub_group, expected_members: [:user1_group, :user2_group, :user3_group, :user4_group]1889 returns correct members1890 subject_relations: [:descendants], subject_group: :sub_group, expected_members: [:user1_sub_sub_group, :user2_sub_sub_group, :user3_sub_sub_group, :user4_sub_sub_group]1891 returns correct members1892 subject_relations: [:shared_from_groups], subject_group: :sub_group, expected_members: [:user1_public_shared_group, :user2_public_shared_group, :user3_public_shared_group, :user4_public_shared_group]1893 returns correct members1894 subject_relations: [:direct, :inherited, :descendants, :shared_from_groups], subject_group: :sub_group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_public_shared_group]1895 returns correct members1896 subject_relations: [], subject_group: :sub_sub_group, expected_members: []1897 returns correct members1898 subject_relations: [:direct, :inherited], subject_group: :sub_sub_group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_group]1899 returns correct members1900 subject_relations: [:direct], subject_group: :sub_sub_group, expected_members: [:user1_sub_sub_group, :user2_sub_sub_group, :user3_sub_sub_group, :user4_sub_sub_group]1901 returns correct members1902 subject_relations: [:inherited], subject_group: :sub_sub_group, expected_members: [:user1_sub_group, :user2_group, :user3_sub_group, :user4_group]1903 returns correct members1904 subject_relations: [:descendants], subject_group: :sub_sub_group, expected_members: []1905 returns correct members1906 subject_relations: [:shared_from_groups], subject_group: :sub_sub_group, expected_members: [:user1_public_shared_group, :user2_public_shared_group, :user3_public_shared_group, :user4_public_shared_group]1907 returns correct members1908 subject_relations: [:direct, :inherited, :descendants, :shared_from_groups], subject_group: :sub_sub_group, expected_members: [:user1_sub_sub_group, :user2_group, :user3_sub_group, :user4_public_shared_group]1909 returns correct members1910 search1911 returns searched members if requested1912 returns nothing if search only in inherited relation1913 returns searched member only from sub_group if search only in inherited relation1914 filter by two-factor1915 returns members with two-factor auth if requested by owner1916 returns members without two-factor auth if requested by owner1917 returns direct members with two-factor auth if requested by owner1918 returns inherited members with two-factor auth if requested by owner1919 returns direct members without two-factor auth if requested by owner1920 returns inherited members without two-factor auth if requested by owner1921 filter by access levels1922 by owner1923 returns owners1924 by maintainer1925 returns owners1926 by owner and maintainer1927 returns owners and maintainers1928DesignManagement::DesignV432x230Uploader1929 resizes images1930 behaves like builds correct paths1931 #store_dir1932 behaves like matches the method pattern1933 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//1934 #cache_dir1935 behaves like matches the method pattern1936 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)1937 #work_dir1938 behaves like matches the method pattern1939 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)1940 #upload_path1941 behaves like matches the method pattern1942 is expected to match /uploads\/-\/system\/design_management\/action\/image_v432x230\//1943 #relative_path1944 is relative (PENDING: Path not set, skipping.)1945 .absolute_path1946 behaves like matches the method pattern1947 is expected to match /\/builds\/gitlab-org\/gitlab\/tmp\/tests\/public\/uploads\/-\/system\/design_management\/action\/image_v432x230\//1948 .base_dir1949 behaves like matches the method pattern1950 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)1951 path traversal exploits1952 throws an exception1953 object_store is REMOTE1954 behaves like builds correct paths1955 #store_dir1956 behaves like matches the method pattern1957 is expected to match /design_management\/action\/image_v432x230\//1958 #cache_dir1959 behaves like matches the method pattern1960 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)1961 #work_dir1962 behaves like matches the method pattern1963 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)1964 #upload_path1965 behaves like matches the method pattern1966 is expected to match /design_management\/action\/image_v432x230\//1967 #relative_path1968 is relative (PENDING: Path not set, skipping.)1969 .absolute_path1970 behaves like matches the method pattern1971 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)1972 .base_dir1973 behaves like matches the method pattern1974 example at ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:8 (PENDING: No pattern provided, skipping.)1975 path traversal exploits1976 throws an exception1977 #migrate!1978 behaves like migrates1979 returns corresponding file type1980 does nothing when migrating to the current store1981 migrate to the specified store1982 removes the original file after the migration1983 can access to the original file during migration1984 when migrate! is not occupied by another process1985 executes migrate!1986 executes use_file1987 when migrate! is occupied by another process1988 does not execute migrate!1989 does not execute use_file1990 migration is unsuccessful1991 when the store is not supported1992 does not update the object_store1993 does not delete the original file1994 upon a fog failure1995 does not update the object_store1996 does not delete the original file1997 upon a database failure1998 does not update the object_store1999 does not delete the original file2000 behaves like migrates2001 returns corresponding file type2002 does nothing when migrating to the current store2003 migrate to the specified store2004 removes the original file after the migration2005 can access to the original file during migration2006 when migrate! is not occupied by another process2007 executes migrate!2008 executes use_file2009 when migrate! is occupied by another process2010 does not execute migrate!2011 does not execute use_file2012 migration is unsuccessful2013 when the store is not supported2014 does not update the object_store2015 does not delete the original file2016 upon a fog failure2017 does not update the object_store2018 does not delete the original file2019 upon a database failure2020 does not update the object_store2021 does not delete the original file2022 accept whitelist file content type2023 mime_type: "image/png"2024 behaves like accepted carrierwave upload2025 will accept upload2026 will cache uploaded file2027 mime_type: "image/jpeg"2028 behaves like accepted carrierwave upload2029 will accept upload2030 will cache uploaded file2031 mime_type: "image/bmp"2032 behaves like accepted carrierwave upload2033 will accept upload2034 will cache uploaded file2035 mime_type: "image/gif"2036 behaves like accepted carrierwave upload2037 will accept upload2038 will cache uploaded file2039 upload non-whitelisted file content type2040 behaves like denied carrierwave upload2041 will deny upload2042 upload misnamed non-whitelisted file content type2043 behaves like denied carrierwave upload2044 will deny upload2045GroupsFinder2046 #execute2047 root level groups2048 user_type: nil, params: {:all_available=>true}, results: [:public_group, :user_public_group]2049 is expected to contain exactly #<Group id:1654 @public_group> and #<Group id:1657 @user_public_group>2050 user_type: nil, params: {:all_available=>false}, results: [:public_group, :user_public_group]2051 is expected to contain exactly #<Group id:1660 @public_group> and #<Group id:1663 @user_public_group>2052 user_type: nil, params: {}, results: [:public_group, :user_public_group]2053 is expected to contain exactly #<Group id:1666 @public_group> and #<Group id:1669 @user_public_group>2054 user_type: :regular, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2055 is expected to contain exactly #<Group id:1672 @public_group>, #<Group id:1671 @internal_group>, #<Group id:1675 @user_public_group>, #<Group id:1674 @user_internal_group>, and #<Group id:1673 @user_private_group>2056 user_type: :regular, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2057 is expected to contain exactly #<Group id:1682 @user_public_group>, #<Group id:1681 @user_internal_group>, and #<Group id:1680 @user_private_group>2058 user_type: :regular, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2059 is expected to contain exactly #<Group id:1686 @public_group>, #<Group id:1685 @internal_group>, #<Group id:1689 @user_public_group>, #<Group id:1688 @user_internal_group>, and #<Group id:1687 @user_private_group>2060 user_type: :regular, params: {:min_access_level=>30}, results: [:user_public_group, :user_internal_group, :user_private_group]2061 is expected to contain exactly #<Group id:1696 @user_public_group>, #<Group id:1695 @user_internal_group>, and #<Group id:1694 @user_private_group>2062 user_type: :external, params: {:all_available=>true}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]2063 is expected to contain exactly #<Group id:1700 @public_group>, #<Group id:1703 @user_public_group>, #<Group id:1702 @user_internal_group>, and #<Group id:1701 @user_private_group>2064 user_type: :external, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2065 is expected to contain exactly #<Group id:1710 @user_public_group>, #<Group id:1709 @user_internal_group>, and #<Group id:1708 @user_private_group>2066 user_type: :external, params: {}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]2067 is expected to contain exactly #<Group id:1714 @public_group>, #<Group id:1717 @user_public_group>, #<Group id:1716 @user_internal_group>, and #<Group id:1715 @user_private_group>2068 user_type: :admin_without_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2069 is expected to contain exactly #<Group id:1721 @public_group>, #<Group id:1720 @internal_group>, #<Group id:1724 @user_public_group>, #<Group id:1723 @user_internal_group>, and #<Group id:1722 @user_private_group>2070 user_type: :admin_without_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2071 is expected to contain exactly #<Group id:1731 @user_public_group>, #<Group id:1730 @user_internal_group>, and #<Group id:1729 @user_private_group>2072 user_type: :admin_without_admin_mode, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2073 is expected to contain exactly #<Group id:1735 @public_group>, #<Group id:1734 @internal_group>, #<Group id:1738 @user_public_group>, #<Group id:1737 @user_internal_group>, and #<Group id:1736 @user_private_group>2074 user_type: :admin_with_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]2075 is expected to contain exactly #<Group id:1742 @public_group>, #<Group id:1741 @internal_group>, #<Group id:1740 @private_group>, #<Group id:1745 @user_public_group>, #<Group id:1744 @user_internal_group>, and #<Group id:1743 @user_private_group>2076 user_type: :admin_with_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2077 is expected to contain exactly #<Group id:1752 @user_public_group>, #<Group id:1751 @user_internal_group>, and #<Group id:1750 @user_private_group>2078 user_type: :admin_with_admin_mode, params: {}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]2079 is expected to contain exactly #<Group id:1756 @public_group>, #<Group id:1755 @internal_group>, #<Group id:1754 @private_group>, #<Group id:1759 @user_public_group>, #<Group id:1758 @user_internal_group>, and #<Group id:1757 @user_private_group>2080 subgroups2081 with [nil] parent2082 returns only top-level groups2083 without a user2084 only returns parent and public subgroups2085 with a user2086 returns parent, public, and internal subgroups2087 being member2088 returns parent, public subgroups, internal subgroups, and private subgroups user is member of2089 parent group private2090 being member of parent group2091 returns all subgroups2092 authorized to private project2093 project one level deep2094 includes the subgroup of the project2095 does not include private subgroups deeper down2096 project two levels deep2097 returns all the ancestor groups2098 returns the groups for a given parent2099 being minimal access member of parent group2100 do not return group with minimal_access access2101 with include parent group descendants2102 with nil parent2103 returns all accessible groups2104 without a user2105 only returns the group public descendants2106 when a user is present2107 returns the group public and internal descendants2108 when a parent group member is present2109 returns all group descendants2110 with search2111 returns all groups with matching title2112 returns all groups with matching path2113 does not search in full path if parent is set2114 with group descendants2115 searches in full path if descendant groups are not included2116 with include_ancestors2117 if include_ancestors is true2118 returns ancestors of user groups2119 returns subgroup if user is member of project of subgroup2120 returns only groups related to user groups if all_available is false2121 if include_ancestors is false2122 does not return private ancestors of user groups2123 returns project's parent group if user is member of project2124 returns only user groups and their descendants if all_available is false2125 when use_traversal_ids_groups_finder feature flags is disabled2126 root level groups2127 user_type: nil, params: {:all_available=>true}, results: [:public_group, :user_public_group]2128 is expected to contain exactly #<Group id:1851 @public_group> and #<Group id:1854 @user_public_group>2129 user_type: nil, params: {:all_available=>false}, results: [:public_group, :user_public_group]2130 is expected to contain exactly #<Group id:1857 @public_group> and #<Group id:1860 @user_public_group>2131 user_type: nil, params: {}, results: [:public_group, :user_public_group]2132 is expected to contain exactly #<Group id:1863 @public_group> and #<Group id:1866 @user_public_group>2133 user_type: :regular, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2134 is expected to contain exactly #<Group id:1869 @public_group>, #<Group id:1868 @internal_group>, #<Group id:1872 @user_public_group>, #<Group id:1871 @user_internal_group>, and #<Group id:1870 @user_private_group>2135 user_type: :regular, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2136 is expected to contain exactly #<Group id:1879 @user_public_group>, #<Group id:1878 @user_internal_group>, and #<Group id:1877 @user_private_group>2137 user_type: :regular, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2138 is expected to contain exactly #<Group id:1883 @public_group>, #<Group id:1882 @internal_group>, #<Group id:1886 @user_public_group>, #<Group id:1885 @user_internal_group>, and #<Group id:1884 @user_private_group>2139 user_type: :regular, params: {:min_access_level=>30}, results: [:user_public_group, :user_internal_group, :user_private_group]2140 is expected to contain exactly #<Group id:1893 @user_public_group>, #<Group id:1892 @user_internal_group>, and #<Group id:1891 @user_private_group>2141 user_type: :external, params: {:all_available=>true}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]2142 is expected to contain exactly #<Group id:1897 @public_group>, #<Group id:1900 @user_public_group>, #<Group id:1899 @user_internal_group>, and #<Group id:1898 @user_private_group>2143 user_type: :external, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2144 is expected to contain exactly #<Group id:1907 @user_public_group>, #<Group id:1906 @user_internal_group>, and #<Group id:1905 @user_private_group>2145 user_type: :external, params: {}, results: [:public_group, :user_public_group, :user_internal_group, :user_private_group]2146 is expected to contain exactly #<Group id:1911 @public_group>, #<Group id:1914 @user_public_group>, #<Group id:1913 @user_internal_group>, and #<Group id:1912 @user_private_group>2147 user_type: :admin_without_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2148 is expected to contain exactly #<Group id:1918 @public_group>, #<Group id:1917 @internal_group>, #<Group id:1921 @user_public_group>, #<Group id:1920 @user_internal_group>, and #<Group id:1919 @user_private_group>2149 user_type: :admin_without_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2150 is expected to contain exactly #<Group id:1928 @user_public_group>, #<Group id:1927 @user_internal_group>, and #<Group id:1926 @user_private_group>2151 user_type: :admin_without_admin_mode, params: {}, results: [:public_group, :internal_group, :user_public_group, :user_internal_group, :user_private_group]2152 is expected to contain exactly #<Group id:1932 @public_group>, #<Group id:1931 @internal_group>, #<Group id:1935 @user_public_group>, #<Group id:1934 @user_internal_group>, and #<Group id:1933 @user_private_group>2153 user_type: :admin_with_admin_mode, params: {:all_available=>true}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]2154 is expected to contain exactly #<Group id:1939 @public_group>, #<Group id:1938 @internal_group>, #<Group id:1937 @private_group>, #<Group id:1942 @user_public_group>, #<Group id:1941 @user_internal_group>, and #<Group id:1940 @user_private_group>2155 user_type: :admin_with_admin_mode, params: {:all_available=>false}, results: [:user_public_group, :user_internal_group, :user_private_group]2156 is expected to contain exactly #<Group id:1949 @user_public_group>, #<Group id:1948 @user_internal_group>, and #<Group id:1947 @user_private_group>2157 user_type: :admin_with_admin_mode, params: {}, results: [:public_group, :internal_group, :private_group, :user_public_group, :user_internal_group, :user_private_group]2158 is expected to contain exactly #<Group id:1953 @public_group>, #<Group id:1952 @internal_group>, #<Group id:1951 @private_group>, #<Group id:1956 @user_public_group>, #<Group id:1955 @user_internal_group>, and #<Group id:1954 @user_private_group>2159 subgroups2160 with [nil] parent2161 returns only top-level groups2162 without a user2163 only returns parent and public subgroups2164 with a user2165 returns parent, public, and internal subgroups2166 being member2167 returns parent, public subgroups, internal subgroups, and private subgroups user is member of2168 parent group private2169 being member of parent group2170 returns all subgroups2171 authorized to private project2172 project one level deep2173 includes the subgroup of the project2174 does not include private subgroups deeper down2175 project two levels deep2176 returns all the ancestor groups2177 returns the groups for a given parent2178 being minimal access member of parent group2179 do not return group with minimal_access access2180 with include parent group descendants2181 with nil parent2182 returns all accessible groups2183 without a user2184 only returns the group public descendants2185 when a user is present2186 returns the group public and internal descendants2187 when a parent group member is present2188 returns all group descendants2189 with search2190 returns all groups with matching title2191 returns all groups with matching path2192 does not search in full path if parent is set2193 with group descendants2194 searches in full path if descendant groups are not included2195 with include_ancestors2196 if include_ancestors is true2197 returns ancestors of user groups2198 returns subgroup if user is member of project of subgroup2199 returns only groups related to user groups if all_available is false2200 if include_ancestors is false2201 does not return private ancestors of user groups2202 returns project's parent group if user is member of project2203 returns only user groups and their descendants if all_available is false2204Gitlab::Database::RenameReservedPathsMigration::V1::RenameNamespaces2205 #namespaces_for_paths2206 nested namespaces2207 includes the namespace2208 for child namespaces2209 only returns child namespaces with the correct path2210 has no namespaces that look the same2211 for top levelnamespaces2212 only returns child namespaces with the correct path2213 has no namespaces that just look the same2214 #move_repositories2215 moves a project for a namespace2216 moves a namespace in a subdirectory correctly2217 moves a parent namespace with subdirectories2218 #child_ids_for_parent2219 collects child ids for all levels2220 #rename_namespace2221 renames paths & routes for the namespace2222 tracks the rename2223 renames things related to the namespace2224 #rename_namespace_dependencies2225 moves the repository for a project in the namespace2226 moves the uploads for the namespace2227 moves the pages for the namespace2228 invalidates the markdown cache of related projects2229 doesn't rename users for other namespaces2230 renames the username of a namespace for a user2231 #rename_user2232 renames a username2233 #rename_namespaces2234 renames top level namespaces the namespace2235 renames child namespaces2236 #revert_renames2237 renames the routes back to the previous values2238 moves the repositories back to their original place2239 doesn't break when the namespace was renamed2240Ci::Stage2241 behaves like having unique enum values2242 has unique values in "status"2243 associations2244 #statuses2245 returns all commit statuses2246 #builds2247 returns only builds2248 .by_position2249 finds stages by position2250 .by_name2251 finds stages by name2252 #status2253 when stage is pending2254 has a correct status value2255 when stage is success2256 has a correct status value2257 when stage status is not defined2258 sets the default value2259 #set_status2260 from_status: :created, to_status: :waiting_for_resource2261 is expected to eq true2262 from_status: :created, to_status: :preparing2263 is expected to eq true2264 from_status: :created, to_status: :pending2265 is expected to eq true2266 from_status: :created, to_status: :running2267 is expected to eq true2268 from_status: :created, to_status: :failed2269 is expected to eq true2270 from_status: :created, to_status: :success2271 is expected to eq true2272 from_status: :created, to_status: :canceled2273 is expected to eq true2274 from_status: :created, to_status: :skipped2275 is expected to eq true2276 from_status: :created, to_status: :manual2277 is expected to eq true2278 from_status: :created, to_status: :scheduled2279 is expected to eq true2280 from_status: :waiting_for_resource, to_status: :waiting_for_resource2281 is expected to eq false2282 from_status: :waiting_for_resource, to_status: :preparing2283 is expected to eq true2284 from_status: :waiting_for_resource, to_status: :pending2285 is expected to eq true2286 from_status: :waiting_for_resource, to_status: :running2287 is expected to eq true2288 from_status: :waiting_for_resource, to_status: :failed2289 is expected to eq true2290 from_status: :waiting_for_resource, to_status: :success2291 is expected to eq true2292 from_status: :waiting_for_resource, to_status: :canceled2293 is expected to eq true2294 from_status: :waiting_for_resource, to_status: :skipped2295 is expected to eq true2296 from_status: :waiting_for_resource, to_status: :manual2297 is expected to eq true2298 from_status: :waiting_for_resource, to_status: :scheduled2299 is expected to eq true2300 from_status: :preparing, to_status: :waiting_for_resource2301 is expected to eq true2302 from_status: :preparing, to_status: :preparing2303 is expected to eq false2304 from_status: :preparing, to_status: :pending2305 is expected to eq true2306 from_status: :preparing, to_status: :running2307 is expected to eq true2308 from_status: :preparing, to_status: :failed2309 is expected to eq true2310 from_status: :preparing, to_status: :success2311 is expected to eq true2312 from_status: :preparing, to_status: :canceled2313 is expected to eq true2314 from_status: :preparing, to_status: :skipped2315 is expected to eq true2316 from_status: :preparing, to_status: :manual2317 is expected to eq true2318 from_status: :preparing, to_status: :scheduled2319 is expected to eq true2320 from_status: :pending, to_status: :waiting_for_resource2321 is expected to eq true2322 from_status: :pending, to_status: :preparing2323 is expected to eq true2324 from_status: :pending, to_status: :pending2325 is expected to eq false2326 from_status: :pending, to_status: :running2327 is expected to eq true2328 from_status: :pending, to_status: :failed2329 is expected to eq true2330 from_status: :pending, to_status: :success2331 is expected to eq true2332 from_status: :pending, to_status: :canceled2333 is expected to eq true2334 from_status: :pending, to_status: :skipped2335 is expected to eq true2336 from_status: :pending, to_status: :manual2337 is expected to eq true2338 from_status: :pending, to_status: :scheduled2339 is expected to eq true2340 from_status: :running, to_status: :waiting_for_resource2341 is expected to eq true2342 from_status: :running, to_status: :preparing2343 is expected to eq true2344 from_status: :running, to_status: :pending2345 is expected to eq true2346 from_status: :running, to_status: :running2347 is expected to eq false2348 from_status: :running, to_status: :failed2349 is expected to eq true2350 from_status: :running, to_status: :success2351 is expected to eq true2352 from_status: :running, to_status: :canceled2353 is expected to eq true2354 from_status: :running, to_status: :skipped2355 is expected to eq true2356 from_status: :running, to_status: :manual2357 is expected to eq true2358 from_status: :running, to_status: :scheduled2359 is expected to eq true2360 from_status: :failed, to_status: :waiting_for_resource2361 is expected to eq true2362 from_status: :failed, to_status: :preparing2363 is expected to eq true2364 from_status: :failed, to_status: :pending2365 is expected to eq true2366 from_status: :failed, to_status: :running2367 is expected to eq true2368 from_status: :failed, to_status: :failed2369 is expected to eq false2370 from_status: :failed, to_status: :success2371 is expected to eq true2372 from_status: :failed, to_status: :canceled2373 is expected to eq true2374 from_status: :failed, to_status: :skipped2375 is expected to eq true2376 from_status: :failed, to_status: :manual2377 is expected to eq true2378 from_status: :failed, to_status: :scheduled2379 is expected to eq true2380 from_status: :success, to_status: :waiting_for_resource2381 is expected to eq true2382 from_status: :success, to_status: :preparing2383 is expected to eq true2384 from_status: :success, to_status: :pending2385 is expected to eq true2386 from_status: :success, to_status: :running2387 is expected to eq true2388 from_status: :success, to_status: :failed2389 is expected to eq true2390 from_status: :success, to_status: :success2391 is expected to eq false2392 from_status: :success, to_status: :canceled2393 is expected to eq true2394 from_status: :success, to_status: :skipped2395 is expected to eq true2396 from_status: :success, to_status: :manual2397 is expected to eq true2398 from_status: :success, to_status: :scheduled2399 is expected to eq true2400 from_status: :canceled, to_status: :waiting_for_resource2401 is expected to eq true2402 from_status: :canceled, to_status: :preparing2403 is expected to eq true2404 from_status: :canceled, to_status: :pending2405 is expected to eq true2406 from_status: :canceled, to_status: :running2407 is expected to eq true2408 from_status: :canceled, to_status: :failed2409 is expected to eq true2410 from_status: :canceled, to_status: :success2411 is expected to eq true2412 from_status: :canceled, to_status: :canceled2413 is expected to eq false2414 from_status: :canceled, to_status: :skipped2415 is expected to eq true2416 from_status: :canceled, to_status: :manual2417 is expected to eq true2418 from_status: :canceled, to_status: :scheduled2419 is expected to eq true2420 from_status: :skipped, to_status: :waiting_for_resource2421 is expected to eq true2422 from_status: :skipped, to_status: :preparing2423 is expected to eq true2424 from_status: :skipped, to_status: :pending2425 is expected to eq true2426 from_status: :skipped, to_status: :running2427 is expected to eq true2428 from_status: :skipped, to_status: :failed2429 is expected to eq true2430 from_status: :skipped, to_status: :success2431 is expected to eq true2432 from_status: :skipped, to_status: :canceled2433 is expected to eq true2434 from_status: :skipped, to_status: :skipped2435 is expected to eq false2436 from_status: :skipped, to_status: :manual2437 is expected to eq true2438 from_status: :skipped, to_status: :scheduled2439 is expected to eq true2440 from_status: :manual, to_status: :waiting_for_resource2441 is expected to eq true2442 from_status: :manual, to_status: :preparing2443 is expected to eq true2444 from_status: :manual, to_status: :pending2445 is expected to eq true2446 from_status: :manual, to_status: :running2447 is expected to eq true2448 from_status: :manual, to_status: :failed2449 is expected to eq true2450 from_status: :manual, to_status: :success2451 is expected to eq true2452 from_status: :manual, to_status: :canceled2453 is expected to eq true2454 from_status: :manual, to_status: :skipped2455 is expected to eq true2456 from_status: :manual, to_status: :manual2457 is expected to eq false2458 from_status: :manual, to_status: :scheduled2459 is expected to eq true2460 from_status: :scheduled, to_status: :waiting_for_resource2461 is expected to eq true2462 from_status: :scheduled, to_status: :preparing2463 is expected to eq true2464 from_status: :scheduled, to_status: :pending2465 is expected to eq true2466 from_status: :scheduled, to_status: :running2467 is expected to eq true2468 from_status: :scheduled, to_status: :failed2469 is expected to eq true2470 from_status: :scheduled, to_status: :success2471 is expected to eq true2472 from_status: :scheduled, to_status: :canceled2473 is expected to eq true2474 from_status: :scheduled, to_status: :skipped2475 is expected to eq true2476 from_status: :scheduled, to_status: :manual2477 is expected to eq true2478 from_status: :scheduled, to_status: :scheduled2479 is expected to eq false2480 #update_status2481 when stage objects needs to be updated2482 updates stage status correctly2483 when stage has only created builds2484 updates status to skipped2485 when stage is skipped because of skipped builds2486 updates status to skipped2487 when stage is scheduled because of scheduled builds2488 updates status to scheduled2489 when build is waiting for resource2490 updates status to waiting for resource2491 when stage is skipped because is empty2492 updates status to skipped2493 when stage object is locked2494 retries a lock to update a stage status2495 when statuses status was not recognized2496 raises an exception2497 #detailed_status2498 statuses: ["created"], label: :created2499 has a correct label2500 statuses: ["success"], label: :passed2501 has a correct label2502 statuses: ["pending"], label: :pending2503 has a correct label2504 statuses: ["skipped"], label: :skipped2505 has a correct label2506 statuses: ["canceled"], label: :canceled2507 has a correct label2508 statuses: ["success", "failed"], label: :failed2509 has a correct label2510 statuses: ["running", "pending"], label: :running2511 has a correct label2512 when stage has warnings2513 is passed with warnings2514 #groups2515 groups stage builds by name2516 #delay2517 updates stage status2518 #position2519 when stage has been imported and does not have position index set2520 when stage has statuses2521 recalculates index before updating status2522 when stage has statuses with nil idx2523 sets index to a non-empty value2524 when stage does not have statuses2525 fallbacks to zero2526 when stage has warnings2527 #has_warnings?2528 returns true2529 #number_of_warnings2530 returns a lazy stage warnings counter2531 when stage does not have warnings2532 #has_warnings?2533 returns false2534 behaves like manual playable stage2535 #manual_playable?2536 when is manual2537 is expected to be truthy2538 when is scheduled2539 is expected to be truthy2540 when is skipped2541 is expected to be truthy2542 loose foreign key on ci_stages.project_id2543 behaves like cleanup by a loose foreign key2544 cleans up (delete or nullify) the model2545 partitioning2546 with pipeline2547 copies the partition_id from pipeline2548 when it is already set2549 does not change the partition_id value2550 without pipeline2551 is expected to validate that :partition_id cannot be empty/falsy2552 does not change the partition_id value2553gitlab:seed:group_seed rake task2554 performs group seed successfully2555GroupChildEntity2556 for a project2557 has the correct type2558 includes the star count2559 has the correct edit path2560 includes the last activity at2561 behaves like group child json2562 renders json2563 includes id2564 includes full_name2565 includes avatar_url2566 includes name2567 includes description2568 includes markdown_description2569 includes visibility2570 includes type2571 includes can_edit2572 includes visibility2573 includes permission2574 includes relative_path2575 for a group2576 has the correct type2577 counts projects and subgroups as children2578 includes children_count2579 includes leave_path2580 includes parent_id2581 includes number_users_with_delimiter2582 includes project_count2583 includes subgroup_count2584 allows an owner to leave when there is another one2585 allows an owner to delete the group2586 allows admin to delete the group2587 disallows a maintainer to delete the group2588 has the correct edit path2589 emoji in description2590 has the correct markdown_description2591 behaves like group child json2592 renders json2593 includes id2594 includes full_name2595 includes avatar_url2596 includes name2597 includes description2598 includes markdown_description2599 includes visibility2600 includes type2601 includes can_edit2602 includes visibility2603 includes permission2604 includes relative_path2605 for a private group2606 user is member of the group2607 includes the counts2608 user is not a member of the group2609 does not include the counts2610 user is only a member of a project in the group2611 does not include the counts2612 for a project with external authorization enabled2613 does not hit the external authorization service2614AlertManagement::ProcessPrometheusAlertService2615 #execute2616 when alert payload is valid2617 behaves like processes new firing alert2618 behaves like creates an alert management alert or errors2619 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2620 creates AlertManagement::Alert2621 executes the alert service hooks2622 and fails to save2623 writes a warning to the log2624 behaves like alerts service responds with an error2625 is expected to eq :bad_request2626 behaves like creates expected system notes for alert2627 for new_alert2628 behaves like processes incident issues if enabled2629 is expected to be success2630 with incident setting disabled2631 behaves like does not process incident issues2632 is expected not to receive perform_async(*(any args)) 0 times2633 behaves like sends alert notification emails if enabled2634 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2635 with email setting disabled2636 behaves like does not send alert notification emails2637 is expected not to receive new(*(any args)) 0 times2638 for an existing alert with the same fingerprint2639 which is triggered2640 behaves like adds an alert management alert event2641 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2642 behaves like does not create an alert management alert2643 is expected not to change `AlertManagement::Alert.count`2644 behaves like sends alert notification emails if enabled2645 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2646 with email setting disabled2647 behaves like does not send alert notification emails2648 is expected not to receive new(*(any args)) 0 times2649 behaves like processes incident issues if enabled2650 is expected to be success2651 with issue2652 behaves like does not process incident issues2653 is expected not to receive perform_async(*(any args)) 0 times2654 with incident setting disabled2655 behaves like does not process incident issues2656 is expected not to receive perform_async(*(any args)) 0 times2657 behaves like does not create an alert management alert2658 is expected not to change `AlertManagement::Alert.count`2659 behaves like does not create a system note for alert2660 is expected not to change `Note.count`2661 with an existing resolved alert as well2662 behaves like adds an alert management alert event2663 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2664 behaves like does not create an alert management alert2665 is expected not to change `AlertManagement::Alert.count`2666 behaves like sends alert notification emails if enabled2667 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2668 with email setting disabled2669 behaves like does not send alert notification emails2670 is expected not to receive new(*(any args)) 0 times2671 behaves like processes incident issues if enabled2672 is expected to be success2673 with issue2674 behaves like does not process incident issues2675 is expected not to receive perform_async(*(any args)) 0 times2676 with incident setting disabled2677 behaves like does not process incident issues2678 is expected not to receive perform_async(*(any args)) 0 times2679 behaves like does not create an alert management alert2680 is expected not to change `AlertManagement::Alert.count`2681 behaves like does not create a system note for alert2682 is expected not to change `Note.count`2683 which is acknowledged2684 behaves like adds an alert management alert event2685 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2686 behaves like does not create an alert management alert2687 is expected not to change `AlertManagement::Alert.count`2688 behaves like processes incident issues if enabled2689 is expected to be success2690 with issue2691 behaves like does not process incident issues2692 is expected not to receive perform_async(*(any args)) 0 times2693 with incident setting disabled2694 behaves like does not process incident issues2695 is expected not to receive perform_async(*(any args)) 0 times2696 behaves like does not create an alert management alert2697 is expected not to change `AlertManagement::Alert.count`2698 behaves like does not create a system note for alert2699 is expected not to change `Note.count`2700 behaves like does not send alert notification emails2701 is expected not to receive new(*(any args)) 0 times2702 which is ignored2703 behaves like adds an alert management alert event2704 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2705 behaves like does not create an alert management alert2706 is expected not to change `AlertManagement::Alert.count`2707 behaves like processes incident issues if enabled2708 is expected to be success2709 with issue2710 behaves like does not process incident issues2711 is expected not to receive perform_async(*(any args)) 0 times2712 with incident setting disabled2713 behaves like does not process incident issues2714 is expected not to receive perform_async(*(any args)) 0 times2715 behaves like does not create an alert management alert2716 is expected not to change `AlertManagement::Alert.count`2717 behaves like does not create a system note for alert2718 is expected not to change `Note.count`2719 behaves like does not send alert notification emails2720 is expected not to receive new(*(any args)) 0 times2721 which is resolved2722 behaves like creates an alert management alert or errors2723 is expected to match {:alerts=>(all a kind of AlertManagement::Alert(id: integer, created_at: datetime_with_timezone, updated_at: datetim...hosts: text, payload: jsonb, prometheus_alert_id: integer, environment_id: integer, domain: integer))}2724 creates AlertManagement::Alert2725 executes the alert service hooks2726 and fails to save2727 writes a warning to the log2728 behaves like alerts service responds with an error2729 is expected to eq :bad_request2730 behaves like creates expected system notes for alert2731 for new_alert2732 behaves like processes incident issues if enabled2733 is expected to be success2734 with incident setting disabled2735 behaves like does not process incident issues2736 is expected not to receive perform_async(*(any args)) 0 times2737 behaves like sends alert notification emails if enabled2738 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2739 with email setting disabled2740 behaves like does not send alert notification emails2741 is expected not to receive new(*(any args)) 0 times2742 when another alert is saved at the same time2743 finds the other alert and increments the counter2744 when another alert is saved before the validation runes2745 finds the other alert and increments the counter2746 with resolving payload2747 behaves like processes recovery alert2748 seen for the first time2749 behaves like alerts service responds with an error and takes no actions2750 is expected to eq :bad_request2751 behaves like does not create an alert management alert2752 is expected not to change `AlertManagement::Alert.count`2753 behaves like does not create a system note for alert2754 is expected not to change `Note.count`2755 behaves like does not process incident issues2756 is expected not to receive perform_async(*(any args)) 0 times2757 behaves like does not send alert notification emails2758 is expected not to receive new(*(any args)) 0 times2759 for an existing alert with the same fingerprint2760 which is triggered2761 behaves like resolves an existing alert management alert2762 sets the end time and status2763 behaves like creates expected system notes for alert2764 for recovery_alert, resolve_alert2765 behaves like sends alert notification emails if enabled2766 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2767 with email setting disabled2768 behaves like does not send alert notification emails2769 is expected not to receive new(*(any args)) 0 times2770 behaves like closes related incident if enabled2771 with incident2772 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 12773 without incident2774 is expected not to receive perform_async(*(any args)) 0 times2775 with incident setting disabled2776 behaves like does not close related incident2777 with incident2778 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`2779 without incident2780 is expected not to receive perform_async(*(any args)) 0 times2781 behaves like does not create an alert management alert2782 is expected not to change `AlertManagement::Alert.count`2783 behaves like does not process incident issues2784 is expected not to receive perform_async(*(any args)) 0 times2785 behaves like does not add an alert management alert event2786 is expected not to change `alert.reload.events`2787 which is ignored2788 behaves like resolves an existing alert management alert2789 sets the end time and status2790 behaves like creates expected system notes for alert2791 for recovery_alert, resolve_alert2792 behaves like sends alert notification emails if enabled2793 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2794 with email setting disabled2795 behaves like does not send alert notification emails2796 is expected not to receive new(*(any args)) 0 times2797 behaves like closes related incident if enabled2798 with incident2799 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 12800 without incident2801 is expected not to receive perform_async(*(any args)) 0 times2802 with incident setting disabled2803 behaves like does not close related incident2804 with incident2805 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`2806 without incident2807 is expected not to receive perform_async(*(any args)) 0 times2808 behaves like does not create an alert management alert2809 is expected not to change `AlertManagement::Alert.count`2810 behaves like does not process incident issues2811 is expected not to receive perform_async(*(any args)) 0 times2812 behaves like does not add an alert management alert event2813 is expected not to change `alert.reload.events`2814 which is acknowledged2815 behaves like resolves an existing alert management alert2816 sets the end time and status2817 behaves like creates expected system notes for alert2818 for recovery_alert, resolve_alert2819 behaves like sends alert notification emails if enabled2820 is expected to receive prometheus_alerts_fired(*(any args)) 1 time2821 with email setting disabled2822 behaves like does not send alert notification emails2823 is expected not to receive new(*(any args)) 0 times2824 behaves like closes related incident if enabled2825 with incident2826 is expected to change `alert.issue.reload.closed?` from false to true and change `ResourceStateEvent.count` by 12827 without incident2828 is expected not to receive perform_async(*(any args)) 0 times2829 with incident setting disabled2830 behaves like does not close related incident2831 with incident2832 is expected to not change `alert.issue.reload.state` and not change `ResourceStateEvent.count`2833 without incident2834 is expected not to receive perform_async(*(any args)) 0 times2835 behaves like does not create an alert management alert2836 is expected not to change `AlertManagement::Alert.count`2837 behaves like does not process incident issues2838 is expected not to receive perform_async(*(any args)) 0 times2839 behaves like does not add an alert management alert event2840 is expected not to change `alert.reload.events`2841 which is resolved2842 behaves like alerts service responds with an error and takes no actions2843 is expected to eq :bad_request2844 behaves like does not create an alert management alert2845 is expected not to change `AlertManagement::Alert.count`2846 behaves like does not create a system note for alert2847 is expected not to change `Note.count`2848 behaves like does not process incident issues2849 is expected not to receive perform_async(*(any args)) 0 times2850 behaves like does not send alert notification emails2851 is expected not to receive new(*(any args)) 0 times2852 environment given2853 sets the environment2854 prometheus alert given2855 sets the prometheus alert and environment2856 when alert payload is invalid2857 behaves like alerts service responds with an error and takes no actions2858 is expected to eq :bad_request2859 behaves like does not create an alert management alert2860 is expected not to change `AlertManagement::Alert.count`2861 behaves like does not create a system note for alert2862 is expected not to change `Note.count`2863 behaves like does not process incident issues2864 is expected not to receive perform_async(*(any args)) 0 times2865 behaves like does not send alert notification emails2866 is expected not to receive new(*(any args)) 0 times2867Users::DestroyService2868 Initiates user deletion and deletes all their personal projects2869 no options are given2870 creates GhostUserMigration record to handle migration in a worker2871 will delete the personal project2872 personal projects in pending_delete2873 destroys a personal project in pending_delete2874 solo owned groups present2875 returns the user with attached errors2876 does not delete the user, nor the group2877 deletions with solo owned groups2878 deletes solo owned groups2879 deletions with inherited group owners2880 does not delete the group2881 user personal's repository removal2882 storages2883 legacy storage2884 removes repository2885 hashed storage2886 removes repository2887 repository removal status is taken into account2888 raises exception2889 calls the before/after callbacks2890 of project_members2891 of group_members2892 prometheus metrics2893 scheduled records2894 with a single record2895 updates the scheduled records gauge2896 with approximate count due to large number of records2897 updates the scheduled records gauge2898 lag2899 update the lag gauge2900 Deletion permission checks2901 does not delete the user when user is not an admin2902 allows users to delete their own account2903 allows user to be deleted if skip_authorization: true2904 when admin mode is enabled2905 allows admins to delete anyone2906 when admin mode is disabled2907 disallows admins to delete anyone2908Packages::Npm::PackagePresenter2909 #versions2910 has_dependencies: true, has_metadatum: true2911 is expected to be a kind of Hash2912 is expected to match schema "public_api/v4/packages/npm_package_version"2913 is expected to match schema "public_api/v4/packages/npm_package_version"2914 is expected to be blank2915 avoids N+1 database queries2916 dependencies2917 is expected to be any2918 is expected to equal nil2919 is expected to be any2920 is expected to equal nil2921 is expected to be any2922 is expected to equal nil2923 is expected to be any2924 is expected to equal nil2925 metadatum2926 is expected not to equal nil2927 is expected to equal nil2928 is expected not to equal nil2929 is expected to equal nil2930 is expected not to equal nil2931 is expected to equal nil2932 is expected not to equal nil2933 is expected to equal nil2934 is expected not to equal nil2935 is expected to equal nil2936 is expected not to equal nil2937 is expected to equal nil2938 has_dependencies: false, has_metadatum: true2939 is expected to be a kind of Hash2940 is expected to match schema "public_api/v4/packages/npm_package_version"2941 is expected to match schema "public_api/v4/packages/npm_package_version"2942 is expected to be blank2943 avoids N+1 database queries2944 dependencies2945 is expected to equal nil2946 is expected to equal nil2947 is expected to equal nil2948 is expected to equal nil2949 is expected to equal nil2950 is expected to equal nil2951 is expected to equal nil2952 is expected to equal nil2953 metadatum2954 is expected not to equal nil2955 is expected to equal nil2956 is expected not to equal nil2957 is expected to equal nil2958 is expected not to equal nil2959 is expected to equal nil2960 is expected not to equal nil2961 is expected to equal nil2962 is expected not to equal nil2963 is expected to equal nil2964 is expected not to equal nil2965 is expected to equal nil2966 has_dependencies: true, has_metadatum: false2967 is expected to be a kind of Hash2968 is expected to match schema "public_api/v4/packages/npm_package_version"2969 is expected to match schema "public_api/v4/packages/npm_package_version"2970 is expected to be blank2971 avoids N+1 database queries2972 dependencies2973 is expected to be any2974 is expected to equal nil2975 is expected to be any2976 is expected to equal nil2977 is expected to be any2978 is expected to equal nil2979 is expected to be any2980 is expected to equal nil2981 metadatum2982 is expected to equal nil2983 is expected to equal nil2984 is expected to equal nil2985 is expected to equal nil2986 is expected to equal nil2987 is expected to equal nil2988 is expected to equal nil2989 is expected to equal nil2990 is expected to equal nil2991 is expected to equal nil2992 is expected to equal nil2993 is expected to equal nil2994 has_dependencies: false, has_metadatum: false2995 is expected to be a kind of Hash2996 is expected to match schema "public_api/v4/packages/npm_package_version"2997 is expected to match schema "public_api/v4/packages/npm_package_version"2998 is expected to be blank2999 avoids N+1 database queries3000 dependencies3001 is expected to equal nil3002 is expected to equal nil3003 is expected to equal nil3004 is expected to equal nil3005 is expected to equal nil3006 is expected to equal nil3007 is expected to equal nil3008 is expected to equal nil3009 metadatum3010 is expected to equal nil3011 is expected to equal nil3012 is expected to equal nil3013 is expected to equal nil3014 is expected to equal nil3015 is expected to equal nil3016 is expected to equal nil3017 is expected to equal nil3018 is expected to equal nil3019 is expected to equal nil3020 is expected to equal nil3021 is expected to equal nil3022 with package files pending destruction3023 does not return them3024 #dist_tags3025 for packages without tags3026 is expected to be a kind of Hash3027 is expected to eq "2.0.11"3028 avoids N+1 database queries3029 for packages with tags3030 is expected to be a kind of Hash3031 is expected to eq "2.0.4"3032 is expected to eq "2.0.4"3033 is expected to eq "2.0.6"3034 is expected to eq "2.0.11"3035 is expected to eq "2.0.11"3036 avoids N+1 database queries3037IssuablePolicy3038 #rules3039 when user is author of issuable3040 allows resolving notes3041 does not allow reading internal notes3042 when user is able to read project3043 enables user to read and update issuables3044 Timeline events3045 allows non-members to read time line events3046 disallows reporters from managing timeline events3047 allows developers to manage timeline events3048 when project is private3049 disallows user from reading and updating issuables from that project3050 when user belongs to the projects team3051 enables user to read and update issuables3052 Timeline events3053 disallows non-members from reading timeline events3054 allows guests to read time line events3055 disallows reporters from managing timeline events3056 allows developers to manage timeline events3057 when user is assignee of issuable3058 does not allow reading internal notes3059 when discussion is locked for the issuable3060 when the user is not a project member3061 can not create a note nor award emojis3062 does not allow resolving note3063 when the user is a project member3064 can create a note and award emojis3065 allows resolving notes3066 when user is anonymous3067 does not allow timelogs creation3068 when user is not a member of the project3069 does not allow timelogs creation3070 when user is not a member of the project but the author of the issuable3071 does not allow timelogs creation3072 does not allow reading internal notes3073 when user is a guest member of the project3074 does not allow timelogs creation3075 does not allow reading internal notes3076 when user is a guest member of the project and the author of the issuable3077 does not allow timelogs creation3078 when user is at least reporter of the project3079 allows timelogs creation3080 allows reading internal notes3081 when subject is a Merge Request3082 when can_read_merge_request is false3083 does not allow :read_issuable3084 when can_read_merge_request is true3085 allows :read_issuable3086 when subject is an Issue3087 when can_read_issue is false3088 does not allow :read_issuable3089 when can_read_issue is true3090 allows :read_issuable3091PersonalAccessTokensFinder3092 #execute3093 by current user3094 with no user3095 returns all tokens3096 with admin3097 when admin mode setting is disabled3098 returns all tokens3099 when admin mode setting is enabled3100 when in admin mode3101 returns all tokens3102 when not in admin mode3103 returns no tokens3104 when user can read user personal access tokens3105 returns tokens of user3106 when user can not read user personal access tokens3107 returns no tokens3108 by user3109 by_user: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3110 returns tokens by user3111 by_user: user, expected_tokens: [:active, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation]3112 returns tokens by user3113 by_user: other_user, expected_tokens: [:active_other]3114 returns tokens by user3115 by_user: admin, expected_tokens: []3116 returns tokens by user3117 by users3118 by_users: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3119 returns tokens by users3120 by_users: lazy { [user] }, expected_tokens: [:active, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation]3121 returns tokens by users3122 by_users: lazy { [other_user] }, expected_tokens: [:active_other]3123 returns tokens by users3124 by_users: lazy { [user, other_user] }, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation]3125 returns tokens by users3126 by_users: [], expected_tokens: []3127 returns tokens by users3128 by impersonation3129 by_impersonation: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3130 returns tokens by impersonation3131 by_impersonation: true, expected_tokens: [:active_impersonation, :expired_impersonation, :revoked_impersonation]3132 returns tokens by impersonation3133 by_impersonation: false, expected_tokens: [:active, :active_other, :expired, :revoked, :bot]3134 returns tokens by impersonation3135 by_impersonation: "other", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3136 returns tokens by impersonation3137 by state3138 by_state: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3139 returns tokens by state3140 by_state: "active", expected_tokens: [:active, :active_other, :active_impersonation, :bot]3141 returns tokens by state3142 by_state: "inactive", expected_tokens: [:expired, :revoked, :expired_impersonation, :revoked_impersonation]3143 returns tokens by state3144 by_state: "other", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3145 returns tokens by state3146 by owner type3147 by_owner_type: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3148 returns tokens by owner type3149 by_owner_type: "human", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation]3150 returns tokens by owner type3151 by_owner_type: "other", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3152 returns tokens by owner type3153 by revoked state3154 by_revoked_state: nil, expected_tokens: [:active, :active_other, :expired, :active_impersonation, :expired_impersonation, :bot]3155 returns tokens by revoked state3156 by_revoked_state: true, expected_tokens: [:revoked, :revoked_impersonation]3157 returns tokens by revoked state3158 by_revoked_state: false, expected_tokens: [:active, :active_other, :expired, :active_impersonation, :expired_impersonation, :bot]3159 returns tokens by revoked state3160 by created date3161 by created before3162 by_created_before: Fri, 02 Dec 2022 10:44:21.875395744 UTC +00:00, expected_tokens: []3163 returns tokens by created before3164 by_created_before: Tue, 06 Dec 2022 10:44:21.875546184 UTC +00:00, expected_tokens: [:active_other]3165 returns tokens by created before3166 by_created_before: Sat, 10 Dec 2022 10:44:21.875606344 UTC +00:00, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3167 returns tokens by created before3168 by created after3169 by_created_after: Fri, 02 Dec 2022 10:44:22.600160346 UTC +00:00, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3170 returns tokens by created before3171 by_created_after: Tue, 06 Dec 2022 10:44:23.368056586 UTC +00:00, expected_tokens: [:active, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3172 returns tokens by created before3173 by_created_after: Sat, 10 Dec 2022 10:44:23.368136206 UTC +00:00, expected_tokens: []3174 returns tokens by created before3175 by last used date3176 by last used before3177 by_last_used_before: Fri, 02 Dec 2022 10:44:23.372385286 UTC +00:00, expected_tokens: []3178 returns tokens by last used before3179 by_last_used_before: Tue, 06 Dec 2022 10:44:23.372465186 UTC +00:00, expected_tokens: [:active_other]3180 returns tokens by last used before3181 by_last_used_before: Sat, 10 Dec 2022 10:44:23.372511606 UTC +00:00, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3182 returns tokens by last used before3183 by last used after3184 by_last_used_after: Fri, 02 Dec 2022 10:44:24.174446260 UTC +00:00, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3185 returns tokens by last used after3186 by_last_used_after: Tue, 06 Dec 2022 10:44:24.956288942 UTC +00:00, expected_tokens: [:active, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3187 returns tokens by last used after3188 by_last_used_after: Sat, 10 Dec 2022 10:44:24.956380912 UTC +00:00, expected_tokens: []3189 returns tokens by last used after3190 by search3191 by_search: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3192 returns tokens by search3193 by_search: "my_pat", expected_tokens: [:active, :active_other]3194 returns tokens by search3195 by_search: "other", expected_tokens: []3196 returns tokens by search3197 sort3198 sort: nil, expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3199 returns ordered tokens3200 sort: "id_asc", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3201 returns ordered tokens3202 sort: "id_desc", expected_tokens: [:bot, :revoked_impersonation, :expired_impersonation, :active_impersonation, :revoked, :expired, :active_other, :active]3203 returns ordered tokens3204 sort: "other", expected_tokens: [:active, :active_other, :expired, :revoked, :active_impersonation, :expired_impersonation, :revoked_impersonation, :bot]3205 returns ordered tokens3206 delegates3207 #find_by_id3208 returns token by id3209 #find_by_token3210 returns token by token3211 #find3212 returns token by id3213Ci::BuildDependencies3214 for local dependencies3215 jobs from previous stages3216 when job is in the first stage3217 is expected to be empty3218 when job is in the second stage3219 contains all jobs from the first stage3220 when job is in the last stage3221 contains all jobs from all previous stages3222 when a job is retried3223 contains the retried job instead of the original one3224 when needs refer to jobs from the same stage3225 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2022-12-08 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 51, stage_id: 161, partition_id: 100, tag_list: nil>3226 jobs from specified dependencies3227 when dependencies are defined3228 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2022-12-08 08:53:29.000000000 +0000", created_at: "2022-...processed: false, scheduling_type: "stage", id: 57, stage_id: 163, partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2022-12-08 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 56, stage_id: 164, partition_id: 100, tag_list: nil>3229 when needs are defined3230 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2022-12-08 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 59, stage_id: 165, partition_id: 100, tag_list: nil>, #<Ci::Build status: "success", finished_at: "2022-12-08 08:53:29.000000000 +0000", created_at: "2022-...processed: false, scheduling_type: "stage", id: 62, stage_id: 166, partition_id: 100, tag_list: nil>, and #<Ci::Build status: "pending", finished_at: nil, created_at: "2022-12-08 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 61, stage_id: 167, partition_id: 100, tag_list: nil>3231 when need artifacts are defined3232 is expected to contain exactly #<Ci::Build status: "pending", finished_at: nil, created_at: "2022-12-08 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 64, stage_id: 168, partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2022-12-08 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 66, stage_id: 170, partition_id: 100, tag_list: nil>3233 when needs and dependencies are defined3234 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2022-12-08 08:53:29.000000000 +0000", created_at: "2022-...processed: false, scheduling_type: "stage", id: 72, stage_id: 172, partition_id: 100, tag_list: nil> and #<Ci::Build status: "pending", finished_at: nil, created_at: "2022-12-08 08:50:29.000000000 +0000", u...processed: false, scheduling_type: "stage", id: 71, stage_id: 173, partition_id: 100, tag_list: nil>3235 when needs and dependencies contradict3236 returns only the intersection3237 when nor dependencies or needs are defined3238 returns the jobs from previous stages3239 for cross_pipeline dependencies3240 when dependency specifications are valid3241 when pipeline exists in the hierarchy3242 when job exists3243 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2022-12-08 08:53:29.000000000 +0000", created_at: "2022-...processed: false, scheduling_type: "stage", id: 89, stage_id: 180, partition_id: 100, tag_list: nil>3244 is expected to be valid3245 when pipeline and job are specified via variables3246 is expected to contain exactly #<Ci::Build status: "success", finished_at: "2022-12-08 08:53:29.000000000 +0000", created_at: "2022-...rocessed: false, scheduling_type: "stage", id: 104, stage_id: 188, partition_id: 100, tag_list: nil>3247 is expected to be valid3248 when same job names exist in other pipelines in the hierarchy3249 returns a limited number of dependencies with the right match3250 when job does not exist3251 is expected to be empty3252 is expected not to be valid3253 when pipeline does not exist3254 is expected to be empty3255 is expected not to be valid3256 when jobs exist in different pipelines in the hierarchy3257 when pipeline and jobs dependencies are mismatched3258 is expected to be empty3259 is expected not to be valid3260 when dependencies contain a valid pair3261 filters out the invalid ones3262 is expected not to be valid3263 when job and pipeline exist outside the hierarchy3264 ignores jobs outside the pipeline hierarchy3265 is expected not to be valid3266 when current pipeline is specified3267 ignores jobs from the current pipeline as simple needs should be used instead3268 is expected not to be valid3269 when artifacts:false3270 is expected to be empty3271 is expected to be valid3272 #all3273 returns the union of all local dependencies and any cross project dependencies3274 #valid?3275 is expected to eq true3276 when a local dependency is invalid3277 is expected to eq false3278MergeRequests::ApprovalService3279 #execute3280 with invalid approval3281 does not reset approvals3282 does not track merge request approve action3283 does not publish MergeRequests::ApprovedEvent3284 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated3285 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times3286 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated3287 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times3288 with an already approved MR3289 does not create an approval3290 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated3291 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times3292 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated3293 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times3294 with valid approval3295 resets approvals3296 tracks merge request approve action3297 publishes MergeRequests::ApprovedEvent3298 behaves like triggers GraphQL subscription mergeRequestMergeStatusUpdated3299 is expected to receive merge_request_merge_status_updated(#<MergeRequest id:65 namespace595/project642!1>) 1 time3300 behaves like triggers GraphQL subscription mergeRequestReviewersUpdated3301 is expected to receive merge_request_reviewers_updated(#<MergeRequest id:66 namespace596/project643!1>) 1 time3302 behaves like triggers GraphQL subscription mergeRequestApprovalStateUpdated3303 is expected to receive merge_request_approval_state_updated(#<MergeRequest id:67 namespace597/project644!1>) 1 time3304 user cannot update the merge request3305 does not update approvals3306 behaves like does not trigger GraphQL subscription mergeRequestMergeStatusUpdated3307 is expected not to receive merge_request_merge_status_updated(*(any args)) 0 times3308 behaves like does not trigger GraphQL subscription mergeRequestReviewersUpdated3309 is expected not to receive merge_request_reviewers_updated(*(any args)) 0 times3310 behaves like does not trigger GraphQL subscription mergeRequestApprovalStateUpdated3311 is expected not to receive merge_request_approval_state_updated(*(any args)) 0 times3312Packages::Maven::FindOrCreatePackageService3313 #execute3314 path with version3315 package_exist: true, file_type: :jar, snapshot_version: false, shared_example_name: "reuse existing package"3316 behaves like reuse existing package3317 is expected not to change `Packages::Package.count`3318 returns the existing package3319 package_exist: false, file_type: :jar, snapshot_version: false, shared_example_name: "create package"3320 behaves like create package3321 is expected to change `Packages::Package.count` by 13322 sets the proper name and version3323 with optional attributes3324 behaves like assigns build to package3325 with build info3326 assigns the pipeline to the package3327 behaves like assigns status to package3328 with status param3329 assigns the status to the package3330 package_exist: true, file_type: :jar, snapshot_version: true, shared_example_name: "reuse existing package"3331 behaves like reuse existing package3332 is expected not to change `Packages::Package.count`3333 returns the existing package3334 package_exist: false, file_type: :jar, snapshot_version: true, shared_example_name: "create package"3335 behaves like create package3336 is expected to change `Packages::Package.count` by 13337 sets the proper name and version3338 with optional attributes3339 behaves like assigns build to package3340 with build info3341 assigns the pipeline to the package3342 behaves like assigns status to package3343 with status param3344 assigns the status to the package3345 package_exist: true, file_type: :maven_xml, snapshot_version: true, shared_example_name: "reuse existing package"3346 behaves like reuse existing package3347 is expected not to change `Packages::Package.count`3348 returns the existing package3349 package_exist: false, file_type: :maven_xml, snapshot_version: true, shared_example_name: "create package"3350 behaves like create package3351 is expected to change `Packages::Package.count` by 13352 sets the proper name and version3353 with optional attributes3354 behaves like assigns build to package3355 with build info3356 assigns the pipeline to the package3357 behaves like assigns status to package3358 with status param3359 assigns the status to the package3360 path without version3361 maven-metadata.xml file3362 with existing package3363 behaves like reuse existing package3364 is expected not to change `Packages::Package.count`3365 returns the existing package3366 marked as pending_destruction3367 behaves like create package3368 is expected to change `Packages::Package.count` by 13369 sets the proper name and version3370 with optional attributes3371 behaves like assigns build to package3372 with build info3373 assigns the pipeline to the package3374 behaves like assigns status to package3375 with status param3376 assigns the status to the package3377 without existing package3378 behaves like create package3379 is expected to change `Packages::Package.count` by 13380 sets the proper name and version3381 with optional attributes3382 behaves like assigns build to package3383 with build info3384 assigns the pipeline to the package3385 behaves like assigns status to package3386 with status param3387 assigns the status to the package3388 with a build3389 creates a build_info3390 with multiple files for the same package and the same pipeline3391 creates a single build info3392 when package duplicates are not allowed3393 is expected not to change `project.package_files.count`3394 returns an error3395 when uploading to the versionless package which contains metadata about all versions3396 behaves like reuse existing package3397 is expected not to change `Packages::Package.count`3398 returns the existing package3399 when uploading different non-duplicate files to the same package3400 behaves like reuse existing package3401 is expected not to change `Packages::Package.count`3402 returns the existing package3403 when the package name matches the exception regex3404 behaves like reuse existing package3405 is expected not to change `Packages::Package.count`3406 returns the existing package3407 when the package version matches the exception regex3408 behaves like reuse existing package3409 is expected not to change `Packages::Package.count`3410 returns the existing package3411ProjectSnippetPolicy3412 when project is public3413 with public snippet3414 no user3415 is expected not to be allowed :admin_snippet3416 regular user3417 when user is not a member3418 and is not the snippet author3419 is expected not to be allowed :admin_snippet3420 and is the snippet author3421 behaves like regular user non-member author permissions3422 is expected not to be allowed :admin_snippet3423 when user is a member3424 behaves like regular user member permissions3425 not snippet author3426 member (guest)3427 is expected not to be allowed :admin_snippet3428 member (reporter)3429 is expected not to be allowed :admin_snippet3430 member (developer)3431 is expected not to be allowed :admin_snippet3432 member (maintainer)3433 is expected to be allowed :admin_snippet3434 snippet author3435 member (guest)3436 is expected not to be allowed :admin_snippet3437 member (reporter)3438 is expected to be allowed :admin_snippet3439 member (developer)3440 is expected to be allowed :admin_snippet3441 member (maintainer)3442 is expected to be allowed :admin_snippet3443 external user3444 is expected not to be allowed :admin_snippet3445 when user is a member3446 is expected not to be allowed :admin_snippet3447 with internal snippet3448 no user3449 is expected not to be allowed :admin_snippet3450 regular user3451 when user is not a member3452 and is not the snippet author3453 is expected not to be allowed :admin_snippet3454 and is the snippet author3455 behaves like regular user non-member author permissions3456 is expected not to be allowed :admin_snippet3457 when user is a member3458 behaves like regular user member permissions3459 not snippet author3460 member (guest)3461 is expected not to be allowed :admin_snippet3462 member (reporter)3463 is expected not to be allowed :admin_snippet3464 member (developer)3465 is expected not to be allowed :admin_snippet3466 member (maintainer)3467 is expected to be allowed :admin_snippet3468 snippet author3469 member (guest)3470 is expected not to be allowed :admin_snippet3471 member (reporter)3472 is expected to be allowed :admin_snippet3473 member (developer)3474 is expected to be allowed :admin_snippet3475 member (maintainer)3476 is expected to be allowed :admin_snippet3477 external user3478 is expected not to be allowed :admin_snippet3479 when user is a member3480 is expected not to be allowed :admin_snippet3481 with private snippet3482 no user3483 is expected not to be allowed :admin_snippet3484 regular user3485 when user is not a member3486 and is not the snippet author3487 is expected not to be allowed :admin_snippet3488 and is the snippet author3489 behaves like regular user non-member author permissions3490 is expected not to be allowed :admin_snippet3491 when user is a member3492 behaves like regular user member permissions3493 not snippet author3494 member (guest)3495 is expected not to be allowed :admin_snippet3496 member (reporter)3497 is expected not to be allowed :admin_snippet3498 member (developer)3499 is expected not to be allowed :admin_snippet3500 member (maintainer)3501 is expected to be allowed :admin_snippet3502 snippet author3503 member (guest)3504 is expected not to be allowed :admin_snippet3505 member (reporter)3506 is expected to be allowed :admin_snippet3507 member (developer)3508 is expected to be allowed :admin_snippet3509 member (maintainer)3510 is expected to be allowed :admin_snippet3511 inherited user3512 behaves like regular user member permissions3513 not snippet author3514 member (guest)3515 is expected not to be allowed :admin_snippet3516 member (reporter)3517 is expected not to be allowed :admin_snippet3518 member (developer)3519 is expected not to be allowed :admin_snippet3520 member (maintainer)3521 is expected to be allowed :admin_snippet3522 snippet author3523 member (guest)3524 is expected not to be allowed :admin_snippet3525 member (reporter)3526 is expected to be allowed :admin_snippet3527 member (developer)3528 is expected to be allowed :admin_snippet3529 member (maintainer)3530 is expected to be allowed :admin_snippet3531 external user3532 is expected not to be allowed :admin_snippet3533 when user is a member3534 is expected not to be allowed :admin_snippet3535 admin user3536 when admin mode is enabled3537 is expected to be allowed :admin_snippet3538 when admin mode is disabled3539 is expected not to be allowed :admin_snippet3540 when project is private3541 inherited user3542 behaves like regular user member permissions3543 not snippet author3544 member (guest)3545 is expected not to be allowed :admin_snippet3546 member (reporter)3547 is expected not to be allowed :admin_snippet3548 member (developer)3549 is expected not to be allowed :admin_snippet3550 member (maintainer)3551 is expected to be allowed :admin_snippet3552 snippet author3553 member (guest)3554 is expected not to be allowed :admin_snippet3555 member (reporter)3556 is expected to be allowed :admin_snippet3557 member (developer)3558 is expected to be allowed :admin_snippet3559 member (maintainer)3560 is expected to be allowed :admin_snippet3561Gitlab::GitAccessWiki3562 #push_access_check3563 when user can :create_wiki3564 is expected not to raise Exception3565 when in a read-only GitLab instance3566 behaves like forbidden git access3567 prevents access3568 the user cannot :create_wiki3569 is expected to raise wiki not found3570 #check_download_access!3571 when actor is a user3572 behaves like download wiki access by level3573 project_visibility: 0, project_member?: true, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3574 provides access by level3575 project_visibility: 0, project_member?: true, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :no_error3576 provides access by level3577 project_visibility: 0, project_member?: true, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3578 provides access by level3579 project_visibility: 0, project_member?: true, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3580 provides access by level3581 project_visibility: 0, project_member?: true, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3582 provides access by level3583 project_visibility: 0, project_member?: true, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3584 provides access by level3585 project_visibility: 0, project_member?: false, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :not_found_wiki3586 provides access by level3587 project_visibility: 0, project_member?: false, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :not_found_wiki3588 provides access by level3589 project_visibility: 0, project_member?: false, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :not_found_wiki3590 provides access by level3591 project_visibility: 0, project_member?: false, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3592 provides access by level3593 project_visibility: 0, project_member?: false, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3594 provides access by level3595 project_visibility: 0, project_member?: false, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3596 provides access by level3597 project_visibility: 20, project_member?: true, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3598 provides access by level3599 project_visibility: 20, project_member?: true, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :no_error3600 provides access by level3601 project_visibility: 20, project_member?: true, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3602 provides access by level3603 project_visibility: 20, project_member?: true, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3604 provides access by level3605 project_visibility: 20, project_member?: true, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3606 provides access by level3607 project_visibility: 20, project_member?: true, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3608 provides access by level3609 project_visibility: 20, project_member?: false, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3610 provides access by level3611 project_visibility: 20, project_member?: false, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :forbidden_wiki3612 provides access by level3613 project_visibility: 20, project_member?: false, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3614 provides access by level3615 project_visibility: 20, project_member?: false, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3616 provides access by level3617 project_visibility: 20, project_member?: false, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3618 provides access by level3619 project_visibility: 20, project_member?: false, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3620 provides access by level3621 when the actor is a deploy token3622 when the wiki feature is enabled3623 is expected not to raise Exception3624 when the wiki feature is disabled3625 is expected to raise wiki forbidden3626 when the wiki feature is private3627 is expected to raise wiki forbidden3628 when the actor is a deploy key3629 when the wiki is enabled3630 is expected not to raise Exception3631 when the wiki is disabled3632 is expected to raise wiki forbidden3633 when actor is a user provided by build via CI_JOB_TOKEN3634 behaves like download wiki access by level3635 project_visibility: 0, project_member?: true, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3636 provides access by level3637 project_visibility: 0, project_member?: true, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :no_error3638 provides access by level3639 project_visibility: 0, project_member?: true, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3640 provides access by level3641 project_visibility: 0, project_member?: true, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3642 provides access by level3643 project_visibility: 0, project_member?: true, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3644 provides access by level3645 project_visibility: 0, project_member?: true, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3646 provides access by level3647 project_visibility: 0, project_member?: false, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :not_found_wiki3648 provides access by level3649 project_visibility: 0, project_member?: false, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :not_found_wiki3650 provides access by level3651 project_visibility: 0, project_member?: false, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :not_found_wiki3652 provides access by level3653 project_visibility: 0, project_member?: false, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3654 provides access by level3655 project_visibility: 0, project_member?: false, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3656 provides access by level3657 project_visibility: 0, project_member?: false, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3658 provides access by level3659 project_visibility: 20, project_member?: true, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3660 provides access by level3661 project_visibility: 20, project_member?: true, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :no_error3662 provides access by level3663 project_visibility: 20, project_member?: true, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3664 provides access by level3665 project_visibility: 20, project_member?: true, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3666 provides access by level3667 project_visibility: 20, project_member?: true, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3668 provides access by level3669 project_visibility: 20, project_member?: true, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3670 provides access by level3671 project_visibility: 20, project_member?: false, wiki_access_level: 20, wiki_repo?: true, expected_behavior: :no_error3672 provides access by level3673 project_visibility: 20, project_member?: false, wiki_access_level: 10, wiki_repo?: true, expected_behavior: :forbidden_wiki3674 provides access by level3675 project_visibility: 20, project_member?: false, wiki_access_level: 0, wiki_repo?: true, expected_behavior: :forbidden_wiki3676 provides access by level3677 project_visibility: 20, project_member?: false, wiki_access_level: 20, wiki_repo?: false, expected_behavior: :not_found_wiki3678 provides access by level3679 project_visibility: 20, project_member?: false, wiki_access_level: 0, wiki_repo?: false, expected_behavior: :not_found_wiki3680 provides access by level3681 project_visibility: 20, project_member?: false, wiki_access_level: 10, wiki_repo?: false, expected_behavior: :not_found_wiki3682 provides access by level3683Todos::Destroy::GroupPrivateService3684 #execute3685 when a group set to private3686 removes todos only for users who are not group users3687 with nested groups3688 removes todos only for users who are not group users3689 when group is not private3690 does not remove any todos3691SnippetRepository3692 associations3693 is expected to belong to shard required: false3694 is expected to belong to snippet required: false3695 behaves like shardable scopes3696 .for_repository_storage3697 returns the objects for a given repository storage3698 .excluding_repository_storage3699 returns the objects excluding the given repository storage3700 .for_shard3701 returns the objects for a given shard3702 .find_snippet3703 finds snippet by disk path3704 returns nil when it does not find the snippet3705 #multi_files_action3706 returns nil when files argument is empty3707 returns nil when files argument is nil3708 performs the operation accordingly to the files data3709 tries to obtain an exclusive lease3710 cancels the lease when the method has finished3711 raises an error if the lease cannot be obtained3712 with commit actions3713 infers the commit action based on the parameters if not present3714 when commit actions are present3715 behaves like uses the expected action3716 is expected to receive commit_files(#<User id:1368 @user703>, hash_including(:actions=>"array_including(hash_including(:action=>:foobar))")) 1 time3717 when action is a string3718 behaves like uses the expected action3719 is expected to receive commit_files(#<User id:1368 @user703>, hash_including(:actions=>"array_including(hash_including(:action=>:foobar))")) 1 time3720 when move action does not include content3721 when action is not set3722 behaves like renames file and does not update content3723 is expected to eq "v6.8.0\n\nv6.7.0\n - Add support for Gemnasium as a Project Service (Olivier Gonzalez)\n - Add edi... redesign\n - stability\n - security fixes\n - increased test coverage\n - email notification\n"3724 when action is set3725 behaves like renames file and does not update content3726 is expected to eq "v6.8.0\n\nv6.7.0\n - Add support for Gemnasium as a Project Service (Olivier Gonzalez)\n - Add edi... redesign\n - stability\n - security fixes\n - increased test coverage\n - email notification\n"3727 when update action does not include content3728 when action is not set3729 behaves like does not commit anything3730 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3731 when action is set3732 behaves like does not commit anything3733 is expected to eq "b83d6e391c22777fca1ed3012fce84f633d7fed0"3734 when existing file has a default name3735 reuses the existing file name3736 when file name consists of one or several whitespaces3737 assigns a new name to the file3738 when some files are not named3739 behaves like snippet repository with file names3740 sets a name for unnamed files3741 repository already has 10 unnamed snippets3742 behaves like snippet repository with file names3743 sets a name for unnamed files3744 with git errors3745 behaves like snippet repository with git errors3746 raises a path specific error3747 behaves like snippet repository with git errors3748 raises a path specific error3749 behaves like snippet repository with git errors3750 raises a path specific error3751 behaves like snippet repository with git errors3752 raises a path specific error3753 when user name is invalid3754 behaves like snippet repository with git errors3755 raises a path specific error3756 when user email is empty3757 behaves like snippet repository with git errors3758 raises a path specific error3759Compare3760 #cache_key3761 is expected to include #<Project id:671 namespace669/project716>>3762 is expected to include :compare3763 is expected to include -10017236195928568533764 #start_commit3765 returns raw compare base commit3766 returns nil if compare base commit is nil3767 #commits3768 returns a CommitCollection3769 returns a list of commits3770 #commit3771 returns raw compare head commit3772 returns nil if compare head commit is nil3773 #base_commit_sha3774 returns @base_sha if it is present3775 fetches merge base SHA from repo when @base_sha is nil3776 is memoized on first call3777 returns nil if there is no start_commit3778 returns nil if there is no head commit3779 #diff_refs3780 uses base_commit_sha sha as base_sha3781 uses start_commit sha as start_sha3782 uses commit sha as head sha3783 #modified_paths3784 changes are present3785 returns affected file paths, without duplication3786 changes are absent3787 returns empty array3788Gitlab::ImportExport::Project::Sample::RelationTreeRestorer3789 initializes relation_factory with date_calculator as parameter3790 when relation tree restorer is initialized3791 initializes date calculator with due dates3792 using ndjson reader3793 behaves like import project successfully3794 restores project tree3795 imported project3796 has the project attributes and relations3797 has issues with correctly updated due dates3798 has milestones with correctly updated due dates3799ServerlessDomainFinder3800 #serverless?3801 with a valid URI3802 is expected to be truthy3803 with an invalid URI3804 is expected to be falsy3805 #serverless_domain_cluster_uuid3806 with a valid URI3807 is expected to eq "abcdef12345678"3808 with an invalid URI3809 is expected to be nil3810 #execute3811 with a valid URI3812 has the correct function_name3813 has the correct serverless_domain_cluster3814 has the correct environment3815 with an invalid URI3816 is expected to be nil3817Integrations::Discord3818 behaves like chat integration3819 Associations3820 is expected to belong to project required: false3821 Validations3822 when integration is active3823 is expected to validate that :webhook cannot be empty/falsy3824 behaves like issue tracker integration URL attribute3825 is expected to allow :webhook to be ‹"https://example.com"›3826 is expected not to allow :webhook to be ‹"example.com"›3827 is expected not to allow :webhook to be ‹"ftp://example.com"›3828 is expected not to allow :webhook to be ‹"herp-and-derp"›3829 when integration is inactive3830 is expected not to validate that :webhook cannot be empty/falsy3831 .supported_events3832 does not support deployment_events3833 #execute3834 with push events3835 behaves like triggered Discord notifications integration3836 calls Discord notifications API3837 with default branch3838 when only default branch are to be notified3839 behaves like triggered Discord notifications integration3840 calls Discord notifications API3841 when only protected branches are to be notified3842 behaves like untriggered Discord notifications integration3843 does not call Discord notifications API3844 when default and protected branches are to be notified3845 behaves like triggered Discord notifications integration3846 calls Discord notifications API3847 when all branches are to be notified3848 behaves like triggered Discord notifications integration3849 calls Discord notifications API3850 with protected branch3851 when only default branch are to be notified3852 behaves like untriggered Discord notifications integration3853 does not call Discord notifications API3854 when only protected branches are to be notified3855 behaves like triggered Discord notifications integration3856 calls Discord notifications API3857 when default and protected branches are to be notified3858 behaves like triggered Discord notifications integration3859 calls Discord notifications API3860 when all branches are to be notified3861 behaves like triggered Discord notifications integration3862 calls Discord notifications API3863 with neither default nor protected branch3864 when only default branch are to be notified3865 behaves like untriggered Discord notifications integration3866 does not call Discord notifications API3867 when only protected branches are to be notified3868 behaves like untriggered Discord notifications integration3869 does not call Discord notifications API3870 when default and protected branches are to be notified3871 behaves like untriggered Discord notifications integration3872 does not call Discord notifications API3873 when all branches are to be notified3874 behaves like triggered Discord notifications integration3875 calls Discord notifications API3876 with issue events3877 behaves like triggered Discord notifications integration3878 calls Discord notifications API3879 with merge events3880 behaves like triggered Discord notifications integration3881 calls Discord notifications API3882 with wiki page events3883 behaves like triggered Discord notifications integration3884 calls Discord notifications API3885 with note events3886 with commit comment3887 behaves like triggered Discord notifications integration3888 calls Discord notifications API3889 with merge request comment3890 behaves like triggered Discord notifications integration3891 calls Discord notifications API3892 with issue comment3893 behaves like triggered Discord notifications integration3894 calls Discord notifications API3895 with snippet comment3896 behaves like triggered Discord notifications integration3897 calls Discord notifications API3898 with pipeline events3899 with failed pipeline3900 behaves like triggered Discord notifications integration3901 calls Discord notifications API3902 with succeeded pipeline3903 with default notify_only_broken_pipelines3904 does not call Discord notifications API3905 when notify_only_broken_pipelines is false3906 behaves like triggered Discord notifications integration3907 calls Discord notifications API3908 with default branch3909 when only default branch are to be notified3910 behaves like triggered Discord notifications integration3911 calls Discord notifications API3912 when only protected branches are to be notified3913 behaves like untriggered Discord notifications integration3914 does not call Discord notifications API3915 when default and protected branches are to be notified3916 behaves like triggered Discord notifications integration3917 calls Discord notifications API3918 when all branches are to be notified3919 behaves like triggered Discord notifications integration3920 calls Discord notifications API3921 with protected branch3922 when only default branch are to be notified3923 behaves like untriggered Discord notifications integration3924 does not call Discord notifications API3925 when only protected branches are to be notified3926 behaves like triggered Discord notifications integration3927 calls Discord notifications API3928 when default and protected branches are to be notified3929 behaves like triggered Discord notifications integration3930 calls Discord notifications API3931 when all branches are to be notified3932 behaves like triggered Discord notifications integration3933 calls Discord notifications API3934 with neither default nor protected branch3935 when only default branch are to be notified3936 behaves like untriggered Discord notifications integration3937 does not call Discord notifications API3938 when only protected branches are to be notified3939 behaves like untriggered Discord notifications integration3940 does not call Discord notifications API3941 when default and protected branches are to be notified3942 behaves like untriggered Discord notifications integration3943 does not call Discord notifications API3944 when all branches are to be notified3945 behaves like triggered Discord notifications integration3946 calls Discord notifications API3947 deployment events3948 behaves like untriggered Discord notifications integration3949 does not call Discord notifications API3950 #execute3951 uses the right embed parameters3952 DNS rebind to local address3953 does not allow DNS rebinding3954 when the Discord request fails3955 logs an error and returns false3956Projects::HashedStorage::MigrateRepositoryService3957 #execute3958 works even when project validation fails3959 repository lock3960 tries to lock the repository3961 fails when a git operation is in progress3962 when repository doesnt exist on disk3963 skips the disk change but increase the version3964 when succeeds3965 renames project, wiki and design repositories3966 updates project to be hashed and not read-only3967 move operation is called for all repositories3968 writes project full path to gitaly3969 when exception happens3970 handles OpenSSL::Cipher::CipherError3971 ensures rollback when OpenSSL::Cipher::CipherError3972 handles Gitlab::Git::CommandError3973 ensures rollback when Gitlab::Git::CommandError3974 when one move fails3975 rollsback repositories to original name3976 when rollback fails3977 does not try to move nil repository over existing3978PipelineDetailsEntity3979 inherits from PipelineEntity3980 #as_json3981 when pipeline is empty3982 contains details3983 contains flags3984 when pipeline is retryable3985 user has ability to retry pipeline3986 retryable flag is true3987 user does not have ability to retry pipeline3988 retryable flag is false3989 when pipeline is cancelable3990 user has ability to cancel pipeline3991 cancelable flag is true3992 user does not have ability to cancel pipeline3993 cancelable flag is false3994 when pipeline has commit statuses3995 contains stages3996 when pipeline has YAML errors3997 contains information about error3998 contains flag that indicates there are errors3999 when pipeline does not have YAML errors4000 does not contain field that normally holds an error4001 contains flag that indicates there are no errors4002 when pipeline is triggered by other pipeline4003 contains an information about depedent pipeline4004 when pipeline triggered other pipeline4005 contains an information about dependent pipeline4006npm.gitlab-ci.yml4007 the created pipeline4008 on default branch4009 when package.json has been changed4010 behaves like publish job created4011 creates a pipeline with a single job: publish4012 when package.json does not exist or has not been changed4013 behaves like no pipeline created4014 does not create a pipeline because the only job (publish) is not created4015 when the branch name is v1.0.04016 behaves like publish job created4017 creates a pipeline with a single job: publish4018 when the tag name is v1.0.04019 behaves like publish job created4020 creates a pipeline with a single job: publish4021 when the branch name is v2.1.0-alpha4022 behaves like publish job created4023 creates a pipeline with a single job: publish4024 when the tag name is v2.1.0-alpha4025 behaves like publish job created4026 creates a pipeline with a single job: publish4027 when the branch name is patch-14028 behaves like no pipeline created4029 does not create a pipeline because the only job (publish) is not created4030 when the tag name is patch-14031 behaves like no pipeline created4032 does not create a pipeline because the only job (publish) is not created4033 when the branch name is my-feature-branch4034 behaves like no pipeline created4035 does not create a pipeline because the only job (publish) is not created4036 when the tag name is my-feature-branch4037 behaves like no pipeline created4038 does not create a pipeline because the only job (publish) is not created4039 when the branch name is v14040 behaves like no pipeline created4041 does not create a pipeline because the only job (publish) is not created4042 when the tag name is v14043 behaves like no pipeline created4044 does not create a pipeline because the only job (publish) is not created4045 when the branch name is v1.04046 behaves like no pipeline created4047 does not create a pipeline because the only job (publish) is not created4048 when the tag name is v1.04049 behaves like no pipeline created4050 does not create a pipeline because the only job (publish) is not created4051 when the branch name is 2.1.04052 behaves like no pipeline created4053 does not create a pipeline because the only job (publish) is not created4054 when the tag name is 2.1.04055 behaves like no pipeline created4056 does not create a pipeline because the only job (publish) is not created4057Gitlab::Ci::Pipeline::Expression::Lexeme::NotEquals4058 .build4059 with non-evaluable operands4060 creates a new instance of the token4061 with evaluable operands4062 creates a new instance of the token4063 .type4064 is an operator4065 .precedence4066 has a precedence4067 #evaluate4068 when left and right are equal4069 left_value: "string", right_value: "string"4070 is expected to eq false4071 left_value: 1, right_value: 14072 is expected to eq false4073 left_value: "", right_value: ""4074 is expected to eq false4075 left_value: nil, right_value: nil4076 is expected to eq false4077 when left and right are not equal4078 left_value: "one string", right_value: "two string"4079 is expected to eq true4080 left_value: "one string", right_value: 14081 is expected to eq true4082 left_value: "one string", right_value: 24083 is expected to eq true4084 left_value: "one string", right_value: ""4085 is expected to eq true4086 left_value: "one string", right_value: nil4087 is expected to eq true4088 left_value: "one string", right_value: false4089 is expected to eq true4090 left_value: "one string", right_value: true4091 is expected to eq true4092 left_value: "two string", right_value: "one string"4093 is expected to eq true4094 left_value: "two string", right_value: 14095 is expected to eq true4096 left_value: "two string", right_value: 24097 is expected to eq true4098 left_value: "two string", right_value: ""4099 is expected to eq true4100 left_value: "two string", right_value: nil4101 is expected to eq true4102 left_value: "two string", right_value: false4103 is expected to eq true4104 left_value: "two string", right_value: true4105 is expected to eq true4106 left_value: 1, right_value: "one string"4107 is expected to eq true4108 left_value: 1, right_value: "two string"4109 is expected to eq true4110 left_value: 1, right_value: 24111 is expected to eq true4112 left_value: 1, right_value: ""4113 is expected to eq true4114 left_value: 1, right_value: nil4115 is expected to eq true4116 left_value: 1, right_value: false4117 is expected to eq true4118 left_value: 1, right_value: true4119 is expected to eq true4120 left_value: 2, right_value: "one string"4121 is expected to eq true4122 left_value: 2, right_value: "two string"4123 is expected to eq true4124 left_value: 2, right_value: 14125 is expected to eq true4126 left_value: 2, right_value: ""4127 is expected to eq true4128 left_value: 2, right_value: nil4129 is expected to eq true4130 left_value: 2, right_value: false4131 is expected to eq true4132 left_value: 2, right_value: true4133 is expected to eq true4134 left_value: "", right_value: "one string"4135 is expected to eq true4136 left_value: "", right_value: "two string"4137 is expected to eq true4138 left_value: "", right_value: 14139 is expected to eq true4140 left_value: "", right_value: 24141 is expected to eq true4142 left_value: "", right_value: nil4143 is expected to eq true4144 left_value: "", right_value: false4145 is expected to eq true4146 left_value: "", right_value: true4147 is expected to eq true4148 left_value: nil, right_value: "one string"4149 is expected to eq true4150 left_value: nil, right_value: "two string"4151 is expected to eq true4152 left_value: nil, right_value: 14153 is expected to eq true4154 left_value: nil, right_value: 24155 is expected to eq true4156 left_value: nil, right_value: ""4157 is expected to eq true4158 left_value: nil, right_value: false4159 is expected to eq true4160 left_value: nil, right_value: true4161 is expected to eq true4162 left_value: false, right_value: "one string"4163 is expected to eq true4164 left_value: false, right_value: "two string"4165 is expected to eq true4166 left_value: false, right_value: 14167 is expected to eq true4168 left_value: false, right_value: 24169 is expected to eq true4170 left_value: false, right_value: ""4171 is expected to eq true4172 left_value: false, right_value: nil4173 is expected to eq true4174 left_value: false, right_value: true4175 is expected to eq true4176 left_value: true, right_value: "one string"4177 is expected to eq true4178 left_value: true, right_value: "two string"4179 is expected to eq true4180 left_value: true, right_value: 14181 is expected to eq true4182 left_value: true, right_value: 24183 is expected to eq true4184 left_value: true, right_value: ""4185 is expected to eq true4186 left_value: true, right_value: nil4187 is expected to eq true4188 left_value: true, right_value: false4189 is expected to eq true4190Ci::ResourceGroup4191 behaves like cleanup by a loose foreign key4192 cleans up (delete or nullify) the model4193 validation4194 valids when key includes allowed character4195 invalids when key includes invalid character4196 #ensure_resource4197 creates one resource when resource group is created4198 #assign_resource_to4199 retains resource for the processable4200 when there are no free resources4201 fails to retain resource4202 when the build has already retained a resource4203 fails to retain resource4204 #release_resource_from4205 when the build has already retained a resource4206 releases resource from the build4207 when the build has already released a resource4208 fails to release resource4209 #upcoming_processables4210 when process mode is unordered4211 returns correct jobs in an indeterministic order4212 when process mode is oldest_first4213 returns correct jobs in a specific order4214 when process mode is newest_first4215 returns correct jobs in a specific order4216 when process mode is unknown4217 returns empty4218Ci::JobArtifacts::UpdateUnknownLockedStatusService4219 .execute4220 when artifacts are expired4221 sets artifact_locked when the pipeline is locked4222 destroys the artifact when the pipeline is unlocked4223 does not update ci_job_artifact rows with known locked values4224 logs the counts of affected artifacts4225 in a single iteration4226 due to the LOOP_TIMEOUT4227 affects the earliest expired artifact first4228 reports the number of destroyed artifacts4229 due to @loop_limit4230 affects the most recently expired artifact first4231 reports the number of destroyed artifacts4232 when artifact is not expired4233 does not change the locked status4234 when exclusive lease has already been taken by the other instance4235 raises an error and4236 when there are no unknown status artifacts4237 does not raise error4238 reports the number of destroyed artifacts4239Gitlab::Json4240 .parse4241 is aliased4242 legacy_mode is disabled by default4243 parses an object4244 parses an array4245 parses a string4246 parses a true bool4247 parses a false bool4248 legacy_mode is enabled4249 parses an object4250 parses an array4251 raises an error on a string4252 raises an error on a true bool4253 raises an error on a false bool4254 feature flag is disabled4255 parses an object4256 parses an array4257 parses a string4258 parses a true bool4259 parses a false bool4260 .parse!4261 legacy_mode is disabled by default4262 parses an object4263 parses an array4264 parses a string4265 parses a true bool4266 parses a false bool4267 legacy_mode is enabled4268 parses an object4269 parses an array4270 raises an error on a string4271 raises an error on a true bool4272 raises an error on a false bool4273 feature flag is disabled4274 parses an object4275 parses an array4276 parses a string4277 parses a true bool4278 parses a false bool4279 .dump4280 dumps an object4281 dumps an array4282 dumps a string4283 dumps a true bool4284 dumps a false bool4285 .generate4286 is aliased4287 generates JSON4288 allows you to customise the output4289 .pretty_generate4290 generates pretty JSON4291 allows you to customise the output4292 the feature table is missing4293 skips legacy mode handling4294 the database is missing4295 still parses json4296 still generates json4297 Gitlab::Json::GrapeFormatter4298 generates JSON4299 uses Gitlab::Json4300 precompiled JSON4301 renders the string directly4302 calls #to_s on the object4303 doesn't run the JSON formatter4304 Gitlab::Json::PrecompiledJson4305 #to_s4306 obj is a string4307 returns a string4308 obj is an array4309 returns a string4310 obj is an array of un-stringables4311 raises an error4312 obj is something else4313 raises an error4314 Gitlab::Json::LimitedEncoder4315 when object size is acceptable4316 returns json string4317 when object is too big4318 raises LimitExceeded error4319 when object contains ASCII-8BIT encoding4320 does not raise encoding error4321 Gitlab::Json::RailsEncoder4322 is used by ActiveSupport::JSON4323 is used by .to_json calls4324 is consistent with the original JSON implementation4325 behaves the same when processing invalid unicode data4326Mutations::MergeRequests::SetDraft4327 is expected to require graphql authorizations :update_merge_request4328 #resolve4329 behaves like permission level for merge request mutation is correctly verified4330 when the user is not a project member4331 behaves like when the user does not have access to the resource4332 raises an error4333 even if assigned to the merge request4334 does not modify merge request4335 even if reviewer of the merge request4336 raises an error4337 even if author of the merge request4338 raises an error4339 when the user is a project member4340 with guest role4341 behaves like when the user does not have access to the resource4342 raises an error4343 even if assigned to the merge request4344 does not modify merge request4345 even if reviewer of the merge request4346 raises an error4347 even if author of the merge request4348 raises an error4349 with reporter role4350 behaves like when the user does not have access to the resource4351 raises an error4352 even if assigned to the merge request4353 does not modify merge request4354 even if reviewer of the merge request4355 raises an error4356 even if author of the merge request4357 raises an error4358 when the user can update the merge request4359 returns the merge request as a draft4360 returns errors if/when merge request could not be updated4361 when passing draft as false4362 removes `Draft` from the title4363 does not do anything if the title did not start with draft4364Clusters::KubernetesNamespaceFinder4365 #execute4366 cluster supports separate namespaces per environment4367 no persisted namespace is present4368 is expected to be nil4369 a namespace with an environment is present4370 environment matches4371 is expected to eq #<Clusters::KubernetesNamespace id: 1, cluster_id: 52, project_id: 765, cluster_project_id: nil, crea...t_name: "project811-765-production-service-account", environment_id: 12, service_account_token: nil>4372 project cluster4373 is expected to eq #<Clusters::KubernetesNamespace id: 2, cluster_id: 54, project_id: 766, cluster_project_id: 1, create...t_name: "project812-766-production-service-account", environment_id: 13, service_account_token: nil>4374 service account token is blank4375 is expected to be nil4376 allow_blank_token is true4377 is expected to eq #<Clusters::KubernetesNamespace id: 4, cluster_id: 58, project_id: 768, cluster_project_id: nil, crea...t_name: "project814-768-production-service-account", environment_id: 15, service_account_token: nil>4378 environment does not match4379 is expected to be nil4380 cluster does not support separate namespaces per environment4381 no persisted namespace is present4382 is expected to be nil4383 a legacy namespace with no environment is present4384 is expected to eq #<Clusters::KubernetesNamespace id: 6, cluster_id: 64, project_id: 771, cluster_project_id: nil, crea...ice_account_name: "project817-771-service-account", environment_id: nil, service_account_token: nil>4385 project cluster4386 is expected to eq #<Clusters::KubernetesNamespace id: 7, cluster_id: 66, project_id: 772, cluster_project_id: 2, create...ice_account_name: "project818-772-service-account", environment_id: nil, service_account_token: nil>4387 service account token is blank4388 is expected to be nil4389 allow_blank_token is true4390 is expected to eq #<Clusters::KubernetesNamespace id: 9, cluster_id: 70, project_id: 774, cluster_project_id: nil, crea...ice_account_name: "project820-774-service-account", environment_id: nil, service_account_token: nil>4391Packages::Nuget::ExtractionWorker4392 #perform4393 with valid package file4394 updates package and package file4395 with exisiting package4396 reuses existing package and updates package file4397 with invalid package file id4398 doesn't update package and package file4399 with package file not containing a nuspec file4400 behaves like handling the metadata error4401 updates package status to error4402 with package with an invalid package name4403 behaves like handling the metadata error4404 updates package status to error4405 behaves like handling the metadata error4406 updates package status to error4407 behaves like handling the metadata error4408 updates package status to error4409 behaves like handling the metadata error4410 updates package status to error4411 with package with an invalid package version4412 behaves like handling the metadata error4413 updates package status to error4414 behaves like handling the metadata error4415 updates package status to error4416 behaves like handling the metadata error4417 updates package status to error4418 behaves like handling the metadata error4419 updates package status to error4420 behaves like handling the metadata error4421 updates package status to error4422 behaves like handling the metadata error4423 updates package status to error4424 handles a processing an unaccounted for error4425 behaves like handling the metadata error4426 updates package status to error4427Gitlab::Template::MergeRequestTemplate4428 .all4429 strips the md suffix4430 combines the globals and rest4431 .find4432 returns nil if the file does not exist4433 returns the merge request object of a valid file4434 .by_category4435 return array of templates4436 when repo is bare or empty4437 returns empty array4438 #content4439 loads the full file4440 raises error when file is not found4441 when repo is empty4442 raises file not found4443Gitlab::GithubImport::Representation::IssueEvent4444 .from_api_response4445 behaves like an IssueEvent4446 returns an instance of IssueEvent4447 the returned IssueEvent4448 includes the issue event id4449 includes the issue event "event"4450 includes the issue event commit_id4451 includes the issue event source4452 includes the issue data4453 includes the created timestamp4454 when actor data present4455 includes the actor details4456 when actor data is empty4457 does not return such info4458 when label data is present4459 includes the label_title4460 when label data is empty4461 does not return such info4462 when rename field is present4463 includes the old_title and new_title fields4464 when rename field is empty4465 does not return such info4466 when milestone data is present4467 includes the milestone_title4468 when milestone data is empty4469 does not return such info4470 when assignee data is present4471 includes assignee details4472 when assignee data is empty4473 does not return such info4474 when requested_reviewer and review_requester data is present4475 includes requested_reviewer and review_requester details4476 when requested_reviewer and review_requester data is empty4477 does not return such info4478 #issuable_id4479 returns issuable_id4480 #issuable_type4481 when event related to issue4482 is expected to eq "Issue"4483 when event related to pull request4484 is expected to eq "MergeRequest"4485 #github_identifiers4486 returns a hash with needed identifiers4487 .from_json_hash4488 behaves like an IssueEvent4489 returns an instance of IssueEvent4490 the returned IssueEvent4491 includes the issue event id4492 includes the issue event "event"4493 includes the issue event commit_id4494 includes the issue event source4495 includes the issue data4496 includes the created timestamp4497 when actor data present4498 includes the actor details4499 when actor data is empty4500 does not return such info4501 when label data is present4502 includes the label_title4503 when label data is empty4504 does not return such info4505 when rename field is present4506 includes the old_title and new_title fields4507 when rename field is empty4508 does not return such info4509 when milestone data is present4510 includes the milestone_title4511 when milestone data is empty4512 does not return such info4513 when assignee data is present4514 includes assignee details4515 when assignee data is empty4516 does not return such info4517 when requested_reviewer and review_requester data is present4518 includes requested_reviewer and review_requester details4519 when requested_reviewer and review_requester data is empty4520 does not return such info4521 #issuable_id4522 returns issuable_id4523 #issuable_type4524 when event related to issue4525 is expected to eq "Issue"4526 when event related to pull request4527 is expected to eq "MergeRequest"4528 #github_identifiers4529 returns a hash with needed identifiers4530gettext4531 :compile4532 creates a pot file and invokes the 'gettext:po_to_json' task4533 :regenerate4534 when the locale folder is not found4535 raises an error4536 where there are existing /**/gitlab.po files4537 does not remove that locale4538 when there are locale folders without a gitlab.po file4539 removes those folders4540 when the gitlab.pot file cannot be generated4541 prints an error4542 when gettext:find changes the revision dates4543 resets the changes4544 :lint4545 when all PO files are valid4546Linting po files: |============================================================|4547 completes without error4548 when there are invalid PO files4549Linting po files: |============================================================|4550 raises an error4551 when the .pot file is invalid4552Linting po files: |============================================================|4553 raises an error4554Gitlab::Redis::DuplicateJobs4555 .config_file_name4556 when there is no config file anywhere4557 is expected to be nil4558 but resque.yml exists4559 is expected to eq "/tmp/redis_shared_examples20221208-464-1tdb1ai/config/resque.yml"4560 returns a path that exists4561 and there is a global env override4562 is expected to eq "global override"4563 and there is an instance specific config file4564 is expected to eq "/tmp/redis_shared_examples20221208-464-9wsgbp/config/redis.shared_state.yml"4565 returns a path that exists4566 and there is a specific env override4567 is expected to eq "instance specific override"4568 .store4569 with old format4570 behaves like redis store4571 instantiates Redis::Store4572 with the namespace4573 uses specified namespace4574 with new format4575 behaves like redis store4576 instantiates Redis::Store4577 with the namespace4578 uses specified namespace4579 .params4580 withstands mutation4581 when url contains unix socket reference4582 with old format4583 returns path key instead4584 with new format4585 returns path key instead4586 when url is host based4587 with old format4588 returns hash with host, port, db, and password4589 with new format4590 rails_env: "development", host: "development-host"4591 returns hash with host, port, db, and password4592 rails_env: "test", host: "test-host"4593 returns hash with host, port, db, and password4594 rails_env: "production", host: "production-host"4595 returns hash with host, port, db, and password4596 .url4597 withstands mutation4598 when yml file with env variable4599 reads redis url from env variable4600 .version4601 returns a version4602 ._raw_config4603 is frozen4604 returns false when the file does not exist4605 returns false when the filename can't be determined4606 .with4607 when running on single-threaded runtime4608 instantiates a connection pool with size 54609 when running on multi-threaded runtime4610 instantiates a connection pool with a size based on the concurrency of the worker4611 when there is no config at all4612 can run an empty block4613 #db4614 with old format4615 returns the correct db4616 with new format4617 returns the correct db4618 #sentinels4619 when sentinels are defined4620 rails_env: "development", hosts: ["development-replica1", "development-replica2"]4621 returns an array of hashes with host and port keys4622 rails_env: "test", hosts: ["test-replica1", "test-replica2"]4623 returns an array of hashes with host and port keys4624 rails_env: "production", hosts: ["production-replica1", "production-replica2"]4625 returns an array of hashes with host and port keys4626 when sentinels are not defined4627 returns nil4628 #sentinels?4629 when sentinels are defined4630 returns true4631 when sentinels are not defined4632 returns false4633 #raw_config_hash4634 returns old-style single url config in a hash4635 #fetch_config4636 returns false when no config file is present4637 returns false when config file is present but has invalid YAML4638 has a value for the legacy default URL4639 #pool4640 store connection settings4641 instantiates an instance of MultiStore4642 key namespaces4643 writes keys to SharedState with no prefix, and to Queues with the "resque:gitlab:" prefix4644 behaves like multi store feature flags4645 with feature flag :use_primary_and_secondary_stores_for_duplicate_jobs is enabled4646 multi store is enabled4647 with feature flag :use_primary_and_secondary_stores_for_duplicate_jobs is disabled4648 multi store is disabled4649 with feature flag :use_primary_store_as_default_for_duplicate_jobs is enabled4650 primary store is enabled4651 with feature flag :use_primary_store_as_default_for_duplicate_jobs is disabled4652 primary store is disabled4653 #raw_config_hash4654 has a legacy default URL4655 #store_name4656 returns the name of the SharedState store4657Mutations::Issues::Create4658 is expected to require graphql authorizations :create_issue4659 #resolve4660 when the user does not have permission to create an issue4661 raises an error4662 when the user has exceeded the rate limit4663 raises an error4664 when the user can create an issue4665 when creating an issue a developer4666 creates issue with correct values4667 when passing in label_ids4668 creates issue with correct values4669 when trying to create issue with restricted params4670 ignores the special params4671 when creating a non-default issue type4672 creates issue with correct values4673 when creating an issue as owner4674 sets the special params4675 #ready?4676 when passing in both labels and label_ids4677 raises exception when mutually exclusive params are given4678 when passing only `discussion_to_resolve` param4679 raises exception when mutually exclusive params are given4680 when passing only `merge_request_to_resolve_discussions_of` param4681 raises exception when mutually exclusive params are given4682Files::DeleteService4683 #execute4684 when the file's last commit sha does not match the supplied last_commit_sha4685 returns a hash with the correct error message and a :error status4686 when the file's last commit sha does match the supplied last_commit_sha4687 behaves like successfully deletes the file4688 returns a hash with the :success status4689 deletes the file4690 uses the commit email4691 when the last_commit_sha is not supplied4692 behaves like successfully deletes the file4693 returns a hash with the :success status4694 deletes the file4695 uses the commit email4696Gitlab::Template::IssueTemplate4697 .all4698 strips the md suffix4699 combines the globals and rest4700 .find4701 returns nil if the file does not exist4702 returns the issue object of a valid file4703 .by_category4704 return array of templates4705 when repo is bare or empty4706 returns empty array4707 #content4708 loads the full file4709 raises error when file is not found4710 when repo is empty4711 raises file not found4712ClustersHelper4713 #has_rbac_enabled?4714 when kubernetes platform has been created4715 returns kubernetes platform value4716 when kubernetes platform has not been created yet4717 delegates to cluster provider4718 when ABAC cluster is created4719 delegates to cluster provider4720 #js_clusters_list_data4721 displays endpoint path4722 generates svg image data4723 displays and ancestor_help_path4724 displays empty image path4725 displays add cluster using certificate path4726 displays create cluster path4727 displays project default branch4728 displays project path4729 displays kas address4730 displays GitLab version4731 displays KAS version4732 user has no permissions to create a cluster4733 displays that user can't add cluster4734 user is a maintainer4735 displays that the user can add cluster4736 project cluster4737 doesn't display empty state help text4738 displays display_cluster_agents as true4739 group cluster4740 displays empty state help text4741 displays display_cluster_agents as false4742 does not include a default branch4743 does not include a project path4744 certificate based clusters enabled4745 feature flag is enabled4746 is expected to eq "true"4747 feature flag is disabled4748 is expected to eq "false"4749 #cluster_type_label4750 project cluster4751 is expected to eq "Project cluster"4752 group cluster4753 is expected to eq "Group cluster"4754 instance cluster4755 is expected to eq "Instance cluster"4756 other values4757 diplays generic cluster and reports error4758 #display_cluster_agents?4759 when clusterable is a project4760 allows agents to display4761 when clusterable is a group4762 does not allow agents to display4763 #default_branch_name4764 when clusterable is a project without a repository4765 allows default branch name to display default name from settings4766 when clusterable is a project with a repository4767 allows default branch name to display repository root branch4768 when clusterable is a group4769 does not allow default branch name to display4770Banzai::ReferenceParser::IssueParser4771 #nodes_visible_to_user4772 when the link has a data-issue attribute4773 returns the nodes when the user can read the issue4774 returns an empty Array when the user can not read the issue4775 behaves like referenced feature visibility4776 when feature is disabled4777 does not create reference4778 when feature is enabled only for team members4779 does not create reference for non member4780 creates reference for member4781 when feature is enabled4782 creates reference4783 when the user cannot read cross project4784 returns the nodes when the user can read the issue4785 returns an empty Array when the user can not read the issue4786 when the issue is not cross project4787 does not check `can_read_reference` if the issue is not cross project4788 when the link does not have a data-issue attribute4789 returns an empty Array4790 #referenced_by4791 when the link has a data-issue attribute4792 using an existing issue ID4793 returns an Array of issues4794 returns an empty Array when the list of nodes is empty4795 when issue with given ID does not exist4796 returns an empty Array4797 #records_for_nodes4798 returns a Hash containing the issues for a list of nodes4799 when checking multiple issues on another project4800 behaves like no N+1 queries4801 avoids N+1 queries in #records_for_nodes4802 behaves like no project N+1 queries4803 avoids N+1 queries in #nodes_visible_to_user4804Types::BaseField4805 adds a formatted `deprecated_reason` to the subject4806 appends to the description if given4807 does not append to the description if it is absent4808 adds information about the replacement if provided4809 supports named reasons: renamed4810 supports named reasons: alpha4811 supports :alpha4812 does not allow :alpha and :deprecated together4813 authorized?4814 defaults to true4815 tests the field authorization, if provided4816 tests the field authorization, if provided, when it succeeds4817 only tests the resolver authorization if it authorizes_object?4818 tests the resolver authorization, if provided4819 tests field authorization before resolver authorization, when field auth fails4820 tests field authorization before resolver authorization, when field auth succeeds4821 when considering complexity4822 defaults to 14823 has specified value4824 #base_complexity4825 with no gitaly calls4826 defaults to 14827 with a gitaly call4828 adds 1 to the default value4829 when field has a resolver4830 when a valid complexity is already set4831 uses this complexity4832 and is a connection4833 sets complexity depending on arguments for resolvers4834 sets complexity depending on number load limits for resolvers4835 and is not a connection4836 sets complexity as normal4837 calls_gitaly4838 defaults to false4839 for fields with a resolver4840 adds 1 if true4841 for fields without a resolver4842 adds 1 if true4843 with declared constant complexity value4844 has complexity set to that constant4845 does not raise an error even with Gitaly calls4846 #resolve4847 late_extensions is given4848 registers the late extensions after the regular extensions4849 validations4850 raises an informative error if `deprecation_reason` is used4851 raises an error if a required property is missing4852 raises an error if milestone is not a String4853 visible?4854 defaults to true4855 when subject is deprecated4856 defaults to true4857 returns false if `remove_deprecated` is true in context4858Mutations::Releases::Delete4859 #resolve4860 when the current user has access to create releases4861 deletes the release4862 returns the deleted release4863 does not remove the Git tag associated with the deleted release4864 returns no errors4865 with protected tag4866 when user has access to the protected tag4867 does not have errors4868 when user does not have access to the protected tag4869 has an access error4870 validation4871 when the release does not exist4872 returns the release as nil4873 returns an errors-at-data message4874 when the project does not exist4875 behaves like unauthorized or not found error4876 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error4877 when the current user doesn't have access to update releases4878 when the user is a reporter4879 behaves like unauthorized or not found error4880 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error4881 when the user is a non-project member4882 behaves like unauthorized or not found error4883 raises a Gitlab::Graphql::Errors::ResourceNotAvailable error4884GrafanaIntegration4885 associations4886 is expected to belong to project required: false4887 validations4888 is expected to validate that :project cannot be empty/falsy4889 is expected to validate that :encrypted_token cannot be empty/falsy4890 disallows invalid urls for grafana_url4891 allows valid urls for grafana_url4892 disallows non-booleans in enabled column4893 allows booleans in enabled column4894 .client4895 with grafana integration disabled4896 returns a grafana client4897 with grafana integration enabled4898 returns nil4899 attribute encryption4900 token4901 encrypts original value into encrypted_token attribute4902 locks access to raw value in private method4903 prevents overriding token value with its encrypted or masked version4904 Callbacks4905 before_validation :reset_token4906 when a token was previously set4907 resets token if url changed4908 does not reset token if new url is set together with the same token4909 does not reset token if new url is set together with a new token4910Gitlab::GlRepository::RepoType4911 #<Gitlab::GlRepository::RepoType:0x00007fbae2ca0950>4912 knows its type4913 checks if repository path is valid4914 behaves like a repo type4915 #identifier_for_container4916 is expected to eq "project-832"4917 #path_suffix4918 is expected to eq ""4919 #repository_for4920 finds the repository for the repo type4921 returns nil when container is nil4922 #<Gitlab::GlRepository::RepoType:0x00007fbad9917440>4923 knows its type4924 checks if repository path is valid4925 behaves like a repo type4926 #identifier_for_container4927 is expected to eq "wiki-832"4928 #path_suffix4929 is expected to eq ".wiki"4930 #repository_for4931 finds the repository for the repo type4932 returns nil when container is nil4933 #<Gitlab::GlRepository::RepoType:0x00007fbad9aecd60>4934 when PersonalSnippet4935 knows its type4936 checks if repository path is valid4937 behaves like a repo type4938 #identifier_for_container4939 is expected to eq "snippet-32"4940 #path_suffix4941 is expected to eq ""4942 #repository_for4943 finds the repository for the repo type4944 returns nil when container is nil4945 when ProjectSnippet4946 knows its type4947 checks if repository path is valid4948 behaves like a repo type4949 #identifier_for_container4950 is expected to eq "snippet-33"4951 #path_suffix4952 is expected to eq ""4953 #repository_for4954 finds the repository for the repo type4955 returns nil when container is nil4956 #<Gitlab::GlRepository::RepoType:0x00007fbad9aca210>4957 uses the design access checker4958 knows its type4959 checks if repository path is valid4960 behaves like a repo type4961 #identifier_for_container4962 is expected to eq "design-832"4963 #path_suffix4964 is expected to eq ".design"4965 #repository_for4966 finds the repository for the repo type4967 returns nil when container is nil4968Mutations::DependencyProxy::ImageTtlGroupPolicy::Update4969 is expected to require graphql authorizations :admin_dependency_proxy4970 #resolve4971 with existing dependency proxy image ttl policy4972 user_role: :maintainer, shared_examples_name: "updating the dependency proxy image ttl policy"4973 behaves like updating the dependency proxy image ttl policy4974 behaves like updating the dependency proxy image ttl policy attributes4975 updates the dependency proxy image ttl policy4976 behaves like not creating the dependency proxy image ttl policy4977 doesn't create the dependency proxy image ttl policy4978 behaves like returning a success4979 returns the dependency proxy image ttl group policy with no errors4980 with invalid params4981 doesn't create the dependency proxy image ttl policy4982 does not update4983 returns an error4984 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"4985 behaves like denying access to dependency proxy image ttl policy4986 raises Gitlab::Graphql::Errors::ResourceNotAvailable4987 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"4988 behaves like denying access to dependency proxy image ttl policy4989 raises Gitlab::Graphql::Errors::ResourceNotAvailable4990 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"4991 behaves like denying access to dependency proxy image ttl policy4992 raises Gitlab::Graphql::Errors::ResourceNotAvailable4993 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"4994 behaves like denying access to dependency proxy image ttl policy4995 raises Gitlab::Graphql::Errors::ResourceNotAvailable4996 without existing dependency proxy image ttl policy4997 user_role: :maintainer, shared_examples_name: "creating the dependency proxy image ttl policy"4998 behaves like creating the dependency proxy image ttl policy4999 creates a new package setting5000 saves the settings5001 behaves like returning a success5002 returns the dependency proxy image ttl group policy with no errors5003 user_role: :developer, shared_examples_name: "denying access to dependency proxy image ttl policy"5004 behaves like denying access to dependency proxy image ttl policy5005 raises Gitlab::Graphql::Errors::ResourceNotAvailable5006 user_role: :reporter, shared_examples_name: "denying access to dependency proxy image ttl policy"5007 behaves like denying access to dependency proxy image ttl policy5008 raises Gitlab::Graphql::Errors::ResourceNotAvailable5009 user_role: :guest, shared_examples_name: "denying access to dependency proxy image ttl policy"5010 behaves like denying access to dependency proxy image ttl policy5011 raises Gitlab::Graphql::Errors::ResourceNotAvailable5012 user_role: :anonymous, shared_examples_name: "denying access to dependency proxy image ttl policy"5013 behaves like denying access to dependency proxy image ttl policy5014 raises Gitlab::Graphql::Errors::ResourceNotAvailable5015Ci::PipelinesHelper5016 pipeline_warnings5017 when pipeline has no warnings5018 is empty5019 when pipeline has warnings5020 returns a warning callout box5021 lists the the warnings5022 warning_header5023 when warnings are more than max cap5024 returns 30 warning(s) found: showing first 255025 when warnings are less than max cap5026 returns 15 warning(s) found5027 has_gitlab_ci?5028 builds_enabled?: true, has_ci?: true, result: true5029 is expected to eq true5030 builds_enabled?: true, has_ci?: false, result: false5031 is expected to eq false5032 builds_enabled?: false, has_ci?: true, result: false5033 is expected to eq false5034 builds_enabled?: false, has_ci?: false, result: false5035 is expected to eq false5036 has_pipeline_badges?5037 when pipeline has a badge5038 shows pipeline badges5039 when pipeline has no badges5040 shows pipeline badges5041 #pipelines_list_data5042 has the expected keys5043 the `any_runners_available` attribute5044 when the `runners_availability_section` experiment variant is control5045 is expected to be nil5046 when the `runners_availability_section` experiment variant is candidate5047 when there are no runners5048 is expected to eq "false"5049 when there are runners5050 is expected to eq "true"5051 when the project is eligible for the `ios_specific_templates` experiment5052 the `registration_token` attribute5053 when the `ios_specific_templates` experiment variant is control5054 is expected to be nil5055 when the `ios_specific_templates` experiment variant is candidate5056 when the user cannot register project runners5057 is expected to be nil5058 when the user can register project runners5059 is expected to eq "GR1348941NiWR7sCwwKmzxzsu3bfD"5060 the `ios_runners_available` attribute5061 when the `ios_specific_templates` experiment variant is control5062 is expected to be nil5063 when the `ios_specific_templates` experiment variant is candidate5064 when shared runners are not enabled5065 is expected to eq "false"5066 when shared runners are enabled5067 is expected to eq "true"5068Projects::DeployTokens::CreateService5069 behaves like a deploy token creation service5070 #execute5071 when the deploy token is valid5072 creates a new DeployToken5073 creates a new ProjectDeployToken5074 returns a DeployToken5075 sets the creator_id as the id of the current_user5076 when expires at date is not passed5077 sets Forever.date5078 when username is empty string5079 converts it to nil5080 when username is provided5081 keeps the provided username5082 when the deploy token is invalid5083 does not create a new DeployToken5084 does not create a new ProjectDeployToken5085Gitlab::Memory::Reporter5086 # order random5087 #run_report5088 when reports path is specified directly5089 behaves like runs and stores reports5090 runs the given report and returns true5091 closes read and write streams5092 logs start and finish event5093 increments Prometheus duration counter5094 when the report returns invalid file path5095 logs `0` as `perf_report_size_bytes`5096 when an error occurs5097 logs the error and returns false5098 closes read and write streams5099 when compression process is still running5100 terminates the process5101 when a report is disabled5102 does nothing and returns false5103 when reports path is specified via environment5104 behaves like runs and stores reports5105 runs the given report and returns true5106 closes read and write streams5107 logs start and finish event5108 increments Prometheus duration counter5109 when the report returns invalid file path5110 logs `0` as `perf_report_size_bytes`5111 when an error occurs5112 logs the error and returns false5113 closes read and write streams5114 when compression process is still running5115 terminates the process5116 when a report is disabled5117 does nothing and returns false5118 when reports path is not specified5119 defaults to a temporary location5120 behaves like runs and stores reports5121 runs the given report and returns true5122 closes read and write streams5123 logs start and finish event5124 increments Prometheus duration counter5125 when the report returns invalid file path5126 logs `0` as `perf_report_size_bytes`5127 when an error occurs5128 logs the error and returns false5129 closes read and write streams5130 when compression process is still running5131 terminates the process5132 when a report is disabled5133 does nothing and returns false5134Gitlab::SidekiqDaemon::MemoryKiller5135 #run_thread5136 not invoke restart_sidekiq when rss in range5137 invoke restart_sidekiq when rss not in range5138 when structured logging is used5139 logs start message once5140 logs StandardError message twice5141 logs exception message once and raise exception and log stop message5142 logs stop message once5143 #stop_working5144 changes enable? to false5145 #rss_within_range?5146 return true when everything is within limit5147 return false when rss exceeds hard_limit_rss5148 return false when rss exceed hard_limit_rss after a while5149 return true when rss below soft_limit_rss after a while within GRACE_BALLOON_SECONDS5150 when exceeds GRACE_BALLOON_SECONDS5151 return false when rss exceed soft_limit_rss5152 #restart_sidekiq5153 when sidekiq_memory_killer_read_only_mode is enabled5154 does not send signal5155 when sidekiq_memory_killer_read_only_mode is disabled5156 send signal5157 #signal_and_wait5158 send signal and return when all jobs finished5159 send signal and wait till deadline if any job not finished5160 #signal_pgroup5161 send signal to this process if it is not group leader5162 send signal to whole process group as group leader5163 #log_rss_out_of_range5164 invoke sidekiq logger warn5165 #out_of_range_description5166 when rss > hard_limit5167 tells reason5168 when rss <= hard_limit5169 deadline exceeded5170 tells reason5171 deadline not exceeded5172 tells reason5173 #rss_increase_by_jobs5174 adds up individual rss_increase_by_job5175 return 0 if no job5176 #rss_increase_by_job5177 return 0 if memory_growth_kb return 05178 return time factored growth value when it does not exceed max growth limit for whilited job5179 return max growth limit when time factored growth value exceed max growth limit for whilited job5180 #get_job_options5181 return default if key is not defined5182 return default if get StandardError when retrieve sidekiq_options5183 return right value if sidekiq_options has the key5184 #refresh_state5185 calls gitlab metrics gauge set methods5186rest-client dns rebinding protection5187 behaves like a request using Gitlab::UrlBlocker5188 when local requests are not allowed5189 allows an external request with http5190 allows an external request with https5191 raises error when it is a request that resolves to a local address5192 raises error when it is a request that resolves to a localhost address5193 raises error when it is a request to local address5194 raises error when it is a request to localhost address5195 when port different from URL scheme is used5196 allows the request5197 raises error when it is a request to local address5198 raises error when it is a request to localhost address5199 when DNS rebinding protection is disabled5200 allows the request5201 when http(s) proxy environment variable is set5202 allows the request5203 when local requests are allowed5204 allows an external request5205 allows an external request that resolves to a local address5206 allows an external request that resolves to a localhost address5207 allows a local address request5208 allows a localhost address request5209 when a non HTTP/HTTPS URL is provided5210 raises an error5211WorkItems::Type5212 modules5213 is expected to includes the CacheMarkdownField module5214 associations5215 is expected to have many work_items5216 is expected to belong to namespace required: false5217 scopes5218 order_by_name_asc5219 is expected to match ["atype", "gtype", "Ztype"]5220 #destroy5221 does not delete type when there are related issues5222 when there are no work items of that type5223 deletes type but not unrelated issues5224 validation5225 is expected not to allow :icon_name to be ‹"ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"›5226 name uniqueness5227 is expected to validate that :name is case-insensitively unique within the scope of :namespace_id5228 .available_widgets5229 returns list of all possible widgets5230 .default_by_type5231 returns default work item type by base type without calling importer5232 when default types are missing5233 creates types and restrictions and returns default work item type by base type5234 #default?5235 when namespace is nil5236 is expected to be truthy5237 when namespace is present5238 is expected to be falsey5239 #name5240 strips name5241Banzai::Filter::UploadLinkFilter5242 preserves original url in data-canonical-src attribute5243 to a project upload5244 rebuilds relative URL for a link5245 rebuilds relative URL for an image5246 does not modify absolute URL5247 supports unescaped Unicode filenames5248 supports escaped Unicode filenames5249 with an absolute URL5250 rewrites the link correctly5251 to a group upload5252 rewrites the link correctly5253 rewrites the link correctly for subgroup5254 does not modify absolute URL5255 with an absolute URL5256 rewrites the link correctly5257 to a personal snippet5258 rewrites the link correctly5259 does not modify absolute URL5260 with an absolute URL5261 rewrites the link correctly5262 with a relative URL root5263 rewrites the link correctly5264 with an absolute URL5265 rewrites the link correctly5266 invalid input5267 name: "invalid URI", href: "://foo"5268 is expected not to raise Exception5269 name: "invalid UTF-8 byte sequences", href: "%FF"5270 is expected not to raise Exception5271 name: "garbled path", href: "open(/var/tmp/):%20/location%0Afrom:%20/test"5272 is expected not to raise Exception5273 name: "whitespace", href: "d18213acd3732630991986120e167e3d/Landscape_8.jpg\nand more"5274 is expected not to raise Exception5275 name: "null byte", href: "%00"5276 is expected not to raise Exception5277TasksToBeDone::CreateWorker5278 is labeled as idempotent5279 performs multiple times sequentially without raising an exception5280 creates 3 task issues5281 .perform5282 executes the task services for all tasks to be done5283Gitlab::Ci::Ansi2json5284 lines5285 prints non-ansi as-is5286 recognizes color changing ANSI sequences5287 recognizes color changing ANSI sequences across multiple lines5288 recognizes background and foreground colors5289 recognizes style changes within the same line5290 new lines5291 adds new line when encountering \n5292 adds new line when encountering \r\n5293 ignores empty newlines5294 replace the current line when encountering \r5295 with section markers5296 marks the first line of the section as header5297 does not marks the other lines of the section as header5298 marks the last line of the section as footer5299 marks the first line as header and footer if is the only line in the section5300 does not add sections attribute to lines after the section is closed5301 ignores section_end marker if no section_start exists5302 prints HTML tags as is5303 when section name contains .-_ and capital letters5304 sanitizes the section name5305 when section name includes $5306 ignores the section5307 when section name includes <5308 ignores the section5309 with nested section5310 adds multiple sections to the lines inside the nested section5311 adds multiple sections to the lines inside the nested section and closes all sections together5312 with section options5313 provides section options when set5314 incremental updates5315 with split word5316 returns the full line5317 with split word on second line5318 returns all lines since last partially processed line5319 with split sequence across multiple lines5320 returns the line since last partially processed line5321 with split partial sequence5322 returns the line since last partially processed line5323 with split new line5324 returns a blank line and the next line5325 with split section5326 with split section body5327 returns the full line5328 with split section where header is also split5329 returns the full line5330 with split section end5331 returns the full line5332 trucates5333 returns truncated output5334 does not append output5335Types::TodoType5336 has the correct fields5337 is expected to require graphql authorizations :read_todo5338 project field5339 when the project is public5340 when the user does not have access5341 returns the project5342 when the project is not public5343 when the user does not have access5344 returns null5345 when the user does have access5346 returns the project5347 group field5348 when the group is public5349 when the user does not have access5350 returns the group5351 when the group is not public5352 when the user does not have access5353 returns null5354 when the user does have access5355 returns the group5356SnippetInputAction5357 validations5358 action: :create, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5359 is expected to equal true5360 action: :move, file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5361 is expected to equal true5362 action: :delete, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5363 is expected to equal true5364 action: :update, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5365 is expected to equal true5366 action: :foo, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5367 is expected to include :action5368 action: "create", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5369 is expected to equal true5370 action: "move", file_path: "foobar", content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5371 is expected to equal true5372 action: "delete", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5373 is expected to equal true5374 action: "update", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5375 is expected to equal true5376 action: "foo", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5377 is expected to include :action5378 action: nil, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5379 is expected to include :action5380 action: "", file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :action5381 is expected to include :action5382 action: :move, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: false, invalid_field: :previous_path5383 is expected to include :previous_path5384 action: :move, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: false, invalid_field: :previous_path5385 is expected to include :previous_path5386 action: :move, file_path: "foobar", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5387 is expected to include :file_path5388 action: :move, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5389 is expected to equal true5390 action: :move, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5391 is expected to equal true5392 action: :move, file_path: nil, content: "foobar", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5393 is expected to equal true5394 action: :move, file_path: "foobar", content: nil, previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5395 is expected to equal true5396 action: :move, file_path: "foobar", content: "", previous_path: "foo1", allowed_actions: nil, is_valid: true, invalid_field: nil5397 is expected to equal true5398 action: :create, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5399 is expected to include :content5400 action: :create, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5401 is expected to include :content5402 action: :create, file_path: nil, content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5403 is expected to equal true5404 action: :create, file_path: "", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: true, invalid_field: nil5405 is expected to equal true5406 action: :update, file_path: "foobar", content: nil, previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5407 is expected to include :content5408 action: :update, file_path: "foobar", content: "", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :content5409 is expected to include :content5410 action: :update, file_path: "other", content: "foobar", previous_path: "foobar", allowed_actions: nil, is_valid: false, invalid_field: :file_path5411 is expected to include :file_path5412 action: :update, file_path: "foobar", content: "foobar", previous_path: nil, allowed_actions: nil, is_valid: true, invalid_field: nil5413 is expected to equal true5414 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: nil, is_valid: true, invalid_field: nil5415 is expected to equal true5416 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :update, is_valid: true, invalid_field: nil5417 is expected to equal true5418 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "update", is_valid: true, invalid_field: nil5419 is expected to equal true5420 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update], is_valid: true, invalid_field: nil5421 is expected to equal true5422 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:update, :create], is_valid: true, invalid_field: nil5423 is expected to equal true5424 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :create, is_valid: false, invalid_field: :action5425 is expected to include :action5426 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: "create", is_valid: false, invalid_field: :action5427 is expected to include :action5428 action: :update, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: [:create], is_valid: false, invalid_field: :action5429 is expected to include :action5430 action: :foo, file_path: "foobar", content: "foobar", previous_path: "", allowed_actions: :foo, is_valid: false, invalid_field: :action5431 is expected to include :action5432 #to_commit_action5433 transforms attributes to commit action5434 action is update5435 when previous_path is present5436 returns the existing previous_path5437 when previous_path is not present5438 assigns the file_path to the previous_path5439WebIdeTerminalEntity5440 is expected to have key :id5441 is expected to have key :status5442 is expected to have key :show_path5443 is expected to have key :cancel_path5444 is expected to have key :retry_path5445 is expected to have key :terminal_path5446 is expected to have key :services5447 is expected to have key :proxy_websocket_path5448 when feature flag build_service_proxy is disabled5449 is expected not to have key :proxy_websocket_path5450Gitlab::ErrorTracking::Processor::SidekiqProcessor5451 .filter_arguments5452 returns a lazy enumerator5453 arguments filtering5454 klass: "UnknownWorker", expected: [1, "[FILTERED]", "[FILTERED]", "[FILTERED]"]5455 is expected to eq [1, "[FILTERED]", "[FILTERED]", "[FILTERED]"]5456 klass: "NoPermittedArguments", expected: [1, "[FILTERED]", "[FILTERED]", "[FILTERED]"]5457 is expected to eq [1, "[FILTERED]", "[FILTERED]", "[FILTERED]"]5458 klass: "OnePermittedArgument", expected: [1, "string", "[FILTERED]", "[FILTERED]"]5459 is expected to eq [1, "string", "[FILTERED]", "[FILTERED]"]5460 klass: "AllPermittedArguments", expected: [1, "string", [1, 2], {:a=>1}]5461 is expected to eq [1, "string", [1, 2], {:a=>1}]5462 .permitted_arguments_for_worker5463 returns the loggable_arguments for a worker class as a set5464 returns an empty set when the worker class does not exist5465 returns an empty set when the worker class does not respond to loggable_arguments5466 returns an empty set when loggable_arguments cannot be converted to a set5467 memoizes the results5468 .loggable_arguments5469 filters and limits the arguments, then converts to strings5470 .call5471 when there is Sidekiq data5472 when processing via the default error handler5473 with Raven events5474 for an unknown worker5475 only allows numeric arguments for an unknown worker5476 for a permitted worker5477 allows all argument types for a permitted worker5478 with Sentry events5479 for an unknown worker5480 only allows numeric arguments for an unknown worker5481 for a permitted worker5482 allows all argument types for a permitted worker5483 when processing via Gitlab::ErrorTracking5484 with Raven events5485 for an unknown worker5486 only allows numeric arguments for an unknown worker5487 for a permitted worker5488 allows all argument types for a permitted worker5489 with Sentry events5490 for an unknown worker5491 only allows numeric arguments for an unknown worker5492 for a permitted worker5493 allows all argument types for a permitted worker5494 with Raven events5495 behaves like handles jobstr fields5496 when a jobstr field is present5497 removes the jobstr5498 when no jobstr value is present5499 does nothing5500 with Sentry events5501 behaves like handles jobstr fields5502 when a jobstr field is present5503 removes the jobstr5504 when no jobstr value is present5505 does nothing5506 when there is no Sidekiq data5507 with Raven events5508 behaves like does nothing5509 does nothing5510 with Sentry events5511 behaves like does nothing5512 does nothing5513 when there is Sidekiq data but no job5514 with Raven events5515 behaves like does nothing5516 does nothing5517 with Sentry events5518 behaves like does nothing5519 does nothing5520Gitlab::ImportExport::Group::RelationTreeRestorer5521 restores group tree5522 logs top-level relation creation5523Ci::BuildsHelper5524 #build_summary5525 when build has no trace5526 when skip is false5527 returns no job log5528 when skip is true5529 returns no job log5530 when build has trace5531 when skip is true5532 returns link to logs5533 when skip is false5534 returns log lines5535 #sidebar_build_class5536 build_id: 1, current_build_id: 1, retried: true, expected_result: "active retried"5537 builds sidebar html class5538 build_id: 1, current_build_id: 1, retried: false, expected_result: "active"5539 builds sidebar html class5540 build_id: 1, current_build_id: 2, retried: false, expected_result: ""5541 builds sidebar html class5542 build_id: 1, current_build_id: 2, retried: true, expected_result: "retried"5543 builds sidebar html class5544 #javascript_build_options5545 returns build options5546 #build_failed_issue_options5547 returns failed title and description5548 #prepare_failed_jobs_summary_data5549 returns array of failed jobs with id, failure and failure summary5550Deployments::UpdateService5551 #execute5552 can update the status to running5553 can update the status to success5554 can update the status to failed5555 can update the status to canceled5556 does not change the state if the status is invalid5557 links merge requests when changing the status to success5558MergeRequestMergeabilityCheckWorker5559 #perform5560 when merge request does not exist5561 does not execute MergeabilityCheckService5562 when merge request exists5563 executes MergeabilityCheckService5564 structurally logs a failed mergeability check5565 behaves like an idempotent worker5566 is labeled as idempotent5567 performs multiple times sequentially without raising an exception5568 is mergeable5569Gitaly::Server5570 is expected to respond to #server_version5571 is expected to respond to #git_binary_version5572 is expected to respond to #up_to_date?5573 is expected to respond to #address5574 is expected to respond to #replication_factor5575 .all5576 includes all storages5577 readable?5578 when the storage is readable5579 returns true5580 when the storage is not readable5581 returns false5582 writeable?5583 when the storage is writeable5584 returns true5585 when the storage is not writeable5586 returns false5587 #filesystem_type5588 is expected to be present5589 request memoization5590 when requesting multiple properties5591 uses memoization for the info request5592 when examining disk statistics for a given server5593 #disk_available5594 is expected to be present5595 returns disk available for the storage of the instantiated server5596 #disk_used5597 is expected to be present5598 returns disk used for the storage of the instantiated server5599 #disk_stats5600 is expected to be present5601 returns the storage of the instantiated server5602 #expected_version?5603 expected_version: "1.1.1", server_version: "1.1.1", result: true5604 is expected to eq true5605 expected_version: "1.1.2", server_version: "1.1.1", result: false5606 is expected to eq false5607 expected_version: "1.73.0", server_version: "1.73.0-18-gf756ebe2", result: false5608 is expected to eq false5609 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-45-g594c3ea3", result: true5610 is expected to eq true5611 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-46-gabc123ff", result: false5612 is expected to eq false5613 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6", result: false5614 is expected to eq false5615 replication_factor5616 when examining for a given server5617 is expected to eq 25618Gitlab::GithubImport::Importer::SingleEndpointIssueNotesImporter5619 is expected to includes the Gitlab::GithubImport::ParallelScheduling module5620 is expected to includes the Gitlab::GithubImport::SingleEndpointNotesImporting module5621 is expected to eq Gitlab::GithubImport::Representation::Note5622 is expected to eq Gitlab::GithubImport::Importer::NoteImporter5623 is expected to eq :issue_comments5624 is expected to eq :note5625 is expected to eq 15626 #each_object_to_import5627 fetches data5628 skips cached pages5629 skips cached merge requests5630Gitlab::WebHooks::RateLimiter5631 #rate_limit!5632 when there is no plan limit5633 hook: project_hook5634 behaves like a hook that is never rate limited5635 is expected to eq false5636 hook: system_hook5637 behaves like a hook that is never rate limited5638 is expected to eq false5639 hook: integration_hook5640 behaves like a hook that is never rate limited5641 is expected to eq false5642 when there is a plan limit5643 hook: project_hook, limitless_hook_type: false5644 rate limits the hook, returning true when rate limited5645 hook: system_hook, limitless_hook_type: true5646 behaves like a hook that is never rate limited5647 is expected to eq false5648 hook: integration_hook, limitless_hook_type: true5649 behaves like a hook that is never rate limited5650 is expected to eq false5651 rate limit scope5652 rate limits all hooks from the same namespace5653 #rate_limited?5654 when no plan limit has been defined5655 hook: project_hook5656 is expected to eq false5657 hook: system_hook5658 is expected to eq false5659 hook: integration_hook5660 is expected to eq false5661 when there is a plan limit5662 when hook is not rate-limited5663 hook: project_hook5664 is expected to eq false5665 hook: system_hook5666 is expected to eq false5667 hook: integration_hook5668 is expected to eq false5669 when hook is rate-limited5670 hook: project_hook, limitless_hook_type: false5671 is expected to eq true5672 hook: system_hook, limitless_hook_type: true5673 is expected to eq false5674 hook: integration_hook, limitless_hook_type: true5675 is expected to eq false5676Gitlab::Ci::Config::Entry::Include5677 validations5678 when value is a string5679 is expected to be valid5680 when value is hash5681 when using not allowed keys5682 is expected not to be valid5683 when using "local"5684 is expected to be valid5685 when using "file"5686 is expected to be valid5687 when using "template"5688 is expected to be valid5689 when using "artifact"5690 and specifying "job"5691 is expected to be valid5692 without "job"5693 is expected not to be valid5694 has specific error5695 when using "project"5696 and specifying "ref" and "file"5697 is expected to be valid5698 without "ref"5699 is expected to be valid5700 without "file"5701 is expected not to be valid5702 has specific error5703 when using with "rules"5704 is expected to be valid5705 when rules is not an array of hashes5706 is expected not to be valid5707 has specific error5708 when value is something else5709 is expected not to be valid5710 #value5711 when config is a string5712 is expected to eq "test.yml"5713 when config is a hash5714 is expected to eq {:local=>"test.yml"}5715 when config has "rules"5716 is expected to eq {:local=>"test.yml", :rules=>[{:if=>"$VARIABLE"}]}5717Gitlab::Ci::Status::Stage::PlayManual5718 #action_icon5719 is expected to eq "play"5720 #action_button_title5721 is expected to eq "Play all manual"5722 #action_title5723 is expected to eq "Play all manual"5724 #action_path5725 is expected to eq "/namespace908/project949/-/pipelines/142/stages/test/play_manual"5726 #action_method5727 is expected to eq :post5728 .matches?5729 when stage is skipped5730 is expected to be truthy5731 when stage is manual5732 is expected to be truthy5733 when stage is scheduled5734 is expected to be truthy5735 when stage is success5736 and does not have manual builds5737 is expected to be falsy5738Gitlab::Auth::UserAccessDeniedReason5739 #rejection_message5740 when a user is blocked5741 is expected to match /blocked/5742 a user did not accept the enforced terms5743 is expected to match /must accept the Terms of Service/5744 is expected to include "user858"5745 is expected to include "http://localhost"5746 when the user is internal5747 is expected to match /This action cannot be performed by internal users/5748 when the user is deactivated5749 is expected to eq "Your account has been deactivated by your administrator. Please log back in from a web browser to reactivate your account at http://localhost"5750 when the user is unconfirmed5751 is expected to match /Your primary email address is not confirmed/5752 when the user is blocked pending approval5753 is expected to eq "Your account is pending approval from your administrator and hence blocked."5754 when the user has expired password5755 is expected to eq "Your password expired. Please access GitLab from a web browser to update your password."5756Gitlab::Ci::SecureFiles::MobileProvision5757 # order random5758 when the supplied profile cannot be parsed5759 when the supplied certificate cannot be parsed5760 #decoded_plist5761 assigns the error message and returns nil5762 #properties5763 returns nil5764 #metadata5765 returns an empty hash5766 #expires_at5767 returns nil5768 when the supplied profile can be parsed5769 #decoded_plist5770 returns an XML string5771 #properties5772 returns the property list of the decoded plist provided5773 returns nil if the property list fails to be parsed from the decoded plist5774 #metadata5775 returns a hash with the expected keys5776 #id5777 returns the profile UUID5778 #expires_at5779 returns the expiration timestamp of the profile5780 #platforms5781 returns the platforms assigned to the profile5782 #team_name5783 returns the team name in the profile5784 #team_id5785 returns the team ids in the profile5786 #app_name5787 returns the app name in the profile5788 #app_id5789 returns the app id in the profile5790 #app_id_prefix5791 returns the app id prefixes in the profile5792 #xcode_managed5793 returns the xcode_managed property in the profile5794 #entitlements5795 returns the entitlements in the profile5796 #devices5797 returns the devices attached to the profile5798 #certificate_ids5799 returns the certificate ids attached to the profile5800Gitlab::Git::Compare5801 #commits5802 has 8 elements5803 is expected to include "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"5804 is expected not to include "cfe32cf61b73a0d5e9f13e774abde7ff789b1660"5805 non-existing base ref5806 is expected to be empty5807 non-existing head ref5808 is expected to be empty5809 base ref is equal to head ref5810 is expected to be empty5811 providing nil as base ref or head ref5812 is expected to be empty5813 #diffs5814 has 10 elements5815 is expected to include "files/ruby/popen.rb"5816 is expected not to include "LICENSE"5817 non-existing base ref5818 is expected to be empty5819 non-existing head ref5820 is expected to be empty5821 #same5822 is expected to eq false5823 base ref is equal to head ref5824 is expected to eq true5825 #commits straight compare5826 has 8 elements5827 is expected to include "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"5828 is expected not to include "cfe32cf61b73a0d5e9f13e774abde7ff789b1660"5829 #diffs straight compare5830 has 10 elements5831 is expected to include "files/ruby/popen.rb"5832 is expected not to include "LICENSE"5833Resolvers::ProjectMergeRequestsResolver5834 by assignee5835 filters merge requests by assignee username5836 does not find anything5837 by author5838 filters merge requests by author username5839 does not find anything5840 by reviewer5841 filters merge requests by reviewer username5842 does not find anything5843CommitPresenter5844 #web_path5845 is expected to eq "/namespace915/project956/-/commit/b83d6e391c22777fca1ed3012fce84f633d7fed0"5846 #detailed_status_for5847 read_commit_status: true, read_pipeline: true, expected_result: "passed"5848 is expected to eq "passed"5849 read_commit_status: true, read_pipeline: false, expected_result: nil5850 is expected to eq nil5851 read_commit_status: false, read_pipeline: true, expected_result: nil5852 is expected to eq nil5853 read_commit_status: false, read_pipeline: false, expected_result: nil5854 is expected to eq nil5855 #status_for5856 read_commit_status: true, read_pipeline: true, expected_result: "success"5857 is expected to eq "success"5858 read_commit_status: true, read_pipeline: false, expected_result: nil5859 is expected to eq nil5860 read_commit_status: false, read_pipeline: true, expected_result: nil5861 is expected to eq nil5862 read_commit_status: false, read_pipeline: false, expected_result: nil5863 is expected to eq nil5864 #any_pipelines?5865 when user can read pipeline5866 returns if there are any pipelines for commit5867 when user can not read pipeline5868 is false5869 #signature_html5870 renders html for displaying signature5871gitlab:praefect:replicas5872 replicas5873 when a valid project id is used as the argument5874 calls praefect info service's replicas method5875 prints out the expected row5876 when a non existent project id is used as the argument5877 does not call praefect info service's replicas method5878 when replicas throws an exception5879 aborts with the correct error message5880Gitlab::EtagCaching::Middleware5881 .skip!5882 sets the skip header on the response5883 when ETag caching is not enabled for current route5884 does not add ETag headers5885 passes status code from app5886 does not set feature category attribute5887 when there is no ETag in store for given resource5888 generates ETag5889 when If-None-Match header was specified5890 tracks "etag_caching_key_not_found" event5891 when there is ETag in store for given resource5892 returns the correct headers5893 when the matching route requests that the ETag is skipped5894 returns the correct headers5895 when If-None-Match header matches ETag in store5896 does not call app5897 returns status code 3045898 sets correct headers5899 pushes route's feature category to the context5900 returns empty body5901 tracks "etag_caching_cache_hit" event5902 behaves like sends a process_action.action_controller notification5903 sends the expected payload5904 log subscriber processes action5905 when polling is disabled5906 returns status code 4295907 behaves like sends a process_action.action_controller notification5908 sends the expected payload5909 log subscriber processes action5910 when If-None-Match header does not match ETag in store5911 calls app5912 tracks "etag_caching_resource_changed" event5913 when If-None-Match header is not specified5914 tracks "etag_caching_header_missing" event5915 when GitLab instance is using a relative URL5916 uses full path as cache key5917Tooling::FindCodeowners5918 #execute5919 prints CODEOWNERS as configured5920 #load_definitions5921 expands the allow and deny list with keywords and patterns5922 expands the patterns for the auth group5923 retains the array and expands the patterns for the compliance group5924 #load_config5925 loads the config with symbolized keys5926 when YAML has safe_load_file5927 calls safe_load_file5928 when YAML does not have safe_load_file5929 calls load_file5930 #path_matches?5931 passes flags we are expecting to File.fnmatch?5932 #normalize_pattern5933 returns /**/* if the input is *5934 prepends /** if the input does not start with /5935 returns the pattern if the input starts with /5936 appends **/* if the input ends with /5937 #consolidate_paths5938 when the directory has the same number of entries5939 consolidates into the directory5940 when the directory has different number of entries5941 returns the original paths5942GitlabUploader5943 #file_storage?5944 when file storage is used5945 is expected to be file storage5946 when is remote storage5947 is expected not to be file storage5948 #file_cache_storage?5949 when file storage is used5950 is expected to be file cache storage5951 when is remote storage5952 is expected not to be file cache storage5953 #move_to_cache5954 is true5955 #move_to_store5956 is true5957 #cache!5958 moves the file from the working directory to the cache directory5959 #replace_file_without_saving!5960 allows file to be replaced without triggering any callbacks5961 #open5962 when trace is stored in File storage5963 when file exists5964 returns io stream5965 when passing block it yields5966 when file does not exist5967 returns nil5968 when passing block it does not yield5969 when trace is stored in Object storage5970 when file exists5971 returns http io stream5972 when passing block it yields5973 when file does not exist5974 returns nil5975 when passing block it does not yield5976 #url_or_file_path5977 returns url when in remote storage5978 returns url when in remote storage5979 .version5980 is expected to raise RuntimeError with message matching /not supported/5981ExternalServiceReactiveCachingWorker5982 behaves like reactive cacheable worker5983 #perform5984 when reactive cache worker class is found5985 calls #exclusively_update_reactive_cache!5986 when ReactiveCaching::ExceededReactiveCacheLimit is raised5987 avoids failing the job and tracks via Gitlab::ErrorTracking5988 when reactive cache worker class is not found5989 raises no error5990 when reactive cache worker class is invalid5991 raises no error5992 worker context5993 sets the related class on the job5994 sets the related class on the job when it was passed as a class5995Gitlab::Database::Partitioning::SlidingListStrategy5996 #current_partitions5997 detects both partitions5998 #validate_and_fix5999 does not call change_column_default if the partitioning in a valid state6000 calls change_column_default on partition_key with the most default partition number6001 does not change the default column if it has been changed in the meanwhile by another process6002 #active_partition6003 is the partition with the largest value6004 #missing_partitions6005 when next_partition_if returns true6006 is a partition definition for the next partition in the series6007 when next_partition_if returns false6008 is empty6009 when there are no partitions for the table6010 returns a partition for value 16011 #extra_partitions6012 when some partitions are true for detach_partition_if6013 is the leading set of partitions before that value6014 when all partitions are true for detach_partition_if6015 is all but the most recent partition6016 #initial_partition6017 starts with the value 16018 #next_partition6019 is one after the active partition6020 #ensure_partitioning_column_ignored!6021 raises when the column is not ignored6022 does not raise when the column is ignored6023 redirecting inserts as the active partition changes6024 redirects to the new partition6025SensitiveSerializableHash6026 .prevent_from_serialization6027 does not include the field in serializable_hash6028 does not change parent class attributes_exempt_from_serializable_hash6029 #serializable_hash6030 for a web hook6031 behaves like attr_encrypted attribute6032 WebHook#token6033 has a encrypted_attributes field6034 does not include the attribute in serializable_hash6035 behaves like attr_encrypted attribute6036 WebHook#url6037 has a encrypted_attributes field6038 does not include the attribute in serializable_hash6039 behaves like attr_encrypted attribute6040 WebHook#url_variables6041 has a encrypted_attributes field6042 does not include the attribute in serializable_hash6043 behaves like attr_encrypted attribute6044 Ci::InstanceVariable#value6045 has a encrypted_attributes field6046 does not include the attribute in serializable_hash6047 behaves like add_authentication_token_field attribute6048 does not include token_expires_at in serializable_hash6049 Ci::Runner#token6050 has a add_authentication_token_field field6051 does not include the attribute in serializable_hash6052 behaves like add_authentication_token_field attribute6053 ApplicationSetting#health_check_access_token6054 has a add_authentication_token_field field6055 does not include the attribute in serializable_hash6056 behaves like add_authentication_token_field attribute6057 PersonalAccessToken#token6058 has a add_authentication_token_field field6059 does not include the attribute in serializable_hash6060notify/change_in_merge_request_draft_status_email.html.haml6061 shows user added draft status on email6062 shows user removed draft status on email6063 renders the email correctly6064Gitlab::Kubernetes::Helm::V3::PatchCommand6065 behaves like helm command generator6066 #generate_script6067 returns appropriate command6068 when rbac is true6069 behaves like helm command generator6070 #generate_script6071 returns appropriate command6072 when there is no version6073 is expected to raise ArgumentError with "version is required"6074 #pod_name6075 is expected to eq "install-app-name"6076 behaves like helm command6077 HELM_VERSION6078 is expected to match /\d+\.\d+\.\d+/6079 #env6080 is expected to be a kind of Hash6081 #rbac?6082 rbac is enabled6083 is expected to be truthy6084 rbac is not enabled6085 is expected to be falsey6086 #pod_resource6087 rbac is enabled6088 is expected to be an instance of Kubeclient::Resource6089 generates a pod that uses the tiller serviceAccountName6090 rbac is not enabled6091 is expected to be an instance of Kubeclient::Resource6092 generates a pod that uses the default serviceAccountName6093 #config_map_resource6094 returns a KubeClient resource with config map content for the application6095 #service_account_resource6096 rbac is enabled6097 generates a Kubeclient resource for the tiller ServiceAccount6098 rbac is not enabled6099 generates nothing6100 #cluster_role_binding_resource6101 rbac is enabled6102 generates a Kubeclient resource for the ClusterRoleBinding for tiller6103 binds the account in #service_account_resource6104 rbac is not enabled6105 generates nothing6106Gitlab::Kubernetes::Helm::V3::DeleteCommand6107 behaves like helm command generator6108 #generate_script6109 returns appropriate command6110 #pod_name6111 is expected to eq "uninstall-app-name"6112 behaves like helm command6113 HELM_VERSION6114 is expected to match /\d+\.\d+\.\d+/6115 #env6116 is expected to be a kind of Hash6117 #rbac?6118 rbac is enabled6119 is expected to be truthy6120 rbac is not enabled6121 is expected to be falsey6122 #pod_resource6123 rbac is enabled6124 is expected to be an instance of Kubeclient::Resource6125 generates a pod that uses the tiller serviceAccountName6126 rbac is not enabled6127 is expected to be an instance of Kubeclient::Resource6128 generates a pod that uses the default serviceAccountName6129 #config_map_resource6130 returns a KubeClient resource with config map content for the application6131 #service_account_resource6132 rbac is enabled6133 generates a Kubeclient resource for the tiller ServiceAccount6134 rbac is not enabled6135 generates nothing6136 #cluster_role_binding_resource6137 rbac is enabled6138 generates a Kubeclient resource for the ClusterRoleBinding for tiller6139 binds the account in #service_account_resource6140 rbac is not enabled6141 generates nothing6142 #delete_command6143 deletes the release6144RuboCop::Formatter::GracefulFormatter6145 # order random6146 without offenses6147 behaves like summary reporting6148 reports summary with 2 inspected, 0 offenses, 0 silenced6149 .grace_period?6150 with Details in config6151 is expected to eq true6152 with unknown value for Details in config6153 is expected to output /Cop\/Name: Unhandled value "unknown" for `Details` key./ to stderr6154 with empty config6155 is expected to eq false6156 without Details in config6157 is expected to eq false6158 with offenses6159 with active only6160 behaves like summary reporting6161 reports summary with 2 inspected, 2 offenses, 0 silenced6162 with silenced only6163 behaves like summary reporting6164 reports summary with 2 inspected, 0 offenses, 2 silenced6165 with active and silenced6166 behaves like summary reporting6167 reports summary with 2 inspected, 2 offenses, 3 silenced6168 .grace_period_key_value6169 is expected to eq "Details: grace period"6170 without files to inspect6171 behaves like summary reporting6172 reports summary with 0 inspected, 0 offenses, 0 silenced6173 with missing @total_offense_count6174 raises an error6175 .adjusted_exit_status6176 active_offenses: 0, status: 0, adjusted_status: 06177 is expected to eq 06178 active_offenses: 0, status: 1, adjusted_status: 06179 is expected to eq 06180 active_offenses: 1, status: 1, adjusted_status: 16181 is expected to eq 16182 active_offenses: 0, status: 2, adjusted_status: 26183 is expected to eq 26184 active_offenses: 1, status: 2, adjusted_status: 26185 is expected to eq 26186 active_offenses: 1, status: 0, adjusted_status: 06187 is expected to eq 06188Gitlab::RepositoryCache::Preloader6189 #preload6190 when the values are already cached6191 prevents individual cache reads for cached methods6192 when values are not cached6193 reads and writes from cache individually6194gitlab:uploads rake tasks6195 check6196 outputs the integrity check for each batch6197 errors out about missing files on the file system6198 errors out about invalid checksum6199Gitlab::PhabricatorImport::Conduit::Response6200 .parse!6201 raises a ResponseError if the http response was not successfull6202 raises a ResponseError if the response contained a Phabricator error6203 raises a ResponseError if JSON parsing failed6204 returns a parsed response for valid input6205 #success?6206 is expected to be success6207 is expected not to be success6208 #error_code6209 is expected to eq "ERR-INVALID-AUTH"6210 is expected to be nil6211 #error_info6212 returns the correct error info6213 is expected to be nil6214 #data6215 is expected to be nil6216 is expected to be a kind of Array6217 #pagination6218 is expected to be nil6219 builds the pagination correctly6220TimeZoneHelper6221 #timezone_data6222 with short format6223 matches schema6224 formats for display6225 with abbr format6226 matches schema6227 formats for display6228 with full format6229 matches schema6230 formats for display6231 with unknown format6232 raises an exception6233 #local_time6234 when timezone is `nil`6235 returns `nil`6236 when timezone is blank6237 returns `nil`6238 when a valid timezone is passed6239 returns local time6240 when an invalid timezone is passed6241 returns local time using the configured default timezone (UTC in this case)6242 #local_timezone_instance6243 when timezone is `nil`6244 returns the system timezone instance6245 when timezone is blank6246 returns the system timezone instance6247 when a valid timezone is passed6248 returns the local time instance6249 when an invalid timezone is passed6250 returns the system timezone instance6251LooseIndexScan6252 loading distinct author_ids6253 when using ascending order6254 behaves like assert distinct values example6255 loads the distinct values in the correct order6256 when null values are present6257 behaves like assert distinct values example6258 loads the distinct values in the correct order6259 when using descending order6260 behaves like assert distinct values example6261 loads the distinct values in the correct order6262BulkImports::Export6263 associations6264 is expected to belong to group required: false6265 is expected to belong to project required: false6266 is expected to have one upload6267 validations6268 is expected to validate that :relation cannot be empty/falsy6269 is expected to validate that :status cannot be empty/falsy6270 when not associated with a group or project6271 is invalid6272 when associated with a group6273 is valid6274 when associated with a project6275 is valid6276 when relation is invalid6277 is invalid6278 #portable6279 when associated with project6280 returns project6281 when associated with group6282 returns group6283 #config6284 when associated with project6285 returns project config6286 when associated with group6287 returns group config6288Gitlab::JobWaiter6289 .notify6290 pushes the jid to the named queue6291 #wait6292 returns when all jobs have been completed6293 times out if not all jobs complete6294 when a label is provided6295 increments just job_waiter_started_total when all jobs complete6296 increments job_waiter_started_total and job_waiter_timeouts_total when it times out6297Gitlab::JiraImport::BaseImporter6298 with any inheriting class6299 when project validation is ok6300 when Jira service exists6301 when Jira import data is not present6302 raises exception6303 when import data exists6304 when #imported_items_cache_key is not implemented6305 is expected to raise NotImplementedError6306 when #imported_items_cache_key is implemented6307 #imported_items_cache_key6308 is expected to eq "dumb-importer-key"6309 #mark_as_imported6310 stores id in redis cache6311 #already_imported?6312 returns false if value is not in cache6313 returns true if value already stored in cache6314Gitlab::JiraImport::Stage::StartImportWorker6315 modules6316 behaves like include import workers modules6317 is expected to includes the ApplicationWorker module6318 is expected to includes the Gitlab::JiraImport::QueueOptions module6319 is expected to includes the ProjectStartImport module6320 is expected to includes the ProjectImportOptions module6321 #perform6322 when import is not scheduled6323 exits because import not started6324 when import is scheduled6325 advances to importing labels6326 when import is started6327 when this is the same worker that stated import6328 advances to importing labels6329 when this is a different worker that stated import6330 advances to importing labels6331 when import is finished6332 advances to importing labels6333Gitlab::Import::StuckProjectImportJobsWorker6334 with scheduled import_status6335 behaves like stuck import job detection6336 when the job has completed6337 when the import status was already updated6338 does not mark the import as failed6339 when the import status was not updated6340 marks the import as failed6341 when the job is still in Sidekiq6342 does not mark the import as failed6343 with started import_status6344 behaves like stuck import job detection6345 when the job has completed6346 when the import status was already updated6347 does not mark the import as failed6348 when the import status was not updated6349 marks the import as failed6350 when the job is still in Sidekiq6351 does not mark the import as failed6352Ci::GenerateCodequalityMrDiffReportService6353 #execute6354 when head pipeline has codequality mr diff report6355 returns status and data6356 when head pipeline does not have a codequality mr diff report6357 returns status and error message6358 when head pipeline has codequality mr diff report and no merge request associated6359 returns status and error message6360Net::HTTP patch proxy user and password encoding6361 #proxy_user6362 is expected to eq nil6363 with http_proxy env6364 is expected to eq nil6365 and user:password authentication6366 when on multiuser safe platform6367 is expected to eq "Y\\X"6368 when not on multiuser safe platform6369 is expected to be nil6370 #proxy_pass6371 is expected to eq nil6372 with http_proxy env6373 is expected to eq nil6374 and user:password authentication6375 when on multiuser safe platform6376 is expected to eq "R%S] ?X"6377 when not on multiuser safe platform6378 is expected to be nil6379Mutations::Todos::MarkDone6380 is expected to require graphql authorizations :update_todo6381 #resolve6382 marks a single todo as done6383 handles a todo which is already done as expected6384 ignores requests for todos which do not belong to the current user6385VersionCheckHelper6386 #show_version_check?6387 return conditions6388 enabled: false, consent: false, is_admin: false, result: false6389 returns correct results6390 enabled: false, consent: false, is_admin: true, result: false6391 returns correct results6392 enabled: false, consent: true, is_admin: false, result: false6393 returns correct results6394 enabled: false, consent: true, is_admin: true, result: false6395 returns correct results6396 enabled: true, consent: false, is_admin: false, result: false6397 returns correct results6398 enabled: true, consent: false, is_admin: true, result: true6399 returns correct results6400 enabled: true, consent: true, is_admin: false, result: false6401 returns correct results6402 enabled: true, consent: true, is_admin: true, result: false6403 returns correct results6404 #gitlab_version_check6405 returns an instance of the VersionCheck class6406 #show_security_patch_upgrade_alert?6407 return conditions6408 show_version_check: false, gitlab_version_check: nil, result: false6409 returns correct results6410 show_version_check: false, gitlab_version_check: {"severity"=>"success"}, result: false6411 returns correct results6412 show_version_check: false, gitlab_version_check: {"severity"=>"danger"}, result: false6413 returns correct results6414 show_version_check: true, gitlab_version_check: nil, result: false6415 returns correct results6416 show_version_check: true, gitlab_version_check: {"severity"=>"success"}, result: false6417 returns correct results6418 show_version_check: true, gitlab_version_check: {"severity"=>"danger"}, result: true6419 returns correct results6420Packages::CreateDependencyService6421 #execute6422 when packages are published6423 creates dependencies and links6424 with repeated packages6425 creates dependencies and links6426 with dependencies bulk insert conflicts6427 creates dependences and links6428 with existing dependencies6429 reuses them6430 with a dependency not described with a hash6431 creates dependencies and links6432RuboCop::Cop::AvoidReturnFromBlocks6433 # order random6434 flags violation for return inside a block6435 doesn't check when block is empty6436 doesn't flag violation for next inside a block6437 doesn't create more than one offense for nested blocks6438 flags violation for return inside included > def > block6439 doesn't flag violation for return used inside a method definition6440 doesn't flag violation for return inside a lambda6441 doesn't flag violation for break inside a block6442 behaves like examples with def methods6443 doesn't flag violation for return inside lambda6444 behaves like examples with def methods6445 doesn't flag violation for return inside define_method6446 behaves like examples with whitelisted method6447 doesn't flag violation for return inside each_filename6448 behaves like examples with whitelisted method6449 doesn't flag violation for return inside times6450 behaves like examples with whitelisted method6451 doesn't flag violation for return inside loop6452 behaves like examples with whitelisted method6453 doesn't flag violation for return inside each6454Snippets::UpdateRepositoryStorageService6455 #execute6456 when the move succeeds6457 moves the repository to the new storage and unmarks the repository as read-only6458 when the filesystems are the same6459 updates the database without trying to move the repostory6460 when the move fails6461 unmarks the repository as read-only without updating the repository storage6462 when the cleanup fails6463 sets the correct state6464 when the checksum does not match6465 unmarks the repository as read-only without updating the repository storage6466 when the repository move is finished6467 is idempotent6468 when the repository move is failed6469 is idempotent6470Import::GitlabProjects::CreateProjectService6471 validation6472 is expected to be valid6473 validates presence of path6474 validates presence of name6475 is invalid if the strategy is invalid6476 #execute6477 creates a project successfully6478 when the project creation raises an error6479 fails to create a project6480 when the validation fail6481 fails to create a project6482 when the project contains multilple errors6483 fails to create a project6484 when the strategy adds project parameters6485 merges the strategy project parameters6486MergeRequest::DiffCommitUser6487 validations6488 requires that names are less than 512 characters long6489 requires that Emails are less than 512 characters long6490 requires either a name or Email6491 allows setting of just a name6492 allows setting of just an Email6493 allows setting of both a name and Email6494 .prepare6495 trims a value to at most 512 characters6496 returns nil if the value is an empty string6497 .find_or_create6498 creates a new row if none exist6499 returns an existing row if one exists6500 handles concurrent inserts6501 .bulk_find_or_create6502 bulk creates missing rows and reuses existing rows6503 does not insert any data when all users exist6504 handles concurrently inserted rows6505Integrations::ChatMessage::PushMessage6506 behaves like Integrations::ChatMessage6507 when input contains link markup6508 strips all link markup characters6509 push6510 without markdown6511 returns a message regarding pushes6512 with markdown6513 returns a message regarding pushes6514 tag push6515 without markdown6516 returns a message regarding pushes6517 with markdown6518 returns a message regarding pushes6519 removed tag6520 without markdown6521 returns a message regarding removal of tags6522 with markdown6523 returns a message regarding removal of tags6524 new branch6525 without markdown6526 returns a message regarding a new branch6527 with markdown6528 returns a message regarding a new branch6529 removed branch6530 without markdown6531 returns a message regarding a removed branch6532 with markdown6533 returns a message regarding a removed branch6534Gitlab::ImportExport::Base::ObjectBuilder6535 #build6536 when object exists6537 when where_clauses are implemented6538 finds existing object instead of creating one6539 when where_clauses are not implemented6540 raises NotImplementedError6541 when object does not exist6542 creates new object6543ErrorTracking::SentryClient::ApiUrls6544 # order random6545 #issues_url6546 behaves like correct url6547 is expected to eq uri "https://sentrytest.gitlab.com/api/0/projects/sentry-org/sentry-project/issues/"6548 behaves like correct url with extra slashes6549 behaves like correct url6550 is expected to eq uri "https://sentrytest.gitlab.com/api/0/projects/sentry-org/sentry-project/issues/"6551 #issue_url6552 behaves like correct url6553 is expected to eq uri "https://sentrytest.gitlab.com/api/0/issues/123456/"6554 behaves like correct url with extra slashes6555 behaves like correct url6556 is expected to eq uri "https://sentrytest.gitlab.com/api/0/issues/123456/"6557 behaves like correctly escapes issue ID6558 with param a string with reserved chars6559 is expected to include "123%24%25"6560 with param a symbol with reserved chars6561 is expected to include "123%24%25"6562 with param an integer6563 is expected to include "12345678"6564 #projects_url6565 behaves like correct url6566 is expected to eq uri "https://sentrytest.gitlab.com/api/0/projects/"6567 behaves like correct url with extra slashes6568 behaves like correct url6569 is expected to eq uri "https://sentrytest.gitlab.com/api/0/projects/"6570 #issue_latest_event_url6571 behaves like correct url6572 is expected to eq uri "https://sentrytest.gitlab.com/api/0/issues/123456/events/latest/"6573 behaves like correct url with extra slashes6574 behaves like correct url6575 is expected to eq uri "https://sentrytest.gitlab.com/api/0/issues/123456/events/latest/"6576 behaves like correctly escapes issue ID6577 with param a string with reserved chars6578 is expected to include "123%24%25"6579 with param a symbol with reserved chars6580 is expected to include "123%24%25"6581 with param an integer6582 is expected to include "12345678"6583Gitlab::Usage::Metrics::Instrumentations::CountImportedProjectsTotalMetric6584 with all time frame6585 behaves like a correct instrumented metric value and query6586 behaves like a correct instrumented metric value6587 has correct value6588 behaves like a correct instrumented metric query6589 has correct generate query6590 for 28d time frame6591 behaves like a correct instrumented metric value and query6592 behaves like a correct instrumented metric value6593 has correct value6594 behaves like a correct instrumented metric query6595 has correct generate query6596Pajamas::CheckboxComponent6597 with default options6598 renders unchecked checkbox with value of `1`6599 does not render help text6600 renders hidden input with value of `0`6601 with custom options6602 renders help text6603 renders checked checkbox with value of `yes`6604 adds CSS class to label6605 renders hidden input with value of `no`6606 with `label` slot6607 renders unchecked checkbox with value of `1`6608 with `help_text` slot6609 renders unchecked checkbox with value of `1`6610 renders help text6611 with `label` and `help_text` slots6612 renders unchecked checkbox with value of `1`6613 renders help text6614Ci::CreatePipelineService6615 # order random6616 when job has script and nested before_script and after_script6617 creates a job with script data6618 when job has hooks and default hooks6619 creates jobs with hook data6620 when the FF ci_hooks_pre_get_sources_script is disabled6621 creates jobs without hook data6622Autocomplete::ProjectFinder6623 #execute6624 without a project ID6625 returns nil6626 with an empty String as the project ID6627 returns nil6628 with a project ID6629 raises ActiveRecord::RecordNotFound if the project does not exist6630 raises ActiveRecord::RecordNotFound if the user can not read the project6631 raises ActiveRecord::RecordNotFound if an anonymous user can not read the project6632 returns the project if it exists and is readable6633Snippets::CountService6634 #new6635 raises an error if no author or project6636 uses the SnippetsFinder to scope snippets by user6637 allows scoping to project6638 #execute6639DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6640 returns a hash of counts6641DEPRECATION WARNING: `.reorder(nil)` with `.first` / `.first!` no longer takes non-deterministic result in Rails 7.0. To continue taking non-deterministic result, use `.take` / `.take!` instead. (called from snippet_counts at /builds/gitlab-org/gitlab/app/services/snippets/count_service.rb:73)6642 only counts snippets the user has access to6643 returns an empty hash if select returns nil6644Gitlab::Ci::Reports::Security::AggregatedReport6645 #created_at6646 no reports6647 has no created date6648 report with no created date6649 has no created date6650 has reports6651 has oldest created date6652#<Doorkeeper::Config:0x00007fbab1a59b78>6653 #default_scopes6654 matches Gitlab::Auth::DEFAULT_SCOPES6655 #optional_scopes6656 matches Gitlab::Auth.optional_scopes6657 #resource_owner_authenticator6658 with a user present6659 returns the user6660 does not redirect6661 does not store the return path6662 without a user present6663 returns nil6664 redirects to the login form6665 stores the return path6666Gitlab::Database::QueryAnalyzers::QueryRecorder6667 # order random6668 with query analyzer6669 on default branch6670 behaves like an enabled query recorder6671 logs queries to a file6672 on database merge requests6673 behaves like an enabled query recorder6674 logs queries to a file6675 .log_file6676 when in CI6677 is expected to include "query_recorder/test-job-1.ndjson"6678 is expected not to include "query_recorder/rspec.ndjson"6679 when not in CI6680 is expected to include "query_recorder/rspec.ndjson"6681 is expected not to include "query_recorder/test-job-1.ndjson"6682Resolvers::Ci::RunnerProjectsResolver6683 # order random6684 #resolve6685 with authorized user6686 with search argument6687 returns a lazy value with projects containing the specified prefix6688 with supported arguments6689 creates ProjectsFinder with expected arguments6690 without arguments6691 returns a lazy value with all projects6692 with unauthorized user6693 is expected to be nil6694API::Validations::Validators::FilePath6695 when allowlist is not set6696 behaves like file validation6697 valid file path6698 does not raise a validation error6699 invalid file path6700 raise a validation error6701 behaves like file validation6702 valid file path6703 does not raise a validation error6704 invalid file path6705 raise a validation error6706 when allowlist is set6707 when file path is included in the allowlist6708 does not raise a validation error6709 when file path is not included in the allowlist6710 raises a validation error6711Resolvers::Kas::AgentConnectionsResolver6712 is expected to eq Types::Kas::AgentConnectionType6713 is expected to be truthy6714 #resolve6715 returns active connections for the agent6716 queries KAS once when multiple agents are requested6717 an error is returned from the KAS client6718 raises a graphql error6719 user does not have permission6720 is expected to be empty6721BulkImports::Pipeline6722 pipeline attributes6723 getters6724 retrieves class attributes6725 when extractor and loader are defined within the pipeline6726 returns itself when retrieving extractor & loader6727 setters6728 sets class attributes6729 #instantiate6730 when options are present6731 instantiates new object with options6732 when options are missing6733 instantiates new object without options6734 #transformers6735 has instance transform method first to run6736Packages::Composer::Metadatum6737 relationships6738 is expected to belong to package required: false6739 validations6740 is expected to validate that :package cannot be empty/falsy6741 is expected to validate that :target_sha cannot be empty/falsy6742 is expected to validate that :composer_json cannot be empty/falsy6743 scopes6744 .for_package6745 is expected to eq [#<Packages::Composer::Metadatum package_id: 122, target_sha: "e5e91d129e409118e2e49400fd4364d3553a7c8a", composer_json: {"name"=>"sample-project"}, version_cache_sha: nil>]6746Groups::ProjectsRequiringAuthorizationsRefresh::OnTransferFinder6747 #execute6748 projects requiring authorizations refresh when a group is transferred (here, `Group B`)6749 includes only the expected projects6750Gitlab::Database::LoadBalancing::Setup6751 #setup6752 sets up the load balancer6753 #configure_connection6754 configures pool, prepared statements and reconnects to the database6755 #setup_connection_proxy6756 sets up the load balancer6757 #setup_service_discovery6758 when service discovery is disabled6759 does nothing6760 when service discovery is enabled6761 immediately performs service discovery6762 starts service discovery if needed6763 uses correct base models6764 results match expectations6765 does return load_balancer assigned to a given connection6766Milestones::CreateService6767 #execute6768 valid params6769 is expected to be valid6770 is expected to eq "v2.1.9"6771MergeRequests::ExecuteApprovalHooksWorker6772 calls MergeRequests::ExecuteApprovalHooksService6773 behaves like subscribes to event6774 consumes the published event6775 behaves like an idempotent worker6776 is labeled as idempotent6777 performs multiple times sequentially without raising an exception6778 when the user does not exist6779 behaves like when object does not exist6780 logs and does not call MergeRequests::ExecuteApprovalHooksService6781 when the merge request does not exist6782 behaves like when object does not exist6783 logs and does not call MergeRequests::ExecuteApprovalHooksService6784ContextCommitsDiffEntity6785 as json6786 exposes commits_count6787 exposes showing_context_commits_diff6788 exposes diffs_path6789KeysetHelper6790 with admin mode6791 when no users are present6792 does not render pagination links6793 when one user is present6794 does not render pagination links6795 when more users are present6796 when on the first page6797 renders the next and last links6798 when at the last page6799 renders the prev and first links6800 when at the second page6801 renders all links6802SystemCheck::BaseCheck6803 helpers on instance level6804 responds to SystemCheck::Helpers methods6805 responds to Gitlab::TaskHelpers methods6806HashedStorage::ProjectRollbackWorker6807 #perform6808 skips when project no longer exists6809 skips when project is pending delete6810 delegates rollback to service class when have exclusive lease6811 skips when it cant acquire the exclusive lease6812AlertManagement::MetricImage6813 associations6814 is expected to belong to alert required: false6815 validations6816 is expected to be valid6817 is expected to validate that :file cannot be empty/falsy6818 is expected to validate that the length of :url is at most 2556819 is expected to validate that the length of :url_text is at most 1286820Gitlab::Ci::Config::Entry::Trigger::Forward6821 when entry config is correct6822 returns set values6823 is expected to be valid6824 when entry config value is empty6825 returns empty6826 is expected to be valid6827 when entry value is not correct6828 invalid attribute6829 is expected not to be valid6830 reports error6831 non-boolean value6832 is expected not to be valid6833 reports error6834IncidentManagement::TimelineEventTags::CreateService6835 # order random6836 #execute6837 when current user is nil6838 behaves like error response6839 has an informative message6840 when user does not have permissions to create tags6841 behaves like error response6842 has an informative message6843 when error occurs during creation6844 behaves like error response6845 has an informative message6846 when user has permissions6847 creates database record6848 behaves like success response6849 has timeline event tag6850OptionallySearch6851 .search6852 raises NotImplementedError6853 .optionally_search6854 when a query is given6855 delegates to the search method6856 when an option is provided6857 delegates to the search method6858 when no query is given6859 returns the current relation6860 when an empty query is given6861 returns the current relation6862Users::BlockService6863 #execute6864 when successful6865 is expected to eq {:status=>:success}6866 change the user's state6867 when failed6868 returns error result6869 does not change the user's state6870 when internal user6871 returns error result6872BaseCountService6873 #relation_for_count6874 raises NotImplementedError6875 #count6876 returns the number of values6877 #uncached_count6878 returns the uncached number of values6879 #refresh_cache6880 refreshes the cache6881 #delete_cache6882 deletes the cache6883 #raw?6884 returns false6885 #cache_key6886 raises NotImplementedError6887 #cache_options6888 returns the default in options6889Gitlab::Ci::Config::Entry::Inherit::Default6890 validations6891 config: true, valid: true6892 is expected to eq true6893 config: false, valid: true6894 is expected to eq true6895 config: ["image"], valid: true6896 is expected to eq true6897 config: ["unknown"], valid: false6898 is expected to eq false6899 config: [:image], valid: false6900 is expected to eq false6901 config: [true], valid: false6902 is expected to eq false6903 config: "string", valid: false6904 is expected to eq false6905 #inherit?6906 config: true, inherit: true6907 is expected to eq true6908 config: false, inherit: false6909 is expected to eq false6910 config: ["image"], inherit: true6911 is expected to eq true6912 config: ["before_script"], inherit: false6913 is expected to eq false6914Gitlab::Middleware::Multipart::Handler6915 #allowed_paths6916 package_features_enabled: false, object_storage_enabled: false, direct_upload_enabled: true, expected_paths: :expected_allowed_paths6917 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/p...lab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]6918 package_features_enabled: false, object_storage_enabled: false, direct_upload_enabled: false, expected_paths: :expected_allowed_paths6919 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/p...lab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]6920 package_features_enabled: false, object_storage_enabled: true, direct_upload_enabled: true, expected_paths: :expected_allowed_paths6921 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/p...lab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]6922 package_features_enabled: false, object_storage_enabled: true, direct_upload_enabled: false, expected_paths: :expected_allowed_paths6923 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/p...lab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]6924 package_features_enabled: true, object_storage_enabled: false, direct_upload_enabled: true, expected_paths: :expected_with_packages_path6925 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/p...ilds/gitlab-org/gitlab/public/uploads/tmp", "/builds/gitlab-org/gitlab/shared/packages/tmp/uploads"]6926 package_features_enabled: true, object_storage_enabled: false, direct_upload_enabled: false, expected_paths: :expected_with_packages_path6927 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/p...ilds/gitlab-org/gitlab/public/uploads/tmp", "/builds/gitlab-org/gitlab/shared/packages/tmp/uploads"]6928 package_features_enabled: true, object_storage_enabled: true, direct_upload_enabled: true, expected_paths: :expected_allowed_paths6929 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/p...lab-org/gitlab/shared/dependency_proxy/tmp/uploads", "/builds/gitlab-org/gitlab/public/uploads/tmp"]6930 package_features_enabled: true, object_storage_enabled: true, direct_upload_enabled: false, expected_paths: :expected_with_packages_path6931 is expected to eq ["/tmp", "/builds/gitlab-org/gitlab/tmp/tests/public/uploads", "/builds/gitlab-org/gitlab/tmp/tests/p...ilds/gitlab-org/gitlab/public/uploads/tmp", "/builds/gitlab-org/gitlab/shared/packages/tmp/uploads"]6932Sidebars::Projects::Menus::CiCdMenu6933 #render?6934 when user cannot read builds6935 returns false6936 when user can read builds6937 returns true6938 Menu items6939 Pipelines Editor6940 when user cannot view pipeline editor6941 does not include pipeline editor menu item6942 when user can view pipeline editor6943 includes pipeline editor menu item6944 Artifacts6945 when feature flag :artifacts_management_page is disabled6946 does not include artifacts menu item6947 when feature flag :artifacts_management_page is enabled6948 includes artifacts menu item6949Gitlab::Unicode6950 (?-mix:\p{Bidi Control})6951 bidi_string: "", match: true6952 matches only the bidi characters6953 bidi_string: "", match: true6954 matches only the bidi characters6955 bidi_string: "", match: true6956 matches only the bidi characters6957 bidi_string: "", match: true6958 matches only the bidi characters6959 bidi_string: "", match: true6960 matches only the bidi characters6961 bidi_string: "", match: true6962 matches only the bidi characters6963 bidi_string: "", match: true6964 matches only the bidi characters6965 bidi_string: "", match: true6966 matches only the bidi characters6967 bidi_string: "", match: true6968 matches only the bidi characters6969 bidi_string: "foobar", match: true6970 matches only the bidi characters6971 bidi_string: "", match: false6972 matches only the bidi characters6973 bidi_string: "foo", match: false6974 matches only the bidi characters6975 bidi_string: "✓", match: false6976 matches only the bidi characters6977WorkItems::Widgets::StartAndDueDate6978 .type6979 is expected to eq :start_and_due_date6980 #type6981 is expected to eq :start_and_due_date6982 #start_date6983 is expected to eq Thu, 08 Dec 20226984 #due_date6985 is expected to eq Thu, 15 Dec 20226986Gitlab::Auth::Result6987 when actor is User6988 returns auth_user6989 does not return deploy token6990 when actor is Deploy token6991 returns deploy token6992 does not return auth_user6993 #authentication_abilities_include?6994 when authentication abilities are empty6995 returns false6996 when authentication abilities are not empty6997 returns false when ability is not allowed6998 returns true when ability is allowed6999 #can_perform_action_on_project?7000 returns if actor can do perform given action on given project7001 returns if actor cannot do perform given action on given project7002 #can?7003 returns if actor can do perform given action on given project7004 returns if actor cannot do perform given action on given project7005InProductGuidanceEnvironmentsWebideExperiment7006 excludes projects with environments7007 does not exlude projects without environments7008Users::Calloutable7009 Associations7010 is expected to belong to user required: false7011 validations7012 is expected to validate that :user cannot be empty/falsy7013 #dismissed_after?7014 returns whether a callout dismissed after specified date7015API::Validations::Validators::Absence7016 empty param7017 does not raise a validation error7018 invalid parameters7019 raises a validation error7020projects/merge_requests/_close_reopen_draft_report_toggle.html.haml7021 # order random7022 notifcations toggle7023 when mr merged and logged in7024 is present7025 when mr merged and not logged in7026 is not present7027RuboCop::Cop::Gitlab::AvoidFeatureGet7028 # order random7029 bans use of Feature.ban7030 ignores unrelated code7031Import::GitlabProjects::RemoteFileValidator7032 does nothing when the oject is valid7033 content_length validation7034 is invalid with file too small7035 is invalid with file too large7036 content_type validation7037 only allows ALLOWED_CONTENT_TYPES as content_type7038Gitlab::Ci::Config::Entry::Stage7039 validations7040 when stage config value is correct7041 #value7042 returns a stage key7043 #valid?7044 is valid7045 when value has a wrong type7046 reports errors about wrong type7047 .default7048 returns default stage7049Banzai::Renderer7050 #cache_collection_render7051 when an item has a rendered field7052 does not touch redis if the field is in the cache7053 #render_field7054 without cache7055 returns cacheless render field7056 with cache7057 with a stale cache7058 caches and returns the result7059 skips database caching on a GitLab read-only instance7060 with an up-to-date cache7061 uses the cache7062 #cacheless_render7063 without cache7064 returns cacheless render field7065 #post_process7066 when xhtml7067 without :post_process_pipeline key7068 uses PostProcessPipeline7069 with :post_process_pipeline key7070 uses passed post process pipeline7071 when not xhtml7072 without :post_process_pipeline key7073 uses PostProcessPipeline7074 with :post_process_pipeline key7075 uses passed post process pipeline7076Ci::PipelineArtifacts::ExpireArtifactsWorker7077 #perform7078 executes a service7079 is labeled as idempotent7080 performs multiple times sequentially without raising an exception7081 removes the artifact only once7082ErrorTracking::SentryClient::Repo7083 # order random7084 #repos7085 is expected to all be a kind of Gitlab::ErrorTracking::Repo7086 is expected to eq 17087 behaves like calls sentry api7088 calls sentry api7089 behaves like Sentry API response size limit7090 raises an exception when response is too large7091 with redirects7092 behaves like no Sentry redirects7093 does not follow redirects7094 when exception is raised7095 behaves like maps Sentry exceptions7096 HTTParty::Error7097 is expected to raise ErrorTracking::SentryClient::Error with "Error when connecting to Sentry"7098 Net::OpenTimeout7099 is expected to raise ErrorTracking::SentryClient::Error with "Connection to Sentry timed out"7100 SocketError7101 is expected to raise ErrorTracking::SentryClient::Error with "Received SocketError when trying to connect to Sentry"7102 OpenSSL::SSL::SSLError7103 is expected to raise ErrorTracking::SentryClient::Error with "Sentry returned invalid SSL data"7104 Errno::ECONNREFUSED7105 is expected to raise ErrorTracking::SentryClient::Error with "Connection refused"7106 StandardError7107 is expected to raise ErrorTracking::SentryClient::Error with "Sentry request failed due to StandardError"7108MergeRequestSidebarBasicEntity7109 #current_user7110 contains attributes related to the current user7111Gitlab::ImportExport::DurationMeasuring7112 measures method execution duration7113 #with_duration_measuring7114 yields control7115 returns result of the yielded block7116Gitlab::JiraImport::Stage::ImportAttachmentsWorker7117 modules7118 behaves like include import workers modules7119 is expected to includes the ApplicationWorker module7120 is expected to includes the Gitlab::JiraImport::QueueOptions module7121 is expected to includes the Gitlab::JiraImport::ImportWorker module7122 #perform7123 when import did not start7124 behaves like cannot do Jira import7125 does not advance to next stage7126 behaves like does not advance to next stage7127 does not advance to next stage7128 when import started7129 behaves like advance to next stage7130 advances to notes stage7131Ci::CreatePipelineService7132 .pre/.post stages7133 when pipeline contains a build except .pre/.post7134 creates a pipeline7135 when pipeline does not contain any other build except .pre/.post7136 does not create a pipeline7137IssueDueSchedulerWorker7138 #perform7139 schedules one MailScheduler::IssueDueWorker per project with open issues due tomorrow7140BaseContainerService7141 #initialize7142 accepts container and current_user7143 treats current_user as optional7144Packages::Generic::PackageFinder7145 #execute!7146 finds package by name and version7147 ignores packages with same name but different version7148 does not find uninstallable packages7149 raises ActiveRecord::RecordNotFound if package is not found7150Mutations::CustomEmoji::Destroy7151 field tests7152 is expected to have graphql arguments :id7153 is expected to have graphql field :custom_emoji7154 #resolve7155 when the user7156 has no permissions7157 behaves like does not delete custom emoji7158 raises exception7159 when the user is developer and not the owner of custom emoji7160 behaves like does not delete custom emoji7161 raises exception7162 when user7163 is maintainer7164 behaves like deletes custom emoji7165 returns deleted custom emoji7166 is owner7167 behaves like deletes custom emoji7168 returns deleted custom emoji7169 is developer and creator of the emoji7170 behaves like deletes custom emoji7171 returns deleted custom emoji7172Gitlab::Ci::Build::Artifacts::Adapters::GzipStream7173 #initialize7174 when stream is passed7175 initialized7176 when stream is not passed7177 raises an error7178 #each_blob7179 when stream is gzip file7180 when gzip file contains one file7181 iterates content and file_name7182 when gzip file contains three files7183 iterates content and file_name7184 when stream is zip file7185 raises an error7186Analytics::CycleAnalytics::StageEntity7187 exposes start and end event descriptions7188 exposes start_event and end_event objects7189Gitlab::Utils::BatchLoader7190 # order random7191 .clear_key7192 clears batched items which match the specified batch key7193 clears loaded values which match the specified batch key7194Import::ManifestProviderRepoEntity7195 behaves like exposes required fields for import entity7196 exposes required fields7197 correctly exposes id7198 correctly exposes full name7199 correctly exposes sanitized name7200 correctly exposes provider link7201TaggableQueries7202 keeps MAX_TAGS_IDS in sync with TAGS_LIMIT7203Gitlab::Usage::ServicePing::InstrumentedPayload7204 when building service ping with values7205 builds the service ping payload for the metrics key_paths7206 when building service ping with instrumentations7207 builds the service ping payload for the metrics key_paths7208 when missing instrumentation class7209 returns empty hash7210 with broken metric definition file7211 when instrumentation class name is incorrect7212 tracks error and return fallback7213 when instrumentation class raises TypeError7214 tracks error and return fallback7215 when instrumentation class raises ArgumentError7216 tracks error and return fallback7217 when instrumentation class raises StandardError7218 tracks error and return fallback7219Gitlab::Git::WikiPageVersion7220 #author7221 user exists in gitlab7222 returns the user7223 user does not exist in gitlab7224 returns nil7225Gitlab::Pagination::Keyset::CursorPager7226 #paginate7227 returns the limited relation7228 #finalize7229 passes information about next page to request7230 when retrieving the last page7231 does not build information about the next page7232 when retrieving an empty page7233 does not build information about the next page7234Gitlab::ManifestImport::Metadata7235 #save7236 stores data in Redis with an expiry of EXPIRY_TIME7237 #repositories7238 allows repositories to round-trip with symbol keys7239 uses the fallback when there is nothing in Redis7240 #group_id7241 returns the group ID as an integer7242 uses the fallback when there is nothing in Redis7243NumbersHelper7244 #limited_counter_with_delimiter7245 count: 9, options: {:limit=>10}, expected_result: "9"7246 is expected to eq "9"7247 count: 10, options: {:limit=>10}, expected_result: "10"7248 is expected to eq "10"7249 count: 11, options: {:limit=>10}, expected_result: "10+"7250 is expected to eq "10+"7251 count: 12, options: {:limit=>10}, expected_result: "10+"7252 is expected to eq "10+"7253 count: 999, options: {}, expected_result: "999"7254 is expected to eq "999"7255 count: 1000, options: {}, expected_result: "1,000"7256 is expected to eq "1,000"7257 count: 1001, options: {}, expected_result: "1,000+"7258 is expected to eq "1,000+"7259 count: 1002, options: {}, expected_result: "1,000+"7260 is expected to eq "1,000+"7261Gitlab::Auth::Crowd::Authentication7262 login7263 finds the user if authentication is successful7264 is false if the user does not exist7265 is false if the authentication fails7266 fails when crowd is disabled7267 fails if no login is supplied7268 fails if no password is supplied7269Gitlab::AlertManagement::Payload7270 #parse7271 without a monitoring_tool specified by caller7272 without a monitoring tool in the payload7273 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic7274 with the payload specifying Prometheus7275 is expected to be a kind of Gitlab::AlertManagement::Payload::Prometheus7276 with gitlab-managed attributes7277 is expected to be a kind of Gitlab::AlertManagement::Payload::ManagedPrometheus7278 with the payload specifying an unknown tool7279 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic7280 with monitoring_tool specified by caller7281 as Prometheus7282 with an externally managed prometheus payload7283 is expected to be a kind of Gitlab::AlertManagement::Payload::Prometheus7284 with a self-managed prometheus payload7285 is expected to be a kind of Gitlab::AlertManagement::Payload::ManagedPrometheus7286 as an unknown tool7287 is expected to be a kind of Gitlab::AlertManagement::Payload::Generic7288 with integration specified by caller7289 passes an integration to a specific payload7290CiPlatformMetricsUpdateCronWorker7291 #perform7292 inserts new platform metrics7293Gitlab::WordDiff::Segments::Newline7294 #to_s7295 is expected to eq ""7296GroupLink::GroupGroupLinkEntity7297 matches json schema7298 source7299 exposes `source`7300 is_direct_member7301 exposes `is_direct_member` as true for corresponding group7302 exposes `is_direct_member` as false for other source7303 when current user has `:admin_group_member` permissions7304 when direct_member? is true7305 exposes `can_update` and `can_remove` as `true`7306 when direct_member? is false7307 exposes `can_update` and `can_remove` as `true`7308Gitlab::Favicon7309 .main7310 defaults to favicon.png7311 has yellow favicon for canary7312 uses the custom favicon if a favicon appearance is present7313 asset host7314 returns a relative url when the asset host is not configured7315 returns a full url when the asset host is configured7316 .status_overlay7317 returns the overlay for the status7318 .available_status_names7319 returns the available status names7320Gitlab::ImportExport::LogUtil7321 .exportable_to_log_payload7322 when exportable is a group7323 returns hash with group keys7324 when exportable is a project7325 returns hash with project keys7326 when exportable is a new record7327 returns empty hash7328 when exportable is an unexpected type7329 returns empty hash7330StubMethodCalls7331 #stub_method7332 stubs the method response7333 when calling it on an already stubbed method7334 stubs correctly7335 methods that accept arguments7336 stubs correctly7337 methods that use named arguments7338 stubs correctly7339 stubbing non-existent method7340 stubs correctly7341 #restore_original_method7342 restores original behaviour7343 method is not stubbed7344 is expected to raise NotImplementedError with "some_other_method has not been stubbed on #<Class:0x00007fbaa88245a0>"7345 #restore_original_methods7346 restores original behaviour7347Ml::ExperimentMetadata7348 # order random7349 uniqueness of name7350 is unique within experiment7351 associations7352 is expected to belong to experiment required: false7353Pages::VirtualDomain7354 #certificate and #key pair7355 returns nil if there is no domain provided7356 when Pages domain is provided7357 returns certificate and key from the provided domain7358 #lookup_paths7359 when there is pages domain provided7360 returns collection of projects pages lookup paths sorted by prefix in reverse7361 when there is trim_prefix provided7362 returns collection of projects pages lookup paths sorted by prefix in reverse7363 #cache_key7364 returns the cache key based in the given cache_control7365 returns nil when no cache_control is given7366Gitlab::SidekiqVersioning::Middleware7367 #call7368 sets worker.job_version7369 yields7370 when worker is not ApplicationWorker7371 does not err7372Onboarding::UserAddedWorker#perform7373 # order random7374 behaves like records an onboarding progress action7375 is expected to receive execute({:action=>:user_added}) 1 time7376Gitlab::UsageDataCounters::ServiceUsageDataCounter7377 behaves like a redis usage counter7378 .count(download_payload_click)7379 increments the Service Usage Data download_payload_click counter by 17380 .read(download_payload_click)7381 returns the total number of download_payload_click events7382GitHelper7383 #short_sha7384 is expected to eq "d4e043f6"7385 #strip_signature7386 strips PGP SIGNATURE7387 is expected to eq "Version 1.69.0\n\n"7388 strips PGP MESSAGE7389 is expected to eq "Version 1.69.0\n\n"7390 strips SIGNED MESSAGE7391 is expected to eq "this is Roger's signed tag\n\n"7392WorkItems::Widgets::StartAndDueDateService::UpdateService7393 #before_update_callback7394 when start and due date params are present7395 correctly sets date values7396 when date params are not present7397 does not change work item date values7398 when work item had both date values already set7399 when one of the two params is null7400 sets only one date to null7401Analytics::CycleAnalytics::Stages::ListService7402 returns only the default stages7403 provides the default stages as non-persisted objects7404Gitlab::Pages::Settings7405 #path7406 is expected to eq "the path"7407 when running under a web server outside of test mode7408 logs a DiskAccessDenied error7409 when local_store settings does not exist yet7410 is expected to eq "the path"7411 when local store exists but legacy storage is disabled7412 logs a DiskAccessDenied error7413Types::MergeRequests::ReviewerType7414 behaves like a user type with merge request interaction type7415 is expected to require graphql authorizations :read_user7416 has the expected fields7417 #merge_request_interaction7418 returns the correct type7419 has the correct arguments7420BuildTraceEntity7421 includes build attributes7422 includes trace metadata7423 includes the trace content in json7424Namespaces::PruneAggregationSchedulesWorker#perform7425 schedules a worker per pending aggregation7426memory watchdog7427 when GITLAB_MEMORY_WATCHDOG_ENABLED is truthy7428 when runtime is an application7429 registers a life-cycle hook7430 when runtime is unsupported7431 does not register life-cycle hook7432 when GITLAB_MEMORY_WATCHDOG_ENABLED is false7433 does not register life-cycle hook7434 when GITLAB_MEMORY_WATCHDOG_ENABLED is not set7435 when sidekiq7436 does not register life-cycle hook7437Types::InvitationInterface7438 exposes the expected fields7439 .resolve_type7440 for project member7441 is expected to equal Types::ProjectInvitationType7442 for group member7443 is expected to equal Types::GroupInvitationType7444 for an unknown type7445 raises an error7446Backup::DatabaseBackupError7447 is expected to respond to #config7448 is expected to respond to #db_file_name7449 expects exception message to include database file7450 expects exception message to include database paths being back-up7451Types::CustomerRelations::ContactSortEnum7452 is expected to eq "ContactSort"7453 exposes all the contact sort values7454 behaves like common sort values7455 exposes all the existing common sort values7456Types::ErrorTracking::SentryDetailedErrorType7457 is expected to eq "SentryDetailedError"7458 is expected to require graphql authorizations :read_sentry_issue7459 exposes the expected fields7460Gitlab::GithubImport::Logger7461 #format_message7462 formats strings7463 formats hashes7464Types::MergeRequestSortEnum7465 is expected to eq "MergeRequestSort"7466 exposes all the existing issue sort values7467 behaves like common sort values7468 exposes all the existing common sort values7469Bitbucket::Connection7470 #get7471 calls OAuth2::AccessToken::get7472 #expired?7473 calls connection.expired?7474 #refresh!7475 calls connection.refresh!7476ProductAnalytics::EventParams7477 .parse_event_params7478 extracts all params from raw event7479 .has_required_params?7480 aid and eid are present7481 is expected to be truthy7482 aid and eid are missing7483 is expected to be falsey7484 eid is missing7485 is expected to be falsey7486SecurityReportsMrWidgetPromptExperiment7487 defines a control and candidate7488RuboCop::Cop::BanCatchThrow7489 # order random7490 registers an offense when `catch` or `throw` are used7491 does not register an offense for a method called catch or throw7492shared/groups/_dropdown.html.haml7493 render7494 when a sort option is not selected7495 renders a default sort option7496 when a sort option is selected7497 renders the selected sort option7498Cookies serializer initializer7499 uses JSON serializer by default7500 uses the unsafe hybrid serializer when the environment variables is set7501#<Class:0x00007fbac53110f0>7502 # order random7503 has the expected fields7504Gitlab::LanguageData7505 #extensions7506 loads the extensions once7507Gitlab::Usage::Metrics::Aggregates::Sources::RedisHll7508 .calculate_events_union7509 calls Gitlab::UsageDataCounters::HLLRedisCounter.calculate_events_union7510 prevents from using fallback value as valid union result7511 .calculate_metrics_intersections7512 uses values returned by union to compute the intersection7513 raises error if union is < 07514Types::DesignManagement::DesignVersionEventEnum7515 is expected to eq "DesignVersionEvent"7516 exposes the correct event states7517Types::QueryComplexityType7518 is expected to have graphql fields :limit and :score7519 works when executed7520Gitlab::RuggedInstrumentation7521 .query_time7522 increments query times7523 .increment_query_count7524 tracks query counts7525Gitlab::HashedPath7526 #to_s7527 when path contains a single value7528 returns the disk path7529 when path contains multiple values7530 returns the disk path7531Gitlab::Diff::SuggestionDiff7532 #diff_lines7533 returns diff lines with correct line numbers7534 when the suggestion is for the last line of a file7535 returns a correct value if there is no newline at the end of the file7536Types::Packages::PackageFileType7537 includes package file fields7538Types::Packages::Composer::MetadatumType7539 includes composer metadatum fields7540Rack VULNDB-2550397541 # order random7542 when handling query params in GET requests7543 does not treat semicolons as query delimiters7544Gitlab::Patch::DrawRoute7545 evaluates CE only route7546ProjectMirrorSerializer7547 represents ProjectMirror entities7548Gitlab::NetHttpAdapter7549 #connect7550 uses a Gitlab::BufferedIo instance as @socket7551Evidences::EvidenceSerializer7552 represents an EvidenceEntity entity7553GravatarService7554 #execute7555 replaces the placeholders7556Knapsack report was generated. Preview:7557{7558 "spec/services/merge_requests/build_service_spec.rb": 157.44604646400012,7559 "spec/models/note_spec.rb": 122.2761609539998,7560 "spec/finders/group_members_finder_spec.rb": 108.47764651299985,7561 "spec/uploaders/design_management/design_v432x230_uploader_spec.rb": 74.51973279999993,7562 "spec/finders/groups_finder_spec.rb": 61.48371618400006,7563 "spec/lib/gitlab/database/rename_reserved_paths_migration/v1/rename_namespaces_spec.rb": 53.27282898300018,7564 "spec/models/ci/stage_spec.rb": 26.017789282000194,7565 "spec/tasks/gitlab/seed/group_seed_rake_spec.rb": 46.234400024000024,7566 "spec/serializers/group_child_entity_spec.rb": 27.74279179899986,7567 "spec/services/alert_management/process_prometheus_alert_service_spec.rb": 18.729260277999856,7568 "spec/services/users/destroy_service_spec.rb": 18.849700761999884,7569 "spec/presenters/packages/npm/package_presenter_spec.rb": 12.305044382000233,7570 "spec/policies/issuable_policy_spec.rb": 18.668145382999683,7571 "spec/finders/personal_access_tokens_finder_spec.rb": 25.966855834999933,7572 "spec/models/ci/build_dependencies_spec.rb": 15.818489652000153,7573 "spec/services/merge_requests/approval_service_spec.rb": 24.099323475000347,7574 "spec/services/packages/maven/find_or_create_package_service_spec.rb": 15.474568503000228,7575 "spec/policies/project_snippet_policy_spec.rb": 11.062529784999697,7576 "spec/lib/gitlab/git_access_wiki_spec.rb": 11.567232271000194,7577 "spec/services/todos/destroy/group_private_service_spec.rb": 16.108056744999885,7578 "spec/models/snippet_repository_spec.rb": 13.634237501999905,7579 "spec/models/compare_spec.rb": 16.13344441399977,7580 "spec/lib/gitlab/import_export/project/sample/relation_tree_restorer_spec.rb": 14.754074334000052,7581 "spec/finders/serverless_domain_finder_spec.rb": 14.675385317000291,7582 "spec/models/integrations/discord_spec.rb": 9.371228756000164,7583 "spec/services/projects/hashed_storage/migrate_repository_service_spec.rb": 12.998760659000254,7584 "spec/serializers/pipeline_details_entity_spec.rb": 9.877112165000199,7585 "spec/lib/gitlab/ci/templates/npm_spec.rb": 13.11779003599986,7586 "spec/lib/gitlab/ci/pipeline/expression/lexeme/not_equals_spec.rb": 4.453114895999988,7587 "spec/models/ci/resource_group_spec.rb": 10.676302130000295,7588 "spec/services/ci/job_artifacts/update_unknown_locked_status_service_spec.rb": 11.20226502200012,7589 "spec/lib/gitlab/json_spec.rb": 2.016542151000067,7590 "spec/graphql/mutations/merge_requests/set_draft_spec.rb": 6.482890435999707,7591 "spec/finders/clusters/kubernetes_namespace_finder_spec.rb": 8.974578783999732,7592 "spec/workers/packages/nuget/extraction_worker_spec.rb": 6.742250177999722,7593 "spec/lib/gitlab/template/merge_request_template_spec.rb": 7.610291042999961,7594 "spec/lib/gitlab/github_import/representation/issue_event_spec.rb": 1.7357259420000446,7595 "spec/tasks/gettext_rake_spec.rb": 5.586436062999837,7596 "spec/lib/gitlab/redis/duplicate_jobs_spec.rb": 1.8299141009997584,7597 "spec/graphql/mutations/issues/create_spec.rb": 5.543223027999829,7598 "spec/services/files/delete_service_spec.rb": 7.5085098649997235,7599 "spec/lib/gitlab/template/issue_template_spec.rb": 7.3626302489997215,7600 "spec/helpers/clusters_helper_spec.rb": 2.4942123490000085,7601 "spec/lib/banzai/reference_parser/issue_parser_spec.rb": 4.720356597000318,7602 "spec/graphql/types/base_field_spec.rb": 1.5281849140001214,7603 "spec/graphql/mutations/releases/delete_spec.rb": 5.272001216999797,7604 "spec/models/grafana_integration_spec.rb": 4.381398573999832,7605 "spec/lib/gitlab/gl_repository/repo_type_spec.rb": 1.857924708000155,7606 "spec/graphql/mutations/dependency_proxy/image_ttl_group_policy/update_spec.rb": 3.6092556479998166,7607 "spec/helpers/ci/pipelines_helper_spec.rb": 4.085547356000006,7608 "spec/services/projects/deploy_tokens/create_service_spec.rb": 4.459114953000153,7609 "spec/lib/gitlab/memory/reporter_spec.rb": 1.4577271989996916,7610 "spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb": 1.5609791829997448,7611 "spec/initializers/rest-client-hostname_override_spec.rb": 1.5886522609998792,7612 "spec/models/work_items/type_spec.rb": 2.425446379999812,7613 "spec/lib/banzai/filter/upload_link_filter_spec.rb": 1.9321622639999987,7614 "spec/workers/tasks_to_be_done/create_worker_spec.rb": 5.125029721000374,7615 "spec/lib/gitlab/ci/ansi2json_spec.rb": 1.4991436609998345,7616 "spec/graphql/types/todo_type_spec.rb": 3.786540101000355,7617 "spec/models/snippet_input_action_spec.rb": 1.8524874479999198,7618 "spec/serializers/web_ide_terminal_entity_spec.rb": 4.02396934699982,7619 "spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb": 1.6233121570003277,7620 "spec/lib/gitlab/import_export/group/relation_tree_restorer_spec.rb": 5.440373064000141,7621 "spec/helpers/ci/builds_helper_spec.rb": 3.3962030190000405,7622 "spec/services/deployments/update_service_spec.rb": 6.440415681000104,7623 "spec/workers/merge_request_mergeability_check_worker_spec.rb": 4.601722507999966,7624 "spec/lib/gitaly/server_spec.rb": 1.0290912840000601,7625 "spec/lib/gitlab/github_import/importer/single_endpoint_issue_notes_importer_spec.rb": 4.151811192999958,7626 "spec/lib/gitlab/web_hooks/rate_limiter_spec.rb": 2.5705365359999632,7627 "spec/lib/gitlab/ci/config/entry/include_spec.rb": 0.8274271710001813,7628 "spec/lib/gitlab/ci/status/stage/play_manual_spec.rb": 2.4561563170000227,7629 "spec/lib/gitlab/auth/user_access_denied_reason_spec.rb": 2.4194138129996645,7630 "spec/lib/gitlab/ci/secure_files/mobile_provision_spec.rb": 0.8533872899997732,7631 "spec/lib/gitlab/git/compare_spec.rb": 2.0898856660001,7632 "spec/graphql/resolvers/project_merge_requests_resolver_spec.rb": 2.3289482029999817,7633 "spec/presenters/commit_presenter_spec.rb": 1.8080344170002718,7634 "spec/tasks/gitlab/praefect_rake_spec.rb": 4.676993995999965,7635 "spec/lib/gitlab/etag_caching/middleware_spec.rb": 1.050655005000408,7636 "spec/tooling/lib/tooling/find_codeowners_spec.rb": 1.2027930790000028,7637 "spec/uploaders/gitlab_uploader_spec.rb": 0.9253240200000619,7638 "spec/workers/external_service_reactive_caching_worker_spec.rb": 2.166249543000049,7639 "spec/lib/gitlab/database/partitioning/sliding_list_strategy_spec.rb": 1.447018104000108,7640 "spec/models/concerns/sensitive_serializable_hash_spec.rb": 1.0790685029996894,7641 "spec/views/notify/change_in_merge_request_draft_status_email.html.haml_spec.rb": 3.8279399040002318,7642 "spec/lib/gitlab/kubernetes/helm/v3/patch_command_spec.rb": 0.8180219609998858,7643 "spec/lib/gitlab/kubernetes/helm/v3/delete_command_spec.rb": 0.8029043200003798,7644 "spec/rubocop/formatter/graceful_formatter_spec.rb": 0.8932780630002526,7645 "spec/lib/gitlab/repository_cache/preloader_spec.rb": 3.256752747000064,7646 "spec/tasks/gitlab/uploads/check_rake_spec.rb": 3.19211973199981,7647 "spec/lib/gitlab/phabricator_import/conduit/response_spec.rb": 0.7108275269997648,7648 "spec/helpers/time_zone_helper_spec.rb": 1.1277467559998513,7649 "spec/models/concerns/loose_index_scan_spec.rb": 2.0280756490001295,7650 "spec/models/bulk_imports/export_spec.rb": 1.5538119539996842,7651 "spec/lib/gitlab/job_waiter_spec.rb": 2.5843156860000818,7652 "spec/lib/gitlab/jira_import/base_importer_spec.rb": 1.7850256070000796,7653 "spec/workers/gitlab/jira_import/stage/start_import_worker_spec.rb": 1.4647898110001734,7654 "spec/workers/gitlab/import/stuck_project_import_jobs_worker_spec.rb": 2.5985960259999956,7655 "spec/services/ci/generate_codequality_mr_diff_report_service_spec.rb": 3.041121533000023,7656 "spec/initializers/net_http_patch_spec.rb": 0.6188036829998964,7657 "spec/graphql/mutations/todos/mark_done_spec.rb": 2.0647091260002526,7658 "spec/helpers/version_check_helper_spec.rb": 0.8864407940000092,7659 "spec/services/packages/create_dependency_service_spec.rb": 2.7009339269998236,7660 "spec/rubocop/cop/avoid_return_from_blocks_spec.rb": 1.0537496709998777,7661 "spec/services/snippets/update_repository_storage_service_spec.rb": 1.4031323330000305,7662 "spec/services/import/gitlab_projects/create_project_service_spec.rb": 1.5234639459999926,7663 "spec/models/merge_request/diff_commit_user_spec.rb": 0.6717616189998807,7664 "spec/models/integrations/chat_message/push_message_spec.rb": 0.8352551570001197,7665 "spec/lib/gitlab/import_export/base/object_builder_spec.rb": 2.5772299169998405,7666 "spec/lib/error_tracking/sentry_client/api_urls_spec.rb": 0.7497448340000119,7667 "spec/lib/gitlab/usage/metrics/instrumentations/count_imported_projects_total_metric_spec.rb": 2.678164250000009,7668 "spec/components/pajamas/checkbox_component_spec.rb": 0.6477515520000452,7669 "spec/services/ci/create_pipeline_service/scripts_spec.rb": 2.1260340120002184,7670 "spec/finders/autocomplete/project_finder_spec.rb": 2.2115023060000567,7671 "spec/services/snippets/count_service_spec.rb": 1.9307728059998226,7672 "spec/lib/gitlab/ci/reports/security/aggregated_report_spec.rb": 1.534073545999945,7673 "spec/initializers/doorkeeper_spec.rb": 0.9088387919996421,7674 "spec/lib/gitlab/database/query_analyzers/query_recorder_spec.rb": 0.4912207029997262,7675 "spec/graphql/resolvers/ci/runner_projects_resolver_spec.rb": 1.6933693240002867,7676 "spec/lib/api/validations/validators/file_path_spec.rb": 0.6066848850000497,7677 "spec/graphql/resolvers/kas/agent_connections_resolver_spec.rb": 1.7127719019999859,7678 "spec/lib/bulk_imports/pipeline_spec.rb": 0.7099115569999412,7679 "spec/models/packages/composer/metadatum_spec.rb": 1.0298684140002479,7680 "spec/finders/groups/projects_requiring_authorizations_refresh/on_transfer_finder_spec.rb": 3.107973018999928,7681 "spec/lib/gitlab/database/load_balancing/setup_spec.rb": 1.086318229000426,7682 "spec/services/milestones/create_service_spec.rb": 1.5709006829997634,7683 "spec/workers/merge_requests/execute_approval_hooks_worker_spec.rb": 1.6038184909998563,7684 "spec/serializers/context_commits_diff_entity_spec.rb": 1.4297908730000017,7685 "spec/helpers/keyset_helper_spec.rb": 1.7595487389999107,7686 "spec/lib/system_check/base_check_spec.rb": 0.39078762100007225,7687 "spec/workers/hashed_storage/project_rollback_worker_spec.rb": 1.5349056160002874,7688 "spec/models/alert_management/metric_image_spec.rb": 0.9399816599998303,7689 "spec/lib/gitlab/ci/config/entry/trigger/forward_spec.rb": 0.6053135249999286,7690 "spec/services/incident_management/timeline_event_tags/create_service_spec.rb": 1.8278153230003227,7691 "spec/models/concerns/optionally_search_spec.rb": 0.4941046419999111,7692 "spec/services/users/block_service_spec.rb": 1.4926148180002201,7693 "spec/services/base_count_service_spec.rb": 0.4729404949998752,7694 "spec/lib/gitlab/ci/config/entry/inherit/default_spec.rb": 0.6001323249997768,7695 "spec/lib/gitlab/middleware/multipart/handler_spec.rb": 0.588723815999856,7696 "spec/lib/sidebars/projects/menus/ci_cd_menu_spec.rb": 0.5897800859997915,7697 "spec/lib/gitlab/unicode_spec.rb": 0.659481150999909,7698 "spec/models/work_items/widgets/start_and_due_date_spec.rb": 0.9056269429997883,7699 "spec/lib/gitlab/auth/result_spec.rb": 0.7379465140002139,7700 "spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb": 1.866754299999684,7701 "spec/models/users/calloutable_spec.rb": 0.7330327059999036,7702 "spec/lib/api/validations/validators/absence_spec.rb": 0.6654850600002646,7703 "spec/views/projects/merge_requests/_close_reopen_draft_report_toggle.html.haml_spec.rb": 1.8618069710000782,7704 "spec/rubocop/cop/gitlab/avoid_feature_get_spec.rb": 0.5264321009999549,7705 "spec/validators/import/gitlab_projects/remote_file_validator_spec.rb": 0.4233165089999602,7706 "spec/lib/gitlab/ci/config/entry/stage_spec.rb": 0.6616208209998149,7707 "spec/lib/banzai/renderer_spec.rb": 0.7445823349999046,7708 "spec/workers/ci/pipeline_artifacts/expire_artifacts_worker_spec.rb": 0.8064223190003759,7709 "spec/lib/error_tracking/sentry_client/repo_spec.rb": 0.9170613310002409,7710 "spec/serializers/merge_request_sidebar_basic_entity_spec.rb": 1.5047853879996183,7711 "spec/lib/gitlab/import_export/duration_measuring_spec.rb": 0.39880293000032907,7712 "spec/workers/gitlab/jira_import/stage/import_attachments_worker_spec.rb": 1.0663982609999039,7713 "spec/services/ci/create_pipeline_service/pre_post_stages_spec.rb": 1.7772169370000483,7714 "spec/workers/issue_due_scheduler_worker_spec.rb": 2.535042211000018,7715 "spec/services/base_container_service_spec.rb": 0.4311525180000899,7716 "spec/finders/packages/generic/package_finder_spec.rb": 0.8724217550002322,7717 "spec/graphql/mutations/custom_emoji/destroy_spec.rb": 1.6567278869997608,7718 "spec/lib/gitlab/ci/build/artifacts/adapters/gzip_stream_spec.rb": 0.5135560710000391,7719 "spec/serializers/analytics/cycle_analytics/stage_entity_spec.rb": 0.49273731299990686,7720 "spec/lib/gitlab/utils/batch_loader_spec.rb": 0.44491726599972026,7721 "spec/serializers/import/manifest_provider_repo_entity_spec.rb": 0.7813183319999553,7722 "spec/models/concerns/taggable_queries_spec.rb": 0.39720740000029764,7723 "spec/lib/gitlab/usage/service_ping/instrumented_payload_spec.rb": 3.605611931999647,7724 "spec/lib/gitlab/git/wiki_page_version_spec.rb": 1.2452186369996525,7725 "spec/lib/gitlab/pagination/keyset/cursor_pager_spec.rb": 0.9487803590000112,7726 "spec/lib/gitlab/manifest_import/metadata_spec.rb": 0.38588458100002754,7727 "spec/helpers/numbers_helper_spec.rb": 0.8041555999998309,7728 "spec/lib/gitlab/auth/crowd/authentication_spec.rb": 0.6256091840000408,7729 "spec/lib/gitlab/alert_management/payload_spec.rb": 0.7216129769999498,7730 "spec/workers/ci_platform_metrics_update_cron_worker_spec.rb": 0.47906774400007635,7731 "spec/lib/gitlab/word_diff/segments/newline_spec.rb": 0.4240448179998566,7732 "spec/serializers/group_link/group_group_link_entity_spec.rb": 0.7401701150001827,7733 "spec/lib/gitlab/favicon_spec.rb": 0.5240272109999751,7734 "spec/lib/gitlab/import_export/log_util_spec.rb": 0.5699152679999315,7735 "spec/support_specs/helpers/stub_method_calls_spec.rb": 0.7073282879996441,7736 "spec/models/ml/experiment_metadata_spec.rb": 0.7632238030000735,7737 "spec/models/pages/virtual_domain_spec.rb": 0.5434780790001241,7738 "spec/lib/gitlab/sidekiq_versioning/middleware_spec.rb": 0.30679172699956325,7739 "spec/workers/onboarding/user_added_worker_spec.rb": 0.5420109489996321,7740 "spec/lib/gitlab/usage_data_counters/service_usage_data_counter_spec.rb": 0.4859226140001738,7741 "spec/helpers/git_helper_spec.rb": 0.5424736690001737,7742 "spec/services/work_items/widgets/start_and_due_date_service/update_service_spec.rb": 0.8641229760000897,7743 "spec/services/analytics/cycle_analytics/stages/list_service_spec.rb": 0.7891991410001538,7744 "spec/lib/gitlab/pages/settings_spec.rb": 0.416050138999708,7745 "spec/graphql/types/merge_requests/reviewer_type_spec.rb": 0.4228406380002525,7746 "spec/serializers/build_trace_entity_spec.rb": 0.6921809190002932,7747 "spec/workers/namespaces/prune_aggregation_schedules_worker_spec.rb": 1.1012339079998128,7748 "spec/initializers/memory_watchdog_spec.rb": 0.4154659390001143,7749 "spec/graphql/types/invitation_interface_spec.rb": 0.4462489060001644,7750 "spec/lib/backup/database_backup_error_spec.rb": 0.5718549769999299,7751 "spec/graphql/types/customer_relations/contact_sort_enum_spec.rb": 0.5368380899999465,7752 "spec/graphql/types/error_tracking/sentry_detailed_error_type_spec.rb": 0.35877987300000314,7753 "spec/lib/gitlab/github_import/logger_spec.rb": 0.5936011460003101,7754 "spec/graphql/types/merge_request_sort_enum_spec.rb": 0.48307802399995126,7755 "spec/lib/bitbucket/connection_spec.rb": 0.4527118259998133,7756 "spec/lib/product_analytics/event_params_spec.rb": 0.4387357969999357,7757 "spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb": 0.37976981199972215,7758 "spec/rubocop/cop/ban_catch_throw_spec.rb": 0.4773384640002405,7759 "spec/views/shared/groups/_dropdown.html.haml_spec.rb": 0.5854701570001453,7760 "spec/initializers/cookies_serializer_spec.rb": 0.46556874499992773,7761 "spec/graphql/types/ci/project_variable_connection_type_spec.rb": 0.48565600399979303,7762 "spec/lib/gitlab/language_data_spec.rb": 0.4110040690002279,7763 "spec/lib/gitlab/usage/metrics/aggregates/sources/redis_hll_spec.rb": 0.42886532800002897,7764 "spec/graphql/types/design_management/design_version_event_enum_spec.rb": 0.4671267150001768,7765 "spec/graphql/types/query_complexity_type_spec.rb": 0.30879232699999193,7766 "spec/lib/gitlab/rugged_instrumentation_spec.rb": 0.3696821919998001,7767 "spec/lib/gitlab/hashed_path_spec.rb": 0.2733891890002269,7768 "spec/lib/gitlab/diff/suggestion_diff_spec.rb": 0.4220411590004005,7769 "spec/graphql/types/packages/package_file_type_spec.rb": 0.26126890000023195,7770 "spec/graphql/types/packages/composer/metadatum_type_spec.rb": 0.4272248080001191,7771 "spec/initializers/rack_VULNDB-255039_patch_spec.rb": 0.5476091000000451,7772 "spec/lib/gitlab/patch/draw_route_spec.rb": 0.39014771199981624,7773 "spec/serializers/project_mirror_serializer_spec.rb": 0.45260914700020294,7774 "spec/lib/gitlab/net_http_adapter_spec.rb": 0.4327266269997381,7775 "spec/serializers/evidences/evidence_serializer_spec.rb": 0.6100527950002288,7776 "spec/services/gravatar_service_spec.rb": 0.34727286399993327777}7778Knapsack global time execution for tests: 21m 50s7779Pending: (Failures listed here are expected and do not affect your suite's status)7780 1) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #cache_dir behaves like matches the method pattern 7781 # No pattern provided, skipping.7782 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87783 2) DesignManagement::DesignV432x230Uploader behaves like builds correct paths #work_dir behaves like matches the method pattern 7784 # No pattern provided, skipping.7785 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87786 3) DesignManagement::DesignV432x230Uploader 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 4) DesignManagement::DesignV432x230Uploader behaves like builds correct paths .base_dir behaves like matches the method pattern 7790 # No pattern provided, skipping.7791 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87792 5) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #cache_dir behaves like matches the method pattern 7793 # No pattern provided, skipping.7794 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87795 6) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #work_dir behaves like matches the method pattern 7796 # No pattern provided, skipping.7797 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87798 7) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths #relative_path is relative7799 # Path not set, skipping.7800 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:407801 8) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .absolute_path behaves like matches the method pattern 7802 # No pattern provided, skipping.7803 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87804 9) DesignManagement::DesignV432x230Uploader object_store is REMOTE behaves like builds correct paths .base_dir behaves like matches the method pattern 7805 # No pattern provided, skipping.7806 # ./spec/support/shared_examples/uploaders/gitlab_uploader_shared_examples.rb:87807Finished in 21 minutes 53 seconds (files took 1 minute 15.42 seconds to load)78083151 examples, 0 failures, 9 pending7809Randomized with seed 217447810[TEST PROF INFO] Time spent in factories: 12:58.682 (57.54% of total time)7811RSpec exited with 0.7812No examples to retry, congrats!7814Not uploading cache ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7815Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-2.7-16 due to policy7817Uploading artifacts...7818coverage/: found 5 matching files and directories 7819crystalball/: found 2 matching files and directories 7820deprecations/: found 4 matching files and directories 7821knapsack/: found 3 matching files and directories 7822WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory 7823rspec/: found 11 matching files and directories 7824WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory 7825log/*.log: found 17 matching files and directories 7826WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741014/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com7827WARNING: Retrying... context=artifacts-uploader error=request redirected7828Uploading artifacts as "archive" to coordinator... 201 Created id=3443741014 responseStatus=201 Created token=kN3pLpbM7829Uploading artifacts...7830rspec/junit_rspec.xml: found 1 matching files and directories 7831WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/3443741014/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com7832WARNING: Retrying... context=artifacts-uploader error=request redirected7833Uploading artifacts as "junit" to coordinator... 201 Created id=3443741014 responseStatus=201 Created token=kN3pLpbM7835Job succeeded