rspec unit pg13 23/28
Passed Started
by
@alipniagov

Aleksei Lipniagov
1Running with gitlab-runner 15.9.0~beta.212.g8ccc65e7 (8ccc65e7)2 on green-3.private.runners-manager.gitlab.com/gitlab.com/gitlab-org QuQPoFsC, system ID: s_fc023362bf2f3 feature flags: FF_NETWORK_PER_BUILD:true, 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-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...7Starting service postgres:13 ...8Pulling docker image postgres:13 ...9Using docker image sha256:ab3945c8cf7160ed1381efd47c6a203ba9a84fc7327a17e4a389601eb3738b3b for postgres:13 with digest postgres@sha256:67edfda7deeecfda8e40c9b00818eae76573a9e9466ba7edbc536662d128173b ...10Starting service redis:6.2-alpine ...11Pulling docker image redis:6.2-alpine ...12Using docker image sha256:3616f0c0705d2a35d30dde109daf3cbe58ae7284121aafa6f5cfa987db98d1a8 for redis:6.2-alpine with digest redis@sha256:63e95f069a7ee668f1fcd0b0f8865e473510f98b56e5db4c8517d6cfbd073470 ...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-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 ...16Using docker image sha256:667531aab48d3d73584a6ae24a2aea1de3972ab11b24d34d65740089d1635940 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:32a5178f22d0b62740cacea13dc02b6d5a1c9528c0a9af52124abe4455dd0a15 ...18Running on runner-quqpofsc-project-278964-concurrent-0 via runner-quqpofsc-private-1681303415-673f1243...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: 141454, done. 25remote: Counting objects: 100% (141454/141454), done. 26remote: Compressing objects: 100% (90405/90405), done. 27remote: Total 141454 (delta 62786), reused 98969 (delta 45741), pack-reused 0 28Receiving objects: 100% (141454/141454), 122.89 MiB | 25.29 MiB/s, done.29Resolving deltas: 100% (62786/62786), done.31 * [new ref] refs/pipelines/835170457 -> refs/pipelines/83517045732Checking out aa21306d as detached HEAD (ref is refs/merge-requests/116974/merge)...33Skipping Git submodules setup34$ git remote set-url origin "${CI_REPOSITORY_URL}"36Checking cache for ruby-gems-debian-bullseye-ruby-3.0-16...37Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/ruby-gems-debian-bullseye-ruby-3.0-16 38Successfully extracted cache39Checking cache for gitaly-ruby-gems-debian-bullseye-ruby-3.0-16...40Downloading cache.zip from https://storage.googleapis.com/gitlab-com-runners-cache/project/278964/gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 41Successfully extracted cache43Downloading artifacts for compile-test-assets (4101394559)...44Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394559 responseStatus=200 OK token=64_7SxsJ45Downloading artifacts for detect-tests (4101394577)...46Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394577 responseStatus=200 OK token=64_7SxsJ47Downloading artifacts for retrieve-tests-metadata (4101394581)...48Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394581 responseStatus=200 OK token=64_7SxsJ49Downloading artifacts for setup-test-env (4101394571)...50Downloading artifacts from coordinator... ok host=storage.googleapis.com id=4101394571 responseStatus=200 OK token=64_7SxsJ52Using docker image sha256:667531aab48d3d73584a6ae24a2aea1de3972ab11b24d34d65740089d1635940 for registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13:rubygems-3.4-git-2.36-lfs-2.9-chrome-109-yarn-1.22-graphicsmagick-1.3.36 with digest registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-3.0.patched-golang-1.19-rust-1.65-node-16.14-postgresql-13@sha256:32a5178f22d0b62740cacea13dc02b6d5a1c9528c0a9af52124abe4455dd0a15 ...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.sh711Using decomposed database config (config/database.yml.decomposed-postgresql)712Geo DB won't be set up.713$ setup_db_user_only714CREATE ROLE715GRANT716==> 'setup_db_user_only' succeeded in 1 seconds.717$ bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes718Dropped database 'gitlabhq_test'719Dropped database 'gitlabhq_test_ci'720Created database 'gitlabhq_test'721Created database 'gitlabhq_test_ci'722main: == [advisory_lock_connection] object_id: 273860, pg_backend_pid: 99723main: == [advisory_lock_connection] object_id: 273860, pg_backend_pid: 99724ci: == [advisory_lock_connection] object_id: 273960, pg_backend_pid: 101725ci: == [advisory_lock_connection] object_id: 273960, pg_backend_pid: 101726==> 'bundle exec rake db:drop db:create db:schema:load db:migrate gitlab:db:lock_writes' succeeded in 50 seconds.727$ setup_db_praefect728SELECT pg_catalog.set_config('search_path', '', false);729CREATE DATABASE praefect_test ENCODING 'UTF8';730==> 'setup_db_praefect' succeeded in 0 seconds.731$ source ./scripts/rspec_helpers.sh732$ run_timed_command "gem install knapsack --no-document"733$ gem install knapsack --no-document734Successfully installed knapsack-4.0.07351 gem installed736$ echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-spawn[collapsed=true]\r\e[0KStarting Gitaly"737==> 'gem install knapsack --no-document' succeeded in 1 seconds.757$ rspec_paralellized_job "--tag ~quarantine --tag ~level:background_migration"758SKIP_FLAKY_TESTS_AUTOMATICALLY: false759RETRY_FAILED_TESTS_IN_NEW_PROCESS: true760KNAPSACK_GENERATE_REPORT: true761FLAKY_RSPEC_GENERATE_REPORT: true762KNAPSACK_TEST_FILE_PATTERN: spec/{bin,channels,components,config,contracts,db,dependencies,elastic,elastic_integration,experiments,factories,finders,frontend,graphql,haml_lint,helpers,initializers,lib,metrics_server,models,policies,presenters,rack_servers,replicators,routing,rubocop,scripts,serializers,services,sidekiq,sidekiq_cluster,spam,support_specs,tasks,uploaders,validators,views,workers,tooling}{,/**/}*_spec.rb763KNAPSACK_LOG_LEVEL: debug764KNAPSACK_REPORT_PATH: knapsack/rspec_unit_pg13_23_28_report.json765FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json766FLAKY_RSPEC_REPORT_PATH: rspec/flaky/all_rspec_unit_pg13_23_28_report.json767NEW_FLAKY_RSPEC_REPORT_PATH: rspec/flaky/new_rspec_unit_pg13_23_28_report.json768SKIPPED_FLAKY_TESTS_REPORT_PATH: rspec/flaky/skipped_flaky_tests_rspec_unit_pg13_23_28_report.txt769CRYSTALBALL: 770Knapsack node specs:771spec/services/groups/transfer_service_spec.rb772spec/services/ci/create_downstream_pipeline_service_spec.rb773spec/models/project_wiki_spec.rb774spec/models/wiki_page_spec.rb775spec/workers/post_receive_spec.rb776spec/lib/gitlab/github_import/importer/protected_branch_importer_spec.rb777spec/lib/gitlab/import_export/project/relation_factory_spec.rb778spec/services/issuable/bulk_update_service_spec.rb779spec/models/resource_milestone_event_spec.rb780spec/services/members/approve_access_request_service_spec.rb781spec/lib/api/helpers_spec.rb782spec/finders/todos_finder_spec.rb783spec/services/packages/npm/generate_metadata_service_spec.rb784spec/lib/gitlab/background_migration/fix_duplicate_project_name_and_path_spec.rb785spec/lib/gitlab/background_migration/remove_vulnerability_finding_links_spec.rb786spec/services/files/multi_service_spec.rb787spec/models/discussion_spec.rb788spec/models/ci/bridge_spec.rb789spec/models/hooks/service_hook_spec.rb790spec/models/concerns/subscribable_spec.rb791spec/policies/blob_policy_spec.rb792spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb793spec/lib/gitlab/ci/variables/collection_spec.rb794spec/models/concerns/routable_spec.rb795spec/lib/gitlab/ci/runner/backoff_spec.rb796spec/models/active_session_spec.rb797spec/lib/gitlab/json_cache_spec.rb798spec/lib/gitlab/database/with_lock_retries_spec.rb799spec/models/clusters/agent_spec.rb800spec/lib/gitlab/background_migration/migrate_evidences_for_vulnerability_findings_spec.rb801spec/models/integrations/base_chat_notification_spec.rb802spec/services/ci/stuck_builds/drop_running_service_spec.rb803spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb804spec/services/issues/reopen_service_spec.rb805spec/services/system_notes/design_management_service_spec.rb806spec/services/todos/destroy/unauthorized_features_service_spec.rb807spec/lib/gitlab/email/receiver_spec.rb808spec/lib/banzai/pipeline/full_pipeline_spec.rb809spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb810spec/views/groups/edit.html.haml_spec.rb811spec/lib/gitlab/database/migrations/constraints_helpers_spec.rb812spec/lib/gitlab/gitaly_client/repository_service_spec.rb813spec/helpers/wiki_helper_spec.rb814spec/lib/gitlab/metrics/web_transaction_spec.rb815spec/models/incident_management/timeline_event_spec.rb816spec/models/clusters/kubernetes_namespace_spec.rb817spec/scripts/review_apps/automated_cleanup_spec.rb818spec/models/ci/job_token/allowlist_spec.rb819spec/lib/gitaly/server_spec.rb820spec/lib/gitlab/ci/build/auto_retry_spec.rb821spec/presenters/packages/conan/package_presenter_spec.rb822spec/views/shared/_label_row.html.haml_spec.rb823spec/helpers/ci/builds_helper_spec.rb824spec/tasks/gitlab/snippets_rake_spec.rb825spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb826spec/lib/sidebars/menu_spec.rb827spec/lib/gitlab/web_hooks/rate_limiter_spec.rb828spec/services/boards/lists/list_service_spec.rb829spec/lib/gitlab/conflict/file_collection_spec.rb830spec/services/projects/hashed_storage/base_attachment_service_spec.rb831spec/presenters/snippet_presenter_spec.rb832spec/models/work_items/type_spec.rb833spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb834spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb835spec/graphql/resolvers/crm/organizations_resolver_spec.rb836spec/lib/gitlab/object_hierarchy_spec.rb837spec/lib/gitlab/http_io_spec.rb838spec/lib/gitlab/email/reply_parser_spec.rb839spec/helpers/button_helper_spec.rb840spec/lib/gitlab/search/params_spec.rb841spec/lib/gitlab/ci/config/entry/prefix_spec.rb842spec/models/packages/tag_spec.rb843spec/models/bulk_imports/export_status_spec.rb844spec/services/task_list_toggle_service_spec.rb845spec/presenters/label_presenter_spec.rb846spec/lib/gitlab/memory/watchdog/configurator_spec.rb847spec/serializers/issue_board_entity_spec.rb848spec/services/update_merge_request_metrics_service_spec.rb849spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb850spec/services/ci/create_pipeline_service/parallel_spec.rb851spec/workers/work_items/import_work_items_csv_worker_spec.rb852spec/lib/gitlab/visibility_level_checker_spec.rb853spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb854spec/rubocop/formatter/graceful_formatter_spec.rb855spec/lib/gitlab/import_export/remote_stream_upload_spec.rb856spec/workers/ci/drop_pipeline_worker_spec.rb857spec/services/packages/mark_package_files_for_destruction_service_spec.rb858spec/lib/gitlab/changelog/committer_spec.rb859spec/views/shared/snippets/_snippet.html.haml_spec.rb860spec/finders/merge_requests/by_approvals_finder_spec.rb861spec/graphql/resolvers/tree_resolver_spec.rb862spec/graphql/mutations/issues/set_subscription_spec.rb863spec/graphql/types/base_argument_spec.rb864spec/support_specs/graphql/arguments_spec.rb865spec/lib/bitbucket_server/connection_spec.rb866spec/lib/gitlab/process_management_spec.rb867spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb868spec/workers/concerns/project_import_options_spec.rb869spec/lib/gitlab/import_sources_spec.rb870spec/services/merge_requests/mergeability/logger_spec.rb871spec/tasks/tokens_spec.rb872spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb873spec/models/users_star_project_spec.rb874spec/services/packages/create_event_service_spec.rb875spec/lib/gitlab/background_migration/delete_orphaned_operational_vulnerabilities_spec.rb876spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb877spec/tasks/rubocop_rake_spec.rb878spec/lib/gitlab/import/merge_request_helpers_spec.rb879spec/services/groups/deploy_tokens/create_service_spec.rb880spec/graphql/resolvers/project_resolver_spec.rb881spec/lib/gitlab/database/migrations/batched_migration_last_id_spec.rb882spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb883spec/validators/devise_email_validator_spec.rb884spec/services/loose_foreign_keys/batch_cleaner_service_spec.rb885spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb886spec/lib/gitlab/database/migrations/instrumentation_spec.rb887spec/lib/gitlab/database/postgres_partition_spec.rb888spec/services/protected_branches/create_service_spec.rb889spec/models/aws/role_spec.rb890spec/lib/gitlab/background_migration/backfill_project_namespace_details_spec.rb891spec/tooling/danger/feature_flag_spec.rb892spec/services/groups/auto_devops_service_spec.rb893spec/lib/gitlab/blame_spec.rb894spec/models/merge_request_reviewer_spec.rb895spec/lib/gitlab/database/postgres_constraint_spec.rb896spec/lib/json_web_token/rsa_token_spec.rb897spec/models/project_repository_spec.rb898spec/lib/api/entities/project_import_status_spec.rb899spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb900spec/lib/gitlab/background_migration/batching_strategies/base_strategy_spec.rb901spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb902spec/graphql/resolvers/projects/services_resolver_spec.rb903spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb904spec/presenters/search_service_presenter_spec.rb905spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb906spec/graphql/types/commit_type_spec.rb907spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb908spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb909spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb910spec/serializers/context_commits_diff_entity_spec.rb911spec/workers/delete_merged_branches_worker_spec.rb912spec/graphql/resolvers/data_transfer/project_data_transfer_resolver_spec.rb913spec/lib/bulk_imports/groups/pipelines/namespace_settings_pipeline_spec.rb914spec/models/design_management/design_action_spec.rb915spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb916spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb917spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb918spec/lib/gitlab/audit/deploy_key_author_spec.rb919spec/rubocop/cop/migration/drop_table_spec.rb920spec/models/concerns/editable_spec.rb921spec/scripts/generate_rspec_pipeline_spec.rb922spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb923spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb924spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb925spec/lib/api/ci/helpers/runner_helpers_spec.rb926spec/workers/projects/update_repository_storage_worker_spec.rb927spec/services/customer_relations/organizations/create_service_spec.rb928spec/workers/ci/parse_secure_file_metadata_worker_spec.rb929spec/rubocop/cop/sidekiq_load_balancing/worker_data_consistency_spec.rb930spec/views/projects/hooks/edit.html.haml_spec.rb931spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb932spec/services/projects/fetch_statistics_increment_service_spec.rb933spec/serializers/analytics_summary_serializer_spec.rb934spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb935spec/models/plan_spec.rb936spec/components/pajamas/spinner_component_spec.rb937spec/lib/gitlab/terraform/state_migration_helper_spec.rb938spec/support_specs/helpers/redis_commands/recorder_spec.rb939spec/lib/gitlab/external_authorization_spec.rb940spec/rubocop/cop/code_reuse/service_class_spec.rb941spec/bin/diagnostic_reports_uploader_spec.rb942spec/lib/gitlab/pagination/keyset/request_context_spec.rb943spec/helpers/blame_helper_spec.rb944spec/graphql/types/member_interface_spec.rb945spec/models/concerns/as_cte_spec.rb946spec/models/clusters/agents/group_authorization_spec.rb947spec/rubocop/cop/migration/prevent_global_enable_lock_retries_with_disable_ddl_transaction_spec.rb948spec/lib/gitlab/ci/config/header/spec_spec.rb949spec/serializers/import/provider_repo_serializer_spec.rb950spec/services/ci/pipeline_creation/start_pipeline_service_spec.rb951spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb952spec/rubocop/cop/gitlab/no_code_coverage_comment_spec.rb953spec/lib/gitlab/health_checks/server_spec.rb954spec/models/term_agreement_spec.rb955spec/services/chat_names/authorize_user_service_spec.rb956spec/initializers/net_http_response_patch_spec.rb957spec/serializers/group_deploy_key_entity_spec.rb958spec/lib/gitlab/request_endpoints_spec.rb959spec/workers/upload_checksum_worker_spec.rb960spec/lib/gitlab/database/migrations/extension_helpers_spec.rb961spec/lib/gitlab/import_formatter_spec.rb962spec/workers/concerns/gitlab/notify_upon_death_spec.rb963spec/services/work_items/prepare_import_csv_service_spec.rb964spec/lib/gitlab/string_placeholder_replacer_spec.rb965spec/graphql/types/alert_management/status_enum_spec.rb966spec/rubocop/cop/migration/background_migrations_spec.rb967spec/models/bulk_imports/file_transfer_spec.rb968spec/lib/banzai/filter/markdown_engines/base_spec.rb969spec/graphql/types/clusters/agent_activity_event_type_spec.rb970spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb971spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb972spec/graphql/types/ci/test_report_summary_type_spec.rb973spec/workers/gitlab/github_import/import_pull_request_merged_by_worker_spec.rb974spec/lib/api/api_spec.rb975spec/graphql/types/ci_configuration/sast/type_spec.rb976spec/validators/future_date_validator_spec.rb977spec/serializers/diff_line_entity_spec.rb978spec/graphql/types/ci/config_variable_type_spec.rb979spec/models/container_registry/data_repair_detail_spec.rb980spec/graphql/types/issue_status_count_type_spec.rb981spec/lib/gitlab/sidekiq_middleware/query_analyzer_spec.rb982spec/lib/gitlab/health_checks/middleware_spec.rb983spec/graphql/types/time_tracking/timelog_sort_enum_spec.rb984spec/models/preloaders/runner_manager_policy_preloader_spec.rb985spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb986spec/graphql/types/ci/test_suite_type_spec.rb987spec/lib/gitlab/ci/reports/security/scanned_resource_spec.rb988spec/graphql/types/ci_configuration/sast/entity_type_spec.rb989spec/scripts/api/get_package_and_test_job_spec.rb990spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb991spec/finders/database/batched_background_migrations_finder_spec.rb992spec/lib/gitlab/quick_actions/dsl_spec.rb993spec/graphql/types/dependency_proxy/manifest_type_spec.rb994spec/workers/packages/composer/cache_cleanup_worker_spec.rb995spec/models/blob_viewer/gemspec_spec.rb996spec/lib/sidebars/projects/super_sidebar_menus/manage_menu_spec.rb997spec/helpers/tooling/visual_review_helper_spec.rb998spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb999spec/serializers/ci/lint/job_entity_spec.rb1000spec/initializers/session_store_spec.rb1001spec/lib/bitbucket/collection_spec.rb1002spec/models/namespace_ci_cd_setting_spec.rb1003Filter specs:1004Running specs:1005Running all node tests without filter1006spec/services/groups/transfer_service_spec.rb1007spec/services/ci/create_downstream_pipeline_service_spec.rb1008spec/models/project_wiki_spec.rb1009spec/models/wiki_page_spec.rb1010spec/workers/post_receive_spec.rb1011spec/lib/gitlab/github_import/importer/protected_branch_importer_spec.rb1012spec/lib/gitlab/import_export/project/relation_factory_spec.rb1013spec/services/issuable/bulk_update_service_spec.rb1014spec/models/resource_milestone_event_spec.rb1015spec/services/members/approve_access_request_service_spec.rb1016spec/lib/api/helpers_spec.rb1017spec/finders/todos_finder_spec.rb1018spec/services/packages/npm/generate_metadata_service_spec.rb1019spec/lib/gitlab/background_migration/fix_duplicate_project_name_and_path_spec.rb1020spec/lib/gitlab/background_migration/remove_vulnerability_finding_links_spec.rb1021spec/services/files/multi_service_spec.rb1022spec/models/discussion_spec.rb1023spec/models/ci/bridge_spec.rb1024spec/models/hooks/service_hook_spec.rb1025spec/models/concerns/subscribable_spec.rb1026spec/policies/blob_policy_spec.rb1027spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb1028spec/lib/gitlab/ci/variables/collection_spec.rb1029spec/models/concerns/routable_spec.rb1030spec/lib/gitlab/ci/runner/backoff_spec.rb1031spec/models/active_session_spec.rb1032spec/lib/gitlab/json_cache_spec.rb1033spec/lib/gitlab/database/with_lock_retries_spec.rb1034spec/models/clusters/agent_spec.rb1035spec/lib/gitlab/background_migration/migrate_evidences_for_vulnerability_findings_spec.rb1036spec/models/integrations/base_chat_notification_spec.rb1037spec/services/ci/stuck_builds/drop_running_service_spec.rb1038spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb1039spec/services/issues/reopen_service_spec.rb1040spec/services/system_notes/design_management_service_spec.rb1041spec/services/todos/destroy/unauthorized_features_service_spec.rb1042spec/lib/gitlab/email/receiver_spec.rb1043spec/lib/banzai/pipeline/full_pipeline_spec.rb1044spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb1045spec/views/groups/edit.html.haml_spec.rb1046spec/lib/gitlab/database/migrations/constraints_helpers_spec.rb1047spec/lib/gitlab/gitaly_client/repository_service_spec.rb1048spec/helpers/wiki_helper_spec.rb1049spec/lib/gitlab/metrics/web_transaction_spec.rb1050spec/models/incident_management/timeline_event_spec.rb1051spec/models/clusters/kubernetes_namespace_spec.rb1052spec/scripts/review_apps/automated_cleanup_spec.rb1053spec/models/ci/job_token/allowlist_spec.rb1054spec/lib/gitaly/server_spec.rb1055spec/lib/gitlab/ci/build/auto_retry_spec.rb1056spec/presenters/packages/conan/package_presenter_spec.rb1057spec/views/shared/_label_row.html.haml_spec.rb1058spec/helpers/ci/builds_helper_spec.rb1059spec/tasks/gitlab/snippets_rake_spec.rb1060spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb1061spec/lib/sidebars/menu_spec.rb1062spec/lib/gitlab/web_hooks/rate_limiter_spec.rb1063spec/services/boards/lists/list_service_spec.rb1064spec/lib/gitlab/conflict/file_collection_spec.rb1065spec/services/projects/hashed_storage/base_attachment_service_spec.rb1066spec/presenters/snippet_presenter_spec.rb1067spec/models/work_items/type_spec.rb1068spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb1069spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb1070spec/graphql/resolvers/crm/organizations_resolver_spec.rb1071spec/lib/gitlab/object_hierarchy_spec.rb1072spec/lib/gitlab/http_io_spec.rb1073spec/lib/gitlab/email/reply_parser_spec.rb1074spec/helpers/button_helper_spec.rb1075spec/lib/gitlab/search/params_spec.rb1076spec/lib/gitlab/ci/config/entry/prefix_spec.rb1077spec/models/packages/tag_spec.rb1078spec/models/bulk_imports/export_status_spec.rb1079spec/services/task_list_toggle_service_spec.rb1080spec/presenters/label_presenter_spec.rb1081spec/lib/gitlab/memory/watchdog/configurator_spec.rb1082spec/serializers/issue_board_entity_spec.rb1083spec/services/update_merge_request_metrics_service_spec.rb1084spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb1085spec/services/ci/create_pipeline_service/parallel_spec.rb1086spec/workers/work_items/import_work_items_csv_worker_spec.rb1087spec/lib/gitlab/visibility_level_checker_spec.rb1088spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb1089spec/rubocop/formatter/graceful_formatter_spec.rb1090spec/lib/gitlab/import_export/remote_stream_upload_spec.rb1091spec/workers/ci/drop_pipeline_worker_spec.rb1092spec/services/packages/mark_package_files_for_destruction_service_spec.rb1093spec/lib/gitlab/changelog/committer_spec.rb1094spec/views/shared/snippets/_snippet.html.haml_spec.rb1095spec/finders/merge_requests/by_approvals_finder_spec.rb1096spec/graphql/resolvers/tree_resolver_spec.rb1097spec/graphql/mutations/issues/set_subscription_spec.rb1098spec/graphql/types/base_argument_spec.rb1099spec/support_specs/graphql/arguments_spec.rb1100spec/lib/bitbucket_server/connection_spec.rb1101spec/lib/gitlab/process_management_spec.rb1102spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb1103spec/workers/concerns/project_import_options_spec.rb1104spec/lib/gitlab/import_sources_spec.rb1105spec/services/merge_requests/mergeability/logger_spec.rb1106spec/tasks/tokens_spec.rb1107spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb1108spec/models/users_star_project_spec.rb1109spec/services/packages/create_event_service_spec.rb1110spec/lib/gitlab/background_migration/delete_orphaned_operational_vulnerabilities_spec.rb1111spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb1112spec/tasks/rubocop_rake_spec.rb1113spec/lib/gitlab/import/merge_request_helpers_spec.rb1114spec/services/groups/deploy_tokens/create_service_spec.rb1115spec/graphql/resolvers/project_resolver_spec.rb1116spec/lib/gitlab/database/migrations/batched_migration_last_id_spec.rb1117spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb1118spec/validators/devise_email_validator_spec.rb1119spec/services/loose_foreign_keys/batch_cleaner_service_spec.rb1120spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb1121spec/lib/gitlab/database/migrations/instrumentation_spec.rb1122spec/lib/gitlab/database/postgres_partition_spec.rb1123spec/services/protected_branches/create_service_spec.rb1124spec/models/aws/role_spec.rb1125spec/lib/gitlab/background_migration/backfill_project_namespace_details_spec.rb1126spec/tooling/danger/feature_flag_spec.rb1127spec/services/groups/auto_devops_service_spec.rb1128spec/lib/gitlab/blame_spec.rb1129spec/models/merge_request_reviewer_spec.rb1130spec/lib/gitlab/database/postgres_constraint_spec.rb1131spec/lib/json_web_token/rsa_token_spec.rb1132spec/models/project_repository_spec.rb1133spec/lib/api/entities/project_import_status_spec.rb1134spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb1135spec/lib/gitlab/background_migration/batching_strategies/base_strategy_spec.rb1136spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb1137spec/graphql/resolvers/projects/services_resolver_spec.rb1138spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb1139spec/presenters/search_service_presenter_spec.rb1140spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb1141spec/graphql/types/commit_type_spec.rb1142spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb1143spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb1144spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb1145spec/serializers/context_commits_diff_entity_spec.rb1146spec/workers/delete_merged_branches_worker_spec.rb1147spec/graphql/resolvers/data_transfer/project_data_transfer_resolver_spec.rb1148spec/lib/bulk_imports/groups/pipelines/namespace_settings_pipeline_spec.rb1149spec/models/design_management/design_action_spec.rb1150spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb1151spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb1152spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb1153spec/lib/gitlab/audit/deploy_key_author_spec.rb1154spec/rubocop/cop/migration/drop_table_spec.rb1155spec/models/concerns/editable_spec.rb1156spec/scripts/generate_rspec_pipeline_spec.rb1157spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb1158spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb1159spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb1160spec/lib/api/ci/helpers/runner_helpers_spec.rb1161spec/workers/projects/update_repository_storage_worker_spec.rb1162spec/services/customer_relations/organizations/create_service_spec.rb1163spec/workers/ci/parse_secure_file_metadata_worker_spec.rb1164spec/rubocop/cop/sidekiq_load_balancing/worker_data_consistency_spec.rb1165spec/views/projects/hooks/edit.html.haml_spec.rb1166spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb1167spec/services/projects/fetch_statistics_increment_service_spec.rb1168spec/serializers/analytics_summary_serializer_spec.rb1169spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb1170spec/models/plan_spec.rb1171spec/components/pajamas/spinner_component_spec.rb1172spec/lib/gitlab/terraform/state_migration_helper_spec.rb1173spec/support_specs/helpers/redis_commands/recorder_spec.rb1174spec/lib/gitlab/external_authorization_spec.rb1175spec/rubocop/cop/code_reuse/service_class_spec.rb1176spec/bin/diagnostic_reports_uploader_spec.rb1177spec/lib/gitlab/pagination/keyset/request_context_spec.rb1178spec/helpers/blame_helper_spec.rb1179spec/graphql/types/member_interface_spec.rb1180spec/models/concerns/as_cte_spec.rb1181spec/models/clusters/agents/group_authorization_spec.rb1182spec/rubocop/cop/migration/prevent_global_enable_lock_retries_with_disable_ddl_transaction_spec.rb1183spec/lib/gitlab/ci/config/header/spec_spec.rb1184spec/serializers/import/provider_repo_serializer_spec.rb1185spec/services/ci/pipeline_creation/start_pipeline_service_spec.rb1186spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb1187spec/rubocop/cop/gitlab/no_code_coverage_comment_spec.rb1188spec/lib/gitlab/health_checks/server_spec.rb1189spec/models/term_agreement_spec.rb1190spec/services/chat_names/authorize_user_service_spec.rb1191spec/initializers/net_http_response_patch_spec.rb1192spec/serializers/group_deploy_key_entity_spec.rb1193spec/lib/gitlab/request_endpoints_spec.rb1194spec/workers/upload_checksum_worker_spec.rb1195spec/lib/gitlab/database/migrations/extension_helpers_spec.rb1196spec/lib/gitlab/import_formatter_spec.rb1197spec/workers/concerns/gitlab/notify_upon_death_spec.rb1198spec/services/work_items/prepare_import_csv_service_spec.rb1199spec/lib/gitlab/string_placeholder_replacer_spec.rb1200spec/graphql/types/alert_management/status_enum_spec.rb1201spec/rubocop/cop/migration/background_migrations_spec.rb1202spec/models/bulk_imports/file_transfer_spec.rb1203spec/lib/banzai/filter/markdown_engines/base_spec.rb1204spec/graphql/types/clusters/agent_activity_event_type_spec.rb1205spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb1206spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb1207spec/graphql/types/ci/test_report_summary_type_spec.rb1208spec/workers/gitlab/github_import/import_pull_request_merged_by_worker_spec.rb1209spec/lib/api/api_spec.rb1210spec/graphql/types/ci_configuration/sast/type_spec.rb1211spec/validators/future_date_validator_spec.rb1212spec/serializers/diff_line_entity_spec.rb1213spec/graphql/types/ci/config_variable_type_spec.rb1214spec/models/container_registry/data_repair_detail_spec.rb1215spec/graphql/types/issue_status_count_type_spec.rb1216spec/lib/gitlab/sidekiq_middleware/query_analyzer_spec.rb1217spec/lib/gitlab/health_checks/middleware_spec.rb1218spec/graphql/types/time_tracking/timelog_sort_enum_spec.rb1219spec/models/preloaders/runner_manager_policy_preloader_spec.rb1220spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb1221spec/graphql/types/ci/test_suite_type_spec.rb1222spec/lib/gitlab/ci/reports/security/scanned_resource_spec.rb1223spec/graphql/types/ci_configuration/sast/entity_type_spec.rb1224spec/scripts/api/get_package_and_test_job_spec.rb1225spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb1226spec/finders/database/batched_background_migrations_finder_spec.rb1227spec/lib/gitlab/quick_actions/dsl_spec.rb1228spec/graphql/types/dependency_proxy/manifest_type_spec.rb1229spec/workers/packages/composer/cache_cleanup_worker_spec.rb1230spec/models/blob_viewer/gemspec_spec.rb1231spec/lib/sidebars/projects/super_sidebar_menus/manage_menu_spec.rb1232spec/helpers/tooling/visual_review_helper_spec.rb1233spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb1234spec/serializers/ci/lint/job_entity_spec.rb1235spec/initializers/session_store_spec.rb1236spec/lib/bitbucket/collection_spec.rb1237spec/models/namespace_ci_cd_setting_spec.rb1238Running all node tests without filter1239Running all node tests without filter1240Running command: bundle exec rspec -Ispec -rspec_helper --color --failure-exit-code 1 --error-exit-code 2 --format documentation --format RspecJunitFormatter --out rspec/junit_rspec.xml --tag ~quarantine --tag ~level:background_migration --default-path spec -- spec/services/groups/transfer_service_spec.rb spec/services/ci/create_downstream_pipeline_service_spec.rb spec/models/project_wiki_spec.rb spec/models/wiki_page_spec.rb spec/workers/post_receive_spec.rb spec/lib/gitlab/github_import/importer/protected_branch_importer_spec.rb spec/lib/gitlab/import_export/project/relation_factory_spec.rb spec/services/issuable/bulk_update_service_spec.rb spec/models/resource_milestone_event_spec.rb spec/services/members/approve_access_request_service_spec.rb spec/lib/api/helpers_spec.rb spec/finders/todos_finder_spec.rb spec/services/packages/npm/generate_metadata_service_spec.rb spec/lib/gitlab/background_migration/fix_duplicate_project_name_and_path_spec.rb spec/lib/gitlab/background_migration/remove_vulnerability_finding_links_spec.rb spec/services/files/multi_service_spec.rb spec/models/discussion_spec.rb spec/models/ci/bridge_spec.rb spec/models/hooks/service_hook_spec.rb spec/models/concerns/subscribable_spec.rb spec/policies/blob_policy_spec.rb spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb spec/lib/gitlab/ci/variables/collection_spec.rb spec/models/concerns/routable_spec.rb spec/lib/gitlab/ci/runner/backoff_spec.rb spec/models/active_session_spec.rb spec/lib/gitlab/json_cache_spec.rb spec/lib/gitlab/database/with_lock_retries_spec.rb spec/models/clusters/agent_spec.rb spec/lib/gitlab/background_migration/migrate_evidences_for_vulnerability_findings_spec.rb spec/models/integrations/base_chat_notification_spec.rb spec/services/ci/stuck_builds/drop_running_service_spec.rb spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb spec/services/issues/reopen_service_spec.rb spec/services/system_notes/design_management_service_spec.rb spec/services/todos/destroy/unauthorized_features_service_spec.rb spec/lib/gitlab/email/receiver_spec.rb spec/lib/banzai/pipeline/full_pipeline_spec.rb spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb spec/views/groups/edit.html.haml_spec.rb spec/lib/gitlab/database/migrations/constraints_helpers_spec.rb spec/lib/gitlab/gitaly_client/repository_service_spec.rb spec/helpers/wiki_helper_spec.rb spec/lib/gitlab/metrics/web_transaction_spec.rb spec/models/incident_management/timeline_event_spec.rb spec/models/clusters/kubernetes_namespace_spec.rb spec/scripts/review_apps/automated_cleanup_spec.rb spec/models/ci/job_token/allowlist_spec.rb spec/lib/gitaly/server_spec.rb spec/lib/gitlab/ci/build/auto_retry_spec.rb spec/presenters/packages/conan/package_presenter_spec.rb spec/views/shared/_label_row.html.haml_spec.rb spec/helpers/ci/builds_helper_spec.rb spec/tasks/gitlab/snippets_rake_spec.rb spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb spec/lib/sidebars/menu_spec.rb spec/lib/gitlab/web_hooks/rate_limiter_spec.rb spec/services/boards/lists/list_service_spec.rb spec/lib/gitlab/conflict/file_collection_spec.rb spec/services/projects/hashed_storage/base_attachment_service_spec.rb spec/presenters/snippet_presenter_spec.rb spec/models/work_items/type_spec.rb spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb spec/graphql/resolvers/crm/organizations_resolver_spec.rb spec/lib/gitlab/object_hierarchy_spec.rb spec/lib/gitlab/http_io_spec.rb spec/lib/gitlab/email/reply_parser_spec.rb spec/helpers/button_helper_spec.rb spec/lib/gitlab/search/params_spec.rb spec/lib/gitlab/ci/config/entry/prefix_spec.rb spec/models/packages/tag_spec.rb spec/models/bulk_imports/export_status_spec.rb spec/services/task_list_toggle_service_spec.rb spec/presenters/label_presenter_spec.rb spec/lib/gitlab/memory/watchdog/configurator_spec.rb spec/serializers/issue_board_entity_spec.rb spec/services/update_merge_request_metrics_service_spec.rb spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb spec/services/ci/create_pipeline_service/parallel_spec.rb spec/workers/work_items/import_work_items_csv_worker_spec.rb spec/lib/gitlab/visibility_level_checker_spec.rb spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb spec/rubocop/formatter/graceful_formatter_spec.rb spec/lib/gitlab/import_export/remote_stream_upload_spec.rb spec/workers/ci/drop_pipeline_worker_spec.rb spec/services/packages/mark_package_files_for_destruction_service_spec.rb spec/lib/gitlab/changelog/committer_spec.rb spec/views/shared/snippets/_snippet.html.haml_spec.rb spec/finders/merge_requests/by_approvals_finder_spec.rb spec/graphql/resolvers/tree_resolver_spec.rb spec/graphql/mutations/issues/set_subscription_spec.rb spec/graphql/types/base_argument_spec.rb spec/support_specs/graphql/arguments_spec.rb spec/lib/bitbucket_server/connection_spec.rb spec/lib/gitlab/process_management_spec.rb spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb spec/workers/concerns/project_import_options_spec.rb spec/lib/gitlab/import_sources_spec.rb spec/services/merge_requests/mergeability/logger_spec.rb spec/tasks/tokens_spec.rb spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb spec/models/users_star_project_spec.rb spec/services/packages/create_event_service_spec.rb spec/lib/gitlab/background_migration/delete_orphaned_operational_vulnerabilities_spec.rb spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb spec/tasks/rubocop_rake_spec.rb spec/lib/gitlab/import/merge_request_helpers_spec.rb spec/services/groups/deploy_tokens/create_service_spec.rb spec/graphql/resolvers/project_resolver_spec.rb spec/lib/gitlab/database/migrations/batched_migration_last_id_spec.rb spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb spec/validators/devise_email_validator_spec.rb spec/services/loose_foreign_keys/batch_cleaner_service_spec.rb spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb spec/lib/gitlab/database/migrations/instrumentation_spec.rb spec/lib/gitlab/database/postgres_partition_spec.rb spec/services/protected_branches/create_service_spec.rb spec/models/aws/role_spec.rb spec/lib/gitlab/background_migration/backfill_project_namespace_details_spec.rb spec/tooling/danger/feature_flag_spec.rb spec/services/groups/auto_devops_service_spec.rb spec/lib/gitlab/blame_spec.rb spec/models/merge_request_reviewer_spec.rb spec/lib/gitlab/database/postgres_constraint_spec.rb spec/lib/json_web_token/rsa_token_spec.rb spec/models/project_repository_spec.rb spec/lib/api/entities/project_import_status_spec.rb spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb spec/lib/gitlab/background_migration/batching_strategies/base_strategy_spec.rb spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb spec/graphql/resolvers/projects/services_resolver_spec.rb spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb spec/presenters/search_service_presenter_spec.rb spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb spec/graphql/types/commit_type_spec.rb spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb spec/serializers/context_commits_diff_entity_spec.rb spec/workers/delete_merged_branches_worker_spec.rb spec/graphql/resolvers/data_transfer/project_data_transfer_resolver_spec.rb spec/lib/bulk_imports/groups/pipelines/namespace_settings_pipeline_spec.rb spec/models/design_management/design_action_spec.rb spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb spec/lib/gitlab/audit/deploy_key_author_spec.rb spec/rubocop/cop/migration/drop_table_spec.rb spec/models/concerns/editable_spec.rb spec/scripts/generate_rspec_pipeline_spec.rb spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb spec/lib/api/ci/helpers/runner_helpers_spec.rb spec/workers/projects/update_repository_storage_worker_spec.rb spec/services/customer_relations/organizations/create_service_spec.rb spec/workers/ci/parse_secure_file_metadata_worker_spec.rb spec/rubocop/cop/sidekiq_load_balancing/worker_data_consistency_spec.rb spec/views/projects/hooks/edit.html.haml_spec.rb spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb spec/services/projects/fetch_statistics_increment_service_spec.rb spec/serializers/analytics_summary_serializer_spec.rb spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb spec/models/plan_spec.rb spec/components/pajamas/spinner_component_spec.rb spec/lib/gitlab/terraform/state_migration_helper_spec.rb spec/support_specs/helpers/redis_commands/recorder_spec.rb spec/lib/gitlab/external_authorization_spec.rb spec/rubocop/cop/code_reuse/service_class_spec.rb spec/bin/diagnostic_reports_uploader_spec.rb spec/lib/gitlab/pagination/keyset/request_context_spec.rb spec/helpers/blame_helper_spec.rb spec/graphql/types/member_interface_spec.rb spec/models/concerns/as_cte_spec.rb spec/models/clusters/agents/group_authorization_spec.rb spec/rubocop/cop/migration/prevent_global_enable_lock_retries_with_disable_ddl_transaction_spec.rb spec/lib/gitlab/ci/config/header/spec_spec.rb spec/serializers/import/provider_repo_serializer_spec.rb spec/services/ci/pipeline_creation/start_pipeline_service_spec.rb spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb spec/rubocop/cop/gitlab/no_code_coverage_comment_spec.rb spec/lib/gitlab/health_checks/server_spec.rb spec/models/term_agreement_spec.rb spec/services/chat_names/authorize_user_service_spec.rb spec/initializers/net_http_response_patch_spec.rb spec/serializers/group_deploy_key_entity_spec.rb spec/lib/gitlab/request_endpoints_spec.rb spec/workers/upload_checksum_worker_spec.rb spec/lib/gitlab/database/migrations/extension_helpers_spec.rb spec/lib/gitlab/import_formatter_spec.rb spec/workers/concerns/gitlab/notify_upon_death_spec.rb spec/services/work_items/prepare_import_csv_service_spec.rb spec/lib/gitlab/string_placeholder_replacer_spec.rb spec/graphql/types/alert_management/status_enum_spec.rb spec/rubocop/cop/migration/background_migrations_spec.rb spec/models/bulk_imports/file_transfer_spec.rb spec/lib/banzai/filter/markdown_engines/base_spec.rb spec/graphql/types/clusters/agent_activity_event_type_spec.rb spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb spec/graphql/types/ci/test_report_summary_type_spec.rb spec/workers/gitlab/github_import/import_pull_request_merged_by_worker_spec.rb spec/lib/api/api_spec.rb spec/graphql/types/ci_configuration/sast/type_spec.rb spec/validators/future_date_validator_spec.rb spec/serializers/diff_line_entity_spec.rb spec/graphql/types/ci/config_variable_type_spec.rb spec/models/container_registry/data_repair_detail_spec.rb spec/graphql/types/issue_status_count_type_spec.rb spec/lib/gitlab/sidekiq_middleware/query_analyzer_spec.rb spec/lib/gitlab/health_checks/middleware_spec.rb spec/graphql/types/time_tracking/timelog_sort_enum_spec.rb spec/models/preloaders/runner_manager_policy_preloader_spec.rb spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb spec/graphql/types/ci/test_suite_type_spec.rb spec/lib/gitlab/ci/reports/security/scanned_resource_spec.rb spec/graphql/types/ci_configuration/sast/entity_type_spec.rb spec/scripts/api/get_package_and_test_job_spec.rb spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb spec/finders/database/batched_background_migrations_finder_spec.rb spec/lib/gitlab/quick_actions/dsl_spec.rb spec/graphql/types/dependency_proxy/manifest_type_spec.rb spec/workers/packages/composer/cache_cleanup_worker_spec.rb spec/models/blob_viewer/gemspec_spec.rb spec/lib/sidebars/projects/super_sidebar_menus/manage_menu_spec.rb spec/helpers/tooling/visual_review_helper_spec.rb spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb spec/serializers/ci/lint/job_entity_spec.rb spec/initializers/session_store_spec.rb spec/lib/bitbucket/collection_spec.rb spec/models/namespace_ci_cd_setting_spec.rbKnapsack report generator started!1241warning: parser/current is loading parser/ruby30, which recognizes 3.0.5-compliant syntax, but you are running 3.0.6.1243/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: already initialized constant Gitlab::APP_DIRS_PATTERN1244/builds/gitlab-org/gitlab/lib/gitlab.rb:47: warning: previous definition of APP_DIRS_PATTERN was here1245/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: already initialized constant Gitlab::VERSION1246/builds/gitlab-org/gitlab/lib/gitlab.rb:48: warning: previous definition of VERSION was here1247/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: already initialized constant Gitlab::INSTALLATION_TYPE1248/builds/gitlab-org/gitlab/lib/gitlab.rb:49: warning: previous definition of INSTALLATION_TYPE was here1249/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: already initialized constant Gitlab::HTTP_PROXY_ENV_VARS1250/builds/gitlab-org/gitlab/lib/gitlab.rb:50: warning: previous definition of HTTP_PROXY_ENV_VARS was here1251Run options: exclude {:quarantine=>true, :level=>"background_migration"}1252Test environment set up in 2.002870046 seconds1253Groups::TransferService1254 handling packages1255 with an npm package1256 behaves like transfer not allowed1257 does not allow transfer when there is a root namespace change1258 with a project within subgroup1259 behaves like transfer not allowed1260 does not allow transfer when there is a root namespace change1261 without a root namespace change1262 allows transfer1263 when transferring a group into a root group1264 behaves like transfer not allowed1265 does not allow transfer when there is a root namespace change1266 without an npm package1267 when transferring a group into a root group1268 allows transfer1269 #execute1270 when transforming a group into a root group1271 behaves like ensuring allowed transfer for a group1272 when there's an exception on GitLab shell directories1273 returns false1274 adds an error on group1275 when the group is already a root group1276 adds an error on group1277 when the user does not have the right policies1278 returns false1279 adds an error on group1280 when there is a group with the same path1281 returns false1282 adds an error on group1283 when the group is a subgroup and the transfer is valid1284 updates group attributes1285 updates group children path1286 updates group projects path1287 when projects have project namespaces1288 behaves like project namespace path is in sync with project path1289 keeps project and project namespace attributes in sync1290 when transferring a subgroup into another group1291 behaves like ensuring allowed transfer for a group1292 when there's an exception on GitLab shell directories1293 returns false1294 adds an error on group1295 when the new parent group is the same as the previous parent group1296 returns false1297 adds an error on group1298 when the user does not have the right policies1299 returns false1300 adds an error on group1301 when the parent has a group with the same path1302 returns false1303 adds an error on group1304 when the parent group has a project with the same path1305 adds an error on group1306 when projects have project namespaces1307 behaves like project namespace path is in sync with project path1308 keeps project and project namespace attributes in sync1309 when the group is allowed to be transferred1310 updates visibility for the group based on the parent group1311 updates parent group to the new parent1312 returns the group as children of the new parent1313 creates a redirect for the group1314 when the group has a lower visibility than the parent group1315 does not update the visibility for the group1316 when the group has a higher visibility than the parent group1317 updates visibility level based on the parent group1318 with a group integration1319 with an inherited integration1320 replaces inherited integrations1321 with a custom integration1322 does not updates the integrations1323 shared runners configuration1324 if parent group has disabled shared runners but allows overrides1325 calls update service1326 if parent group does not allow shared runners1327 calls update service1328 if parent group allows shared runners1329 does not call update service and keeps them disabled on the group1330 when a group is transferred to its subgroup1331 does not execute the transfer1332 when transferring a group with group descendants1333 updates subgroups path1334 creates redirects for the subgroups1335 when the new parent has a higher visibility than the children1336 does not update the children visibility1337 when the new parent has a lower visibility than the children1338 updates children visibility to match the new parent1339 when transferring a group with project descendants1340 updates projects path1341 creates permanent redirects for the projects1342 when the new parent has a higher visibility than the projects1343 does not update projects visibility1344 behaves like project namespace path is in sync with project path1345 keeps project and project namespace attributes in sync1346 when the new parent has a lower visibility than the projects1347 updates projects visibility to match the new parent1348 invokes #update_project_settings1349 behaves like project namespace path is in sync with project path1350 keeps project and project namespace attributes in sync1351 when transferring a group with subgroups & projects descendants1352 updates subgroups path1353 updates projects path1354 creates redirect for the subgroups and projects1355 behaves like project namespace path is in sync with project path1356 keeps project and project namespace attributes in sync1357 when transferring a group with nested groups and projects1358 updated paths1359 updates subgroups path1360 updates projects path1361 creates redirect for the subgroups and projects1362 resets project authorizations1363 removes old project authorizations1364 adds new project authorizations1365 performs authorizations job1366 for nested projects1367 removes old project authorizations1368 adds new project authorizations1369 preserves existing project authorizations for direct project members1370 for nested groups with unique members1371 preserves existing project authorizations1372 for groups with many projects1373 adds new project authorizations for the user which makes a transfer1374 adds project authorizations for users in the new hierarchy1375 removes project authorizations for users in the old hierarchy1376 schedules authorizations job1377 transferring groups with shared_projects1378 when the group that has existing project share is transferred1379 behaves like drops the authorizations of ancestor members from the old hierarchy1380 drops the authorizations of ancestor members from the old hierarchy1381 when the group whose subgroup has an existing project share is transferred1382 behaves like drops the authorizations of ancestor members from the old hierarchy1383 drops the authorizations of ancestor members from the old hierarchy1384 when a group that has existing group share is transferred1385 retains the authorizations of direct members1386 when transferring a group with two factor authentication switched on1387 does not update group two factor authentication setting1388 when new parent disallows two factor authentication switched on for descendants1389 updates group two factor authentication setting1390 schedules update of group two factor authentication setting for descendants1391 when updating the group goes wrong1392 restores group and projects visibility1393 when group has pending builds1394 updates pending builds for the group1395 when transferring a subgroup into root group1396 ensures there is still an owner for the transferred group1397 when group has explicit owner1398 does not add additional owner1399 when a project has container images1400 within group1401 does not transfer1402 within subgroup1403 does not transfer1404 crm1405 moving up1406 retains issue contacts1407 behaves like publishes a GroupTransferedEvent1408 is expected to publish event Groups::GroupTransferedEvent1409 moving down1410 retains issue contacts1411 behaves like publishes a GroupTransferedEvent1412 is expected to publish event Groups::GroupTransferedEvent1413 moving sideways1414 retains issue contacts1415 behaves like publishes a GroupTransferedEvent1416 is expected to publish event Groups::GroupTransferedEvent1417 moving to new root group1418 moves all crm objects1419 retains issue contacts1420 behaves like publishes a GroupTransferedEvent1421 is expected to publish event Groups::GroupTransferedEvent1422 moving to a subgroup within a new root group1423 with permission on the root group1424 moves all crm objects1425 retains issue contacts1426 behaves like publishes a GroupTransferedEvent1427 is expected to publish event Groups::GroupTransferedEvent1428 with permission on the subgroup1429 raises error1430 does not publish a GroupTransferedEvent1431 with namespace_commit_emails concerns1432 when origin is a root group1433 deletes all namespace_commit_emails1434 behaves like publishes a GroupTransferedEvent1435 is expected to publish event Groups::GroupTransferedEvent1436 when origin is not a root group1437 does not attempt to delete namespace_commit_emails1438Ci::CreateDownstreamPipelineService#execute1439 when downstream project has not been found1440 does not create a pipeline1441 changes pipeline bridge job status to failed1442 when user can not access downstream project1443 does not create a new pipeline1444 changes status of the bridge build to failed1445 when user does not have access to create pipeline1446 does not create a new pipeline1447 changes status of the bridge build to failed1448 when user can create pipeline in a downstream project1449 creates only one new pipeline1450 creates a new pipeline in a downstream project1451 updates bridge status when downstream pipeline gets processed1452 triggers the upstream pipeline duration calculation1453 behaves like logs downstream pipeline creation1454 logs details1455 when bridge job has already any downstream pipeline1456 logs an error and exits1457 when target ref is not specified1458 is using default branch name1459 when downstream pipeline has yaml configuration error1460 creates only one new pipeline1461 creates a new pipeline in a downstream project1462 updates the bridge status when downstream pipeline gets processed1463 when downstream project is the same as the upstream project1464 detects a circular dependency1465 does not create a new pipeline1466 changes status of the bridge build1467 when "include" is provided1468 updates the bridge job to success1469 behaves like creates a child pipeline1470 creates only one new pipeline1471 creates a child pipeline in the same project1472 updates bridge status when downstream pipeline gets processed1473 propagates parent pipeline settings to the child pipeline1474 behaves like logs downstream pipeline creation1475 logs details1476 when bridge uses "depend" strategy1477 update the bridge job to running status1478 when latest sha for the ref changed in the meantime1479 behaves like creates a child pipeline1480 creates only one new pipeline1481 creates a child pipeline in the same project1482 updates bridge status when downstream pipeline gets processed1483 propagates parent pipeline settings to the child pipeline1484 when the parent is a merge request pipeline1485 propagates the merge request to the child pipeline1486 behaves like creates a child pipeline1487 creates only one new pipeline1488 creates a child pipeline in the same project1489 updates bridge status when downstream pipeline gets processed1490 propagates parent pipeline settings to the child pipeline1491 when upstream pipeline has a parent pipeline1492 creates the pipeline1493 behaves like logs downstream pipeline creation1494 logs details1495 when upstream pipeline has a parent pipeline, which has a parent pipeline1496 does not create a second descendant pipeline1497 when upstream pipeline has two level upstream pipelines from different projects1498 create the pipeline1499 when downstream project does not allow user-defined variables for child pipelines1500 creates a new pipeline allowing variables to be passed downstream1501 passes variables downstream from the bridge1502 when multi-project pipeline runs from child pipelines bridge job1503 creates a new pipeline1504 cyclical dependency detection1505 when pipeline ancestry contains 2 cycles of dependencies1506 behaves like detects cyclical pipelines1507 does not create a new pipeline1508 changes status of the bridge build1509 when source in the ancestry differ1510 behaves like passes cyclical pipeline precondition1511 creates a new pipeline1512 expect bridge build not to be failed1513 when ref in the ancestry differ1514 behaves like passes cyclical pipeline precondition1515 creates a new pipeline1516 expect bridge build not to be failed1517 when only 1 cycle is detected1518 behaves like passes cyclical pipeline precondition1519 creates a new pipeline1520 expect bridge build not to be failed1521 when downstream pipeline creation errors out1522 creates only one new pipeline1523 creates a new pipeline in the downstream project1524 drops the bridge1525 when bridge job status update raises state machine errors1526 returns the error1527 when bridge job has YAML variables defined1528 passes bridge variables to downstream pipeline1529 when pipeline variables are defined1530 does not pass pipeline variables directly downstream1531 when using YAML variables interpolation1532 makes it possible to pass pipeline variable downstream1533 when downstream project does not allow user-defined variables for multi-project pipelines1534 does not create a new pipeline1535 ignores variables passed downstream from the bridge1536 sets errors1537 when configured with bridge job rules1538 that include the bridge job1539 creates the downstream pipeline1540 when user does not have access to push protected branch of downstream project1541 changes status of the bridge build1542 when there is no such branch in downstream project1543 does not create a pipeline and drops the bridge1544 when downstream pipeline has a branch rule and does not satisfy1545 does not create a pipeline and drops the bridge1546 when downstream pipeline has invalid YAML1547 creates the pipeline but drops the bridge1548 when downstream pipeline has workflow rule1549 when passing the required variable1550 creates the pipeline1551 when not passing the required variable1552 does not create the pipeline1553 when a downstream pipeline has sibling pipelines1554 behaves like logs downstream pipeline creation1555 logs details1556 when the pipeline tree is too large1557 when limit was specified by admin1558 does not create a new pipeline1559 drops the trigger job with an explanatory reason1560 when there was no limit specified by admin1561 when pipeline count reaches the default limit of 10001562 does not create a new pipeline1563 drops the trigger job with an explanatory reason1564ProjectWiki1565 behaves like wiki model1566 VALID_USER_MARKUPS contains all valid markups1567 container class includes HasWiki1568 is expected to delegate #storage to the #container object1569 is expected to delegate #repository_storage to the #container object1570 is expected to delegate #hashed_storage? to the #container object1571 behaves like model with repository1572 container class includes HasRepository1573 #commits_by1574 retrieves several commits from the repository by oid1575 #web_url1576 when given the only_path option1577 when only_path is false1578 returns the full web URL for this repo1579 when only_path is true1580 returns the relative web URL for this repo1581 when only_path is nil1582 returns the full web URL for this repo1583 when not given the only_path option1584 returns the full web URL for this repo1585 #url_to_repo1586 returns the SSH URL to the repository1587 #ssh_url_to_repo1588 returns the SSH URL to the repository1589 #http_url_to_repo1590 returns the HTTP URL to the repository1591 #repository1592 returns valid repo1593 uses the same container1594 #storage1595 returns valid storage1596 #full_path1597 returns valid full_path1598 #lfs_enabled?1599 returns the expected value1600 #empty_repo?1601 when the repo does not exist1602 returns true1603 when the repo exists1604 returns the empty state of the repository1605 #valid_repo?1606 is expected to equal false1607 is expected to equal true1608 #repository_exists?1609 is expected to equal false1610 is expected to equal true1611 #repo_exists?1612 is expected to equal false1613 is expected to equal true1614 #root_ref1615 is expected to equal true1616 is expected to equal false1617 is expected to equal false1618 Respond to1619 is expected to respond to #base_dir1620 is expected to respond to #disk_path1621 is expected to respond to #gitlab_shell1622 #change_head1623 delegates #change_head to repository1624 #after_repository_change_head1625 calls #reload_default_branch1626 .container_class1627 is set to the container class1628 .find_by_id1629 returns a wiki instance if the container is found1630 returns nil if the container is not found1631 #initialize1632 accepts a valid user1633 accepts a blank user1634 raises an error for invalid users1635 #run_after_commit1636 delegates to the container1637 #==1638 returns true for wikis from the same container1639 returns false for wikis from different containers1640 #id1641 returns the ID of the container1642 #to_global_id1643 returns a global ID1644 #repository1645 returns a wiki repository1646 #full_path1647 returns the container path with the .wiki extension1648 #wiki_base_path1649 returns the wiki base path1650 includes the relative URL root1651 #empty?1652 when the wiki repository is empty1653 returns true1654 when the repository does not exist1655 returns true and does not create the repo1656 when the wiki has pages1657 #empty?1658 returns false1659 #list_pages1660 behaves like wiki model #list_pages1661 returns an array of WikiPage instances1662 does not load WikiPage content by default1663 returns all pages by default1664 with limit option1665 returns limited set of pages1666 returns all set of pages if limit is more than the total pages1667 returns all set of pages if limit is 01668 with offset option1669 returns offset-ed set of pages1670 returns all set of pages if offset is 01671 can combines with limit1672 with sorting options1673 returns pages sorted by title by default1674 with load_content option1675 loads WikiPage content1676 #sidebar_entries1677 when the number of pages does not exceed the limit1678 returns all pages grouped by directory and limited is false1679 when the number of pages exceeds the limit1680 returns 15 pages grouped by directory and limited is true1681 #find_page1682 find page with normal repository RPCs1683 behaves like wiki model #find_page1684 returns the latest version of the page if it exists1685 returns nil if the page or version does not exist1686 can find a page by slug1687 returns a WikiPage instance1688 pages with multibyte-character title1689 can find a page by slug1690 pages with invalidly-encoded content1691 can find the page1692 wiki repository's default branch is updated1693 returns the page in the updated default branch1694 wiki repository's HEAD is updated1695 returns the page in the new HEAD1696 pages with relative paths1697 path: "~hello.md", title: "~Hello"1698 can find page with `~Hello` title1699 path: "hello~world.md", title: "Hello~World"1700 can find page with `Hello~World` title1701 path: "~~~hello.md", title: "~~~Hello"1702 can find page with `~~~Hello` title1703 path: "~/hello.md", title: "~/Hello"1704 can find page with `~/Hello` title1705 path: "hello.md", title: "/Hello"1706 can find page with `/Hello` title1707 path: "hello.md", title: "../Hello"1708 can find page with `../Hello` title1709 path: "hello.md", title: "./Hello"1710 can find page with `./Hello` title1711 path: "dir/hello.md", title: "/dir/Hello"1712 can find page with `/dir/Hello` title1713 pages with different file extensions1714 extension: :md, path: "wiki-markdown.md", title: "wiki markdown"1715 can find page with md extension1716 extension: :markdown, path: "wiki-markdown-2.md", title: "wiki markdown 2"1717 can find page with markdown extension1718 extension: :rdoc, path: "wiki-rdoc.rdoc", title: "wiki rdoc"1719 can find page with rdoc extension1720 extension: :asciidoc, path: "wiki-asciidoc.asciidoc", title: "wiki asciidoc"1721 can find page with asciidoc extension1722 extension: :adoc, path: "wiki-asciidoc-2.adoc", title: "wiki asciidoc 2"1723 can find page with adoc extension1724 extension: :org, path: "wiki-org.org", title: "wiki org"1725 can find page with org extension1726 extension: :textile, path: "wiki-textile.textile", title: "wiki textile"1727 can find page with textile extension1728 extension: :creole, path: "wiki-creole.creole", title: "wiki creole"1729 can find page with creole extension1730 extension: :rest, path: "wiki-rest.rest", title: "wiki rest"1731 can find page with rest extension1732 extension: :rst, path: "wiki-rest-2.rst", title: "wiki rest 2"1733 can find page with rst extension1734 extension: :mediawiki, path: "wiki-mediawiki.mediawiki", title: "wiki mediawiki"1735 can find page with mediawiki extension1736 extension: :wiki, path: "wiki-mediawiki-2.wiki", title: "wiki mediawiki 2"1737 can find page with wiki extension1738 extension: :pod, path: "wiki-pod.pod", title: "wiki pod"1739 can find page with pod extension1740 extension: :text, path: "wiki-text.txt", title: "wiki text"1741 can find page with text extension1742 #find_sidebar1743 find sidebar with normal repository RPCs1744 behaves like wiki model #find_sidebar1745 finds the page defined as _sidebar1746 #find_file1747 returns the latest version of the file if it exists1748 returns nil if the page does not exist1749 returns a Gitlab::Git::WikiFile instance1750 returns the whole file1751 when load_content is disabled1752 includes the file data in the Gitlab::Git::WikiFile1753 wiki repository's default branch is updated1754 returns the page in the updated default branch1755 #create_page1756 behaves like create_page tests1757 creates a new wiki page1758 returns false when a duplicate page exists1759 stores an error message when a duplicate page exists1760 sets the correct commit message1761 sets the correct commit email1762 runs after_wiki_activity callbacks1763 cannot create two pages with the same title but different format1764 cannot create two pages with the same title but different capitalization1765 cannot create two pages with the same title, different capitalization, and different format1766 returns false if a page exists already in the repository1767 returns false if it has an invalid format1768 new_file: "foo", format: :markdown, existing_repo_files: [], success: true1769 is expected to eq true1770 new_file: "foo", format: :rdoc, existing_repo_files: [], success: true1771 is expected to eq true1772 new_file: "foo", format: :asciidoc, existing_repo_files: [], success: true1773 is expected to eq true1774 new_file: "foo", format: :org, existing_repo_files: [], success: true1775 is expected to eq true1776 new_file: "foo", format: :textile, existing_repo_files: [], success: false1777 is expected to eq false1778 new_file: "foo", format: :creole, existing_repo_files: [], success: false1779 is expected to eq false1780 new_file: "foo", format: :rest, existing_repo_files: [], success: false1781 is expected to eq false1782 new_file: "foo", format: :mediawiki, existing_repo_files: [], success: false1783 is expected to eq false1784 new_file: "foo", format: :pod, existing_repo_files: [], success: false1785 is expected to eq false1786 new_file: "foo", format: :plaintext, existing_repo_files: [], success: false1787 is expected to eq false1788 new_file: "foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1789 is expected to eq false1790 new_file: "foo", format: :markdown, existing_repo_files: ["foO.md"], success: false1791 is expected to eq false1792 new_file: "foO", format: :markdown, existing_repo_files: ["foo.md"], success: false1793 is expected to eq false1794 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mdfoo"], success: true1795 is expected to eq true1796 new_file: "foo", format: :markdown, existing_repo_files: ["foo.markdown"], success: false1797 is expected to eq false1798 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mkd"], success: false1799 is expected to eq false1800 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mkdn"], success: false1801 is expected to eq false1802 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mdown"], success: false1803 is expected to eq false1804 new_file: "foo", format: :markdown, existing_repo_files: ["foo.adoc"], success: false1805 is expected to eq false1806 new_file: "foo", format: :markdown, existing_repo_files: ["foo.asciidoc"], success: false1807 is expected to eq false1808 new_file: "foo", format: :markdown, existing_repo_files: ["foo.org"], success: false1809 is expected to eq false1810 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rdoc"], success: false1811 is expected to eq false1812 new_file: "foo", format: :markdown, existing_repo_files: ["foo.textile"], success: false1813 is expected to eq false1814 new_file: "foo", format: :markdown, existing_repo_files: ["foo.creole"], success: false1815 is expected to eq false1816 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rest"], success: false1817 is expected to eq false1818 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rest.txt"], success: false1819 is expected to eq false1820 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rst"], success: false1821 is expected to eq false1822 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rst.txt"], success: false1823 is expected to eq false1824 new_file: "foo", format: :markdown, existing_repo_files: ["foo.rst.txtfoo"], success: true1825 is expected to eq true1826 new_file: "foo", format: :markdown, existing_repo_files: ["foo.mediawiki"], success: false1827 is expected to eq false1828 new_file: "foo", format: :markdown, existing_repo_files: ["foo.wiki"], success: false1829 is expected to eq false1830 new_file: "foo", format: :markdown, existing_repo_files: ["foo.pod"], success: false1831 is expected to eq false1832 new_file: "foo", format: :markdown, existing_repo_files: ["foo.txt"], success: false1833 is expected to eq false1834 new_file: "foo", format: :markdown, existing_repo_files: ["foo.Md"], success: false1835 is expected to eq false1836 new_file: "foo", format: :markdown, existing_repo_files: ["foo.jpg"], success: true1837 is expected to eq true1838 new_file: "foo", format: :rdoc, existing_repo_files: ["foo.md"], success: false1839 is expected to eq false1840 new_file: "foo", format: :rdoc, existing_repo_files: ["foO.md"], success: false1841 is expected to eq false1842 new_file: "foO", format: :rdoc, existing_repo_files: ["foo.md"], success: false1843 is expected to eq false1844 new_file: "foo", format: :asciidoc, existing_repo_files: ["foo.md"], success: false1845 is expected to eq false1846 new_file: "foo", format: :org, existing_repo_files: ["foo.md"], success: false1847 is expected to eq false1848 new_file: "foo", format: :markdown, existing_repo_files: ["dir/foo.md"], success: true1849 is expected to eq true1850 new_file: "/foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1851 is expected to eq false1852 new_file: "~foo", format: :markdown, existing_repo_files: [], success: true1853 is expected to eq true1854 new_file: "~~~foo", format: :markdown, existing_repo_files: [], success: true1855 is expected to eq true1856 new_file: "./foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1857 is expected to eq false1858 new_file: "../foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1859 is expected to eq false1860 new_file: "../../foo", format: :markdown, existing_repo_files: ["foo.md"], success: false1861 is expected to eq false1862 new_file: "../../foo", format: :markdown, existing_repo_files: ["dir/foo.md"], success: true1863 is expected to eq true1864 new_file: "dir/foo", format: :markdown, existing_repo_files: ["foo.md"], success: true1865 is expected to eq true1866 new_file: "dir/foo", format: :markdown, existing_repo_files: ["dir/foo.md"], success: false1867 is expected to eq false1868 new_file: "dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1869 is expected to eq false1870 new_file: "/dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1871 is expected to eq false1872 new_file: "./dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1873 is expected to eq false1874 new_file: "../dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1875 is expected to eq false1876 new_file: "../dir/../foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: true1877 is expected to eq true1878 new_file: "../dir/../foo", format: :markdown, existing_repo_files: ["foo.rdoc"], success: false1879 is expected to eq false1880 new_file: "../dir/../dir/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: false1881 is expected to eq false1882 new_file: "../dir/../another/foo", format: :markdown, existing_repo_files: ["dir/foo.rdoc"], success: true1883 is expected to eq true1884 new_file: "another/dir/foo", format: :markdown, existing_repo_files: ["dir/foo.md"], success: true1885 is expected to eq true1886 new_file: "foo bar", format: :markdown, existing_repo_files: ["foo-bar.md"], success: false1887 is expected to eq false1888 new_file: "foo bar", format: :markdown, existing_repo_files: ["foo-bar.md"], success: true1889 is expected to eq true1890 new_file: "f\xF6\xF6", format: :markdown, existing_repo_files: ["f��.md"], success: false1891 is expected to eq false1892 #update_page1893 behaves like update_page tests1894 original_title: "test page", original_format: :markdown, updated_title: "new test page", updated_format: :markdown, expected_title: "new test page", expected_path: "new-test-page.md"1895 aggregate_failures1896 original_title: "test page", original_format: :markdown, updated_title: "test page", updated_format: :markdown, expected_title: "test page", expected_path: "test-page.md"1897 aggregate_failures1898 original_title: "test page", original_format: :markdown, updated_title: "test page", updated_format: :asciidoc, expected_title: "test page", expected_path: "test-page.asciidoc"1899 aggregate_failures1900 original_title: "test page", original_format: :markdown, updated_title: "new dir/new test page", updated_format: :markdown, expected_title: "new dir/new test page", expected_path: "new-dir/new-test-page.md"1901 aggregate_failures1902 original_title: "test page", original_format: :markdown, updated_title: "new dir/test page", updated_format: :markdown, expected_title: "new dir/test page", expected_path: "new-dir/test-page.md"1903 aggregate_failures1904 original_title: "test dir/test page", original_format: :markdown, updated_title: "new dir/new test page", updated_format: :markdown, expected_title: "new dir/new test page", expected_path: "new-dir/new-test-page.md"1905 aggregate_failures1906 original_title: "test dir/test page", original_format: :markdown, updated_title: "test dir/test page", updated_format: :markdown, expected_title: "test dir/test page", expected_path: "test-dir/test-page.md"1907 aggregate_failures1908 original_title: "test dir/test page", original_format: :markdown, updated_title: "test dir/test page", updated_format: :asciidoc, expected_title: "test dir/test page", expected_path: "test-dir/test-page.asciidoc"1909 aggregate_failures1910 original_title: "test dir/test page", original_format: :markdown, updated_title: "new test page", updated_format: :markdown, expected_title: "new test page", expected_path: "new-test-page.md"1911 aggregate_failures1912 original_title: "test dir/test page", original_format: :markdown, updated_title: "test page", updated_format: :markdown, expected_title: "test page", expected_path: "test-page.md"1913 aggregate_failures1914 original_title: "test page", original_format: :markdown, updated_title: nil, updated_format: :markdown, expected_title: "test page", expected_path: "test-page.md"1915 aggregate_failures1916 original_title: "test.page", original_format: :markdown, updated_title: nil, updated_format: :markdown, expected_title: "test.page", expected_path: "test.page.md"1917 aggregate_failures1918 original_title: "testpage", original_format: :markdown, updated_title: "./testpage", updated_format: :markdown, expected_title: "testpage", expected_path: "testpage.md"1919 aggregate_failures1920 original_title: "test page", original_format: :markdown, updated_title: "~new test page", updated_format: :asciidoc, expected_title: "~new test page", expected_path: "~new-test-page.asciidoc"1921 aggregate_failures1922 original_title: "test page", original_format: :markdown, updated_title: "~~~new test page", updated_format: :asciidoc, expected_title: "~~~new test page", expected_path: "~~~new-test-page.asciidoc"1923 aggregate_failures1924 original_title: "test page", original_format: :markdown, updated_title: "new test page", updated_format: :asciidoc, expected_title: "new test page", expected_path: "new-test-page.asciidoc"1925 aggregate_failures1926 original_title: "test page", original_format: :markdown, updated_title: "new dir/new test page", updated_format: :asciidoc, expected_title: "new dir/new test page", expected_path: "new-dir/new-test-page.asciidoc"1927 aggregate_failures1928 original_title: "test dir/test page", original_format: :markdown, updated_title: "new dir/new test page", updated_format: :asciidoc, expected_title: "new dir/new test page", expected_path: "new-dir/new-test-page.asciidoc"1929 aggregate_failures1930 original_title: "test dir/test page", original_format: :markdown, updated_title: "new test page", updated_format: :asciidoc, expected_title: "new test page", expected_path: "new-test-page.asciidoc"1931 aggregate_failures1932 original_title: "test page", original_format: :markdown, updated_title: nil, updated_format: :asciidoc, expected_title: "test page", expected_path: "test-page.asciidoc"1933 aggregate_failures1934 original_title: "test dir/test page", original_format: :markdown, updated_title: nil, updated_format: :asciidoc, expected_title: "test dir/test page", expected_path: "test-dir/test-page.asciidoc"1935 aggregate_failures1936 original_title: "test dir/test page", original_format: :markdown, updated_title: nil, updated_format: :markdown, expected_title: "test dir/test page", expected_path: "test-dir/test-page.md"1937 aggregate_failures1938 original_title: "test page", original_format: :markdown, updated_title: "", updated_format: :markdown, expected_title: "test page", expected_path: "test-page.md"1939 aggregate_failures1940 original_title: "test.page", original_format: :markdown, updated_title: "", updated_format: :markdown, expected_title: "test.page", expected_path: "test.page.md"1941 aggregate_failures1942 original_title: "testpage", original_format: :markdown, updated_title: "../testpage", updated_format: :markdown, expected_title: "testpage", expected_path: "testpage.md"1943 aggregate_failures1944 original_title: "dir/testpage", original_format: :markdown, updated_title: "dir/../testpage", updated_format: :markdown, expected_title: "testpage", expected_path: "testpage.md"1945 aggregate_failures1946 original_title: "dir/testpage", original_format: :markdown, updated_title: "./dir/testpage", updated_format: :markdown, expected_title: "dir/testpage", expected_path: "dir/testpage.md"1947 aggregate_failures1948 original_title: "dir/testpage", original_format: :markdown, updated_title: "../dir/testpage", updated_format: :markdown, expected_title: "dir/testpage", expected_path: "dir/testpage.md"1949 aggregate_failures1950 original_title: "dir/testpage", original_format: :markdown, updated_title: "../dir/../testpage", updated_format: :markdown, expected_title: "testpage", expected_path: "testpage.md"1951 aggregate_failures1952 original_title: "dir/testpage", original_format: :markdown, updated_title: "../dir/../dir/testpage", updated_format: :markdown, expected_title: "dir/testpage", expected_path: "dir/testpage.md"1953 aggregate_failures1954 original_title: "dir/testpage", original_format: :markdown, updated_title: "../dir/../another/testpage", updated_format: :markdown, expected_title: "another/testpage", expected_path: "another/testpage.md"1955 aggregate_failures1956 when format is invalid1957 returns false and sets error message1958 when format is not allowed1959 returns false and sets error message1960 when page path does not have a default extension1961 when format is not different1962 does not change the default extension1963 #delete_page1964 deletes the page1965 sets the correct commit email1966 runs after_wiki_activity callbacks1967 when an error is raised1968 logs the error and returns false1969 #hook_attrs1970 returns a hash with values1971 #default_branch1972 when repository is not created1973 returns the instance default branch1974 when repository is empty1975 returns the instance default branch1976 when repository is not empty1977 returns the repository default branch1978 #create_wiki_repository1979 when repository is not created1980 changes the HEAD reference to the default branch1981 when repository is empty1982 creates the repository with the default branch1983 #preview_slug1984 title: "The Best Thing", file_extension: :md, format: :markdown, expected_slug: "The-Best-Thing"1985 is expected to eq "The-Best-Thing"1986 matches the slug generated by gitaly1987 title: "The Best Thing", file_extension: :txt, format: :plaintext, expected_slug: "The-Best-Thing"1988 is expected to eq "The-Best-Thing"1989 matches the slug generated by gitaly1990 title: "A Subject/Title Here", file_extension: :txt, format: :plaintext, expected_slug: "A-Subject/Title-Here"1991 is expected to eq "A-Subject/Title-Here"1992 matches the slug generated by gitaly1993 title: "A subject", file_extension: :txt, format: :plaintext, expected_slug: "A-subject"1994 is expected to eq "A-subject"1995 matches the slug generated by gitaly1996 title: "A 1/B 2/C 3", file_extension: :txt, format: :plaintext, expected_slug: "A-1/B-2/C-3"1997 is expected to eq "A-1/B-2/C-3"1998 matches the slug generated by gitaly1999 title: "subject/title", file_extension: :txt, format: :plaintext, expected_slug: "subject/title"2000 is expected to eq "subject/title"2001 matches the slug generated by gitaly2002 title: "subject/title.md", file_extension: :txt, format: :plaintext, expected_slug: "subject/title.md"2003 is expected to eq "subject/title.md"2004 matches the slug generated by gitaly2005 title: "foo%2Fbar", file_extension: :txt, format: :plaintext, expected_slug: "foo%2Fbar"2006 is expected to eq "foo%2Fbar"2007 matches the slug generated by gitaly2008 title: "", file_extension: :md, format: :markdown, expected_slug: ".md"2009 is expected to eq ".md"2010 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)2011 title: "", file_extension: :txt, format: :plaintext, expected_slug: ".txt"2012 is expected to eq ".txt"2013 matches the slug generated by gitaly (PENDING: Gitaly cannot generate a slug for an empty title)2014 #disk_path2015 returns the repository storage path2016 #create_wiki_repository2017 when a project_wiki_repositories record does not exist2018 creates a new record2019 on a read-only instance2020 does not attempt to create a new record2021 when a project_wiki_repositories record exists2022 does not create a new record in the database2023 #after_wiki_activity2024 updates project activity2025 #after_post_receive2026 updates project activity and expires caches2027 behaves like can housekeep repository2028 with a clean redis state2029 #pushes_since_gc2030 without any pushes2031 returns 02032 with a number of pushes2033 returns the number of pushes2034 #increment_pushes_since_gc2035 increments the number of pushes since the last GC2036 #reset_pushes_since_gc2037 resets the number of pushes since the last GC2038 #pushes_since_gc_redis_shared_state_key2039 returns the proper redis key format2040 #git_garbage_collect_worker_klass2041 defines a git gargabe collect worker2042WikiPage2043 #front_matter2044 the wiki page has front matter2045 strips the front matter from the content2046 behaves like a page with front-matter2047 is expected to eq {:slugs=>["slug_a", "slug_b"], :title=>"Foo"}2048 the feature flag is off2049 behaves like a page without front-matter2050 is expected to have attributes {:content => "---\ntitle: Foo\nslugs:\n - slug_a\n - slug_b\n---\n\nMy actual content\n", :front_matter => {}}2051 but enabled for the container2052 behaves like a page with front-matter2053 is expected to eq {:slugs=>["slug_a", "slug_b"], :title=>"Foo"}2054 the wiki page does not have front matter2055 behaves like a page without front-matter2056 is expected to have attributes {:content => "My actual content", :front_matter => {}}2057 the wiki page has fenced blocks, but nothing in them2058 behaves like a page without front-matter2059 is expected to have attributes {:content => "---\n---\n\nMy actual content\n", :front_matter => {}}2060 the wiki page has invalid YAML type in fenced blocks2061 behaves like a page without front-matter2062 is expected to have attributes {:content => "---\nthis isn't YAML\n---\n\nMy actual content\n", :front_matter => {}}2063 the wiki page has a disallowed class in fenced block2064 behaves like a page without front-matter2065 is expected to have attributes {:content => "---\ndate: 2010-02-11 11:02:57\n---\n\nMy actual content\n", :front_matter => {}}2066 the wiki page has invalid YAML in fenced block2067 behaves like a page without front-matter2068 is expected to have attributes {:content => "---\ninvalid-use-of-reserved-indicator: @text\n---\n\nMy actual content\n", :front_matter => {}}2069 .unhyphenize2070 removes hyphens from a name2071 #initialize2072 when initialized with an existing page2073 sets the slug attribute2074 sets the title attribute2075 sets the formatted content attribute2076 sets the format attribute2077 sets the message attribute2078 sets the version attribute2079 validations2080 validates presence of title2081 does not validate presence of content2082 #validate_content_size_limit2083 with a new page2084 accepts content below the limit2085 rejects content exceeding the limit2086 counts content size in bytes rather than characters2087 with an existing page exceeding the limit2088 accepts content when it has not changed2089 rejects content when it has changed2090 #validate_path_limits2091 character: "a"2092 accepts page titles below the limit2093 accepts directories below the limit2094 accepts a path with page title and directory below the limit2095 rejects page titles exceeding the limit2096 rejects directories exceeding the limit2097 rejects a page with both title and directory exceeding the limit2098 character: "ä"2099 accepts page titles below the limit2100 accepts directories below the limit2101 accepts a path with page title and directory below the limit2102 rejects page titles exceeding the limit2103 rejects directories exceeding the limit2104 rejects a page with both title and directory exceeding the limit2105 character: "🙈"2106 accepts page titles below the limit2107 accepts directories below the limit2108 accepts a path with page title and directory below the limit2109 rejects page titles exceeding the limit2110 rejects directories exceeding the limit2111 rejects a page with both title and directory exceeding the limit2112 with an existing page title exceeding the limit2113 accepts the exceeding title length when unchanged2114 rejects the exceeding title length when changed2115 #create2116 with valid attributes2117 saves the wiki page2118 returns true2119 saves the wiki page with message2120 if the title is preceded by a / it is removed2121 with invalid attributes2122 does not create the page2123 dot in the title2124 #create2125 saves the wiki page and returns true2126 #update2127 updates the content of the page and returns true2128 #update2129 with valid attributes2130 updates the content of the page2131 updates the title of the page2132 returns true2133 updating front_matter2134 updates the wiki-page front-matter and content together2135 behaves like able to update front-matter2136 updates the wiki-page front-matter2137 the front matter is too long2138 raises an error2139 the front-matter feature flag is not enabled2140 does not update the front-matter2141 but it is enabled for the container2142 behaves like able to update front-matter2143 updates the wiki-page front-matter2144 with same last commit sha2145 returns true2146 with different last commit sha2147 raises exception2148 in subdir2149 keeps the page in the same dir when the content is updated2150 when renaming a page2151 raises an error if the page already exists2152 updates the content and rename the file2153 when moving a page2154 raises an error if the page already exists2155 updates the content and moves the file2156 when page combine with directory2157 moving the file and directory2158 in subdir2159 moves the page to the root folder if the title is preceded by /2160 does nothing if it has the same title2161 in root dir2162 does nothing if the title is preceded by /2163 with invalid attributes2164 aborts update if title blank2165 #delete2166 deletes the page and returns true2167 #versions2168 number of versions is less than the default paginiated per page2169 returns an array of all commits for the page2170 number of versions is more than the default paginiated per page2171 returns an arrary containing the first page of commits for the page2172 returns an arrary containing the second page of commits for the page with options[:page] = 22173 wiki repository's default is updated2174 returns the correct versions in the default branch2175 #count_versions2176 returns the total numbers of commits2177 wiki repository's default is updated2178 returns the correct number of versions in the default branch2179 #title_changed?2180 page: :untitled_page, title: nil, changed: false2181 returns the expected value2182 page: :untitled_page, title: "new title", changed: true2183 returns the expected value2184 page: :unsaved_page, title: nil, changed: true2185 returns the expected value2186 page: :unsaved_page, title: "test page", changed: true2187 returns the expected value2188 page: :unsaved_page, title: "test-page", changed: true2189 returns the expected value2190 page: :unsaved_page, title: "test+page", changed: true2191 returns the expected value2192 page: :unsaved_page, title: "new title", changed: true2193 returns the expected value2194 page: :existing_page, title: nil, changed: false2195 returns the expected value2196 page: :existing_page, title: "test page", changed: false2197 returns the expected value2198 page: :existing_page, title: "test-page", changed: false2199 returns the expected value2200 page: :existing_page, title: "/test page", changed: false2201 returns the expected value2202 page: :existing_page, title: "/test-page", changed: false2203 returns the expected value2204 page: :existing_page, title: "test+page", changed: true2205 returns the expected value2206 page: :existing_page, title: " test page ", changed: true2207 returns the expected value2208 page: :existing_page, title: "new title", changed: true2209 returns the expected value2210 page: :existing_page, title: "new-title", changed: true2211 returns the expected value2212 page: :directory_page, title: nil, changed: false2213 returns the expected value2214 page: :directory_page, title: "parent directory/child page", changed: false2215 returns the expected value2216 page: :directory_page, title: "parent-directory/child page", changed: false2217 returns the expected value2218 page: :directory_page, title: "parent-directory/child-page", changed: false2219 returns the expected value2220 page: :directory_page, title: "child page", changed: false2221 returns the expected value2222 page: :directory_page, title: "child-page", changed: false2223 returns the expected value2224 page: :directory_page, title: "/child page", changed: true2225 returns the expected value2226 page: :directory_page, title: "parent directory/other", changed: true2227 returns the expected value2228 page: :directory_page, title: "parent-directory/other", changed: true2229 returns the expected value2230 page: :directory_page, title: "parent-directory / child-page", changed: true2231 returns the expected value2232 page: :directory_page, title: "other directory/child page", changed: true2233 returns the expected value2234 page: :directory_page, title: "other-directory/child page", changed: true2235 returns the expected value2236 page: :page_with_special_characters, title: nil, changed: false2237 returns the expected value2238 page: :page_with_special_characters, title: "test+page", changed: false2239 returns the expected value2240 page: :page_with_special_characters, title: "test-page", changed: true2241 returns the expected value2242 page: :page_with_special_characters, title: "test page", changed: true2243 returns the expected value2244 #content_changed?2245 with a new page2246 returns true if content is set2247 returns false if content is blank2248 with an existing page2249 returns false2250 returns false if content is set to the same value2251 returns true if content is changed2252 returns true if content is changed to a blank string2253 returns false if only the newline format has changed2254 #path2255 returns the path when persisted2256 returns nil when not persisted2257 #directory2258 when the page is at the root directory2259 returns an empty string2260 when the page is inside an actual directory2261 returns the full directory hierarchy2262 #historical?2263 returns true when requesting an old version2264 returns false when requesting latest version2265 returns false when version is nil2266 returns false when the last version is nil2267 returns false when the version is nil2268 #persisted?2269 returns true for a persisted page2270 returns false for an unpersisted page2271 #to_partial_path2272 returns the relative path to the partial to be used2273 #==2274 returns true for identical wiki page2275 returns true for updated wiki page2276 returns false for a completely different wiki page2277 returns false for page with different slug on same container2278 returns false for page with the same slug on a different container2279 #last_commit_sha2280 returns commit sha2281 is changed after page updated2282 #hook_attrs2283 adds absolute urls for images in the content2284 #version_commit_timestamp2285 for a new page2286 returns nil2287 for page that exists2288 returns the timestamp of the commit2289 #diffs2290 returns a diff instance2291PostReceive2292 as a sidekiq worker2293 responds to #perform2294 with a non-existing project2295 returns false and logs an error2296 with PersonalSnippet2297 does not log an error2298 with ProjectSnippet2299 returns false and logs an error2300 #process_project_changes2301 with an empty project2302 expire the status cache2303 schedules a cache update for commit count and size2304 empty changes2305 does not call any PushService but runs after project hooks2306 behaves like not updating remote mirrors2307 does not schedule an update2308 unidentified user2309 returns false2310 with changes2311 branches2312 expires the branches cache2313 expires the status cache2314 calls Git::ProcessRefChangesService2315 schedules a cache update for repository size only2316 behaves like updating remote mirrors2317 schedules an update if the project had mirrors2318 with a default branch2319 schedules a cache update for commit count and size2320 tags2321 does not expire branches cache2322 only invalidates tags once2323 calls Git::ProcessRefChangesService2324 schedules a single ProjectCacheWorker update2325 behaves like updating remote mirrors2326 schedules an update if the project had mirrors2327 merge-requests2328 does not call any of the services2329 behaves like not updating remote mirrors2330 does not schedule an update2331 after project changes hooks2332 calls SystemHooksService2333 increments the usage data counter of pushes event2334 behaves like Snowplow event tracking2335 is emitted2336 behaves like an idempotent worker2337 is labeled as idempotent2338 performs multiple times sequentially without raising an exception2339 #process_wiki_changes2340 updates project activity2341 master2342 processes the changes on the master branch2343 branches2344 expires the branches cache2345 expires the status cache2346 behaves like an idempotent worker2347 is labeled as idempotent2348 performs multiple times sequentially without raising an exception2349 webhook2350 fetches the correct project2351 does not run if the author is not in the project2352 asks the project to trigger all hooks2353 enqueues a UpdateMergeRequestsWorker job2354 #process_snippet_changes2355 with PersonalSnippet2356 behaves like snippet changes actions2357 unidentified user2358 returns false2359 with changes2360 branches2361 expires the branches cache2362 expires the status cache2363 updates the snippet model updated_at2364 updates snippet statistics2365 tags2366 does not expire branches cache2367 only invalidates tags once2368 behaves like an idempotent worker2369 is labeled as idempotent2370 performs multiple times sequentially without raising an exception2371 with ProjectSnippet2372 behaves like snippet changes actions2373 unidentified user2374 returns false2375 with changes2376 branches2377 expires the branches cache2378 expires the status cache2379 updates the snippet model updated_at2380 updates snippet statistics2381 tags2382 does not expire branches cache2383 only invalidates tags once2384 behaves like an idempotent worker2385 is labeled as idempotent2386 performs multiple times sequentially without raising an exception2387 processing design changes2388 does not do anything2389 behaves like an idempotent worker2390 is labeled as idempotent2391 performs multiple times sequentially without raising an exception2392Gitlab::GithubImport::Importer::ProtectedBranchImporter2393 # order random2394 #execute2395 when branch is protected on GitLab2396 allow_force_pushes_on_github: true, allow_force_pushes_on_gitlab: true, expected_allow_force_push: true2397 behaves like create branch protection by the strictest ruleset2398 calls service with the correct arguments2399 creates protected branch and access levels for given github rule2400 allow_force_pushes_on_github: true, allow_force_pushes_on_gitlab: false, expected_allow_force_push: false2401 behaves like create branch protection by the strictest ruleset2402 calls service with the correct arguments2403 creates protected branch and access levels for given github rule2404 allow_force_pushes_on_github: false, allow_force_pushes_on_gitlab: true, expected_allow_force_push: false2405 behaves like create branch protection by the strictest ruleset2406 calls service with the correct arguments2407 creates protected branch and access levels for given github rule2408 allow_force_pushes_on_github: false, allow_force_pushes_on_gitlab: false, expected_allow_force_push: false2409 behaves like create branch protection by the strictest ruleset2410 calls service with the correct arguments2411 creates protected branch and access levels for given github rule2412 when branch is not protected on GitLab2413 behaves like create branch protection by the strictest ruleset2414 calls service with the correct arguments2415 creates protected branch and access levels for given github rule2416 when branch is default2417 when "allow force pushes - everyone" rule is enabled2418 when there is any default branch protection2419 behaves like create branch protection by the strictest ruleset2420 calls service with the correct arguments2421 creates protected branch and access levels for given github rule2422 when there is no default branch protection2423 behaves like create branch protection by the strictest ruleset2424 calls service with the correct arguments2425 creates protected branch and access levels for given github rule2426 when required_conversation_resolution rule is enabled2427 changes project settings2428 when required_conversation_resolution rule is disabled2429 behaves like does not change project attributes2430 does not change only_allow_merge_if_all_discussions_are_resolved2431 does not change push_rule for the project2432 when required_signatures rule is enabled2433 when the push_rules feature is available2434 when project push_rules did previously exist2435 updates push_rule reject_unsigned_commits attribute2436 when project push_rules did not previously exist2437 creates project push_rule with the enabled reject_unsigned_commits attribute2438 when the push_rules feature is not available2439 behaves like does not change project attributes2440 does not change only_allow_merge_if_all_discussions_are_resolved2441 does not change push_rule for the project2442 when required_signatures rule is disabled2443 behaves like does not change project attributes2444 does not change only_allow_merge_if_all_discussions_are_resolved2445 does not change push_rule for the project2446 when branch is not default2447 when required_conversation_resolution rule is enabled2448 behaves like does not change project attributes2449 does not change only_allow_merge_if_all_discussions_are_resolved2450 does not change push_rule for the project2451 when required_conversation_resolution rule is disabled2452 behaves like does not change project attributes2453 does not change only_allow_merge_if_all_discussions_are_resolved2454 does not change push_rule for the project2455 when required_signatures rule is enabled2456 behaves like does not change project attributes2457 does not change only_allow_merge_if_all_discussions_are_resolved2458 does not change push_rule for the project2459 when required_signatures rule is disabled2460 behaves like does not change project attributes2461 does not change only_allow_merge_if_all_discussions_are_resolved2462 does not change push_rule for the project2463 when required_pull_request_reviews rule is enabled on GitHub2464 when no user is allowed to bypass push restrictions2465 behaves like create branch protection by the strictest ruleset2466 calls service with the correct arguments2467 creates protected branch and access levels for given github rule2468 when there are users who are allowed to bypass push restrictions2469 when the protected_refs_for_users feature is available2470 when the users are found on GitLab2471 behaves like create branch protection by the strictest ruleset2472 calls service with the correct arguments2473 creates protected branch and access levels for given github rule2474 when one of found users is not a member of the imported project2475 behaves like create branch protection by the strictest ruleset2476 calls service with the correct arguments2477 creates protected branch and access levels for given github rule2478 when the user are not found on GitLab2479 behaves like create branch protection by the strictest ruleset2480 calls service with the correct arguments2481 creates protected branch and access levels for given github rule2482 when the protected_refs_for_users feature is not available2483 behaves like create branch protection by the strictest ruleset2484 calls service with the correct arguments2485 creates protected branch and access levels for given github rule2486 when required_pull_request_reviews rule is disabled on GitHub2487 when branch is default2488 when default branch protection = Gitlab::Access::PROTECTION_DEV_CAN_PUSH2489 behaves like create branch protection by the strictest ruleset2490 calls service with the correct arguments2491 creates protected branch and access levels for given github rule2492 when default branch protection = Gitlab::Access::PROTECTION_DEV_CAN_MERGE2493 behaves like create branch protection by the strictest ruleset2494 calls service with the correct arguments2495 creates protected branch and access levels for given github rule2496 when branch is protected on GitLab2497 when there is branch protection rule for the role2498 when No one can merge2499 behaves like create branch protection by the strictest ruleset2500 calls service with the correct arguments2501 creates protected branch and access levels for given github rule2502 when Maintainers and Developers can merge2503 behaves like create branch protection by the strictest ruleset2504 calls service with the correct arguments2505 creates protected branch and access levels for given github rule2506 when there is no branch protection rule for the role2507 behaves like create branch protection by the strictest ruleset2508 calls service with the correct arguments2509 creates protected branch and access levels for given github rule2510 when branch is neither default nor protected on GitLab2511 behaves like create branch protection by the strictest ruleset2512 calls service with the correct arguments2513 creates protected branch and access levels for given github rule2514 when the code_owner_approval_required feature is available2515 when branch is protected on GitLab2516 require_code_owner_reviews_on_github: true, require_code_owner_reviews_on_gitlab: true, expected_code_owner_approval_required: true2517 behaves like create branch protection by the strictest ruleset2518 calls service with the correct arguments2519 creates protected branch and access levels for given github rule2520 require_code_owner_reviews_on_github: true, require_code_owner_reviews_on_gitlab: false, expected_code_owner_approval_required: true2521 behaves like create branch protection by the strictest ruleset2522 calls service with the correct arguments2523 creates protected branch and access levels for given github rule2524 require_code_owner_reviews_on_github: false, require_code_owner_reviews_on_gitlab: true, expected_code_owner_approval_required: true2525 behaves like create branch protection by the strictest ruleset2526 calls service with the correct arguments2527 creates protected branch and access levels for given github rule2528 require_code_owner_reviews_on_github: false, require_code_owner_reviews_on_gitlab: false, expected_code_owner_approval_required: false2529 behaves like create branch protection by the strictest ruleset2530 calls service with the correct arguments2531 creates protected branch and access levels for given github rule2532 when branch is not protected on GitLab2533 when require_code_owner_reviews rule is enabled on GitHub2534 behaves like create branch protection by the strictest ruleset2535 calls service with the correct arguments2536 creates protected branch and access levels for given github rule2537 when require_code_owner_reviews rule is disabled on GitHub2538 behaves like create branch protection by the strictest ruleset2539 calls service with the correct arguments2540 creates protected branch and access levels for given github rule2541 when the code_owner_approval_required feature is not available2542 behaves like create branch protection by the strictest ruleset2543 calls service with the correct arguments2544 creates protected branch and access levels for given github rule2545Gitlab::ImportExport::Project::RelationFactory2546 hook object2547 does not have the original ID2548 does not have the original integration_id2549 does not have the original project_id2550 has the new project_id2551 has a nil token2552 original service exists2553 does not have the original integration_id2554 excluded attributes2555 are removed from the imported object2556 merge_request object2557 has preloaded author2558 has preloaded updated_by2559 has preloaded source project2560 has preloaded target project2561 issue object2562 has preloaded project2563 computing relative position2564 when max relative position in the hierarchy is not cached2565 has computed new relative_position2566 when max relative position in the hierarchy is cached2567 has computed new relative_position2568 label object2569 has preloaded project2570 has preloaded group2571 pipeline_schedule2572 when relation_hash has active set to true2573 the created object is not active2574 when relation_hash has active set to false2575 the created object is not active2576 Potentially hazardous foreign keys2577 does not preserve any foreign key IDs2578 overrided model with pluralized name2579 does not raise errors2580 Project references2581 does not preserve any project foreign key IDs2582 behaves like Notes user references2583 when the importer is admin2584 and the note author is not mapped2585 is expected to eq #<User id:780 @user273>2586 is expected to include "*By Administrator"2587 and the note author is the importer user2588 is expected to eq #<User id:786 @user277>2589 is expected not to include "*By Administrator"2590 and the note author exists in the target instance2591 is expected to eq #<User id:795 @user283>2592 is expected not to include "*By Administrator"2593 when the importer is not admin2594 and the note author is not mapped2595 is expected to eq #<User id:800 @user287>2596 is expected to include "*By Administrator"2597 and the note author is the importer user2598 is expected to eq #<User id:806 @user291>2599 is expected to include "*By Administrator"2600 and the note author exists in the target instance2601 is expected to eq #<User id:812 @user295>2602 is expected to include "*By Administrator"2603 encrypted attributes2604 has no value for the encrypted attribute2605 event object2606 has preloaded project2607 protected branch access levels2608 merge access level2609 when access level is no one2610 keeps no one access level2611 when access level is below maintainer2612 sets access level to maintainer2613 when access level is above maintainer2614 sets access level to maintainer2615 root ancestor membership2616 when importer user is root group owner2617 keeps access level as is2618 when user membership in root group is missing2619 sets access level to maintainer2620 when root ancestor is not a group2621 sets access level to maintainer2622 push access level2623 when access level is no one2624 keeps no one access level2625 when access level is below maintainer2626 sets access level to maintainer2627 when access level is above maintainer2628 sets access level to maintainer2629 root ancestor membership2630 when importer user is root group owner2631 keeps access level as is2632 when user membership in root group is missing2633 sets access level to maintainer2634 when root ancestor is not a group2635 sets access level to maintainer2636Issuable::BulkUpdateService2637 with issuables at a project level2638 behaves like bulk update service2639 result count only includes authorized issuables2640 when issuable_ids are passed as an array2641 updates assignees2642 with unpermitted attributes2643 does not update the issues2644 when issuable update service raises an ArgumentError2645 returns an error response2646 close issues2647 succeeds and returns the correct number of issues updated2648 closes all the issues passed2649 behaves like scheduling cached group count clear2650 schedules worker2651 reopen issues2652 succeeds and returns the correct number of issues updated2653 reopens all the issues passed2654 behaves like scheduling cached group count clear2655 schedules worker2656 updating merge request assignee2657 when the new assignee ID is a valid user2658 succeeds2659 updates the assignee to the user ID passed2660 when the new assignee ID is 02661 unassigns the issues2662 when the new assignee IDs array is empty2663 removes all assignees2664 updating issue assignee2665 when the new assignee ID is a valid user2666 succeeds2667 updates the assignee to the user ID passed2668 when the new assignee ID is 02669 unassigns the issues2670 when the new assignee IDs array is empty2671 removes all assignees2672 updating milestones2673 behaves like updates milestones2674 succeeds2675 updates the issuables milestone2676 behaves like not scheduling cached group count clear2677 does not schedule worker2678 updating labels2679 behaves like updating labels2680 when add_label_ids are passed2681 adds those label IDs to all issues passed2682 does not update issues not passed in2683 when remove_label_ids are passed2684 removes those label IDs from all issues passed2685 does not update issues not passed in2686 when add_label_ids and remove_label_ids are passed2687 adds the label IDs to all issues passed2688 removes the label IDs from all issues passed2689 does not update issues not passed in2690 subscribe to issues2691 subscribes the given user2692 unsubscribe from issues2693 unsubscribes the given user2694 updating issues from external project2695 updates only issues that belong to the parent project2696 with issuables at a group level2697 behaves like bulk update service2698 result count only includes authorized issuables2699 when issuable_ids are passed as an array2700 updates assignees2701 updating milestones2702 when issues2703 behaves like updates milestones2704 succeeds2705 updates the issuables milestone2706 when merge requests2707 behaves like updates milestones2708 succeeds2709 updates the issuables milestone2710 updating labels2711 behaves like updating labels2712 when add_label_ids are passed2713 adds those label IDs to all issues passed2714 does not update issues not passed in2715 when remove_label_ids are passed2716 removes those label IDs from all issues passed2717 does not update issues not passed in2718 when add_label_ids and remove_label_ids are passed2719 adds the label IDs to all issues passed2720 removes the label IDs from all issues passed2721 does not update issues not passed in2722 with issues from external group2723 updates issues that belong to the parent group or descendants2724 when no parent is provided2725 returns an unscoped update error2726ResourceMilestoneEvent2727 behaves like a resource event2728 importable2729 is expected to respond to #importing?2730 is expected to respond to #imported?2731 validations2732 is expected not to allow :user to be ‹nil›2733 when importing2734 is expected to allow :user to be ‹nil›2735 associations2736 is expected to belong to user required: false2737 .created_after2738 returns the expected events2739 returns no events if time is after last record time2740 behaves like a resource event for issues2741 associations2742 is expected to belong to issue required: false2743 .by_issue2744 returns the expected records for an issue with events2745 returns the expected records for an issue with no events2746 .by_issue_ids2747 returns the expected events2748 .by_created_at_earlier_or_equal_to2749 returns the expected events2750 returns the expected events2751 #issuable2752 returns the expected issuable2753 behaves like a resource event for merge requests2754 associations2755 is expected to belong to merge_request required: false2756 .by_merge_request2757 returns the expected records for an issue with events2758 returns the expected records for an issue with no events2759 #issuable2760 returns the expected issuable2761 on callbacks2762 does not trigger note created subscription2763 behaves like a note for work item resource event2764 builds synthetic note with correct synthetic_note_class2765 on callbacks2766 triggers note created subscription2767 behaves like having unique enum values2768 has unique values in "action"2769 has unique values in "state"2770 behaves like timebox resource event validations2771 validations2772 when issue and merge_request are both nil2773 is expected not to be valid2774 when issue and merge_request are both set2775 is expected not to be valid2776 when issue is set2777 is expected to be valid2778 when merge_request is set2779 is expected to be valid2780 behaves like timebox resource event states2781 states2782 supports state opened for issue2783 supports state closed for issue2784 supports state opened for merge_request2785 supports state closed for merge_request2786 supports state merged for merge_request2787 supports state locked for merge_request2788 behaves like timebox resource event actions2789 #added?2790 behaves like queryable timebox action resource event2791 is true for action add on issue2792 is false for action remove on issue2793 is true for action add on merge_request2794 is false for action remove on merge_request2795 #removed?2796 behaves like queryable timebox action resource event2797 is false for action add on issue2798 is true for action remove on issue2799 is false for action add on merge_request2800 is true for action remove on merge_request2801 behaves like timebox resource tracks issue metrics2802 #issue_usage_metrics2803 tracks usage for issues2804 does not track usage for merge requests2805 associations2806 is expected to belong to milestone required: false2807 scopes2808 .aliased_for_timebox_report2809 returns correct values with aliased names2810 #milestone_title2811 returns the expected title2812 when milestone is nil2813 returns nil2814 #milestone_parent2815 when milestone parent is project2816 returns the expected parent2817 when milestone parent is group2818 returns the expected parent2819 when milestone is nil2820 returns nil2821Members::ApproveAccessRequestService2822 when an access requester is found2823 when current user is nil2824 and :ldap option is not given2825 behaves like a service raising Gitlab::Access::AccessDeniedError2826 raises Gitlab::Access::AccessDeniedError2827 behaves like a service raising Gitlab::Access::AccessDeniedError2828 raises Gitlab::Access::AccessDeniedError2829 and :skip_authorization option is false2830 behaves like a service raising Gitlab::Access::AccessDeniedError2831 raises Gitlab::Access::AccessDeniedError2832 behaves like a service raising Gitlab::Access::AccessDeniedError2833 raises Gitlab::Access::AccessDeniedError2834 and :skip_authorization option is true2835 behaves like a service approving an access request2836 succeeds2837 returns a <Source>Member2838 calls the method to resolve access request for the approver2839 with a custom access level2840 returns a ProjectMember with the custom access level2841 behaves like a service approving an access request2842 succeeds2843 returns a <Source>Member2844 calls the method to resolve access request for the approver2845 with a custom access level2846 returns a ProjectMember with the custom access level2847 when current user cannot approve access request to the project2848 behaves like a service raising Gitlab::Access::AccessDeniedError2849 raises Gitlab::Access::AccessDeniedError2850 behaves like a service raising Gitlab::Access::AccessDeniedError2851 raises Gitlab::Access::AccessDeniedError2852 when current user can approve access request to the project2853 behaves like a service approving an access request2854 succeeds2855 returns a <Source>Member2856 calls the method to resolve access request for the approver2857 with a custom access level2858 returns a ProjectMember with the custom access level2859 behaves like a service approving an access request2860 succeeds2861 returns a <Source>Member2862 calls the method to resolve access request for the approver2863 with a custom access level2864 returns a ProjectMember with the custom access level2865 in a project2866 maintainers2867 cannot approve the access request of a requester to give them OWNER permissions2868 behaves like a service raising Gitlab::Access::AccessDeniedError2869 raises Gitlab::Access::AccessDeniedError2870 owners2871 can approve the access request of a requester to give them OWNER permissions2872 behaves like a service approving an access request2873 succeeds2874 returns a <Source>Member2875 calls the method to resolve access request for the approver2876 with a custom access level2877 returns a ProjectMember with the custom access level2878API::Helpers2879 #current_user2880 handles sticking when a user could be found2881 does not handle sticking if no user could be found2882 returns the user if one could be found2883 #find_project2884 when ID is used as an argument2885 behaves like project finder2886 when project exists2887 returns requested project2888 returns nil2889 when project id is not provided2890 returns nil2891 when PATH is used as an argument2892 behaves like project finder2893 when project exists2894 returns requested project2895 returns nil2896 when project id is not provided2897 returns nil2898 with an invalid PATH2899 does not hit the database2900 behaves like project finder2901 when project exists2902 returns requested project2903 returns nil2904 when project id is not provided2905 returns nil2906 when ID is a negative number2907 behaves like project finder2908 when project exists2909 returns requested project2910 returns nil2911 when project id is not provided2912 returns nil2913 when project is pending delete2914 does not return the project pending delete2915 when project is hidden2916 does not return the hidden project2917 #find_project!2918 when user is authenticated2919 public project2920 returns requested project2921 private project2922 behaves like private project without access2923 returns not found2924 when user is not authenticated2925 public project2926 returns requested project2927 private project2928 behaves like private project without access2929 returns not found2930 support for IDs and paths as argument2931 when ID is used as an argument2932 behaves like project finder2933 when project exists2934 returns requested project2935 returns nil2936 when PATH is used as an argument2937 behaves like project finder2938 when project exists2939 returns requested project2940 returns nil2941 with an invalid PATH2942 does not hit the database2943 behaves like project finder2944 when project exists2945 returns requested project2946 returns nil2947 #find_group!2948 when user is authenticated2949 public group2950 returns requested group2951 private group2952 behaves like private group without access2953 returns not found2954 when user is not authenticated2955 public group2956 returns requested group2957 private group2958 behaves like private group without access2959 returns not found2960 support for IDs and paths as arguments2961 when ID is used as an argument2962 behaves like group finder2963 when group exists2964 returns requested group2965 returns nil2966 when PATH is used as an argument2967 behaves like group finder2968 when group exists2969 returns requested group2970 returns nil2971 when ID is a negative number2972 behaves like group finder2973 when group exists2974 returns requested group2975 returns nil2976 #find_group_by_full_path!2977 when user is authenticated2978 public group2979 returns requested group2980 private group2981 behaves like private group without access2982 returns not found2983 with access2984 returns requested group with access2985 when user is not authenticated2986 public group2987 returns requested group2988 private group2989 behaves like private group without access2990 returns not found2991 #find_namespace2992 when ID is used as an argument2993 behaves like namespace finder2994 when namespace exists2995 returns requested namespace2996 when namespace doesn't exists2997 returns nil2998 when PATH is used as an argument2999 behaves like namespace finder3000 when namespace exists3001 returns requested namespace3002 when namespace doesn't exists3003 returns nil3004 when ID is a negative number3005 behaves like namespace finder3006 when namespace exists3007 returns requested namespace3008 when namespace doesn't exists3009 returns nil3010 #find_namespace!3011 behaves like user namespace finder3012 when namespace is group3013 when user has access to group3014 returns requested namespace3015 when user doesn't have access to group3016 raises not found error3017 when namespace is user's personal namespace3018 when user owns the namespace3019 returns requested namespace3020 when user doesn't own the namespace3021 raises not found error3022 #authorized_project_scope?3023 job_token_authentication: false, route_setting: false, feature_flag: false, same_job_project: false, expected_result: true3024 returns the expected result3025 job_token_authentication: false, route_setting: false, feature_flag: false, same_job_project: true, expected_result: true3026 returns the expected result3027 job_token_authentication: false, route_setting: false, feature_flag: true, same_job_project: false, expected_result: true3028 returns the expected result3029 job_token_authentication: false, route_setting: false, feature_flag: true, same_job_project: true, expected_result: true3030 returns the expected result3031 job_token_authentication: false, route_setting: true, feature_flag: false, same_job_project: false, expected_result: true3032 returns the expected result3033 job_token_authentication: false, route_setting: true, feature_flag: false, same_job_project: true, expected_result: true3034 returns the expected result3035 job_token_authentication: false, route_setting: true, feature_flag: true, same_job_project: false, expected_result: true3036 returns the expected result3037 job_token_authentication: false, route_setting: true, feature_flag: true, same_job_project: true, expected_result: true3038 returns the expected result3039 job_token_authentication: true, route_setting: false, feature_flag: false, same_job_project: false, expected_result: true3040 returns the expected result3041 job_token_authentication: true, route_setting: false, feature_flag: false, same_job_project: true, expected_result: true3042 returns the expected result3043 job_token_authentication: true, route_setting: false, feature_flag: true, same_job_project: false, expected_result: true3044 returns the expected result3045 job_token_authentication: true, route_setting: false, feature_flag: true, same_job_project: true, expected_result: true3046 returns the expected result3047 job_token_authentication: true, route_setting: true, feature_flag: false, same_job_project: false, expected_result: false3048 returns the expected result3049 job_token_authentication: true, route_setting: true, feature_flag: false, same_job_project: true, expected_result: false3050 returns the expected result3051 job_token_authentication: true, route_setting: true, feature_flag: true, same_job_project: false, expected_result: false3052 returns the expected result3053 job_token_authentication: true, route_setting: true, feature_flag: true, same_job_project: true, expected_result: true3054 returns the expected result3055 #send_git_blob3056 sets Gitlab::Workhorse::DETECT_HEADER header3057 content disposition3058 when blob name is null3059 returns only the disposition3060 when blob name is not null3061 returns disposition with the blob name3062 #increment_unique_values3063 tracks redis hll event3064 logs an exception for unknown event3065 does not track event for nil values3066 #order_options_with_tie_breaker3067 with non-id order given3068 with ascending order3069 adds id based ordering with same direction as primary order3070 with descending order3071 adds id based ordering with same direction as primary order3072 with non-id order but no direction given3073 adds ID ASC order3074 with id order given3075 does not add an additional order3076 with created_at order given3077 converts to id3078 #destroy_conditionally!3079 when unmodified check passes3080 destroys given project3081 when unmodified check fails3082 does not destroy given project3083 #check_unmodified_since!3084 when last modified is later than header value3085 renders error3086 when last modified is earlier than header value3087 does not render error3088 when last modified is equal to header value3089 does not render error3090 when there is no header value present3091 does not render error3092 when header value is not a valid time value3093 does not render error3094 #present_disk_file!3095 with X-Sendfile supported3096 sends the file using X-Sendfile3097 without X-Sendfile supported3098 sends the file3099 #present_artifacts_file!3100 with object storage3101 redirects to a CDN-fronted URL3102 requested with HEAD3103 redirects to a CDN-fronted URL3104 #cdn_frontend_url3105 with a CI artifact3106 retrieves a CDN-fronted URL3107 with a file upload3108 retrieves the file URL3109 #order_by_similarity?3110 params: {}, allow_unauthorized: false, current_user_set: false, expected: false3111 returns the expected result3112 params: {}, allow_unauthorized: true, current_user_set: false, expected: false3113 returns the expected result3114 params: {}, allow_unauthorized: false, current_user_set: true, expected: false3115 returns the expected result3116 params: {}, allow_unauthorized: true, current_user_set: true, expected: false3117 returns the expected result3118 params: {:order_by=>"similarity"}, allow_unauthorized: false, current_user_set: false, expected: false3119 returns the expected result3120 params: {:order_by=>"similarity"}, allow_unauthorized: true, current_user_set: false, expected: false3121 returns the expected result3122 params: {:order_by=>"similarity"}, allow_unauthorized: true, current_user_set: true, expected: false3123 returns the expected result3124 params: {:order_by=>"similarity"}, allow_unauthorized: false, current_user_set: true, expected: false3125 returns the expected result3126 params: {:search=>"test"}, allow_unauthorized: false, current_user_set: false, expected: false3127 returns the expected result3128 params: {:search=>"test"}, allow_unauthorized: true, current_user_set: false, expected: false3129 returns the expected result3130 params: {:search=>"test"}, allow_unauthorized: true, current_user_set: true, expected: false3131 returns the expected result3132 params: {:search=>"test"}, allow_unauthorized: false, current_user_set: true, expected: false3133 returns the expected result3134 params: {:order_by=>"similarity", :search=>"test"}, allow_unauthorized: false, current_user_set: false, expected: false3135 returns the expected result3136 params: {:order_by=>"similarity", :search=>"test"}, allow_unauthorized: true, current_user_set: false, expected: true3137 returns the expected result3138 params: {:order_by=>"similarity", :search=>"test"}, allow_unauthorized: true, current_user_set: true, expected: true3139 returns the expected result3140 params: {:order_by=>"similarity", :search=>"test"}, allow_unauthorized: false, current_user_set: true, expected: true3141 returns the expected result3142 #render_api_error_with_reason!3143 renders error with code3144 #unauthorized!3145 renders 4013146 renders 401 with a reason3147 #forbidden!3148 renders 4013149 renders 401 with a reason3150 #bad_request!3151 renders 4003152 renders 401 with a reason3153 #authenticate_by_gitlab_shell_token!3154 when jwt token is not provided3155 behaves like unauthorized3156 unauthorized3157 when jwt token is invalid3158 behaves like unauthorized3159 unauthorized3160 when jwt token issuer is invalid3161 behaves like unauthorized3162 unauthorized3163 when jwt token is valid3164 behaves like authorized3165 authorized3166TodosFinder3167 #execute3168 #execute3169 returns no todos if user is nil3170 filtering3171 returns correct todos when filtered by a project3172 returns correct todos when filtered by a group3173 when filtering by type3174 returns todos by type when filtered by a single type3175 returns todos by type when filtered by multiple types3176 returns all todos when type is nil3177 returns all todos when type is an empty collection3178 returns all todos when type is blank3179 returns todos by type when blank type is in type collection3180 returns todos of all types when only blanks are in a collection3181 returns all todos when no type param3182 raises an argument error when invalid type is passed3183 when filtering for actions3184 by action ids3185 returns the expected todos3186 returns the expected todos when filtering for multiple action ids3187 by action names3188 returns the expected todos3189 returns the expected todos when filtering for multiple action names3190 when filtering by author3191 returns correct todos when filtering by an author3192 querying for multiple authors3193 returns the correct todo items3194 by groups3195 with subgroups3196 returns todos from subgroups when filtered by a group3197 filtering for multiple groups3198 returns the expected groups3199 by state3200 returns the expected items when no state is provided3201 returns the expected items when a state is provided3202 returns the expected items when multiple states are provided3203 by project3204 returns the expected todos for one project3205 returns the expected todos for many projects3206 when filtering by target id3207 returns the expected todos for the target3208 returns the expected todos for multiple target ids3209 returns the expected todos for empty target id collection3210 external authorization3211 behaves like a finder with external authorization service3212 finds the subject3213 with an external authorization service3214 does not include the subject when no project was given3215 includes the subject when a project id was given3216 #sort3217 sorts by priority3218 by date3219 sorts with oldest created first3220 sorts with newest created first3221 .todo_types3222 returns the expected types3223 #any_for_target?3224 returns true if there are any todos for the given target3225 returns false if there are no todos for the given target3226Packages::Npm::GenerateMetadataService3227 # order random3228 #versions3229 has_dependencies: true, has_metadatum: true3230 is expected to be a kind of Hash3231 is expected to match schema "public_api/v4/packages/npm_package_version"3232 is expected to match schema "public_api/v4/packages/npm_package_version"3233 is expected to be blank3234 avoids N+1 database queries3235 for dependencies3236 is expected to be any3237 is expected to equal nil3238 is expected to be any3239 is expected to equal nil3240 is expected to be any3241 is expected to equal nil3242 is expected to be any3243 is expected to equal nil3244 for metadatum3245 is expected not to equal nil3246 is expected to equal nil3247 is expected not to equal nil3248 is expected to equal nil3249 is expected not to equal nil3250 is expected to equal nil3251 is expected not to equal nil3252 is expected to equal nil3253 is expected not to equal nil3254 is expected to equal nil3255 is expected not to equal nil3256 is expected to equal nil3257 has_dependencies: false, has_metadatum: true3258 is expected to be a kind of Hash3259 is expected to match schema "public_api/v4/packages/npm_package_version"3260 is expected to match schema "public_api/v4/packages/npm_package_version"3261 is expected to be blank3262 avoids N+1 database queries3263 for dependencies3264 is expected to equal nil3265 is expected to equal nil3266 is expected to equal nil3267 is expected to equal nil3268 is expected to equal nil3269 is expected to equal nil3270 is expected to equal nil3271 is expected to equal nil3272 for metadatum3273 is expected not to equal nil3274 is expected to equal nil3275 is expected not to equal nil3276 is expected to equal nil3277 is expected not to equal nil3278 is expected to equal nil3279 is expected not to equal nil3280 is expected to equal nil3281 is expected not to equal nil3282 is expected to equal nil3283 is expected not to equal nil3284 is expected to equal nil3285 has_dependencies: true, has_metadatum: false3286 is expected to be a kind of Hash3287 is expected to match schema "public_api/v4/packages/npm_package_version"3288 is expected to match schema "public_api/v4/packages/npm_package_version"3289 is expected to be blank3290 avoids N+1 database queries3291 for dependencies3292 is expected to be any3293 is expected to equal nil3294 is expected to be any3295 is expected to equal nil3296 is expected to be any3297 is expected to equal nil3298 is expected to be any3299 is expected to equal nil3300 for metadatum3301 is expected to equal nil3302 is expected to equal nil3303 is expected to equal nil3304 is expected to equal nil3305 is expected to equal nil3306 is expected to equal nil3307 is expected to equal nil3308 is expected to equal nil3309 is expected to equal nil3310 is expected to equal nil3311 is expected to equal nil3312 is expected to equal nil3313 has_dependencies: false, has_metadatum: false3314 is expected to be a kind of Hash3315 is expected to match schema "public_api/v4/packages/npm_package_version"3316 is expected to match schema "public_api/v4/packages/npm_package_version"3317 is expected to be blank3318 avoids N+1 database queries3319 for dependencies3320 is expected to equal nil3321 is expected to equal nil3322 is expected to equal nil3323 is expected to equal nil3324 is expected to equal nil3325 is expected to equal nil3326 is expected to equal nil3327 is expected to equal nil3328 for metadatum3329 is expected to equal nil3330 is expected to equal nil3331 is expected to equal nil3332 is expected to equal nil3333 is expected to equal nil3334 is expected to equal nil3335 is expected to equal nil3336 is expected to equal nil3337 is expected to equal nil3338 is expected to equal nil3339 is expected to equal nil3340 is expected to equal nil3341 with package files pending destruction3342 does not return them3343 when passing only_dist_tags: true3344 returns only dist tags3345 #dist_tags3346 for packages without tags3347 is expected to be a kind of Hash3348 is expected to eq "2.0.11"3349 avoids N+1 database queries3350 for packages with tags3351 is expected to be a kind of Hash3352 is expected to eq "2.0.4"3353 is expected to eq "2.0.4"3354 is expected to eq "2.0.6"3355 is expected to eq "2.0.11"3356 is expected to eq "2.0.11"3357 avoids N+1 database queries3358Files::MultiService3359 #execute3360 with a valid action3361 returns a hash with the :success status3362 with an invalid action3363 returns a hash with the :error status3364 Updating files3365 when the file has been previously updated3366 rejects the commit3367 when file not changed, but later commit id is used3368 accepts the commit3369 when the file have not been modified3370 accepts the commit3371 changing execute_filemode of a file3372 accepts the commit3373 updates the execute_filemode of the file3374 when the file doesn't exists3375 rejects the commit3376 when moving a file3377 when original file has been updated3378 rejects the commit3379 when original file has not been updated3380 moves the file3381 when content is nil3382 moves the existing content untouched3383 when content is an empty string3384 moves the file and empties it3385 when creating a file matching an LFS filter3386 creates an LFS pointer3387 creates an LfsObject with the file's content3388 links the LfsObject to the project3389 with base64 encoded content3390 creates an LFS pointer3391 creates an LfsObject with the file's content3392 when file status validation is skipped3393 does not check the last commit3394 creates the file3395 when force is set to true and branch already exists3396 is still a success3397Discussion3398 .lazy_find3399 batches requests3400 .build3401 returns a discussion of the right type3402 .build_collection3403 returns an array of discussions of the right type3404 authorization3405 delegates to the first note3406 #cache_key3407 returns the cache key3408 when discussion is resolved3409 returns the cache key with resolved at3410 #to_global_id3411 with a single DiffNote discussion3412 returns GID on Discussion class3413 with multiple DiffNotes discussion3414 returns GID on Discussion class3415 with discussions on issue3416 with a single Note3417 returns GID on Discussion class3418 with multiple Notes3419 returns GID on Discussion class3420 with system notes3421 returns GID on Discussion class3422Ci::Bridge3423 has one sourced pipeline3424 has one downstream pipeline3425 behaves like has ID tokens3426 delegations3427 is expected to delegate #id_tokens to the #metadata object, allowing #metadata to return nil3428 #id_tokens?3429 without metadata3430 is expected to be falsy3431 with metadata3432 when ID tokens exist3433 is expected to be truthy3434 when ID tokens do not exist3435 is expected to be falsy3436 #id_tokens=3437 assigns the ID tokens to the CI job3438 behaves like a retryable job3439 #enqueue_immediately?3440 defaults to false3441 #set_enqueue_immediately!3442 changes #enqueue_immediately? to true3443 #retryable?3444 returns true3445 when there is a pipeline loop detected3446 returns false3447 when the pipeline depth has reached the max descendents3448 returns false3449 #tags3450 only has a bridge tag3451 #detailed_status3452 returns detailed status object3453 #scoped_variables3454 returns a hash representing variables3455 when bridge has dependency which has dotenv variable3456 includes inherited variable3457 state machine transitions3458 when bridge points towards downstream3459 schedules downstream pipeline creation when the status is created3460 schedules downstream pipeline creation when the status is manual3461 schedules downstream pipeline creation when the status is waiting for resource3462 raises error when the status is failed3463 #inherit_status_from_downstream!3464 when status is not supported3465 when status is created3466 returns false3467 does not change the bridge status3468 when status is waiting_for_resource3469 returns false3470 does not change the bridge status3471 when status is preparing3472 returns false3473 does not change the bridge status3474 when status is pending3475 returns false3476 does not change the bridge status3477 when status is running3478 returns false3479 does not change the bridge status3480 when status is manual3481 returns false3482 does not change the bridge status3483 when status is scheduled3484 returns false3485 does not change the bridge status3486 when status is supported3487 downstream_status: "success", upstream_status: "success"3488 inherits the downstream status3489 downstream_status: "failed", upstream_status: "failed"3490 inherits the downstream status3491 downstream_status: "canceled", upstream_status: "failed"3492 inherits the downstream status3493 downstream_status: "skipped", upstream_status: "failed"3494 inherits the downstream status3495 #dependent?3496 when bridge has strategy depend3497 is expected to equal true3498 when bridge does not have strategy depend3499 is expected to equal false3500 #yaml_variables3501 returns YAML variables3502 #downstream_variables3503 returns variables that are going to be passed downstream3504 when using variables interpolation3505 correctly expands variables with interpolation3506 when recursive interpolation has been used3507 does not expand variable recursively3508 forward variables3509 yaml_variables: nil, pipeline_variables: nil, variables: ["BRIDGE"]3510 returns variables according to the forward value3511 yaml_variables: nil, pipeline_variables: false, variables: ["BRIDGE"]3512 returns variables according to the forward value3513 yaml_variables: nil, pipeline_variables: true, variables: ["BRIDGE", "PVAR1"]3514 returns variables according to the forward value3515 yaml_variables: false, pipeline_variables: nil, variables: []3516 returns variables according to the forward value3517 yaml_variables: false, pipeline_variables: false, variables: []3518 returns variables according to the forward value3519 yaml_variables: false, pipeline_variables: true, variables: ["PVAR1"]3520 returns variables according to the forward value3521 yaml_variables: true, pipeline_variables: nil, variables: ["BRIDGE"]3522 returns variables according to the forward value3523 yaml_variables: true, pipeline_variables: false, variables: ["BRIDGE"]3524 returns variables according to the forward value3525 yaml_variables: true, pipeline_variables: true, variables: ["BRIDGE", "PVAR1"]3526 returns variables according to the forward value3527 when sending a variable via both yaml and pipeline3528 uses the pipeline variable3529 when the pipeline runs from a pipeline schedule3530 adds the schedule variable3531 when using raw variables3532 expands variables according to their raw attributes3533 metadata support3534 reads YAML variables from metadata3535 reads options from metadata3536 #triggers_child_pipeline?3537 when bridge defines a downstream YAML3538 is expected to be truthy3539 when bridge does not define a downstream YAML3540 is expected to be falsey3541 #yaml_for_downstream3542 when bridge defines a downstream YAML3543 is expected to eq "---\ninclude: path/to/child.yml\n"3544 when bridge does not define a downstream YAML3545 is expected to be nil3546 #downstream_project_path3547 when trigger is defined3548 when using variable expansion3549 correctly expands variables3550 #target_ref3551 when trigger is defined3552 returns a ref name3553 when using variable expansion3554 correctly expands variables3555 when trigger does not have project defined3556 returns nil3557 #play3558 enqueues the bridge3559 #playable?3560 when bridge is a manual action3561 is expected to be truthy3562 when build is not a manual action3563 is expected to be falsey3564 #action?3565 when bridge is a manual action3566 is expected to be truthy3567 when build is not a manual action3568 is expected to be falsey3569 #dependency_variables3570 when downloading from previous stages3571 inherits only dependent variables3572 when using needs3573 inherits only needs with artifacts variables3574 metadata partitioning3575 creates the metadata record and assigns its partition (PENDING: Skipping partitioning tests until `ci_builds` is partitioned)3576 #deployment_job?3577 is expected to eq false3578ServiceHook3579 behaves like a hook that does not get automatically disabled on failure3580 .executable/.disabled3581 finds the correct set of project hooks3582 #executable?3583 recent_failures: 0, not_until: :not_set3584 has the correct state3585 recent_failures: 0, not_until: :past3586 has the correct state3587 recent_failures: 0, not_until: :future3588 has the correct state3589 recent_failures: 0, not_until: :now3590 has the correct state3591 recent_failures: 1, not_until: :not_set3592 has the correct state3593 recent_failures: 1, not_until: :past3594 has the correct state3595 recent_failures: 1, not_until: :future3596 has the correct state3597 recent_failures: 3, not_until: :not_set3598 has the correct state3599 recent_failures: 3, not_until: :past3600 has the correct state3601 recent_failures: 3, not_until: :future3602 has the correct state3603 recent_failures: 4, not_until: :not_set3604 has the correct state3605 recent_failures: 4, not_until: :past3606 has the correct state3607 recent_failures: 4, not_until: :now3608 has the correct state3609 recent_failures: 4, not_until: :future3610 has the correct state3611 #enable!3612 makes a hook executable if it was marked as failed3613 makes a hook executable if it is currently backed off3614 does not update hooks unless necessary3615 #backoff!3616 when we have not backed off before3617 does not disable the hook3618 when we have exhausted the grace period3619 does not disable the hook3620 #disable!3621 does not disable a group hook3622 #temporarily_disabled?3623 is false3624 #permanently_disabled?3625 is false3626 #alert_status3627 is expected to eq :executable3628 when hook has been disabled3629 is expected to eq :executable3630 when hook has been backed off3631 is expected to eq :executable3632 associations3633 is expected to belong to integration required: false3634 validations3635 is expected to validate that :integration cannot be empty/falsy3636 execute3637 #execute3638 #parent3639 with a project-level integration3640 returns the associated project3641 with a group-level integration3642 returns the associated group3643 with an instance-level integration3644 returns nil3645 #application_context3646 includes the type3647Subscribable Subscribable3648 #subscribed?3649 behaves like returns expected values3650 without user3651 returns false3652 without project3653 returns false when no subscription exists3654 returns true when a subscription exists and subscribed is true3655 returns false when a subscription exists and subscribed is false3656 with project3657 returns false when no subscription exists3658 returns true when a subscription exists and subscribed is true3659 returns false when a subscription exists and subscribed is false3660 #subscribers3661 returns [] when no subcribers exists3662 returns the subscribed users3663 #toggle_subscription3664 without project3665 toggles the current subscription state for the given user3666 with project3667 toggles the current subscription state for the given user3668 #subscribe3669 without project3670 subscribes the given user3671 with project3672 subscribes the given user3673 #unsubscribe3674 without project3675 unsubscribes the given current user3676 with project3677 unsubscribes the given current user3678 #set_subscription3679 without project3680 behaves like setting subscriptions3681 when desired_state is set to true3682 when a user is subscribed to the resource3683 keeps the user subscribed3684 when a user is not subscribed to the resource3685 subscribes the user to the resource3686 when desired_state is set to false3687 when a user is subscribed to the resource3688 unsubscribes the user from the resource3689 when a user is not subscribed to the resource3690 keeps the user unsubscribed3691 with project3692 behaves like setting subscriptions3693 when desired_state is set to true3694 when a user is subscribed to the resource3695 keeps the user subscribed3696 when a user is not subscribed to the resource3697 subscribes the user to the resource3698 when desired_state is set to false3699 when a user is subscribed to the resource3700 unsubscribes the user from the resource3701 when a user is not subscribed to the resource3702 keeps the user unsubscribed3703 #lazy_subscription3704 executes only one SQL query3705 with work items3706 loads correct subscribable type3707 matches existing subscription type3708BlobPolicy3709 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13710 grants permission3711 project_level: :public, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13712 grants permission3713 project_level: :public, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13714 grants permission3715 project_level: :public, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13716 grants permission3717 project_level: :public, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13718 grants permission3719 project_level: :public, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 13720 grants permission3721 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13722 grants permission3723 project_level: :public, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03724 grants permission3725 project_level: :public, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13726 grants permission3727 project_level: :public, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13728 grants permission3729 project_level: :public, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03730 grants permission3731 project_level: :public, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03732 grants permission3733 project_level: :public, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03734 grants permission3735 project_level: :public, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03736 grants permission3737 project_level: :public, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03738 grants permission3739 project_level: :public, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03740 grants permission3741 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: true, expected_count: 13742 grants permission3743 project_level: :internal, feature_access_level: :enabled, membership: :admin, admin_mode: false, expected_count: 13744 grants permission3745 project_level: :internal, feature_access_level: :enabled, membership: :reporter, admin_mode: nil, expected_count: 13746 grants permission3747 project_level: :internal, feature_access_level: :enabled, membership: :guest, admin_mode: nil, expected_count: 13748 grants permission3749 project_level: :internal, feature_access_level: :enabled, membership: :non_member, admin_mode: nil, expected_count: 13750 grants permission3751 project_level: :internal, feature_access_level: :enabled, membership: :anonymous, admin_mode: nil, expected_count: 03752 grants permission3753 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13754 grants permission3755 project_level: :internal, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03756 grants permission3757 project_level: :internal, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13758 grants permission3759 project_level: :internal, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 13760 grants permission3761 project_level: :internal, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03762 grants permission3763 project_level: :internal, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03764 grants permission3765 project_level: :internal, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03766 grants permission3767 project_level: :internal, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03768 grants permission3769 project_level: :internal, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03770 grants permission3771 project_level: :internal, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03772 grants permission3773 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: true, expected_count: 13774 grants permission3775 project_level: :private, feature_access_level: :private, membership: :admin, admin_mode: false, expected_count: 03776 grants permission3777 project_level: :private, feature_access_level: :private, membership: :reporter, admin_mode: nil, expected_count: 13778 grants permission3779 project_level: :private, feature_access_level: :private, membership: :guest, admin_mode: nil, expected_count: 03780 grants permission3781 project_level: :private, feature_access_level: :private, membership: :non_member, admin_mode: nil, expected_count: 03782 grants permission3783 project_level: :private, feature_access_level: :private, membership: :anonymous, admin_mode: nil, expected_count: 03784 grants permission3785 project_level: :private, feature_access_level: :disabled, membership: :reporter, admin_mode: nil, expected_count: 03786 grants permission3787 project_level: :private, feature_access_level: :disabled, membership: :guest, admin_mode: nil, expected_count: 03788 grants permission3789 project_level: :private, feature_access_level: :disabled, membership: :non_member, admin_mode: nil, expected_count: 03790 grants permission3791 project_level: :private, feature_access_level: :disabled, membership: :anonymous, admin_mode: nil, expected_count: 03792 grants permission3793Gitlab::UsageDataCounters::IssueActivityUniqueCounter3794 can return the count of actions per user deduplicated3795 for Issue title edit actions3796 behaves like daily tracked issuable snowplow and service ping events with project3797 behaves like a daily tracked issuable snowplow and service ping events for given event params3798 is expected to eq 23799 does not track edit actions if author is not present3800 emits snowplow event3801 for Issue description edit actions3802 behaves like daily tracked issuable snowplow and service ping events with project3803 behaves like a daily tracked issuable snowplow and service ping events for given event params3804 is expected to eq 23805 does not track edit actions if author is not present3806 emits snowplow event3807 for Issue assignee edit actions3808 behaves like daily tracked issuable snowplow and service ping events with project3809 behaves like a daily tracked issuable snowplow and service ping events for given event params3810 is expected to eq 23811 does not track edit actions if author is not present3812 emits snowplow event3813 for Issue make confidential actions3814 behaves like daily tracked issuable snowplow and service ping events with project3815 behaves like a daily tracked issuable snowplow and service ping events for given event params3816 is expected to eq 23817 does not track edit actions if author is not present3818 emits snowplow event3819 for Issue make visible actions3820 behaves like daily tracked issuable snowplow and service ping events with project3821 behaves like a daily tracked issuable snowplow and service ping events for given event params3822 is expected to eq 23823 does not track edit actions if author is not present3824 emits snowplow event3825 for Issue created actions3826 behaves like daily tracked issuable snowplow and service ping events with project3827 behaves like a daily tracked issuable snowplow and service ping events for given event params3828 is expected to eq 23829 does not track edit actions if author is not present3830 emits snowplow event3831 for Issue closed actions3832 behaves like daily tracked issuable snowplow and service ping events with project3833 behaves like a daily tracked issuable snowplow and service ping events for given event params3834 is expected to eq 23835 does not track edit actions if author is not present3836 emits snowplow event3837 for Issue reopened actions3838 behaves like daily tracked issuable snowplow and service ping events with project3839 behaves like a daily tracked issuable snowplow and service ping events for given event params3840 is expected to eq 23841 does not track edit actions if author is not present3842 emits snowplow event3843 for Issue label changed actions3844 behaves like daily tracked issuable snowplow and service ping events with project3845 behaves like a daily tracked issuable snowplow and service ping events for given event params3846 is expected to eq 23847 does not track edit actions if author is not present3848 emits snowplow event3849 for Issue label milestone actions3850 behaves like daily tracked issuable snowplow and service ping events with project3851 behaves like a daily tracked issuable snowplow and service ping events for given event params3852 is expected to eq 23853 does not track edit actions if author is not present3854 emits snowplow event3855 for Issue cross-referenced actions3856 behaves like daily tracked issuable snowplow and service ping events with project3857 behaves like a daily tracked issuable snowplow and service ping events for given event params3858 is expected to eq 23859 does not track edit actions if author is not present3860 emits snowplow event3861 for Issue moved actions3862 behaves like daily tracked issuable snowplow and service ping events with project3863 behaves like a daily tracked issuable snowplow and service ping events for given event params3864 is expected to eq 23865 does not track edit actions if author is not present3866 emits snowplow event3867 for Issue cloned actions3868 behaves like daily tracked issuable snowplow and service ping events with project3869 behaves like a daily tracked issuable snowplow and service ping events for given event params3870 is expected to eq 23871 does not track edit actions if author is not present3872 emits snowplow event3873 for Issue relate actions3874 behaves like daily tracked issuable snowplow and service ping events with project3875 behaves like a daily tracked issuable snowplow and service ping events for given event params3876 is expected to eq 23877 does not track edit actions if author is not present3878 emits snowplow event3879 for Issue unrelate actions3880 behaves like daily tracked issuable snowplow and service ping events with project3881 behaves like a daily tracked issuable snowplow and service ping events for given event params3882 is expected to eq 23883 does not track edit actions if author is not present3884 emits snowplow event3885 for Issue marked as duplicate actions3886 behaves like daily tracked issuable snowplow and service ping events with project3887 behaves like a daily tracked issuable snowplow and service ping events for given event params3888 is expected to eq 23889 does not track edit actions if author is not present3890 emits snowplow event3891 for Issue locked actions3892 behaves like daily tracked issuable snowplow and service ping events with project3893 behaves like a daily tracked issuable snowplow and service ping events for given event params3894 is expected to eq 23895 does not track edit actions if author is not present3896 emits snowplow event3897 for Issue unlocked actions3898 behaves like daily tracked issuable snowplow and service ping events with project3899 behaves like a daily tracked issuable snowplow and service ping events for given event params3900 is expected to eq 23901 does not track edit actions if author is not present3902 emits snowplow event3903 for Issue designs added actions3904 behaves like daily tracked issuable snowplow and service ping events with project3905 behaves like a daily tracked issuable snowplow and service ping events for given event params3906 is expected to eq 23907 does not track edit actions if author is not present3908 emits snowplow event3909 for Issue designs modified actions3910 behaves like daily tracked issuable snowplow and service ping events with project3911 behaves like a daily tracked issuable snowplow and service ping events for given event params3912 is expected to eq 23913 does not track edit actions if author is not present3914 emits snowplow event3915 for Issue designs removed actions3916 behaves like daily tracked issuable snowplow and service ping events with project3917 behaves like a daily tracked issuable snowplow and service ping events for given event params3918 is expected to eq 23919 does not track edit actions if author is not present3920 emits snowplow event3921 for Issue due date changed actions3922 behaves like daily tracked issuable snowplow and service ping events with project3923 behaves like a daily tracked issuable snowplow and service ping events for given event params3924 is expected to eq 23925 does not track edit actions if author is not present3926 emits snowplow event3927 for Issue time estimate changed actions3928 behaves like daily tracked issuable snowplow and service ping events with project3929 behaves like a daily tracked issuable snowplow and service ping events for given event params3930 is expected to eq 23931 does not track edit actions if author is not present3932 emits snowplow event3933 for Issue time spent changed actions3934 behaves like daily tracked issuable snowplow and service ping events with project3935 behaves like a daily tracked issuable snowplow and service ping events for given event params3936 is expected to eq 23937 does not track edit actions if author is not present3938 emits snowplow event3939 for Issue comment added actions3940 behaves like daily tracked issuable snowplow and service ping events with project3941 behaves like a daily tracked issuable snowplow and service ping events for given event params3942 is expected to eq 23943 does not track edit actions if author is not present3944 emits snowplow event3945 for Issue comment edited actions3946 behaves like daily tracked issuable snowplow and service ping events with project3947 behaves like a daily tracked issuable snowplow and service ping events for given event params3948 is expected to eq 23949 does not track edit actions if author is not present3950 emits snowplow event3951 for Issue comment removed actions3952 behaves like daily tracked issuable snowplow and service ping events with project3953 behaves like a daily tracked issuable snowplow and service ping events for given event params3954 is expected to eq 23955 does not track edit actions if author is not present3956 emits snowplow event3957 for Issue design comment removed actions3958 behaves like daily tracked issuable snowplow and service ping events with project3959 behaves like a daily tracked issuable snowplow and service ping events for given event params3960 is expected to eq 23961 does not track edit actions if author is not present3962 emits snowplow event3963Gitlab::Ci::Variables::Collection3964 .new3965 can be initialized with an array3966 can be initialized without an argument3967 #append3968 appends a hash3969 appends a Ci::Variable3970 appends an internal resource3971 returns self3972 #compact3973 returns a new Collection instance3974 rejects pair that has nil value3975 #concat3976 appends all elements from an array3977 appends all elements from other collection3978 does not concatenate resource if it undefined3979 returns self3980 #+3981 makes it possible to combine with an array3982 makes it possible to combine with another collection3983 #[]3984 with variable key with single entry3985 behaves like an array access operator3986 for a non-existent variable name3987 returns nil3988 for an existent variable name3989 returns the last Item3990 with variable key with multiple entries3991 behaves like an array access operator3992 for a non-existent variable name3993 returns nil3994 for an existent variable name3995 returns the last Item3996 #all3997 with variable key with single entry3998 behaves like a method returning all known variables or nil3999 for a non-existent variable name4000 returns nil4001 for an existing variable name4002 returns all expected Items4003 with variable key with multiple entries4004 behaves like a method returning all known variables or nil4005 for a non-existent variable name4006 returns nil4007 for an existing variable name4008 returns all expected Items4009 #size4010 returns zero for empty collection4011 returns 2 for collection with 2 variables4012 returns 3 for collection with 2 duplicate variables4013 #to_runner_variables4014 creates an array of hashes in a runner-compatible format4015 #to_hash4016 returns regular hash in valid order without duplicates4017 #reject4018 returns a Collection instance4019 returns correctly filtered Collection4020 #sort_and_expand_all4021 table tests4022 empty array4023 returns Collection4024 expands variables4025 preserves raw attribute4026 empty string4027 returns Collection4028 expands variables4029 preserves raw attribute4030 simple expansions4031 returns Collection4032 expands variables4033 preserves raw attribute4034 complex expansion4035 returns Collection4036 expands variables4037 preserves raw attribute4038 unused variables4039 returns Collection4040 expands variables4041 preserves raw attribute4042 complex expansions4043 returns Collection4044 expands variables4045 preserves raw attribute4046 escaped characters in complex expansions keeping undefined are kept intact4047 returns Collection4048 expands variables4049 preserves raw attribute4050 escaped characters in complex expansions discarding undefined are kept intact4051 returns Collection4052 expands variables4053 preserves raw attribute4054 out-of-order expansion4055 returns Collection4056 expands variables4057 preserves raw attribute4058 out-of-order complex expansion4059 returns Collection4060 expands variables4061 preserves raw attribute4062 missing variable discarding original4063 returns Collection4064 expands variables4065 preserves raw attribute4066 missing variable keeping original4067 returns Collection4068 expands variables4069 preserves raw attribute4070 complex expansions with missing variable keeping original4071 returns Collection4072 expands variables4073 preserves raw attribute4074 complex expansions with raw variable with expand_raw_refs: true (default)4075 returns Collection4076 expands variables4077 preserves raw attribute4078 complex expansions with raw variable with expand_raw_refs: false4079 returns Collection4080 expands variables4081 preserves raw attribute4082 variable value referencing password with special characters4083 returns Collection4084 expands variables4085 preserves raw attribute4086 cyclic dependency causes original array to be returned4087 returns Collection4088 expands variables4089 preserves raw attribute4090 file variables with expand_file_refs: true4091 returns Collection4092 expands variables4093 preserves raw attribute4094 file variables with expand_file_refs: false4095 returns Collection4096 expands variables4097 preserves raw attribute4098 #to_s4099 is expected to eq "[\"VAR\", \"VAR2\"], @errors='circular variable reference detected'"4100Group Routable4101 creates route with namespace referencing group4102 behaves like routable resource4103 .find_by_full_path4104 finds records by their full path4105 returns nil for unknown paths4106 includes route information when loading a record4107 when path is a negative number4108 returns nil4109 with redirect routes4110 without follow_redirects option4111 does not find records by their redirected path4112 with follow_redirects option set to true4113 finds records by their canonical path4114 finds records by their redirected path4115 returns nil for unknown paths4116 behaves like routable resource with parent4117 behaves like routable resource4118 .find_by_full_path4119 finds records by their full path4120 returns nil for unknown paths4121 includes route information when loading a record4122 when path is a negative number4123 returns nil4124 with redirect routes4125 without follow_redirects option4126 does not find records by their redirected path4127 with follow_redirects option set to true4128 finds records by their canonical path4129 finds records by their redirected path4130 returns nil for unknown paths4131 #full_path4132 is expected to eq "foo/group434"4133 hits the cache when not preloaded4134 #full_name4135 is expected to eq "foo / group434"4136 hits the cache when not preloaded4137 without route name4138 builds full name4139 Validations4140 is expected to validate that :route cannot be empty/falsy4141 Associations4142 is expected to have one route dependent => destroy4143 is expected to have many redirect_routes dependent => destroy4144 Callbacks4145 for a group4146 creates route record on create4147 updates route record on path change4148 ensure route path uniqueness across different objects4149 for a user4150 creates the route for a record on create4151 updates routes and nested routes on name change4152 .where_full_path_in4153 without any paths4154 returns an empty relation4155 without any valid paths4156 returns an empty relation4157 with valid paths4158 returns the projects matching the paths4159 returns projects regardless of the casing of paths4160 #parent_loaded?4161 is false when the parent is not loaded4162 is true when the parent is loaded4163 #route_loaded?4164 is false when the route is not loaded4165 is true when the route is loaded4166Project Routable4167 creates route with namespace referencing project namespace4168 behaves like routable resource with parent4169 behaves like routable resource4170 .find_by_full_path4171 finds records by their full path4172 returns nil for unknown paths4173 includes route information when loading a record4174 when path is a negative number4175 returns nil4176 with redirect routes4177 without follow_redirects option4178 does not find records by their redirected path4179 with follow_redirects option set to true4180 finds records by their canonical path4181 finds records by their redirected path4182 returns nil for unknown paths4183 #full_path4184 is expected to eq "namespace895/project1219"4185 hits the cache when not preloaded4186 #full_name4187 is expected to eq "Sidney Jones1554 / project1219"4188 hits the cache when not preloaded4189 without route name4190 builds full name4191Namespaces::ProjectNamespace Routable4192 skips route creation for the resource4193Gitlab::Ci::Runner::Backoff4194 #duration4195 returns backoff duration from start4196 returns an integer value4197 returns the smallest number greater than or equal to duration4198 #slot4199 started: 0, slot: 04200 falls into an appropaite backoff slot4201 started: 0.1, slot: 04202 falls into an appropaite backoff slot4203 started: 0.9, slot: 04204 falls into an appropaite backoff slot4205 started: 1, slot: 04206 falls into an appropaite backoff slot4207 started: 1.1, slot: 04208 falls into an appropaite backoff slot4209 started: 1.9, slot: 04210 falls into an appropaite backoff slot4211 started: 2, slot: 04212 falls into an appropaite backoff slot4213 started: 2.9, slot: 04214 falls into an appropaite backoff slot4215 started: 3, slot: 04216 falls into an appropaite backoff slot4217 started: 4, slot: 14218 falls into an appropaite backoff slot4219 started: 5, slot: 14220 falls into an appropaite backoff slot4221 started: 6, slot: 14222 falls into an appropaite backoff slot4223 started: 7, slot: 14224 falls into an appropaite backoff slot4225 started: 8, slot: 24226 falls into an appropaite backoff slot4227 started: 9, slot: 24228 falls into an appropaite backoff slot4229 started: 9.9, slot: 24230 falls into an appropaite backoff slot4231 started: 10, slot: 24232 falls into an appropaite backoff slot4233 started: 15, slot: 24234 falls into an appropaite backoff slot4235 started: 16, slot: 34236 falls into an appropaite backoff slot4237 started: 31, slot: 34238 falls into an appropaite backoff slot4239 started: 32, slot: 44240 falls into an appropaite backoff slot4241 started: 63, slot: 44242 falls into an appropaite backoff slot4243 started: 64, slot: 54244 falls into an appropaite backoff slot4245 started: 127, slot: 54246 falls into an appropaite backoff slot4247 started: 128, slot: 64248 falls into an appropaite backoff slot4249 started: 250, slot: 64250 falls into an appropaite backoff slot4251 started: 310, slot: 74252 falls into an appropaite backoff slot4253 started: 520, slot: 84254 falls into an appropaite backoff slot4255 started: 999, slot: 84256 falls into an appropaite backoff slot4257 #to_seconds4258 started: 0, backoff: 14259 calculates backoff based on an appropriate slot4260 started: 0.1, backoff: 14261 calculates backoff based on an appropriate slot4262 started: 0.9, backoff: 14263 calculates backoff based on an appropriate slot4264 started: 1, backoff: 14265 calculates backoff based on an appropriate slot4266 started: 1.1, backoff: 14267 calculates backoff based on an appropriate slot4268 started: 1.9, backoff: 14269 calculates backoff based on an appropriate slot4270 started: 2, backoff: 14271 calculates backoff based on an appropriate slot4272 started: 3, backoff: 14273 calculates backoff based on an appropriate slot4274 started: 4, backoff: 24275 calculates backoff based on an appropriate slot4276 started: 5, backoff: 24277 calculates backoff based on an appropriate slot4278 started: 6, backoff: 24279 calculates backoff based on an appropriate slot4280 started: 6.5, backoff: 24281 calculates backoff based on an appropriate slot4282 started: 7, backoff: 24283 calculates backoff based on an appropriate slot4284 started: 8, backoff: 44285 calculates backoff based on an appropriate slot4286 started: 9, backoff: 44287 calculates backoff based on an appropriate slot4288 started: 9.9, backoff: 44289 calculates backoff based on an appropriate slot4290 started: 10, backoff: 44291 calculates backoff based on an appropriate slot4292 started: 15, backoff: 44293 calculates backoff based on an appropriate slot4294 started: 16, backoff: 84295 calculates backoff based on an appropriate slot4296 started: 31, backoff: 84297 calculates backoff based on an appropriate slot4298 started: 32, backoff: 164299 calculates backoff based on an appropriate slot4300 started: 63, backoff: 164301 calculates backoff based on an appropriate slot4302 started: 64, backoff: 324303 calculates backoff based on an appropriate slot4304 started: 127, backoff: 324305 calculates backoff based on an appropriate slot4306 started: 128, backoff: 644307 calculates backoff based on an appropriate slot4308 started: 250, backoff: 644309 calculates backoff based on an appropriate slot4310 started: 310, backoff: 644311 calculates backoff based on an appropriate slot4312 started: 520, backoff: 644313 calculates backoff based on an appropriate slot4314 started: 999, backoff: 644315 calculates backoff based on an appropriate slot4316ActiveSession4317 #current?4318 returns true if the active session matches the current session4319 returns false if the active session does not match the current session4320 returns false if the session id is nil4321 .list4322 returns all sessions by user4323 returns an empty array if the user does not have any active session4324 when the current session is in the old format4325 behaves like ignoring obsolete entries4326 does not return obsolete entries and cleans them up4327 when the current session is in the new format4328 behaves like ignoring obsolete entries4329 does not return obsolete entries and cleans them up4330 .list_sessions4331 uses the ActiveSession lookup to return original sessions4332 .session_ids_for_user4333 uses the user lookup table to return session ids4334 .sessions_from_ids4335 uses the ActiveSession lookup to return original sessions4336 avoids a redis lookup for an empty array4337 uses redis lookup in batches4338 .set4339 sets a new redis entry for the user session and a lookup entry4340 adds timestamps and information from the request4341 keeps the created_at from the login on consecutive requests4342 .destroy_session4343 destroy called with Rack::Session::SessionId#private_id4344 calls .destroy_sessions4345 ActiveSession with session_private_id4346 when using old session key serialization4347 removes the devise session4348 removes the lookup entry4349 removes the ActiveSession4350 when using new session key serialization4351 removes the devise session4352 removes the lookup entry4353 removes the ActiveSession4354 .destroy_all_but_current4355 gracefully handles a nil session ID4356 with legacy sessions4357 behaves like with user sessions4358 removes the entry associated with the all user sessions but current4359 removes the lookup entry of deleted sessions4360 does not remove impersonated sessions4361 with new sessions4362 behaves like with user sessions4363 removes the entry associated with the all user sessions but current4364 removes the lookup entry of deleted sessions4365 does not remove impersonated sessions4366 .cleanup4367 with legacy sessions4368 behaves like cleaning up4369 does not bail if there are no lookup entries4370 when removing obsolete sessions4371 removes obsolete lookup entries4372 cleaning up old sessions4373 removes obsolete active sessions entries4374 removes obsolete lookup entries4375 removes obsolete lookup entries even without active session4376 when the number of active sessions is lower than the limit4377 does not remove active session entries, but removes lookup entries4378 cleaning up old sessions stored by Rack::Session::SessionId#private_id4379 removes obsolete active sessions entries4380 with new sessions4381 behaves like cleaning up4382 does not bail if there are no lookup entries4383 when removing obsolete sessions4384 removes obsolete lookup entries4385 cleaning up old sessions4386 removes obsolete active sessions entries4387 removes obsolete lookup entries4388 removes obsolete lookup entries even without active session4389 when the number of active sessions is lower than the limit4390 does not remove active session entries, but removes lookup entries4391 cleaning up old sessions stored by Rack::Session::SessionId#private_id4392 removes obsolete active sessions entries4393 .cleaned_up_lookup_entries4394 with legacy sessions4395 behaves like cleaning up lookup entries4396 removes obsolete lookup entries4397 reports the removed entries4398 with new sessions4399 behaves like cleaning up lookup entries4400 removes obsolete lookup entries4401 reports the removed entries4402 .set_active_user_cookie4403 sets marketing cookie4404 .unset_active_user_cookie4405 unsets marketing cookie4406Gitlab::JsonCache4407 #active?4408 when backend respond to active? method4409 delegates to the underlying cache implementation4410 when backend does not respond to active? method4411 returns true4412 #cache_key4413 namespace: nil, cache_key_strategy: :revision, expanded_key: "foo:aa21306d85f"4414 is expected to eq "foo:aa21306d85f"4415 namespace: nil, cache_key_strategy: :version, expanded_key: "foo:15.11.0-pre:6.1.7.2"4416 is expected to eq "foo:15.11.0-pre:6.1.7.2"4417 namespace: "geo", cache_key_strategy: :revision, expanded_key: "geo:foo:aa21306d85f"4418 is expected to eq "geo:foo:aa21306d85f"4419 namespace: "geo", cache_key_strategy: :version, expanded_key: "geo:foo:15.11.0-pre:6.1.7.2"4420 is expected to eq "geo:foo:15.11.0-pre:6.1.7.2"4421 when cache_key_strategy is unknown4422 raises KeyError4423 #namespace4424 defaults to nil4425 #strategy_key_component4426 defaults to Gitlab.revision4427 when cache_key_strategy is :revision4428 is expected to eq "aa21306d85f"4429 when cache_key_strategy is :version4430 is expected to eq ["15.11.0-pre", "6.1.7.2"]4431 when cache_key_strategy is invalid4432 raises KeyError4433 #expire4434 expires the given key from the cache4435 #read4436 reads the given key from the cache4437 returns the cached value when there is data in the cache with the given key4438 returns nil when there is no data in the cache with the given key4439 when the cached value is true4440 parses the cached value4441 when the cached value is false4442 parses the cached value4443 when the cached value is a JSON true value4444 parses the cached value4445 when the cached value is a JSON false value4446 parses the cached value4447 when the cached value is a hash4448 parses the cached value4449 returns nil when klass is nil4450 gracefully handles bad cached entry4451 gracefully handles an empty hash4452 gracefully handles unknown attributes4453 gracefully handles excluded fields from attributes during serialization4454 when the cached value is an array4455 parses the cached value4456 returns an empty array when klass is nil4457 gracefully handles bad cached entry4458 gracefully handles an empty array4459 gracefully handles unknown attributes4460 #write4461 writes value to the cache with the given key4462 writes a string containing a JSON representation of the value to the cache4463 passes options the underlying cache implementation4464 passes options the underlying cache implementation when options is empty4465 passes options the underlying cache implementation when options is nil4466 #fetch4467 requires a block4468 passes options the underlying cache implementation4469 when the given key does not exist in the cache4470 when the result of the block is truthy4471 returns the result of the block4472 caches the value4473 when the result of the block is false4474 returns the result of the block4475 caches the value4476 when the result of the block is nil4477 returns the result of the block4478 caches the value4479 when the given key exists in the cache4480 when the cached value is a hash4481 parses the cached value4482 decodes enums correctly4483 returns the result of the block when 'as' option is nil4484 returns the result of the block when 'as' option is missing4485 when the cached value is an instance of ActiveRecord::Base4486 returns a persisted record when id is set4487 returns a new record when id is nil4488 returns a new record when id is missing4489 gracefully handles bad cached entry4490 gracefully handles an empty hash4491 gracefully handles unknown attributes4492 gracefully handles excluded fields from attributes during serialization4493 when the cached value is a array4494 parses the cached value4495 returns an empty array when 'as' option is nil4496 returns an empty array when 'as' option is not informed4497 when the cached value is true4498 returns the cached value4499 does not execute the block4500 does not write to the cache4501 when the cached value is false4502 returns the cached value4503 does not execute the block4504 does not write to the cache4505 when the cached value is nil4506 returns the result of the block4507 writes the result of the block to the cache4508Gitlab::Database::WithLockRetries4509 #run4510 requires block4511 when DISABLE_LOCK_RETRIES is set4512 executes the passed block without retrying4513 when lock retry is enabled4514 lock_fiber4515 acquires lock successfully4516 after 3 iterations4517 behaves like retriable exclusive lock on `projects`4518 succeeds executing the given block4519 setting the idle transaction timeout4520 when there is no outer transaction: disable_ddl_transaction! is set in the migration4521 does not disable the idle transaction timeout4522 when there is outer transaction: disable_ddl_transaction! is not set in the migration4523 disables the idle transaction timeout so the code can sleep and retry4524 after the retries are exhausted4525 when there is no outer transaction: disable_ddl_transaction! is set in the migration4526 does not disable the lock_timeout4527 when there is outer transaction: disable_ddl_transaction! is not set in the migration4528 disables the lock_timeout4529 after the retries, without setting lock_timeout4530 behaves like retriable exclusive lock on `projects`4531 succeeds executing the given block4532 after the retries, when requested to raise an error4533 raises an error instead of waiting indefinitely for the lock4534 when statement timeout is reached4535 raises QueryCanceled error4536 restore local database variables4537 is expected not to change `connection.execute("SHOW lock_timeout").to_a`4538 is expected not to change `connection.execute("SHOW idle_in_transaction_session_timeout").to_a`4539 casting durations correctly4540 executes `SET LOCAL lock_timeout` using the configured timeout value in milliseconds4541 calls `sleep` after the first iteration fails, using the configured sleep time4542 Stop using subtransactions - allow_savepoints: false4543 prevents running inside already open transaction4544 does not raise the error if not inside open transaction4545Clusters::Agent4546 is expected to belong to created_by_user class_name => User optional: true4547 is expected to belong to project class_name => ::Project required: false4548 is expected to have many agent_tokens class_name => Clusters::AgentToken order => #<Arel::Nodes::NullsLast:0x00007f6b3a5d2da0>4549 is expected to have many group_authorizations class_name => Clusters::Agents::GroupAuthorization4550 is expected to have many authorized_groups through group_authorizations4551 is expected to have many project_authorizations class_name => Clusters::Agents::ProjectAuthorization4552 is expected to have many authorized_projects class_name => ::Project through project_authorizations4553 is expected to validate that :name cannot be empty/falsy4554 is expected to validate that the length of :name is at most 634555 is expected to validate that :name is case-sensitively unique within the scope of :project_id4556 scopes4557 .ordered_by_name4558 is expected to eq ["agent-a", "agent-b", "agent-c", "agent-d"]4559 .with_name4560 is expected to contain exactly #<Clusters::Agent id: 15, created_at: "2023-04-12 14:58:36.601384325 +0000", updated_at: "2023-04-12 ...000", project_id: 1217, name: "matching-name", created_by_user_id: 1474, has_vulnerabilities: false>4561 .has_vulnerabilities4562 when value is not provided4563 returns agents which have vulnerabilities4564 when value is provided4565 as true4566 returns agents which have vulnerabilities4567 as false4568 returns agents which do not have vulnerabilities4569 validation4570 name validation4571 rejects names that do not conform to RFC 11234572 accepts valid names4573 #has_access_to?4574 has access to own project4575 does not have access to other projects4576 #connected?4577 agent has never connected4578 is expected to be falsey4579 agent has connected, but not recently4580 is expected to be falsey4581 agent has connected recently4582 is expected to be truthy4583 agent token has been revoked4584 is expected to be falsey4585 agent has multiple tokens4586 is expected to be truthy4587 #activity_event_deletion_cutoff4588 is expected to within one second of 2023-04-12 12:58:40 UTC4589Integrations::BaseChatNotification4590 default values4591 is expected to eq :chat4592 validations4593 when active4594 is expected to validate that :webhook cannot be empty/falsy4595 is expected to validate that :labels_to_be_notified_behavior is either ‹"match_any"› or ‹"match_all"›4596 is expected to allow :push_channel to be ‹"#1,#2,#3,#4,#5,#6,#7,#8,#9,#10"›4597 is expected not to allow :push_channel to be ‹"#1,#2,#3,#4,#5,#6,#7,#8,#9,#10,#11"›4598 when inactive4599 is expected not to validate that :webhook cannot be empty/falsy4600 is expected not to validate that :labels_to_be_notified_behavior is either ‹"match_any"› or ‹"match_all"›4601 is expected to allow :push_channel to be ‹"#1,#2,#3,#4,#5,#6,#7,#8,#9,#10"›4602 is expected to allow :push_channel to be ‹"#1,#2,#3,#4,#5,#6,#7,#8,#9,#10,#11"›4603 #execute4604 with a repository4605 returns true4606 with an empty repository4607 returns true4608 when webhook is blank4609 returns false4610 when webhook is not required4611 returns true4612 when event is not supported4613 returns false4614 with a project with name containing spaces4615 does not remove spaces4616 when the data object has a label4617 behaves like notifies the chat integration4618 is expected to receive notify(*(any args)) 1 time4619 with label filter4620 behaves like notifies the chat integration4621 is expected to receive notify(*(any args)) 1 time4622 MergeRequest events4623 behaves like notifies the chat integration4624 is expected to receive notify(*(any args)) 1 time4625 Issue events4626 behaves like notifies the chat integration4627 is expected to receive notify(*(any args)) 1 time4628 Incident events4629 behaves like notifies the chat integration4630 is expected to receive notify(*(any args)) 1 time4631 when labels_to_be_notified_behavior is not defined4632 no matching labels4633 behaves like does not notify the chat integration4634 is expected not to receive notify(*(any args)) 0 times4635 only one label matches4636 behaves like notifies the chat integration4637 is expected to receive notify(*(any args)) 1 time4638 when labels_to_be_notified_behavior is blank4639 no matching labels4640 behaves like does not notify the chat integration4641 is expected not to receive notify(*(any args)) 0 times4642 only one label matches4643 behaves like notifies the chat integration4644 is expected to receive notify(*(any args)) 1 time4645 when labels_to_be_notified_behavior is match_any4646 no label filter4647 behaves like notifies the chat integration4648 is expected to receive notify(*(any args)) 1 time4649 no matching labels4650 behaves like does not notify the chat integration4651 is expected not to receive notify(*(any args)) 0 times4652 only one label matches4653 behaves like notifies the chat integration4654 is expected to receive notify(*(any args)) 1 time4655 when labels_to_be_notified_behavior is match_all4656 no label filter4657 behaves like notifies the chat integration4658 is expected to receive notify(*(any args)) 1 time4659 no matching labels4660 behaves like does not notify the chat integration4661 is expected not to receive notify(*(any args)) 0 times4662 only one label matches4663 behaves like does not notify the chat integration4664 is expected not to receive notify(*(any args)) 0 times4665 labels matches exactly4666 behaves like notifies the chat integration4667 is expected to receive notify(*(any args)) 1 time4668 labels matches but object has more4669 behaves like notifies the chat integration4670 is expected to receive notify(*(any args)) 1 time4671 labels are distributed on multiple objects4672 behaves like does not notify the chat integration4673 is expected not to receive notify(*(any args)) 0 times4674 with "channel" property4675 empty string4676 does not include the channel4677 empty spaces4678 does not include the channel4679 with single channel specified4680 behaves like with channel specified4681 notifies all channels4682 with multiple channel names specified4683 behaves like with channel specified4684 notifies all channels4685 with multiple channel names with spaces specified4686 behaves like with channel specified4687 notifies all channels4688 with duplicate channel names4689 behaves like with channel specified4690 notifies all channels4691 #default_channel_placeholder4692 raises an error4693 #webhook_help4694 raises an error4695 #event_channel_name4696 returns the channel field name for the given event4697 #event_channel_value4698 returns the channel field value for the given event4699 raises an error for unsupported events4700Ci::StuckBuilds::DropRunningService4701 when job is running4702 when job is outdated4703 behaves like job is dropped with failure reason4704 changes status4705 when job has data integrity problem4706 drops the job and logs the reason4707 when job is fresh4708 behaves like job is unchanged4709 does not change status4710 when job freshly updated4711 behaves like job is unchanged4712 does not change status4713 when new query flag is disabled4714 when job is running4715 when job is outdated4716 behaves like job is dropped with failure reason4717 changes status4718 when job has data integrity problem4719 drops the job and logs the reason4720 when job is fresh4721 behaves like job is unchanged4722 does not change status4723 when job freshly updated4724 behaves like job is unchanged4725 does not change status4726 when job is success4727 when created_at is the same as updated_at4728 behaves like job is unchanged4729 does not change status4730 when created_at is before updated_at4731 behaves like job is unchanged4732 does not change status4733 when job is skipped4734 when created_at is the same as updated_at4735 behaves like job is unchanged4736 does not change status4737 when created_at is before updated_at4738 behaves like job is unchanged4739 does not change status4740 when job is failed4741 when created_at is the same as updated_at4742 behaves like job is unchanged4743 does not change status4744 when created_at is before updated_at4745 behaves like job is unchanged4746 does not change status4747 when job is canceled4748 when created_at is the same as updated_at4749 behaves like job is unchanged4750 does not change status4751 when created_at is before updated_at4752 behaves like job is unchanged4753 does not change status4754 when job is scheduled4755 when created_at is the same as updated_at4756 behaves like job is unchanged4757 does not change status4758 when created_at is before updated_at4759 behaves like job is unchanged4760 does not change status4761 when job is pending4762 when created_at is the same as updated_at4763 behaves like job is unchanged4764 does not change status4765 when created_at is before updated_at4766 behaves like job is unchanged4767 does not change status4768Gitlab::Diff::PositionTracer::ImageStrategy4769 #trace4770 diff scenarios4771 when the file was created in the old diff4772 when the file is unchanged between the old and the new diff4773 returns the new position4774 when the file was updated between the old and the new diff4775 returns the position of the change4776 when the file was renamed in between the old and the new diff4777 returns the position of the change4778 when the file was removed in between the old and the new diff4779 returns the position of the change4780 when the file is unchanged in the new diff4781 returns the position of the change4782 when the file was changed in the old diff4783 when the file is unchanged in between the old and the new diff4784 returns the new position4785 when the file was updated in between the old and the new diff4786 returns the position of the change4787 when the file was renamed in between the old and the new diff4788 returns the position of the change4789 when the file was removed in between the old and the new diff4790 returns the position of the change4791 when the file is unchanged in the new diff4792 returns the position of the change4793Issues::ReopenService4794 #execute4795 when user is not authorized to reopen issue4796 does not reopen the issue4797 when skip_authorization is true4798 does close the issue even if user is not authorized4799 when user is authorized to reopen issue4800 invalidates counter cache for assignees4801 refreshes the number of opened issues4802 deletes milestone issue counters cache4803 does not create timeline event4804 issue is incident type4805 creates a timeline event4806 behaves like an incident management tracked event4807 .track_event4808 tracks the event using redis4809 behaves like Snowplow event tracking with RedisHLL context4810 behaves like Snowplow event tracking4811 is emitted4812 when issue is not confidential4813 executes issue hooks4814 when issue is confidential4815 executes confidential issue hooks4816SystemNotes::DesignManagementService4817 #design_version_added4818 with one kind of event4819 makes just one note4820 adds a new system note4821 with a mixture of events4822 makes one note for each kind of event4823 adds a system note for each kind of event4824 icons4825 action: :creation4826 has a valid action4827 action: :modification4828 has a valid action4829 action: :deletion4830 has a valid action4831 it succeeds4832 action: :creation, icon: "designs_added", human_description: "added"4833 has the correct data4834 action: :modification, icon: "designs_modified", human_description: "updated"4835 has the correct data4836 action: :deletion, icon: "designs_removed", human_description: "removed"4837 has the correct data4838 #design_discussion_added4839 adds a new system note4840 has the correct note text4841 behaves like a system note4842 has the correct attributes4843Todos::Destroy::UnauthorizedFeaturesService4844 when user_id is provided4845 when all features have same visibility as the project4846 removes only user issue todos4847 when issues are visible only to project members but the user is a member4848 does not remove any todos4849 when issues are visible only to project members4850 removes only user issue todos4851 when mrs, builds and repository are visible only to project members4852 removes only user mr and commit todos4853 when mrs are visible only to project members4854 removes only user merge request todo4855 when mrs and issues are visible only to project members4856 removes only user merge request and issue todos4857 when user_id is not provided4858 when all features have same visibility as the project4859 does not remove any todos4860 when issues are visible only to project members4861 removes only non members issue todos4862 when mrs, builds and repository are visible only to project members4863 removes only non members mr and commit todos4864 when mrs are visible only to project members4865 removes only non members merge request todos4866 when mrs and issues are visible only to project members4867 removes only non members merge request and issue todos4868Gitlab::Email::Receiver4869 requires all handlers to have a unique metric_event4870 requires all handlers to respond to #project4871 when the email contains a valid email address in a header4872 when in a Delivered-To header4873 behaves like successful receive4874 correctly finds the mail key4875 adds metric event4876 returns valid metadata4877 when in an Envelope-To header4878 behaves like successful receive4879 correctly finds the mail key4880 adds metric event4881 returns valid metadata4882 when in an X-Envelope-To header4883 behaves like successful receive4884 correctly finds the mail key4885 adds metric event4886 returns valid metadata4887 when enclosed with angle brackets in an Envelope-To header4888 behaves like successful receive4889 correctly finds the mail key4890 adds metric event4891 returns valid metadata4892 when mail key is in the references header with a comma4893 behaves like successful receive4894 correctly finds the mail key4895 adds metric event4896 returns valid metadata4897 when all other headers are missing4898 it uses receive headers to find the key4899 behaves like successful receive4900 correctly finds the mail key4901 adds metric event4902 returns valid metadata4903 when we cannot find a capable handler4904 behaves like failed receive with event4905 adds metric event4906 when the email is blank4907 behaves like failed receive without event4908 adds metric event4909 when the email was auto generated with Auto-Submitted header4910 behaves like failed receive without event4911 adds metric event4912 when the email's To field is blank4913 behaves like successful receive4914 correctly finds the mail key4915 adds metric event4916 returns valid metadata4917 when the email's From field is blank4918 behaves like successful receive4919 correctly finds the mail key4920 adds metric event4921 returns valid metadata4922 when the email was auto generated with X-Autoreply header4923 behaves like failed receive without event4924 adds metric event4925 event raising via errors4926 handling errors which do not raise events4927 expected_error: Gitlab::Email::AutoGeneratedEmailError4928 behaves like failed receive without event4929 adds metric event4930 expected_error: Gitlab::Email::ProjectNotFound4931 behaves like failed receive without event4932 adds metric event4933 expected_error: Gitlab::Email::EmptyEmailError4934 behaves like failed receive without event4935 adds metric event4936 expected_error: Gitlab::Email::UserNotFoundError4937 behaves like failed receive without event4938 adds metric event4939 expected_error: Gitlab::Email::UserBlockedError4940 behaves like failed receive without event4941 adds metric event4942 expected_error: Gitlab::Email::UserNotAuthorizedError4943 behaves like failed receive without event4944 adds metric event4945 expected_error: Gitlab::Email::NoteableNotFoundError4946 behaves like failed receive without event4947 adds metric event4948 expected_error: Gitlab::Email::InvalidAttachment4949 behaves like failed receive without event4950 adds metric event4951 expected_error: Gitlab::Email::InvalidRecordError4952 behaves like failed receive without event4953 adds metric event4954 expected_error: Gitlab::Email::EmailTooLarge4955 behaves like failed receive without event4956 adds metric event4957 handling errors which do raise events4958 expected_error: Gitlab::Email::EmailUnparsableError4959 behaves like failed receive with event4960 adds metric event4961 expected_error: Gitlab::Email::UnknownIncomingEmail4962 behaves like failed receive with event4963 adds metric event4964 expected_error: ArgumentError4965 behaves like failed receive with event4966 adds metric event4967 expected_error: StandardError4968 behaves like failed receive with event4969 adds metric event4970Banzai::Pipeline::FullPipeline4971 References4972 handles markdown inside a reference4973 sanitizes reference HTML4974 escapes the data-original attribute on a reference4975 footnotes4976 properly adds the necessary ids and classes4977 links are detected as malicious4978 has tooltips for malicious links4979 has no tooltips for safe links4980 table of contents4981 with [[_TOC_]] as tag4982 behaves like table of contents tag4983 inserts a table of contents4984 does not insert a table of contents4985 with [toc] as tag4986 behaves like table of contents tag4987 inserts a table of contents4988 does not insert a table of contents4989 behaves like table of contents tag4990 inserts a table of contents4991 does not insert a table of contents4992 backslash escapes4993 does not convert an escaped reference4994 converts user reference with escaped underscore because of italics4995 when a reference (such as a label name) is autocompleted with characters that require escaping4996 valid: true, label_name: "c_bug_", markdown: "~c_bug\\_"4997 detects valid escaped reference4998 valid: true, label_name: "c_bug_", markdown: "Label ~c_bug\\_ and _more_ text"4999 detects valid escaped reference5000 valid: true, label_name: "d _bug_", markdown: "~\"d \\_bug\\_\""5001 detects valid escaped reference5002 valid: true, label_name: "e*bug*", markdown: "~\"e\\*bug\\*\""5003 detects valid escaped reference5004 valid: true, label_name: "f *bug*", markdown: "~\"f \\*bug\\*\""5005 detects valid escaped reference5006 valid: true, label_name: "f *bug*", markdown: "Label ~\"f \\*bug\\*\" **with** more text"5007 detects valid escaped reference5008 valid: true, label_name: "g`bug`", markdown: "~\"g\\`bug\\`\" "5009 detects valid escaped reference5010 valid: true, label_name: "h `bug`", markdown: "~\"h \\`bug\\`\""5011 detects valid escaped reference5012 cmark-gfm and autlolinks5013 does not hang with significant number of unclosed image links5014DeployKeys::BasicDeployKeyEntity5015 does not return an owner payload with_owner option not passed in5016 returns deploy keys5017 is expected to eq {:almost_orphaned=>false, :can_edit=>false, :created_at=>2023-04-12 14:59:48.835949234 +0000, :destro...", :id=>57, :title=>"My title 483", :updated_at=>2023-04-12 14:59:48.835949234 +0000, :user_id=>nil}5018 user is an admin5019 when admin mode is enabled5020 is expected to include {:can_edit => true}5021 when admin mode is disabled5022 is expected not to include {:can_edit => true}5023 user is a project maintainer5024 project deploy key5025 is expected to include {:can_edit => true}5026 public deploy key5027 is expected to include {:can_edit => true}5028 with_owner option5029 does not return an owner payload when it is set to false5030 when with_owner is set to true5031 returns an owner payload5032 does not return an owner if current_user cannot read the owner5033groups/edit.html.haml5034 "Share with group lock" setting5035 for a root group5036 behaves like "Share with group lock" setting5037 has the correct label, help text, and checkbox options5038 for a subgroup5039 when the root_group has "Share with group lock" disabled5040 when the subgroup has "Share with group lock" disabled5041 as the root_owner5042 behaves like "Share with group lock" setting5043 has the correct label, help text, and checkbox options5044 as the sub_owner5045 behaves like "Share with group lock" setting5046 has the correct label, help text, and checkbox options5047 when the subgroup has "Share with group lock" enabled5048 as the root_owner5049 behaves like "Share with group lock" setting5050 has the correct label, help text, and checkbox options5051 as the sub_owner5052 behaves like "Share with group lock" setting5053 has the correct label, help text, and checkbox options5054 when the root_group has "Share with group lock" enabled5055 when the subgroup has "Share with group lock" disabled (parent overridden)5056 as the root_owner5057 behaves like "Share with group lock" setting5058 has the correct label, help text, and checkbox options5059 as the sub_owner5060 behaves like "Share with group lock" setting5061 has the correct label, help text, and checkbox options5062 when the subgroup has "Share with group lock" enabled (same as parent)5063 as the root_owner5064 behaves like "Share with group lock" setting5065 has the correct label, help text, and checkbox options5066 as the sub_owner5067 behaves like "Share with group lock" setting5068 has the correct label, help text, and checkbox options5069 ip_restriction5070 prompt user about registration features5071 with service ping disabled5072 renders a placeholder input with registration features message5073 with service ping enabled5074 does not render a placeholder input with registration features message5075Gitlab::Database::Migrations::ConstraintsHelpers5076 # order random5077 #validate_text_limit5078 when constraint_name is not provided5079 calls validate_check_constraint with an infered constraint name5080 when constraint_name is provided5081 calls validate_check_constraint with the correct parameters5082 #check_not_null_constraint_exists?5083 when constraint_name is not provided5084 calls check_constraint_exists? with an infered constraint name5085 when constraint_name is provided5086 calls check_constraint_exists? with the correct parameters5087 #check_constraint_exists?5088 returns true if a constraint exists5089 returns false if a constraint does not exist5090 returns false if a constraint with the same name exists in another table5091 returns false if a constraint with the same name exists for the same table in another schema5092 #rename_constraint5093 executes the statement to rename constraint5094 #validate_not_null_constraint5095 when constraint_name is not provided5096 calls validate_check_constraint with an infered constraint name5097 when constraint_name is provided5098 calls validate_check_constraint with the correct parameters5099 #remove_check_constraint5100 removes the constraint5101 #copy_check_constraints5102 when inside a transaction5103 raises an error5104 when outside a transaction5105 copies check constraints from one column to another5106 does nothing if there are no constraints defined for the old column5107 raises an error when the orginating column does not exist5108 raises an error when the target column does not exist5109 #remove_not_null_constraint5110 when constraint_name is not provided5111 calls remove_check_constraint with an infered constraint name5112 when constraint_name is provided5113 calls remove_check_constraint with the correct parameters5114 #add_check_constraint5115 when constraint name validation5116 raises an error when too long5117 does not raise error when the length is acceptable5118 when inside a transaction5119 raises an error5120 when outside a transaction5121 when the constraint is already defined in the database5122 does not create a constraint5123 when the constraint is not defined in the database5124 creates the constraint5125 when validate is not provided5126 performs validation5127 when validate is provided with a falsey value5128 skips validation5129 when validate is provided with a truthy value5130 performs validation5131 #validate_check_constraint5132 when the constraint does not exist5133 raises an error5134 when the constraint exists5135 performs validation5136 #remove_text_limit5137 when constraint_name is not provided5138 calls remove_check_constraint with an infered constraint name5139 when constraint_name is provided5140 calls remove_check_constraint with the correct parameters5141 #check_text_limit_exists?5142 when constraint_name is not provided5143 calls check_constraint_exists? with an infered constraint name5144 when constraint_name is provided5145 calls check_constraint_exists? with the correct parameters5146 #add_not_null_constraint5147 when it is called with the default options5148 calls add_check_constraint with an infered constraint name and validate: true5149 when all parameters are provided5150 calls add_check_constraint with the correct parameters5151 when the column is defined as NOT NULL5152 does not add a check constraint5153 #add_text_limit5154 when it is called with the default options5155 calls add_check_constraint with an infered constraint name and validate: true5156 when all parameters are provided5157 calls add_check_constraint with the correct parameters5158 #check_constraint_name5159 returns a valid constraint name5160 #drop_constraint5161 executes the statement to drop the constraint5162 when cascade option is false5163 executes the statement to drop the constraint without cascade5164Gitlab::GitalyClient::RepositoryService5165 #exists?5166 sends a repository_exists message5167 #optimize_repository5168 with default parameter5169 behaves like a repository optimization5170 sends a optimize_repository message5171 with heuristical housekeeping strategy5172 behaves like a repository optimization5173 sends a optimize_repository message5174 with eager housekeeping strategy5175 behaves like a repository optimization5176 sends a optimize_repository message5177 #prune_unreachable_objects5178 sends a prune_unreachable_objects message5179 #repository_size5180 sends a repository_size message5181 #get_object_directory_size5182 sends a get_object_directory_size message5183 #apply_gitattributes5184 sends an apply_gitattributes message5185 #info_attributes5186 reads the info attributes5187 #has_local_branches?5188 sends a has_local_branches message5189 #import_repository5190 sends a create_repository_from_url message5191 when http_host is provided5192 sends a create_repository_from_url message with http_host provided in the request5193 #fetch_remote5194 sends a fetch_remote_request message5195 with resolved address5196 sends a fetch_remote_request message5197 SSH auth5198 ssh_mirror_url: false, ssh_key_auth: false, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {}5199 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385200 ssh_mirror_url: false, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {}5201 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385202 ssh_mirror_url: true, ssh_key_auth: false, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {:known_hosts=>"known_hosts"}5203 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385204 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: "known_hosts", expected_params: {:ssh_key=>"key", :known_hosts=>"known_hosts"}5205 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385206 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "key", ssh_known_hosts: nil, expected_params: {:ssh_key=>"key"}5207 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385208 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: nil, ssh_known_hosts: "known_hosts", expected_params: {:known_hosts=>"known_hosts"}5209 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385210 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: nil, ssh_known_hosts: nil, expected_params: {}5211 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385212 ssh_mirror_url: true, ssh_key_auth: true, ssh_private_key: "", ssh_known_hosts: "", expected_params: {}5213 example at ./spec/lib/gitlab/gitaly_client/repository_service_spec.rb:2385214 #calculate_checksum5215 sends a calculate_checksum message5216 #create_repository5217 sends a create_repository message without arguments5218 sends a create_repository message with default branch5219 sends a create_repository message with default branch containing non ascii chars5220 #create_from_snapshot5221 sends a create_repository_from_snapshot message5222 #raw_changes_between5223 sends a create_repository_from_snapshot message5224 #search_files_by_regexp5225 with ASCII ref5226 behaves like a search for files by regexp5227 sends a search_files_by_name message and returns a flatten array5228 with non-ASCII ref5229 behaves like a search for files by regexp5230 sends a search_files_by_name message and returns a flatten array5231 #disconnect_alternates5232 sends a disconnect_git_alternates message5233 #rename5234 sends a rename_repository message5235 #remove5236 sends a remove_repository message5237 #replicate5238 sends a replicate_repository message5239 #set_full_path5240 sends a set_full_path message5241 #full_path5242 sends a full_path message5243 #find_license5244 sends a find_license request with medium timeout5245WikiHelper5246 #wiki_page_title5247 sets the title for the show action5248 sets the title for a custom action5249 sets the title for an unsaved page5250 #breadcrumb5251 when the page is at the root level5252 returns the capitalized page name5253 when the page is inside a directory5254 returns the capitalized name of each directory and of the page itself5255 #wiki_attachment_upload_url5256 returns the upload endpoint for project wikis5257 raises an exception for unsupported wiki containers5258 #wiki_sort_controls5259 initial call5260 renders with default values5261 sort by asc order5262 renders a link with opposite direction5263 sort by desc order5264 renders a link with opposite direction5265 #wiki_sort_title5266 returns a title corresponding to a key5267 defaults to Title if a key is unknown5268 #wiki_page_tracking_context5269 returns the tracking context5270 returns a nest level of zero for toplevel files5271 behaves like wiki endpoint helpers5272 returns the full endpoint url5273 when relative url is set5274 returns the full endpoint url with the relative path5275Gitlab::Metrics::WebTransaction5276 #run5277 yields the supplied block5278 stores the transaction in the current thread5279 removes the transaction from the current thread upon completion5280 records the duration of the transaction if the request was successful5281 does not record the duration of the transaction if the request failed5282 does not record the duration of the transaction if it raised5283 returns the rack response5284 #labels5285 returns no labels when no route information is present in env5286 when request goes to Grape endpoint5287 provides labels with the method and path of the route in the grape endpoint5288 contains only the labels defined for transactions5289 does not provide labels if route infos are missing5290 when request goes to ActionController5291 tags a transaction with the name and action of a controller5292 contains only the labels defined for transactions5293 when the request content type is not :html5294 appends the mime type to the transaction action5295 when the request content type is not5296 does not append the MIME type to the transaction action5297 when the feature category is known5298 includes it in the feature category label5299 behaves like transaction metrics with labels5300 .prometheus_metric5301 adds a metric5302 #method_call_for5303 returns a MethodCall5304 #add_event5305 adds a metric5306 allows tracking of custom tags5307 with sensitive tags5308 filters tags5309 #increment5310 adds a metric5311 with block5312 overrides docstring5313 overrides labels5314 filters sensitive tags5315 #set5316 adds a metric5317 with block5318 overrides docstring5319 overrides labels5320 filters sensitive tags5321 #observe5322 adds a metric5323 with block5324 overrides docstring5325 overrides labels5326 filters sensitive tags5327IncidentManagement::TimelineEvent5328 # order random5329 validations5330 is expected to validate that :project cannot be empty/falsy5331 is expected to validate that :incident cannot be empty/falsy5332 is expected to validate that :note cannot be empty/falsy5333 is expected to validate that the length of :note is at most 2805334 is expected to validate that the length of :note is at most 100005335 is expected to validate that the length of :note_html is at most 100005336 is expected to validate that :occurred_at cannot be empty/falsy5337 is expected to validate that :action cannot be empty/falsy5338 is expected to validate that the length of :action is at most 1285339 associations5340 is expected to belong to project required: false5341 is expected to belong to author required: false5342 is expected to belong to incident required: false5343 is expected to belong to updated_by_user required: false5344 is expected to belong to promoted_from_note required: false5345 is expected to have many timeline_event_tag_links class_name => IncidentManagement::TimelineEventTagLink5346 is expected to have many timeline_event_tags class_name => IncidentManagement::TimelineEventTag through timeline_event_tag_links5347 .order_occurred_at_asc_id_asc5348 sorts timeline events by occurred_at5349 when two events occured at the same time5350 sorts timeline events by occurred_at then sorts by id5351 #cache_markdown_field5352 on create5353 updates note_html5354 on update5355 updates note_html5356Clusters::KubernetesNamespace5357 is expected to belong to cluster_project required: false5358 is expected to belong to project required: false5359 is expected to belong to cluster required: false5360 is expected to have one platform_kubernetes5361 has_service_account_token5362 namespace has service_account_token5363 is expected to include #<Clusters::KubernetesNamespace id: 1, cluster_id: 3, project_id: 1332, cluster_project_id: 1, create..._account_name: "project1392-1332--service-account", environment_id: nil, service_account_token: nil>5364 namespace has no service_account_token5365 is expected not to include #<Clusters::KubernetesNamespace id: 2, cluster_id: 6, project_id: 1333, cluster_project_id: 2, create..._account_name: "project1393-1333--service-account", environment_id: nil, service_account_token: nil>5366 .with_environment_name5367 there is no associated environment5368 is expected to be empty5369 there is an assicated environment5370 with a matching name5371 is expected to eq [#<Clusters::KubernetesNamespace id: 4, cluster_id: 8, project_id: 1335, cluster_project_id: nil, cre...name: "project1395-1335-production-service-account", environment_id: 2, service_account_token: nil>]5372 without a matching name5373 is expected to be empty5374 namespace uniqueness validation5375 when cluster is using the namespace5376 is expected not to be valid5377 when cluster is not using the namespace5378 is expected to be valid5379 #predefined_variables5380 sets the variables5381ReviewApps::AutomatedCleanup5382 # order random5383 .parse_args5384 when no arguments are provided5385 returns the default options5386 --dry-run5387 when no DRY_RUN variable is provided5388 raises an error5389 when the DRY_RUN variable is not set to true5390 returns the default options5391 when the DRY_RUN variable is set to true5392 returns the correct dry_run value5393 when the short version of the flag is used5394 returns the correct dry_run value5395 #perform_stale_namespace_cleanup!5396 performs Kubernetes cleanup for review apps namespaces5397 behaves like the days argument is an integer in the correct range5398 when days is nil5399 raises an error5400 when days is zero5401 raises an error5402 when days is above 3655403 raises an error5404 when days is a string5405 does not raise an error5406 when days is a float5407 does not raise an error5408 when the dry-run flag is true5409 does not delete anything5410 #perform_helm_releases_cleanup!5411 behaves like the days argument is an integer in the correct range5412 when days is nil5413 raises an error5414 when days is zero5415 raises an error5416 when days is above 3655417 raises an error5418 when days is a string5419 does not raise an error5420 when days is a float5421 does not raise an error5422 when the helm release is not a review-app release5423 behaves like does not delete the helm release5424 does not delete the helm release5425 does not delete the associated k8s namespace5426 when the helm release is a review-app release5427 when the helm release was deployed recently enough5428 when the helm release is in failed state5429 behaves like deletes the helm release5430 deletes the helm release5431 deletes the associated k8s namespace5432 when the dry-run flag is true5433 behaves like does nothing on a dry run5434 behaves like does not delete the helm release5435 does not delete the helm release5436 does not delete the associated k8s namespace5437 when the helm release is not in failed state5438 behaves like does not delete the helm release5439 does not delete the helm release5440 does not delete the associated k8s namespace5441 when the helm release was deployed a while ago5442 when the helm release is in failed state5443 behaves like deletes the helm release5444 deletes the helm release5445 deletes the associated k8s namespace5446 when the helm release is not in failed state5447 behaves like deletes the helm release5448 deletes the helm release5449 deletes the associated k8s namespace5450 #perform_stale_pvc_cleanup!5451 performs Kubernetes cleanup by created at5452 behaves like the days argument is an integer in the correct range5453 when days is nil5454 raises an error5455 when days is zero5456 raises an error5457 when days is above 3655458 raises an error5459 when days is a string5460 does not raise an error5461 when days is a float5462 does not raise an error5463 when the dry-run flag is true5464 does not delete anything5465Ci::JobToken::Allowlist5466 # order random5467 #projects5468 when no projects are added to the scope5469 returns the project defining the scope5470 returns the project defining the scope5471 when projects are added to the scope5472 direction: :outbound, additional_project: outbound_allowlist_project5473 returns all projects that can be accessed from a given scope5474 direction: :inbound, additional_project: inbound_allowlist_project5475 returns all projects that can be accessed from a given scope5476 #includes?5477 without scoped projects5478 includes_project: source_project, direction: :outbound, result: false5479 is expected to equal false5480 includes_project: source_project, direction: :inbound, result: false5481 is expected to equal false5482 includes_project: unscoped_project, direction: :outbound, result: false5483 is expected to equal false5484 includes_project: unscoped_project, direction: :inbound, result: false5485 is expected to equal false5486 with a project in each allowlist5487 includes_project: source_project, direction: :outbound, result: false5488 is expected to equal false5489 includes_project: source_project, direction: :inbound, result: false5490 is expected to equal false5491 includes_project: inbound_allowlist_project, direction: :outbound, result: false5492 is expected to equal false5493 includes_project: inbound_allowlist_project, direction: :inbound, result: true5494 is expected to equal true5495 includes_project: outbound_allowlist_project, direction: :outbound, result: true5496 is expected to equal true5497 includes_project: outbound_allowlist_project, direction: :inbound, result: false5498 is expected to equal false5499 includes_project: unscoped_project1, direction: :outbound, result: false5500 is expected to equal false5501 includes_project: unscoped_project1, direction: :inbound, result: false5502 is expected to equal false5503 includes_project: unscoped_project2, direction: :outbound, result: false5504 is expected to equal false5505 includes_project: unscoped_project2, direction: :inbound, result: false5506 is expected to equal false5507 add!5508 adds the project5509 adds the project5510Gitaly::Server5511 is expected to respond to #server_version5512 is expected to respond to #git_binary_version5513 is expected to respond to #up_to_date?5514 is expected to respond to #address5515 is expected to respond to #replication_factor5516 .all5517 includes all storages5518 readable?5519 when the storage is readable5520 returns true5521 when the storage is not readable5522 returns false5523 writeable?5524 when the storage is writeable5525 returns true5526 when the storage is not writeable5527 returns false5528 #filesystem_type5529 is expected to be present5530 request memoization5531 when requesting multiple properties5532 uses memoization for the info request5533 when examining disk statistics for a given server5534 #disk_available5535 is expected to be present5536 returns disk available for the storage of the instantiated server5537 #disk_used5538 is expected to be present5539 returns disk used for the storage of the instantiated server5540 #disk_stats5541 is expected to be present5542 returns the storage of the instantiated server5543 #expected_version?5544 expected_version: "1.1.1", server_version: "1.1.1", result: true5545 is expected to eq true5546 expected_version: "1.1.2", server_version: "1.1.1", result: false5547 is expected to eq false5548 expected_version: "1.73.0", server_version: "1.73.0-18-gf756ebe2", result: false5549 is expected to eq false5550 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-45-g594c3ea3", result: true5551 is expected to eq true5552 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6-46-gabc123ff", result: false5553 is expected to eq false5554 expected_version: "594c3ea3e0e5540e5915bd1c49713a0381459dd6", server_version: "1.55.6", result: false5555 is expected to eq false5556 replication_factor5557 when examining for a given server5558 is expected to eq 25559Gitlab::Ci::Build::AutoRetry5560 #allowed?5561 description: "retries are disabled", retry_count: 0, options: {:max=>0}, failure_reason: nil, result: false5562 is expected to eq false5563 description: "max equals count", retry_count: 2, options: {:max=>2}, failure_reason: nil, result: false5564 is expected to eq false5565 description: "max is higher than count", retry_count: 1, options: {:max=>2}, failure_reason: nil, result: true5566 is expected to eq true5567 description: "max is a string", retry_count: 1, options: {:max=>"2"}, failure_reason: nil, result: true5568 is expected to eq true5569 description: "matching failure reason", retry_count: 0, options: {:when=>["api_failure"], :max=>2}, failure_reason: :api_failure, result: true5570 is expected to eq true5571 description: "not matching with always", retry_count: 0, options: {:when=>["always"], :max=>2}, failure_reason: :api_failure, result: true5572 is expected to eq true5573 description: "not matching reason", retry_count: 0, options: {:when=>["script_error"], :max=>2}, failure_reason: :api_failure, result: false5574 is expected to eq false5575 description: "scheduler failure override", retry_count: 1, options: {:when=>["scheduler_failure"], :max=>1}, failure_reason: :scheduler_failure, result: false5576 is expected to eq false5577 description: "default for scheduler failure", retry_count: 1, options: {}, failure_reason: :scheduler_failure, result: true5578 is expected to eq true5579 description: "quota is exceeded", retry_count: 0, options: {:max=>2}, failure_reason: :ci_quota_exceeded, result: false5580 is expected to eq false5581 description: "no matching runner", retry_count: 0, options: {:max=>2}, failure_reason: :no_matching_runner, result: false5582 is expected to eq false5583 description: "missing dependencies", retry_count: 0, options: {:max=>2}, failure_reason: :missing_dependency_failure, result: false5584 is expected to eq false5585 description: "forward deployment failure", retry_count: 0, options: {:max=>2}, failure_reason: :forward_deployment_failure, result: false5586 is expected to eq false5587 description: "environment creation failure", retry_count: 0, options: {:max=>2}, failure_reason: :environment_creation_failure, result: false5588 is expected to eq false5589 when build is not retryable5590 is expected to eq false5591 #options_retry_max5592 with retries max config option5593 returns the number of configured max retries5594 without retries max config option5595 returns nil5596 when build is degenerated5597 returns nil5598 with integer only config option5599 returns the number of configured max retries5600 #options_retry_when5601 with retries when config option5602 returns the configured when5603 without retries when config option5604 returns always array5605 with integer only config option5606 returns always array5607 with retry[:when] set to nil5608 returns always array5609Packages::Conan::PackagePresenter5610 #recipe_urls5611 behaves like no existing package5612 when package does not exist5613 is expected to be empty5614 behaves like conan_file_metadatum is not found5615 when no conan_file_metadatum exists5616 is expected to be empty5617 existing package5618 is expected to eq {"conanfile.py"=>"http://localhost/api/v4/packages/conan/v1/files/package-1/1.0.0/namespace1112+proje...ackages/conan/v1/files/package-1/1.0.0/namespace1112+project1436/stable/0/export/conanmanifest.txt"}5619 when there are multiple channels for the same package5620 is expected to eq {"conanfile.py"=>"http://localhost/api/v4/packages/conan/v1/files/package-1/1.0.0/namespace1112+proje...ackages/conan/v1/files/package-1/1.0.0/namespace1112+project1436/stable/0/export/conanmanifest.txt"}5621 with package_scope of project5622 is expected to eq {"conanfile.py"=>"http://localhost/api/v4/projects/1359/packages/conan/v1/files/package-1/1.0.0/names...ackages/conan/v1/files/package-1/1.0.0/namespace1112+project1436/stable/0/export/conanmanifest.txt"}5623 #recipe_snapshot5624 behaves like no existing package5625 when package does not exist5626 is expected to be empty5627 behaves like conan_file_metadatum is not found5628 when no conan_file_metadatum exists5629 is expected to be empty5630 existing package5631 is expected to eq {"conanfile.py"=>"12345abcde", "conanmanifest.txt"=>"12345abcde"}5632 #package_urls5633 behaves like no existing package5634 when package does not exist5635 is expected to be empty5636 behaves like conan_file_metadatum is not found5637 when no conan_file_metadatum exists5638 is expected to be empty5639 existing package5640 is expected to eq {"conan_package.tgz"=>"http://localhost/api/v4/packages/conan/v1/files/package-1/1.0.0/namespace1112+.../v1/files/package-1/1.0.0/namespace1112+project1436/stable/0/package/123456789/0/conanmanifest.txt"}5641 with package_scope of project5642 is expected to eq {"conan_package.tgz"=>"http://localhost/api/v4/projects/1359/packages/conan/v1/files/package-1/1.0.0/.../v1/files/package-1/1.0.0/namespace1112+project1436/stable/0/package/123456789/0/conanmanifest.txt"}5643 multiple packages with different references5644 is expected to eq {"conan_package.tgz"=>"http://localhost/api/v4/packages/conan/v1/files/package-1/1.0.0/namespace1112+.../v1/files/package-1/1.0.0/namespace1112+project1436/stable/0/package/123456789/0/conanmanifest.txt"}5645 returns empty if the reference does not exist5646 requesting the alternative reference5647 is expected to eq {"conan_package.tgz"=>"http://localhost/api/v4/packages/conan/v1/files/package-1/1.0.0/namespace1112+.../v1/files/package-1/1.0.0/namespace1112+project1436/stable/0/package/abcdefghi/0/conanmanifest.txt"}5648 #package_snapshot5649 behaves like no existing package5650 when package does not exist5651 is expected to be empty5652 behaves like conan_file_metadatum is not found5653 when no conan_file_metadatum exists5654 is expected to be empty5655 existing package5656 is expected to eq {"conan_package.tgz"=>"12345abcde", "conaninfo.txt"=>"12345abcde", "conanmanifest.txt"=>"12345abcde"}5657 when requested with invalid reference5658 is expected to eq {}5659shared/_label_row.html.haml5660 with a project context5661 has label title5662 has a non-linked label title5663 has Issues link5664 has Merge request link5665 shows the path from where the label was created5666 with a subgroup context5667 has label title5668 has a non-linked label title5669 has Issues link5670 has Merge request link5671 shows the path from where the label was created5672 with a group context5673 has label title5674 has a non-linked label title5675 has Issues link5676 has Merge request link5677 does not show a path from where the label was created5678 with an admin context5679 has label title5680 has a non-linked label title5681 does not show Issues link5682 does not show Merge request link5683 does not show a path from where the label was created5684Ci::BuildsHelper5685 #build_summary5686 when build has no trace5687 when skip is false5688 returns no job log5689 when skip is true5690 returns no job log5691 when build has trace5692 when skip is true5693 returns link to logs5694 when skip is false5695 returns log lines5696 #sidebar_build_class5697 build_id: 1, current_build_id: 1, retried: true, expected_result: "active retried"5698 builds sidebar html class5699 build_id: 1, current_build_id: 1, retried: false, expected_result: "active"5700 builds sidebar html class5701 build_id: 1, current_build_id: 2, retried: false, expected_result: ""5702 builds sidebar html class5703 build_id: 1, current_build_id: 2, retried: true, expected_result: "retried"5704 builds sidebar html class5705 #javascript_build_options5706 returns build options5707 #build_failed_issue_options5708 returns failed title and description5709 #prepare_failed_jobs_summary_data5710 returns array of failed jobs with id, failure and failure summary5711gitlab:snippets namespace rake task5712 migrate5713 can migrate specific snippets passing ids5714 returns the ids of those snippet that failed the migration5715 fails if the SNIPPET_IDS env var is not set5716 fails if the number of ids provided is higher than the limit5717 fails if the env var LIMIT is invalid5718 fails if the ids are invalid5719 fails if the snippet background migration is running5720 migration_status5721 returns a message when the background migration is not running5722 returns a message saying that the background migration is running5723 list_non_migrated5724 returns a message if all snippets are migrated5725 when there are still non migrated snippets5726 returns a message returning the non migrated snippets ids5727 returns as many snippet ids as the limit set5728RuboCop::Cop::RSpec::HaveGitlabHttpStatus5729 # order random5730 offenses and autocorrections5731 bad: "have_http_status(:ok)", good: "have_gitlab_http_status(:ok)"5732 registers an offense5733 does not register an offense5734 bad: "have_http_status(204)", good: "have_gitlab_http_status(:no_content)"5735 registers an offense5736 does not register an offense5737 bad: "have_gitlab_http_status(201)", good: "have_gitlab_http_status(:created)"5738 registers an offense5739 does not register an offense5740 bad: "have_http_status(var)", good: "have_gitlab_http_status(var)"5741 registers an offense5742 does not register an offense5743 bad: "have_http_status(:success)", good: "have_gitlab_http_status(:success)"5744 registers an offense5745 does not register an offense5746 bad: "have_http_status(:invalid)", good: "have_gitlab_http_status(:invalid)"5747 registers an offense5748 does not register an offense5749 bad: "expect(response.status).to eq(200)", good: "expect(response).to have_gitlab_http_status(:ok)"5750 registers an offense5751 does not register an offense5752 bad: "expect(response.status).not_to eq(200)", good: "expect(response).not_to have_gitlab_http_status(:ok)"5753 registers an offense5754 does not register an offense5755 partially autocorrects invalid numeric status5756 bad: "have_http_status(-1)", good: "have_gitlab_http_status(-1)"5757 registers an offense5758 does not autocorrect5759 ignore5760 code: "have_http_status"5761 does not register an offense5762 code: "have_http_status { }"5763 does not register an offense5764 code: "have_http_status(200, arg)"5765 does not register an offense5766 code: "have_gitlab_http_status"5767 does not register an offense5768 code: "have_gitlab_http_status { }"5769 does not register an offense5770 code: "have_gitlab_http_status(200, arg)"5771 does not register an offense5772 code: "expect(response.status).to eq(arg)"5773 does not register an offense5774 code: "expect(response.status).to eq(:ok)"5775 does not register an offense5776 code: "expect(response.status).to some_matcher(200)"5777 does not register an offense5778 code: "expect(response.status).not_to eq(arg)"5779 does not register an offense5780 code: "expect(response.status).not_to eq(:ok)"5781 does not register an offense5782 code: "expect(response.status).not_to some_matcher(200)"5783 does not register an offense5784 code: "expect(result.status).to eq(200)"5785 does not register an offense5786 code: "expect(result.status).not_to eq(200)"5787 does not register an offense5788 code: "response = some_assignment\nexpect(response.status).to eq(200)\n"5789 does not register an offense5790 code: "response = some_assignment\nexpect(response.status).not_to eq(200)\n"5791 does not register an offense5792Sidebars::Menu5793 #all_active_routes5794 gathers all active routes of items and the current menu5795 #serialize_for_super_sidebar5796 returns a tree-like structure of itself and all menu items5797 returns pill data if defined5798 #serialize_as_menu_item_args5799 returns hash of title, link, active_routes, container_html_options5800 #render?5801 when the menus has no items5802 returns false5803 when menu has a partial5804 returns true5805 when the menu has items5806 returns true5807 when menu items are NilMenuItem5808 returns false5809 #has_items?5810 returns true when there are regular menu items5811 returns true when there are nil menu items5812 #has_renderable_items?5813 returns true when there are regular menu items5814 returns false when there are nil menu items5815 returns true when there are both regular and nil menu items5816 #renderable_items5817 returns only regular menu items5818 #insert_element_before5819 adds element before the specific element class5820 does not add nil elements5821 when reference element does not exist5822 adds the element to the top of the list5823 #insert_element_after5824 adds element after the specific element class5825 does not add nil elements5826 when reference element does not exist5827 adds the element to the end of the list5828 #replace_placeholder5829 when a NilMenuItem reference element exists5830 replaces the reference element with the provided item5831 when a MenuItem reference element exists5832 does not replace the reference element and adds to the end of the list5833 when reference element does not exist5834 adds the element to the end of the list5835 #remove_element5836 removes specific element5837 does not remove nil elements5838 #container_html_options5839 when menu can be rendered5840 when menu has renderable items5841 contains the special class5842 when menu already has other classes5843 appends special class5844 when menu does not have renderable items5845 does not contain the special class5846 when menu cannot be rendered5847 does not contain special class5848 #link5849 returns first visible menu item link5850 returns nil if there are no visible menu items5851Gitlab::WebHooks::RateLimiter5852 #rate_limit!5853 when there is no plan limit5854 hook: project_hook5855 behaves like a hook that is never rate limited5856 is expected to eq false5857 hook: system_hook5858 behaves like a hook that is never rate limited5859 is expected to eq false5860 hook: integration_hook5861 behaves like a hook that is never rate limited5862 is expected to eq false5863 when there is a plan limit5864 hook: project_hook, limitless_hook_type: false5865 rate limits the hook, returning true when rate limited5866 hook: system_hook, limitless_hook_type: true5867 behaves like a hook that is never rate limited5868 is expected to eq false5869 hook: integration_hook, limitless_hook_type: true5870 behaves like a hook that is never rate limited5871 is expected to eq false5872 rate limit scope5873 rate limits all hooks from the same namespace5874 #rate_limited?5875 when no plan limit has been defined5876 hook: project_hook5877 is expected to eq false5878 hook: system_hook5879 is expected to eq false5880 hook: integration_hook5881 is expected to eq false5882 when there is a plan limit5883 when hook is not rate-limited5884 hook: project_hook5885 is expected to eq false5886 hook: system_hook5887 is expected to eq false5888 hook: integration_hook5889 is expected to eq false5890 when hook is rate-limited5891 hook: project_hook, limitless_hook_type: false5892 is expected to eq true5893 hook: system_hook, limitless_hook_type: true5894 is expected to eq false5895 hook: integration_hook, limitless_hook_type: true5896 is expected to eq false5897Boards::Lists::ListService5898 #execute5899 when board parent is a project5900 behaves like lists list service5901 when the board has a backlog list5902 does not create a backlog list5903 returns board's lists5904 when hide_backlog_list is true5905 hides backlog list5906 when hide_closed_list is true5907 hides closed list5908 when the board does not have a backlog list5909 creates a backlog list5910 does not create a backlog list when create_default_lists is false5911 returns board's lists5912 when wanting a specific list5913 returns list specified by id5914 returns empty result when list is not found5915 behaves like FOSS lists only5916 when board contains a non FOSS list5917 returns only FOSS board's lists5918 when board parent is a group5919 behaves like lists list service5920 when the board has a backlog list5921 does not create a backlog list5922 returns board's lists5923 when hide_backlog_list is true5924 hides backlog list5925 when hide_closed_list is true5926 hides closed list5927 when the board does not have a backlog list5928 creates a backlog list5929 does not create a backlog list when create_default_lists is false5930 returns board's lists5931 when wanting a specific list5932 returns list specified by id5933 returns empty result when list is not found5934 behaves like FOSS lists only5935 when board contains a non FOSS list5936 returns only FOSS board's lists5937Gitlab::Conflict::FileCollection5938 #files5939 returns an array of Conflict::Files5940 #cache5941 specifies a custom namespace with the merge request commit ids5942 #can_be_resolved_in_ui?5943 returns true if conflicts for this collection can be resolved in the UI5944 returns false if conflicts for this collection can't be resolved in the UI5945 caches the result5946 #default_commit_message5947 matches the format of the git CLI commit message5948Projects::HashedStorage::BaseAttachmentService5949 #old_disk_path5950 is expected to respond to #old_disk_path5951 #new_disk_path5952 is expected to respond to #new_disk_path5953 #skipped?5954 is expected to respond to #skipped?5955 #target_path_discardable?5956 returns false5957 #discard_path!5958 renames target path adding a timestamp at the end5959 #move_folder!5960 when old_path is not a directory5961 adds information to the logger and returns true5962SnippetPresenter5963 #web_url5964 with PersonalSnippet5965 returns snippet web url5966 with ProjectSnippet5967 returns snippet web url5968 #raw_url5969 with PersonalSnippet5970 returns snippet web url5971 with ProjectSnippet5972 returns snippet web url5973 #can_read_snippet?5974 with PersonalSnippet5975 checks read_snippet5976 with ProjectSnippet5977 checks read_snippet5978 #can_update_snippet?5979 with PersonalSnippet5980 checks update_snippet5981 with ProjectSnippet5982 checks update_snippet5983 #can_admin_snippet?5984 with PersonalSnippet5985 checks admin_snippet5986 with ProjectSnippet5987 checks admin_snippet5988 #can_report_as_spam5989 returns false if the user cannot submit the snippet as spam5990 returns true if the user can submit the snippet as spam5991 #blob5992 when snippet does not have a repository5993 returns SnippetBlob5994 when snippet has a repository5995 returns repository first blob5996WorkItems::Type5997 modules5998 is expected to includes the CacheMarkdownField module5999 associations6000 is expected to have many work_items6001 is expected to belong to namespace required: false6002 has many `widget_definitions`6003 has many `enabled_widget_definitions`6004 scopes6005 order_by_name_asc6006 is expected to match ["atype", "gtype", "Ztype"]6007 #destroy6008 does not delete type when there are related issues6009 when there are no work items of that type6010 deletes type but not unrelated issues6011 validation6012 is expected not to allow :icon_name to be ‹"ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss"›6013 name uniqueness6014 is expected to validate that :name is case-insensitively unique within the scope of :namespace_id6015 .default_by_type6016 returns default work item type by base type without calling importer6017 when default types are missing6018 creates types and restrictions and returns default work item type by base type6019 #default?6020 when namespace is nil6021 is expected to be truthy6022 when namespace is present6023 is expected to be falsey6024 #name6025 strips name6026 #supports_assignee?6027 is expected to be truthy6028 when the assignees widget is not supported6029 is expected to be falsey6030 #default_issue?6031 when work item type is default Issue6032 returns true6033 when work item type is not Issue6034 returns false6035Gitlab::Auth::OAuth::AuthHash6036 defaults6037 is expected to eq "ldap"6038 is expected to eql "CN=Onur Küçük,OU=Test,DC=example,DC=net"6039 is expected to eql "onur.küçük_ABC-123@example.net"6040 is expected to eql "oküçük"6041 is expected to eql "Onur Küçük"6042 is expected not to be empty6043 is expected to eq "some locality, some country"6044 email not provided6045 generates a temp email6046 username not provided6047 takes the first part of the email as username6048 name not provided6049 concats first and lastname as the name6050 custom username field provided6051 uses the custom field for the username6052 uses the default claim for the username when the custom claim is not found6053 uses the default claim for the username when the custom claim is empty6054 uses the default claim for the username when the custom claim is nil6055 auth_hash constructed with ASCII-8BIT encoding6056 forces utf8 encoding on uid6057 forces utf8 encoding on provider6058 forces utf8 encoding on name6059 forces utf8 encoding on username6060 forces utf8 encoding on email6061 forces utf8 encoding on password6062PagesDomains::ObtainLetsEncryptCertificateService6063 when there is no acme order6064 creates acme order and schedules next step6065 when there is expired acme order6066 removes acme order and creates new one6067 there is an order in 'pending' status6068 does not raise errors6069 there is an order in 'processing' status6070 does not raise errors6071 when order is ready6072 request certificate and schedules next step6073 when order is valid6074 saves private_key and certificate for domain6075 marks certificate as gitlab_provided6076 removes order from database6077 when order is invalid6078 saves error to domain and deletes acme order6079 sends notification6080Resolvers::Crm::OrganizationsResolver6081 #resolve6082 with unauthorized user6083 does not rise an error and returns no organizations6084 with authorized user6085 does not rise an error and returns all organizations in the correct order6086 without parent6087 returns no organizations6088 with a group parent6089 when no filter is provided6090 returns all the organizations in the default order6091 when a sort is provided6092 returns all the organizations in the correct order6093 when filtering for all states6094 returns all the organizations6095 when search term is provided6096 returns the correct organizations6097 when state is provided6098 returns the correct organizations6099 when ids are provided6100 returns the correct organizations6101Gitlab::ObjectHierarchy6102 #base_and_ancestors6103 includes the base rows6104 includes all of the ancestors6105 can find ancestors upto a certain level6106 uses ancestors_base #initialize argument6107 does not allow the use of #update_all6108 hierarchy_order option6109 :asc6110 orders by child to parent6111 :desc6112 orders by parent to child6113 #base_and_descendants6114 includes the base rows6115 includes all the descendants6116 uses descendants_base #initialize argument6117 does not allow the use of #update_all6118 when with_depth is true6119 includes depth in the results6120 #descendants6121 includes only the descendants6122 #max_descendants_depth6123 when base relation is empty6124 is expected to be nil6125 when base has no children6126 is expected to eq 16127 when base has grandchildren6128 is expected to eq 36129 #ancestors6130 includes only the ancestors6131 can find ancestors upto a certain level6132 #all_objects6133 includes the base rows6134 includes the ancestors6135 includes the descendants6136 uses ancestors_base #initialize argument for ancestors6137 uses descendants_base #initialize argument for descendants6138 does not allow the use of #update_all6139Gitlab::HttpIO6140 #close6141 is expected to be nil6142 #binmode6143 is expected to be nil6144 #binmode?6145 is expected to be truthy6146 #path6147 is expected to be nil6148 #url6149 is expected to eq "http://object-storage/trace"6150 #seek6151 when moves pos to end of the file6152 is expected to eq 1924416153 when moves pos to middle of the file6154 is expected to eq 962206155 when moves pos around6156 matches the result6157 #eof?6158 when current pos is at end of the file6159 is expected to be truthy6160 when current pos is not at end of the file6161 is expected to be falsey6162 #each_line6163 yields lines6164 when buckets on GCS6165 when BUFFER_SIZE is larger than file size6166 calls get_chunk only once6167 #read6168 when there are no network issue6169 when read whole size6170 when BUFFER_SIZE is smaller than file size6171 reads a trace6172 when BUFFER_SIZE is larger than file size6173 reads a trace6174 when read only first 100 bytes6175 when BUFFER_SIZE is smaller than file size6176 reads a trace6177 when BUFFER_SIZE is larger than file size6178 reads a trace6179 when tries to read oversize6180 when BUFFER_SIZE is smaller than file size6181 reads a trace6182 when BUFFER_SIZE is larger than file size6183 reads a trace6184 when tries to read 0 bytes6185 when BUFFER_SIZE is smaller than file size6186 reads a trace6187 when BUFFER_SIZE is larger than file size6188 reads a trace6189 when there is anetwork issue6190 reads a trace6191 #readline6192 when there is anetwork issue6193 reads a trace6194 when BUFFER_SIZE is smaller than file size6195 behaves like all line matching6196 reads a line6197 when BUFFER_SIZE is larger than file size6198 behaves like all line matching6199 reads a line6200 when pos is at middle of the file6201 reads from pos6202 #write6203 is expected to raise NotImplementedError6204 #truncate6205 is expected to raise NotImplementedError6206 #flush6207 is expected to raise NotImplementedError6208 #present?6209 is expected to be truthy6210 #send6211 does not set the "accept-encoding" header6212Gitlab::Email::ReplyParser6213 #execute6214 returns an empty string if the message is blank6215 returns an empty string if the message is not an email6216 returns an empty string if there is no reply content6217 properly renders plaintext-only email6218 properly renders html-only email with table and blockquote6219 supports a Dutch reply6220 removes an 'on date wrote' quoting line6221 handles multiple paragraphs6222 handles multiple paragraphs when parsing html6223 handles newlines6224 handles inline reply6225 properly renders email reply from gmail web client6226 properly renders email reply from iOS default mail client6227 properly renders email reply from Android 5 gmail client6228 properly renders email reply from Windows 8.1 Metro default mail client6229 properly renders email reply from MS Outlook client6230 properly renders html-only email from MS Outlook6231 does not wrap links with no href in unnecessary brackets6232 does not trim reply if trim_reply option is false6233 appends trimmed reply when when append_reply option is true6234 when allow_only_quotes is true6235 returns quoted text from email6236 properly renders email reply from gmail web client6237 is expected to eq "### This is a reply from standard GMail in Google Chrome.\n\nThe quick brown fox jumps over the lazy...ary>\nTwo</summary>\nSome details</details>\n\nTest reply.\n\nFirst paragraph.\n\nSecond paragraph."6238 non-UTF-8 content6239 parses body under UTF-8 encoding6240 charset is absent and reply trimming is disabled6241 parses body under UTF-8 encoding6242 multipart email6243 parses body under UTF-8 encoding6244ButtonHelper6245 http_clone_button6246 with internal auth enabled6247 when user has a password6248 shows no tooltip6249 when user has password automatically set6250 shows the password text on the dropdown6251 with internal auth disabled6252 when user has no personal access tokens6253 has a personal access token text on the dropdown description6254 when user has personal access tokens6255 does not have a personal access token text on the dropdown description6256 when user is ldap user6257 shows no tooltip6258 ssh_button6259 without an ssh key on the user6260 shows a warning on the dropdown description6261 without an ssh key on the user and user_show_add_ssh_key_message unset6262 there is no warning on the dropdown description6263 with an ssh key on the user6264 there is no warning on the dropdown description6265 ssh and http clone buttons6266 only shows the title of any of the clone buttons when append_link is false6267 clipboard_button6268 with default options6269 when no `text` attribute is not provided6270 shows copy to clipboard button with default configuration and no text set to copy6271 when `text` attribute is provided6272 shows copy to clipboard button with provided `text` to copy6273 when `title` attribute is provided6274 shows copy to clipboard button with provided `title` as tooltip6275 with `button_text` attribute provided6276 shows copy to clipboard button with provided `button_text` as button label6277 adds `gl-button-icon` class to icon6278 with `hide_tooltip` attribute provided6279 shows copy to clipboard button without tooltip support6280 with `hide_button_icon` attribute provided6281 shows copy to clipboard button without tooltip support6282 with `itemprop` attribute provided6283 shows copy to clipboard button with `itemprop` attribute6284Gitlab::Search::Params6285 detect_abuse conditional6286 does not call AbuseDetection6287 uses AbuseDetection by default6288 #[]6289 feels like regular params6290 has indifferent access6291 also works on attr_reader attributes6292 #query_string6293 uses 'search' parameter6294 uses 'term' parameter6295 prioritizes 'search' over 'term'6296 strips surrounding whitespace from query string6297 #validate6298 validates AbuseDetector on validation6299 when detect_abuse is disabled6300 does NOT validate AbuseDetector6301 #valid?6302 validates AbuseDetector on validation6303 when detect_abuse is disabled6304 does NOT validate AbuseDetector6305 abuse detection6306 when there are abuse validation errors6307 is considered abusive6308 when there are NOT any abuse validation errors6309 and there are other validation errors6310 is NOT considered abusive6311 and there are NO other validation errors6312 is NOT considered abusive6313 #email_lookup?6314 is true if at least 1 word in search is an email6315Gitlab::Ci::Config::Entry::Prefix6316 validations6317 behaves like key entry validations6318 when entry value contains slash6319 behaves like key with slash6320 is invalid6321 reports errors with config value6322 when entry value contains URI encoded slash (%2F)6323 behaves like key with slash6324 is invalid6325 reports errors with config value6326 when entry value is a dot6327 behaves like key with only dots6328 is invalid6329 reports errors with config value6330 when entry value is two dots6331 behaves like key with only dots6332 is invalid6333 reports errors with config value6334 when entry value is a URI encoded dot (%2E)6335 behaves like key with only dots6336 is invalid6337 reports errors with config value6338 when entry value is two URI encoded dots (%2E)6339 behaves like key with only dots6340 is invalid6341 reports errors with config value6342 when entry value is one dot and one URI encoded dot6343 behaves like key with only dots6344 is invalid6345 reports errors with config value6346 when key is a string6347 #value6348 returns key value6349 #valid?6350 is valid6351 when entry value is not correct6352 #errors6353 saves errors6354 .default6355 returns default key6356Packages::Tag6357 relationships6358 is expected to belong to package required: false inverse_of => tags6359 validations6360 is expected to validate that :package cannot be empty/falsy6361 is expected to validate that :name cannot be empty/falsy6362 .for_package_ids6363 is expected to contain exactly #<Packages::Tag id: 13, package_id: 47, name: "tag-3", created_at: "2023-04-12 15:01:48.619314971 +0000", updated_at: "2023-04-12 15:01:48.619314971 +0000">, #<Packages::Tag id: 14, package_id: 48, name: "tag-4", created_at: "2023-04-12 15:01:48.632917060 +0000", updated_at: "2023-04-12 15:01:48.632917060 +0000">, and #<Packages::Tag id: 15, package_id: 49, name: "tag-5", created_at: "2023-04-12 15:01:48.645849669 +0000", updated_at: "2023-04-12 15:01:48.645849669 +0000">6364 with too many tags6365 is expected to contain exactly #<Packages::Tag id: 17, package_id: 51, name: "tag-7", created_at: "2023-04-12 15:01:49.027222049 +0000", updated_at: "2023-04-12 15:01:49.027222049 +0000"> and #<Packages::Tag id: 18, package_id: 52, name: "tag-8", created_at: "2023-04-12 15:01:49.041255419 +0000", updated_at: "2023-04-12 15:01:49.041255419 +0000">6366 with package ids6367 is expected to contain exactly #<Packages::Tag id: 19, package_id: 53, name: "tag-9", created_at: "2023-04-12 15:01:49.400517330 +0000", updated_at: "2023-04-12 15:01:49.400517330 +0000">, #<Packages::Tag id: 20, package_id: 54, name: "tag-10", created_at: "2023-04-12 15:01:49.411344539 +0000", updated_at: "2023-04-12 15:01:49.411344539 +0000">, and #<Packages::Tag id: 21, package_id: 55, name: "tag-11", created_at: "2023-04-12 15:01:49.424124978 +0000", updated_at: "2023-04-12 15:01:49.424124978 +0000">6368 .with_name6369 is expected to contain exactly #<Packages::Tag id: 22, package_id: 56, name: "tag1", created_at: "2023-04-12 15:01:49.706222794 +0000", updated_at: "2023-04-12 15:01:49.706222794 +0000">6370 with nil name6371 is expected to eq []6372 with multiple names6373 is expected to contain exactly #<Packages::Tag id: 22, package_id: 56, name: "tag1", created_at: "2023-04-12 15:01:49.706222794 +0000", updated_at: "2023-04-12 15:01:49.706222794 +0000"> and #<Packages::Tag id: 24, package_id: 56, name: "tag3", created_at: "2023-04-12 15:01:49.711742343 +0000", updated_at: "2023-04-12 15:01:49.711742343 +0000">6374BulkImports::ExportStatus6375 #started?6376 when export status is started6377 returns true6378 when export status is not started6379 returns false6380 when export status is not present6381 returns false6382 when something goes wrong during export status fetch6383 returns false6384 #failed?6385 when export status is failed6386 returns true6387 when export status is not failed6388 returns false6389 when export status is not present6390 returns false6391 when something goes wrong during export status fetch6392 returns false6393 #empty?6394 when export status is present6395 is expected to eq false6396 when export status is not present6397 returns true6398 when export status is empty6399 returns true6400 when something goes wrong during export status fetch6401 returns false6402 #error6403 returns error message6404 when something goes wrong during export status fetch6405 raises RetryPipelineError6406 when error is not retriable6407 returns exception class as error6408 when error raised is not a network error6409 returns exception class as error6410TaskListToggleService6411 checks Task 16412 unchecks Item 16413 checks task in loose list6414 checks task with no-break space6415 returns false if line_source does not match the text6416 tolerates \r\n line endings6417 returns false if markdown is nil6418 returns false if markdown_html is nil6419 properly handles tasks in a blockquote6420 properly handles a GitLab blockquote6421 when clicking an embedded subtask6422 properly handles it inside an unordered list6423 properly handles it inside an ordered list6424LabelPresenter6425 #edit_path6426 with group label6427 is expected to eq "/groups/group468/-/labels/1180/edit"6428 with project label6429 is expected to eq "/group468/project1496/-/labels/1181/edit"6430 with an admin label6431 is expected to eq "/admin/labels/1182/edit"6432 #destroy_path6433 with group label6434 is expected to eq "/groups/group468/-/labels/1183"6435 with project label6436 is expected to eq "/group468/project1496/-/labels/1184"6437 with an admin label6438 is expected to eq "/admin/labels/1185"6439 #filter_path6440 with group as context subject6441 is expected to eq "/groups/group468/-/issues?label_name%5B%5D=label104"6442 with project as context subject6443 is expected to eq "/group468/project1496/-/issues?label_name%5B%5D=label105"6444 #can_subscribe_to_label_in_different_levels?6445 returns true for group labels in project context6446 returns false for project labels in project context6447 #project_label?6448 with group label6449 is expected to be falsey6450 with project label6451 is expected to be truthy6452 #subject_name6453 with group label6454 is expected to eq "group468"6455 with project label6456 is expected to eq "project1496"6457 with an admin label6458 is expected to be nil6459 #subject_full_name6460 with group label6461 is expected to eq "group468"6462 with project label6463 is expected to eq "group468 / project1496"6464 with an admin label6465 is expected to be nil6466Gitlab::Memory::Watchdog::Configurator6467 # order random6468 .configure_for_puma6469 behaves like as configurator6470 configures the correct handler6471 configures the correct event reporter6472 configures the correct logger6473 when sleep_time_seconds is not passed through the environment6474 configures the correct sleep time6475 when sleep_time_seconds is passed through the environment6476 configures the correct sleep time6477 with DISABLE_PUMA_WORKER_KILLER set to true6478 when settings are set via environment variables6479 behaves like as monitor configurator6480 executes monitors and returns correct results6481 when settings are not set via environment variables6482 behaves like as monitor configurator6483 executes monitors and returns correct results6484 with DISABLE_PUMA_WORKER_KILLER set to false6485 when settings are set via environment variables6486 behaves like as monitor configurator6487 executes monitors and returns correct results6488 when settings are not set via environment variables6489 behaves like as monitor configurator6490 executes monitors and returns correct results6491 .configure_for_sidekiq6492 behaves like as configurator6493 configures the correct handler6494 configures the correct event reporter6495 configures the correct logger6496 when sleep_time_seconds is not passed through the environment6497 configures the correct sleep time6498 when sleep_time_seconds is passed through the environment6499 configures the correct sleep time6500 when sleep_time_seconds is less than MIN_SIDEKIQ_SLEEP_INTERVAL_S seconds6501 configures the correct sleep time6502 with monitors6503 when settings are set via environment variables6504 behaves like as monitor configurator6505 executes monitors and returns correct results6506 when only SIDEKIQ_MEMORY_KILLER_MAX_RSS is set via environment variable6507 behaves like as monitor configurator6508 executes monitors and returns correct results6509 when only SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS is set via environment variable6510 behaves like as monitor configurator6511 executes monitors and returns correct results6512 when both SIDEKIQ_MEMORY_KILLER_MAX_RSS and SIDEKIQ_MEMORY_KILLER_HARD_LIMIT_RSS are not set6513 behaves like as monitor configurator6514 executes monitors and returns correct results6515IssueBoardEntity6516 has basic attributes6517 has path and endpoints6518 has milestone attributes6519 has assignee attributes6520 has label attributes6521 type6522 has an issue type6523 real_path6524 has an issue path6525 when issue is of type task6526 has a work item path with iid6527MergeRequestMetricsService6528 #merge6529 updates metrics6530 #close6531 updates metrics6532 #reopen6533 updates metrics6534Ci::PrometheusMetrics::ObserveHistogramsService6535 with empty data6536 does not raise errors6537 observes metrics successfully6538 increments the metrics6539 returns an empty body and status code6540 with unknown histograms6541 raises ActiveRecord::RecordNotFound error6542Ci::CreatePipelineService6543 job:parallel6544 numeric6545 creates the pipeline6546 creates 3 jobs6547 matrix6548 creates the pipeline6549 creates 4 builds with the corresponding matrix variables6550 when a bridge is using parallel:matrix6551 creates the pipeline6552 creates 1 build and 4 bridges with the corresponding matrix variables6553WorkItems::ImportWorkItemsCsvWorker6554 # order random6555 #perform6556 calls #execute on WorkItems::ImportCsvService and destroys upload6557 behaves like an idempotent worker6558 is labeled as idempotent6559 performs multiple times sequentially without raising an exception6560 .sidekiq_retries_exhausted6561 destroys upload6562Gitlab::VisibilityLevelChecker6563 #level_restricted?6564 when visibility level is allowed6565 returns false with nil for visibility level6566 when visibility level is restricted6567 for public project6568 for non-admin user6569 returns true and visibility name6570 for admin user6571 returns false and a nil visibility level6572 overridden visibility6573 when restricted6574 returns true and visibility name6575 when misspelled6576 returns false with nil for visibility level6577 when import_data is missing6578 returns false with nil for visibility level6579Gitlab::Analytics::CycleAnalytics::StageEvents::MergeRequestFirstDeployedToProduction6580 behaves like value stream analytics event6581 is expected to be a kind of String6582 is expected to be a kind of Symbol6583 is expected to include ApplicationRecord(abstract)6584 is expected to respond to #timestamp_projection6585 is expected to respond to #html_description6586 is expected to be a kind of Array6587 #apply_query_customization6588 expects an ActiveRecord::Relation object as argument and returns a modified version of it6589 #hash_code6590 returns a hash that uniquely identifies an event6591 does not differ when the same object is built with the same params6592 behaves like LEFT JOIN-able value stream analytics event6593 can use the event as LEFT JOIN6594 when looking at the record with data6595 contains the timestamp expression6596 when looking at the record without data6597 returns nil for the timestamp expression6598RuboCop::Formatter::GracefulFormatter6599 # order random6600 with offenses6601 with active only6602 behaves like summary reporting6603 reports summary with 2 inspected, 2 offenses, 0 silenced6604 with silenced only6605 behaves like summary reporting6606 reports summary with 2 inspected, 0 offenses, 2 silenced6607 with active and silenced6608 behaves like summary reporting6609 reports summary with 2 inspected, 2 offenses, 3 silenced6610 .grace_period_key_value6611 is expected to eq "Details: grace period"6612 with missing @total_offense_count6613 raises an error6614 .grace_period?6615 with Details in config6616 is expected to eq true6617 with unknown value for Details in config6618 is expected to output /Cop\/Name: Unhandled value "unknown" for `Details` key./ to stderr6619 with empty config6620 is expected to eq false6621 without Details in config6622 is expected to eq false6623 without offenses6624 behaves like summary reporting6625 reports summary with 2 inspected, 0 offenses, 0 silenced6626 .adjusted_exit_status6627 active_offenses: 0, status: 0, adjusted_status: 06628 is expected to eq 06629 active_offenses: 0, status: 1, adjusted_status: 06630 is expected to eq 06631 active_offenses: 1, status: 1, adjusted_status: 16632 is expected to eq 16633 active_offenses: 0, status: 2, adjusted_status: 26634 is expected to eq 26635 active_offenses: 1, status: 2, adjusted_status: 26636 is expected to eq 26637 active_offenses: 1, status: 0, adjusted_status: 06638 is expected to eq 06639 without files to inspect6640 behaves like summary reporting6641 reports summary with 0 inspected, 0 offenses, 0 silenced6642Gitlab::ImportExport::RemoteStreamUpload6643 #execute6644 when download request and upload request return 2006645 uploads the downloaded content6646 when upload method is put6647 uploads using the put method6648 when download request does not return 2006649 is expected to raise Gitlab::ImportExport::RemoteStreamUpload::StreamError with "Invalid response code while downloading file. Code: 404"6650 when upload request does not returns 2006651 is expected to raise Gitlab::ImportExport::RemoteStreamUpload::StreamError with "Invalid response code while uploading file. Code: 403"6652 when download URL is a local address6653 raises error6654 when local requests are allowed6655 raises does not error6656 when download URL is a local network6657 raises error6658 when local network requests are allowed6659 raises does not error6660 when upload URL is a local address6661 raises error6662 when local requests are allowed6663 raises does not error6664 when upload URL it is a request to local network6665 raises error6666 when local network requests are allowed6667 raises does not error6668 when upload URL resolves to a local address6669 raises error6670 Gitlab::ImportExport::RemoteStreamUpload::ChunkStream6671 StringIO#copy_stream compatibility6672 copies all chunks6673 with chunks smaller and bigger than buffer size6674 copies all chunks6675Ci::DropPipelineWorker6676 #perform6677 calls delegates to the service6678 behaves like an idempotent worker6679 is labeled as idempotent6680 performs multiple times sequentially without raising an exception6681 executes the service6682Packages::MarkPackageFilesForDestructionService6683 #execute6684 with no package files6685 behaves like executing successfully6686 marks package files for destruction6687 executes successfully6688 with a single package file6689 behaves like executing successfully6690 marks package files for destruction6691 executes successfully6692 with many package files6693 behaves like executing successfully6694 marks package files for destruction6695 executes successfully6696 with a batch deadline6697 when the deadline is not hit6698 behaves like executing successfully6699 marks package files for destruction6700 executes successfully6701 when the deadline is hit6702 does not execute the batch loop6703 when a batch size is defined6704 behaves like executing successfully6705 marks package files for destruction6706 executes successfully6707 with an error during the update6708 raises the error6709Gitlab::Changelog::Committer6710 #commit6711 when the release isn't in the changelog6712 commits the changes6713 when the release is already in the changelog6714 doesn't commit the changes6715 when committing the changes fails6716 retries the operation6717 when the changelog changes before saving the changes6718 raises a Error6719shared/snippets/_snippet.html.haml6720 snippet with statistics6721 renders correct file count and tooltip6722 renders correct file count and tooltip when file_count is 16723 does not render file count when file count is 06724 snippet without statistics6725 does not render file count if statistics are not present6726MergeRequests::ByApprovalsFinder6727 filter by no approvals6728 returns merge requests without approvals6729 filter by any approvals6730 returns merge requests approved by at least one user6731 filter by specific user approval6732 returns merge requests approved by specific user6733 filter by multiple user approval6734 returns merge requests approved by both users6735 limiting max conditional elements6736 returns merge requests approved by both users, considering limit of 2 being defined6737 with empty params6738 returns all merge requests6739Resolvers::TreeResolver6740 is expected to have nullable GraphQL type Tree6741 #resolve6742 resolves to a tree6743 resolve to a recursive tree6744 when repository does not exist6745 returns nil6746Mutations::Issues::SetSubscription6747 is expected to require graphql authorizations :update_subscription6748 when user does not have access to the project6749 behaves like a subscribeable not accessible graphql resource6750 raises an error if the resource is not accessible to the user6751 when user is developer member of the project6752 behaves like a subscribeable graphql resource6753 subscribes to the resource6754 when passing subscribe as false6755 unsubscribes from the discussion6756 when the project is public6757 behaves like a subscribeable graphql resource6758 subscribes to the resource6759 when passing subscribe as false6760 unsubscribes from the discussion6761 when the project is public but the issue is confidential6762 behaves like a subscribeable not accessible graphql resource6763 raises an error if the resource is not accessible to the user6764Types::BaseArgument6765 adds a formatted `deprecated_reason` to the subject6766 appends to the description if given6767 does not append to the description if it is absent6768 adds information about the replacement if provided6769 supports named reasons: renamed6770 supports named reasons: alpha6771 supports :alpha6772 does not allow :alpha and :deprecated together6773 validations6774 raises an informative error if `deprecation_reason` is used6775 raises an error if a required property is missing6776 raises an error if milestone is not a String6777 visible?6778 defaults to true6779 when subject is deprecated6780 defaults to true6781 returns false if `remove_deprecated` is true in context6782 required argument declarations6783 accepts nullable, required arguments6784 accepts required, non-nullable arguments6785 accepts non-required arguments6786 accepts no required argument declaration6787Graphql::Arguments6788 returns a blank string if the arguments are blank6789 returns a serialized arguments if the arguments are not blank6790 supports merge with +6791 supports merge with + and a string6792 supports merge with + and a string when empty6793 supports merge with + and an empty string6794 serializes all values correctly6795BitbucketServer::Connection6796 #get6797 returns JSON body6798 throws an exception if the response is not 2006799 throws an exception if the response is not JSON6800 throws an exception upon a network error6801 #post6802 returns JSON body6803 throws an exception if the response is not 2006804 throws an exception upon a network error6805 throws an exception if the URI is invalid6806 #delete6807 branch API6808 returns JSON body6809 throws an exception if the response is not 2006810 throws an exception upon a network error6811Gitlab::ProcessManagement6812 .trap_signals6813 traps the given signals6814 .modify_signals6815 traps the given signals with the given command6816 .signal_processes6817 sends a signal to every given process6818 .signal6819 sends a signal to the given process6820 returns false when the process does not exist6821 .all_alive?6822 returns true if all processes are alive6823 returns false when a thread was not alive6824 .process_alive?6825 returns true if the process is alive6826 returns false when a thread was not alive6827 returns false when no pid is given6828 .process_died?6829 returns false if the process is alive6830 returns true when a thread was not alive6831 returns true when no pid is given6832 .pids_alive6833 returns the pids that are alive, from a given array6834 .any_alive?6835 returns true if at least one process is alive6836 returns false when all threads are dead6837 .write_pid6838 writes the PID of the current process to the given file6839Gitlab::DependencyLinker::GoSumLinker6840 .support?6841 supports go.sum6842 does not support other files6843 #link6844 links modules6845 links checksums6846ProjectImportOptions6847 sets default retry limit6848 sets default status expiration6849 .sidekiq_retries_exhausted6850 marks fork as failed6851 logs the appropriate error message for forked projects6852 logs the appropriate error message for forked projects6853 when project is jira import6854 logs the appropriate error message for forked projects6855 when project does not have import_state6856 raises an error6857Gitlab::ImportSources6858 .options6859 returns a hash6860 .values6861 returns an array6862 .importer_names6863 returns an array of importer names6864 .importer6865 returns Gitlab::GithubImport::ParallelImporter when given github6866 returns Gitlab::BitbucketImport::Importer when given bitbucket6867 returns Gitlab::BitbucketServerImport::Importer when given bitbucket_server6868 returns Gitlab::GitlabImport::Importer when given gitlab6869 returns Gitlab::FogbugzImport::Importer when given fogbugz6870 returns when given git6871 returns Gitlab::ImportExport::Importer when given gitlab_project6872 returns Gitlab::LegacyGithubImport::Importer when given gitea6873 returns when given manifest6874 returns Gitlab::PhabricatorImport::Importer when given phabricator6875 .title6876 returns GitHub when given github6877 returns Bitbucket Cloud when given bitbucket6878 returns Bitbucket Server when given bitbucket_server6879 returns GitLab.com when given gitlab6880 returns FogBugz when given fogbugz6881 returns Repository by URL when given git6882 returns GitLab export when given gitlab_project6883 returns Gitea when given gitea6884 returns Manifest file when given manifest6885 returns Phabricator when given phabricator6886 imports_repository? checker6887 fails if any importer other than the allowed ones implements this method6888MergeRequests::Mergeability::Logger6889 # order random6890 #instrument6891 raises an error when block is not provided6892 when enabled6893 returns the block's value6894 records durations of instrumented operations6895 with multiple observations6896 records durations of instrumented operations6897 when its a query6898 with a single query6899 includes SQL metrics6900 with multiple queries6901 includes SQL metrics6902tokens rake tasks6903 reset_all_email task6904 changes the incoming email token6905 reset_all_feed task6906 changes the feed token for the user6907RuboCop::Cop::UsageData::HistogramWithLargeTable6908 # order random6909 with large tables6910 with one-level constants6911 when calling histogram(Issue)6912 registers an offense6913 when calling histogram(::Issue)6914 registers an offense6915 when calling histogram(Issue.closed)6916 registers an offense6917 when calling histogram(::Issue.closed)6918 registers an offense6919 with two-level constants6920 when calling histogram(::Ci::Build)6921 registers an offense6922 when calling histogram(::Ci::Build.active)6923 registers an offense6924 when calling histogram(Ci::Build)6925 registers an offense6926 when calling histogram(Ci::Build.active)6927 registers an offense6928 with non related method6929 does not register an offense6930 with non related class6931 does not register an offense6932UsersStarProject6933 is expected to belong to project required: false6934 scopes6935 .all6936 returns all records6937 .with_active_user6938 returns only records of active users6939 .order_user_name_asc6940 sorts records by ascending user name6941 .order_user_name_desc6942 sorts records by descending user name6943 .by_project6944 returns only records of given project6945 .with_public_profile6946 returns only records of users with public profile6947 star count hooks6948 on after_create6949 if user is active6950 increments star count of project6951 if user is not active6952 does not increment star count of project6953 on after_destory6954 if user is active6955 decrements star count of project6956 if user is not active6957 does not decrement star count of project6958Packages::CreateEventService6959 #execute6960 with a user6961 behaves like redis package unique event creation6962 tracks the event6963 behaves like redis package count event creation6964 tracks the event6965 with a deploy token6966 behaves like redis package unique event creation6967 tracks the event6968 behaves like redis package count event creation6969 tracks the event6970 with no user6971 behaves like redis package count event creation6972 tracks the event6973 with a package as scope6974 as guest6975 behaves like redis package count event creation6976 tracks the event6977 with user6978 behaves like redis package unique event creation6979 tracks the event6980 behaves like redis package count event creation6981 tracks the event6982Gitlab::Pagination::Keyset::InOperatorOptimization::ArrayScopeColumns6983 builds array column names6984 when no columns are given6985 is expected to raise /No array columns were given/6986 when Arel AS node is given as input6987 works with Arel AS nodes6988rubocop rake tasks6989 check:graceful6990 with successful task result6991 example at ./spec/tasks/rubocop_rake_spec.rb:466992 modifies ENV and deletes REVEAL_RUBOCOP_TODO key6993 with non-successful task result6994 is expected to abort execution6995 todo:generate6996 without arguments6997 generates TODOs for all RuboCop rules6998 sets acronyms for inflections6999 with cop names as arguments7000 generates TODOs for given RuboCop cops7001Gitlab::Import::MergeRequestHelpers7002 .create_merge_request_without_hooks7003 when merge request does not exist7004 returns a new object7005 does load all existing objects7006 when merge request does exist7007 returns an existing object7008 when project is deleted7009 returns an existing object7010Groups::DeployTokens::CreateService7011 behaves like a deploy token creation service7012 #execute7013 when the deploy token is valid7014 creates a new DeployToken7015 creates a new ProjectDeployToken7016 returns a DeployToken7017 sets the creator_id as the id of the current_user7018 when expires at date is not passed7019 sets Forever.date7020 when username is empty string7021 converts it to nil7022 when username is provided7023 keeps the provided username7024 when the deploy token is invalid7025 does not create a new DeployToken7026 does not create a new ProjectDeployToken7027Resolvers::ProjectResolver7028 does not increase complexity depending on number of load limits7029 #resolve7030 batch-resolves projects by full path7031 resolves an unknown full_path to nil7032 treats project full path as case insensitive7033Gitlab::Database::Migrations::BatchedMigrationLastId7034 # order random7035 base_model: Ci::ApplicationRecord(abstract)7036 #read7037 when the file exists and have content7038 is expected to eq 997039 when the file exists and is blank7040 is expected to be nil7041 when the file doesn't exists7042 is expected to be nil7043 #store7044 creates the file properly7045 stores the proper id in the file7046 base_model: ApplicationRecord(abstract)7047 #read7048 when the file exists and have content7049 is expected to eq 997050 when the file exists and is blank7051 is expected to be nil7052 when the file doesn't exists7053 is expected to be nil7054 #store7055 creates the file properly7056 stores the proper id in the file7057Gitlab::DependencyLinker::PodspecJsonLinker7058 .support?7059 supports *.podspec.json7060 does not support other files7061 #link7062 links the gem name7063 links the license7064 links the homepage7065 links the source URL7066 links dependencies7067 does not link subspec names7068DeviseEmailValidator7069 validations7070 by default7071 allows when email is valid7072 returns error when email is invalid7073 returns error when email is nil7074 returns error when email is blank7075 when regexp is set as Regexp7076 allows when value match7077 returns error when value does not match7078 when regexp is set as String7079 raise argument error7080 when allow_nil is set to true7081 allows when email is nil7082 when allow_blank is set to true7083 allows when email is blank7084LooseForeignKeys::BatchCleanerService7085-- create_table(:_test_loose_fk_parent_table)7086 -> 0.2994s7087-- create_table(:_test_loose_fk_child_table_1)7088 -> 0.0194s7089-- create_table(:_test_loose_fk_child_table_2)7090 -> 0.0027s7091-- execute("CREATE TRIGGER _test_loose_fk_parent_table_loose_fk_trigger AFTER DELETE ON _test_loose_fk_parent_table REFERENCING OLD TABLE AS old_table FOR EACH STATEMENT EXECUTE FUNCTION insert_into_loose_foreign_keys_deleted_records();")7092 -> 0.0012s7093 when parent records are deleted7094 cleans up the child records7095 cleans up the pending parent DeletedRecord7096 records the DeletedRecord status updates7097 does not delete unrelated records7098 fair queueing7099 when the execution is over the limit7100 when the deleted record is under the maximum allowed cleanup attempts7101 updates the cleanup_attempts column7102 when the deleted record is above the maximum allowed cleanup attempts7103 reschedules the record7104 when over limit happens on the second cleanup call without skip locked7105 updates the cleanup_attempts column7106-- drop_table(:_test_loose_fk_parent_table)7107 -> 0.0584s7108-- drop_table(:_test_loose_fk_child_table_1)7109 -> 0.0024s7110-- drop_table(:_test_loose_fk_child_table_2)7111 -> 0.0018s7112Gitlab::Metrics::Samplers::ThreadsSampler7113 behaves like metrics sampler7114 when sampling interval is passed explicitly7115 is expected to eq 427116 when sampling interval is passed through the environment7117 is expected to eq 427118 when no sampling interval is passed anywhere7119 uses the hardcoded default7120 #start7121 calls the sample method on the sampler thread7122 with warmup set to true7123 calls the sample method first on the caller thread7124 #safe_sample7125 calls #sample once7126 when sampling fails with error7127 recovers from errors7128 with logger7129 logs errors7130 #sample7131 sets the gauge for the concurrency total7132 thread counts7133 reports if any of the threads per group uses the db7134 thread names7135 thread_names: [nil], expected_names: ["unnamed"]7136 is expected to receive set({:thread_name=>"unnamed", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7137 thread_names: ["puma threadpool 1", "puma threadpool 001", "puma threadpool 002"], expected_names: ["puma threadpool"]7138 is expected to receive set({:thread_name=>"puma threadpool", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7139 thread_names: ["sidekiq_worker_thread"], expected_names: ["sidekiq_worker_thread"]7140 is expected to receive set({:thread_name=>"sidekiq_worker_thread", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7141 thread_names: ["some_sampler", "some_exporter"], expected_names: ["some_sampler", "some_exporter"]7142 is expected to receive set({:thread_name=>"some_exporter", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7143 thread_names: ["unknown", "thing"], expected_names: ["unrecognized"]7144 is expected to receive set({:thread_name=>"unrecognized", :uses_db_connection=>"no"}, an_instance_of(Integer)) 1 time7145Gitlab::Database::Migrations::Instrumentation7146 #observe7147 executes the given block7148 behavior with observers7149 instantiates observer with observation7150 calls #before, #after, #record on given observers7151 ignores errors coming from observers #before7152 ignores errors coming from observers #after7153 ignores errors coming from observers #record7154 on successful execution7155 records a valid observation7156 transforms observation to expected json7157 upon failure7158 exception: "something went wrong"7159 raises the exception7160 retrieving observations7161 records a valid observation7162 transforms observation to expected json7163 exception: SystemStackError7164 raises the exception7165 retrieving observations7166 records a valid observation7167 transforms observation to expected json7168 exception: Interrupt7169 raises the exception7170 retrieving observations7171 records a valid observation7172 transforms observation to expected json7173 sequence of migrations with failures7174 records observations for all migrations7175Gitlab::Database::PostgresPartition7176 associations7177 is expected to belong to postgres_partitioned_table required: false7178 behaves like a postgres model7179 .by_identifier7180 finds the Gitlab::Database::PostgresPartition7181 raises an error if not found7182 raises ArgumentError if given a non-fully qualified identifier7183 #to_s7184 returns the name7185 #schema7186 returns the schema7187 #name7188 returns the name7189 .for_parent_table7190 returns partitions for the parent table in the current schema7191 returns the partitions if the parent table schema is included in the table name7192 does not return partitions for tables not in the current schema7193 does not return partitions for tables if the schema is not the current7194 #parent_identifier7195 returns the parent table identifier7196 #condition7197 returns the condition for the partitioned values7198 .partition_exists?7199 when the partition exists7200 is expected to be truthy7201 when the partition does not exist7202 is expected to be falsey7203 .legacy_partition_exists?7204 when the partition exists7205 is expected to be truthy7206 when the partition does not exist7207 is expected to be falsey7208ProtectedBranches::CreateService7209 with entity project7210 behaves like execute with entity7211 #execute7212 creates a new protected branch7213 refreshes the cache7214 when protecting a branch with a name that contains HTML tags7215 creates a new protected branch7216 when a policy restricts rule creation7217 prevents creation of the protected branch rule7218 creates a new protected branch if we skip authorization step7219 with entity group7220 behaves like execute with entity7221 #execute7222 creates a new protected branch7223 refreshes the cache7224 when protecting a branch with a name that contains HTML tags7225 creates a new protected branch7226 when a policy restricts rule creation7227 prevents creation of the protected branch rule7228 creates a new protected branch if we skip authorization step7229Aws::Role7230 is expected to belong to user required: false7231 is expected to validate that the length of :role_external_id is between 1 and 647232 custom validations7233 :role_arn7234 length is zero7235 is expected to be falsey7236 length is longer than 20487237 is expected to be falsey7238 ARN is valid7239 is expected to be truthy7240 ARN is nil7241 is expected to be truthy7242 callbacks7243 #ensure_role_external_id!7244 for a new record7245 calls #ensure_role_external_id!7246 for an existing record7247 does not call #ensure_role_external_id!7248 #ensure_role_external_id!7249 role_external_id is blank7250 generates an external ID and assigns it to the record7251 role_external_id is already set7252 does not change the existing external id7253Tooling::Danger::FeatureFlag7254 #feature_flag_files7255 retrieves added feature flag files7256 with added added feature flag files7257 returns an array of Found objects7258 without added added feature flag files7259 returns an array of Found objects7260 retrieves modified feature flag files7261 with modified modified feature flag files7262 returns an array of Found objects7263 without modified modified feature flag files7264 returns an array of Found objects7265 retrieves deleted feature flag files7266 with deleted deleted feature flag files7267 returns an array of Found objects7268 without deleted deleted feature flag files7269 returns an array of Found objects7270 #stage_label7271 when there is no stage label7272 returns nil7273 when there is a stage label7274 returns the stage label7275 Tooling::Danger::FeatureFlag::Found7276 #name7277 returns value from the YAML7278 #introduced_by_url7279 returns value from the YAML7280 #rollout_issue_url7281 returns value from the YAML7282 #milestone7283 returns value from the YAML7284 #type7285 returns value from the YAML7286 #group7287 returns value from the YAML7288 #default_enabled7289 returns value from the YAML7290 #raw7291 returns the raw YAML7292 #group_match_mr_label?7293 when group is nil7294 is true only if MR has no group label7295 when group is not nil7296 is true only if MR has the same group label7297Groups::AutoDevopsService#execute7298 when user does not have enough privileges7299 raises exception7300 when user has enough privileges7301 updates group auto devops enabled accordingly7302 when group has projects7303 reflects changes on projects7304 when group has subgroups7305 reflects changes on subgroups7306 when subgroups have projects7307 reflects changes on projects7308Gitlab::Blame7309 #first_line7310 is expected to eq 17311 with a range7312 is expected to eq 27313 #groups7314 groups lines properly7315 with a range 1..57316 returns the correct lines7317 with highlighted lines7318 returns the correct lines7319 with a range 2..47320 returns the correct lines7321 with highlighted lines7322 returns the correct lines7323 renamed file7324 adds previous path7325MergeRequestReviewer7326 behaves like having unique enum values7327 has unique values in "state"7328 associations7329 is expected to belong to merge_request class_name => MergeRequest required: false7330 is expected to belong to reviewer class_name => User required: false inverse_of => merge_request_reviewers7331Gitlab::Database::PostgresConstraint7332 # order random7333 #by_table_identifier7334 includes all constraints on the table7335 throws an error if the format is incorrect7336 #check_constraints7337 finds check constraints for the table7338 includes columns for the check constraints7339 #primary_or_unique_constraints7340 finds primary and unique constraints7341 #valid7342 excludes invalid constraints7343 #including_column7344 only matches constraints on the given column7345 #primary_key_constraints7346 finds the primary key constraint for the table7347 finds the columns in the primary key constraint7348 #not_including_column7349 only matches constraints not including the given column7350 #unique_constraints7351 finds the unique constraints for the table7352JSONWebToken::RSAToken7353 token7354 for valid key to be validated7355 is expected not to raise Exception7356 is expected to include {"key" => "value"}7357 is expected to eq {"alg"=>"RS256", "kid"=>"OGXY:4TR7:FAVO:WEM2:XXEW:E4FP:TKL7:7ACK:TZAF:D54P:SUIA:P3B2", "typ"=>"JWT"}7358 for invalid key to raise an exception7359 is expected to raise JWT::DecodeError7360ProjectRepository7361 associations7362 is expected to belong to shard required: false7363 is expected to belong to project required: false7364 behaves like shardable scopes7365 .for_repository_storage7366 returns the objects for a given repository storage7367 .excluding_repository_storage7368 returns the objects excluding the given repository storage7369 .for_shard7370 returns the objects for a given shard7371 .find_project7372 finds project by disk path7373 returns nil when it does not find the project7374API::Entities::ProjectImportStatus7375 #as_json7376 when no import state exists7377 includes basic fields and no failures7378 when import has not finished yet7379 includes basic fields and no failures7380 when import has finished with failed relations7381 includes basic fields with failed relations7382 when import has failed7383 includes basic fields with import error7384 when importing from github7385 exposes the import stats7386Banzai::Filter::References::AbstractReferenceFilter7387 #data_attributes_for7388 is not an XSS vector7389 abstract methods7390 #find_object7391 raises NotImplementedError7392 #url_for_object7393 raises NotImplementedError7394Gitlab::Config::Entry::Validators::NestedArrayHelpers7395 #validate_nested_array7396 with valid values7397 with arrays of integers7398 is expected to be empty7399 with nested arrays of integers7400 is expected to be empty7401 with invalid values7402 with single integers7403 is expected to eq {:value=>["is invalid"]}7404 when it is nested over the limit7405 is expected to eq {:value=>["is invalid"]}7406 when a value in the array is not valid7407 is expected to eq {:value=>["is invalid"]}7408 when a value in the nested array is not valid7409 is expected to eq {:value=>["is invalid"]}7410Resolvers::Projects::ServicesResolver7411 is expected to have nullable GraphQL type ServiceConnection7412 #resolve7413 when project does not have services7414 when user cannot access services7415 when anonymous user7416 behaves like cannot access project services7417 raises error7418 when user developer7419 behaves like cannot access project services7420 raises error7421 when user can read project services7422 behaves like no project services7423 returns empty collection7424 when project has services7425 when user cannot access services7426 when anonymous user7427 behaves like cannot access project services7428 raises error7429 when user developer7430 behaves like cannot access project services7431 raises error7432 when user can read project services7433 returns project services7434Prometheus::CleanupMultiprocDirService7435 #execute7436 when `multiprocess_files_dir` is defined7437 removes old metrics7438 when `multiprocess_files_dir` is not defined7439 does not remove any files7440SearchServicePresenter7441 #search_objects7442 objects do not respond to eager_load7443 users scope7444 does not eager load anything7445 #show_results_status?7446 with_count: true, show_snippets: true, show_sort_dropdown: true, result: true7447 is expected to eq true7448 with_count: false, show_snippets: true, show_sort_dropdown: false, result: true7449 is expected to eq true7450 with_count: false, show_snippets: false, show_sort_dropdown: true, result: true7451 is expected to eq true7452 with_count: false, show_snippets: false, show_sort_dropdown: false, result: false7453 is expected to eq false7454 #advanced_search_enabled?7455 is expected to eq false7456Ci::CreatePipelineService7457 # order random7458 when project has not exceeded the active jobs limit7459 creates the pipeline successfully7460 when project has exceeded the active jobs limit7461 fails the pipeline before populating it7462Types::CommitType7463 is expected to eq "Commit"7464 is expected to require graphql authorizations :read_code7465 is expected to include Types::TodoableInterface7466 contains attributes related to commit7467Projects::RefreshBuildArtifactsSizeStatisticsWorker7468 #perform_work7469 when refresh job is present7470 logs refresh information7471 when refresh job is not present7472 logs refresh information7473 #remaining_work_count7474 and there are remaining refresh jobs7475 is expected to eq 17476 and there are no remaining refresh jobs7477 is expected to eq 07478 #max_running_jobs7479 is expected to eq 07480 when projects_build_artifacts_size_refresh flag is enabled7481 is expected to eq 17482 when projects_build_artifacts_size_refresh_medium flag is enabled7483 is expected to eq 37484 when projects_build_artifacts_size_refresh_high flag is enabled7485 is expected to eq 57486projects/issues/service_desk/_service_desk_info_content7487 when service desk is disabled7488 when the logged user is at least maintainer7489 shows the info including the project settings link7490 when the logged user is at only a developer7491 shows the info without the project settings link7492 when service desk is enabled7493 when the logged user is at least reporter7494 shows the info including the email address7495 when the logged user is at only a guest7496 shows the info without the email address7497 when user is not logged in7498 shows the info without the email address7499dashboard/projects/_blank_state_admin_welcome.html.haml7500 links to new group path7501ContextCommitsDiffEntity7502 as json7503 exposes commits_count7504 exposes showing_context_commits_diff7505 exposes diffs_path7506DeleteMergedBranchesWorker7507 #perform7508 delegates to Branches::DeleteMergedService7509 returns false when project was not found7510Resolvers::DataTransfer::ProjectDataTransferResolver7511 # order random7512 with authorized user but without enough permissions7513 does not raise an error and returns no data7514 with anonymous access7515 does not raise an error and returns no data7516 when user has permissions to see data transfer7517 returns mock data7518 when data_transfer_monitoring is disabled7519 returns empty result7520 when data_transfer_monitoring_mock_data is disabled7521 calls ProjectDataTransferFinder with expected arguments7522BulkImports::Groups::Pipelines::NamespaceSettingsPipeline7523 #run7524 imports allowed namespace settings attributes7525 #transform7526 fetches only allowed attributes and symbolize keys7527 when there is no data to transform7528 is expected to eq nil7529 #after_run7530 calls extractor#remove_tmpdir7531DesignManagement::DesignAction7532 validations7533 the design7534 must not be nil7535 the action7536 must not be nil7537 must be a known action7538 the content7539 content is necesary7540 must not be nil if the action is create7541 must not be nil if the action is update7542 content is forbidden7543 must not be nil if the action is delete7544 #gitaly_action7545 the action needs content7546 produces a good gitaly action7547 the action forbids content7548 produces a good gitaly action7549 #issue_id7550 delegates to the design7551 #performed7552 calls design#clear_version_cache when the action has been performed7553Gitlab::ErrorTracking::Processor::ContextPayloadProcessor7554 .call7555 merges the context payload into event payload7556Banzai::Pipeline::PreProcessPipeline7557 pre-processes the source text7558 truncates the text if requested7559 when multiline blockquote7560 data-sourcepos references correct line in source markdown7561Code review events7562 the aggregated metrics contain all the code review metrics7563Gitlab::Audit::DeployKeyAuthor7564 #initialize7565 sets correct attributes7566 sets default name when it is not provided7567RuboCop::Cop::Migration::DropTable7568 # order random7569 when in deployment migration7570 with drop_table DSL method7571 when in down method7572 does not register an offense7573 when in up method7574 registers an offense7575 when in change method7576 registers an offense7577 with DROP TABLE SQL literal7578 does not register an offense7579 when in up method7580 registers an offense7581 when in change method7582 registers an offense7583 when outside of migration7584 registers no offense7585 when in post-deployment migration7586 registers no offense7587Editable7588 #edited?7589 is expected to eq false7590 is expected to eq true7591GenerateRspecPipeline7592 # order random7593 #generate!7594 when rspec_files and pipeline_template_path exists7595 generates the pipeline config with default parallelization7596 when parallelization > 07597 generates the pipeline config7598 when parallelization > MAX_NODES_COUNT7599 generates the pipeline config with max parallelization of 507600 when knapsack_report_path is given7601 generates the pipeline config with parallelization based on Knapsack7602 and Knapsack report does not contain valid JSON7603 generates the pipeline config with default parallelization7604 when test_suite_prefix is given7605 generates the pipeline config based on the test_suite_prefix7606 when generated_pipeline_path is given7607 writes the pipeline config in the given generated_pipeline_path7608 when rspec_files does not exist7609 generates the pipeline config using the no-op template7610 when pipeline_template_path does not exist7611 generates the pipeline config using the no-op template7612Gitlab::QuickActions::TimelineTextAndDateTimeSeparator7613 # order random7614 execute7615 with invalid parameters in arg line7616 with empty arg line7617 behaves like arg line with invalid parameters7618 returns nil7619 with invalid date7620 behaves like arg line with invalid parameters7621 returns nil7622 behaves like arg line with invalid parameters7623 returns nil7624 behaves like arg line with invalid parameters7625 returns nil7626 with invalid time7627 behaves like arg line with invalid parameters7628 returns nil7629 when date is invalid in arg line7630 return current date7631 with valid parameters7632 when only timeline text present in arg line7633 behaves like arg line with valid parameters7634 returns text and date time array7635 when only timeline text and time present in arg line7636 behaves like arg line with valid parameters7637 returns text and date time array7638 when timeline text and date is present in arg line7639 behaves like arg line with valid parameters7640 returns text and date time array7641Gitlab::UsageDataCounters::GitLabCliActivityUniqueCounter7642 when tracking a gitlab cli request7643 with the old UserAgent7644 behaves like a request from an extension7645 tracks when the user agent is matching7646 does not track when the user agent is not matching7647 does not track if user agent is not present7648 does not track if user is not present7649 with the current UserAgent7650 behaves like a request from an extension7651 tracks when the user agent is matching7652 does not track when the user agent is not matching7653 does not track if user agent is not present7654 does not track if user is not present7655Gitlab::Email::Message::InProductMarketing::Trial7656 public methods7657 series: 07658 returns value for series7659 #progress7660 on gitlab.com7661 is expected to eq "This is email 2 of 4 in the Trial series."7662 not on gitlab.com7663 is expected to include "This is email 2 of 4 in the Trial series" and "http://localhost/-/profile/notifications"7664 series: 17665 returns value for series7666 #progress7667 on gitlab.com7668 is expected to eq "This is email 3 of 4 in the Trial series."7669 not on gitlab.com7670 is expected to include "This is email 3 of 4 in the Trial series" and "http://localhost/-/profile/notifications"7671 series: 27672 returns value for series7673 #progress7674 on gitlab.com7675 is expected to eq "This is email 4 of 4 in the Trial series."7676 not on gitlab.com7677 is expected to include "This is email 4 of 4 in the Trial series" and "http://localhost/-/profile/notifications"7678API::Ci::Helpers::Runner7679 #get_runner_details_from_request7680 when no runner info is present7681 returns the runner IP7682 when runner info is present7683 extracts the runner details7684 #log_artifacts_filesize7685 behaves like storing arguments in the application context7686 places the expected params in the application context7687 behaves like not executing any extra queries for the application context7688 does not execute more queries than without adding anything to the application context7689Projects::UpdateRepositoryStorageWorker7690 behaves like an update storage move worker7691 has the `until_executed` deduplicate strategy7692 #perform7693 without repository storage move7694 calls the update repository storage service7695 with repository storage move7696 calls the update repository storage service7697CustomerRelations::Organizations::CreateService7698 #execute7699 creates an organization7700 returns an error when user does not have permission7701 returns an error when the organization is not persisted7702Ci::ParseSecureFileMetadataWorker7703 # order random7704 #perform7705 is labeled as idempotent7706 performs multiple times sequentially without raising an exception7707 when the file is found7708 calls update_metadata!7709 when file is not found7710WARNING: An expectation of `:update_metadata!` was set on `nil`. To allow expectations on `nil` and suppress this message, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `true`. To disallow expectations on `nil`, set `RSpec::Mocks.configuration.allow_message_expectations_on_nil` to `false`. Called from /builds/gitlab-org/gitlab/spec/workers/ci/parse_secure_file_metadata_worker_spec.rb:25:in `block (4 levels) in <top (required)>'.7711 does not call update_metadata!7712RuboCop::Cop::SidekiqLoadBalancing::WorkerDataConsistency7713 # order random7714 when data_consistency set to :always7715 adds an offense when using `always` data_consistency7716 adds no offense when using `sticky` data_consistency7717 adds no offense when using `delayed` data_consistency7718 adds no offense when worker is not an ApplicationWorker7719 when data_consistency is not set7720 adds an offense when not defining data_consistency7721 adds no offense when defining data_consistency7722 adds no offense when worker is not an ApplicationWorker7723projects/hooks/edit7724 renders webhook page with "Recent events"7725 webhook is rate limited7726 renders alert7727 webhook is permanently disabled7728 renders alert7729 webhook is temporarily disabled7730 renders alert7731Gitlab::UsageDataCounters::DesignsCounter7732 behaves like a redis usage counter7733 .count(create)7734 increments the Designs create counter by 17735 .read(create)7736 returns the total number of create events7737 behaves like a redis usage counter7738 .count(update)7739 increments the Designs update counter by 17740 .read(update)7741 returns the total number of update events7742 behaves like a redis usage counter7743 .count(delete)7744 increments the Designs delete counter by 17745 .read(delete)7746 returns the total number of delete events7747 behaves like a redis usage counter with totals7748 totals7749 can report all totals7750 unknown events7751 cannot increment7752 cannot read7753Projects::FetchStatisticsIncrementService7754 #execute7755 creates a new record for today with count == 17756 doesn't increment previous days statistics7757 when the record already exists for today7758 increments the today record count by 17759AnalyticsSummarySerializer7760 generates payload for single object7761 contains important elements of AnalyticsStage7762 does not include unit7763 when representing with unit7764 contains unit7765Gitlab::Usage::Metrics::Instrumentations::AggregatedMetric7766 # order random7767 data_source: "database", time_frame: "7d", operator: "AND", expected_value: 1.07768 has correct value7769 data_source: "redis_hll", time_frame: "7d", operator: "AND", expected_value: 17770 has correct value7771 data_source: "database", time_frame: "7d", operator: "OR", expected_value: 3.07772 has correct value7773 data_source: "redis_hll", time_frame: "28d", operator: "AND", expected_value: 27774 has correct value7775 data_source: "redis_hll", time_frame: "7d", operator: "OR", expected_value: 27776 has correct value7777 data_source: "redis_hll", time_frame: "28d", operator: "OR", expected_value: 37778 has correct value7779Plan7780 #default?7781 when 'default'7782 is expected to be truthy7783 when 'free'7784 is expected to be truthy7785 #default7786 when default plan exists7787 returns default plan7788 when default plan does not exist7789 creates default plan7790 creates plan with correct attributes7791 when updating plan limits7792 is expected to be persisted7793 is expected not to be persisted7794 successfully updates the limits7795Pajamas::SpinnerComponent7796 class7797 has the correct custom class7798 color7799 by default7800 is dark7801 set to light7802 is light7803 inline7804 by default7805 renders a div7806 set to true7807 renders a span7808 label7809 by default7810 has "Loading" as aria-label7811 when set to something else7812 has a custom aria-label7813 size7814 has the correct size class7815Gitlab::Terraform::StateMigrationHelper7816 .migrate_to_remote_storage7817 migrates remote files to remote storage7818RedisCommands::Recorder7819 #initialize7820 with a block7821 records Redis commands7822 without block7823 only initializes the recorder7824 #record7825 records Redis commands7826 does not record commands before the call7827 refreshes recording after reinitialization7828 Pattern recording7829 records only matching keys7830 #by_command7831 returns only matching commands7832 #count7833 returns the number of recorded commands7834Gitlab::ExternalAuthorization7835 #access_allowed?7836 is always true when the feature is disabled7837 #rejection_reason7838 is always nil when the feature is disabled7839 #access_for_user_to_label7840 only loads the access once per request7841 logs the access request once per request7842RuboCop::Cop::CodeReuse::ServiceClass7843 # order random7844 flags the use of a Service class in a Finder7845 does not flag the use of a Service class in a regular class7846 flags the use of a Service class in a Presenter7847 flags the use of a Service class in a model7848 flags the use of a Service class in a Serializer7849bin/diagnostic-reports-uploader7850 # order random7851 when GITLAB_DIAGNOSTIC_REPORTS_BUCKET is missing7852 raises RuntimeError7853 when GITLAB_DIAGNOSTIC_REPORTS_PATH is missing7854 raises RuntimeError7855 when necessary ENV vars are set7856 runs successfully7857 when GITLAB_GCP_KEY_PATH is missing7858 raises RuntimeError7859 when GITLAB_DIAGNOSTIC_REPORTS_PROJECT is missing7860 raises RuntimeError7861Gitlab::Pagination::Keyset::RequestContext7862 #page7863 with only order_by given7864 extracts order_by/sorting information7865 with order_by and sort given7866 extracts order_by/sorting information and adds tie breaker7867 with no order_by information given7868 defaults to tie breaker7869 with per_page params given7870 extracts per_page information7871 #apply_headers7872 sets Link header with same host/path as the original request7873 sets Link header with a link to the next page7874 with descending order7875 sets Link header with a link to the next page7876BlameHelper7877 #get_age_map_start_date7878 returns the earliest date from a blame group7879 returns the earliest date from a project7880 #age_map_class7881 returns blame-commit-age-9 when oldest7882 returns blame-commit-age-0 class when newest7883 when called on the same day as project creation7884 returns blame-commit-age-0 class7885Types::MemberInterface7886 exposes the expected fields7887 .resolve_type7888 for project member7889 is expected to equal Types::ProjectMemberType7890 for group member7891 is expected to equal Types::GroupMemberType7892 for an unkown type7893 raises an error7894 #merge_request_interaction7895 returns the correct type7896 has the correct arguments7897AsCte7898 .as_cte7899 is expected to be a kind of Gitlab::SQL::CTE7900 is expected to eq #<ActiveRecord::Relation []>7901 is expected to eq "klass_cte"7902 with materialized parameter7903 as true7904 is expected to match /MATERIALIZE/7905 as false7906 is expected not to match /MATERIALIZE/7907Clusters::Agents::GroupAuthorization7908 is expected to belong to agent class_name => Clusters::Agent required: true7909 is expected to belong to group class_name => ::Group required: true7910 is expected to validate jsonb schema "config"7911 #config_project7912 is expected to eq #<Project id:1502 namespace1279/project1592>>7913RuboCop::Cop::Migration::PreventGlobalEnableLockRetriesWithDisableDdlTransaction7914 # order random7915 when outside of migration7916 registers no offense7917 when in migration7918 registers an offense when `enable_lock_retries` and `disable_ddl_transaction` is used together7919 registers no offense when `enable_lock_retries!` is used7920 registers no offense when `disable_ddl_transaction!` is used7921Gitlab::Ci::Config::Header::Spec7922 # order random7923 when spec contains default values for inputs7924 passes validations7925 returns the value7926 when spec contains a required value7927 parses the config correctly7928 when spec contains unknown keywords7929 fails validations7930 returns the value7931Import::ProviderRepoSerializer7932 #represent7933 raises an error if invalid provider supplied7934 provider: :github, class_name: "Import::GithubishProviderRepoEntity"7935 uses correct entity class7936 provider: :gitea, class_name: "Import::GithubishProviderRepoEntity"7937 uses correct entity class7938 provider: :bitbucket, class_name: "Import::BitbucketProviderRepoEntity"7939 uses correct entity class7940 provider: :bitbucket_server, class_name: "Import::BitbucketServerProviderRepoEntity"7941 uses correct entity class7942 provider: :fogbugz, class_name: "Import::FogbugzProviderRepoEntity"7943 uses correct entity class7944Ci::PipelineCreation::StartPipelineService7945 #execute7946 calls the pipeline process service7947 creates pipeline ref7948shared/projects/_inactive_project_deletion_alert7949 without a project7950 behaves like does not render7951 is expected not to have text "Due to inactivity, this project is scheduled to be deleted on 2022-04-01. Why is this scheduled?"7952 with a project7953 when the project is active7954 behaves like does not render7955 is expected not to have text "Due to inactivity, this project is scheduled to be deleted on 2022-04-01. Why is this scheduled?"7956 when the project is inactive7957 does render the alert7958RuboCop::Cop::Gitlab::NoCodeCoverageComment7959 # order random7960 with nocov as default comment token7961 behaves like nocov check7962 flags related code comments7963 ignores unrelated comments7964 with configured comment token7965 behaves like nocov check7966 flags related code comments7967 ignores unrelated comments7968Gitlab::HealthChecks::Server7969 with running server thread7970 /readiness7971 behaves like serves health check at7972[2023-04-12 15:04:30] INFO WEBrick 1.8.17973[2023-04-12 15:04:30] INFO ruby 3.0.6 (2023-03-30) [x86_64-linux]7974[2023-04-12 15:04:30] INFO WEBrick::HTTPServer#start: pid=354 port=80827975[2023-04-12 15:04:30] INFO going to shutdown ...7976[2023-04-12 15:04:30] INFO WEBrick::HTTPServer#start done.7977 responds with 200 OK7978 /liveness7979 behaves like serves health check at7980[2023-04-12 15:04:30] INFO WEBrick 1.8.17981[2023-04-12 15:04:30] INFO ruby 3.0.6 (2023-03-30) [x86_64-linux]7982[2023-04-12 15:04:30] INFO WEBrick::HTTPServer#start: pid=354 port=80827983[2023-04-12 15:04:30] INFO going to shutdown ...7984[2023-04-12 15:04:30] INFO WEBrick::HTTPServer#start done.7985 responds with 200 OK7986 other routes7987[2023-04-12 15:04:30] INFO WEBrick 1.8.17988[2023-04-12 15:04:30] INFO ruby 3.0.6 (2023-03-30) [x86_64-linux]7989[2023-04-12 15:04:30] INFO WEBrick::HTTPServer#start: pid=354 port=80827990[2023-04-12 15:04:30] INFO going to shutdown ...7991[2023-04-12 15:04:30] INFO WEBrick::HTTPServer#start done.7992 serves 4047993 when server thread goes away7994[2023-04-12 15:04:30] INFO WEBrick 1.8.17995[2023-04-12 15:04:30] INFO ruby 3.0.6 (2023-03-30) [x86_64-linux]7996 stop closes TCP socket7997TermAgreement7998 validations7999 is expected to validate that :term cannot be empty/falsy8000 is expected to validate that :user cannot be empty/falsy8001 .accepted8002 only includes accepted terms8003ChatNames::AuthorizeUserService8004 #execute8005 when all parameters are valid8006 produces a valid HTTP URL8007 requests a new token8008 when there are missing parameters8009 does not produce a URL8010 does not request a new token8011Net::HTTPResponse patch header read timeout8012 .each_response_header8013 with Net::BufferedIO8014 does not forward start time to the socket8015 when the response contains many consecutive spaces8016 has no regex backtracking issues8017 with Gitlab::BufferedIo8018 forwards start time to the socket8019 when the response contains an infinite number of headers8020 raises a timeout error8021GroupDeployKeyEntity8022 returns group deploy keys with a group a user can read8023 is expected to eq {:can_edit=>false, :created_at=>2023-04-12 15:04:33.568612911 +0000, :fingerprint=>"e1:0a:76:65:ee:ca...], :id=>1, :title=>"My title 670", :updated_at=>2023-04-12 15:04:33.568612911 +0000, :user_id=>1996}8024Gitlab::RequestEndpoints8025 .all_api_endpoints8026 selects all feature API classes8027 .all_controller_actions8028 selects all feature controllers and action names8029UploadChecksumWorker8030 #perform8031 without a valid record8032 rescues ActiveRecord::RecordNotFound8033 with a valid record8034 calls calculate_checksum!8035 calls save!8036Gitlab::Database::Migrations::ExtensionHelpers8037 # order random8038 #drop_extension8039 executes CREATE EXTENSION statement8040 without proper permissions8041 raises an exception and prints an error message8042 #create_extension8043 executes CREATE EXTENSION statement8044 without proper permissions8045 raises an exception and prints an error message8046Gitlab::ImportFormatter8047 #comment8048 creates the correct string8049 #author_line8050 returns the correct string with provided author name8051 returns the correct string with Anonymous name if author not provided8052 #assignee_line8053 returns the correct string with provided author name8054 returns the correct string with Anonymous name if author not provided8055Gitlab::NotifyUponDeath8056 .sidekiq_retries_exhausted8057 notifies the JobWaiter when 3 arguments are given and the last is a String8058 does not notify the JobWaiter when only 2 arguments are given8059 does not notify the JobWaiter when only 1 argument is given8060 does not notify the JobWaiter when the last argument is not a String8061WorkItems::PrepareImportCsvService8062 # order random8063 when file is uploaded correctly8064 returns a success message8065 enqueues the ImportWorkItemsCsvWorker8066 when file upload fails8067 returns an error message8068Gitlab::StringPlaceholderReplacer8069 .render_url8070 returns the nil if the string is blank8071 returns the string if the placeholder regex8072 returns the string if no block given8073 when all params are valid8074 replaces each placeholders with the block result8075 does not replace the placeholder if the block result is nil8076Types::AlertManagement::StatusEnum8077 is expected to eq "AlertManagementStatus"8078 statuses8079 status_name: "TRIGGERED", status_value: :triggered8080 exposes a status with the correct value8081 status_name: "ACKNOWLEDGED", status_value: :acknowledged8082 exposes a status with the correct value8083 status_name: "RESOLVED", status_value: :resolved8084 exposes a status with the correct value8085 status_name: "IGNORED", status_value: :ignored8086 exposes a status with the correct value8087RuboCop::Cop::Migration::BackgroundMigrations8088 # order random8089 when migrate_in is used8090 registers an offense8091 when queue_background_migration_jobs_by_range_at_intervals is used8092 registers an offense8093 when requeue_background_migration_jobs_by_range_at_intervals is used8094 registers an offense8095BulkImports::FileTransfer8096 .config_for8097 when portable is group8098 returns group config8099 when portable is project8100 returns project config8101 when portable is unsupported8102 raises an error8103Banzai::Filter::MarkdownEngines::Base8104 # order random8105 raise error if render not implemented8106 turns off sourcepos8107Types::Clusters::AgentActivityEventType8108 is expected to eq "ClusterAgentActivityEvent"8109 is expected to require graphql authorizations :read_cluster_agent8110 is expected to have graphql fields :recorded_at, :kind, :level, :user, and :agent_token8111RuboCop::Cop::Gitlab::FinderWithFindBy8112 # order random8113 when calling execute.find8114 registers an offense and corrects8115 when called within the `FinderMethods` module8116 does not register an offense8117Gitlab::Email::Message::InProductMarketing::TrialShort8118 public methods8119 returns value for series8120 #progress8121 on gitlab.com8122 is expected to eq "This is email 1 of 4 in the Trial series."8123 not on gitlab.com8124 is expected to include "This is email 1 of 4 in the Trial series" and "http://localhost/-/profile/notifications"8125Types::Ci::TestReportSummaryType8126 is expected to eq "TestReportSummary"8127 contains attributes related to a pipeline test report summary8128Gitlab::GithubImport::ImportPullRequestMergedByWorker8129 is expected to includes the Gitlab::GithubImport::ObjectImporter module8130 #representation_class8131 is expected to eq Gitlab::GithubImport::Representation::PullRequest8132 #importer_class8133 is expected to eq Gitlab::GithubImport::Importer::PullRequestMergedByImporter8134API::API8135 .prefix8136 has a prefix defined8137 .version8138 uses most recent version of the API8139 .versions8140 returns all available versions8141Types::CiConfiguration::Sast::Type8142 is expected to eq "SastCiConfiguration"8143 is expected to have graphql fields :global, :pipeline, and :analyzers8144FutureDateValidator8145 past date8146 is expected not to be valid8147 current date8148 is expected to be valid8149 future date8150 is expected to be valid8151DiffLineEntity8152 exposes correct attributes8153 #rich_text8154 when rich_line is present8155 behaves like escapes html tags8156 is expected to be html safe8157 when rich_line is not present8158 behaves like escapes html tags8159 is expected to be html safe8160Types::Ci::ConfigVariableType8161 # order random8162 is expected to have graphql fields :key, :description, and :value8163ContainerRegistry::DataRepairDetail8164 # order random8165 is expected to belong to project required: true8166Types::IssueStatusCountsType8167 is expected to eq "IssueStatusCountsType"8168 exposes the expected fields8169Gitlab::SidekiqMiddleware::QueryAnalyzer8170 the PreventCrossDatabaseModification8171 #call8172 when there is a cross modification8173 detects cross modifications and tracks exception8174 when the detect_cross_database_modification is disabled8175 does not detect cross modifications8176 when there is no cross modification8177 does not log anything8178Gitlab::HealthChecks::Middleware8179 #call8180 handling /readiness requests8181 handles the request8182 handling /liveness requests8183 handles the request8184 handling other requests8185 forwards them to the next middleware8186Types::TimeTracking::TimelogSortEnum8187 # order random8188 exposes all the contact sort values8189 is expected to eq "TimelogSort"8190 behaves like common sort values8191 exposes all the existing common sort values8192Preloaders::RunnerManagerPolicyPreloader8193 # order random8194 avoids N+1 queries when authorizing a list of runner managers8195VulnerabilityFindingSignatureHelpers8196 #priority8197 returns numeric values of the priority string8198 #self.priority8199 returns the numeric value of the provided string8200Types::Ci::TestSuiteType8201 is expected to eq "TestSuite"8202 contains attributes related to a pipeline test suite8203Gitlab::Ci::Reports::Security::ScannedResource8204 when the URI is not a URI8205 raises an error8206 when the URL is valid8207 sets the URL attributes8208Types::CiConfiguration::Sast::EntityType8209 is expected to eq "SastCiConfigurationEntity"8210 is expected to have graphql fields :field, :label, :description, :type, :options, :default_value, :value, and :size8211GetPackageAndTestJob8212 # order random8213 #execute8214 requests commit_merge_requests from the gitlab client8215RuboCop::Cop::Migration::ReferToIndexByName8216 # order random8217 when in migration8218 when existing indexes are referred to without an explicit name8219 registers an offense8220 when outside migration8221 registers no offenses8222Database::BatchedBackgroundMigrationsFinder8223 #execute8224 returns migrations order by created_at (DESC)8225 limits the number of returned migrations8226Gitlab::QuickActions::Dsl8227 .command_definitions8228 returns an array with commands definitions8229Types::DependencyProxy::ManifestType8230 includes dependency proxy manifest fields8231Packages::Composer::CacheCleanupWorker8232 #perform8233 does nothing8234BlobViewer::Gemspec8235 #package_name8236 returns the package name8237Sidebars::Projects::SuperSidebarMenus::ManageMenu8238 # order random8239 defines list of NilMenuItem placeholders8240 has title and sprite_icon8241Tooling::VisualReviewHelper8242 #visual_review_toolbar_options8243 returns the correct params8244Gitlab::Kubernetes::ClusterRoleBinding8245 #generate8246 builds a Kubeclient Resource8247Ci::Lint::JobEntity8248 #represent8249 exposes job data8250Session initializer for GitLab8251 config#session_store8252 initialized as a redis_store with a proper servers configuration8253Bitbucket::Collection8254 iterates paginator8255NamespaceCiCdSetting8256 associations8257 is expected to belong to namespace required: false inverse_of => ci_cd_settings8258Knapsack report was generated. Preview:8259{8260 "spec/services/groups/transfer_service_spec.rb": 242.6093521490002,8261 "spec/services/ci/create_downstream_pipeline_service_spec.rb": 234.48636553599954,8262 "spec/models/project_wiki_spec.rb": 103.26878002400008,8263 "spec/models/wiki_page_spec.rb": 78.55510233000041,8264 "spec/workers/post_receive_spec.rb": 87.35034781800005,8265 "spec/lib/gitlab/github_import/importer/protected_branch_importer_spec.rb": 68.01057377699999,8266 "spec/lib/gitlab/import_export/project/relation_factory_spec.rb": 64.46054493600059,8267 "spec/services/issuable/bulk_update_service_spec.rb": 54.23316684099973,8268 "spec/models/resource_milestone_event_spec.rb": 35.24092318199928,8269 "spec/services/members/approve_access_request_service_spec.rb": 30.813683838000543,8270 "spec/lib/api/helpers_spec.rb": 18.324603003999982,8271 "spec/finders/todos_finder_spec.rb": 30.861457105000227,8272 "spec/services/packages/npm/generate_metadata_service_spec.rb": 18.384633950000534,8273 "spec/services/files/multi_service_spec.rb": 26.99745384200014,8274 "spec/models/discussion_spec.rb": 24.884310864000327,8275 "spec/models/ci/bridge_spec.rb": 17.9231104950004,8276 "spec/models/hooks/service_hook_spec.rb": 18.904571152000244,8277 "spec/models/concerns/subscribable_spec.rb": 16.578912990999925,8278 "spec/policies/blob_policy_spec.rb": 13.585664524999629,8279 "spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb": 5.40600690500014,8280 "spec/lib/gitlab/ci/variables/collection_spec.rb": 3.0642724889994497,8281 "spec/models/concerns/routable_spec.rb": 5.031597815000168,8282 "spec/lib/gitlab/ci/runner/backoff_spec.rb": 2.3065485490005813,8283 "spec/models/active_session_spec.rb": 6.317609486999572,8284 "spec/lib/gitlab/json_cache_spec.rb": 2.6713158399998065,8285 "spec/lib/gitlab/database/with_lock_retries_spec.rb": 15.106795034999777,8286 "spec/models/clusters/agent_spec.rb": 11.278508276999673,8287 "spec/models/integrations/base_chat_notification_spec.rb": 4.038971287000095,8288 "spec/services/ci/stuck_builds/drop_running_service_spec.rb": 9.15825662899988,8289 "spec/lib/gitlab/diff/position_tracer/image_strategy_spec.rb": 16.103672762000315,8290 "spec/services/issues/reopen_service_spec.rb": 9.540011117999711,8291 "spec/services/system_notes/design_management_service_spec.rb": 10.142961976000151,8292 "spec/services/todos/destroy/unauthorized_features_service_spec.rb": 9.133629409000605,8293 "spec/lib/gitlab/email/receiver_spec.rb": 2.4094134440001653,8294 "spec/lib/banzai/pipeline/full_pipeline_spec.rb": 5.617589584000598,8295 "spec/serializers/deploy_keys/basic_deploy_key_entity_spec.rb": 8.264198445000147,8296 "spec/views/groups/edit.html.haml_spec.rb": 6.855953649000185,8297 "spec/lib/gitlab/database/migrations/constraints_helpers_spec.rb": 2.0897146100005557,8298 "spec/lib/gitlab/gitaly_client/repository_service_spec.rb": 3.7455221930003972,8299 "spec/helpers/wiki_helper_spec.rb": 3.322517964999861,8300 "spec/lib/gitlab/metrics/web_transaction_spec.rb": 1.9775162259993522,8301 "spec/models/incident_management/timeline_event_spec.rb": 4.936618639999324,8302 "spec/models/clusters/kubernetes_namespace_spec.rb": 7.7176001139996515,8303 "spec/scripts/review_apps/automated_cleanup_spec.rb": 1.859573822001039,8304 "spec/models/ci/job_token/allowlist_spec.rb": 4.417533087000265,8305 "spec/lib/gitaly/server_spec.rb": 1.425183385001219,8306 "spec/lib/gitlab/ci/build/auto_retry_spec.rb": 4.448726265000005,8307 "spec/presenters/packages/conan/package_presenter_spec.rb": 2.6903576990007423,8308 "spec/views/shared/_label_row.html.haml_spec.rb": 2.6977963680001267,8309 "spec/helpers/ci/builds_helper_spec.rb": 2.850929558999269,8310 "spec/tasks/gitlab/snippets_rake_spec.rb": 6.681765958001051,8311 "spec/rubocop/cop/rspec/have_gitlab_http_status_spec.rb": 1.9577315070000623,8312 "spec/lib/sidebars/menu_spec.rb": 1.6652503219993378,8313 "spec/lib/gitlab/web_hooks/rate_limiter_spec.rb": 2.4468973909988563,8314 "spec/services/boards/lists/list_service_spec.rb": 3.8849224759997014,8315 "spec/lib/gitlab/conflict/file_collection_spec.rb": 8.914066450999599,8316 "spec/services/projects/hashed_storage/base_attachment_service_spec.rb": 6.8301859210005205,8317 "spec/presenters/snippet_presenter_spec.rb": 3.2370860999999422,8318 "spec/models/work_items/type_spec.rb": 2.969337763999647,8319 "spec/lib/gitlab/auth/o_auth/auth_hash_spec.rb": 1.0472985849992256,8320 "spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb": 7.056973378999828,8321 "spec/graphql/resolvers/crm/organizations_resolver_spec.rb": 1.6310725639996235,8322 "spec/lib/gitlab/object_hierarchy_spec.rb": 1.67899103200034,8323 "spec/lib/gitlab/http_io_spec.rb": 1.6963643210001464,8324 "spec/lib/gitlab/email/reply_parser_spec.rb": 2.725330766999832,8325 "spec/helpers/button_helper_spec.rb": 2.850965179999548,8326 "spec/lib/gitlab/search/params_spec.rb": 1.200995826999133,8327 "spec/lib/gitlab/ci/config/entry/prefix_spec.rb": 1.1282347409996873,8328 "spec/models/packages/tag_spec.rb": 4.460488825001448,8329 "spec/models/bulk_imports/export_status_spec.rb": 1.1875217070009967,8330 "spec/services/task_list_toggle_service_spec.rb": 1.2317879559996072,8331 "spec/presenters/label_presenter_spec.rb": 1.2034559159983473,8332 "spec/lib/gitlab/memory/watchdog/configurator_spec.rb": 0.9644710200009285,8333 "spec/serializers/issue_board_entity_spec.rb": 1.0388521050008421,8334 "spec/services/update_merge_request_metrics_service_spec.rb": 4.685476483000457,8335 "spec/services/ci/prometheus_metrics/observe_histograms_service_spec.rb": 2.0572948519984493,8336 "spec/services/ci/create_pipeline_service/parallel_spec.rb": 3.4953856760002964,8337 "spec/workers/work_items/import_work_items_csv_worker_spec.rb": 1.8286824530005106,8338 "spec/lib/gitlab/visibility_level_checker_spec.rb": 3.00225280199993,8339 "spec/lib/gitlab/analytics/cycle_analytics/stage_events/merge_request_first_deployed_to_production_spec.rb": 3.4976663569996163,8340 "spec/rubocop/formatter/graceful_formatter_spec.rb": 1.0193525960003171,8341 "spec/lib/gitlab/import_export/remote_stream_upload_spec.rb": 1.6400818140009505,8342 "spec/workers/ci/drop_pipeline_worker_spec.rb": 3.2089291819993377,8343 "spec/services/packages/mark_package_files_for_destruction_service_spec.rb": 2.158384305999789,8344 "spec/lib/gitlab/changelog/committer_spec.rb": 5.666656112000055,8345 "spec/views/shared/snippets/_snippet.html.haml_spec.rb": 0.9971074169989151,8346 "spec/finders/merge_requests/by_approvals_finder_spec.rb": 4.740883320999274,8347 "spec/graphql/resolvers/tree_resolver_spec.rb": 3.6122248899991973,8348 "spec/graphql/mutations/issues/set_subscription_spec.rb": 1.9599523970009614,8349 "spec/graphql/types/base_argument_spec.rb": 1.0584887040004105,8350 "spec/support_specs/graphql/arguments_spec.rb": 0.5390626909993443,8351 "spec/lib/bitbucket_server/connection_spec.rb": 0.9727906390016869,8352 "spec/lib/gitlab/process_management_spec.rb": 1.0341296650003642,8353 "spec/lib/gitlab/dependency_linker/go_sum_linker_spec.rb": 0.5990677589998086,8354 "spec/workers/concerns/project_import_options_spec.rb": 2.860110818999601,8355 "spec/lib/gitlab/import_sources_spec.rb": 1.3883318770003825,8356 "spec/services/merge_requests/mergeability/logger_spec.rb": 2.1000143500004924,8357 "spec/tasks/tokens_spec.rb": 2.5824740230000316,8358 "spec/rubocop/cop/usage_data/histogram_with_large_table_spec.rb": 0.7414244200008397,8359 "spec/models/users_star_project_spec.rb": 1.653759472999809,8360 "spec/services/packages/create_event_service_spec.rb": 2.1498437270001887,8361 "spec/lib/gitlab/pagination/keyset/in_operator_optimization/array_scope_columns_spec.rb": 0.43556349699974817,8362 "spec/tasks/rubocop_rake_spec.rb": 5.516924600000493,8363 "spec/lib/gitlab/import/merge_request_helpers_spec.rb": 2.9136622969999735,8364 "spec/services/groups/deploy_tokens/create_service_spec.rb": 2.611915833000239,8365 "spec/graphql/resolvers/project_resolver_spec.rb": 1.2373333150007966,8366 "spec/lib/gitlab/database/migrations/batched_migration_last_id_spec.rb": 0.9803124190002563,8367 "spec/lib/gitlab/dependency_linker/podspec_json_linker_spec.rb": 0.6831134840012965,8368 "spec/validators/devise_email_validator_spec.rb": 0.7066229439988092,8369 "spec/services/loose_foreign_keys/batch_cleaner_service_spec.rb": 2.124655958999938,8370 "spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb": 1.096758231999047,8371 "spec/lib/gitlab/database/migrations/instrumentation_spec.rb": 1.4543945030000032,8372 "spec/lib/gitlab/database/postgres_partition_spec.rb": 1.9733878260012716,8373 "spec/services/protected_branches/create_service_spec.rb": 1.641566424001212,8374 "spec/models/aws/role_spec.rb": 0.8913245540006756,8375 "spec/tooling/danger/feature_flag_spec.rb": 1.2796905020004488,8376 "spec/services/groups/auto_devops_service_spec.rb": 2.089227689000836,8377 "spec/lib/gitlab/blame_spec.rb": 1.7500187280002137,8378 "spec/models/merge_request_reviewer_spec.rb": 3.19338861200049,8379 "spec/lib/gitlab/database/postgres_constraint_spec.rb": 2.527402837000409,8380 "spec/lib/json_web_token/rsa_token_spec.rb": 0.8429060350008513,8381 "spec/models/project_repository_spec.rb": 1.6512749829998938,8382 "spec/lib/api/entities/project_import_status_spec.rb": 2.234397321999495,8383 "spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb": 0.8823157539991371,8384 "spec/lib/gitlab/config/entry/validators/nested_array_helpers_spec.rb": 0.5226692229989567,8385 "spec/graphql/resolvers/projects/services_resolver_spec.rb": 1.5770046670004376,8386 "spec/lib/prometheus/cleanup_multiproc_dir_service_spec.rb": 0.3905608690001827,8387 "spec/presenters/search_service_presenter_spec.rb": 1.2749567829996522,8388 "spec/services/ci/create_pipeline_service/limit_active_jobs_spec.rb": 2.715339786998811,8389 "spec/graphql/types/commit_type_spec.rb": 0.6871092740002496,8390 "spec/workers/projects/refresh_build_artifacts_size_statistics_worker_spec.rb": 1.2338029550010106,8391 "spec/views/projects/issues/_service_desk_info_content.html.haml_spec.rb": 1.7510152180002478,8392 "spec/views/dashboard/projects/_blank_state_admin_welcome.haml_spec.rb": 0.6035169580009097,8393 "spec/serializers/context_commits_diff_entity_spec.rb": 1.7845918759994674,8394 "spec/workers/delete_merged_branches_worker_spec.rb": 2.685512457999721,8395 "spec/graphql/resolvers/data_transfer/project_data_transfer_resolver_spec.rb": 1.2632799630009686,8396 "spec/lib/bulk_imports/groups/pipelines/namespace_settings_pipeline_spec.rb": 1.6607744630000525,8397 "spec/models/design_management/design_action_spec.rb": 0.6309777770002256,8398 "spec/lib/gitlab/error_tracking/processor/context_payload_processor_spec.rb": 0.5844530289996328,8399 "spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb": 0.5170763030000671,8400 "spec/lib/gitlab/usage_data_counters/code_review_events_spec.rb": 1.6669373320000886,8401 "spec/lib/gitlab/audit/deploy_key_author_spec.rb": 0.6536048660000233,8402 "spec/rubocop/cop/migration/drop_table_spec.rb": 0.6218572970010428,8403 "spec/models/concerns/editable_spec.rb": 1.5303876500001934,8404 "spec/scripts/generate_rspec_pipeline_spec.rb": 0.8031181570004264,8405 "spec/lib/gitlab/quick_actions/timeline_text_and_date_time_separator_spec.rb": 0.7503146910003125,8406 "spec/lib/gitlab/usage_data_counters/gitlab_cli_activity_unique_counter_spec.rb": 0.7124164929991821,8407 "spec/lib/gitlab/email/message/in_product_marketing/trial_spec.rb": 0.690515513999344,8408 "spec/lib/api/ci/helpers/runner_helpers_spec.rb": 1.3161005709989695,8409 "spec/workers/projects/update_repository_storage_worker_spec.rb": 1.7130362689986214,8410 "spec/services/customer_relations/organizations/create_service_spec.rb": 1.1317373010006122,8411 "spec/workers/ci/parse_secure_file_metadata_worker_spec.rb": 1.480425842000841,8412 "spec/rubocop/cop/sidekiq_load_balancing/worker_data_consistency_spec.rb": 0.7360427109997545,8413 "spec/views/projects/hooks/edit.html.haml_spec.rb": 1.378773366999667,8414 "spec/lib/gitlab/usage_data_counters/designs_counter_spec.rb": 0.8653534250006487,8415 "spec/services/projects/fetch_statistics_increment_service_spec.rb": 1.4570106629998918,8416 "spec/serializers/analytics_summary_serializer_spec.rb": 1.0927082929993048,8417 "spec/lib/gitlab/usage/metrics/instrumentations/aggregated_metric_spec.rb": 0.8417738860007375,8418 "spec/models/plan_spec.rb": 0.8486381250004342,8419 "spec/components/pajamas/spinner_component_spec.rb": 0.6383551369999623,8420 "spec/lib/gitlab/terraform/state_migration_helper_spec.rb": 1.4379920040009893,8421 "spec/support_specs/helpers/redis_commands/recorder_spec.rb": 0.622444116999759,8422 "spec/lib/gitlab/external_authorization_spec.rb": 0.5113739129992609,8423 "spec/rubocop/cop/code_reuse/service_class_spec.rb": 0.6507917250000901,8424 "spec/bin/diagnostic_reports_uploader_spec.rb": 0.6994752240007074,8425 "spec/lib/gitlab/pagination/keyset/request_context_spec.rb": 0.4844600549986353,8426 "spec/helpers/blame_helper_spec.rb": 0.5725768399988738,8427 "spec/graphql/types/member_interface_spec.rb": 0.5378982210004324,8428 "spec/models/concerns/as_cte_spec.rb": 0.4967952240003797,8429 "spec/models/clusters/agents/group_authorization_spec.rb": 1.0180633069994656,8430 "spec/rubocop/cop/migration/prevent_global_enable_lock_retries_with_disable_ddl_transaction_spec.rb": 0.4359628859983786,8431 "spec/lib/gitlab/ci/config/header/spec_spec.rb": 0.6019914779990359,8432 "spec/serializers/import/provider_repo_serializer_spec.rb": 0.6351046359995962,8433 "spec/services/ci/pipeline_creation/start_pipeline_service_spec.rb": 0.9606707099992491,8434 "spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb": 0.8303129060004721,8435 "spec/rubocop/cop/gitlab/no_code_coverage_comment_spec.rb": 0.5713798399992811,8436 "spec/lib/gitlab/health_checks/server_spec.rb": 0.6905125039993436,8437 "spec/models/term_agreement_spec.rb": 0.748000690000481,8438 "spec/services/chat_names/authorize_user_service_spec.rb": 0.6618948449995514,8439 "spec/initializers/net_http_response_patch_spec.rb": 0.640163735999522,8440 "spec/serializers/group_deploy_key_entity_spec.rb": 0.9283494020000944,8441 "spec/lib/gitlab/request_endpoints_spec.rb": 1.5956727369994042,8442 "spec/workers/upload_checksum_worker_spec.rb": 0.6337868560003699,8443 "spec/lib/gitlab/database/migrations/extension_helpers_spec.rb": 0.4317342769991228,8444 "spec/lib/gitlab/import_formatter_spec.rb": 0.4882738750002318,8445 "spec/workers/concerns/gitlab/notify_upon_death_spec.rb": 0.5579674599994178,8446 "spec/services/work_items/prepare_import_csv_service_spec.rb": 0.8595819849997497,8447 "spec/lib/gitlab/string_placeholder_replacer_spec.rb": 0.4788081450005848,8448 "spec/graphql/types/alert_management/status_enum_spec.rb": 0.4425584559994604,8449 "spec/rubocop/cop/migration/background_migrations_spec.rb": 0.3684224600001471,8450 "spec/models/bulk_imports/file_transfer_spec.rb": 0.47054658600063703,8451 "spec/lib/banzai/filter/markdown_engines/base_spec.rb": 0.5960224479986209,8452 "spec/graphql/types/clusters/agent_activity_event_type_spec.rb": 0.5373710820003907,8453 "spec/rubocop/cop/gitlab/finder_with_find_by_spec.rb": 0.5638187200001994,8454 "spec/lib/gitlab/email/message/in_product_marketing/trial_short_spec.rb": 0.4259161680001853,8455 "spec/graphql/types/ci/test_report_summary_type_spec.rb": 0.7560127100005047,8456 "spec/workers/gitlab/github_import/import_pull_request_merged_by_worker_spec.rb": 0.5375507919998199,8457 "spec/lib/api/api_spec.rb": 0.3916703399991093,8458 "spec/graphql/types/ci_configuration/sast/type_spec.rb": 0.5525452310012042,8459 "spec/validators/future_date_validator_spec.rb": 0.31827135300045484,8460 "spec/serializers/diff_line_entity_spec.rb": 0.48174088500127255,8461 "spec/graphql/types/ci/config_variable_type_spec.rb": 0.49198618399896077,8462 "spec/models/container_registry/data_repair_detail_spec.rb": 0.5807390489990212,8463 "spec/graphql/types/issue_status_count_type_spec.rb": 0.3763246810012788,8464 "spec/lib/gitlab/sidekiq_middleware/query_analyzer_spec.rb": 0.4181507379998948,8465 "spec/lib/gitlab/health_checks/middleware_spec.rb": 0.3704939100007323,8466 "spec/graphql/types/time_tracking/timelog_sort_enum_spec.rb": 0.4602162950013735,8467 "spec/models/preloaders/runner_manager_policy_preloader_spec.rb": 0.6613284959985322,8468 "spec/models/concerns/vulnerability_finding_signature_helpers_spec.rb": 0.3224080030013283,8469 "spec/graphql/types/ci/test_suite_type_spec.rb": 0.7232734620010888,8470 "spec/lib/gitlab/ci/reports/security/scanned_resource_spec.rb": 0.35956031100067776,8471 "spec/graphql/types/ci_configuration/sast/entity_type_spec.rb": 0.5736064190004981,8472 "spec/scripts/api/get_package_and_test_job_spec.rb": 0.48234762500032957,8473 "spec/rubocop/cop/migration/refer_to_index_by_name_spec.rb": 0.6068796279996604,8474 "spec/finders/database/batched_background_migrations_finder_spec.rb": 0.4212918279990845,8475 "spec/lib/gitlab/quick_actions/dsl_spec.rb": 0.3628038110000489,8476 "spec/graphql/types/dependency_proxy/manifest_type_spec.rb": 0.521916441999565,8477 "spec/workers/packages/composer/cache_cleanup_worker_spec.rb": 0.5076651340004901,8478 "spec/models/blob_viewer/gemspec_spec.rb": 0.4919579040015378,8479 "spec/lib/sidebars/projects/super_sidebar_menus/manage_menu_spec.rb": 0.5111498030000803,8480 "spec/helpers/tooling/visual_review_helper_spec.rb": 0.3394589719991927,8481 "spec/lib/gitlab/kubernetes/cluster_role_binding_spec.rb": 0.370451630999014,8482 "spec/serializers/ci/lint/job_entity_spec.rb": 0.5622346109994396,8483 "spec/initializers/session_store_spec.rb": 0.3523807410001609,8484 "spec/lib/bitbucket/collection_spec.rb": 0.2818125350004266,8485 "spec/models/namespace_ci_cd_setting_spec.rb": 0.283118126000772468486}8487Knapsack global time execution for tests: 26m 52s8488Pending: (Failures listed here are expected and do not affect your suite's status)8489 1) ProjectWiki behaves like wiki model #preview_slug title: "", file_extension: :md, format: :markdown, expected_slug: ".md" matches the slug generated by gitaly8490 # Gitaly cannot generate a slug for an empty title8491 # ./spec/support/shared_examples/models/wiki_shared_examples.rb:9548492 2) ProjectWiki behaves like wiki model #preview_slug title: "", file_extension: :txt, format: :plaintext, expected_slug: ".txt" matches the slug generated by gitaly8493 # Gitaly cannot generate a slug for an empty title8494 # ./spec/support/shared_examples/models/wiki_shared_examples.rb:9548495 3) Ci::Bridge metadata partitioning creates the metadata record and assigns its partition8496 # Skipping partitioning tests until `ci_builds` is partitioned8497 Failure/Error: skip 'Skipping partitioning tests until `ci_builds` is partitioned'8498 RSpec::Core::Pending::SkipDeclaredInExample8499 # ./spec/support/models/ci/partitioning_testing/rspec_hooks.rb:8:in `block (2 levels) in <top (required)>'8500 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (3 levels) in <top (required)>'8501 # ./spec/support/database/prevent_cross_joins.rb:62:in `with_cross_joins_prevented'8502 # ./spec/support/database/prevent_cross_joins.rb:108:in `block (2 levels) in <top (required)>'8503Finished in 26 minutes 57 seconds (files took 45.25 seconds to load)85043491 examples, 0 failures, 3 pending8505Randomized with seed 644528506[TEST PROF INFO] Time spent in factories: 17:29.761 (64.62% of total time)8507RSpec exited with 0.8508No examples to retry, congrats!8510Not uploading cache ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8511Not uploading cache gitaly-ruby-gems-debian-bullseye-ruby-3.0-16 due to policy8513Uploading artifacts...8514coverage/: found 5 matching artifact files and directories 8515crystalball/: found 2 matching artifact files and directories 8516WARNING: deprecations/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8517knapsack/: found 3 matching artifact files and directories 8518WARNING: query_recorder/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8519rspec/: found 14 matching artifact files and directories 8520WARNING: tmp/capybara/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/gitlab-org/gitlab) 8521log/*.log: found 18 matching artifact files and directories 8522WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4101394792/artifacts?artifact_format=zip&artifact_type=archive&expire_in=31d new-url=https://gitlab.com8523WARNING: Retrying... context=artifacts-uploader error=request redirected8524Uploading artifacts as "archive" to coordinator... 201 Created id=4101394792 responseStatus=201 Created token=64_7SxsJ8525Uploading artifacts...8526rspec/junit_rspec.xml: found 1 matching artifact files and directories 8527WARNING: Upload request redirected location=https://gitlab.com/api/v4/jobs/4101394792/artifacts?artifact_format=gzip&artifact_type=junit&expire_in=31d new-url=https://gitlab.com8528WARNING: Retrying... context=artifacts-uploader error=request redirected8529Uploading artifacts as "junit" to coordinator... 201 Created id=4101394792 responseStatus=201 Created token=64_7SxsJ8531Job succeeded